summaryrefslogtreecommitdiff
path: root/libre
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-02-10 01:12:52 -0800
committerroot <root@rshg054.dnsready.net>2013-02-10 01:12:52 -0800
commit1bb2648cde916ac27d3dd75d7b64a4ddc89787b7 (patch)
tree016bfa1969323404c37dbef29cfc7242a5a8e9f3 /libre
parente9c244cac8e5dc1c59c7e8b7bc885fef04224b70 (diff)
Sun Feb 10 01:12:35 PST 2013
Diffstat (limited to 'libre')
-rw-r--r--libre/apache-ant/PKGBUILD110
-rw-r--r--libre/apache-ant/apache-ant.csh2
-rw-r--r--libre/apache-ant/apache-ant.sh2
-rw-r--r--libre/aspell-pl-libre/PKGBUILD33
-rw-r--r--libre/atool-libre/ChangeLog9
-rw-r--r--libre/audacity-libre/.directory2
-rw-r--r--libre/blender-libre/rePKGBUILD37
-rw-r--r--libre/clementine-libre/clementine-1.0.1-global-menu.patch17
-rw-r--r--libre/clementine-libre/clementine-fix-albumcoverfetch-crash.patch20
-rw-r--r--libre/clementine-libre/clementine-fresh-start.patch9
-rw-r--r--libre/clementine-libre/imobiledevice.patch50
-rw-r--r--libre/clementine-libre/remove-nonfree-references-on-translations.patch20088
-rw-r--r--libre/cups-filters-libre/buildfix_dlopen.diff31
-rw-r--r--libre/cups-filters-libre/buildfix_poppler.diff224
-rw-r--r--libre/cups-libre/PKGBUILD168
-rw-r--r--libre/cups-libre/cups68
-rw-r--r--libre/cups-libre/cups-avahi-1-config.patch42
-rw-r--r--libre/cups-libre/cups-avahi-2-backend.patch1118
-rw-r--r--libre/cups-libre/cups-avahi-3-timeouts.patch381
-rw-r--r--libre/cups-libre/cups-avahi-4-poll.patch529
-rw-r--r--libre/cups-libre/cups-avahi-5-services.patch1272
-rw-r--r--libre/cups-libre/cups-no-export-ssllibs.patch12
-rw-r--r--libre/cups-libre/cups-no-gcrypt.patch38
-rw-r--r--libre/cups-libre/cups-no-gzip-man.patch18
-rw-r--r--libre/cups-libre/cups.install26
-rw-r--r--libre/cups-libre/cups.logrotate8
-rw-r--r--libre/cups-libre/cups.pam3
-rw-r--r--libre/cups-libre/rePKGBUILD50
-rw-r--r--libre/debhelper/PKGBUILD29
-rw-r--r--libre/dpkg/dpkg-arch.patch17
-rw-r--r--libre/dpkg/dpkg-rsyncable.patch12
-rw-r--r--libre/file-roller-libre/extract-to-fix.patch13
-rw-r--r--libre/gnu-ghostscript/gnu-ghostscript-cups-rgbw.patch263
-rw-r--r--libre/gnustep-base-libre/PKGBUILD40
-rw-r--r--libre/gnustep-make-libre/PKGBUILD32
-rw-r--r--libre/grub-legacy/grub-0.97-gpt.patch315
-rw-r--r--libre/grub-legacy/rePKGBUILD37
-rw-r--r--libre/grub/040_all_grub-0.96-nxstack.patch623
-rw-r--r--libre/grub/05-grub-0.97-initrdaddr.diff16
-rw-r--r--libre/grub/ext4.patch263
-rw-r--r--libre/grub/grub-0.97-gpt.patch315
-rw-r--r--libre/grub/grub-0.97-ldflags-objcopy-remove-build-id.patch196
-rw-r--r--libre/grub/grub-inode-size.patch100
-rw-r--r--libre/grub/i2o.patch45
-rw-r--r--libre/grub/install-grub204
-rw-r--r--libre/grub/intelmac.patch67
-rw-r--r--libre/grub/menu.lst43
-rw-r--r--libre/grub/more-raid.patch100
-rw-r--r--libre/grub/rePKGBUILD37
-rw-r--r--libre/grub/special-devices.patch18
-rw-r--r--libre/grub2/05_archtheme6
-rw-r--r--libre/grub2/20_memtest86+29
-rw-r--r--libre/grub2/PKGBUILD243
-rw-r--r--libre/grub2/fix_stack_pointer_handling_16_relocator.patch13
-rw-r--r--libre/grub2/grub-install.fix11
-rw-r--r--libre/grub2/grub-mkconfig-Use_outside_GRUB_PREFIX_if_defined.patch15
-rw-r--r--libre/grub2/grub.cfg127
-rw-r--r--libre/grub2/grub.default45
-rw-r--r--libre/grub2/grub2.install33
-rw-r--r--libre/grub2/grub2_automake_1.11.2_pkglib_to_pkgdata.patch134
-rw-r--r--libre/grub2/grub2_bzr_export.sh113
-rw-r--r--libre/grub2/grub_extras_lua_args_fix.patch13
-rw-r--r--libre/grub2/parabola-mkconfig.patch32
-rw-r--r--libre/grub2/parabola_grub_mkconfig_fixes.patch152
-rw-r--r--libre/hardinfo/.directory2
-rw-r--r--libre/hardinfo/ChangeLog20
-rw-r--r--libre/hplip-libre/.hplip.install.swpbin12288 -> 0 bytes
-rw-r--r--libre/hplip-libre/rePKGBUILD26
-rw-r--r--libre/iceape-i18n/Makefile59
-rw-r--r--libre/iceape-i18n/PKGBUILD83
-rw-r--r--libre/iceape-i18n/PKGBUILD.in64
-rw-r--r--libre/icecat-i18n/Makefile38
-rw-r--r--libre/icecat-i18n/PKGBUILD240
-rw-r--r--libre/icecat-i18n/PKGBUILD.in46
-rw-r--r--libre/icecat/bug-xulrunner-copy-stub.patch11
-rw-r--r--libre/icecat/firefox-install-dir.patch30
-rw-r--r--libre/icecat/firefox.install13
-rw-r--r--libre/icecat/libvpx.patch12
-rw-r--r--libre/icecat/mozconfig.default63
-rw-r--r--libre/icecat/mozconfig.firefox46
-rw-r--r--libre/icecat/mozconfig.old78
-rw-r--r--libre/icecat/shared-libs.patch12
-rw-r--r--libre/icedove-i18n/PKGBUILD530
-rw-r--r--libre/icedove-libre/.directory2
-rw-r--r--libre/icedove-libre/clrf.patch260
-rw-r--r--libre/icedove-libre/gcc47.patch63
-rw-r--r--libre/iceweasel-i18n/.directory2
-rw-r--r--libre/iceweasel-i18n/Makefile59
-rw-r--r--libre/iceweasel-i18n/PKGBUILD146
-rw-r--r--libre/iceweasel-i18n/PKGBUILD.in63
-rw-r--r--libre/iceweasel-l10n/PKGBUILD178
-rw-r--r--libre/iceweasel-l10n/PKGBUILD.in80
-rw-r--r--libre/iceweasel-libre/PKGBUILD8
-rw-r--r--libre/iceweasel-libre/bug677092.patch330
-rw-r--r--libre/iceweasel-libre/firefox.install13
-rw-r--r--libre/iceweasel-libre/gcc47.patch75
-rw-r--r--libre/iceweasel-libre/region.properties23
-rw-r--r--libre/iceweasel-libre/xulrunner-copy-stub.patch11
-rw-r--r--libre/java-asm2/PKGBUILD76
-rw-r--r--libre/java-asm3/PKGBUILD78
-rw-r--r--libre/java-ow-util-ant-tasks/PKGBUILD27
-rw-r--r--libre/java-ow-util-ant-tasks/SRCBUILD29
-rw-r--r--libre/kdelibs-libre/fix-application-crashes.patch49
-rw-r--r--libre/kdeutils-ark-libre/rePKGBUILD26
-rw-r--r--libre/libdrm-libre/COPYING48
-rw-r--r--libre/libdrm-libre/PKGBUILD90
-rw-r--r--libre/lilo/.directory2
-rw-r--r--libre/linux-libre-lts/.directory3
-rw-r--r--libre/linux-libre-tools/cpupower.conf29
-rw-r--r--libre/linux-libre-tools/cpupower.pmutils37
-rw-r--r--libre/linux-libre-tools/cpupower.rc16
-rw-r--r--libre/linux-libre-tools/usbipd.conf3
-rw-r--r--libre/linux-libre-tools/usbipd.rc34
-rw-r--r--libre/linux-libre/.directory6
-rw-r--r--libre/linux-libre/3.4.2-rpc_pipefs.patch33
-rw-r--r--libre/linux-libre/3.4.4-fix-backlight-regression.patch38
-rw-r--r--libre/linux-libre/3.4.4-fix-gtx560ti-nouveau-regression.patch20
-rw-r--r--libre/linux-libre/alsa-powersave-3.5.x.patch29
-rw-r--r--libre/linux-libre/avmfritz-only-few-bytes-are-transfered-on-a-conn.patch48
-rw-r--r--libre/linux-libre/i915-fix-ghost-tv-output.patch26
-rw-r--r--libre/linux-libre/i915-i2c-crash-3.5.x.patch47
-rw-r--r--libre/linux-libre/irq_cfg_pointer-3.6.6.patch16
-rw-r--r--libre/linux-libre/module-init-wait-3.6.patch77
-rw-r--r--libre/linux-libre/module-symbol-waiting-3.6.patch66
-rw-r--r--libre/linux-libre/watchdog-3.5.x.patch60
-rw-r--r--libre/luxrays-libre/PKGBUILD42
-rw-r--r--libre/luxrender-libre/PKGBUILD54
-rw-r--r--libre/luxrender-libre/boost_1.50_fix.diff131
-rw-r--r--libre/maven-libre/PKGBUILD76
-rw-r--r--libre/maven-libre/maven.csh2
-rw-r--r--libre/maven-libre/maven.sh3
-rw-r--r--libre/metalog/PKGBUILD43
-rw-r--r--libre/metalog/metalog40
-rw-r--r--libre/metalog/metalog.confd8
-rw-r--r--libre/mozilla-devscripts/PKGBUILD32
-rw-r--r--libre/mozilla-searchplugins/duck-duck-go-lite.xml8
-rw-r--r--libre/mozilla-searchplugins/duck-duck-go-ssl.xml8
-rw-r--r--libre/mozilla-searchplugins/jamendo-en.xml12
-rw-r--r--libre/mozilla-searchplugins/logless-search.xml8
-rw-r--r--libre/mozilla-searchplugins/parabola-gnulinux-libre-wiki-en.xml9
-rw-r--r--libre/mozilla-searchplugins/scroogle-ssl-english.xml14
-rw-r--r--libre/mozilla-searchplugins/seeks-search.xml8
-rw-r--r--libre/mozilla-searchplugins/wikipedia.xml15
-rw-r--r--libre/mozilla-searchplugins/yacy.xml9
-rw-r--r--libre/mplayer-libre/.directory3
-rw-r--r--libre/mplayer-libre/live-media.patch13
-rw-r--r--libre/mplayer-vaapi-libre/gcc-4.6-mp3lib-sse-code-miscompilation.patch21
-rw-r--r--libre/mplayer-vaapi-libre/live-media.patch13
-rw-r--r--libre/mplayer-vaapi-libre/mplayer.desktop21
-rw-r--r--libre/mplayer-vaapi-libre/mplayer.pngbin1982 -> 0 bytes
-rw-r--r--libre/mplayer-vaapi-libre/patch-fixes.patch491
-rw-r--r--libre/parabolaweb-git/Makefile26
-rw-r--r--libre/parabolaweb-git/PKGBUILD43
-rw-r--r--libre/parabolaweb-git/deps-ver.txt7
-rw-r--r--libre/parabolaweb-git/parabolaweb.init.sh52
-rw-r--r--libre/parabolaweb-git/parabolaweb.update.sh.in59
-rw-r--r--libre/parabolaweb-git/requirements_prod.txt7
-rw-r--r--libre/psutils-libre/.directory2
-rw-r--r--libre/python-reportlab-libre/PKGBUILD41
-rw-r--r--libre/python-reportlab-libre/free-fonts.patch144
-rw-r--r--libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch61
-rw-r--r--libre/python2-libre/PKGBUILD109
-rw-r--r--libre/python2-libre/SRCBUILD36
-rw-r--r--libre/python2-libre/WDAS.patch109
-rw-r--r--libre/python2-libre/doc_license_change.patch44
-rw-r--r--libre/python2-libre/gdbm-magic-values.patch12
-rw-r--r--libre/python2-libre/linux2.patch23
-rw-r--r--libre/sdl-libre/no-riva-accel.patch24
-rw-r--r--libre/sdl-libre/riva_mmio.patch554
-rw-r--r--libre/sqlite3-libre/PKGBUILD63
-rw-r--r--libre/sqlite3-libre/license.txt33
-rw-r--r--libre/sqlite3/PKGBUILD68
-rw-r--r--libre/sqlite3/license.txt33
-rw-r--r--libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch27
-rw-r--r--libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch155
-rw-r--r--libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch31
-rw-r--r--libre/systemd/PKGBUILD123
-rw-r--r--libre/systemd/os-release7
-rw-r--r--libre/systemd/rePKGBUILD52
-rw-r--r--libre/systemd/systemd.install50
-rw-r--r--libre/texlive-core-libre/.directory5
-rw-r--r--libre/thunderbird-libre/.directory2
-rw-r--r--libre/thunderbird-libre/PKGBUILD82
-rw-r--r--libre/thunderbird-libre/channel-prefs.js9
-rw-r--r--libre/thunderbird-libre/clrf.patch265
-rw-r--r--libre/thunderbird-libre/gcc47.patch39
-rw-r--r--libre/thunderbird-libre/mozconfig40
-rw-r--r--libre/thunderbird-libre/rePKGBUILD29
-rw-r--r--libre/thunderbird-libre/searchplugins-libre.patch144
-rw-r--r--libre/thunderbird-libre/thunderbird-install-dir.patch42
-rw-r--r--libre/thunderbird-libre/thunderbird.desktop13
-rw-r--r--libre/thunderbird-libre/thunderbird.install12
-rw-r--r--libre/thunderbird-libre/vendor.js9
-rw-r--r--libre/unarchiver/PKGBUILD42
-rw-r--r--libre/unarchiver/libz.patch13
-rw-r--r--libre/unarchiver/native_obj_exceptions.patch22
-rw-r--r--libre/unrar-libre/PKGBUILD29
-rw-r--r--libre/unzip-libre/SRCBUILD33
-rw-r--r--libre/virtualbox-libre-modules-lts/60-vboxguest.rules2
-rw-r--r--libre/virtualbox-libre-modules-lts/LocalConfig.kmk19
-rw-r--r--libre/virtualbox-libre-modules-lts/free-distros.patch1383
-rw-r--r--libre/virtualbox-libre-modules-lts/libre.patch5765
-rw-r--r--libre/virtualbox-libre-modules-lts/os_blag.pngbin1411 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_blag_64.pngbin1549 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_dragora.pngbin2375 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_dragora_64.pngbin2430 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_dynebolic.pngbin1621 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_gnewsense.pngbin2315 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_gnewsense_64.pngbin2470 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_gnu.pngbin2728 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_gnu_64.pngbin2705 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_gnuhurd.pngbin2728 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_gnulinux.pngbin2728 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_gnulinux_64.pngbin2705 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_musix.pngbin2451 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_musix_64.pngbin2581 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_os64base.pngbin1300 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_os64base.xcfbin2844 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_osbase.pngbin1042 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_osbase.xcfbin2748 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_parabola.pngbin1931 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_parabola_64.pngbin2096 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_trisquel.pngbin2451 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_trisquel_64.pngbin2592 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_ututo.pngbin2615 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_ututo_64.pngbin2751 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/os_venenux.pngbin1653 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules-lts/virtualbox-libre-modules-lts.install18
-rw-r--r--libre/virtualbox-libre-modules-lts/virtualbox-libre-parabola-modules-lts.install16
-rw-r--r--libre/virtualbox-libre-modules/.directory3
-rw-r--r--libre/virtualbox-libre-modules/60-vboxguest.rules2
-rw-r--r--libre/virtualbox-libre-modules/LocalConfig.kmk19
-rw-r--r--libre/virtualbox-libre-modules/free-distros.patch1383
-rw-r--r--libre/virtualbox-libre-modules/libre.patch5765
-rw-r--r--libre/virtualbox-libre-modules/linux34.patch12
-rw-r--r--libre/virtualbox-libre-modules/os_blag.pngbin1411 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_blag_64.pngbin1549 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_dragora.pngbin2375 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_dragora_64.pngbin2430 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_dynebolic.pngbin1621 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_gnewsense.pngbin2315 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_gnewsense_64.pngbin2470 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_gnu.pngbin2728 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_gnu_64.pngbin2705 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_gnuhurd.pngbin2728 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_gnulinux.pngbin2728 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_gnulinux_64.pngbin2705 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_musix.pngbin2451 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_musix_64.pngbin2581 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_os64base.pngbin1300 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_os64base.xcfbin2844 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_osbase.pngbin1042 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_osbase.xcfbin2748 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_parabola.pngbin1931 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_parabola_64.pngbin2096 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_trisquel.pngbin2451 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_trisquel_64.pngbin2592 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_ututo.pngbin2615 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_ututo_64.pngbin2751 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/os_venenux.pngbin1653 -> 0 bytes
-rw-r--r--libre/virtualbox-libre-modules/virtualbox-libre-modules.install19
-rw-r--r--libre/virtualbox-libre-modules/virtualbox-libre-parabola-modules.install17
-rw-r--r--libre/virtualbox-libre/.directory4
-rw-r--r--libre/virtualbox-libre/003-remove_qt_fa_IR.patch23
-rw-r--r--libre/virtualbox-libre/change_default_driver_dir.patch18
-rw-r--r--libre/virtualbox-libre/gsoap.patch11
-rw-r--r--libre/virtualbox-libre/ipv6_vnc.patch20
-rw-r--r--libre/virtualbox-libre/vbox-service.conf2
-rw-r--r--libre/virtualbox-libre/vbox-service.rc39
-rw-r--r--libre/virtualbox-libre/vboxbuild95
-rw-r--r--libre/virtualbox-libre/vboxdrv-reference.patch112
-rw-r--r--libre/virtualbox-libre/virtualbox-libre-ext-vnc.install25
-rwxr-xr-xlibre/virtualbox-libre/virtualbox-libre-guest-additions.install31
-rwxr-xr-xlibre/virtualbox-libre/virtualbox-libre-guest-source.install30
-rwxr-xr-xlibre/virtualbox-libre/virtualbox-libre-host-source.install30
-rw-r--r--libre/virtualbox-libre/virtualbox-libre-parabola-additions.install31
-rw-r--r--libre/virtualbox-libre/virtualbox-libre-parabola-source.install29
-rw-r--r--libre/virtualbox-libre/virtualbox-libre-source.install29
-rw-r--r--libre/virtualbox-libre/virtualbox-source.install12
-rw-r--r--libre/virtualbox-libre/virtualbox.install34
-rw-r--r--libre/virtualbox-modules-lts/60-vboxguest.rules2
-rw-r--r--libre/virtualbox-modules-lts/LocalConfig.kmk19
-rw-r--r--libre/virtualbox-modules-lts/PKGBUILD101
-rw-r--r--libre/virtualbox-modules-lts/virtualbox-modules-lts.install18
-rw-r--r--libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install16
-rw-r--r--libre/virtualbox-modules/.directory2
-rw-r--r--libre/virtualbox-modules/60-vboxguest.rules2
-rw-r--r--libre/virtualbox-modules/LocalConfig.kmk19
-rw-r--r--libre/virtualbox-modules/PKGBUILD104
-rw-r--r--libre/virtualbox-modules/linux34.patch12
-rw-r--r--libre/virtualbox-modules/virtualbox-modules.install19
-rw-r--r--libre/virtualbox-modules/virtualbox-parabola-modules.install17
-rw-r--r--libre/xulrunner-libre/gcc47.patch77
293 files changed, 93 insertions, 51039 deletions
diff --git a/libre/apache-ant/PKGBUILD b/libre/apache-ant/PKGBUILD
deleted file mode 100644
index 77e0dfe94..000000000
--- a/libre/apache-ant/PKGBUILD
+++ /dev/null
@@ -1,110 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# Maintainer (Arch): Paul Mattal <paul@archlinux.org>
-# Contributor: Andrew Wright <andreww@photism.org>
-
-pkgname=apache-ant
-pkgver=1.8.4
-
-provides=("apache-ant-libre=$pkgver")
-replaces=("apache-ant-libre")
-conflicts=("apache-ant-libre")
-
-pkgrel=1.1
-pkgdesc="A Java-based build tool"
-arch=('any')
-license=('Apache')
-url="http://ant.apache.org/"
-_mirror=http://archive.apache.org/dist
-source=($_mirror/ant/source/${pkgname}-${pkgver}-src.tar.bz2
- ${pkgname}.sh ${pkgname}.csh)
-depends=('java-environment')
-
-# This list is adapted from https://ant.apache.org/manual/install.html#librarydependencies
-declare -A _opts
-_opts[junit]='to have JUnit on the classpath in javac tasks;/usr/share/java/junit.jar'
-_opts[xalan-java]='<junitreport> task;/usr/share/java/xalan.jar'
-_opts[antlr2]='<antlr> task;/usr/share/java/antlr2.jar::antlr.jar'
-#_opts[java-bsf]='<script> task;/usr/share/java/bsf.jar'
-#_opts[groovy]='Groovy with <script> and <scriptdef> tasks;/usr/share/java/groovy.jar'
-_opts[java-asm2]='Groovy with <script> and <scriptdef> tasks;/usr/share/java/asm-2.jar::asm.jar /usr/share/java/asm-util-2.jar::asm-util.jar'
-#_opts[netrexx]='<netrexx> task, Rexx with <script> task;/usr/share/java/netrexx.jar'
-_opts[rhino]='Javascript with <script> task;/usr/share/java/js.jar'
-_opts[jython]='Python with <script> task;/opt/jython/jython.jar'
-#_opts[jacl]='TCL with <script> task;/usr/share/java/jacl.jar'
-#_opts[tcljava]='TCL with <script> task;/usr/share/java/tcljava.jar'
-_opts[beanshell>=1.3]='BeanShell with <script> task;/usr/share/java/bsh.jar::beanshell.jar'
-#_opts[jruby]='Ruby with <script> task;/usr/share/java/jruby.jar'
-#_opts[judo]='Judoscript with <script> task;/usr/share/java/judo.jar'
-_opts[java-commons-logging]='CommonsLoggingListener;/usr/share/java/commons-logging/commons-logging.jar'
-#_opts[java-log4j]='Log4jListener;/usr/share/java/log4j.jar'
-#_opts[java-commons-net>=1.4.0]='<ftp>, <rexec> and <telnet> tasks;/usr/share/java/commons-net.jar'
-#_opts[java-bcel]="'classfileset' data type, JavaClassHelper for ClassConstants filter reader;/usr/share/java/bcel.jar"
-#_opts[java-mail]='<mimemail> task, mime encoding with <mail>;/usr/share/java/mail.jar'
-#_opts[java-activation]='<mimemail> task, mime encoding with <mail>;/usr/share/java/activation.jar'
-#_opts[jdepend]='<jdepend> task;/usr/share/java/jdepend.jar'
-#_opts[java-xmlcommons-resolver>=1.1beta]="external files for 'xmlcatalog' datatype;/usr/share/java/resolver.jar"
-#_opts[java-jsch>=0.1.42]='<sshexec> and <scp> tasks;/usr/share/java/jsch.jar'
-#_opts[java-advanced-imaging]='<image> task/usr/share/java/jai/*.jar'
-
-for pkg in "${!_opts[@]}"; do
- optdepends+=("$pkg: ${_opts[$pkg]%;*}")
- makedepends+=("$pkg")
-done
-
-build() {
- # This directory is what becomes
- # http://archive.apache.org/dist/ant/binaries/${pkgname}-${pkgver}-bin.tar.bz2
- # which is what Arch uses
- rm -rf "${srcdir}"/${pkgname}-${pkgver}-bin
- mkdir -p "${srcdir}"/${pkgname}-${pkgver}-bin
-
- cd "${srcdir}"/${pkgname}-${pkgver}
- # Symlink to external optional libraries
- for jar in ${_opts[@]#*;}; do
- ln -sf ${jar%::*} lib/optional/`basename ${jar/*::}`
- done
- # Build
- source "/etc/profile.d/jdk.sh" # Get the JAVA_HOME env var
- sh build.sh -Ddist.dir="${srcdir}"/${pkgname}-${pkgver}-bin dist
-}
-
-package() {
- cd "${srcdir}"/${pkgname}-${pkgver}-bin
- source "${srcdir}"/${pkgname}.sh # Get the ANT_HOME env var
- source "/etc/profile.d/jdk.sh" # Get the JAVA_HOME env var
-
- ## Install profile.d script
- install -d "${pkgdir}"/etc/profile.d
- install -m755 "${srcdir}"/${pkgname}.{csh,sh} "${pkgdir}"/etc/profile.d/
-
- ## Install the main distribution
- install -d "${pkgdir}"/${ANT_HOME}
- cp -Rp * "${pkgdir}"/${ANT_HOME}
-
- ## Fix the distribution
- # Remove Windows .bat/.cmd files
- rm -f "${pkgdir}"/${ANT_HOME}/bin/*.{bat,cmd}
- # Fix python2 path
- sed -i 's|/usr/bin/python|/usr/bin/python2|' "${pkgdir}"/${ANT_HOME}/bin/runant.py
- # Symlink to external optional libraries
- for jar in ${_opts[@]#*;}; do
- ln -sf ${jar%::*} "${pkgdir}"/${ANT_HOME}/lib/`basename ${jar/*::}`
- done
-
- ## Symlink the /opt distribution to the normal places
- install -d "${pkgdir}"/usr/bin
- install -d "${pkgdir}"/usr/share/doc/${pkgname}
- install -d "${pkgdir}"/usr/share/licenses/${pkgname}
-
- cd "${pkgdir}"/${ANT_HOME}
- for prog in bin/*; do
- ln -sf ${ANT_HOME}/$prog "${pkgdir}"/usr/bin
- done
- ln -sf ${ANT_HOME}/{README,WHATSNEW} "${pkgdir}"/usr/share/doc/${pkgname}
- ln -sf ${ANT_HOME}/docs "${pkgdir}"/usr/share/doc/${pkgname}/html
- ln -sf ${ANT_HOME}/{LICENSE,NOTICE} "${pkgdir}"/usr/share/licenses/${pkgname}
-}
-
-md5sums=('c474fa9d0c35a24037c23b6e476862c1'
- 'bd63c881be406f515fc4d22635e8326a'
- 'aaa615512cbe1ed7f3b62c1ff46802f8')
diff --git a/libre/apache-ant/apache-ant.csh b/libre/apache-ant/apache-ant.csh
deleted file mode 100644
index fdc04b2f8..000000000
--- a/libre/apache-ant/apache-ant.csh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/csh
-setenv ANT_HOME /opt/apache-ant
diff --git a/libre/apache-ant/apache-ant.sh b/libre/apache-ant/apache-ant.sh
deleted file mode 100644
index 6e4809da5..000000000
--- a/libre/apache-ant/apache-ant.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-export ANT_HOME=/opt/apache-ant
diff --git a/libre/aspell-pl-libre/PKGBUILD b/libre/aspell-pl-libre/PKGBUILD
deleted file mode 100644
index 6da90e449..000000000
--- a/libre/aspell-pl-libre/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# $Id: PKGBUILD 43278 2011-03-24 13:25:37Z andrea $
-# Maintainer: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
-# Contributor: Arkadiusz Laczynski <alaczynski@gmail.com>
-# Contributor (Parabola): Jorge Lopez <jorginho@adinet.com.uy>
-
-_pkgname=aspell-pl
-pkgname=aspell-pl-libre
-pkgver=20111117
-pkgrel=1
-pkgdesc="Polish dictionary for aspell"
-arch=('i686' 'x86_64')
-url="http://www.sjp.pl/slownik/en/"
-license=('GPL' 'LGPL' 'MPL')
-depends=('aspell')
-replaces=('aspell-pl')
-conflicts=('aspell-pl')
-provides=('aspell-pl')
-source=("ftp://ftp.archlinux.org/other/community/$_pkgname/sjp-aspell6-pl-6.0_$pkgver-0.tar.bz2")
-md5sums=('27aa9ca734d7049238399c279c5417fb')
-
-build() {
- cd "$srcdir/aspell6-pl-6.0_$pkgver-0"
-
- ./configure
- make
-}
-
-package() {
- cd "$srcdir/aspell6-pl-6.0_$pkgver-0"
-
- make DESTDIR="$pkgdir" install
-}
diff --git a/libre/atool-libre/ChangeLog b/libre/atool-libre/ChangeLog
deleted file mode 100644
index aec63e70f..000000000
--- a/libre/atool-libre/ChangeLog
+++ /dev/null
@@ -1,9 +0,0 @@
-2009-08-16 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
- * Updated to major version 0.37.0
-
-2008-10-05 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
- * Updated to major version 0.36.0
-
-2008-10-05 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
- * Moved to [community] repo
-
diff --git a/libre/audacity-libre/.directory b/libre/audacity-libre/.directory
deleted file mode 100644
index a65007814..000000000
--- a/libre/audacity-libre/.directory
+++ /dev/null
@@ -1,2 +0,0 @@
-[Dolphin]
-Timestamp=2012,4,10,15,23,50
diff --git a/libre/blender-libre/rePKGBUILD b/libre/blender-libre/rePKGBUILD
deleted file mode 100644
index 35aef2117..000000000
--- a/libre/blender-libre/rePKGBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# This is an example rePKGBUILD file. Use this as a start to creating your own,
-# and remove these comments. For more information, see 'man PKGBUILD'.
-# NOTE: Please fill out the license field for your package! If it is unknown,
-# then please put 'unknown'.
-
-# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
-# Maintainer: Márcio Silva <coadde@adinet.com.uy>
-source PKGBUILD
-unset build package md5sums source check
-_repo=community
-pkgname='blender-libre'
-options=(!strip)
-source=(PKGBUILD
- http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgbase}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
- # files for pkg modifications
- )
-
-build() {
- cd "${srcdir}/"
- rm -v .{INSTALL,PKGINFO} ${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT || true
- # put actions for package modifications below this line
-}
-
-package_blender-libre() {
- pkgdesc="A fully integrated 3D graphics creation suite without cuda-toolkit recommendation"
- provides=("${pkgname}=${pkgver}")
- replaces=("${pkgname}")
- conflicts=("${pkgname}")
- install=blender.install
- depends=('libpng' 'libtiff' 'openexr' 'python' 'desktop-file-utils'
- 'shared-mime-info' 'hicolor-icon-theme' 'xdg-utils' 'glew'
- 'freetype2' 'openal' 'ffmpeg' 'fftw' 'boost-libs' 'opencollada'
- 'openimageio' 'libsndfile' 'jack')
-
- find ${srcdir} -maxdepth 1 -type l -delete
- cp -a ${srcdir}/* ${pkgdir}
-}
diff --git a/libre/clementine-libre/clementine-1.0.1-global-menu.patch b/libre/clementine-libre/clementine-1.0.1-global-menu.patch
deleted file mode 100644
index 91f93e058..000000000
--- a/libre/clementine-libre/clementine-1.0.1-global-menu.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -Naur clementine-1.0.1.ori/src/main.cpp clementine-1.0.1/src/main.cpp
---- clementine-1.0.1.ori/src/main.cpp 2012-01-22 07:43:26.000000000 -0500
-+++ clementine-1.0.1/src/main.cpp 2012-07-05 13:58:49.040596906 -0400
-@@ -280,13 +280,6 @@
- UniversalEncodingHandler handler;
- TagLib::ID3v1::Tag::setStringHandler(&handler);
-
--#ifdef Q_OS_LINUX
-- // Force Clementine's menu to be shown in the Clementine window and not in
-- // the Unity global menubar thing. See:
-- // https://bugs.launchpad.net/unity/+bug/775278
-- setenv("QT_X11_NO_NATIVE_MENUBAR", "1", true);
--#endif
--
- // Initialise logging
- logging::Init();
- logging::SetLevels(options.log_levels());
diff --git a/libre/clementine-libre/clementine-fix-albumcoverfetch-crash.patch b/libre/clementine-libre/clementine-fix-albumcoverfetch-crash.patch
deleted file mode 100644
index d7e64388c..000000000
--- a/libre/clementine-libre/clementine-fix-albumcoverfetch-crash.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -rupN clementine-1.0.1.old/src/covers/albumcoverfetcher.cpp clementine-1.0.1/src/covers/albumcoverfetcher.cpp
---- clementine-1.0.1.old/src/covers/albumcoverfetcher.cpp 2011-12-02 16:24:44.000000000 -0500
-+++ clementine-1.0.1/src/covers/albumcoverfetcher.cpp 2012-02-26 11:37:56.351044572 -0500
-@@ -108,12 +108,16 @@ void AlbumCoverFetcher::StartRequests()
-
- void AlbumCoverFetcher::SingleSearchFinished(quint64 request_id, CoverSearchResults results) {
- AlbumCoverFetcherSearch* search = active_requests_.take(request_id);
-+ if (!search)
-+ return;
- search->deleteLater();
- emit SearchFinished(request_id, results, search->statistics());
- }
-
- void AlbumCoverFetcher::SingleCoverFetched(quint64 request_id, const QImage& image) {
- AlbumCoverFetcherSearch* search = active_requests_.take(request_id);
-+ if (!search)
-+ return;
- search->deleteLater();
- emit AlbumCoverFetched(request_id, image, search->statistics());
- }
diff --git a/libre/clementine-libre/clementine-fresh-start.patch b/libre/clementine-libre/clementine-fresh-start.patch
deleted file mode 100644
index 9bf12973d..000000000
--- a/libre/clementine-libre/clementine-fresh-start.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff -rupN clementine-0.7.1.old/data/schema/schema.sql clementine-0.7.1/data/schema/schema.sql
---- clementine-0.7.1.old/data/schema/schema.sql 2011-03-29 15:16:12.000000000 -0400
-+++ clementine-0.7.1/data/schema/schema.sql 2012-01-12 19:15:39.889374607 -0500
-@@ -35,4 +35,5 @@ CREATE TABLE songs (
- CREATE TABLE schema_version (
- version INTEGER NOT NULL
- );
-+
- INSERT INTO schema_version (version) VALUES (0);
diff --git a/libre/clementine-libre/imobiledevice.patch b/libre/clementine-libre/imobiledevice.patch
deleted file mode 100644
index 9d387fd2f..000000000
--- a/libre/clementine-libre/imobiledevice.patch
+++ /dev/null
@@ -1,50 +0,0 @@
---- clementine-1.0.1/src/CMakeLists.txt.orig 2012-04-12 09:26:47.932990539 +0100
-+++ clementine-1.0.1/src/CMakeLists.txt 2012-04-12 09:28:40.553993173 +0100
-@@ -17,6 +17,10 @@
- include_directories(../3rdparty/qtwin)
- endif(WIN32)
-
-+if(ENABLE_IMOBILEDEVICE AND IMOBILEDEVICE_VERSION VERSION_GREATER 1.1.1)
-+ set(IMOBILEDEVICE_USES_UDIDS ON)
-+endif()
-+
- include_directories(${CMAKE_BINARY_DIR})
- include_directories(${GLIB_INCLUDE_DIRS})
- include_directories(${LIBXML_INCLUDE_DIRS})
-@@ -1008,6 +1012,7 @@
- ${USBMUXD_LIBRARIES}
- gstafcsrc
- )
-+ link_directories(${IMOBILEDEVICE_LIBRARY_DIRS})
- link_directories(${USBMUXD_LIBRARY_DIRS})
- endif(HAVE_IMOBILEDEVICE)
-
---- clementine-1.0.1/src/config.h.in.orig 2011-12-02 21:24:43.000000000 +0000
-+++ clementine-1.0.1/src/config.h.in 2012-04-12 09:28:40.554993154 +0100
-@@ -38,6 +38,7 @@
- #cmakedefine HAVE_SPOTIFY
- #cmakedefine HAVE_STATIC_SQLITE
- #cmakedefine HAVE_WIIMOTEDEV
-+#cmakedefine IMOBILEDEVICE_USES_UDIDS
- #cmakedefine LEOPARD
- #cmakedefine SNOW_LEOPARD
- #cmakedefine USE_INSTALL_PREFIX
---- clementine-1.0.1/src/devices/ilister.cpp.orig 2012-04-12 09:28:38.407993781 +0100
-+++ clementine-1.0.1/src/devices/ilister.cpp 2012-04-12 09:28:40.554993154 +0100
-@@ -1,3 +1,4 @@
-+#include "config.h"
- #include "ilister.h"
- #include "imobiledeviceconnection.h"
-
-@@ -17,7 +18,11 @@
- void iLister::EventCallback(const idevice_event_t* event, void* context) {
- iLister* me = reinterpret_cast<iLister*>(context);
-
-+#ifdef IMOBILEDEVICE_USES_UDIDS
-+ const char* uuid = event->udid;
-+#else
- const char* uuid = event->uuid;
-+#endif
-
- switch (event->event) {
- case IDEVICE_DEVICE_ADD:
diff --git a/libre/clementine-libre/remove-nonfree-references-on-translations.patch b/libre/clementine-libre/remove-nonfree-references-on-translations.patch
deleted file mode 100644
index f80e7f5a7..000000000
--- a/libre/clementine-libre/remove-nonfree-references-on-translations.patch
+++ /dev/null
@@ -1,20088 +0,0 @@
-diff -rauN clementine-1.0.1/src/translations/ar.po clementine-libre-1.0.1/src/translations/ar.po
---- clementine-1.0.1/src/translations/ar.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/ar.po 2012-05-28 22:09:35.427205715 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "ابدأ قئمة التشغيل اللتي تعمل حالياً"
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/be.po clementine-libre-1.0.1/src/translations/be.po
---- clementine-1.0.1/src/translations/be.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/be.po 2012-05-29 13:46:37.876404109 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -311,7 +307,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -584,12 +579,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -815,10 +804,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1025,10 +1010,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Наладзіць калекцыю..."
-@@ -1046,10 +1027,6 @@
- msgid "Connect device"
- msgstr "Падлучэнне прылады"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1465,10 +1442,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1481,10 +1454,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Спампаваць каталог Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1634,10 +1603,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1819,10 +1784,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2085,10 +2046,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2117,10 +2074,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2423,7 +2376,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2499,10 +2451,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2759,10 +2707,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2897,7 +2841,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -3004,10 +2947,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3038,7 +2977,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3055,10 +2993,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3449,18 +3383,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3785,30 +3707,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3818,7 +3720,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3904,18 +3805,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4273,10 +4162,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4292,7 +4177,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4516,20 +4400,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4589,7 +4459,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4678,8 +4547,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/bg.po clementine-libre-1.0.1/src/translations/bg.po
---- clementine-1.0.1/src/translations/bg.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/bg.po 2012-05-29 13:48:35.013070898 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Необходим е Grooveshark Anywhere акаунт"
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Нуждаете се от премиум регистрация в Spotify."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -316,7 +312,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -589,14 +584,6 @@
- msgid "Always start playing"
- msgstr "Винаги да се започва възпроизвеждането"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"За да използвате Spotify в Clementine е необходима допълнителна приставка. "
--"Иската ли да я свалите и инсталирате сега?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Получи се грешка при копирането на iTunes базата данни от утройството"
-@@ -822,10 +809,6 @@
- msgid "CUE sheet support"
- msgstr "Поддръжка на CUE листове"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Отказ"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Смени обложката"
-@@ -1038,10 +1021,6 @@
- msgid "Configure Shortcuts"
- msgstr "Настройване на бързите клавиши"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Настройване на Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Настройване на библиотека..."
-@@ -1060,10 +1039,6 @@
- msgid "Connect device"
- msgstr "Свързване на устройство"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Свързване към Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Постоянен битов поток"
-@@ -1480,10 +1455,6 @@
- msgid "Download this album..."
- msgstr "Сваляне на този албум..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Изтегляне..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Сваляне на icecast директорията"
-@@ -1496,10 +1467,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Сваляне на каталог Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Изтегляне на приставка за Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Сваляне на метаданни"
-@@ -1654,10 +1621,6 @@
- msgid "Error deleting songs"
- msgstr "Грешка при изтриване на песни"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Грешка при изтеглянето на приставка за Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1839,12 +1802,6 @@
- msgid "Font size"
- msgstr "Размер на шрифта"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Поради причини, свързани с лицензирането, поддръжката на Spotify е като "
--"отделна приставка."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Принудително кодиране в моно"
-@@ -2117,10 +2074,6 @@
- "В динамичен режим новите песни ще бъдат избирани и добавяни към списъка с "
- "песни всеки път, когато свърши песента."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Входящи"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Включване на обложката в известяването"
-@@ -2149,10 +2102,6 @@
- msgid "Insert..."
- msgstr "Вмъкване..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Инсталирани"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Интернет"
-@@ -2459,7 +2408,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2535,10 +2483,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Списъкът с песни да е наличен в режим извън мрежа"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Грешка при отговора"
-@@ -2798,10 +2742,6 @@
- msgid "Not enough neighbors"
- msgstr "Недостатъчно съседи"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Не е инсталиран"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Не сте вписан"
-@@ -2936,7 +2876,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Парола"
-@@ -3043,10 +2982,6 @@
- msgid "Playlists"
- msgstr "Списъци с песни"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Състояние на приставката:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Поп"
-@@ -3077,7 +3012,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Настройки"
-@@ -3095,10 +3029,6 @@
- msgid "Preferred audio format"
- msgstr "Предпочитан аудио формат"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Предпочитан битов поток"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Предпочитан формат"
-@@ -3489,18 +3419,6 @@
- msgid "Search Magnatune"
- msgstr "Търси в Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Търсене в Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Търсене в Spotify (отваря нов подпрозорец)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Търсене в Spotify (отваря нов подпрозорец)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Търсене във всички източници (библиотека, интернет услуги, ...)"
-@@ -3826,30 +3744,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Грешка в вписване в Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Приставка за Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Приставката за Spotify не е инсталирана"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Стандартно"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Със звезда"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Стартиране на текущо възпроизвеждания списък с песни"
-@@ -3859,7 +3757,6 @@
- msgstr "Начало на прекодирането"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr "Започнете да пишете в полето за търсее за да намерите музика на %1."
-@@ -3945,18 +3842,6 @@
- msgid "Switch provider"
- msgstr "Смяна на доставчика"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Синхронизиране на входящата кутия на Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Синхронизиране на списъка с песни от Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Синхронизиране на оценените песни от Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Табовете отгоре"
-@@ -4342,10 +4227,6 @@
- msgid "Use the system proxy settings"
- msgstr "Използване на системните настройки за сървър-посредник"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Използване на нормализация на звука"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Използван"
-@@ -4361,7 +4242,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Потребителско име"
-@@ -4599,20 +4479,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Нямате Grooveshark Anywhere акаунт."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Нямате Spotify Premium акаунт."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr "Отписан сте от Spotify, моля въведете отново паролата си в Настройки."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr "Изписан сте от Spotify, моля въведете паролата си отново"
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Харесвате тази песен"
-@@ -4680,7 +4546,6 @@
- msgstr "Вашите слушания: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Вашето потребителско име или парола не съвпада."
-
-@@ -4769,8 +4634,6 @@
- msgstr "в последните"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "килобита/сек"
-
-diff -rauN clementine-1.0.1/src/translations/bn.po clementine-libre-1.0.1/src/translations/bn.po
---- clementine-1.0.1/src/translations/bn.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/bn.po 2012-05-29 13:50:28.419737684 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "এক্ টি স্পটীফাই অ্যাকাউন্ট প্রয়োজন"
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -311,7 +307,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -584,14 +579,6 @@
- msgid "Always start playing"
- msgstr "স্থায়ী ভাবে সঙ্গীত চালু রাখুন"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"এক্ টি প্লাগ ইন প্রয়োজন। আপনি কি প্লাগ ইন টি ডাউনলোড করে ইন্সটল করতে ইচ্ছুক "
--"?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "iTune ডাটাবেস কপি করায় ত্রুটি র জন্য দুঃখিত ।"
-@@ -817,10 +804,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1021,10 +1004,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1042,10 +1021,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1455,10 +1430,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1471,10 +1442,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1624,10 +1591,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1809,10 +1772,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2075,10 +2034,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2107,10 +2062,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2413,7 +2364,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2489,10 +2439,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2749,10 +2695,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2887,7 +2829,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2994,10 +2935,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3028,7 +2965,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3045,10 +2981,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3439,18 +3371,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3775,30 +3695,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3808,7 +3708,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3894,18 +3793,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4263,10 +4150,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4282,7 +4165,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4506,20 +4388,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4579,7 +4447,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4668,8 +4535,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/br.po clementine-libre-1.0.1/src/translations/br.po
---- clementine-1.0.1/src/translations/br.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/br.po 2012-05-29 13:51:23.959737744 -0400
-@@ -252,10 +252,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Ur c'hont Grooveshark a zo dleet"
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Ret eo deoc'h kaout ur kont Spotify Premium."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -314,7 +310,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -588,14 +583,6 @@
- msgid "Always start playing"
- msgstr "Atav kregin da lenn"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Un enlugellad a zo ezhomm a-benn implij Spotify e-barzh Clementine. C'hoant "
--"ho peus pellgargañ ha staliañ anezhañ bremañ ?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -824,10 +811,6 @@
- msgid "CUE sheet support"
- msgstr "Kemer e kont ar CUE sheet"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Nullañ"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Kemmañ golo an albom"
-@@ -1040,10 +1023,6 @@
- msgid "Configure Shortcuts"
- msgstr "Kefluniañ ar Berradennoù"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Kefluniañ Spotify"
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Kefluniañ al levraoueg..."
-@@ -1061,10 +1040,6 @@
- msgid "Connect device"
- msgstr "An drobarzhell a zo o kennaskañ"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "O kennaskañ da Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "CBR"
-@@ -1480,10 +1455,6 @@
- msgid "Download this album..."
- msgstr "Pellgkargañ an albom..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Pellgargañ"
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "O pellgargañ katalog Icecast"
-@@ -1496,10 +1467,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "O pellgargañ katalog Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "O pellgargañ enlugellad Spotify..."
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "O pellgargañ metadaveennoù"
-@@ -1653,10 +1620,6 @@
- msgid "Error deleting songs"
- msgstr "Ur gudenn a zo savet e-kerzh dilamidigezh an tonioù"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Ur gudenn a zo savet o pellgargañ enlugellad Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1841,10 +1804,6 @@
- msgid "Font size"
- msgstr "Ment an nodrezh"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "Evit abegoù lañsav, meret eo Spotify gant un enlugellad distag."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Forsiñ an enkodiñ mono"
-@@ -2119,10 +2078,6 @@
- "E stumm dinamek, roudennoù nevez a vo choazet hag ouzhpennet e fin al roll "
- "c'hoari bep taol ma vo echu gant un ton."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Boest degemer"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Diskouez an albom er gemenadenn"
-@@ -2151,10 +2106,6 @@
- msgid "Insert..."
- msgstr "Enlakaat..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Staliaet"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2458,7 +2409,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2534,10 +2484,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Profil pennañ (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Lakaat ar roll c'hoari da vezañ lennus ezlinenn"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Respont furmed fall"
-@@ -2798,10 +2744,6 @@
- msgid "Not enough neighbors"
- msgstr "N'eus ket trawalc'h a amezeizen"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "N'eo ket staliet"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "N'eo ket kannasket"
-@@ -2936,7 +2878,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Tremenger"
-@@ -3043,10 +2984,6 @@
- msgid "Playlists"
- msgstr "Rollioù c'hoari"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Stad an enlugellad"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3077,7 +3014,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Gwellvezioù"
-@@ -3094,10 +3030,6 @@
- msgid "Preferred audio format"
- msgstr "Stumm audio gwellañ"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Bitrate gwellañ"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Stumm gwellañ"
-@@ -3488,18 +3420,6 @@
- msgid "Search Magnatune"
- msgstr "Klask Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Klask Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Klask Spotify (digeriñ un ivinel nevez)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Klask Spotify (digeriñ un ivinel nevez)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Klask e-touez holl o mammennoù (levraoueg, internet, servijoù...)"
-@@ -3824,30 +3744,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Kudenn kennaskañ gant Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Enlugellad Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Enlugellad Spotify n'eo ket staliet"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Boaz"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Gwellañ"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Kregiñ ar roll c'hoari"
-@@ -3857,7 +3757,6 @@
- msgstr "Kregin an transkodiñ"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr "Kregin da skrivañ er boest klask a-us evit kavout sonerezh war %1"
-@@ -3943,18 +3842,6 @@
- msgid "Switch provider"
- msgstr "Cheñch servij"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Sinkronizadur ar boest degemer Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Sinkronizadur ar roll c'hoari Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Sinkronizadur tonioù gwellañ Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Ivinelloù a-us"
-@@ -4336,10 +4223,6 @@
- msgid "Use the system proxy settings"
- msgstr "Implij dibarzhioù dre ziouer ar proksi"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Implij normalizadur an ampled"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Implijet"
-@@ -4355,7 +4238,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Lezanv"
-@@ -4592,22 +4474,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "N'ho peus ket a kont Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "N'ho peus ket a kont Spotify Premium."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"Digevreet oc'h bet eus Spotify, adskrivit ho ger-tremen e-barzh prenestr ar "
--"c'hefluniadoù."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr "Digevreet oc'h bet eus Spotify, adskrivit ho ger-tremen mar plij."
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Karout a rit ar roadenn-mañ"
-@@ -4675,7 +4541,6 @@
- msgstr "Ho scrobble: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Ho anv implijer pe ho tremenger a zo direizh."
-
-@@ -4764,8 +4629,6 @@
- msgstr "etrezek ar re ziwezhañ"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbde"
-
-diff -rauN clementine-1.0.1/src/translations/bs.po clementine-libre-1.0.1/src/translations/bs.po
---- clementine-1.0.1/src/translations/bs.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/bs.po 2012-05-29 13:52:24.389737809 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -311,7 +307,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -584,12 +579,6 @@
- msgid "Always start playing"
- msgstr "Uvjek počni sa slušanjem"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Desila se greška prilikom kopiranja iTunes baze podataka sa uređaja"
-@@ -815,10 +804,6 @@
- msgid "CUE sheet support"
- msgstr "CUE lista podrška"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Promjeni omot"
-@@ -1029,10 +1014,6 @@
- msgid "Configure Shortcuts"
- msgstr "Podesi prečice"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Podesi biblioteku..."
-@@ -1050,10 +1031,6 @@
- msgid "Connect device"
- msgstr "Spoji uređaj"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1467,10 +1444,6 @@
- msgid "Download this album..."
- msgstr "Preuzmi ovaj album..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Preuzimam Icecast fasciklu"
-@@ -1483,10 +1456,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Preuzimam Magnatune katalog"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1636,10 +1605,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1821,10 +1786,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2087,10 +2048,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2119,10 +2076,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2425,7 +2378,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2501,10 +2453,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2761,10 +2709,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2899,7 +2843,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -3006,10 +2949,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3040,7 +2979,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3057,10 +2995,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3451,18 +3385,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3787,30 +3709,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3820,7 +3722,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3906,18 +3807,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4275,10 +4164,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4294,7 +4179,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4518,20 +4402,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4591,7 +4461,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4680,8 +4549,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/ca.po clementine-libre-1.0.1/src/translations/ca.po
---- clementine-1.0.1/src/translations/ca.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/ca.po 2012-05-29 14:27:32.546406760 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Us cal un compte Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Cal un compte Premium de Spotify"
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -318,7 +314,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -591,14 +586,6 @@
- msgid "Always start playing"
- msgstr "Començar sempre reproduint"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Cal un connector addicional per utilitzar Spotify a Clementine. Voleu "
--"descarregar-lo i instaŀlar-lo ara?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -827,10 +814,6 @@
- msgid "CUE sheet support"
- msgstr "Suport per a CUE sheet"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Canceŀla"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Canviar la imatge de la portada"
-@@ -1043,10 +1026,6 @@
- msgid "Configure Shortcuts"
- msgstr "Configura dreceres"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Configura l'Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Configura la llibreria..."
-@@ -1064,10 +1043,6 @@
- msgid "Connect device"
- msgstr "Connecta el dispositiu"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Connectant amb Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Taxa de bits constant"
-@@ -1483,10 +1458,6 @@
- msgid "Download this album..."
- msgstr "Descarrega aquest àlbum..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Descarrega..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Descarregant el directori d'Icecast"
-@@ -1499,10 +1470,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Descarregant el catàleg de Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Descarregant el connector d'Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Descarregant metadades"
-@@ -1654,10 +1621,6 @@
- msgid "Error deleting songs"
- msgstr "Error esborrant cançons"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1839,10 +1802,6 @@
- msgid "Font size"
- msgstr "Mida de la font"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Força la codificació mono"
-@@ -2110,10 +2069,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Safata d'entrafa"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Incloure la caràtula a la notificació"
-@@ -2142,10 +2097,6 @@
- msgid "Insert..."
- msgstr "Insereix..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Instaŀlat"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2450,7 +2401,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2526,10 +2476,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Resposta malformada"
-@@ -2788,10 +2734,6 @@
- msgid "Not enough neighbors"
- msgstr "No hi ha prous veïns"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "No heu iniciat la sessió"
-@@ -2926,7 +2868,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Contrasenya"
-@@ -3033,10 +2974,6 @@
- msgid "Playlists"
- msgstr "Llistes de reproducció"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3067,7 +3004,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Preferències"
-@@ -3084,10 +3020,6 @@
- msgid "Preferred audio format"
- msgstr "Format d'àudio preferit"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Format preferit"
-@@ -3478,18 +3410,6 @@
- msgid "Search Magnatune"
- msgstr "Cercar a Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3814,30 +3734,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Error en iniciar sessió a Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Connector d'Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Connector d'Spotify no instaŀlat"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Estàndard"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Destacat"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Inicia la llista de reproducció que s'està reproduint"
-@@ -3847,7 +3747,6 @@
- msgstr "Inicia transcodificació"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3933,18 +3832,6 @@
- msgid "Switch provider"
- msgstr "Canvia de proveïdor"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4314,10 +4201,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Usat"
-@@ -4333,7 +4216,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Nom d'usuari"
-@@ -4560,20 +4442,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4636,7 +4504,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4725,8 +4592,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/cs.po clementine-libre-1.0.1/src/translations/cs.po
---- clementine-1.0.1/src/translations/cs.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/cs.po 2012-05-29 14:53:26.439741827 -0400
-@@ -257,10 +257,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Je požadován účet Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Je požadován účet Spotify Premium."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -321,7 +317,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -594,14 +589,6 @@
- msgid "Always start playing"
- msgstr "Vždy začít přehrávat"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Pro používání Spotify v Clementine je vyžadován přídavný modul. Chcete jej "
--"stáhnout a nainstalovat nyní?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Při kopírování databáze iTunes ze zařízení nastala chyba"
-@@ -827,10 +814,6 @@
- msgid "CUE sheet support"
- msgstr "Podpora pro list CUE"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Zrušit"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Změnit obal"
-@@ -1041,10 +1024,6 @@
- msgid "Configure Shortcuts"
- msgstr "Nastavit klávesové zkratky"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Nastavit Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Nastavit sbírku..."
-@@ -1062,10 +1041,6 @@
- msgid "Connect device"
- msgstr "Připojit zařízení"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Připojuje se k Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Stálý datový tok"
-@@ -1481,10 +1456,6 @@
- msgid "Download this album..."
- msgstr "Stáhnout toto album..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Stáhnout..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Stahuje se adresář Icecast"
-@@ -1497,10 +1468,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Stahuje se katalog Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Stahuje se přídavný modul Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Stahují se metadata"
-@@ -1653,10 +1620,6 @@
- msgid "Error deleting songs"
- msgstr "Chyba při mazání písní"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Chyba při stahování přídavného modulu Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1838,11 +1801,6 @@
- msgid "Font size"
- msgstr "Velikost písma"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Z licenčních důvodů je podpora pro Spotify v odděleném přídavném modulu"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Vynutit monokódování"
-@@ -2115,10 +2073,6 @@
- "V dynamickém režimu budou nové skladby vybrány a přidány do seznamu skladeb "
- "pokaždé, když píseň skončí."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Doručená pošta"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Zahrnout obal alba do oznámení"
-@@ -2147,10 +2101,6 @@
- msgid "Insert..."
- msgstr "Vložit..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Nainstalován"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2456,7 +2406,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2532,12 +2481,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Hlavní profil"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--"Zajistit, že seznam skladeb bude dostupný, i když počítač nebude připojen k "
--"internetu"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Poškozená odpověď"
-@@ -2796,10 +2739,6 @@
- msgid "Not enough neighbors"
- msgstr "Nedostatek sousedů"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Nenainstalován"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Nepřihlášen"
-@@ -2934,7 +2873,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Heslo"
-@@ -3041,10 +2979,6 @@
- msgid "Playlists"
- msgstr "Seznamy skladeb"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Stav přídavného modulu:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3075,7 +3009,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Nastavení"
-@@ -3092,10 +3025,6 @@
- msgid "Preferred audio format"
- msgstr "Upřednostňovaný zvukový formát"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Upřednostňovaný datový tok"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Upřednostňovaný formát"
-@@ -3486,18 +3415,6 @@
- msgid "Search Magnatune"
- msgstr "Hledat na Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Hledat v Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Hledat v Spotify (otevře novou kartu)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Hledat v Spotify (otevře novou kartu)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Hledat ve všech vašich zdrojích (sbírka, internetové služby, ...)"
-@@ -3822,30 +3739,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Chyba přihlášení k Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Přídavný modul Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Přídavný modul Spotify není nainstalován"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Obvyklý"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "S hvězdičkou"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Přehrát současnou skladbu v seznamu skladeb"
-@@ -3855,7 +3752,6 @@
- msgstr "Převést"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr "Začněte psát ve vyhledávacím poli pro nalezení hudby na %1."
-@@ -3941,18 +3837,6 @@
- msgid "Switch provider"
- msgstr "Přepnout poskytovatele"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Synchronizuje se schránka Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Synchronizuje se seznam skladeb Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Synchronizují se skladby označené hvězdičkou na Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Karty nahoře"
-@@ -4329,10 +4213,6 @@
- msgid "Use the system proxy settings"
- msgstr "Použít systémové nastavení proxy"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Použít normalizaci hlasitosti"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Použito"
-@@ -4348,7 +4228,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Uživatelské jméno"
-@@ -4584,22 +4463,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Nemáte účet Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Nemáte účet Spotify Premium."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"Byl jste odhlášen ze Spotify. zadejte, prosím, své heslo v dialogu pro "
--"nastavení znovu."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr "Byl jste odhlášen ze Spotify. zadejte, prosím, své heslo znovu."
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Tato skladba patří mezi vaše oblíbené"
-@@ -4667,7 +4530,6 @@
- msgstr "Váš počet přehrání: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Uživatelské jméno nebo heslo bylo nesprávné."
-
-@@ -4756,8 +4618,6 @@
- msgstr "za posledních"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kb/s"
-
-diff -rauN clementine-1.0.1/src/translations/cy.po clementine-libre-1.0.1/src/translations/cy.po
---- clementine-1.0.1/src/translations/cy.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/cy.po 2012-05-29 14:57:59.696408611 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/da.po clementine-libre-1.0.1/src/translations/da.po
---- clementine-1.0.1/src/translations/da.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/da.po 2012-05-29 14:59:00.383075364 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "En Spotify Premium konto er påkrævet."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -315,7 +311,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -588,12 +583,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -819,10 +808,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1023,10 +1008,6 @@
- msgid "Configure Shortcuts"
- msgstr "Konfigurér Genveje"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Indstil bibliotek..."
-@@ -1044,10 +1025,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1457,10 +1434,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1473,10 +1446,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1628,10 +1597,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1813,10 +1778,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2079,10 +2040,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Inkludér albumkunst i bekendtgørelsen"
-@@ -2111,10 +2068,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2417,7 +2370,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2493,10 +2445,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Misdannet svar"
-@@ -2753,10 +2701,6 @@
- msgid "Not enough neighbors"
- msgstr "Ikke nok naboer"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2891,7 +2835,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2998,10 +2941,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3032,7 +2971,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3049,10 +2987,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3443,18 +3377,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3781,30 +3703,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Start den spilleliste der afspiller nu"
-@@ -3814,7 +3716,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3900,18 +3801,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4270,10 +4159,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4289,7 +4174,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4513,20 +4397,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4586,7 +4456,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4675,8 +4544,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/de.po clementine-libre-1.0.1/src/translations/de.po
---- clementine-1.0.1/src/translations/de.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/de.po 2012-05-29 15:03:39.899742271 -0400
-@@ -258,10 +258,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Ein Grooveshark Anywhere-Konto wird benötigt."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Ein Spotify Premium-Konto ist erforderlich."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -323,7 +319,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -597,14 +592,6 @@
- msgid "Always start playing"
- msgstr "Immer mit der Wiedergabe beginnen"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Ein zusätzlich Plugin ist benötigt, um Spotify in Clementine zu benutzen. "
--"Möchten Sie es jetzt herunterladen und installieren?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -832,10 +819,6 @@
- msgid "CUE sheet support"
- msgstr "Unterstützung von Cuesheets"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Abbrechen"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Cover ändern"
-@@ -1048,10 +1031,6 @@
- msgid "Configure Shortcuts"
- msgstr "Tastenkürzel einrichten"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Spotify konfigurieren..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Musiksammlung einrichten..."
-@@ -1069,10 +1048,6 @@
- msgid "Connect device"
- msgstr "Gerät verbinden"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Verbindung mit Spotify wird aufgebaut"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Konstante Bitrate"
-@@ -1488,10 +1463,6 @@
- msgid "Download this album..."
- msgstr "Album herunterladen..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Herunterladen..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Lade Icecast-Verzeichnis herunter"
-@@ -1504,10 +1475,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Magnatune-Katalog wird geladen"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Spotify-Plugin wird heruntergeladen"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Metadaten werden heruntergeladen"
-@@ -1662,10 +1629,6 @@
- msgid "Error deleting songs"
- msgstr "Fehler beim Löschen der Titel"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Fehler beim herunterladen von Spotify-Plugin"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1847,12 +1810,6 @@
- msgid "Font size"
- msgstr "Schriftgröße"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Aus lizenzrechtlichen Gründen, ist die Spotify-Unterstützung in einem "
--"Separaten Plugin enthalten."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Mono Encoding erzwingen"
-@@ -2125,10 +2082,6 @@
- "Im dynamischen Modus werden neue Stücke automatisch ausgewählt und an die "
- "Wiedergabeliste angehängt, sobald ein Titel zu Ende ist."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Posteingang"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Cover in der Benachrichtigung anzeigen"
-@@ -2157,10 +2110,6 @@
- msgid "Insert..."
- msgstr "Einfügen..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Installiert"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2465,7 +2414,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2541,10 +2489,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Standard - Profil (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Wiedergabeliste für die Offlinebenutzung verfügbar machen"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Ungültige Antwort"
-@@ -2803,10 +2747,6 @@
- msgid "Not enough neighbors"
- msgstr "Nicht genug Nachbarn"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Nicht installiert"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Nicht angemeldet"
-@@ -2941,7 +2881,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Passwort"
-@@ -3049,10 +2988,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Plugin-Status"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3083,7 +3018,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Einstellungen"
-@@ -3100,10 +3034,6 @@
- msgid "Preferred audio format"
- msgstr "Bevorzugtes Dateiformat"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Bevorzugte Bitrate"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Bevorzugtes Format"
-@@ -3494,18 +3424,6 @@
- msgid "Search Magnatune"
- msgstr "Magnatune durchsuchen"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Spotify-Suche"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Spotify-Suche (öffnet im neuen Tab)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Spotify-Suche (öffnet im neuen Tab)"
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Alle Quellen durchsuchen (Sammlung, Internetdienste, …)"
-@@ -3832,30 +3750,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Fehler beim anmelden bei Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify-Plugin"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Spotify-Plugin nicht installiert"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standard"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Markiert"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Spiele das aktuelle Stück in der Wiedergabeliste ab"
-@@ -3865,7 +3763,6 @@
- msgstr "Konvertieren"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr "Benutzen Sie die Suchleiste um Musik auf %1 zu finden."
-@@ -3951,18 +3848,6 @@
- msgid "Switch provider"
- msgstr "Anbieter wechseln"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Synchronisiere Spotify Postfach"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Synchronisiere Spotify Wiedergabeliste"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Synchronisiere markierte Stücke von Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Tabs oben"
-@@ -4345,10 +4230,6 @@
- msgid "Use the system proxy settings"
- msgstr "Verwende Proxy-Einstellungen des Betriebssystems"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Belegt"
-@@ -4364,7 +4245,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Benutzername"
-@@ -4602,20 +4482,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Sie haben kein Grooveshark Anywhere-Konto."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Sie haben kein Spotify Premium-Konto."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Sie lieben dieses Stück"
-@@ -4683,7 +4549,6 @@
- msgstr "Ihre Scrobbles: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Ihr Benutzername oder Kennwort sind ungültig."
-
-@@ -4772,8 +4637,6 @@
- msgstr "in den letzten"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "Kb/s"
-
-diff -rauN clementine-1.0.1/src/translations/el.po clementine-libre-1.0.1/src/translations/el.po
---- clementine-1.0.1/src/translations/el.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/el.po 2012-05-29 15:04:37.229742284 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Απαιτείτε ένας λογαρισμός Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Απαιτείται premium λογαριασμός Spotify."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -318,7 +314,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -591,14 +586,6 @@
- msgid "Always start playing"
- msgstr "Έναρξη αναπαραγωγής πάντα"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Απαιτείται ένα πρόσθετο για να χρησιμοποιήσετε το Spotify. Θέλετε να το "
--"κατεβάσετε και να το εγκαταστήσετε τώρα;"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -827,10 +814,6 @@
- msgid "CUE sheet support"
- msgstr "Υποστήριξη φύλλων CUE"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Άκυρο"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Αλλαγή εξώφυλλου καλλιτέχνη"
-@@ -1046,10 +1029,6 @@
- msgid "Configure Shortcuts"
- msgstr "Ρύθμιση συντομεύσεων"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Ρύθμιση του Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Παραμετροποίηση της βιβλιοθήκης"
-@@ -1069,10 +1048,6 @@
- msgid "Connect device"
- msgstr "Σύνδεση συσκευής"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Σύνδεση στο Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Σταθερός ρυθμός bit"
-@@ -1488,10 +1463,6 @@
- msgid "Download this album..."
- msgstr "Μεταφόρτωση αυτού του άλμπουμ..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Λήψη..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Μεταφόρτωση καταλόγου Icecast"
-@@ -1504,10 +1475,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Μεταφόρτωση καταλόγου του Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Λήψη πρόσθετου για το Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Λήψη μεταδεδομένων"
-@@ -1664,10 +1631,6 @@
- msgid "Error deleting songs"
- msgstr "Σφάλμα κατά την διαγραφή τραγουδιών"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Σφάλμα στην λήψη του πρόσθετου του Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1850,11 +1813,6 @@
- msgid "Font size"
- msgstr "Μέγεθος γραμματοσειράς"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Για λόγους αδειοδότησης η υποστήριξη για το Spotify γίνεται ξεχωριστά."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Επιβολή κωδικοποίησης mono"
-@@ -2129,10 +2087,6 @@
- "Στην δυναμική λειτουργία νέα κομμάτια θα επιλέγονται και τοποθετούνται στην "
- "λίστα κάθε φορά που ένα τραγούδι τελειώνει."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Εισερχόμενα"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Εμφάνιση του άλμπουμ (εικόνα) στην ειδοποίηση"
-@@ -2163,10 +2117,6 @@
- msgid "Insert..."
- msgstr "Εισαγωγή..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Εγκατεστημένο"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Διαδίκτυο"
-@@ -2471,7 +2421,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2547,10 +2496,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Κύριο προφίλ (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Η λίστα να είναι διαθέσιμη και εκτός σύνδεσης"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Παραμορφωμένη απάντηση"
-@@ -2812,10 +2757,6 @@
- msgid "Not enough neighbors"
- msgstr "Δεν υπάρχουν αρκετοί γείτονες"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Μη εγκατεστημένο"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Δεν είστε συνδεδεμένος"
-@@ -2950,7 +2891,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Συνθηματικό"
-@@ -3057,10 +2997,6 @@
- msgid "Playlists"
- msgstr "Λίστες"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Κατάσταση πρόσθετου:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3091,7 +3027,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Προτιμήσεις"
-@@ -3110,10 +3045,6 @@
- msgid "Preferred audio format"
- msgstr "Προτιμώμενη ηχητική διαμόρφωση"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Προτιμώμενος ρυθμός bit "
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Προτιμώμενη μορφή"
-@@ -3504,18 +3435,6 @@
- msgid "Search Magnatune"
- msgstr "Εύρεση στο Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Εύρεση Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Εύρεση Spotify (άνοιγμα νέας πινακίδας)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Εύρεση Spotify (άνοιγμα νέας πινακίδας)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Αναζήτηση σε όλες τις πηγές σας (βιβλιοθήκη, υπηρεσίες internet, ...)"
-@@ -3843,30 +3762,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Σφάλμα εισόδου στο Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Πρόσθετο Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Το πρόσθετο του Spotify μη εγκατεστημένο"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Κανονικό"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Με αστέρι"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Εκκίνηση της λίστας αναπαραγωγής που παίζει τώρα"
-@@ -3876,7 +3775,6 @@
- msgstr "Εκκίνηση επανακωδικοποίησης"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3964,18 +3862,6 @@
- msgid "Switch provider"
- msgstr "Αλλαγή παροχέα"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Συγχρονισμός εισερχομένων του Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Συγχρονισμός λίστας του Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Συγχρονισμός κομματιών επισημασμένων με αστέρι του Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Καρτέλες στην κορυφή"
-@@ -4361,10 +4247,6 @@
- msgid "Use the system proxy settings"
- msgstr "Χρήση ρυθμίσεων του διαμεσολαβητή του συστήματος"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Χρήση κανονικοποίησης ήχου"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Σε χρήση"
-@@ -4380,7 +4262,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Όνομα χρήστη"
-@@ -4617,22 +4498,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Δεν έχετε λογαριασμό στο GrooveShark Anywhere."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Δεν έχετε Premium λογαριασμό στο Spotify."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"Έχετε εξέλθει από το Spotify, παρακαλώ εισάγετε πάλι τον κωδικό σας στις "
--"ρυθμίσεις."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr "Έχετε εξέλθει από το Spotify, παρακαλώ εισάγετε πάλι τον κωδικό σας."
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Λατρεύεις αυτό το κομμάτι"
-@@ -4699,7 +4564,6 @@
- msgstr "Τα scrobbles σου: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Το όνομα χρήστη ή το συνθηματικό ήταν λανθασμένο."
-
-@@ -4788,8 +4652,6 @@
- msgstr "εντός των τελευταίων"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/en_CA.po clementine-libre-1.0.1/src/translations/en_CA.po
---- clementine-1.0.1/src/translations/en_CA.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/en_CA.po 2012-05-29 15:05:50.036409383 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr "Configure Shortcuts"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Configure library..."
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1452,10 +1429,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1468,10 +1441,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Downloading Magnatune catalogue"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1622,10 +1591,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1807,10 +1772,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2073,10 +2034,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Include album art in the notification"
-@@ -2105,10 +2062,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2411,7 +2364,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2487,10 +2439,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Malformed response"
-@@ -2748,10 +2696,6 @@
- msgid "Not enough neighbors"
- msgstr "Not enough neighbours"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2886,7 +2830,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2993,10 +2936,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3027,7 +2966,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3044,10 +2982,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3438,18 +3372,6 @@
- msgid "Search Magnatune"
- msgstr "Search Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3774,30 +3696,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Start the playlist currently playing"
-@@ -3807,7 +3709,6 @@
- msgstr "Start transcoding"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3893,18 +3794,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4262,10 +4151,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4281,7 +4166,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4505,20 +4389,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4578,7 +4448,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4667,8 +4536,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/en_GB.po clementine-libre-1.0.1/src/translations/en_GB.po
---- clementine-1.0.1/src/translations/en_GB.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/en_GB.po 2012-05-29 15:06:41.279742544 -0400
-@@ -252,10 +252,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "A Spotify Premium account is required."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -315,7 +311,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -588,14 +583,6 @@
- msgid "Always start playing"
- msgstr "Always start playing"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "An error occurred copying the iTunes database from the device"
-@@ -821,10 +808,6 @@
- msgid "CUE sheet support"
- msgstr "CUE sheet support"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Cancel"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Change cover art"
-@@ -1026,10 +1009,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Configure library..."
-@@ -1047,10 +1026,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1460,10 +1435,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1476,10 +1447,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1630,10 +1597,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1815,10 +1778,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2081,10 +2040,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Include album art in the notification"
-@@ -2113,10 +2068,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2419,7 +2370,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2495,10 +2445,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Malformed response"
-@@ -2755,10 +2701,6 @@
- msgid "Not enough neighbors"
- msgstr "Not enough neighbours"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2893,7 +2835,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -3000,10 +2941,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3034,7 +2971,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3051,10 +2987,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3445,18 +3377,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3781,30 +3701,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Start the playlist currently playing"
-@@ -3814,7 +3714,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3900,18 +3799,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4269,10 +4156,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4288,7 +4171,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4512,20 +4394,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4585,7 +4453,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4674,8 +4541,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/en.po clementine-libre-1.0.1/src/translations/en.po
---- clementine-1.0.1/src/translations/en.po 2011-12-02 16:24:44.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/en.po 2012-05-29 15:04:56.353075508 -0400
-@@ -178,9 +178,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
- "There are different types of smart playlist that offer different ways of "
-@@ -408,11 +405,6 @@
- msgid "Always start playing"
- msgstr ""
-
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-
-@@ -720,9 +712,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--msgid "Configure Spotify..."
--msgstr ""
--
- msgid "Configure library..."
- msgstr ""
-
-@@ -735,9 +724,6 @@
- msgid "Connect device"
- msgstr ""
-
--msgid "Connecting to Spotify"
--msgstr ""
--
- msgid "Constant bitrate"
- msgstr ""
-
-@@ -1045,9 +1031,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- msgid "Downloading metadata"
- msgstr ""
-
-@@ -1152,9 +1135,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #, qt-format
- msgid "Error loading %1"
- msgstr ""
-@@ -1280,9 +1260,6 @@
- msgid "Font size"
- msgstr ""
-
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- msgid "Force mono encoding"
- msgstr ""
-
-@@ -2409,15 +2386,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--msgid "Search Spotify"
--msgstr ""
--
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- msgid "Search for album covers..."
- msgstr ""
-
-@@ -2647,18 +2615,6 @@
- msgid "Speex"
- msgstr ""
-
--msgid "Spotify"
--msgstr ""
--
--msgid "Spotify login error"
--msgstr ""
--
--msgid "Spotify plugin"
--msgstr ""
--
--msgid "Spotify plugin not installed"
--msgstr ""
--
- msgid "Standard"
- msgstr ""
-
-@@ -2674,9 +2630,6 @@
- msgid "Start typing in the search box above to find music on Grooveshark."
- msgstr ""
-
--msgid "Start typing in the search box above to find music on Spotify."
--msgstr ""
--
- #, qt-format
- msgid "Starting %1"
- msgstr ""
-@@ -2731,15 +2684,6 @@
- msgid "Switch provider"
- msgstr ""
-
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- msgid "Tabs on top"
- msgstr ""
-
-@@ -3180,9 +3124,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
- msgid ""
- "You have selected a Premium-only audio type but do not have any account "
- "details entered"
-diff -rauN clementine-1.0.1/src/translations/eo.po clementine-libre-1.0.1/src/translations/eo.po
---- clementine-1.0.1/src/translations/eo.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/eo.po 2012-05-29 15:18:59.993076631 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Eraro okazis dum kopiado de la iTunes-datumbazo el aparato"
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/es.po clementine-libre-1.0.1/src/translations/es.po
---- clementine-1.0.1/src/translations/es.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/es.po 2012-05-29 15:22:56.383076862 -0400
-@@ -254,10 +254,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Se requiere una cuenta Grooveshrak Anywhere"
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Se requiere una cuenta Premium de Spotify."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -319,7 +315,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -592,14 +587,6 @@
- msgid "Always start playing"
- msgstr "Siempre empezar a reproducir"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Un plugin adicional es requerido para usar Spotify en Clementine. ¿Te "
--"gustaría descargarlo e instalarlo ahora?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -829,10 +816,6 @@
- msgid "CUE sheet support"
- msgstr "Soporte de hoja CUE"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Cancelar"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Cambiar portada"
-@@ -1046,10 +1029,6 @@
- msgid "Configure Shortcuts"
- msgstr "Configurar accesos rápidos"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Configurar Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Configurar colección..."
-@@ -1067,10 +1046,6 @@
- msgid "Connect device"
- msgstr "Conectar dispositivo"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Connectando con Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Flujo de bits constante"
-@@ -1486,10 +1461,6 @@
- msgid "Download this album..."
- msgstr "Descargar este álbum..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Descargar..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Descargar el directorio de Icecast"
-@@ -1502,10 +1473,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Descargando el catálogo de Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Descargando el plugin Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Descargando metadatos"
-@@ -1657,10 +1624,6 @@
- msgid "Error deleting songs"
- msgstr "Error al borrar canciones"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Error descargando el plugin Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1844,12 +1807,6 @@
- msgid "Font size"
- msgstr "Tamaño de letra"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Por razones de licenciamiento, para usar Spotify se necesita un complemento "
--"separado."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Forzar la codificación en mono"
-@@ -2123,10 +2080,6 @@
- "En el modo dinámico las canciones nuevas se elegirán y añadirán a la lista "
- "de reproducción cada vez que termine una canción."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Bandeja de entrada"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Incluir carátula en la notificación"
-@@ -2155,10 +2108,6 @@
- msgid "Insert..."
- msgstr "Insertar..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Instalado"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2463,7 +2412,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2539,10 +2487,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Perfil principal (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Hacer disponible la lista de reproducción fuera de línea"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Respuesta malformada"
-@@ -2803,10 +2747,6 @@
- msgid "Not enough neighbors"
- msgstr "No hay suficientes vecinos"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "No instalado"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "No ha iniciado sesión"
-@@ -2941,7 +2881,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Contraseña"
-@@ -3048,10 +2987,6 @@
- msgid "Playlists"
- msgstr "Listas de reproducción"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Estado del complemento:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3082,7 +3017,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Preferencias"
-@@ -3099,10 +3033,6 @@
- msgid "Preferred audio format"
- msgstr "Formato de audio preferido"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Formato preferido"
-@@ -3493,18 +3423,6 @@
- msgid "Search Magnatune"
- msgstr "Buscar en Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Buscar en Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Buscar en Spotify (abre una nueva pestaña)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Buscar en Spotify (abre una pestaña nueva)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Buscar en todas tus fuentes(libreria, servicios de internet, ...) "
-@@ -3830,30 +3748,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Error de inicio de sesión de Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Complemento de Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "El complemento de Spotify no está instalado"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Estándar"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Destacado"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Iniciar la lista de reproducción actualmente reproduciendose"
-@@ -3863,7 +3761,6 @@
- msgstr "Comenzar conversión"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3951,18 +3848,6 @@
- msgid "Switch provider"
- msgstr "Cambiar proveedor"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Sincronizando bandeja de entrada de Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Sincronizando lista de reproducción de Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Sincronizando canciones destacadas de Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Pestañas en la parte superior"
-@@ -4341,10 +4226,6 @@
- msgid "Use the system proxy settings"
- msgstr "Utilizar la configuración para proxy del sistema"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Usado"
-@@ -4360,7 +4241,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Nombre de Usuario"
-@@ -4599,20 +4479,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "No tienes una cuenta Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "No tienes una cuenta Spotify Premium."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Amas esta canción"
-@@ -4680,7 +4546,6 @@
- msgstr "Sus scrobbles: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Tu nombre de usuario o contraseña es incorrecta."
-
-@@ -4769,8 +4634,6 @@
- msgstr "en los últimos"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/et.po clementine-libre-1.0.1/src/translations/et.po
---- clementine-1.0.1/src/translations/et.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/et.po 2012-05-29 15:46:09.829745009 -0400
-@@ -251,10 +251,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -310,7 +306,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -583,12 +578,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -814,10 +803,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Loobu"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1018,10 +1003,6 @@
- msgid "Configure Shortcuts"
- msgstr "Kiirklahvide seadistamine"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1039,10 +1020,6 @@
- msgid "Connect device"
- msgstr "Ühenda seade"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1452,10 +1429,6 @@
- msgid "Download this album..."
- msgstr "Lae see album..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1468,10 +1441,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1622,10 +1591,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1807,10 +1772,6 @@
- msgid "Font size"
- msgstr "Kirja suurus"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2073,10 +2034,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2105,10 +2062,6 @@
- msgid "Insert..."
- msgstr "Lisa..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Paigaldatud"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2411,7 +2364,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2487,10 +2439,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Vigane vastus"
-@@ -2748,10 +2696,6 @@
- msgid "Not enough neighbors"
- msgstr "Pole piisavalt naabreid"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2886,7 +2830,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Parool"
-@@ -2993,10 +2936,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3027,7 +2966,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Seadistused"
-@@ -3044,10 +2982,6 @@
- msgid "Preferred audio format"
- msgstr "Eelistatud heli vorming"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Eelistatud vorming"
-@@ -3438,18 +3372,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3774,30 +3696,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3807,7 +3709,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3893,18 +3794,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4262,10 +4151,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Kasutuses"
-@@ -4281,7 +4166,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Kasutajanimi"
-@@ -4505,20 +4389,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4578,7 +4448,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4667,8 +4536,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/eu.po clementine-libre-1.0.1/src/translations/eu.po
---- clementine-1.0.1/src/translations/eu.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/eu.po 2012-05-29 15:47:59.699745177 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/fa.po clementine-libre-1.0.1/src/translations/fa.po
---- clementine-1.0.1/src/translations/fa.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/fa.po 2012-05-29 15:57:55.966412407 -0400
-@@ -252,10 +252,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "حساب کاربری «Spotify Premium» مورد نیاز است."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -315,7 +311,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -588,14 +583,6 @@
- msgid "Always start playing"
- msgstr "همواره پخش را شروع کن"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"کلمنتاین به افزونهٔ دیگری برای استفادهٔ اسپاتیفای نیاز دارد. آیا می‌خواهید"
--" این افزونه را بارگیری و نصب نمایید؟"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "مشکلی هنگام کپی‌کردن بانک اطلاعاتی آی‌تیون از دستگاه پیش آمد"
-@@ -821,10 +808,6 @@
- msgid "CUE sheet support"
- msgstr "برگهٔ پشتیبانی CUE"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "لغو"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "تغییر جلد هنری"
-@@ -1035,10 +1018,6 @@
- msgid "Configure Shortcuts"
- msgstr "پیکربندی میان‌برها"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "پیکربندی Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "پیکربندی کتابخانه..."
-@@ -1056,10 +1035,6 @@
- msgid "Connect device"
- msgstr "اتصال دستگاه"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "اتصال به Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "ضرباهنگ ثابت"
-@@ -1475,10 +1450,6 @@
- msgid "Download this album..."
- msgstr "بارگیری این آلبوم..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "بارگیری..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "بارگیری پوشهٔ Icecast"
-@@ -1491,10 +1462,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "بارگیری کاتالوگ Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "بارگیری افزونهٔ Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "بارگیری ابرداده"
-@@ -1645,10 +1612,6 @@
- msgid "Error deleting songs"
- msgstr "خطا در پاک کردن آهنگ‌ها"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "خطا در بارگیری افزونهٔ Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1830,10 +1793,6 @@
- msgid "Font size"
- msgstr "اندازهٔ قلم"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "به دلایل اجازه‌نامه، پشتیبانی اسپاتیفای در افزونه‌ای جداگانه است."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "رمزینهٔ مونو پخش کن"
-@@ -2104,10 +2063,6 @@
- "در حالت دینامیک پس از پایان هر آهنگ، قطعه‌های تازه انتخاب و به لیست‌پخش "
- "افزوده می‌شوند."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "صندوق ورودی"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "آلبوم هنری را در آگاهساز قرار بده"
-@@ -2136,10 +2091,6 @@
- msgid "Insert..."
- msgstr "قرار دادن..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "نصب شد"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "اینترنت"
-@@ -2442,7 +2393,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2518,10 +2468,6 @@
- msgid "Main profile (MAIN)"
- msgstr "مشخصات اصلی (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "لیست‌پخش را بیرون‌خط در دسترس بگذار"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "پاسخ ناهنجار"
-@@ -2780,10 +2726,6 @@
- msgid "Not enough neighbors"
- msgstr "بدون همسایهٔ کافی"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "نصب نشده"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2918,7 +2860,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "کلمهٔ عبور"
-@@ -3025,10 +2966,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "وضعیت افزونه"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "پاپ"
-@@ -3059,7 +2996,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "تنظیمات‌"
-@@ -3076,10 +3012,6 @@
- msgid "Preferred audio format"
- msgstr "فرمت صوتی ترجیحی"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "فرمت ترجیحی"
-@@ -3470,18 +3402,6 @@
- msgid "Search Magnatune"
- msgstr "جستجوی Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "جستجوی Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "جستجوی Spotify (گشودن باریکهٔ تازه)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "جستجوی Spotify (گشودن باریکهٔ تازه)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3806,30 +3726,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "خطای ورود به سیستم Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "افزونهٔ Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "افزونهٔ Spotify نصب نیست"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "استاندارد"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "ستاره‌دار"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "شروع لیست‌پخش در حال پخش"
-@@ -3839,7 +3739,6 @@
- msgstr "شروع ترانسکد"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3925,18 +3824,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "همگام‌سازی صندوق ورودی اسپاتیفای"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "همگام‌سازی لیست‌پخش اسپاتیفای"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "همگام‌سازی قطعه‌های ستاره‌دار اسپاتیفای"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "باریکه‌ها در بالا"
-@@ -4314,10 +4201,6 @@
- msgid "Use the system proxy settings"
- msgstr "بکاربردن تنظیمات پراکسی سیستم"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "استفاده‌شده"
-@@ -4333,7 +4216,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "شناسه"
-@@ -4568,20 +4450,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "عاشق این آهنگ هستید"
-@@ -4648,7 +4516,6 @@
- msgstr "برونکشی‌های شما: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4737,8 +4604,6 @@
- msgstr "در آخرین"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/fi.po clementine-libre-1.0.1/src/translations/fi.po
---- clementine-1.0.1/src/translations/fi.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/fi.po 2012-05-29 16:22:14.749747287 -0400
-@@ -250,10 +250,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Grooveshark Anywhere tili vaaditaan käyttöön."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Spotifyn Premium-tili vaaditaan."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -311,7 +307,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -584,14 +579,6 @@
- msgid "Always start playing"
- msgstr "Aloita aina toisto"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Spotifyn käyttö Clementinessä vaatii lisäosan. Haluatko ladata ja asentaa "
--"sen nyt?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "iTunes-tietokantaa laitteesta ladatessa tapahtui virhe"
-@@ -819,10 +806,6 @@
- msgid "CUE sheet support"
- msgstr "CUE-tiedostojen tuki"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Peru"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Vaihda kansikuvaa"
-@@ -1032,10 +1015,6 @@
- msgid "Configure Shortcuts"
- msgstr "Pikanäppäinten asetukset..."
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Muokkaa Spotifya..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Kirjaston asetukset..."
-@@ -1053,10 +1032,6 @@
- msgid "Connect device"
- msgstr "Yhdistä laite"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Yhdistetään Spotifyyn"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Pysyvä bittinopeus"
-@@ -1468,10 +1443,6 @@
- msgid "Download this album..."
- msgstr "Lataa tämä levy..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Lataa..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Ladataan Icecast-hakemistoa"
-@@ -1484,10 +1455,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Ladataan Magnatune-luetteloa"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Ladataan Spotify-liitännäistä"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Noudetaan metadataa"
-@@ -1638,10 +1605,6 @@
- msgid "Error deleting songs"
- msgstr "Virhe kappaleita poistaessa"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Virhe ladatessa Spotify-liitännäistä"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1825,10 +1788,6 @@
- msgid "Font size"
- msgstr "Kirjasinkoko"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "Lisenssisyistä Spotify-tuki on erillinen liitännäinen."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Pakota monokoodaus"
-@@ -2097,10 +2056,6 @@
- "Dynaamisessa tilassa uusia kappaleita valitaan ja lisätään soittolistaan "
- "joka kerta kun yksi kappale on soitettu."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Saapuneet"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Näytä kansikuva ilmoituksen yhteydessä"
-@@ -2129,10 +2084,6 @@
- msgid "Insert..."
- msgstr "Lisää..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Asennettu"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2435,7 +2386,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2511,10 +2461,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Oletusprofiili (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Virheellinen vastaus"
-@@ -2775,10 +2721,6 @@
- msgid "Not enough neighbors"
- msgstr "Ei tarpeeksi naapureita"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Ei asennettu"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Ei kirjautunut"
-@@ -2913,7 +2855,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Salasana"
-@@ -3020,10 +2961,6 @@
- msgid "Playlists"
- msgstr "Soittolistat"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Liitännäisen tila:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3054,7 +2991,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Asetukset"
-@@ -3071,10 +3007,6 @@
- msgid "Preferred audio format"
- msgstr "Ensisijainen äänimuoto"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Ensisijainen muoto"
-@@ -3465,18 +3397,6 @@
- msgid "Search Magnatune"
- msgstr "Etsi Magnatunesta"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Etsi Spotifysta"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Etsi Spotifysta (avaa uuden välilehden)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Etsi Spotifysta (avaa uuden välilehden)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Etsi kaikista lähteistä (kirjasto, internet, ...)"
-@@ -3801,30 +3721,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Spotify-kirjautumisvirhe"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify-liitännäinen"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Spotify-liitännäistä ei ole asennettu"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Normaali"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3834,7 +3734,6 @@
- msgstr "Aloita muunnos"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3920,18 +3819,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Synkronoi Spotify saapuneet"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Synkronoi Spotify soittolistan"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Synkronoi Spotify arvostellut kappaleet"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Välilehdet ylhäällä"
-@@ -4306,10 +4193,6 @@
- msgid "Use the system proxy settings"
- msgstr "Käytä järjestelmän välityspalvelinasetuksia"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Käytetty"
-@@ -4325,7 +4208,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Käyttäjätunnus"
-@@ -4562,20 +4444,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Sinulla ei ole Grooveshark Anywhere tiliä."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Sinulla ei ole Spotify Premium tiliä."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Tykkäät tästä kappaleesta"
-@@ -4635,7 +4503,6 @@
- msgstr "Lähetyksesi: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Käyttäjätunnus tai salasana oli virheellinen."
-
-@@ -4724,8 +4591,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kb/s"
-
-diff -rauN clementine-1.0.1/src/translations/fr.po clementine-libre-1.0.1/src/translations/fr.po
---- clementine-1.0.1/src/translations/fr.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/fr.po 2012-05-29 16:25:03.779747446 -0400
-@@ -258,10 +258,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Un compte Grooveshark Anywhere est nécessaire."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Un compte Spotify Premium est nécessaire."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -323,7 +319,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -597,14 +592,6 @@
- msgid "Always start playing"
- msgstr "Toujours commencer à lire"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Un module externe est requis pour pouvoir utiliser Spotify. Voulez-vous le "
--"télécharger et l'installer maintenant ?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -838,10 +825,6 @@
- msgid "CUE sheet support"
- msgstr "Support des CUE sheet."
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Annuler"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Changer la couverture de l'album"
-@@ -1056,10 +1039,6 @@
- msgid "Configure Shortcuts"
- msgstr "Configurer les raccourcis clavier"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Configurer Spotify…"
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Configurer votre bibliothèque..."
-@@ -1077,10 +1056,6 @@
- msgid "Connect device"
- msgstr "Connexion du périphérique"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Connexion à Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Débit constant"
-@@ -1496,10 +1471,6 @@
- msgid "Download this album..."
- msgstr "Télécharger cet album..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Télécharger..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Téléchargement du catalogue d'Icecast"
-@@ -1512,10 +1483,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Téléchargement du catalogue Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Téléchargement du module Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Téléchargement des métadonnées"
-@@ -1671,10 +1638,6 @@
- msgid "Error deleting songs"
- msgstr "Erreur lors de la suppression des morceaux"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Erreur lors du téléchargement du module Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1858,12 +1821,6 @@
- msgid "Font size"
- msgstr "Taille de la police"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Pour des raisons de licence, le support de Spotify est dans un module "
--"séparé."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Forcer l’encodage en mono"
-@@ -2138,10 +2095,6 @@
- "En mode dynamique, de nouvelles pistes seront choisies et ajoutées à la fin "
- "de la liste de lecture chaque fois qu'un morceau se terminera."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Boîte de réception"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Inclure la pochette de l'abum dans la fenêtre de notification"
-@@ -2170,10 +2123,6 @@
- msgid "Insert..."
- msgstr "Insérer..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Installé(e)(s)"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2481,7 +2430,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2557,10 +2505,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Profil principal (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Rendre la liste de lecture accessible hors ligne"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Réponse mal formatée"
-@@ -2822,10 +2766,6 @@
- msgid "Not enough neighbors"
- msgstr "Voisins insuffisants"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Non installé"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Non connecté"
-@@ -2960,7 +2900,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Mot de passe"
-@@ -3067,10 +3006,6 @@
- msgid "Playlists"
- msgstr "Listes de lecture"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "État du module externe :"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3101,7 +3036,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Préférences"
-@@ -3118,10 +3052,6 @@
- msgid "Preferred audio format"
- msgstr "Format audio préféré"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Débit préféré"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Format préféré"
-@@ -3512,18 +3442,6 @@
- msgid "Search Magnatune"
- msgstr "Recherche Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Recherche Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Recherche Spotify (ouvre un nouvel onglet)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Recherche Spotify (ouvre un nouvel onglet)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3851,30 +3769,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Erreur lors de la connexion à Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Module externe Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Le module externe de Spotify n'est pas installé"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standard"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Favoris"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Commencer la liste de lecture jouée actuellement"
-@@ -3884,7 +3782,6 @@
- msgstr "Démarrer transcodage"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3972,18 +3869,6 @@
- msgid "Switch provider"
- msgstr "Changer de service"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Synchronisation de la boîte de réception Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Synchronisation de la liste de lecture Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Synchronisation des morceaux Spotify préférés"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Onglets au dessus"
-@@ -4369,10 +4254,6 @@
- msgid "Use the system proxy settings"
- msgstr "Utiliser les paramètres du système pour le serveur mandataire"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Utilisé"
-@@ -4388,7 +4269,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Nom d'utilisateur"
-@@ -4629,23 +4509,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Vous n'avez pas de compte Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Vous n'avez pas de compte Spotify Premium."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"Vous avez été déconnecté de Spotify ; merci de ressaisir votre mot de passe "
--"dans la fenêtre des préférences."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--"Vous avez été déconnecté de Spotify ; merci de ressaisir votre mot de passe."
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Vous aimez cette piste"
-@@ -4713,7 +4576,6 @@
- msgstr "Vos scrobbles : %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Votre nom d'utilisateur ou mot de passe est incorrect."
-
-@@ -4802,8 +4664,6 @@
- msgstr "parmi les derniers"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/gl.po clementine-libre-1.0.1/src/translations/gl.po
---- clementine-1.0.1/src/translations/gl.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/gl.po 2012-05-29 16:27:07.409747570 -0400
-@@ -251,10 +251,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -310,7 +306,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -583,12 +578,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Aconteceu un erro copiando a base de datos de iTunes do dispositivo"
-@@ -814,10 +803,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1022,10 +1007,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Configurar a biblioteca..."
-@@ -1043,10 +1024,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1456,10 +1433,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1472,10 +1445,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1625,10 +1594,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1810,10 +1775,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2076,10 +2037,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2108,10 +2065,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2415,7 +2368,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2491,10 +2443,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Resposta mal formada"
-@@ -2751,10 +2699,6 @@
- msgid "Not enough neighbors"
- msgstr "Viciños insuficientes"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2889,7 +2833,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2996,10 +2939,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3030,7 +2969,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3047,10 +2985,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3441,18 +3375,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3777,30 +3699,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Reproducir a playlist actualmente reproducindo"
-@@ -3810,7 +3712,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3896,18 +3797,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4265,10 +4154,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4284,7 +4169,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4508,20 +4392,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4581,7 +4451,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4670,8 +4539,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/he.po clementine-libre-1.0.1/src/translations/he.po
---- clementine-1.0.1/src/translations/he.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/he.po 2012-05-29 16:33:23.043081344 -0400
-@@ -252,10 +252,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -313,7 +309,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -586,12 +581,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "ארעה שגיאה בהעתקת מסד הנתונים של iTunes מההתקן"
-@@ -817,10 +806,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "שינוי עטיפת האלבום"
-@@ -1025,10 +1010,6 @@
- msgid "Configure Shortcuts"
- msgstr "הגדר קיצורי מקשים"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "הגדר את הספרייה..."
-@@ -1046,10 +1027,6 @@
- msgid "Connect device"
- msgstr "חבר התקן"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1464,10 +1441,6 @@
- msgid "Download this album..."
- msgstr "הורד את האלבום הזה..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "מוריד תיקיית Icecast"
-@@ -1480,10 +1453,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "מוריד את הקטלוג של Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1633,10 +1602,6 @@
- msgid "Error deleting songs"
- msgstr "שגיאה במחיקת שירים"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1818,10 +1783,6 @@
- msgid "Font size"
- msgstr "גודל הגופן"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2086,10 +2047,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "אומנות אלבום בתוך ההתראה"
-@@ -2118,10 +2075,6 @@
- msgid "Insert..."
- msgstr "הוספה..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "אינטרנט"
-@@ -2424,7 +2377,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2500,10 +2452,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "תגובה שגויה"
-@@ -2761,10 +2709,6 @@
- msgid "Not enough neighbors"
- msgstr "אין מספיק שכנים"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2899,7 +2843,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "סיסמא"
-@@ -3006,10 +2949,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "פופ"
-@@ -3040,7 +2979,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "מאפיינים"
-@@ -3057,10 +2995,6 @@
- msgid "Preferred audio format"
- msgstr "פורמט אודיו מועדף"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "פורמט מועדף"
-@@ -3451,18 +3385,6 @@
- msgid "Search Magnatune"
- msgstr "חיפוש ב־Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3787,30 +3709,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "התחל את רשימת־ההשמעה המתנגנת כעת"
-@@ -3820,7 +3722,6 @@
- msgstr "התחלת הקידוד"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3906,18 +3807,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "לשוניות למעלה"
-@@ -4280,10 +4169,6 @@
- msgid "Use the system proxy settings"
- msgstr "שימוש בהגדרות הפרוקסי של המערכת"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "בשימוש"
-@@ -4299,7 +4184,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "שם משתמש"
-@@ -4532,20 +4416,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "אתה אוהב את הרצועה הזו"
-@@ -4608,7 +4478,6 @@
- msgstr "ה-scrobbles שלך: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4697,8 +4566,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "קילו־סיביות לשניה"
-
-diff -rauN clementine-1.0.1/src/translations/hi.po clementine-libre-1.0.1/src/translations/hi.po
---- clementine-1.0.1/src/translations/hi.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/hi.po 2012-05-29 16:34:21.266414734 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/hr.po clementine-libre-1.0.1/src/translations/hr.po
---- clementine-1.0.1/src/translations/hr.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/hr.po 2012-05-29 16:50:07.443081990 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Spotify Premium račun je obvezan."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -316,7 +312,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -589,14 +584,6 @@
- msgid "Always start playing"
- msgstr "Uvijek započinji reprodukciju glazbe"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Dodatni dodatak je potreban za korištenje Spotify-a u Clementine-u. Želite "
--"li preuzeti dodatak i instalirati sada?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Pogreška je nastala tijekom kopiranja iTunes baze podataka sa uređaja"
-@@ -822,10 +809,6 @@
- msgid "CUE sheet support"
- msgstr "Podrška za CUE listu"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Otkaži"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Promijenite omot albuma"
-@@ -1039,10 +1022,6 @@
- msgid "Configure Shortcuts"
- msgstr "Podesi prečace"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Podesite Spotify ..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Podesi zbirku..."
-@@ -1060,10 +1039,6 @@
- msgid "Connect device"
- msgstr "Spoji uređaj"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Spajanje Spotify-a"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Konstantna brzina prijenosa"
-@@ -1479,10 +1454,6 @@
- msgid "Download this album..."
- msgstr "Preuzmi ovaj album..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Preuzmi..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Preuzimanje Icecast direktorija"
-@@ -1495,10 +1466,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Preuzimanje Magnatune kataloga"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Preuzimanje Spotify dodatka"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Preuzimanje metapodataka"
-@@ -1649,10 +1616,6 @@
- msgid "Error deleting songs"
- msgstr "Pogreška u brisanju pjesama"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "pogreška pri preuzimanju Spotify dodatka"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1834,10 +1797,6 @@
- msgid "Font size"
- msgstr "Veličina slova"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "Zbog razloga licenciranja Spotify-a podrška je u posebnom dodatak."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Forsiraj mono enkodiranje"
-@@ -2108,10 +2067,6 @@
- "U dinamičkom modu nove pjesme će biti izabrane i dodane u popis izvođenja "
- "svaki puta kada je pjesma odsvirana."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Pristigle poruke"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Prikaži omot albuma u obavijesti"
-@@ -2140,10 +2095,6 @@
- msgid "Insert..."
- msgstr "Umetni..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Instalirano"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2446,7 +2397,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2522,10 +2472,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Glavni profil (GLAVNI)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Učini popis izvođenja dostupnim kada je veza prekinuta"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Pogreška u odgovoru"
-@@ -2784,10 +2730,6 @@
- msgid "Not enough neighbors"
- msgstr "Nema dovoljno susjeda"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Nije instalirano"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2922,7 +2864,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Lozinka"
-@@ -3029,10 +2970,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Status dodatka:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3063,7 +3000,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Opcije"
-@@ -3080,10 +3016,6 @@
- msgid "Preferred audio format"
- msgstr "Željeni audio format"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Željeni format"
-@@ -3474,18 +3406,6 @@
- msgid "Search Magnatune"
- msgstr "Pretražite Magnatune stanice"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Pretražite Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Pretražite Spotify (otvori u novoj kartici)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Pretražite Spotify (otvori u novoj kartici)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3811,30 +3731,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Spotify pogreška kod prijave"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify dodatak"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Spotify dodatak nije instaliran"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standardno"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Sa zvjezdicom"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Pokrenite popis izvođenja koji se trenutno izvodi"
-@@ -3844,7 +3744,6 @@
- msgstr "Započni enkodiranje"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3930,18 +3829,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Sinkronizacija Spotify ulaznog spremnika"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Sinkroniziranje Spotify popisa izvođenja"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Sinkronizacija Spotify pjesama označenim zvjezdicama"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Kartice pri vrhu"
-@@ -4318,10 +4205,6 @@
- msgid "Use the system proxy settings"
- msgstr "Koristite proxy postavke od sustava"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Iskorišteno"
-@@ -4337,7 +4220,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Korisničko ime"
-@@ -4572,20 +4454,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Sviđa vam se ova pjesma"
-@@ -4653,7 +4521,6 @@
- msgstr "Vaši scrobbles: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4742,8 +4609,6 @@
- msgstr "u posljednjih"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/hu.po clementine-libre-1.0.1/src/translations/hu.po
---- clementine-1.0.1/src/translations/hu.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/hu.po 2012-05-29 16:50:46.463082538 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Grooveshark Anywhere fiók szükséges."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Spotify prémium fiók szükséges"
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -316,7 +312,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -589,14 +584,6 @@
- msgid "Always start playing"
- msgstr "Mindig indítja a lejátszást"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"A Spotify használatához külön beépülő szükséges. Szeretnéd most letölteni és"
--" telepíteni?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Hiba történt az iTunes adatbázis másolása közben az eszközről"
-@@ -823,10 +810,6 @@
- msgid "CUE sheet support"
- msgstr "CUE fájl támogatás"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Mégsem"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Albumborító módosítása"
-@@ -1042,10 +1025,6 @@
- msgid "Configure Shortcuts"
- msgstr "Billentyűkombinációk beállítása"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Spotify beállítása..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Zenetár beállítása..."
-@@ -1065,10 +1044,6 @@
- msgid "Connect device"
- msgstr "Eszköz csatlakoztatása"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Csatlakozás a Spotifyhoz"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Állandó bitráta"
-@@ -1484,10 +1459,6 @@
- msgid "Download this album..."
- msgstr "Album letöltése..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Letöltés…"
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Icecast könyvtár letöltése"
-@@ -1500,10 +1471,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Magnatune katalógus letöltése"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Spotify beépülő letöltése"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Metaadat letöltése"
-@@ -1656,10 +1623,6 @@
- msgid "Error deleting songs"
- msgstr "Hiba történt a számok törlése közben"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Hiba a Spotify beépülő letöltése közben"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1842,12 +1805,6 @@
- msgid "Font size"
- msgstr "Betűméret"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Licencelési okok miatt a Spotify támogatást külön beépülőben kell "
--"telepíteni."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Mono kódolás kényszerítése"
-@@ -2117,10 +2074,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Beérkezett üzenetek"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Albumborító megjelenítése az értesítésben"
-@@ -2149,10 +2102,6 @@
- msgid "Insert..."
- msgstr "Beszúrás..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Telepítve"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2455,7 +2404,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2531,10 +2479,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Fő profil (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Hibásan formázott válasz"
-@@ -2793,10 +2737,6 @@
- msgid "Not enough neighbors"
- msgstr "Nincs elég szomszédja"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Nincs telepítve"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2931,7 +2871,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Jelszó"
-@@ -3038,10 +2977,6 @@
- msgid "Playlists"
- msgstr "Lejátszási lista"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Beépülő állapot:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3072,7 +3007,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Beállítások"
-@@ -3089,10 +3023,6 @@
- msgid "Preferred audio format"
- msgstr "Előnyben részesített audio formátum"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Előnyben részesített formátum"
-@@ -3483,18 +3413,6 @@
- msgid "Search Magnatune"
- msgstr "Keresés a Magnatuneon"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Keresés Spotifyon"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Keresés Spotifyon (új lapot nyit)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Keresés Spotifyon (új lapot nyit)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3822,30 +3740,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Hiba a Spotifyra való bejelentkezéskor"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify beépülő"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "A Spotify beépülő nincs telepítve"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Normál"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Kedvenc"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Az éppen lejátszott lista indítása"
-@@ -3855,7 +3753,6 @@
- msgstr "Átkódolás indítása"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3941,18 +3838,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Spotify üzenetek szinkronizálása"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Spotify lejátszási lista szinkronizálása"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Spotify csillagozott számok szinronizálása"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Lapfülek felül"
-@@ -4327,10 +4212,6 @@
- msgid "Use the system proxy settings"
- msgstr "A rendszer proxy beállításainak használata"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Használt"
-@@ -4346,7 +4227,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Felhasználónév"
-@@ -4580,20 +4460,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Kedveled ezt a számot"
-@@ -4660,7 +4526,6 @@
- msgstr "Scrobblejaid: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4749,8 +4614,6 @@
- msgstr "az utóbbi"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/hy.po clementine-libre-1.0.1/src/translations/hy.po
---- clementine-1.0.1/src/translations/hy.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/hy.po 2012-05-29 16:51:35.523082336 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/ia.po clementine-libre-1.0.1/src/translations/ia.po
---- clementine-1.0.1/src/translations/ia.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/ia.po 2012-05-29 16:52:43.266415554 -0400
-@@ -250,10 +250,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -309,7 +305,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -582,12 +577,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -813,10 +802,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1017,10 +1002,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1038,10 +1019,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1451,10 +1428,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1467,10 +1440,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1620,10 +1589,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1805,10 +1770,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2071,10 +2032,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2103,10 +2060,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2409,7 +2362,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2485,10 +2437,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2745,10 +2693,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2883,7 +2827,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2990,10 +2933,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3024,7 +2963,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3041,10 +2979,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3435,18 +3369,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3771,30 +3693,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3804,7 +3706,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3890,18 +3791,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4259,10 +4148,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4278,7 +4163,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4502,20 +4386,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4575,7 +4445,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4664,8 +4533,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/id.po clementine-libre-1.0.1/src/translations/id.po
---- clementine-1.0.1/src/translations/id.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/id.po 2012-05-29 16:55:43.939749412 -0400
-@@ -252,10 +252,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Sebuah akun Premium Spotify diperlukan."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -316,7 +312,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -589,12 +584,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -820,10 +809,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1024,10 +1009,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1045,10 +1026,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1458,10 +1435,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1474,10 +1447,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1627,10 +1596,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1812,10 +1777,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2078,10 +2039,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2110,10 +2067,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2416,7 +2369,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2492,10 +2444,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2752,10 +2700,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2890,7 +2834,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2997,10 +2940,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3031,7 +2970,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3048,10 +2986,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3442,18 +3376,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3778,30 +3700,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3811,7 +3713,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3897,18 +3798,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4266,10 +4155,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4285,7 +4170,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4509,20 +4393,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4582,7 +4452,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4671,8 +4540,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/is.po clementine-libre-1.0.1/src/translations/is.po
---- clementine-1.0.1/src/translations/is.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/is.po 2012-05-29 16:56:42.033082876 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr "Alltaf hefja spilun"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Villa kom upp við afritun iTunes gagnagrunns af tæki"
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/it.po clementine-libre-1.0.1/src/translations/it.po
---- clementine-1.0.1/src/translations/it.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/it.po 2012-05-29 16:57:27.279749567 -0400
-@@ -256,10 +256,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "È richiesto un account Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "È richiesto un account Premium di Spotify"
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -318,7 +314,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -591,14 +586,6 @@
- msgid "Always start playing"
- msgstr "Inizia sempre la riproduzione"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Un plugin aggiuntivo è richiesto per utilizzare Spotify in Clementine. Vuoi "
--"scaricarlo e installarlo subito?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -829,10 +816,6 @@
- msgid "CUE sheet support"
- msgstr "Supporto CUE sheet"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Annulla"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Cambia copertina"
-@@ -1044,10 +1027,6 @@
- msgid "Configure Shortcuts"
- msgstr "Configura scorciatoie"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Configura Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Configura raccolta..."
-@@ -1065,10 +1044,6 @@
- msgid "Connect device"
- msgstr "Connetti dispositivo"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Connessione a Spotify in corso"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Bitrate costante"
-@@ -1484,10 +1459,6 @@
- msgid "Download this album..."
- msgstr "Scarica questo album..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Scarica..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Scaricamento directory Icecast in corso"
-@@ -1500,10 +1471,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Scaricamento catalogo Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Scarica il plugin di Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Scaricamento metadati in corso"
-@@ -1658,10 +1625,6 @@
- msgid "Error deleting songs"
- msgstr "Errore durante l'eliminazione dei brani"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Errore di scaricamento del plugin di Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1844,11 +1807,6 @@
- msgid "Font size"
- msgstr "Dimensione del carattere"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Per motivi di licenza, il supporto di Spotify è in un plugin separato."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Forza codifica mono"
-@@ -2123,10 +2081,6 @@
- "Nella modalità dinamica le nuove tracce saranno scelte e aggiunte alla "
- "scaletta al termine di ogni brano."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "In arrivo"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Includi copertina nella notifica"
-@@ -2155,10 +2109,6 @@
- msgid "Insert..."
- msgstr "Inserisci..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Installati"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2465,7 +2415,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2541,10 +2490,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Profilo principale (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Rendi la scaletta disponibile non in linea"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Risposta non corretta"
-@@ -2804,10 +2749,6 @@
- msgid "Not enough neighbors"
- msgstr "Vicini non sufficienti"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Non installati"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Accesso non effettuato"
-@@ -2942,7 +2883,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Password"
-@@ -3049,10 +2989,6 @@
- msgid "Playlists"
- msgstr "Scalette"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Stato del plugin:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3083,7 +3019,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Preferenze"
-@@ -3100,10 +3035,6 @@
- msgid "Preferred audio format"
- msgstr "Formato audio preferito"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Bitrate preferito"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Formato preferito"
-@@ -3494,18 +3425,6 @@
- msgid "Search Magnatune"
- msgstr "Cerca in Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Cerca in Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Cerca in Spotify (apre una nuova scheda)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Cerca in Spotify (apre una nuova scheda)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Cerca in tutte le fonti (raccolta, servizi internet, ...)"
-@@ -3831,30 +3750,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Errore di accesso a Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Plugin di Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Plugin di Spotify non installato"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standard"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Preferiti"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Avvia la scaletta attualmente in riproduzione"
-@@ -3864,7 +3763,6 @@
- msgstr "Avvia transcodifica"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3952,18 +3850,6 @@
- msgid "Switch provider"
- msgstr "Cambia fornitore"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Sincronizzazione inbox di Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Sincronizzazione scaletta di Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Sincronizzazione tracce preferite di Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Schede in alto"
-@@ -4351,10 +4237,6 @@
- msgid "Use the system proxy settings"
- msgstr "Utilizza le impostazioni di sistema del proxy"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Usa la normalizzazione del volume"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Utilizzato"
-@@ -4370,7 +4252,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Nome utente"
-@@ -4607,22 +4488,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Non hai un account Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Non hai un account Premium Spotify."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"Ti sei disconnesso da Spotify, reinserisci la password nella finestra "
--"Impostazioni."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr "Ti sei disconnesso da Spotify, reinserisci la password."
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Ti piace questa traccia"
-@@ -4690,7 +4555,6 @@
- msgstr "I tuoi scrobble: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Nome utente o password non corretta."
-
-@@ -4779,8 +4643,6 @@
- msgstr "negli ultimi"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/ja.po clementine-libre-1.0.1/src/translations/ja.po
---- clementine-1.0.1/src/translations/ja.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/ja.po 2012-05-29 16:58:23.063082909 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Grooveshark Anywhere のアカウントが必要です。"
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Spotify のプレミアムアカウントが必要です。"
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -313,7 +309,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -586,12 +581,6 @@
- msgid "Always start playing"
- msgstr "常に再生を開始する"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr "Clementine で Spotify を利用するには追加のプラグインが必要です。今すぐダウンロードしてインストールしますか?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "デバイスからの iTunes データベースのコピー エラーです"
-@@ -817,10 +806,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "キャンセル"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "カバー アートの変更"
-@@ -1023,10 +1008,6 @@
- msgid "Configure Shortcuts"
- msgstr "ショートカットの構成"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "ライブラリの構成..."
-@@ -1044,10 +1025,6 @@
- msgid "Connect device"
- msgstr "デバイスの接続"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1461,10 +1438,6 @@
- msgid "Download this album..."
- msgstr "このアルバムをダウンロード..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Icecast ディレクトリのダウンロード"
-@@ -1477,10 +1450,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Magnatune カタログのダウンロード"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Spotify のプラグインをダウンロード中"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "メタデータをダウンロード中"
-@@ -1630,10 +1599,6 @@
- msgid "Error deleting songs"
- msgstr "曲の削除エラー"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1815,10 +1780,6 @@
- msgid "Font size"
- msgstr "フォント サイズ"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2081,10 +2042,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "通知にアルバム アートを含める"
-@@ -2113,10 +2070,6 @@
- msgid "Insert..."
- msgstr "挿入..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "インターネット"
-@@ -2419,7 +2372,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2495,10 +2447,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "不正な応答です"
-@@ -2755,10 +2703,6 @@
- msgid "Not enough neighbors"
- msgstr "ご近所さんが足りません"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2893,7 +2837,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "パスワード"
-@@ -3000,10 +2943,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3034,7 +2973,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "環境設定"
-@@ -3051,10 +2989,6 @@
- msgid "Preferred audio format"
- msgstr "優先するオーディオ形式"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "優先する形式"
-@@ -3445,18 +3379,6 @@
- msgid "Search Magnatune"
- msgstr "Magnatune の検索"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3781,30 +3703,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "現在再生中のプレイリストを開始する"
-@@ -3814,7 +3716,6 @@
- msgstr "トランスコードの開始"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3900,18 +3801,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "タブを上に配置"
-@@ -4271,10 +4160,6 @@
- msgid "Use the system proxy settings"
- msgstr "システムのプロキシ設定を使用する"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "使用中"
-@@ -4290,7 +4175,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "ユーザー名"
-@@ -4520,20 +4404,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "このトラックは Love されています"
-@@ -4595,7 +4465,6 @@
- msgstr "Scrobble 回数: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "ユーザネームまたはパスワードが間違っています。"
-
-@@ -4684,8 +4553,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/ka.po clementine-libre-1.0.1/src/translations/ka.po
---- clementine-1.0.1/src/translations/ka.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/ka.po 2012-05-29 16:59:47.116416380 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Spotify-ის Premium ანგარიში აუცილებელია."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr "ყოველთვის დაიწყე დაკვრა"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "შეცდომა მოწყობილობიდან iTunes-ის მონაცემთა ბაზის კოპირებისას"
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr "CUE sheet-ის მხარდაჭერა"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "გაუქმება"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "ალბომის ყდის შეცვლა"
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/kk.po clementine-libre-1.0.1/src/translations/kk.po
---- clementine-1.0.1/src/translations/kk.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/kk.po 2012-05-29 17:17:47.953084141 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Поп"
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/ko.po clementine-libre-1.0.1/src/translations/ko.po
---- clementine-1.0.1/src/translations/ko.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/ko.po 2012-05-29 17:20:24.469750963 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Spotify 프리미엄 계정이 필요합니다."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/lt.po clementine-libre-1.0.1/src/translations/lt.po
---- clementine-1.0.1/src/translations/lt.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/lt.po 2012-05-29 17:21:09.749751142 -0400
-@@ -252,10 +252,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Reikalingas mokamas Spotify vartotojas"
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -313,7 +309,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -586,14 +581,6 @@
- msgid "Always start playing"
- msgstr "Visada pradėti grojant"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Kad naudotumėte Spotify Clementine grotuve, jums reikia papildomo išplėtimo."
--" Ar parsiųsti ir įdiegti jį dabar?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Iškilo klaida kopijuojant iTunes duomenų bazę iš įrenginio"
-@@ -819,10 +806,6 @@
- msgid "CUE sheet support"
- msgstr "\"CUE sheet\" palaikymas"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Atšaukti"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Keisti viršelio paveikslėlį"
-@@ -1032,10 +1015,6 @@
- msgid "Configure Shortcuts"
- msgstr "Konfigūruoti sparčiuosius klavišus"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Konfigūruoti Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Konfigūruoti fonoteką..."
-@@ -1053,10 +1032,6 @@
- msgid "Connect device"
- msgstr "Prijungti įrenginį"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Jungiamasi prie Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Pastovus bitų dažnis"
-@@ -1472,10 +1447,6 @@
- msgid "Download this album..."
- msgstr "Atsisiunčiamas šis albumas"
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Atsisiųsti..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Atsiunčiamas Icecast aplankas"
-@@ -1488,10 +1459,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Atsiunčiamas Magnatune katalogas"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Siunčiamas Spotify plėtinys"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Atsiunčiami metaduomenys"
-@@ -1643,10 +1610,6 @@
- msgid "Error deleting songs"
- msgstr "Klaida trinant dainas"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Klaida siunčiant Spotify plėtinį"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1828,12 +1791,6 @@
- msgid "Font size"
- msgstr "Šrifto dydis"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Dėl licencijavimo priežasčių Spotify palaikymas yra įjungiamas per atskirą "
--"plėtinį."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Įjungti tik mono kodavimą"
-@@ -2104,10 +2061,6 @@
- "Dinamiškame režime nauji kūriniais bus parinkti ir pridėti į grojaraštį "
- "kaskart, kai dabar grojamas kūrinys baigsis."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Gautieji"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Rodyti albumo paveikslus pranešime"
-@@ -2136,10 +2089,6 @@
- msgid "Insert..."
- msgstr "Įterpti..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Įdiegta"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internetas"
-@@ -2444,7 +2393,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2520,10 +2468,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Pagrindinis profilis"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Padaryti šį grojaraštį prieinamą atsijungus"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Netinkamas atsakymas"
-@@ -2781,10 +2725,6 @@
- msgid "Not enough neighbors"
- msgstr "Nepakanka kaimynų"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Neįdiegta"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2919,7 +2859,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Slaptažodis"
-@@ -3026,10 +2965,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Plėtinio būklė:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3060,7 +2995,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Nustatymai"
-@@ -3078,10 +3012,6 @@
- msgid "Preferred audio format"
- msgstr "Pageidaujamas audio formatas"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Pageidaujamas formatas"
-@@ -3472,18 +3402,6 @@
- msgid "Search Magnatune"
- msgstr "Ieškoti Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Ieškoti Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Ieškoti Spotify (atveria naują kortelę)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Ieškoti Spotify (atveria naują kortelę)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3808,30 +3726,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Spotify prisijungimo klaida"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify plėtinys"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Spotify plėtinys neįdiegtas"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standartinis"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Su žvaigždute"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Pradėti grajaraštį nuo dabar grojančio"
-@@ -3841,7 +3739,6 @@
- msgstr "Perkoduoti"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3927,18 +3824,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Atnaujinama Spotify dėžutė"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Atnaujinama Spotify grojaraštis"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Atnaujinama Spotify pažymėti kūriniai"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Kortelės viršuje"
-@@ -4312,10 +4197,6 @@
- msgid "Use the system proxy settings"
- msgstr "Naudoti sistemos tarpinio serverio nustatymus"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Panaudota"
-@@ -4331,7 +4212,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Naudotojo vardas"
-@@ -4565,20 +4445,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Jūs mylite šį takelį"
-@@ -4645,7 +4511,6 @@
- msgstr "Jūsų pateikta informacija: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4734,8 +4599,6 @@
- msgstr "per paskutines"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/lv.po clementine-libre-1.0.1/src/translations/lv.po
---- clementine-1.0.1/src/translations/lv.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/lv.po 2012-05-29 17:21:57.143084399 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Nepieciešams Spotify Premium konts."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -315,7 +311,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -588,14 +583,6 @@
- msgid "Always start playing"
- msgstr "Vienmēr sākt atskaņošanu"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Lai lietotu Spotify, nepieciešams papildus spraudnis. Vai jūs vēlaties to "
--"lejupielādēt un instalēt?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Kļūda kopējot iTunes datubāzi no ierīces"
-@@ -822,10 +809,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Atcelt"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Mainīt vāka attēlu"
-@@ -1035,10 +1018,6 @@
- msgid "Configure Shortcuts"
- msgstr "Konfigurēt īsceļus"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Konfigurēt Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Konfigurēt bibliotēku..."
-@@ -1056,10 +1035,6 @@
- msgid "Connect device"
- msgstr "Pieslēgt ierīci"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Pieslēdzos Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Konstants bitreits"
-@@ -1475,10 +1450,6 @@
- msgid "Download this album..."
- msgstr "Lejupielādēt šo albumu..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Lejupielādēt..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Lejupielādē Icecast mapi"
-@@ -1491,10 +1462,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Lejupielādē Magnatude katalogu"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Lejupielādē Spotify spraudni"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Lejupielādē metadatus"
-@@ -1646,10 +1613,6 @@
- msgid "Error deleting songs"
- msgstr "Kļūda dzēšot dziesmas"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Kļūda lejupielādējot Spotify spraudni"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1832,10 +1795,6 @@
- msgid "Font size"
- msgstr "Fonta izmērs"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "Licencēšanas nolūkā Spotify atbalsts pieejams kā atsevišķs spraudnis"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Forsēt mono kodēšanu"
-@@ -2102,10 +2061,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Ienākošie"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Iekļaut vāku attēlus paziņojumos"
-@@ -2134,10 +2089,6 @@
- msgid "Insert..."
- msgstr "Ievietot..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Uzstādīts"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internets"
-@@ -2441,7 +2392,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2517,10 +2467,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Galvenais profils (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Izkropļota atbilde"
-@@ -2778,10 +2724,6 @@
- msgid "Not enough neighbors"
- msgstr "Nepietiek kaimiņu"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Nav uzstādīta"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2916,7 +2858,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Parole"
-@@ -3023,10 +2964,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Spraudņa statuss:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Popmūzika"
-@@ -3057,7 +2994,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Uzstādījumi"
-@@ -3074,10 +3010,6 @@
- msgid "Preferred audio format"
- msgstr "Vēlamais audio formāts"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Vēlamais formāts"
-@@ -3468,18 +3400,6 @@
- msgid "Search Magnatune"
- msgstr "Meklēt Magnatude"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Meklēt Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Meklēt Spotify (tiks atvērta jauna cilne)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Meklēt Spotify (tiks atvērta jauna cilne)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3804,30 +3724,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Spotify pieslēgšanās kļūda"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify spraudnis"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Spotify spraudnis nav uzstādīts"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standarts"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Novērtēts ar zvaigzni"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Sākt pašreiz atskaņoto dziesmu listi"
-@@ -3837,7 +3737,6 @@
- msgstr "Sākt kodēšanu"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3923,18 +3822,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Cilnes pa virsu"
-@@ -4304,10 +4191,6 @@
- msgid "Use the system proxy settings"
- msgstr "Lietot sistēmas starpniekservera uzstādījumus"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Izmantots"
-@@ -4323,7 +4206,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Lietotājvārds"
-@@ -4554,20 +4436,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Jūs mīlat šo dziesmu"
-@@ -4630,7 +4498,6 @@
- msgstr "Jūsu skrobli: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4719,8 +4586,6 @@
- msgstr "pēdējās"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kb/s"
-
-diff -rauN clementine-1.0.1/src/translations/mr.po clementine-libre-1.0.1/src/translations/mr.po
---- clementine-1.0.1/src/translations/mr.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/mr.po 2012-05-29 17:22:45.193084728 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/ms.po clementine-libre-1.0.1/src/translations/ms.po
---- clementine-1.0.1/src/translations/ms.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/ms.po 2012-05-29 17:23:27.779751138 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Akaun Spotify Premium diperlukan"
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -313,7 +309,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -586,14 +581,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Satu plugin tambahan diperlukan untuk menggunakan Spotify dalam Clementine. "
--"Inginkah anda memuat turun dan memasangnya sekarang?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Satu ralat berlaku semasa menyalin pangkalan data iTunes dari peranti"
-@@ -819,10 +806,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Batal"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Ubahkan seni kulit muka"
-@@ -1030,10 +1013,6 @@
- msgid "Configure Shortcuts"
- msgstr "Tetapkan Pintasan"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1051,10 +1030,6 @@
- msgid "Connect device"
- msgstr "Sambung peranti"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Menyambung ke Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Kadar bit malar"
-@@ -1464,10 +1439,6 @@
- msgid "Download this album..."
- msgstr "Muat turun album ini..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Muat Turun..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Memuat turun direktori Icecast"
-@@ -1480,10 +1451,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Memuat turun katalog Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Memuat turun plugin Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Memuatturun metadata"
-@@ -1633,10 +1600,6 @@
- msgid "Error deleting songs"
- msgstr "Ralat memadam lagu-lagu"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Ralat memuat turun plugin Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1822,11 +1785,6 @@
- msgid "Font size"
- msgstr "Saiz fon"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Atas sebab-sebab perlesenan sokongan Spotify berada dalam plugin berasingan."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2099,10 +2057,6 @@
- "Dalam mod dinamik trek-trek baru akan dipilih dan ditambah ke senarai main "
- "setiap kali lagu selesai."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Peti Masuk"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Sertakan hasil seni album dalam pemberitahuan"
-@@ -2131,10 +2085,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Terpasang"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2437,7 +2387,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2513,10 +2462,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Buatkan senarai main tersedia di luar talian"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2775,10 +2720,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Tidak dipasang"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2913,7 +2854,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Kata laluan"
-@@ -3020,10 +2960,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Status plugin:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3054,7 +2990,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3071,10 +3006,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3465,18 +3396,6 @@
- msgid "Search Magnatune"
- msgstr "Cari Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Cari Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Cari Spotify (buka tab baru)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Cari Spotify (buka tab baru)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3801,30 +3720,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Ralat log masuk Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Plugin Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Plugin Spotify tidak dipasang"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Piawai"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Disukai"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3834,7 +3733,6 @@
- msgstr "Mulakan transkod"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3920,18 +3818,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Tab-tab di atas"
-@@ -4308,10 +4194,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4327,7 +4209,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Nama pengguna"
-@@ -4555,20 +4436,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Anda suka trek ini"
-@@ -4628,7 +4495,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4717,8 +4583,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/nb.po clementine-libre-1.0.1/src/translations/nb.po
---- clementine-1.0.1/src/translations/nb.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/nb.po 2012-05-29 17:24:06.539751459 -0400
-@@ -254,10 +254,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Til dette trenger du en Grooveshark Anywhere-konto."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Til dette trenger du en Spotify Premium-konto."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -316,7 +312,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -589,14 +584,6 @@
- msgid "Always start playing"
- msgstr "Alltid start avspilling"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Det trengs et programtillegg for å bruke Spotify i Clementine. Ønsker du å "
--"laste ned og installere den nå?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "En feil oppsto under kopiering av iTunes databasen fra enheten"
-@@ -822,10 +809,6 @@
- msgid "CUE sheet support"
- msgstr "Støtte for CUE-filer"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Avbryt"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Endre omslagsbilde"
-@@ -1038,10 +1021,6 @@
- msgid "Configure Shortcuts"
- msgstr "Oppsett av hurtigtaster"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Konfigurere Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Sett opp bibliotek..."
-@@ -1059,10 +1038,6 @@
- msgid "Connect device"
- msgstr "Koble til enhet"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Kobler til Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Konstant bitrate"
-@@ -1478,10 +1453,6 @@
- msgid "Download this album..."
- msgstr "Last ned dette albumet..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Last ned..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Laster ned Icecast-katalogen"
-@@ -1494,10 +1465,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Laster ned Magnatune-katalogen"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Laster ned Spotify-modul"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Laster ned metadata"
-@@ -1648,10 +1615,6 @@
- msgid "Error deleting songs"
- msgstr "Kunne ikke slette sanger"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Kunne ikke laste ned Spotify-modul"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1833,10 +1796,6 @@
- msgid "Font size"
- msgstr "Skriftstørrelse"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "Av lisenshensyn er Spotify-støtte en egen innstikksmodul."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Tving monolyd-koding"
-@@ -2108,10 +2067,6 @@
- "I dynamisk modus vil nye spor bli valgt og lagt til spillelista hver gang en"
- " sang tar slutt."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Innboks"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Inkludér cover i meldingen"
-@@ -2140,10 +2095,6 @@
- msgid "Insert..."
- msgstr "Sett inn..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Installert"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internett"
-@@ -2446,7 +2397,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2522,10 +2472,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Hovedprofil (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Gjør spillelista tilgjengelig online"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Ugyldig svar"
-@@ -2782,10 +2728,6 @@
- msgid "Not enough neighbors"
- msgstr "Ikke nok naboer"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Ikke installert"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Ikke pålogget"
-@@ -2920,7 +2862,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Passord"
-@@ -3027,10 +2968,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Modulens status:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3061,7 +2998,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Innstillinger"
-@@ -3078,10 +3014,6 @@
- msgid "Preferred audio format"
- msgstr "Foretrukket lydformat"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Foretrukket format"
-@@ -3472,18 +3404,6 @@
- msgid "Search Magnatune"
- msgstr "Søk i Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Søk i Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Søk i Spotify (åpner en ny flik)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Søk i Spotify (åpner en ny flik...)"
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3808,30 +3728,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Kunne ikke logge på Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify-modul"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Har ikke installert Spotify-modul"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standard"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Har stjerner"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Begynn på spillelista nå"
-@@ -3841,7 +3741,6 @@
- msgstr "Start koding"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3927,18 +3826,6 @@
- msgid "Switch provider"
- msgstr "Switch-leverandør"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Synkroniserer Spotify-innboksen"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Synkroniserer Spotify-spillelista"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Synkroniserer spor med sterner mot Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Fliker på toppen"
-@@ -4310,10 +4197,6 @@
- msgid "Use the system proxy settings"
- msgstr "Bruk standard proxy-innstillinger"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Brukt"
-@@ -4329,7 +4212,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Brukernavn"
-@@ -4565,20 +4447,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Du har ikke noen Grooveshark Anywhare-konto."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Du har ikke noen Spotify Premium-konto."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Du elsker dette sporet"
-@@ -4644,7 +4512,6 @@
- msgstr "Dine delte lyttevaner (\"scrobbles\"): %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Feil med din brukerinformasjon"
-
-@@ -4733,8 +4600,6 @@
- msgstr "i de siste"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/nl.po clementine-libre-1.0.1/src/translations/nl.po
---- clementine-1.0.1/src/translations/nl.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/nl.po 2012-05-29 17:24:47.773084596 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Een Grooveshark Anywhere account is vereist."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Een Spotify Premium account is vereist."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -317,7 +313,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -592,14 +587,6 @@
- msgid "Always start playing"
- msgstr "Altijd afspelen"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Een extra plug-in is vereist om Spotify in Clementine te gebruiken. Wilt u "
--"deze nu downloaden en installeren?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -829,10 +816,6 @@
- msgid "CUE sheet support"
- msgstr "CUE-sheet ondersteuning"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Annuleren"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Albumhoes wijzigen"
-@@ -1047,10 +1030,6 @@
- msgid "Configure Shortcuts"
- msgstr "Sneltoetsen instellen"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Configureer Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Bibliotheek configureren…"
-@@ -1068,10 +1047,6 @@
- msgid "Connect device"
- msgstr "Apparaat verbinden"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Met Spotify verbinden"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Constante bitrate"
-@@ -1487,10 +1462,6 @@
- msgid "Download this album..."
- msgstr "Dit album downloaden…"
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Downloaden…"
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Icecast-map aan het downloaden"
-@@ -1503,10 +1474,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Magnatune-catalogus downloaden"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "De Spotify plug-in aan het downloaden"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Metadata ophalen"
-@@ -1660,10 +1627,6 @@
- msgid "Error deleting songs"
- msgstr "Fout tijdens het verwijderen van de nummers"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Fout bij het downloaden van de Spotify plug-in"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1846,12 +1809,6 @@
- msgid "Font size"
- msgstr "Tekengrootte"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Vanwege licenties is Spotify-ondersteuning alleen via een plug-in "
--"beschikbaar."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Mono-encodering forceren"
-@@ -2126,10 +2083,6 @@
- "In ‘dynamische modus’ worden nieuwe nummers gekozen en aan de afspeellijst "
- "toegevoegd op het moment dat een nummer eindigt."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Inbox"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Albumhoes in de notificatie weergeven"
-@@ -2158,10 +2111,6 @@
- msgid "Insert..."
- msgstr "Invoegen…"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Geïnstalleerd"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2466,7 +2415,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2542,10 +2490,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Normaal profiel (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Afspeellijst offline beschikbaar maken"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Foutieve respons"
-@@ -2806,10 +2750,6 @@
- msgid "Not enough neighbors"
- msgstr "Onvoldoende buren"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Niet geïnstalleerd"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Niet ingelogd"
-@@ -2944,7 +2884,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Wachtwoord"
-@@ -3051,10 +2990,6 @@
- msgid "Playlists"
- msgstr "Afspeellijsten"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Plug-in status:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3085,7 +3020,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Voorkeuren"
-@@ -3103,10 +3037,6 @@
- msgid "Preferred audio format"
- msgstr "Audioformaat-voorkeur"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Bitrate voorkeur"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Voorkeursformaat"
-@@ -3497,18 +3427,6 @@
- msgid "Search Magnatune"
- msgstr "Zoeken op Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Doorzoek Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Doorzoek Spotify (open nieuw tabblad)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Doorzoek Spotify (open nieuw tabblad)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Doorzoek al uw bronnen (bibliotheek, internet bronnen, ...)"
-@@ -3833,30 +3751,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Spotify inlogfout"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify plug-in"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Spotify plug-in niet geïnstalleerd"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standaard"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Met ster"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Momenteel spelende afspeellijst starten"
-@@ -3866,7 +3764,6 @@
- msgstr "Converteren starten"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr "Typ in de zoekbalk hierboven om naar muziek te zoeken op %1."
-@@ -3952,18 +3849,6 @@
- msgid "Switch provider"
- msgstr "Switch provider"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Spotify inbox synchroniseren"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Spotify afspeellijst synchroniseren"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Favoriete Spotify-nummers synchroniseren"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Tabs bovenaan"
-@@ -4350,10 +4235,6 @@
- msgid "Use the system proxy settings"
- msgstr "Globale proxy-instellingen gebruiken"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Volume normalisatie gebruiken"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Gebruikt"
-@@ -4369,7 +4250,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Gebruikersnaam"
-@@ -4607,22 +4487,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "U heeft geen Grooveshark Anywhere account."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "U heeft geen Spotify Premium account."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"U bent uitgelogd bij Spotify, voer in het voorkeuren venster nogmaals uw "
--"wachtwoord in."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr "U bent uitgelogd bij Spotify, voer nogmaals uw wachtwoord in."
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "U vindt dit nummer mooi"
-@@ -4690,7 +4554,6 @@
- msgstr "Uw scrobbles: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Uw gebruikersnaam of wachtwoord is niet correct."
-
-@@ -4779,8 +4642,6 @@
- msgstr "in de laatste"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/oc.po clementine-libre-1.0.1/src/translations/oc.po
---- clementine-1.0.1/src/translations/oc.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/oc.po 2012-05-29 17:25:36.176417975 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr "Configurar los acorchis de clavièr"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Sus Internet"
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/pa.po clementine-libre-1.0.1/src/translations/pa.po
---- clementine-1.0.1/src/translations/pa.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/pa.po 2012-05-29 17:26:32.036418109 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/pl.po clementine-libre-1.0.1/src/translations/pl.po
---- clementine-1.0.1/src/translations/pl.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/pl.po 2012-05-29 17:27:25.839751300 -0400
-@@ -254,10 +254,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Potrzebne jest konto Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Musisz posiadać konto Spotify Premium."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -318,7 +314,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -591,14 +586,6 @@
- msgid "Always start playing"
- msgstr "Odtwarzaj automatycznie"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Aby korzystać ze Spotify przy użyciu Clementine, wymagany jest dodatkowy "
--"skrypt. Czy chcesz go teraz pobrać?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Wystąpił błąd podczas kopiowania bazy danych iTunes z urządzenia"
-@@ -824,10 +811,6 @@
- msgid "CUE sheet support"
- msgstr "obsługa arkuszy CUE"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Anuluj"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Zmień okładkę"
-@@ -1041,10 +1024,6 @@
- msgid "Configure Shortcuts"
- msgstr "Konfiguracja skrótów klawiszowych"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Konfiguracja Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Konfiguruj bibliotekę..."
-@@ -1062,10 +1041,6 @@
- msgid "Connect device"
- msgstr "Podłącz urządzenie"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Połącz z Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Stały bitrate"
-@@ -1481,10 +1456,6 @@
- msgid "Download this album..."
- msgstr "Pobierz ten album..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Pobierz..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Pobieranie katalogu Icecast"
-@@ -1497,10 +1468,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Pobieranie katalogu Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Pobierz plugin Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Pobieranie metadanych"
-@@ -1651,10 +1618,6 @@
- msgid "Error deleting songs"
- msgstr "Błąd przy usuwaniu utworów"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Plugin Spotify - nieudane pobieranie"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1837,11 +1800,6 @@
- msgid "Font size"
- msgstr "Rozmiar czcionki"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Ze względów licencyjnych Spotify obsługiwany jest przez oddzielny plugin"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Wymuś kodowanie mono"
-@@ -2114,10 +2072,6 @@
- "W trybie dynamicznym nowe utwory będą wybierane i dodawane do playlisty za "
- "każdym razem gdy skończy się odtwarzanie bieżącego utworu."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Skrzynka odbiorcza"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Dołącz okładkę albumu"
-@@ -2146,10 +2100,6 @@
- msgid "Insert..."
- msgstr "Wstaw..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Zainstalowano"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2454,7 +2404,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2530,10 +2479,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Profil główny (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Uczyń playlistę dostępną offline"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Nieprawidłowa odpowiedź"
-@@ -2793,10 +2738,6 @@
- msgid "Not enough neighbors"
- msgstr "Za mało sąsiadów"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Nie zainstalowano"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2931,7 +2872,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Hasło"
-@@ -3038,10 +2978,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Stan wtyczki:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3072,7 +3008,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Ustawienia"
-@@ -3090,10 +3025,6 @@
- msgid "Preferred audio format"
- msgstr "Preferowany format audio"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Preferowany format"
-@@ -3484,18 +3415,6 @@
- msgid "Search Magnatune"
- msgstr "Przeszukaj Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Szukaj w Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Szukaj w Spotify (nowa karta)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Szukaj w Spotify (nowa karta)"
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3821,30 +3740,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Nieudane logowanie do Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Wtyczka Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Nie zainstalowano pluginu Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standardowy"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Oznaczone gwiazdką"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Rozpocznij aktualnie odtwarzaną listę"
-@@ -3854,7 +3753,6 @@
- msgstr "Rozpocznij transkodowanie"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3940,18 +3838,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Synchronizowanie skrzynki Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Synchronizowanie playlisty Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Synchronizowanie utworów oznaczonych gwiazdką na Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Zakładki na górze"
-@@ -4326,10 +4212,6 @@
- msgid "Use the system proxy settings"
- msgstr "Użyj systemowych ustawień proxy"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Użyto"
-@@ -4345,7 +4227,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Użytkownik"
-@@ -4579,20 +4460,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Kochasz tę ścieżkę"
-@@ -4662,7 +4529,6 @@
- msgstr "Przesłane utwory: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4751,8 +4617,6 @@
- msgstr "w ostatnich"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/pt_BR.po clementine-libre-1.0.1/src/translations/pt_BR.po
---- clementine-1.0.1/src/translations/pt_BR.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/pt_BR.po 2012-05-29 17:30:29.606418269 -0400
-@@ -251,10 +251,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "É necessária uma conta Premium Spotify."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -313,7 +309,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -586,14 +581,6 @@
- msgid "Always start playing"
- msgstr "Sempre começar tocando"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Um plugin adicional é necessário para usar Spotify no Clementine. Gostaria "
--"de fazer o download e instalá-lo agora?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -821,10 +808,6 @@
- msgid "CUE sheet support"
- msgstr "Suporte a lista CUE"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Cancelar"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Alterar capa"
-@@ -1036,10 +1019,6 @@
- msgid "Configure Shortcuts"
- msgstr "Configurar atalhos"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Configurar Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Configurar biblioteca"
-@@ -1057,10 +1036,6 @@
- msgid "Connect device"
- msgstr "Conectar dispositivo"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Conectando ao Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Taxa de bits constante"
-@@ -1476,10 +1451,6 @@
- msgid "Download this album..."
- msgstr "Baixar este álbum..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Baixar..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Baixando diretório Icecast"
-@@ -1492,10 +1463,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Baixando catálogo da Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Baixando plugin Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Baixando metadados"
-@@ -1647,10 +1614,6 @@
- msgid "Error deleting songs"
- msgstr "Erro ao apagar músicas"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Erro ao baixar o plugin Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1834,12 +1797,6 @@
- msgid "Font size"
- msgstr "Tamanho da fonte"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Por motivos de licenciamento, o suporte ao Spotify está em um plugin "
--"separado."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Forçar codificação em mono"
-@@ -2113,10 +2070,6 @@
- "No modo dinâmico, novas faixas serão escolhidas e adicionadas à lista de "
- "reprodução toda a vez que uma musica terminar."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Caixa de entrada"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Incluir capa do álbum na notificação"
-@@ -2145,10 +2098,6 @@
- msgid "Insert..."
- msgstr "Inserir..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Instalado"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2453,7 +2402,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2529,10 +2477,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Meu perfil (PRINCIPAL)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Tornar lista de reprodução disponível offline"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Resposta inválida"
-@@ -2793,10 +2737,6 @@
- msgid "Not enough neighbors"
- msgstr "Sem vizinhos o bastante"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Não instalado"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2931,7 +2871,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Senha"
-@@ -3038,10 +2977,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Status do plugin:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3072,7 +3007,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Preferências"
-@@ -3089,10 +3023,6 @@
- msgid "Preferred audio format"
- msgstr "Formato de áudio preferido"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Formato preferido"
-@@ -3483,18 +3413,6 @@
- msgid "Search Magnatune"
- msgstr "Pesquisar Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Procurar Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Procurar Spotify (abre um novo aba)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Procurar Spotify (abre um novo aba)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3819,30 +3737,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Erro ao conectar no Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Plugin Spofity"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Plugin Spofity não instalado"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Padrão"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Favoritos"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Iniciar a lista que está em execução"
-@@ -3852,7 +3750,6 @@
- msgstr "Começar transcodificação"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3938,18 +3835,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Sincronizando caixa de entrada do Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Sincronizando listas de reprodução do Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Sincronizando faixas favoritas do Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Mostrar abas no topo"
-@@ -4329,10 +4214,6 @@
- msgid "Use the system proxy settings"
- msgstr "Usar configurações de proxy do sistema"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Usado"
-@@ -4348,7 +4229,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Nome de usuário"
-@@ -4582,20 +4462,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Você adora essa faixa"
-@@ -4661,7 +4527,6 @@
- msgstr "Seus scrobbles: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4750,8 +4615,6 @@
- msgstr "nos últimos"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/pt.po clementine-libre-1.0.1/src/translations/pt.po
---- clementine-1.0.1/src/translations/pt.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/pt.po 2012-05-29 17:28:15.776418125 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Requer uma conta Grooveshark Anywhere"
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Requer uma conta Spotify Premium"
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -316,7 +312,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -589,14 +584,6 @@
- msgid "Always start playing"
- msgstr "Iniciar sempre a reprodução"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Necessita de um \"plug-in\" para utilizar o Spotify no Clementine. Pretende "
--"transferir e instalar o \"plug-in\"?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -823,10 +810,6 @@
- msgid "CUE sheet support"
- msgstr "Suporte a ficheiros CUE"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Cancelar"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Alterar capa do álbum"
-@@ -1040,10 +1023,6 @@
- msgid "Configure Shortcuts"
- msgstr "Configurar atalhos"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Configurar Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Configurar coleção..."
-@@ -1061,10 +1040,6 @@
- msgid "Connect device"
- msgstr "Ligar dispositivo"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Ligar ao Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Taxa de dados constante"
-@@ -1480,10 +1455,6 @@
- msgid "Download this album..."
- msgstr "Transferir este álbum..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Transferir..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "A transferir o diretório Icecast"
-@@ -1496,10 +1467,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "A transferir o catálogo Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "A transferir o \"plug-in\" Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "A transferir dados"
-@@ -1652,10 +1619,6 @@
- msgid "Error deleting songs"
- msgstr "Erro ao eliminar faixas"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Erro ao transferir o \"plug-in\""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1837,12 +1800,6 @@
- msgid "Font size"
- msgstr "Tamanho de letra"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Devido à sua licença, o \"plug-in\" do Spotify é disponibilizado "
--"separadamente"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Forçar codificação mono"
-@@ -2114,10 +2071,6 @@
- "No modo dinâmico, as faixas são escolhidas e adicionadas à lista de "
- "reprodução assim que uma música termine"
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Caixa de entrada"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Incluir capa do álbum na notificação"
-@@ -2146,10 +2099,6 @@
- msgid "Insert..."
- msgstr "Inserir..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Instalado"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2454,7 +2403,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2530,10 +2478,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Perfil principal (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Tornar lista de reprodução disponível localmente"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Resposta inválida"
-@@ -2793,10 +2737,6 @@
- msgid "Not enough neighbors"
- msgstr "Vizinhos insuficientes"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Não instalado"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Sessão não iniciada"
-@@ -2931,7 +2871,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Senha"
-@@ -3038,10 +2977,6 @@
- msgid "Playlists"
- msgstr "Listas de reprodução"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Estado:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3072,7 +3007,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Preferências"
-@@ -3089,10 +3023,6 @@
- msgid "Preferred audio format"
- msgstr "Formato áudio preferido"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Taxa de dados preferencial"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Formato preferido"
-@@ -3483,18 +3413,6 @@
- msgid "Search Magnatune"
- msgstr "Pesquisar no Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Procurar no Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Procurar no Spotify (abre um novo separador)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Procurar no Spotify (abre um novo separador)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Procurar em todas as fontes (coleção, internet, ...)"
-@@ -3820,30 +3738,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Erro de autenticação Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "\"Plug-in\" Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "\"Plug-in\" Spotify não instalado"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Padrão"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Com estrela"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Iniciar lista de reprodução atual"
-@@ -3853,7 +3751,6 @@
- msgstr "Iniciar conversão"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr "Escreva algo na caixa de procura para descobrir músicas no %1"
-@@ -3939,18 +3836,6 @@
- msgid "Switch provider"
- msgstr "Trocar fornecedor"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "A sincronizar caixa de entrada Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "A sincronizar lista de reprodução Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "A sincronizar faixas Spotify assinaladas"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Separadores no topo"
-@@ -4333,10 +4218,6 @@
- msgid "Use the system proxy settings"
- msgstr "Utilizar definições do sistema"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Utilizar normalização de volume"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Utilizado"
-@@ -4352,7 +4233,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Utilizador"
-@@ -4589,22 +4469,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Você não tem uma conta Grooveshark Anywhere"
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Você não tem uma conta Spotify Premium"
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"Terminou a sessão no Spotify. Reintroduza a sua senha na caixa de diálogo de"
--" definições"
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr "Terminou a sessão no Spotify. Reintroduza a sua senha"
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Você gosta desta faixa"
-@@ -4671,7 +4535,6 @@
- msgstr "Os seus envios: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Utilizador e/ou senha inválida"
-
-@@ -4760,8 +4623,6 @@
- msgstr "no(s) último(s)"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/ro.po clementine-libre-1.0.1/src/translations/ro.po
---- clementine-1.0.1/src/translations/ro.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/ro.po 2012-05-29 17:31:07.169751658 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Este necesar un cont Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Este necesar un cont Spotify Premium."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -317,7 +313,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -590,14 +585,6 @@
- msgid "Always start playing"
- msgstr "Începe redarea întotdeauna"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Este necesara activarea unui plugin pentru utlizarea Spotify in Clementine. "
--"Doriți să fie descărcat si instalat acum?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "A apărut o eroare de copiere a bazei de date iTunes de pe dispozitiv"
-@@ -823,10 +810,6 @@
- msgid "CUE sheet support"
- msgstr "CUE placa suport"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Anulare"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Schimbă imaginea coperții"
-@@ -1037,10 +1020,6 @@
- msgid "Configure Shortcuts"
- msgstr "Configurează scurtături"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Configurare Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Configurează biblioteca..."
-@@ -1058,10 +1037,6 @@
- msgid "Connect device"
- msgstr "Conectează un dispozitiv"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Se conectează la Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Rată de biți constantă"
-@@ -1477,10 +1452,6 @@
- msgid "Download this album..."
- msgstr "Descarcă acest album..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Descărcare..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Descărcare dosarul Icecast"
-@@ -1493,10 +1464,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Descărcare catalog Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Se descarcă pluginul Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Descărcare metadata"
-@@ -1651,10 +1618,6 @@
- msgid "Error deleting songs"
- msgstr "Eroare ștergere melodii"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Eroare la descărcarea pluginului Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1838,11 +1801,6 @@
- msgid "Font size"
- msgstr "Dimensiunea fontului"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"Din motive de licență, suportul pentru Spotify este într-un plugin separat."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Forțează codarea mono"
-@@ -2114,10 +2072,6 @@
- "În modul dinamic, melodii noi vor fi alese și adăugate la lista de redare de"
- " fiecare dată când se termină o melodie."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Includeți album de artă în notificare"
-@@ -2146,10 +2100,6 @@
- msgid "Insert..."
- msgstr "Introduce..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Instalat"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2452,7 +2402,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2528,10 +2477,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Profil principal (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2788,10 +2733,6 @@
- msgid "Not enough neighbors"
- msgstr "Nu sunt destui vecini"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Neinstalat"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2926,7 +2867,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Parolă"
-@@ -3033,10 +2973,6 @@
- msgid "Playlists"
- msgstr "Liste de redare"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Status plugin:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3067,7 +3003,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Preferinţe"
-@@ -3084,10 +3019,6 @@
- msgid "Preferred audio format"
- msgstr "Format audio preferat"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Rată de biți preferată"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Format preferat"
-@@ -3478,18 +3409,6 @@
- msgid "Search Magnatune"
- msgstr "Caută în Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Caută în Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Caută în Spotify (deschide o filă nouă)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Caută în Spotify (deschide o filă nouă)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3814,30 +3733,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Eroare la logarea în Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Plugin Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Pluginul Spotify nu este instalat"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standard"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Cu steluță"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3847,7 +3746,6 @@
- msgstr "Începe transcodare"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3933,18 +3831,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "File deasupra"
-@@ -4304,10 +4190,6 @@
- msgid "Use the system proxy settings"
- msgstr "Folosește setările de proxy ale sistemului"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4323,7 +4205,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Nume de utilizator"
-@@ -4549,20 +4430,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Nu aveți un cont Spotify Premium."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4622,7 +4489,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Parola sau numele de utilizator au fost incorecte."
-
-@@ -4711,8 +4577,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/ru.po clementine-libre-1.0.1/src/translations/ru.po
---- clementine-1.0.1/src/translations/ru.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/ru.po 2012-05-29 17:31:44.913085063 -0400
-@@ -256,10 +256,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Требуется учётная запись Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Требуется Premium аккаунт Spotify"
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -320,7 +316,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -593,14 +588,6 @@
- msgid "Always start playing"
- msgstr "Всегда начинать воспроизведение"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Требуется дополнительный модуль для использования Spotify в Clementine. "
--"Скачать и установить его?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Произошла ошибка при загрузке данных iTunes с устройства"
-@@ -826,10 +813,6 @@
- msgid "CUE sheet support"
- msgstr "Поддержка файлов разметки CUE"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Отмена"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Выберите обложку"
-@@ -1045,10 +1028,6 @@
- msgid "Configure Shortcuts"
- msgstr "Комбинации клавиш"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Настройка Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Настроить коллекцию..."
-@@ -1066,10 +1045,6 @@
- msgid "Connect device"
- msgstr "Подсоединение устройства"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Подключение к Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Постоянный битрейт"
-@@ -1485,10 +1460,6 @@
- msgid "Download this album..."
- msgstr "Загрузить этот альбом"
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Загрузить..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Загружаем директорию Icecast"
-@@ -1501,10 +1472,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Скачать каталог Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Загрузка модуля Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Загрузка метаданных"
-@@ -1658,10 +1625,6 @@
- msgid "Error deleting songs"
- msgstr "Ошибка удаления композиций"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Ошибка загрузки модуля Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1845,12 +1808,6 @@
- msgid "Font size"
- msgstr "Размер шрифта"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"По лицензионным соображениям поддержка Spotify реализована в виде отдельного"
--" плагина"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Принудительное кодирование в моно"
-@@ -2122,10 +2079,6 @@
- "В динамическом режиме новые треки выбираются и добавляются в список "
- "воспроизведения каждый раз, когда заканчивается очередная песня."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Входящие"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Показывать обложку альбома в уведомлении"
-@@ -2154,10 +2107,6 @@
- msgid "Insert..."
- msgstr "Вставить..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Установлено"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Интернет"
-@@ -2462,7 +2411,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2538,10 +2486,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Основной профиль (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Сделать плейлист доступным оффлайн"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Неправильный ответ"
-@@ -2800,10 +2744,6 @@
- msgid "Not enough neighbors"
- msgstr "Недостаточно соседей"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Не установлено"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Не был выполнен логин"
-@@ -2938,7 +2878,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Пароль"
-@@ -3045,10 +2984,6 @@
- msgid "Playlists"
- msgstr "Списки воспроизведения"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Статус модуля:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3079,7 +3014,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Настройки"
-@@ -3096,10 +3030,6 @@
- msgid "Preferred audio format"
- msgstr "Предпочитаемый аудио формат"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Предпочитаемый битрейт"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Предпочитаемый формат"
-@@ -3490,18 +3420,6 @@
- msgid "Search Magnatune"
- msgstr "Искать на Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Поиск на Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Поиск на Spotify (открывается в новой вкладке)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Поиск на Spotify (в новой вкладке)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Искать во всех источниках (библиотеке, интернет сервисах, ...)"
-@@ -3827,30 +3745,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Ошибка имени пользователя Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Модуль Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Модуль Spotify не установлен"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Стандартный"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Оцененные"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Запустить список воспроизведения проигрываемый в данный момент"
-@@ -3860,7 +3758,6 @@
- msgstr "Начать перекодирование"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr "Наберите начальные буквы наименования песни чтобы начать поиск в %1"
-@@ -3946,18 +3843,6 @@
- msgid "Switch provider"
- msgstr "Выбрать другой источник"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Синхронизация входящих Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Синхронизация плейлистов Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Синхронизация рейтингованных треков Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Вкладки вверху"
-@@ -4336,10 +4221,6 @@
- msgid "Use the system proxy settings"
- msgstr "Использовать системные настройки прокси"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Использовать выравнивание громкости"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Использовано"
-@@ -4355,7 +4236,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Имя пользователя"
-@@ -4591,23 +4471,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "У вас нет учетной записи Grooveshark Anywhere"
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "У вас нет учетной записи Spotify Premium"
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"Подключение к сервису Spotify было разорвано, введите ваш пароль ещё раз в"
--" диалоге Настройки."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--"Подключение к сервису Spotify было разорвано, введите ваш пароль ещё раз."
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Вам нравится эта композиция"
-@@ -4675,7 +4538,6 @@
- msgstr "Ваш скробблинг: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Имя пользователя или пароль неправильные."
-
-@@ -4764,8 +4626,6 @@
- msgstr "в последние"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "кбит/с"
-
-diff -rauN clementine-1.0.1/src/translations/sk.po clementine-libre-1.0.1/src/translations/sk.po
---- clementine-1.0.1/src/translations/sk.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/sk.po 2012-05-29 17:32:30.349751863 -0400
-@@ -252,10 +252,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Je vyžadovaný Grooveshark Anywhere účet."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Je vyžadovaný prémium účet na Spotify."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -314,7 +310,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -587,14 +582,6 @@
- msgid "Always start playing"
- msgstr "Hneď začne hrať"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Aby sa dalo Spotify využiť v Clementine, je vyžadovaný ďalší plugin. Chcete "
--"ho teraz stiahnuť a nainštalovať?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Nastala chyba pri kopírovaní iTunes databázy zo zariadenia"
-@@ -820,10 +807,6 @@
- msgid "CUE sheet support"
- msgstr "podpora CUE zoznamu"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Zrušiť"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Zmeniť obal albumu"
-@@ -1034,10 +1017,6 @@
- msgid "Configure Shortcuts"
- msgstr "Klávesové skratky"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Nastaviť Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Nastaviť zbierku..."
-@@ -1055,10 +1034,6 @@
- msgid "Connect device"
- msgstr "Pripojiť zariadenie"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Pripájanie k Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Konštantný dátový tok"
-@@ -1474,10 +1449,6 @@
- msgid "Download this album..."
- msgstr "Stiahnuť tento album..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Stiahnuť..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Sťahuje sa Icecast priečinok"
-@@ -1490,10 +1461,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Sťahuje sa Magnatune katalóg"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Sťahuje sa Spotify plugin"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Sťahujú sa metadáta"
-@@ -1648,10 +1615,6 @@
- msgid "Error deleting songs"
- msgstr "Chyba pri vymazávaní piesní"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Chyba pri sťahovaní Spotify pluginu."
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1834,10 +1797,6 @@
- msgid "Font size"
- msgstr "Veľkosť písma"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "Kvôli licenčným dôvodom je podpora Spotify v oddelenom plugine."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Vynútiť mono enkódovanie"
-@@ -2109,10 +2068,6 @@
- "V dynamickom režime budú nové skladby vybraté a pridané do playlistu "
- "zakaždým keď skončí pieseň."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Doručené"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Zahrnúť obal do upozornenia"
-@@ -2141,10 +2096,6 @@
- msgid "Insert..."
- msgstr "Vložiť..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Nainštalované"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2447,7 +2398,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2523,10 +2473,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Hlavný profil (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Urobiť playlist dostupný offline"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Poškodená odpoveď"
-@@ -2785,10 +2731,6 @@
- msgid "Not enough neighbors"
- msgstr "Nedostatok susedov"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Nenainštalované"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Nieprihlásený"
-@@ -2923,7 +2865,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Heslo"
-@@ -3030,10 +2971,6 @@
- msgid "Playlists"
- msgstr "Playlisty"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Stav pluginu:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3064,7 +3001,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Nastavenia"
-@@ -3081,10 +3017,6 @@
- msgid "Preferred audio format"
- msgstr "Preferovaný formát zvuku"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Preferovaný dátový tok"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Preferovaný formát"
-@@ -3475,18 +3407,6 @@
- msgid "Search Magnatune"
- msgstr "Hľadať na Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Hľadať v Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Hľadať v Spotify (otvorí novú kartu)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Hľadať v Spotify (otvorí novú kartu)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3812,30 +3732,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Chyba pri prihlasovaní na Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify plugin"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Spotify plugin nieje nainštalovaný"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Štandardný"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "S hviezdičkou"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Začať playlist práve prehrávanou"
-@@ -3845,7 +3745,6 @@
- msgstr "Začať transkódovanie"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3932,18 +3831,6 @@
- msgid "Switch provider"
- msgstr "Zmeniť poskytovateľa"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Synchronizuje sa Spotify schránka"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Synchronizuje sa Spotify playlist"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Synchronizujú sa skladby ohviezdičkované na Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Karty na vrchu"
-@@ -4325,10 +4212,6 @@
- msgid "Use the system proxy settings"
- msgstr "Použiť systémové nastavenia proxy"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Použiť normalizáciu hlasitosti"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Použitých"
-@@ -4344,7 +4227,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Meno používateľa"
-@@ -4580,22 +4462,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Nemáte Grooveshark Anywhere účet."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Nemáte Spotify prémium účet."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"Boli ste odhlásení zo Spotify, prosím, zadajte heslo znovu v dialógu "
--"Nastavenia."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr "Boli ste odhlásený zo Spotify, prosím znovu zadajte heslo."
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Milujete túto pieseň"
-@@ -4663,7 +4529,6 @@
- msgstr "Skroblujete: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Vaše meno používateľa alebo heslo bolo nesprávne."
-
-@@ -4752,8 +4617,6 @@
- msgstr "za posledných"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/sl.po clementine-libre-1.0.1/src/translations/sl.po
---- clementine-1.0.1/src/translations/sl.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/sl.po 2012-05-29 17:41:04.549752271 -0400
-@@ -252,10 +252,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Zahtevan je račun Spotify Premium."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -314,7 +310,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -587,14 +582,6 @@
- msgid "Always start playing"
- msgstr "Vedno začni s predvajanjem"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Da lahko uporabite Spotify v Clementine, potrebujete dodaten vstavek. Ga "
--"želite prejeti in namestiti zdaj?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -822,10 +809,6 @@
- msgid "CUE sheet support"
- msgstr "Podpora predlogam CUE"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Prekliči"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Spremeni ovitek albuma"
-@@ -1039,10 +1022,6 @@
- msgid "Configure Shortcuts"
- msgstr "Nastavi bližnjice"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Nastavi Spotify ..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Nastavi knjižnico ..."
-@@ -1060,10 +1039,6 @@
- msgid "Connect device"
- msgstr "Priklopi napravo"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Povezovanje na Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Stalna bitna hitrost"
-@@ -1479,10 +1454,6 @@
- msgid "Download this album..."
- msgstr "Prejmi ta album ..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Prejmi ..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Prejemanje imenika Icecast"
-@@ -1495,10 +1466,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Prejemanje kataloga Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Prejemanje vstavka Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Prejemanje metapodatkov"
-@@ -1651,10 +1618,6 @@
- msgid "Error deleting songs"
- msgstr "Napaka pri brisanju skladb"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Napaka med prejemanjem vstavka Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1836,10 +1799,6 @@
- msgid "Font size"
- msgstr "Velikost pisave"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "Zaradi licence je podpora Spotify v ločenem vstavku."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Vsili mono kodiranje"
-@@ -2111,10 +2070,6 @@
- "V dinamičnem načinu bodo nove skladbe izbrane in dodane na seznam "
- "predvajanja vsakič, ko se prejšnja skladba konča."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Prejeto"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Vključi ovitek albuma v obvestilo"
-@@ -2143,10 +2098,6 @@
- msgid "Insert..."
- msgstr "Vstavi ..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Nameščeno"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Medmrežje"
-@@ -2449,7 +2400,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2525,10 +2475,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Glavni profil (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Seznam predvajanja naj bo na voljo tudi brez povezave"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Nepravilno oblikovan odziv"
-@@ -2787,10 +2733,6 @@
- msgid "Not enough neighbors"
- msgstr "Ni dovolj sosedov"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Ni nameščeno"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2925,7 +2867,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Geslo"
-@@ -3032,10 +2973,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Stanje vstavka:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3066,7 +3003,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Možnosti"
-@@ -3083,10 +3019,6 @@
- msgid "Preferred audio format"
- msgstr "Prednostna vrsta zvoka"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Prednostna vrsta"
-@@ -3477,18 +3409,6 @@
- msgid "Search Magnatune"
- msgstr "Išči na Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Išči po Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Išči po Spotify (odpre nov zavihek)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Išči po Spotify (odpre nov zavihek) ..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3814,30 +3734,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Napaka med prijavo na Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Vstavek Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Vstavek Spotify ni nameščen"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Običajno"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Z zvezdico"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Predvajaj skladbo, ki je označena v predvajalnem seznamu"
-@@ -3847,7 +3747,6 @@
- msgstr "Začni s prekodiranjem"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3933,18 +3832,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Usklajevanje mape Spotify - prejeto"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Usklajevanje seznama predvajanja Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Usklajevanje označenih skladb v Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Zavihki na vrhu"
-@@ -4322,10 +4209,6 @@
- msgid "Use the system proxy settings"
- msgstr "Uporabi nastavitve posredniškega strežnika sistema"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Uporabljeno"
-@@ -4341,7 +4224,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Uporabniško ime"
-@@ -4575,20 +4457,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "To je vaša priljubljena skladba"
-@@ -4655,7 +4523,6 @@
- msgstr "Vaši seznami predvajanih skladb: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4744,8 +4611,6 @@
- msgstr "v zadnjih"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kb/s"
-
-diff -rauN clementine-1.0.1/src/translations/sr@latin.po clementine-libre-1.0.1/src/translations/sr@latin.po
---- clementine-1.0.1/src/translations/sr@latin.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/sr@latin.po 2012-05-29 17:42:43.256419021 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr ""
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr ""
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr ""
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4501,20 +4385,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4574,7 +4444,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4663,8 +4532,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/sr.po clementine-libre-1.0.1/src/translations/sr.po
---- clementine-1.0.1/src/translations/sr.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/sr.po 2012-05-29 17:41:46.463085756 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Потребан је Spotify Premium налог"
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -311,7 +307,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -584,14 +579,6 @@
- msgid "Always start playing"
- msgstr "Увек почни да свираш"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Додатак је потребан да би се користио Spotify у Клементини. Да ли желиш да "
--"га преузмеш и одмах уградиш?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Дошло је до грешке услед копирања базе података iTunes из уређаја"
-@@ -817,10 +804,6 @@
- msgid "CUE sheet support"
- msgstr "CUE подршка листа"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Otkaži"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Промени слику насловне"
-@@ -1030,10 +1013,6 @@
- msgid "Configure Shortcuts"
- msgstr "Подеси пречице"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Подеси Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Подеси библиотеку"
-@@ -1051,10 +1030,6 @@
- msgid "Connect device"
- msgstr "Повежи уређај"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Повежи се на Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Константан битни проток"
-@@ -1470,10 +1445,6 @@
- msgid "Download this album..."
- msgstr "Preuzmi ovaj albm"
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Preuzmi..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Преузимање Icecast директоријума"
-@@ -1486,10 +1457,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Преузми Магнатјунов каталог"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Преузимање Spotify додатка"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Преузимање метаподатака"
-@@ -1641,10 +1608,6 @@
- msgid "Error deleting songs"
- msgstr "Грешка при брисању песама"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Грешка преузимања Spotify додатка"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1828,10 +1791,6 @@
- msgid "Font size"
- msgstr "Veličina fonta"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "Због лиценцираниг разлога Spotify подршка је на посебном додатку."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Присили моно енкодирање"
-@@ -2102,10 +2061,6 @@
- "У промењивом режиму нове нумере ће бити изабране и додате листи сваки пут "
- "кад се песма заврши."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Сандуче"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Укључи омоте албума у обавештења"
-@@ -2134,10 +2089,6 @@
- msgid "Insert..."
- msgstr "Убаци..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Instalirano"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Интернет"
-@@ -2441,7 +2392,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2517,10 +2467,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Главни налог (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Направи листу доступну ван мреже"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Лош одговор"
-@@ -2778,10 +2724,6 @@
- msgid "Not enough neighbors"
- msgstr "Нема довољно комшија"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Није уграђен"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2916,7 +2858,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Лозинка"
-@@ -3023,10 +2964,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Статус додатка:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Поп"
-@@ -3057,7 +2994,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Поставке"
-@@ -3074,10 +3010,6 @@
- msgid "Preferred audio format"
- msgstr "Пожељни формат звука"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Жељени формат"
-@@ -3468,18 +3400,6 @@
- msgid "Search Magnatune"
- msgstr "Претражи Магнатјун"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Потражи Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Потражи Spotify (отвара нову картицу)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Потражи Spotify (отвара нову картицу)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3804,30 +3724,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Spotify грешка пријављивања"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify додатак"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Spotify додатак није уграђен"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Стандард"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Звездицом"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Почни листу тренутно пуштаним"
-@@ -3837,7 +3737,6 @@
- msgstr "Започни транскодирање"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3923,18 +3822,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Усаглашавање Spotify сандучета"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Усаглашавање Spotify листе"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Усаглашавање Spotify оцењених нумера"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Картице на врх"
-@@ -4313,10 +4200,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "искоришћено"
-@@ -4332,7 +4215,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Корисничко име"
-@@ -4560,20 +4442,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4633,7 +4501,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4722,8 +4589,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kb/s"
-
-diff -rauN clementine-1.0.1/src/translations/sv.po clementine-libre-1.0.1/src/translations/sv.po
---- clementine-1.0.1/src/translations/sv.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/sv.po 2012-05-29 17:43:39.719752433 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Ett Grooveshark Anywhere konto krävs."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Kräver ett Spotify Premium-konto."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -316,7 +312,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -589,14 +584,6 @@
- msgid "Always start playing"
- msgstr "Starta alltid att spela"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Ett ytterligare insticksprogram krävs för att använda Spotify i Clementine. "
--"Vill du ladda ner och installera det nu?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Ett fel uppstod vid kopiering av iTunes-databasen från enheten"
-@@ -822,10 +809,6 @@
- msgid "CUE sheet support"
- msgstr "Stöd för CUE-filer"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Avbryt"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Ändra omslag"
-@@ -1039,10 +1022,6 @@
- msgid "Configure Shortcuts"
- msgstr "Konfigurera snabbtangenter"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Anpassa Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Konfigurera biblioteket..."
-@@ -1060,10 +1039,6 @@
- msgid "Connect device"
- msgstr "Anslut enhet"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Ansluter till Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Konstant bithastighet"
-@@ -1479,10 +1454,6 @@
- msgid "Download this album..."
- msgstr "Ladda ner det här albumet ..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Ladda ner..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Ladda ner Icecast-katalog"
-@@ -1495,10 +1466,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Hämtar katalog från Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Laddar ner Spotify-insticket"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Hämtar metadata"
-@@ -1650,10 +1617,6 @@
- msgid "Error deleting songs"
- msgstr "Fel vid borttagning av låtar"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Fel vid hämtning av Spotify-insticket"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1835,10 +1798,6 @@
- msgid "Font size"
- msgstr "Typsnittsstorlek"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "Av licensskäl finns Spotify-stöd i ett separat insticksprogram."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Tvinga enkanalskodning"
-@@ -2109,10 +2068,6 @@
- "I dynamiskt läge kommer nya spår väljas och läggas till i spellistan varje "
- "gång en låt tar slut."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Inkorg"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Inkludera albumomslag i notifieringen"
-@@ -2141,10 +2096,6 @@
- msgid "Insert..."
- msgstr "Infoga..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Installerad"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2447,7 +2398,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2523,10 +2473,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Huvudprofil (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Gör spellista tillgänglig offline"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Felformaterat svar"
-@@ -2784,10 +2730,6 @@
- msgid "Not enough neighbors"
- msgstr "Inte tillräckligt med grannar"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Inte installerad"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2922,7 +2864,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Lösenord"
-@@ -3029,10 +2970,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Instickstatus:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3063,7 +3000,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Inställningar"
-@@ -3080,10 +3016,6 @@
- msgid "Preferred audio format"
- msgstr "Önskat ljudformat"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Önskat format"
-@@ -3474,18 +3406,6 @@
- msgid "Search Magnatune"
- msgstr "Sök i Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Sök på Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Sök på Spotify (öppnar en ny flik)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Sök på Spotify (öppnar en ny flik)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3810,30 +3730,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Fel vid inloggning på Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify-insticksprogram"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Spotify-insticksprogrammet är inte installerat"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standard"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Stjärnmärkta"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Starta spellistan som spelas för närvarande"
-@@ -3843,7 +3743,6 @@
- msgstr "Starta omkodning"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3929,18 +3828,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Synkroniserar Spotify-inkorg"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Synkroniserar Spotify-spellista"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Synkroniserar stjärnmärkta spår i Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Flikar längst upp"
-@@ -4321,10 +4208,6 @@
- msgid "Use the system proxy settings"
- msgstr "Använd systemets proxy inställningar"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Använd"
-@@ -4340,7 +4223,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Användarnamn"
-@@ -4574,20 +4456,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Du älskar detta spår"
-@@ -4655,7 +4523,6 @@
- msgstr "Dina skrobblingar: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4744,8 +4611,6 @@
- msgstr "de senaste"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/translations.pot clementine-libre-1.0.1/src/translations/translations.pot
---- clementine-1.0.1/src/translations/translations.pot 2012-01-22 07:43:21.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/translations.pot 2012-05-29 17:45:10.709752528 -0400
-@@ -239,10 +239,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -297,7 +293,6 @@
-
- #: ../mingw/src/ui_groovesharksettingspage.h:113
- #: ../mingw/src/ui_magnatunesettingspage.h:155
--#: ../mingw/src/ui_spotifysettingspage.h:209
- #: ../mingw/src/ui_remotesettingspage.h:203
- #: ../mingw/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -571,12 +566,6 @@
- msgid "Always start playing"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -803,10 +792,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../mingw/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1005,10 +990,6 @@
- msgid "Configure Shortcuts"
- msgstr ""
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:490
- msgid "Configure library..."
- msgstr ""
-@@ -1026,10 +1007,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../mingw/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1431,10 +1408,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../mingw/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1447,10 +1420,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr ""
-@@ -1600,10 +1569,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1785,10 +1750,6 @@
- msgid "Font size"
- msgstr ""
-
--#: ../mingw/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../mingw/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2053,10 +2014,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../mingw/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr ""
-@@ -2086,10 +2043,6 @@
- msgid "Insert..."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:252
- msgid "Internet"
- msgstr ""
-@@ -2391,7 +2344,6 @@
- #: ../mingw/src/ui_digitallyimportedsettingspage.h:163
- #: ../mingw/src/ui_groovesharksettingspage.h:116
- #: ../mingw/src/ui_magnatunesettingspage.h:164
--#: ../mingw/src/ui_spotifysettingspage.h:212
- #: ../mingw/src/ui_remotesettingspage.h:205
- #: ../mingw/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2468,10 +2420,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr ""
-@@ -2730,10 +2678,6 @@
- msgid "Not enough neighbors"
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2868,7 +2812,6 @@
-
- #: ../mingw/src/ui_groovesharksettingspage.h:115
- #: ../mingw/src/ui_magnatunesettingspage.h:165
--#: ../mingw/src/ui_spotifysettingspage.h:211
- #: ../mingw/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr ""
-@@ -2975,10 +2918,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../mingw/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr ""
-@@ -3009,7 +2948,6 @@
-
- #: ../mingw/src/ui_digitallyimportedsettingspage.h:166
- #: ../mingw/src/ui_magnatunesettingspage.h:166
--#: ../mingw/src/ui_spotifysettingspage.h:217
- #: ../mingw/src/ui_settingsdialog.h:115
- #: ../mingw/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
-@@ -3027,10 +2965,6 @@
- msgid "Preferred audio format"
- msgstr ""
-
--#: ../mingw/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../mingw/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3422,18 +3356,6 @@
- msgid "Search Magnatune"
- msgstr ""
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../mingw/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3756,30 +3678,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../mingw/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../mingw/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../mingw/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:145
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3789,7 +3691,6 @@
- msgstr ""
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3875,18 +3776,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr ""
-@@ -4246,10 +4135,6 @@
- msgid "Use the system proxy settings"
- msgstr ""
-
--#: ../mingw/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr ""
-@@ -4265,7 +4150,6 @@
-
- #: ../mingw/src/ui_groovesharksettingspage.h:114
- #: ../mingw/src/ui_magnatunesettingspage.h:163
--#: ../mingw/src/ui_spotifysettingspage.h:210
- #: ../mingw/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr ""
-@@ -4489,20 +4373,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr ""
-@@ -4562,7 +4432,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4651,8 +4520,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr ""
-
-diff -rauN clementine-1.0.1/src/translations/tr.po clementine-libre-1.0.1/src/translations/tr.po
---- clementine-1.0.1/src/translations/tr.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/tr.po 2012-05-29 17:44:19.953085826 -0400
-@@ -256,10 +256,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Grooveshark Anywhere hesabı gereklidir."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Spotify üyeliği gerekli."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -318,7 +314,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -591,14 +586,6 @@
- msgid "Always start playing"
- msgstr "Her zaman çalarak başlat"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Spotify'ın Clementine'de kullanılması için harici bir eklenti gerekmektedir."
--" Şimdi indirmek ve kurulumunu yapmak ister misiniz?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Aygıttan iTunes veritabanı kopyalanırken hata oluştu"
-@@ -824,10 +811,6 @@
- msgid "CUE sheet support"
- msgstr "CUE desteği"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "İptal"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Kapak resmini değiştir"
-@@ -1038,10 +1021,6 @@
- msgid "Configure Shortcuts"
- msgstr "Kısayolları Yapılandır"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Spotify Ayarları..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Kütüphaneyi düzenle..."
-@@ -1059,10 +1038,6 @@
- msgid "Connect device"
- msgstr "Aygıtı bağla"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Spotify'a bağlanılıyor."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Sabit bithızı"
-@@ -1478,10 +1453,6 @@
- msgid "Download this album..."
- msgstr "Bu albümü indirin..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "İndir..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Icecast dizini indiriliyor"
-@@ -1494,10 +1465,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Magnatune kataloğu indiriliyor"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Spotify eklentisi indiriliyor"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Üstveri indiriliyor"
-@@ -1652,10 +1619,6 @@
- msgid "Error deleting songs"
- msgstr "Şarkılar silinirken hata"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Spotify eklentisini indirirken hata"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1837,10 +1800,6 @@
- msgid "Font size"
- msgstr "Yazı tipi boyutu"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "Lisans sebepleri dolayısıyla Spotify desteği ayrı bir eklentidir."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Mono çözümlemeye zorla"
-@@ -2112,10 +2071,6 @@
- "Dinamik modda yeni şarkılar seçilerek, her şarkı bittiğinde çalma listesine "
- "eklenecektir."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Gelen Kutusu"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Bildirimde albüm resimlendirmesini göster"
-@@ -2144,10 +2099,6 @@
- msgid "Insert..."
- msgstr "Ekle..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Kuruldu"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2454,7 +2405,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2530,10 +2480,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Ana profil (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Çalma listesini çevrim dışındayken kullanılabilir yap"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Bozuk yanıt"
-@@ -2792,10 +2738,6 @@
- msgid "Not enough neighbors"
- msgstr "Yeterli komşu yok"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Kurulu değil"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Giriş yapmadınız"
-@@ -2930,7 +2872,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Parola"
-@@ -3037,10 +2978,6 @@
- msgid "Playlists"
- msgstr "Çalma listeleri"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Eklenti durumu:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3071,7 +3008,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Tercihler"
-@@ -3088,10 +3024,6 @@
- msgid "Preferred audio format"
- msgstr "Tercih edilen ses biçimleri"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Tercih edilen bit oranı"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Tercih edilen biçim"
-@@ -3482,18 +3414,6 @@
- msgid "Search Magnatune"
- msgstr "Magnatune'da Ara"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Spotify'i ara"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Spotify'i ara (yeni sekme açar)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Spotify'i ara (yeni sekme açar)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Tüm kaynaklarınızda arayın (kütüphane, internet servisleri, ...)"
-@@ -3818,30 +3738,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Spotify giriş hatası"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Spotify eklentisi"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Spotify eklentisi kurulu değil"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Standard"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Yıldızlı"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Çalma listesini mevcut çalınanla başlat"
-@@ -3851,7 +3751,6 @@
- msgstr "Dönüştürmeye başla"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr "Müzik bulmak için yukarıdaki arama kutusuna yazarak başlayın %1 "
-@@ -3937,18 +3836,6 @@
- msgid "Switch provider"
- msgstr "Anahtar sağlayıcı"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Spotify gelen kutusu eşleniyor"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Spotify çalma listesi eşleniyor"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Spotify yıldızlı şarkılar eşleniyor"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Üstteki sekmeler"
-@@ -4320,10 +4207,6 @@
- msgid "Use the system proxy settings"
- msgstr "Sistem vekil sunucu ayarlarını kullan"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Ses normalleştirme kullan"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Kullanılan"
-@@ -4339,7 +4222,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Kullanıcı Adı"
-@@ -4574,22 +4456,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Bir Grooveshark Anywhere hesabınız yok"
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Spotify Premium hesabınız yok."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"Spotify servisinden çıktınız, lütfen Ayarlar ekranında parolanızı yeniden "
--"girin."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr "Spotify servisinden çıktınız, lütfen parolanızı yeniden girin."
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Bu şarkıyı seviyorsunuz"
-@@ -4656,7 +4522,6 @@
- msgstr "Skroplarınız: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Kullanıcı adı veya parolanız yanlış."
-
-@@ -4745,8 +4610,6 @@
- msgstr "Sonuncu"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/uk.po clementine-libre-1.0.1/src/translations/uk.po
---- clementine-1.0.1/src/translations/uk.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/uk.po 2012-05-29 17:45:51.199752577 -0400
-@@ -254,10 +254,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Потрібен обліковий запис Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Потрібен обліковий запис Spotify Premium."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -318,7 +314,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -591,14 +586,6 @@
- msgid "Always start playing"
- msgstr "Завжди починати відтворення"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Для користування Spotify в Clementine, потрібний додатковий модуль. "
--"Завантажити і встановити його зараз?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Виникла помилка копіювання бази даних iTunes з пристрою"
-@@ -824,10 +811,6 @@
- msgid "CUE sheet support"
- msgstr "Підтримка листів CUE"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Скасувати"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Змінити обкладинку"
-@@ -1039,10 +1022,6 @@
- msgid "Configure Shortcuts"
- msgstr "Налаштування комбінацій клавіш"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Налаштування Spotify…"
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Налаштувати фонотеку"
-@@ -1060,10 +1039,6 @@
- msgid "Connect device"
- msgstr "З’єднати пристрій"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "З'єднання зі Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Стала бітова швидкість"
-@@ -1479,10 +1454,6 @@
- msgid "Download this album..."
- msgstr "Завантажити цей альбом…"
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Звантажити…"
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Завантажую каталог Icecast"
-@@ -1495,10 +1466,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Завантаження каталогу Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Завантаження модуля Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Завантажую метадані"
-@@ -1651,10 +1618,6 @@
- msgid "Error deleting songs"
- msgstr "Помилка вилучення композицій"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Помилка завантаження модуля Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1837,11 +1800,6 @@
- msgid "Font size"
- msgstr "Розмір шрифту"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--"З підстав ліцензування, для підтримки Spotify потрібен спеціальний модуль."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Примусове моно-кодування"
-@@ -2113,10 +2071,6 @@
- "У динамічному режимі нові доріжку буде обрано та додано до списку "
- "відтворення кожного разу як завершується пісня."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Вхідні"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Показувати обкладинку в повідомлені"
-@@ -2145,10 +2099,6 @@
- msgid "Insert..."
- msgstr "Вставити…"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Встановлено"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Інтернет"
-@@ -2451,7 +2401,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2527,10 +2476,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Основний профіль (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Зробити список відтворення доступним онлайн"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Спотворений відгук"
-@@ -2789,10 +2734,6 @@
- msgid "Not enough neighbors"
- msgstr "Недостатньо сусідів"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Не встановлено"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Вхід не здійснено"
-@@ -2927,7 +2868,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Пароль"
-@@ -3034,10 +2974,6 @@
- msgid "Playlists"
- msgstr "Списки відтворення"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Статус модуля:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Поп"
-@@ -3068,7 +3004,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Параметри"
-@@ -3085,10 +3020,6 @@
- msgid "Preferred audio format"
- msgstr "Бажаний аудіо формат"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Бажана бітова швидкість"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Бажаний формат"
-@@ -3479,18 +3410,6 @@
- msgid "Search Magnatune"
- msgstr "Пошук на Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Пошук в Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Пошук в Spotify (у новій вкладці)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Пошук в Spotify (у новій вкладці)…"
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Шукати у всіх джерелах даних (бібліотеці, на службах інтернету тощо)"
-@@ -3816,30 +3735,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Помилка входу до Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Модуль Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Модуль Spotify не встановлено"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Типово"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Оцінені"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Запустити список відтворення, що відтворюється на цей час"
-@@ -3849,7 +3748,6 @@
- msgstr "Почати перекодування"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3937,18 +3835,6 @@
- msgid "Switch provider"
- msgstr "Перемкнути джерело"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Синхронізація вхідних Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Синхронізація списку відтворення Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Синхронізація оцінених доріжок Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Вкладки зверху"
-@@ -4323,10 +4209,6 @@
- msgid "Use the system proxy settings"
- msgstr "Використовувати системні налаштування проксі"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Використати нормалізацію гучності"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Використано"
-@@ -4342,7 +4224,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Користувач"
-@@ -4579,21 +4460,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "У вас немає облікового запису Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "У вас немає облікового запису Spotify Premium."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"Ви вийшли зі Spotify, введіть ваш пароль знов у налаштуваннях, будь ласка."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr "Ви вийшли зі Spotify, введіть ваш пароль знов, будь ласка."
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Улюблена композиція"
-@@ -4661,7 +4527,6 @@
- msgstr "%1 відтворень у вас"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Вами вказано помилкове ім’я користувача або пароль."
-
-@@ -4750,8 +4615,6 @@
- msgstr "за останні"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "кбіт/с"
-
-diff -rauN clementine-1.0.1/src/translations/vi.po clementine-libre-1.0.1/src/translations/vi.po
---- clementine-1.0.1/src/translations/vi.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/vi.po 2012-05-29 17:46:32.973085951 -0400
-@@ -256,10 +256,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr "Cần có tài khoản Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr "Yêu cầu một tài khoản Premium của Spotify."
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -320,7 +316,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -593,14 +588,6 @@
- msgid "Always start playing"
- msgstr "Bắt đầu phát nhạc"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--"Cần phải có một trình cắm thêm để sử dụng Spotify trong Clementine. Bạn có "
--"muốn tải nó về và cài đặt ngay không?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "Một lỗi đã xảy ra khi sao chép cơ sở dữ liệu iTunes từ thiết bị"
-@@ -826,10 +813,6 @@
- msgid "CUE sheet support"
- msgstr "Hỗ trợ danh sách CUE"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr "Hủy bỏ"
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "Đổi ảnh bìa"
-@@ -1040,10 +1023,6 @@
- msgid "Configure Shortcuts"
- msgstr "Phím tắt"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "Cấu hình Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "Cấu hình thư viện..."
-@@ -1061,10 +1040,6 @@
- msgid "Connect device"
- msgstr "Kết nối thiết bị"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "Kết nối đến Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "Bitrate cố định"
-@@ -1480,10 +1455,6 @@
- msgid "Download this album..."
- msgstr "Tải album này..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "Tải về..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "Đang tải thư mục Icecast"
-@@ -1496,10 +1467,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "Đang tải mục lục Magnatune"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "Tải trình cắm thêm Spotify"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "Đang tải thông tin dữ liệu"
-@@ -1653,10 +1620,6 @@
- msgid "Error deleting songs"
- msgstr "Lỗi xóa các bài hát"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "Lỗi khi tải trình cắm thêm Spotify"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1841,10 +1804,6 @@
- msgid "Font size"
- msgstr "Kích cỡ phông chữ"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr "Vì lí do giấy phép nên Spotify được hỗ trợ trong một trình cắm riêng."
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr "Buộc mã hóa đơn kênh"
-@@ -2116,10 +2075,6 @@
- "Trong chế độ năng động, các bài hát mới sẽ được chọn và thêm vào danh sách "
- "mỗi khi một bài hát được phát xong."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "Hộp thư đến"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "Kèm theo ảnh bìa album trong thông báo"
-@@ -2148,10 +2103,6 @@
- msgid "Insert..."
- msgstr "Nhập..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr "Đã cài đặt"
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "Internet"
-@@ -2454,7 +2405,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2530,10 +2480,6 @@
- msgid "Main profile (MAIN)"
- msgstr "Hồ sơ chính (MAIN)"
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr "Danh sách sẵn sàng ngoại tuyến"
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "Phản hồi có vẻ xấu"
-@@ -2792,10 +2738,6 @@
- msgid "Not enough neighbors"
- msgstr "Chưa đủ những người lân cận"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr "Chưa cài đặt"
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr "Chưa đăng nh"
-@@ -2930,7 +2872,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "Mật khẩu"
-@@ -3037,10 +2978,6 @@
- msgid "Playlists"
- msgstr "Danh sách"
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "Trạng thái trình cắm:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "Pop"
-@@ -3071,7 +3008,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "Thiết lập"
-@@ -3089,10 +3025,6 @@
- msgid "Preferred audio format"
- msgstr "Định dạng âm thanh được ưu tiên"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr "Bitrate ưu tiên"
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "Định dạng được ưu tiên"
-@@ -3483,18 +3415,6 @@
- msgid "Search Magnatune"
- msgstr "Tìm kiếm trên Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr "Tìm kiếm trong Spotify"
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr "Tìm kiếm trong Spotify (mở trong tab mới)"
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "Tìm kiếm trong Spotify (mở trong tab mới)..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr "Tìm từ tất cả các nguồn (thư viện, các dịch vụ internet, ...)"
-@@ -3819,30 +3739,10 @@
- msgid "Speex"
- msgstr "Speex"
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr "Lỗi đăng nhập Spotify"
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr "Trình cắm Spotify"
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "Trình cắm thêm Spotify chưa được cài đặt"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr "Chuẩn"
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr "Đã bắt đầu"
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "Bắt đầu danh sách hiện đang phát"
-@@ -3852,7 +3752,6 @@
- msgstr "Bắt đầu chuyển mã"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr "Nhập vào hộp tìm kiếm ở trên để tìm nhạc trên %1."
-@@ -3938,18 +3837,6 @@
- msgid "Switch provider"
- msgstr "Đổi nhà cung cấp"
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr "Đang đồng bộ hộp thư đến Spotify"
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr "Đang đồng bộ danh sách Spotify"
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr "Đang đồng bộ các bài hát được đánh dấu sao của Spotify"
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "Các tab ở phía trên"
-@@ -4328,10 +4215,6 @@
- msgid "Use the system proxy settings"
- msgstr "Sử dụng thiết lập proxy của hệ thống"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr "Sử dụng cân bằng âm lượng"
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "Đã dùng"
-@@ -4347,7 +4230,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "Tên người dùng"
-@@ -4584,22 +4466,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr "Bạn không có tài khoản Grooveshark Anywhere."
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr "Bạn không có tài khoản cao cấp của Spotify."
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--"Bạn đã đăng xuất khỏi Spotify, hãy nhập lại mật khẩu trong hộp thoại Thiết "
--"lập."
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr "Bạn đã đăng xuất khỏi Spotify, hãy nhập lại mật khẩu."
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "Bạn thích bài hát này"
-@@ -4666,7 +4532,6 @@
- msgstr "Thông tin bài hát của bạn: %1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr "Tên người dùng hay mật khẩu không đúng."
-
-@@ -4755,8 +4620,6 @@
- msgstr "cuối"
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/zh_CN.po clementine-libre-1.0.1/src/translations/zh_CN.po
---- clementine-1.0.1/src/translations/zh_CN.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/zh_CN.po 2012-05-29 17:47:24.893086011 -0400
-@@ -249,10 +249,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -308,7 +304,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -581,12 +576,6 @@
- msgid "Always start playing"
- msgstr "总是开始播放"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr "Clementine需要安装额外的插件才能使用Spotify.现在就下载并安装吗?"
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr "从 iTunes 复制数据库出错"
-@@ -812,10 +801,6 @@
- msgid "CUE sheet support"
- msgstr "CUE 支持"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr "更改封面"
-@@ -1016,10 +1001,6 @@
- msgid "Configure Shortcuts"
- msgstr "配置快捷键"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr "配置Spotify..."
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "配置音乐库..."
-@@ -1037,10 +1018,6 @@
- msgid "Connect device"
- msgstr "连接设备"
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr "连接Spotify"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr "固定位速率"
-@@ -1450,10 +1427,6 @@
- msgid "Download this album..."
- msgstr "下载此专辑..."
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr "下载..."
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr "正在下载 Icecast 目录"
-@@ -1466,10 +1439,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "正在下载 Magnatune 分类"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr "下载Spotify插件中"
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "下载元数据"
-@@ -1619,10 +1588,6 @@
- msgid "Error deleting songs"
- msgstr "删除曲目出错"
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr "下载Spotify插件出错"
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1804,10 +1769,6 @@
- msgid "Font size"
- msgstr "字号"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2070,10 +2031,6 @@
- "time a song finishes."
- msgstr "在动态模式中, 每次歌曲播放完之后会被选择并添加新歌曲到播放列表.使用动态模式将忽略您的播放列表大小设定值."
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr "收件夹"
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "在提示中中加入专辑封面"
-@@ -2102,10 +2059,6 @@
- msgid "Insert..."
- msgstr "插入..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "互联网"
-@@ -2408,7 +2361,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2484,10 +2436,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "无效的响应"
-@@ -2744,10 +2692,6 @@
- msgid "Not enough neighbors"
- msgstr "邻居不足"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2882,7 +2826,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "密码"
-@@ -2989,10 +2932,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr "插件状态:"
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "流行"
-@@ -3023,7 +2962,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "首选项"
-@@ -3040,10 +2978,6 @@
- msgid "Preferred audio format"
- msgstr "首选音乐格式"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr "首选格式"
-@@ -3434,18 +3368,6 @@
- msgid "Search Magnatune"
- msgstr "搜索 Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr "在新标签栏中查找Spotify..."
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3770,30 +3692,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr "Spotify"
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr "potify 插件未安装"
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr ""
-@@ -3803,7 +3705,6 @@
- msgstr "开始转换"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3889,18 +3790,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "标签在上"
-@@ -4258,10 +4147,6 @@
- msgid "Use the system proxy settings"
- msgstr "使用系统代理设置"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "已使用"
-@@ -4277,7 +4162,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "用户名"
-@@ -4505,20 +4389,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "您喜爱这个音轨"
-@@ -4579,7 +4449,6 @@
- msgstr "提交的音轨:%1"
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4668,8 +4537,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
-diff -rauN clementine-1.0.1/src/translations/zh_TW.po clementine-libre-1.0.1/src/translations/zh_TW.po
---- clementine-1.0.1/src/translations/zh_TW.po 2011-12-27 13:16:09.000000000 -0500
-+++ clementine-libre-1.0.1/src/translations/zh_TW.po 2012-05-29 17:48:16.866419419 -0400
-@@ -253,10 +253,6 @@
- msgid "A Grooveshark Anywhere account is required."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:162
--msgid "A Spotify Premium account is required."
--msgstr ""
--
- #: smartplaylists/wizard.cpp:72
- msgid ""
- "A smart playlist is a dynamic list of songs that come from your library. "
-@@ -312,7 +308,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:113
- #: ../bin/src/ui_magnatunesettingspage.h:155
--#: ../bin/src/ui_spotifysettingspage.h:209
- #: ../bin/src/ui_remotesettingspage.h:203
- #: ../bin/src/ui_lastfmsettingspage.h:145
- msgid "Account details"
-@@ -585,12 +580,6 @@
- msgid "Always start playing"
- msgstr "總是開始播放"
-
--#: internet/spotifyblobdownloader.cpp:59
--msgid ""
--"An additional plugin is required to use Spotify in Clementine. Would you "
--"like to download and install it now?"
--msgstr ""
--
- #: devices/afcdevice.cpp:62
- msgid "An error occurred copying the iTunes database from the device"
- msgstr ""
-@@ -816,10 +805,6 @@
- msgid "CUE sheet support"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Cancel"
--msgstr ""
--
- #: ../bin/src/ui_edittagdialog.h:634
- msgid "Change cover art"
- msgstr ""
-@@ -1020,10 +1005,6 @@
- msgid "Configure Shortcuts"
- msgstr "設定快速鍵"
-
--#: internet/spotifyservice.cpp:491
--msgid "Configure Spotify..."
--msgstr ""
--
- #: ui/mainwindow.cpp:491
- msgid "Configure library..."
- msgstr "設定音樂庫"
-@@ -1041,10 +1022,6 @@
- msgid "Connect device"
- msgstr ""
-
--#: internet/spotifyservice.cpp:246
--msgid "Connecting to Spotify"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:196
- msgid "Constant bitrate"
- msgstr ""
-@@ -1454,10 +1431,6 @@
- msgid "Download this album..."
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:216
--msgid "Download..."
--msgstr ""
--
- #: internet/icecastservice.cpp:97
- msgid "Downloading Icecast directory"
- msgstr ""
-@@ -1470,10 +1443,6 @@
- msgid "Downloading Magnatune catalogue"
- msgstr "下載 Magnatune目錄"
-
--#: internet/spotifyblobdownloader.cpp:43
--msgid "Downloading Spotify plugin"
--msgstr ""
--
- #: musicbrainz/tagfetcher.cpp:101
- msgid "Downloading metadata"
- msgstr "正在下載元數據"
-@@ -1623,10 +1592,6 @@
- msgid "Error deleting songs"
- msgstr ""
-
--#: internet/spotifyblobdownloader.cpp:214
--msgid "Error downloading Spotify plugin"
--msgstr ""
--
- #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
- #, qt-format
- msgid "Error loading %1"
-@@ -1808,10 +1773,6 @@
- msgid "Font size"
- msgstr "字型大小"
-
--#: ../bin/src/ui_spotifysettingspage.h:214
--msgid "For licensing reasons Spotify support is in a separate plugin."
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:204
- msgid "Force mono encoding"
- msgstr ""
-@@ -2074,10 +2035,6 @@
- "time a song finishes."
- msgstr ""
-
--#: internet/spotifyservice.cpp:347
--msgid "Inbox"
--msgstr ""
--
- #: ../bin/src/ui_notificationssettingspage.h:408
- msgid "Include album art in the notification"
- msgstr "包括專輯封面的通知"
-@@ -2106,10 +2063,6 @@
- msgid "Insert..."
- msgstr "插入..."
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Installed"
--msgstr ""
--
- #: ui/mainwindow.cpp:253
- msgid "Internet"
- msgstr "網際網路"
-@@ -2412,7 +2365,6 @@
- #: ../bin/src/ui_digitallyimportedsettingspage.h:163
- #: ../bin/src/ui_groovesharksettingspage.h:116
- #: ../bin/src/ui_magnatunesettingspage.h:164
--#: ../bin/src/ui_spotifysettingspage.h:212
- #: ../bin/src/ui_remotesettingspage.h:205
- #: ../bin/src/ui_lastfmsettingspage.h:147
- msgid "Login"
-@@ -2488,10 +2440,6 @@
- msgid "Main profile (MAIN)"
- msgstr ""
-
--#: internet/spotifyservice.cpp:496
--msgid "Make playlist available offline"
--msgstr ""
--
- #: internet/lastfmservice.cpp:449
- msgid "Malformed response"
- msgstr "格式不正確的反應"
-@@ -2748,10 +2696,6 @@
- msgid "Not enough neighbors"
- msgstr "沒有足夠的鄰居"
-
--#: internet/spotifysettingspage.cpp:75
--msgid "Not installed"
--msgstr ""
--
- #: globalsearch/globalsearchsettingspage.cpp:123
- msgid "Not logged in"
- msgstr ""
-@@ -2886,7 +2830,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:115
- #: ../bin/src/ui_magnatunesettingspage.h:165
--#: ../bin/src/ui_spotifysettingspage.h:211
- #: ../bin/src/ui_networkproxysettingspage.h:169
- msgid "Password"
- msgstr "密碼"
-@@ -2993,10 +2936,6 @@
- msgid "Playlists"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:215
--msgid "Plugin status:"
--msgstr ""
--
- #: ui/equalizer.cpp:119
- msgid "Pop"
- msgstr "流行音樂"
-@@ -3027,7 +2966,6 @@
-
- #: ../bin/src/ui_digitallyimportedsettingspage.h:166
- #: ../bin/src/ui_magnatunesettingspage.h:166
--#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
- #: ../bin/src/ui_lastfmsettingspage.h:149
- msgid "Preferences"
- msgstr "偏好設定"
-@@ -3044,10 +2982,6 @@
- msgid "Preferred audio format"
- msgstr "首選的音頻格式"
-
--#: ../bin/src/ui_spotifysettingspage.h:218
--msgid "Preferred bitrate"
--msgstr ""
--
- #: ../bin/src/ui_deviceproperties.h:380
- msgid "Preferred format"
- msgstr ""
-@@ -3438,18 +3372,6 @@
- msgid "Search Magnatune"
- msgstr "搜尋 Magnatune"
-
--#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
--msgid "Search Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:338
--msgid "Search Spotify (opens a new tab)"
--msgstr ""
--
--#: internet/spotifyservice.cpp:489
--msgid "Search Spotify (opens a new tab)..."
--msgstr ""
--
- #: ../bin/src/ui_globalsearchwidget.h:61
- msgid "Search around all your sources (library, internet services, ...)"
- msgstr ""
-@@ -3774,30 +3696,10 @@
- msgid "Speex"
- msgstr ""
-
--#: ../bin/src/ui_spotifysettingspage.h:208
--msgid "Spotify"
--msgstr ""
--
--#: internet/spotifyservice.cpp:179
--msgid "Spotify login error"
--msgstr ""
--
--#: ../bin/src/ui_spotifysettingspage.h:213
--msgid "Spotify plugin"
--msgstr ""
--
--#: internet/spotifyblobdownloader.cpp:58
--msgid "Spotify plugin not installed"
--msgstr ""
--
- #: ../bin/src/ui_transcoderoptionsmp3.h:201
- msgid "Standard"
- msgstr ""
-
--#: internet/spotifyservice.cpp:343
--msgid "Starred"
--msgstr ""
--
- #: core/commandlineoptions.cpp:148
- msgid "Start the playlist currently playing"
- msgstr "開始播放目前播放清單"
-@@ -3807,7 +3709,6 @@
- msgstr "開始轉碼"
-
- #: internet/groovesharksearchplaylisttype.cpp:36
--#: internet/spotifysearchplaylisttype.cpp:36
- #, qt-format
- msgid "Start typing in the search box above to find music on %1."
- msgstr ""
-@@ -3893,18 +3794,6 @@
- msgid "Switch provider"
- msgstr ""
-
--#: internet/spotifyservice.cpp:515
--msgid "Syncing Spotify inbox"
--msgstr ""
--
--#: internet/spotifyservice.cpp:510
--msgid "Syncing Spotify playlist"
--msgstr ""
--
--#: internet/spotifyservice.cpp:519
--msgid "Syncing Spotify starred tracks"
--msgstr ""
--
- #: widgets/fancytabwidget.cpp:650
- msgid "Tabs on top"
- msgstr "標籤在上面"
-@@ -4262,10 +4151,6 @@
- msgid "Use the system proxy settings"
- msgstr "使用系統代理伺服器設置"
-
--#: ../bin/src/ui_spotifysettingspage.h:219
--msgid "Use volume normalisation"
--msgstr ""
--
- #: widgets/freespacebar.cpp:47
- msgid "Used"
- msgstr "已用"
-@@ -4281,7 +4166,6 @@
-
- #: ../bin/src/ui_groovesharksettingspage.h:114
- #: ../bin/src/ui_magnatunesettingspage.h:163
--#: ../bin/src/ui_spotifysettingspage.h:210
- #: ../bin/src/ui_networkproxysettingspage.h:168
- msgid "Username"
- msgstr "帳號"
-@@ -4505,20 +4389,6 @@
- msgid "You do not have a Grooveshark Anywhere account."
- msgstr ""
-
--#: internet/spotifysettingspage.cpp:149
--msgid "You do not have a Spotify Premium account."
--msgstr ""
--
--#: internet/spotifyservice.cpp:165
--msgid ""
--"You have been logged out of Spotify, please re-enter your password in the "
--"Settings dialog."
--msgstr ""
--
--#: internet/spotifysettingspage.cpp:158
--msgid "You have been logged out of Spotify, please re-enter your password."
--msgstr ""
--
- #: songinfo/lastfmtrackinfoprovider.cpp:95
- msgid "You love this track"
- msgstr "您愛這首歌曲"
-@@ -4578,7 +4448,6 @@
- msgstr ""
-
- #: internet/groovesharksettingspage.cpp:108
--#: internet/spotifysettingspage.cpp:154
- msgid "Your username or password was incorrect."
- msgstr ""
-
-@@ -4667,8 +4536,6 @@
- msgstr ""
-
- #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
--#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
--#: internet/spotifysettingspage.cpp:62
- msgid "kbps"
- msgstr "kbps"
-
diff --git a/libre/cups-filters-libre/buildfix_dlopen.diff b/libre/cups-filters-libre/buildfix_dlopen.diff
deleted file mode 100644
index eea5f506c..000000000
--- a/libre/cups-filters-libre/buildfix_dlopen.diff
+++ /dev/null
@@ -1,31 +0,0 @@
-=== modified file 'Makefile.am'
---- Makefile.am 2012-06-22 15:40:53 +0000
-+++ Makefile.am 2012-07-19 09:36:30 +0000
-@@ -329,7 +329,8 @@
- $(FREETYPE_LIBS) \
- $(FONTCONFIG_LIBS) \
- $(LIBPNG_LIBS) \
-- $(POPPLER_LIBS)
-+ $(POPPLER_LIBS) \
-+ $(DLOPEN_LIBS)
-
- EXTRA_DIST += $(pkgfontconfig_DATA)
-
-=== modified file 'configure.ac'
---- configure.ac 2012-07-19 14:02:32 +0000
-+++ configure.ac 2012-07-19 14:39:25 +0000
-@@ -110,6 +110,13 @@
- AC_DEFINE(PDFTOPDF, [], [Needed for pdftopdf filter compilation])
- AC_DEFINE_DIR(BANNERTOPDF_DATADIR, "{CUPS_DATADIR}/data", [Directory where bannertopdf finds its data files (PDF templates)])
-
-+AC_SEARCH_LIBS([dlopen],
-+ [dl],
-+ DLOPEN_LIBS="-ldl",
-+ AC_MSG_ERROR([unable to find the dlopen() function])
-+)
-+AC_SUBST(DLOPEN_LIBS)
-+
- # ======================
- # Check system functions
- # ======================
-
diff --git a/libre/cups-filters-libre/buildfix_poppler.diff b/libre/cups-filters-libre/buildfix_poppler.diff
deleted file mode 100644
index 6f3cbc0b3..000000000
--- a/libre/cups-filters-libre/buildfix_poppler.diff
+++ /dev/null
@@ -1,224 +0,0 @@
-=== modified file 'NEWS'
---- NEWS 2012-07-11 19:48:23 +0000
-+++ NEWS 2012-07-19 14:02:32 +0000
-@@ -1,6 +1,11 @@
--NEWS - OpenPrinting CUPS Filters v1.0.19 - 2012-07-11
-+NEWS - OpenPrinting CUPS Filters v1.0.20 - 2012-07-19
- -----------------------------------------------------
-
-+CHANGES IN V1.0.20
-+
-+ - Made the Poppler-based filters pdftopdf and pdftoopvp build with
-+ both Poppler 0.18.x and 0.20.x (Bug #1055).
-+
- CHANGES IN V1.0.19
-
- - Fixes according to Coverity scan results (Bug #1054).
-
-=== modified file 'configure.ac'
---- configure.ac 2012-07-11 19:48:23 +0000
-+++ configure.ac 2012-07-19 14:02:32 +0000
-@@ -202,6 +202,7 @@
- # ================
- POPPLER_INCLUDEDIR=`pkg-config poppler --variable includedir`
- AC_CHECK_HEADER([UGooString.h], [AC_DEFINE([HAVE_UGOOSTRING_H],,[Have UGooString.h])], [])
-+AC_CHECK_HEADER([poppler/cpp/poppler-version.h], [AC_DEFINE([HAVE_CPP_POPPLER_VERSION_H],,[Define if you have Poppler's "cpp/poppler-version.h" header file.])], [])
- # FIXME:
- # Use proper c compile check not greps and then just link again poppler with all the features
- # instead of this and all the libs.
-
-=== modified file 'filter/PDFError.h'
---- filter/PDFError.h 2012-03-29 14:06:07 +0000
-+++ filter/PDFError.h 2012-07-19 14:02:32 +0000
-@@ -31,6 +31,9 @@
- #include <config.h>
- #include <stdarg.h>
- #include <Error.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
-
- #if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 19
- #define pdfError(pos,...) error(errInternal,pos,__VA_ARGS__)
-
-=== modified file 'filter/pdftoijs.cxx'
---- filter/pdftoijs.cxx 2012-06-04 16:46:44 +0000
-+++ filter/pdftoijs.cxx 2012-07-19 14:02:32 +0000
-@@ -30,6 +30,9 @@
- #include <config.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
- #include <goo/GooString.h>
- #include <goo/gmem.h>
- #include <Object.h>
-
-=== modified file 'filter/pdftoopvp/OPVPError.h'
---- filter/pdftoopvp/OPVPError.h 2012-03-29 14:06:07 +0000
-+++ filter/pdftoopvp/OPVPError.h 2012-07-19 14:02:32 +0000
-@@ -31,6 +31,9 @@
- #include <config.h>
- #include <stdarg.h>
- #include <Error.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
-
- #if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 19
- #define opvpError(pos,...) error(errInternal,pos,__VA_ARGS__)
-
-=== modified file 'filter/pdftoopvp/OPVPOutputDev.cxx'
---- filter/pdftoopvp/OPVPOutputDev.cxx 2012-03-29 09:42:35 +0000
-+++ filter/pdftoopvp/OPVPOutputDev.cxx 2012-07-19 14:02:32 +0000
-@@ -8,6 +8,9 @@
- //========================================================================
-
- #include <config.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
-
- #ifdef USE_GCC_PRAGMAS
- #pragma implementation
-
-=== modified file 'filter/pdftoopvp/oprs/OPVPSplash.cxx'
---- filter/pdftoopvp/oprs/OPVPSplash.cxx 2012-03-29 09:42:35 +0000
-+++ filter/pdftoopvp/oprs/OPVPSplash.cxx 2012-07-19 14:02:32 +0000
-@@ -5,6 +5,9 @@
- //========================================================================
-
- #include <config.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
-
- #ifdef USE_GCC_PRAGMAS
- #pragma implementation
-
-=== modified file 'filter/pdftoopvp/oprs/OPVPSplashState.cxx'
---- filter/pdftoopvp/oprs/OPVPSplashState.cxx 2012-03-29 09:42:35 +0000
-+++ filter/pdftoopvp/oprs/OPVPSplashState.cxx 2012-07-19 14:02:32 +0000
-@@ -11,6 +11,9 @@
- #endif
-
- #include <string.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
- #include "goo/gmem.h"
- #include "splash/SplashPattern.h"
- #include "splash/SplashScreen.h"
-
-=== modified file 'filter/pdftoopvp/oprs/OPVPSplashState.h'
---- filter/pdftoopvp/oprs/OPVPSplashState.h 2012-03-29 09:42:35 +0000
-+++ filter/pdftoopvp/oprs/OPVPSplashState.h 2012-07-19 14:02:32 +0000
-@@ -11,6 +11,9 @@
- #pragma interface
- #endif
-
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
- #include "splash/SplashTypes.h"
- #include "splash/SplashState.h"
- #include "splash/Splash.h"
-
-=== modified file 'filter/pdftoopvp/oprs/OPVPSplashXPath.cxx'
---- filter/pdftoopvp/oprs/OPVPSplashXPath.cxx 2012-03-29 09:42:35 +0000
-+++ filter/pdftoopvp/oprs/OPVPSplashXPath.cxx 2012-07-19 14:02:32 +0000
-@@ -1,5 +1,8 @@
- #include <config.h>
- #include <stdio.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
- #include "splash/Splash.h"
- #include "splash/SplashMath.h"
- #include "OPVPSplashClip.h"
-
-=== modified file 'filter/pdftoopvp/oprs/OPVPSplashXPath.h'
---- filter/pdftoopvp/oprs/OPVPSplashXPath.h 2012-03-29 09:42:35 +0000
-+++ filter/pdftoopvp/oprs/OPVPSplashXPath.h 2012-07-19 14:02:32 +0000
-@@ -2,6 +2,9 @@
- #define OPVPSPLASHXPATH_H
-
- #include <config.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
- #include "splash/SplashXPath.h"
- #include "OPVPSplashPath.h"
- #include "OPVPSplashState.h"
-
-=== modified file 'filter/pdftoopvp/pdftoopvp.cxx'
---- filter/pdftoopvp/pdftoopvp.cxx 2012-06-04 16:46:44 +0000
-+++ filter/pdftoopvp/pdftoopvp.cxx 2012-07-19 14:02:32 +0000
-@@ -13,6 +13,9 @@
- #include <unistd.h>
- #include <ctype.h>
- #include <math.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
- #include "goo/GooString.h"
- #define GSTRING_H // for old GooString.h
- #include "goo/gmem.h"
-
-=== modified file 'filter/pdftopdf/P2PError.h'
---- filter/pdftopdf/P2PError.h 2012-03-29 14:06:07 +0000
-+++ filter/pdftopdf/P2PError.h 2012-07-19 14:02:32 +0000
-@@ -31,6 +31,9 @@
- #include <config.h>
- #include <stdarg.h>
- #include <Error.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
-
- #if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 19
- #define p2pError(pos,...) error(errInternal,pos,__VA_ARGS__)
-
-=== modified file 'filter/pdftopdf/P2PFont.cxx'
---- filter/pdftopdf/P2PFont.cxx 2012-03-29 09:42:35 +0000
-+++ filter/pdftopdf/P2PFont.cxx 2012-07-19 14:02:32 +0000
-@@ -32,6 +32,9 @@
- #include <sys/types.h>
- #include <unistd.h>
- #include <fcntl.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
- #include "goo/gmem.h"
- #include "P2PFont.h"
- #include "GfxFont.h"
-
-=== modified file 'filter/pdftopdf/pdftopdf.cxx'
---- filter/pdftopdf/pdftopdf.cxx 2012-06-04 16:46:44 +0000
-+++ filter/pdftopdf/pdftopdf.cxx 2012-07-19 14:02:32 +0000
-@@ -29,6 +29,9 @@
- #include <config.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
- #include "goo/GooString.h"
- #include "goo/gmem.h"
- #include "Object.h"
-
-=== modified file 'filter/pdftoraster.cxx'
---- filter/pdftoraster.cxx 2012-06-04 16:46:44 +0000
-+++ filter/pdftoraster.cxx 2012-07-19 14:02:32 +0000
-@@ -31,6 +31,9 @@
- #include <config.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#ifdef HAVE_CPP_POPPLER_VERSION_H
-+#include "cpp/poppler-version.h"
-+#endif
- #include "goo/GooString.h"
- #include "goo/gmem.h"
- #include "Object.h"
-
diff --git a/libre/cups-libre/PKGBUILD b/libre/cups-libre/PKGBUILD
deleted file mode 100644
index 105bea193..000000000
--- a/libre/cups-libre/PKGBUILD
+++ /dev/null
@@ -1,168 +0,0 @@
-# $Id: PKGBUILD 160055 2012-05-28 16:48:32Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-
-pkgbase="cups"
-pkgname=('libcups' 'cups-libre')
-pkgver=1.5.3
-pkgrel=3
-arch=('i686' 'x86_64' 'mips64el')
-license=('GPL')
-url="http://www.cups.org/"
-makedepends=('libtiff>=4.0.0' 'libpng>=1.5.7' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'cups-filters' 'bc'
- 'xinetd' 'gzip' 'autoconf' 'php' 'libusb' 'dbus-core' 'avahi' 'hicolor-icon-theme')
-source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
- cups-avahi-1-config.patch
- cups-avahi-2-backend.patch
- cups-avahi-3-timeouts.patch
- cups-avahi-4-poll.patch
- cups-avahi-5-services.patch
- cups-no-export-ssllibs.patch
- cups-no-gcrypt.patch
- cups-no-gzip-man.patch
- cups cups.logrotate cups.pam)
-#options=('!emptydirs')
-md5sums=('e1ad15257aa6f162414ea3beae0c5df8'
- '12c8af5bcd3b8f84240280b3dfaf9e89'
- 'cdc1322c8014297ae349e2db78a03c5a'
- '1a5112f63958643f2888abc9418dbcac'
- 'c37d1bf1bb76acc3fe93362c80d91b7c'
- '5d302860559960042f3b47a91b97c5fe'
- '9b8467a1e51d360096b70e2c3c081e6c'
- '3733c23e77eb503bd94cc368e02830dc'
- 'c9159ba1233902ba6ddbbe6885a46b72'
- '9657daa21760bb0b5fa3d8b51d5e01a1'
- 'f861b18f4446c43918c8643dcbbd7f6d'
- '96f82c38f3f540b53f3e5144900acf17')
-
-build() {
- cd ${srcdir}/${pkgbase}-${pkgver}
- # http://www.cups.org/str.php?L3066
- # Avahi support in the dnssd backend. patches from upstream/FC RawHide
- patch -Np1 -i ${srcdir}/cups-avahi-1-config.patch
- patch -Np1 -i ${srcdir}/cups-avahi-2-backend.patch
- patch -Np1 -i ${srcdir}/cups-avahi-3-timeouts.patch
- patch -Np1 -i ${srcdir}/cups-avahi-4-poll.patch
- patch -Np1 -i ${srcdir}/cups-avahi-5-services.patch
-
- # Do not export SSL libs in cups-config
- patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch"
-
- patch -Np1 -i "${srcdir}/cups-no-gcrypt.patch"
- # don't zip man pages in make install, let makepkg do that / Fedora
- patch -Np1 -i ${srcdir}/cups-no-gzip-man.patch
-
- # Rebuild configure script for --enable-avahi.
- aclocal -I config-scripts
- autoconf -I config-scripts
-
- ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
- --libdir=/usr/lib \
- --with-logdir=/var/log/cups \
- --with-docdir=/usr/share/cups/doc \
- --with-cups-user=daemon \
- --with-cups-group=lp \
- --enable-pam=yes \
- --disable-ldap \
- --enable-raw-printing \
- --enable-dbus --with-dbusdir=/etc/dbus-1 \
- --enable-ssl=yes --enable-gnutls \
- --enable-threads \
- --enable-avahi\
- --with-php=/usr/bin/php-cgi \
- --with-pdftops=pdftops \
- --with-optim="$CFLAGS"
- make
-}
-
-check() {
- cd "$srcdir/$pkgbase-$pkgver"
- #httpAddrGetList(workstation64): FAIL
- #1 TESTS FAILED!
- #make[1]: *** [testhttp] Error 1
- make -k check || /bin/true
-}
-
-package_libcups() {
-pkgdesc="The CUPS Printing System - client libraries and headers"
-depends=('gnutls>=2.8.3' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'avahi')
-backup=(etc/cups/client.conf)
-
- cd ${srcdir}/${pkgbase}-${pkgver}
- make BUILDROOT=${pkgdir} install-headers install-libs
- # put this into the libs pkg to make other software find the libs(no pkg-config file included)
- mkdir -p ${pkgdir}/usr/bin
- install -m755 ${srcdir}/${pkgbase}-${pkgver}/cups-config ${pkgdir}/usr/bin/cups-config
-
- # install client.conf man page and config file
- install -dm755 ${pkgdir}/usr/share/man/man5
- #install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5.gz ${pkgdir}/usr/share/man/man5/
- install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5 ${pkgdir}/usr/share/man/man5/
- install -dm755 ${pkgdir}/etc/cups
- touch ${pkgdir}/etc/cups/client.conf
- echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
- echo "ServerName /var/run/cups/cups.sock # alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
- chgrp lp ${pkgdir}/etc/cups/client.conf
-}
-
-package_cups-libre() {
-pkgdesc="The CUPS Printing System - daemon package"
-provides=("${pkgbase}=${pkgver}")
-replaces=("${pkgbase}")
-conflicts=("${pkgbase}")
-install=cups.install
-backup=(etc/cups/cupsd.conf
- etc/cups/snmp.conf
- etc/cups/printers.conf
- etc/cups/classes.conf
- etc/cups/subscriptions.conf
- etc/dbus-1/system.d/cups.conf
- etc/logrotate.d/cups
- etc/pam.d/cups
- etc/xinetd.d/cups-lpd)
-depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc' 'libusb' 'dbus-core' 'hicolor-icon-theme')
-optdepends=('php: for included phpcups.so module'
- 'xdg-utils: xdg .desktop file support')
-
- cd ${srcdir}/${pkgbase}-${pkgver}
- make BUILDROOT=${pkgdir} install-data install-exec
-
- # this one we ship in the libcups pkg
- rm -f ${pkgdir}/usr/bin/cups-config
-
- # kill the sysv stuff
- rm -rf ${pkgdir}/etc/rc*.d
- rm -rf ${pkgdir}/etc/init.d
- install -D -m755 ../cups ${pkgdir}/etc/rc.d/cupsd
- install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups
- install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups
-
- # fix perms on /var/spool and /etc
- chmod 755 ${pkgdir}/var/spool
- chmod 755 ${pkgdir}/etc
-
- # install ssl directory where to store the certs, solves some samba issues
- install -dm700 -g lp ${pkgdir}/etc/cups/ssl
- # remove directory from package, we create it in cups rc.d file
- rm -rf ${pkgdir}/var/run
-
- # install some more configuration files that will get filled by cupsd
- touch ${pkgdir}/etc/cups/printers.conf
- touch ${pkgdir}/etc/cups/classes.conf
- touch ${pkgdir}/etc/cups/subscriptions.conf
- chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,subscriptions.conf}
-
- # fix .desktop file
- sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
-
- # compress some driver files, adopted from Fedora
- find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
-
- # remove client.conf man page
- rm -f ${pkgdir}/usr/share/man/man5/client.conf.5
-
- # remove files now part of cups-filters
- rm -v ${pkgdir}/usr/lib/cups/backend/{parallel,serial}
- rm -v ${pkgdir}/usr/lib/cups/filter/{commandtoescpx,commandtopclx,imagetops,imagetoraster,pdftops,rastertoescpx,rastertopclx,texttops}
- rm -v ${pkgdir}/usr/share/cups/banners/{classified,confidential,secret,standard,topsecret,unclassified}
- rm -v ${pkgdir}/usr/share/cups/data/testprint
-}
diff --git a/libre/cups-libre/cups b/libre/cups-libre/cups
deleted file mode 100644
index 744c8e663..000000000
--- a/libre/cups-libre/cups
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/bash
-
-daemon_name=cupsd
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-#. /etc/conf.d/$daemon_name.conf
-
-get_pid() {
- pidof -o %PPID $daemon_name
-}
-
-case "$1" in
- start)
- stat_busy "Starting $daemon_name daemon"
-
- PID=$(get_pid)
- if [ -z "$PID" ]; then
- [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
- # RUN
- $daemon_name
- #
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- echo $(get_pid) > /var/run/$daemon_name.pid
- add_daemon $daemon_name
- stat_done
- fi
- else
- stat_fail
- exit 1
- fi
- ;;
-
- stop)
- stat_busy "Stopping $daemon_name daemon"
- PID=$(get_pid)
- # KILL
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- #
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- rm -f /var/run/$daemon_name.pid &> /dev/null
- rm_daemon $daemon_name
- stat_done
- fi
- ;;
-
- restart)
- $0 stop
- sleep 3
- $0 start
- ;;
-
- status)
- stat_busy "Checking $daemon_name status";
- ck_status $daemon_name
- ;;
-
- *)
- echo "usage: $0 {start|stop|restart|status}"
-esac
-
-exit 0
diff --git a/libre/cups-libre/cups-avahi-1-config.patch b/libre/cups-libre/cups-avahi-1-config.patch
deleted file mode 100644
index 516e01fa9..000000000
--- a/libre/cups-libre/cups-avahi-1-config.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -up cups-1.5.2/config.h.in.avahi-1-config cups-1.5.2/config.h.in
---- cups-1.5.2/config.h.in.avahi-1-config 2011-06-16 21:12:16.000000000 +0100
-+++ cups-1.5.2/config.h.in 2012-03-14 15:04:51.365347165 +0000
-@@ -390,6 +390,13 @@
-
-
- /*
-+ * Do we have Avahi for DNS Service Discovery?
-+ */
-+
-+#undef HAVE_AVAHI
-+
-+
-+/*
- * Do we have <sys/ioctl.h>?
- */
-
-diff -up cups-1.5.2/config-scripts/cups-dnssd.m4.avahi-1-config cups-1.5.2/config-scripts/cups-dnssd.m4
---- cups-1.5.2/config-scripts/cups-dnssd.m4.avahi-1-config 2011-05-12 06:21:56.000000000 +0100
-+++ cups-1.5.2/config-scripts/cups-dnssd.m4 2012-03-14 15:04:51.365347165 +0000
-@@ -23,6 +23,21 @@ AC_ARG_WITH(dnssd-includes, [ --with-dn
- DNSSDLIBS=""
- DNSSD_BACKEND=""
-
-+AC_ARG_ENABLE(avahi, [ --enable-avahi turn on DNS Service Discovery support, default=no],
-+ [if test x$enable_avahi = xyes; then
-+ AC_MSG_CHECKING(for Avahi)
-+ if $PKGCONFIG --exists avahi-client; then
-+ AC_MSG_RESULT(yes)
-+ CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
-+ DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
-+ DNSSD_BACKEND="dnssd"
-+ AC_DEFINE(HAVE_AVAHI)
-+ enable_dnssd=no
-+ else
-+ AC_MSG_RESULT(no)
-+ fi
-+ fi])
-+
- if test x$enable_dnssd != xno; then
- AC_CHECK_HEADER(dns_sd.h, [
- case "$uname" in
diff --git a/libre/cups-libre/cups-avahi-2-backend.patch b/libre/cups-libre/cups-avahi-2-backend.patch
deleted file mode 100644
index 9fa367729..000000000
--- a/libre/cups-libre/cups-avahi-2-backend.patch
+++ /dev/null
@@ -1,1118 +0,0 @@
-diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
---- cups-1.5.3/backend/dnssd.c.avahi-2-backend 2012-05-15 16:53:18.164774446 +0200
-+++ cups-1.5.3/backend/dnssd.c 2012-05-15 17:09:07.684155704 +0200
-@@ -15,14 +15,21 @@
- *
- * Contents:
- *
-+ * next_txt_record() - Get next TXT record from a cups_txt_records_t.
-+ * parse_txt_record_pair() - Read key/value pair in cups_txt_records_t.
- * main() - Browse for printers.
- * browse_callback() - Browse devices.
- * browse_local_callback() - Browse local devices.
- * compare_devices() - Compare two devices.
- * exec_backend() - Execute the backend that corresponds to the
- * resolved service name.
-+ * device_type() - Get DNS-SD type enumeration from string.
- * get_device() - Create or update a device.
- * query_callback() - Process query data.
-+ * avahi_client_callback() - Avahi client callback function.
-+ * avahi_query_callback() - Avahi query callback function.
-+ * avahi_browse_callback() - Avahi browse callback function.
-+ * find_device() - Find a device from its name and domain.
- * sigterm_handler() - Handle termination signals...
- * unquote() - Unquote a name string.
- */
-@@ -33,7 +40,18 @@
-
- #include "backend-private.h"
- #include <cups/array.h>
--#include <dns_sd.h>
-+#ifdef HAVE_DNSSD
-+# include <dns_sd.h>
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/lookup.h>
-+# include <avahi-common/simple-watch.h>
-+# include <avahi-common/domain.h>
-+# include <avahi-common/error.h>
-+# include <avahi-common/malloc.h>
-+#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -53,7 +71,12 @@ typedef enum
-
- typedef struct
- {
-+#ifdef HAVE_DNSSD
- DNSServiceRef ref; /* Service reference for resolve */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int resolved; /* Did we resolve the device? */
-+#endif /* HAVE_AVAHI */
- char *name, /* Service name */
- *domain, /* Domain name */
- *fullName, /* Full name */
-@@ -65,6 +88,20 @@ typedef struct
- sent; /* Did we list the device? */
- } cups_device_t;
-
-+typedef struct
-+{
-+ char key[256];
-+ char value[256];
-+
-+#ifdef HAVE_DNSSD
-+ const uint8_t *data;
-+ const uint8_t *datanext;
-+ const uint8_t *dataend;
-+#else /* HAVE_AVAHI */
-+ AvahiStringList *txt;
-+#endif /* HAVE_DNSSD */
-+} cups_txt_records_t;
-+
-
- /*
- * Local globals...
-@@ -78,6 +115,7 @@ static int job_canceled = 0;
- * Local functions...
- */
-
-+#ifdef HAVE_DNSSD
- static void browse_callback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- uint32_t interfaceIndex,
-@@ -95,13 +133,6 @@ static void browse_local_callback(DNSSe
- const char *replyDomain,
- void *context)
- __attribute__((nonnull(1,5,6,7,8)));
--static int compare_devices(cups_device_t *a, cups_device_t *b);
--static void exec_backend(char **argv);
--static cups_device_t *get_device(cups_array_t *devices,
-- const char *serviceName,
-- const char *regtype,
-- const char *replyDomain)
-- __attribute__((nonnull(1,2,3,4)));
- static void query_callback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- uint32_t interfaceIndex,
-@@ -111,10 +142,119 @@ static void query_callback(DNSServiceRe
- const void *rdata, uint32_t ttl,
- void *context)
- __attribute__((nonnull(1,5,9,11)));
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+static void avahi_client_callback (AvahiClient *client,
-+ AvahiClientState state,
-+ void *context);
-+static void avahi_browse_callback (AvahiServiceBrowser *browser,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiBrowserEvent event,
-+ const char *serviceName,
-+ const char *regtype,
-+ const char *replyDomain,
-+ AvahiLookupResultFlags flags,
-+ void *context);
-+#endif /* HAVE_AVAHI */
-+static cups_device_t * find_device (cups_array_t *devices,
-+ cups_txt_records_t *txt,
-+ cups_device_t *dkey);
-+static int compare_devices(cups_device_t *a, cups_device_t *b);
-+static void exec_backend(char **argv);
-+static cups_device_t *get_device(cups_array_t *devices,
-+ const char *serviceName,
-+ const char *regtype,
-+ const char *replyDomain)
-+ __attribute__((nonnull(1,2,3,4)));
- static void sigterm_handler(int sig);
- static void unquote(char *dst, const char *src, size_t dstsize)
- __attribute__((nonnull(1,2)));
-
-+#ifdef HAVE_AVAHI
-+static AvahiSimplePoll *simple_poll = NULL;
-+static int avahi_got_callback;
-+#endif /* HAVE_AVAHI */
-+
-+
-+/*
-+ * 'next_txt_record()' - Get next TXT record from a cups_txt_records_t.
-+ */
-+
-+static cups_txt_records_t *
-+next_txt_record (cups_txt_records_t *txt)
-+{
-+#ifdef HAVE_DNSSD
-+ txt->data = txt->datanext;
-+#else /* HAVE_AVAHI */
-+ txt->txt = avahi_string_list_get_next (txt->txt);
-+ if (txt->txt == NULL)
-+ return NULL;
-+#endif /* HAVE_DNSSD */
-+
-+ return txt;
-+}
-+
-+
-+/*
-+ * 'parse_txt_record_pair()' - Read key/value pair in cups_txt_records_t.
-+ */
-+
-+static int
-+parse_txt_record_pair (cups_txt_records_t *txt)
-+{
-+#ifdef HAVE_DNSSD
-+ uint8_t datalen;
-+ uint8_t *data = txt->data;
-+ char *ptr;
-+
-+ /*
-+ * Read a key/value pair starting with an 8-bit length. Since the
-+ * length is 8 bits and the size of the key/value buffers is 256, we
-+ * don't need to check for overflow...
-+ */
-+
-+ datalen = *data++;
-+ if (!datalen || (data + datalen) > txt->dataend)
-+ return NULL;
-+ txt->datanext = data + datalen;
-+
-+ for (ptr = txt->key; data < txt->datanext && *data != '='; data ++)
-+ *ptr++ = *data;
-+ *ptr = '\0';
-+
-+ if (data < txt->datanext && *data == '=')
-+ {
-+ data++;
-+
-+ if (data < datanext)
-+ memcpy (txt->value, data, txt->datanext - data);
-+ value[txt->datanext - data] = '\0';
-+ }
-+ else
-+ return 1;
-+#else /* HAVE_AVAHI */
-+ char *key, *value;
-+ size_t len;
-+ avahi_string_list_get_pair (txt->txt, &key, &value, &len);
-+ if (len > sizeof (txt->value) - 1)
-+ len = sizeof (txt->value) - 1;
-+
-+ memcpy (txt->value, value, len);
-+ txt->value[len] = '\0';
-+ len = strlen (key);
-+ if (len > sizeof (txt->key) - 1)
-+ len = sizeof (txt->key) - 1;
-+
-+ memcpy (txt->key, key, len);
-+ txt->key[len] = '\0';
-+ avahi_free (key);
-+ avahi_free (value);
-+#endif /* HAVE_AVAHI */
-+
-+ return 0;
-+}
-+
-
- /*
- * 'main()' - Browse for printers.
-@@ -125,6 +265,13 @@ main(int argc, /* I - Number of comm
- char *argv[]) /* I - Command-line arguments */
- {
- const char *name; /* Backend name */
-+ cups_array_t *devices; /* Device array */
-+ cups_device_t *device; /* Current device */
-+ char uriName[1024]; /* Unquoted fullName for URI */
-+#ifdef HAVE_DNSSD
-+ int fd; /* Main file descriptor */
-+ fd_set input; /* Input set for select() */
-+ struct timeval timeout; /* Timeout for select() */
- DNSServiceRef main_ref, /* Main service reference */
- fax_ipp_ref, /* IPP fax service reference */
- ipp_ref, /* IPP service reference */
-@@ -138,12 +285,11 @@ main(int argc, /* I - Number of comm
- pdl_datastream_ref, /* AppSocket service reference */
- printer_ref, /* LPD service reference */
- riousbprint_ref; /* Remote IO service reference */
-- int fd; /* Main file descriptor */
-- fd_set input; /* Input set for select() */
-- struct timeval timeout; /* Timeout for select() */
-- cups_array_t *devices; /* Device array */
-- cups_device_t *device; /* Current device */
-- char uriName[1024]; /* Unquoted fullName for URI */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ AvahiClient *client;
-+ int error;
-+#endif /* HAVE_AVAHI */
- #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
- struct sigaction action; /* Actions for POSIX signals */
- #endif /* HAVE_SIGACTION && !HAVE_SIGSET */
-@@ -203,6 +349,49 @@ main(int argc, /* I - Number of comm
- * Browse for different kinds of printers...
- */
-
-+#ifdef HAVE_AVAHI
-+ if ((simple_poll = avahi_simple_poll_new ()) == NULL)
-+ {
-+ perror ("ERROR: Unable to create avahi simple poll object");
-+ return (1);
-+ }
-+
-+ client = avahi_client_new (avahi_simple_poll_get (simple_poll),
-+ 0, avahi_client_callback, NULL, &error);
-+ if (!client)
-+ {
-+ perror ("DEBUG: Unable to create avahi client");
-+ return (0);
-+ }
-+
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_fax-ipp._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_ipp._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_ipp-tls._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_pdl-datastream._tcp",
-+ NULL, 0,
-+ avahi_browse_callback,
-+ devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_printer._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_riousbprint._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+#endif /* HAVE_AVAHI */
-+#ifdef HAVE_DNSSD
- if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
- {
- perror("ERROR: Unable to create service connection");
-@@ -263,6 +452,7 @@ main(int argc, /* I - Number of comm
- riousbprint_ref = main_ref;
- DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
- "_riousbprint._tcp", NULL, browse_callback, devices);
-+#endif /* HAVE_DNSSD */
-
- /*
- * Loop until we are killed...
-@@ -270,6 +460,9 @@ main(int argc, /* I - Number of comm
-
- while (!job_canceled)
- {
-+ int announce = 0;
-+
-+#ifdef HAVE_DNSSD
- FD_ZERO(&input);
- FD_SET(fd, &input);
-
-@@ -289,11 +482,35 @@ main(int argc, /* I - Number of comm
- }
- else
- {
-+ announce = 1;
-+ }
-+#else /* HAVE_AVAHI */
-+ int r;
-+ avahi_got_callback = 0;
-+ r = avahi_simple_poll_iterate (simple_poll, 1);
-+ if (r != 0 && r != EINTR)
-+ {
-+ /*
-+ * We've been told to exit the loop. Perhaps the connection to
-+ * avahi failed.
-+ */
-+
-+ break;
-+ }
-+
-+ if (avahi_got_callback)
-+ announce = 1;
-+#endif /* HAVE_DNSSD */
-+
-+ if (announce)
-+ {
- /*
- * Announce any devices we've found...
- */
-
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType status; /* DNS query status */
-+#endif /* HAVE_DNSSD */
- cups_device_t *best; /* Best matching device */
- char device_uri[1024]; /* Device URI */
- int count; /* Number of queries */
-@@ -307,6 +524,7 @@ main(int argc, /* I - Number of comm
- if (device->sent)
- sent ++;
-
-+#ifdef HAVE_DNSSD
- if (device->ref)
- count ++;
-
-@@ -338,14 +556,23 @@ main(int argc, /* I - Number of comm
- count ++;
- }
- }
-- else if (!device->sent)
-+ else
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ if (!device->resolved)
-+ continue;
-+ else
-+#endif /* HAVE_AVAHI */
-+ if (!device->sent)
- {
-+#ifdef HAVE_DNSSD
- /*
- * Got the TXT records, now report the device...
- */
-
- DNSServiceRefDeallocate(device->ref);
- device->ref = 0;
-+#endif /* HAVE_DNSSD */
-
- if (!best)
- best = device;
-@@ -406,6 +633,7 @@ main(int argc, /* I - Number of comm
- }
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'browse_callback()' - Browse devices.
- */
-@@ -494,6 +722,7 @@ browse_local_callback(
- device->fullName);
- device->sent = 1;
- }
-+#endif /* HAVE_DNSSD */
-
-
- /*
-@@ -574,6 +803,41 @@ exec_backend(char **argv) /* I - Comman
-
-
- /*
-+ * 'device_type()' - Get DNS-SD type enumeration from string.
-+ */
-+
-+static int
-+device_type (const char *regtype)
-+{
-+#ifdef HAVE_AVAHI
-+ if (!strcmp(regtype, "_ipp._tcp"))
-+ return (CUPS_DEVICE_IPP);
-+ else if (!strcmp(regtype, "_ipps._tcp") ||
-+ !strcmp(regtype, "_ipp-tls._tcp"))
-+ return (CUPS_DEVICE_IPPS);
-+ else if (!strcmp(regtype, "_fax-ipp._tcp"))
-+ return (CUPS_DEVICE_FAX_IPP);
-+ else if (!strcmp(regtype, "_printer._tcp"))
-+ return (CUPS_DEVICE_PDL_DATASTREAM);
-+#else
-+ if (!strcmp(regtype, "_ipp._tcp."))
-+ return (CUPS_DEVICE_IPP);
-+ else if (!strcmp(regtype, "_ipps._tcp.") ||
-+ !strcmp(regtype, "_ipp-tls._tcp."))
-+ return (CUPS_DEVICE_IPPS);
-+ else if (!strcmp(regtype, "_fax-ipp._tcp."))
-+ return (CUPS_DEVICE_FAX_IPP);
-+ else if (!strcmp(regtype, "_printer._tcp."))
-+ return (CUPS_DEVICE_PRINTER);
-+ else if (!strcmp(regtype, "_pdl-datastream._tcp."))
-+ return (CUPS_DEVICE_PDL_DATASTREAM);
-+#endif /* HAVE_AVAHI */
-+
-+ return (CUPS_DEVICE_RIOUSBPRINT);
-+}
-+
-+
-+/*
- * 'get_device()' - Create or update a device.
- */
-
-@@ -594,20 +858,7 @@ get_device(cups_array_t *devices, /* I -
- */
-
- key.name = (char *)serviceName;
--
-- if (!strcmp(regtype, "_ipp._tcp."))
-- key.type = CUPS_DEVICE_IPP;
-- else if (!strcmp(regtype, "_ipps._tcp.") ||
-- !strcmp(regtype, "_ipp-tls._tcp."))
-- key.type = CUPS_DEVICE_IPPS;
-- else if (!strcmp(regtype, "_fax-ipp._tcp."))
-- key.type = CUPS_DEVICE_FAX_IPP;
-- else if (!strcmp(regtype, "_printer._tcp."))
-- key.type = CUPS_DEVICE_PRINTER;
-- else if (!strcmp(regtype, "_pdl-datastream._tcp."))
-- key.type = CUPS_DEVICE_PDL_DATASTREAM;
-- else
-- key.type = CUPS_DEVICE_RIOUSBPRINT;
-+ key.type = device_type (regtype);
-
- for (device = cupsArrayFind(devices, &key);
- device;
-@@ -627,8 +878,14 @@ get_device(cups_array_t *devices, /* I -
- free(device->domain);
- device->domain = strdup(replyDomain);
-
-+#ifdef HAVE_DNSSD
- DNSServiceConstructFullName(fullName, device->name, regtype,
- replyDomain);
-+#else /* HAVE_AVAHI */
-+ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
-+ serviceName, regtype, replyDomain);
-+#endif /* HAVE_DNSSD */
-+
- free(device->fullName);
- device->fullName = strdup(fullName);
- }
-@@ -648,6 +905,9 @@ get_device(cups_array_t *devices, /* I -
- device->domain = strdup(replyDomain);
- device->type = key.type;
- device->priority = 50;
-+#ifdef HAVE_AVAHI
-+ device->resolved = 0;
-+#endif /* HAVE_AVAHI */
-
- cupsArrayAdd(devices, device);
-
-@@ -655,13 +915,20 @@ get_device(cups_array_t *devices, /* I -
- * Set the "full name" of this service, which is used for queries...
- */
-
-+#ifdef HAVE_DNSSD
- DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
-+#else /* HAVE_AVAHI */
-+ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
-+ serviceName, regtype, replyDomain);
-+#endif /* HAVE_DNSSD */
-+
- device->fullName = strdup(fullName);
-
- return (device);
- }
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'query_callback()' - Process query data.
- */
-@@ -685,7 +952,7 @@ query_callback(
- *ptr; /* Pointer into string */
- cups_device_t dkey, /* Search key */
- *device; /* Device */
--
-+ cups_txt_records_t txt;
-
- fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
- "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
-@@ -719,94 +986,233 @@ query_callback(
- if ((ptr = strstr(name, "._")) != NULL)
- *ptr = '\0';
-
-- if (strstr(fullName, "_ipp._tcp."))
-- dkey.type = CUPS_DEVICE_IPP;
-- else if (strstr(fullName, "_ipps._tcp.") ||
-- strstr(fullName, "_ipp-tls._tcp."))
-- dkey.type = CUPS_DEVICE_IPPS;
-- else if (strstr(fullName, "_fax-ipp._tcp."))
-- dkey.type = CUPS_DEVICE_FAX_IPP;
-- else if (strstr(fullName, "_printer._tcp."))
-- dkey.type = CUPS_DEVICE_PRINTER;
-- else if (strstr(fullName, "_pdl-datastream._tcp."))
-- dkey.type = CUPS_DEVICE_PDL_DATASTREAM;
-+ dkey.type = device_type (fullName);
-+
-+ txt.data = rdata;
-+ txt.dataend = rdata + rdlen;
-+ device = find_device ((cups_array_t *) context, &txt, &dkey);
-+ if (!device)
-+ fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
-+}
-+#endif /* HAVE_DNSSD */
-+
-+
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahi_client_callback()' - Avahi client callback function.
-+ */
-+
-+static void
-+avahi_client_callback(AvahiClient *client,
-+ AvahiClientState state,
-+ void *context)
-+{
-+ /*
-+ * If the connection drops, quit.
-+ */
-+
-+ if (state == AVAHI_CLIENT_FAILURE)
-+ {
-+ fprintf (stderr, "ERROR: Avahi connection failed\n");
-+ avahi_simple_poll_quit (simple_poll);
-+ }
-+}
-+
-+
-+/*
-+ * 'avahi_query_callback()' - Avahi query callback function.
-+ */
-+
-+static void
-+avahi_query_callback(AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ AvahiClient *client;
-+ cups_device_t key,
-+ *device;
-+ char uqname[1024],
-+ *ptr;
-+ cups_txt_records_t txtr;
-+
-+ client = avahi_service_resolver_get_client (resolver);
-+ if (event != AVAHI_RESOLVER_FOUND)
-+ {
-+ if (event == AVAHI_RESOLVER_FAILURE)
-+ {
-+ fprintf (stderr, "ERROR: %s\n",
-+ avahi_strerror (avahi_client_errno (client)));
-+ }
-+
-+ avahi_service_resolver_free (resolver);
-+ return;
-+ }
-+
-+ /*
-+ * Set search key for device.
-+ */
-+
-+ key.name = uqname;
-+ unquote (uqname, name, sizeof (uqname));
-+ if ((ptr = strstr(name, "._")) != NULL)
-+ *ptr = '\0';
-+
-+ key.domain = (char *) domain;
-+ key.type = device_type (type);
-+
-+ /*
-+ * Find the device and the the TXT information.
-+ */
-+
-+ txtr.txt = txt;
-+ device = find_device ((cups_array_t *) context, &txtr, &key);
-+ if (device)
-+ {
-+ /*
-+ * Let the main loop know to announce the device.
-+ */
-+
-+ device->resolved = 1;
-+ avahi_got_callback = 1;
-+ }
- else
-- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
-+ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
-
-- for (device = cupsArrayFind(devices, &dkey);
-+ avahi_service_resolver_free (resolver);
-+}
-+
-+
-+/*
-+ * 'avahi_browse_callback()' - Avahi browse callback function.
-+ */
-+
-+static void
-+avahi_browse_callback(AvahiServiceBrowser *browser,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiBrowserEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ AvahiClient *client = avahi_service_browser_get_client (browser);
-+
-+ switch (event)
-+ {
-+ case AVAHI_BROWSER_FAILURE:
-+ fprintf (stderr, "ERROR: %s\n",
-+ avahi_strerror (avahi_client_errno (client)));
-+ avahi_simple_poll_quit (simple_poll);
-+ return;
-+
-+ case AVAHI_BROWSER_NEW:
-+ /*
-+ * This object is new on the network.
-+ */
-+
-+ if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
-+ {
-+ /*
-+ * This comes from the local machine so ignore it.
-+ */
-+
-+ fprintf (stderr, "DEBUG: ignoring local service %s\n", name);
-+ }
-+ else
-+ {
-+ /*
-+ * Create a device entry for it if it doesn't yet exist.
-+ */
-+
-+ get_device ((cups_array_t *)context, name, type, domain);
-+
-+ /*
-+ * Now look for a TXT entry.
-+ */
-+
-+ if (avahi_service_resolver_new (client, interface, protocol,
-+ name, type, domain,
-+ AVAHI_PROTO_UNSPEC, 0,
-+ avahi_query_callback, context) == NULL)
-+ {
-+ fprintf (stderr, "ERROR: failed to resolve service %s: %s\n",
-+ name, avahi_strerror (avahi_client_errno (client)));
-+ }
-+ }
-+
-+ break;
-+
-+ case AVAHI_BROWSER_REMOVE:
-+ case AVAHI_BROWSER_ALL_FOR_NOW:
-+ case AVAHI_BROWSER_CACHE_EXHAUSTED:
-+ break;
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
-+/*
-+ * 'find_device()' - Find a device from its name and domain.
-+ */
-+
-+static cups_device_t *
-+find_device (cups_array_t *devices,
-+ cups_txt_records_t *txt,
-+ cups_device_t *dkey)
-+{
-+ cups_device_t *device;
-+ char *ptr;
-+
-+ for (device = cupsArrayFind(devices, dkey);
- device;
- device = cupsArrayNext(devices))
- {
-- if (_cups_strcasecmp(device->name, dkey.name) ||
-- _cups_strcasecmp(device->domain, dkey.domain))
-+ if (_cups_strcasecmp(device->name, dkey->name) ||
-+ _cups_strcasecmp(device->domain, dkey->domain))
- {
- device = NULL;
- break;
- }
-- else if (device->type == dkey.type)
-+ else if (device->type == dkey->type)
- {
- /*
- * Found it, pull out the priority and make and model from the TXT
- * record and save it...
- */
-
-- const uint8_t *data, /* Pointer into data */
-- *datanext, /* Next key/value pair */
-- *dataend; /* End of entire TXT record */
-- uint8_t datalen; /* Length of current key/value pair */
-- char key[256], /* Key string */
-- value[256], /* Value string */
-- make_and_model[512],
-+ char make_and_model[512],
- /* Manufacturer and model */
- model[256], /* Model */
-- device_id[2048];/* 1284 device ID */
--
-+ device_id[2048]; /* 1284 device ID */
-
- device_id[0] = '\0';
- make_and_model[0] = '\0';
-
- strcpy(model, "Unknown");
-
-- for (data = rdata, dataend = data + rdlen;
-- data < dataend;
-- data = datanext)
-+ for (;;)
- {
-- /*
-- * Read a key/value pair starting with an 8-bit length. Since the
-- * length is 8 bits and the size of the key/value buffers is 256, we
-- * don't need to check for overflow...
-- */
--
-- datalen = *data++;
--
-- if (!datalen || (data + datalen) > dataend)
-- break;
--
-- datanext = data + datalen;
--
-- for (ptr = key; data < datanext && *data != '='; data ++)
-- *ptr++ = *data;
-- *ptr = '\0';
-+ char *key;
-+ char *value;
-
-- if (data < datanext && *data == '=')
-- {
-- data ++;
--
-- if (data < datanext)
-- memcpy(value, data, datanext - data);
-- value[datanext - data] = '\0';
-+ if (parse_txt_record_pair (txt))
-+ goto next;
-
-- fprintf(stderr, "DEBUG2: query_callback: \"%s=%s\".\n",
-- key, value);
-- }
-- else
-- {
-- fprintf(stderr, "DEBUG2: query_callback: \"%s\" with no value.\n",
-- key);
-- continue;
-- }
--
-- if (!_cups_strncasecmp(key, "usb_", 4))
-+ key = txt->key;
-+ value = txt->value;
-+ if (!strncasecmp(key, "usb_", 4))
- {
- /*
- * Add USB device ID information...
-@@ -861,6 +1267,10 @@ query_callback(
- if (device->type == CUPS_DEVICE_PRINTER)
- device->sent = 1;
- }
-+
-+ next:
-+ if (next_txt_record (txt) == NULL)
-+ break;
- }
-
- if (device->device_id)
-@@ -917,11 +1327,9 @@ query_callback(
- }
- }
-
-- if (!device)
-- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
-+ return device;
- }
-
--
- /*
- * 'sigterm_handler()' - Handle termination signals...
- */
-diff -up cups-1.5.3/cups/http-support.c.avahi-2-backend cups-1.5.3/cups/http-support.c
---- cups-1.5.3/cups/http-support.c.avahi-2-backend 2012-02-15 02:06:12.000000000 +0100
-+++ cups-1.5.3/cups/http-support.c 2012-05-15 17:04:51.045944634 +0200
-@@ -43,6 +43,10 @@
- * http_copy_decode() - Copy and decode a URI.
- * http_copy_encode() - Copy and encode a URI.
- * http_resolve_cb() - Build a device URI for the given service name.
-+ * avahi_resolve_uri_client_cb()
-+ * - Avahi client callback for resolving URI.
-+ * avahi_resolve_uri_resolver_cb()
-+ * - Avahi resolver callback for resolving URI.
- */
-
- /*
-@@ -60,6 +64,11 @@
- # include <sys/select.h>
- # endif /* WIN32 */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/lookup.h>
-+# include <avahi-common/simple-watch.h>
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -127,6 +136,24 @@ static void DNSSD_API http_resolve_cb(DN
- void *context);
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+static void avahi_resolve_uri_client_cb(AvahiClient *client,
-+ AvahiClientState state,
-+ void *simple_poll);
-+static void avahi_resolve_uri_resolver_cb(AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context);
-+#endif /* HAVE_AVAHI */
-
- /*
- * 'httpAssembleURI()' - Assemble a uniform resource identifier from its
-@@ -1434,6 +1461,9 @@ _httpResolveURI(
-
- if (strstr(hostname, "._tcp"))
- {
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ char *regtype, /* Pointer to type in hostname */
-+ *domain; /* Pointer to domain in hostname */
- #ifdef HAVE_DNSSD
- # ifdef WIN32
- # pragma comment(lib, "dnssd.lib")
-@@ -1452,6 +1482,17 @@ _httpResolveURI(
- fd_set input_set; /* Input set for select() */
- struct timeval stimeout; /* Timeout value for select() */
- #endif /* HAVE_POLL */
-+#else /* HAVE_AVAHI */
-+ AvahiSimplePoll *simple_poll;
-+ AvahiClient *client;
-+ int error;
-+ struct
-+ {
-+ AvahiSimplePoll *poll;
-+ _http_uribuf_t uribuf;
-+ } user_data;
-+#endif /* HAVE_DNSSD */
-+
-
- if (options & _HTTP_RESOLVE_STDERR)
- fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
-@@ -1488,9 +1529,16 @@ _httpResolveURI(
- if (domain)
- *domain++ = '\0';
-
-+#ifdef HAVE_DNSSD
- uribuf.buffer = resolved_uri;
- uribuf.bufsize = resolved_size;
- uribuf.options = options;
-+#else
-+ user_data.uribuf.buffer = resolved_uri;
-+ user_data.uribuf.bufsize = resolved_size;
-+ user_data.uribuf.options = options;
-+#endif
-+
- resolved_uri[0] = '\0';
-
- DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
-@@ -1504,6 +1552,7 @@ _httpResolveURI(
-
- uri = NULL;
-
-+#ifdef HAVE_DNSSD
- if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
- {
- localref = ref;
-@@ -1611,6 +1660,36 @@ _httpResolveURI(
-
- DNSServiceRefDeallocate(ref);
- }
-+#else /* HAVE_AVAHI */
-+ if ((simple_poll = avahi_simple_poll_new ()) != NULL)
-+ {
-+ if ((client = avahi_client_new (avahi_simple_poll_get (simple_poll),
-+ 0, avahi_resolve_uri_client_cb,
-+ &simple_poll, &error)) != NULL)
-+ {
-+ user_data.poll = simple_poll;
-+ if (avahi_service_resolver_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC, hostname,
-+ regtype, domain, AVAHI_PROTO_UNSPEC, 0,
-+ avahi_resolve_uri_resolver_cb,
-+ &user_data) != NULL)
-+ {
-+ avahi_simple_poll_loop (simple_poll);
-+
-+ /*
-+ * Collect the result.
-+ */
-+
-+ if (resolved_uri[0])
-+ uri = resolved_uri;
-+ }
-+
-+ avahi_client_free (client);
-+ }
-+
-+ avahi_simple_poll_free (simple_poll);
-+ }
-+#endif /* HAVE_DNSSD */
-
- if (options & _HTTP_RESOLVE_STDERR)
- {
-@@ -1622,13 +1701,13 @@ _httpResolveURI(
- fputs("STATE: -connecting-to-device,offline-report\n", stderr);
- }
-
--#else
-+#else /* HAVE_DNSSD || HAVE_AVAHI */
- /*
- * No DNS-SD support...
- */
-
- uri = NULL;
--#endif /* HAVE_DNSSD */
-+#endif /* HAVE_DNSSD || HAVE_AVAHI */
-
- if ((options & _HTTP_RESOLVE_STDERR) && !uri)
- _cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
-@@ -1916,6 +1995,115 @@ http_resolve_cb(
- }
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahi_resolve_uri_client_cb()' - Avahi client callback for resolving URI.
-+ */
-+
-+static void
-+avahi_resolve_uri_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *simple_poll)
-+{
-+ DEBUG_printf(("avahi_resolve_uri_client_callback(client=%p, state=%d, "
-+ "simple_poll=%p)\n", client, state, simple_poll));
-+
-+ /*
-+ * If the connection drops, quit.
-+ */
-+
-+ if (state == AVAHI_CLIENT_FAILURE)
-+ avahi_simple_poll_quit (simple_poll);
-+}
-+
-+
-+/*
-+ * 'avahi_resolve_uri_resolver_cb()' - Avahi resolver callback for resolving
-+ * URI.
-+ */
-+
-+static void
-+avahi_resolve_uri_resolver_cb (AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ const char *scheme; /* URI scheme */
-+ char rp[256]; /* Remote printer */
-+ AvahiStringList *pair;
-+ char *value;
-+ size_t valueLen = 0;
-+ char addr[AVAHI_ADDRESS_STR_MAX];
-+ struct
-+ {
-+ AvahiSimplePoll *poll;
-+ _http_uribuf_t uribuf;
-+ } *poll_uribuf = context;
-+
-+ DEBUG_printf(("avahi_resolve_uri_resolver_callback(resolver=%p, "
-+ "interface=%d, protocol=%d, event=%d, name=\"%s\", "
-+ "type=\"%s\", domain=\"%s\", host_name=\"%s\", address=%p, "
-+ "port=%d, txt=%p, flags=%d, context=%p)\n",
-+ resolver, interface, protocol, event, name, type, domain,
-+ host_name, address, port, txt, flags, context));
-+
-+ if (event != AVAHI_RESOLVER_FOUND)
-+ {
-+ avahi_service_resolver_free (resolver);
-+ avahi_simple_poll_quit (poll_uribuf->poll);
-+ return;
-+ }
-+
-+ /*
-+ * Figure out the scheme from the full name...
-+ */
-+
-+ if (strstr(type, "_ipp."))
-+ scheme = "ipp";
-+ else if (strstr(type, "_printer."))
-+ scheme = "lpd";
-+ else if (strstr(type, "_pdl-datastream."))
-+ scheme = "socket";
-+ else
-+ scheme = "riousbprint";
-+
-+ /*
-+ * Extract the "remote printer key from the TXT record...
-+ */
-+
-+ if ((pair = avahi_string_list_find (txt, "rp")) != NULL)
-+ {
-+ avahi_string_list_get_pair (pair, NULL, &value, &valueLen);
-+ rp[0] = '/';
-+ memcpy (rp + 1, value, valueLen);
-+ rp[valueLen + 1] = '\0';
-+ }
-+ else
-+ rp[0] = '\0';
-+
-+ /*
-+ * Assemble the final device URI...
-+ */
-+
-+ avahi_address_snprint (addr, AVAHI_ADDRESS_STR_MAX, address);
-+ httpAssembleURI(HTTP_URI_CODING_ALL, poll_uribuf->uribuf.buffer,
-+ poll_uribuf->uribuf.bufsize, scheme, NULL,
-+ addr, port, rp);
-+ DEBUG_printf(("avahi_resolve_uri_resolver_callback: Resolved URI is \"%s\"\n",
-+ poll_uribuf->uribuf.buffer));
-+ avahi_simple_poll_quit (poll_uribuf->poll);
-+}
-+#endif /* HAVE_AVAHI */
-+
-
- /*
- * End of "$Id: http-support.c 10284 2012-02-15 01:06:12Z mike $".
diff --git a/libre/cups-libre/cups-avahi-3-timeouts.patch b/libre/cups-libre/cups-avahi-3-timeouts.patch
deleted file mode 100644
index daf852a0f..000000000
--- a/libre/cups-libre/cups-avahi-3-timeouts.patch
+++ /dev/null
@@ -1,381 +0,0 @@
-diff -up cups-1.5.2/scheduler/cupsd.h.avahi-3-timeouts cups-1.5.2/scheduler/cupsd.h
---- cups-1.5.2/scheduler/cupsd.h.avahi-3-timeouts 2011-05-11 23:17:34.000000000 +0100
-+++ cups-1.5.2/scheduler/cupsd.h 2012-03-14 15:06:36.509476983 +0000
-@@ -140,6 +140,15 @@ extern const char *cups_hstrerror(int);
-
- typedef void (*cupsd_selfunc_t)(void *data);
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * Timeout callback function type...
-+ */
-+
-+typedef struct _cupsd_timeout_s cupsd_timeout_t;
-+typedef void (*cupsd_timeoutfunc_t)(cupsd_timeout_t *timeout, void *data);
-+#endif /* HAVE_AVAHI */
-+
-
- /*
- * Globals...
-@@ -173,6 +182,11 @@ VAR int Launchd VALUE(0);
- /* Running from launchd */
- #endif /* HAVE_LAUNCH_H */
-
-+#ifdef HAVE_AVAHI
-+VAR cups_array_t *Timeouts; /* Timed callbacks for main loop */
-+#endif /* HAVE_AVAHI */
-+
-+
-
- /*
- * Prototypes...
-@@ -242,6 +256,20 @@ extern void cupsdStopSelect(void);
- extern void cupsdStartServer(void);
- extern void cupsdStopServer(void);
-
-+#ifdef HAVE_AVAHI
-+extern void cupsdInitTimeouts(void);
-+extern cupsd_timeout_t *cupsdAddTimeout (const struct timeval *tv,
-+ cupsd_timeoutfunc_t cb,
-+ void *data);
-+extern cupsd_timeout_t *cupsdNextTimeout (long *delay);
-+extern void cupsdRunTimeout (cupsd_timeout_t *timeout);
-+extern void cupsdUpdateTimeout (cupsd_timeout_t *timeout,
-+ const struct timeval *tv);
-+extern void cupsdRemoveTimeout (cupsd_timeout_t *timeout);
-+#endif /* HAVE_AVAHI */
-+
-+extern int cupsdRemoveFile(const char *filename);
-+
-
- /*
- * End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
-diff -up cups-1.5.2/scheduler/main.c.avahi-3-timeouts cups-1.5.2/scheduler/main.c
---- cups-1.5.2/scheduler/main.c.avahi-3-timeouts 2012-03-14 15:04:17.655305548 +0000
-+++ cups-1.5.2/scheduler/main.c 2012-03-14 15:06:36.511476986 +0000
-@@ -146,6 +146,10 @@ main(int argc, /* I - Number of comm
- int launchd_idle_exit;
- /* Idle exit on select timeout? */
- #endif /* HAVE_LAUNCHD */
-+#ifdef HAVE_AVAHI
-+ cupsd_timeout_t *tmo; /* Next scheduled timed callback */
-+ long tmo_delay; /* Time before it must be called */
-+#endif /* HAVE_AVAHI */
-
-
- #ifdef HAVE_GETEUID
-@@ -535,6 +539,14 @@ main(int argc, /* I - Number of comm
-
- httpInitialize();
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * Initialize timed callback structures.
-+ */
-+
-+ cupsdInitTimeouts();
-+#endif /* HAVE_AVAHI */
-+
- cupsdStartServer();
-
- /*
-@@ -874,6 +886,16 @@ main(int argc, /* I - Number of comm
- }
- #endif /* __APPLE__ */
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * If a timed callback is due, run it.
-+ */
-+
-+ tmo = cupsdNextTimeout (&tmo_delay);
-+ if (tmo && tmo_delay == 0)
-+ cupsdRunTimeout (tmo);
-+#endif /* HAVE_AVAHI */
-+
- #ifndef __APPLE__
- /*
- * Update the network interfaces once a minute...
-@@ -1787,6 +1809,10 @@ select_timeout(int fds) /* I - Number
- cupsd_job_t *job; /* Job information */
- cupsd_subscription_t *sub; /* Subscription information */
- const char *why; /* Debugging aid */
-+#ifdef HAVE_AVAHI
-+ cupsd_timeout_t *tmo; /* Timed callback */
-+ long tmo_delay; /* Seconds before calling it */
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -1829,6 +1855,19 @@ select_timeout(int fds) /* I - Number
- }
- #endif /* __APPLE__ */
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * See if there are any scheduled timed callbacks to run.
-+ */
-+
-+ if ((tmo = cupsdNextTimeout(&tmo_delay)) != NULL &&
-+ (now + tmo_delay) < timeout)
-+ {
-+ timeout = tmo_delay;
-+ why = "run a timed callback";
-+ }
-+#endif /* HAVE_AVAHI */
-+
- /*
- * Check whether we are accepting new connections...
- */
-diff -up cups-1.5.2/scheduler/Makefile.avahi-3-timeouts cups-1.5.2/scheduler/Makefile
---- cups-1.5.2/scheduler/Makefile.avahi-3-timeouts 2012-03-14 15:04:17.685305586 +0000
-+++ cups-1.5.2/scheduler/Makefile 2012-03-14 15:06:36.508476980 +0000
-@@ -39,7 +39,8 @@ CUPSDOBJS = \
- server.o \
- statbuf.o \
- subscriptions.o \
-- sysman.o
-+ sysman.o \
-+ timeout.o
- LIBOBJS = \
- filter.o \
- mime.o \
-diff -up cups-1.5.2/scheduler/timeout.c.avahi-3-timeouts cups-1.5.2/scheduler/timeout.c
---- cups-1.5.2/scheduler/timeout.c.avahi-3-timeouts 2012-03-14 15:06:36.552477037 +0000
-+++ cups-1.5.2/scheduler/timeout.c 2012-03-14 15:06:36.552477037 +0000
-@@ -0,0 +1,235 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Timeout functions for the Common UNIX Printing System (CUPS).
-+ *
-+ * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-+ * OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ * Contents:
-+ *
-+ * cupsdInitTimeouts() - Initialise timeout structure.
-+ * cupsdAddTimeout() - Add a timed callback.
-+ * cupsdNextTimeout() - Find the next enabled timed callback.
-+ * cupsdUpdateTimeout() - Adjust the time of a timed callback or disable it.
-+ * cupsdRemoveTimeout() - Discard a timed callback.
-+ * compare_timeouts() - Compare timed callbacks for array sorting.
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI /* Applies to entire file... */
-+
-+/*
-+ * Include necessary headers...
-+ */
-+
-+#include "cupsd.h"
-+
-+#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
-+# include <malloc.h>
-+#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/timeval.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+struct _cupsd_timeout_s
-+{
-+ struct timeval when;
-+ int enabled;
-+ cupsd_timeoutfunc_t callback;
-+ void *data;
-+};
-+
-+/*
-+ * Local functions...
-+ */
-+
-+/*
-+ * 'compare_timeouts()' - Compare timed callbacks for array sorting.
-+ */
-+
-+static int
-+compare_addrs (void *p0, void *p1)
-+{
-+ if (p0 == p1)
-+ return (0);
-+ if (p0 < p1)
-+ return (-1);
-+ return (1);
-+}
-+
-+static int
-+compare_timeouts (cupsd_timeout_t *p0, cupsd_timeout_t *p1)
-+{
-+ int addrsdiff = compare_addrs (p0, p1);
-+ int tvdiff;
-+
-+ if (addrsdiff == 0)
-+ return (0);
-+
-+ if (!p0->enabled || !p1->enabled)
-+ {
-+ if (!p0->enabled && !p1->enabled)
-+ return (addrsdiff);
-+
-+ return (p0->enabled ? -1 : 1);
-+ }
-+
-+ tvdiff = avahi_timeval_compare (&p0->when, &p1->when);
-+ if (tvdiff != 0)
-+ return (tvdiff);
-+
-+ return (addrsdiff);
-+}
-+
-+
-+/*
-+ * 'cupsdInitTimeouts()' - Initialise timeout structures.
-+ */
-+
-+void
-+cupsdInitTimeouts(void)
-+{
-+ Timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts, NULL);
-+}
-+
-+
-+/*
-+ * 'cupsdAddTimeout()' - Add a timed callback.
-+ */
-+
-+cupsd_timeout_t * /* O - Timeout handle */
-+cupsdAddTimeout(const struct timeval *tv, /* I - Absolute time */
-+ cupsd_timeoutfunc_t cb, /* I - Callback function */
-+ void *data) /* I - User data */
-+{
-+ cupsd_timeout_t *timeout;
-+
-+ timeout = malloc (sizeof(cupsd_timeout_t));
-+ if (timeout != NULL)
-+ {
-+ timeout->enabled = (tv != NULL);
-+ if (tv)
-+ {
-+ timeout->when.tv_sec = tv->tv_sec;
-+ timeout->when.tv_usec = tv->tv_usec;
-+ }
-+
-+ timeout->callback = cb;
-+ timeout->data = data;
-+ cupsArrayAdd (Timeouts, timeout);
-+ }
-+
-+ return timeout;
-+}
-+
-+
-+/*
-+ * 'cupsdNextTimeout()' - Find the next enabled timed callback.
-+ */
-+
-+cupsd_timeout_t * /* O - Next enabled timeout or NULL */
-+cupsdNextTimeout(long *delay) /* O - Seconds before scheduled */
-+{
-+ cupsd_timeout_t *first = cupsArrayFirst (Timeouts);
-+ struct timeval curtime;
-+
-+ if (first && !first->enabled)
-+ first = NULL;
-+
-+ if (first && delay)
-+ {
-+ gettimeofday (&curtime, NULL);
-+ if (avahi_timeval_compare (&curtime, &first->when) > 0)
-+ {
-+ *delay = 0;
-+ } else {
-+ *delay = 1 + first->when.tv_sec - curtime.tv_sec;
-+ if (first->when.tv_usec < curtime.tv_usec)
-+ (*delay)--;
-+ }
-+ }
-+
-+ return (first);
-+}
-+
-+
-+/*
-+ * 'cupsdRunTimeout()' - Run a timed callback.
-+ */
-+
-+void
-+cupsdRunTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
-+{
-+ if (!timeout)
-+ return;
-+ timeout->enabled = 0;
-+ if (!timeout->callback)
-+ return;
-+ timeout->callback (timeout, timeout->data);
-+}
-+
-+/*
-+ * 'cupsdUpdateTimeout()' - Adjust the time of a timed callback or disable it.
-+ */
-+
-+void
-+cupsdUpdateTimeout(cupsd_timeout_t *timeout, /* I - Timeout */
-+ const struct timeval *tv) /* I - Absolute time or NULL */
-+{
-+ cupsArrayRemove (Timeouts, timeout);
-+ timeout->enabled = (tv != NULL);
-+ if (tv)
-+ {
-+ timeout->when.tv_sec = tv->tv_sec;
-+ timeout->when.tv_usec = tv->tv_usec;
-+ }
-+ cupsArrayAdd (Timeouts, timeout);
-+}
-+
-+
-+/*
-+ * 'cupsdRemoveTimeout()' - Discard a timed callback.
-+ */
-+
-+void
-+cupsdRemoveTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
-+{
-+ cupsArrayRemove (Timeouts, timeout);
-+ free (timeout);
-+}
-+
-+
-+#endif /* HAVE_AVAHI ... from top of file */
-+
-+/*
-+ * End of "$Id$".
-+ */
diff --git a/libre/cups-libre/cups-avahi-4-poll.patch b/libre/cups-libre/cups-avahi-4-poll.patch
deleted file mode 100644
index d7fa5fd56..000000000
--- a/libre/cups-libre/cups-avahi-4-poll.patch
+++ /dev/null
@@ -1,529 +0,0 @@
-diff -up cups-1.5.2/scheduler/avahi.c.avahi-4-poll cups-1.5.2/scheduler/avahi.c
---- cups-1.5.2/scheduler/avahi.c.avahi-4-poll 2012-03-14 15:07:29.477542381 +0000
-+++ cups-1.5.2/scheduler/avahi.c 2012-03-14 15:07:29.477542381 +0000
-@@ -0,0 +1,441 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Avahi poll implementation for the CUPS scheduler.
-+ *
-+ * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-+ * OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ * Contents:
-+ *
-+ * watch_read_cb - Read callback for file descriptor
-+ * watch_write_cb - Write callback for file descriptor
-+ * watched_fd_add_select() - Call cupsdAddSelect() as needed
-+ * watch_new() - Create a new file descriptor watch
-+ * watch_free() - Free a file descriptor watch
-+ * watch_update() - Update watched events for a file descriptor
-+ * watch_get_events() - Get events that happened for a file descriptor
-+ * timeout_cb() - Run a timed Avahi callback
-+ * timeout_new() - Set a wakeup time
-+ * timeout_update() - Update the expiration time for a timeout
-+ * timeout_free() - Free a timeout
-+ * compare_watched_fds() - Compare watched file descriptors for array sorting
-+ * avahi_cups_poll_new() - Create a new Avahi main loop object for CUPS
-+ * avahi_cups_poll_free() - Free an Avahi main loop object for CUPS
-+ * avahi_cups_poll_get() - Get the abstract poll API structure
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI /* Applies to entire file... */
-+
-+/*
-+ * Include necessary headers...
-+ */
-+
-+#include "cupsd.h"
-+
-+#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
-+# include <malloc.h>
-+#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/timeval.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+typedef struct
-+{
-+ AvahiCupsPoll *cups_poll;
-+
-+ int fd;
-+ AvahiWatchEvent occurred;
-+ cups_array_t *watches;
-+} cupsd_watched_fd_t;
-+
-+struct AvahiWatch
-+{
-+ cupsd_watched_fd_t *watched_fd;
-+
-+ AvahiWatchEvent events;
-+ AvahiWatchCallback callback;
-+ void *userdata;
-+};
-+
-+struct AvahiTimeout
-+{
-+ AvahiCupsPoll *cups_poll;
-+ AvahiTimeoutCallback callback;
-+ void *userdata;
-+ cupsd_timeout_t *cupsd_timeout;
-+};
-+
-+/*
-+ * Local functions...
-+ */
-+
-+static AvahiWatch * watch_new(const AvahiPoll *api,
-+ int fd,
-+ AvahiWatchEvent events,
-+ AvahiWatchCallback callback,
-+ void *userdata);
-+static void watch_free(AvahiWatch *watch);
-+static void watch_update(AvahiWatch *watch,
-+ AvahiWatchEvent events);
-+static AvahiWatchEvent watch_get_events(AvahiWatch *watch);
-+
-+
-+/*
-+ * 'watch_read_cb' - Read callback for file descriptor
-+ */
-+
-+static void
-+watch_read_cb (void *userdata)
-+{
-+ AvahiWatch *watch;
-+ cupsd_watched_fd_t *watched_fd = userdata;
-+ watched_fd->occurred |= AVAHI_WATCH_IN;
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
-+ {
-+ if (watch->events & watched_fd->occurred)
-+ {
-+ (watch->callback) (watch, watched_fd->fd,
-+ AVAHI_WATCH_IN, watch->userdata);
-+ watched_fd->occurred &= ~AVAHI_WATCH_IN;
-+ break;
-+ }
-+ }
-+}
-+
-+
-+/*
-+ * 'watch_write_cb' - Write callback for file descriptor
-+ */
-+
-+static void
-+watch_write_cb (void *userdata)
-+{
-+ AvahiWatch *watch;
-+ cupsd_watched_fd_t *watched_fd = userdata;
-+ watched_fd->occurred |= AVAHI_WATCH_OUT;
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
-+ {
-+ if (watch->events & watched_fd->occurred)
-+ {
-+ (watch->callback) (watch, watched_fd->fd,
-+ AVAHI_WATCH_OUT, watch->userdata);
-+ watched_fd->occurred &= ~AVAHI_WATCH_OUT;
-+ break;
-+ }
-+ }
-+}
-+
-+
-+/*
-+ * 'watched_fd_add_select' - Call cupsdAddSelect() as needed
-+ */
-+
-+static int /* O - Watches? */
-+watched_fd_add_select (cupsd_watched_fd_t *watched_fd)
-+{
-+ AvahiWatch *watch;
-+ cupsd_selfunc_t read_cb = NULL, write_cb = NULL;
-+ int any_watches = 0;
-+
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
-+ {
-+ any_watches = 1;
-+ if (watch->events & (AVAHI_WATCH_IN |
-+ AVAHI_WATCH_ERR |
-+ AVAHI_WATCH_HUP))
-+ {
-+ read_cb = (cupsd_selfunc_t)watch_read_cb;
-+ if (write_cb != NULL)
-+ break;
-+ }
-+
-+ if (watch->events & AVAHI_WATCH_OUT)
-+ {
-+ write_cb = (cupsd_selfunc_t)watch_write_cb;
-+ if (read_cb != NULL)
-+ break;
-+ }
-+ }
-+
-+ if (read_cb || write_cb)
-+ cupsdAddSelect (watched_fd->fd, read_cb, write_cb, watched_fd);
-+ else
-+ cupsdRemoveSelect (watched_fd->fd);
-+
-+ return (any_watches);
-+}
-+
-+/*
-+ * 'watch_new' - Create a new file descriptor watch
-+ */
-+
-+static AvahiWatch *
-+watch_new (const AvahiPoll *api,
-+ int fd,
-+ AvahiWatchEvent events,
-+ AvahiWatchCallback callback,
-+ void *userdata)
-+{
-+ cupsd_watched_fd_t key, *watched_fd;
-+ AvahiCupsPoll *cups_poll = api->userdata;
-+ AvahiWatch *watch = malloc(sizeof(AvahiWatch));
-+ if (watch == NULL)
-+ return (NULL);
-+
-+ watch->events = events;
-+ watch->callback = callback;
-+ watch->userdata = userdata;
-+
-+ key.fd = fd;
-+ watched_fd = cupsArrayFind (cups_poll->watched_fds, &key);
-+ if (watched_fd == NULL)
-+ {
-+ watched_fd = malloc(sizeof(cupsd_watched_fd_t));
-+ if (watched_fd == NULL)
-+ {
-+ free (watch);
-+ return (NULL);
-+ }
-+
-+ watched_fd->fd = fd;
-+ watched_fd->occurred = 0;
-+ watched_fd->cups_poll = cups_poll;
-+ watched_fd->watches = cupsArrayNew (NULL, NULL);
-+ cupsArrayAdd (cups_poll->watched_fds, watched_fd);
-+ }
-+
-+ watch->watched_fd = watched_fd;
-+ cupsArrayAdd(watched_fd->watches, watch);
-+ watched_fd_add_select (watched_fd);
-+ return (watch);
-+}
-+
-+
-+/*
-+ * 'watch_free' - Free a file descriptor watch
-+ */
-+
-+static void
-+watch_free (AvahiWatch *watch)
-+{
-+ cupsd_watched_fd_t *watched_fd = watch->watched_fd;
-+ AvahiCupsPoll *cups_poll = watched_fd->cups_poll;
-+
-+ cupsArrayRemove (watched_fd->watches, watch);
-+ free (watch);
-+
-+ if (!watched_fd_add_select (watched_fd))
-+ {
-+ /* No more watches */
-+ cupsArrayRemove (cups_poll->watched_fds, watched_fd);
-+ free (watched_fd);
-+ }
-+}
-+
-+
-+/*
-+ * 'watch_update' - Update watched events for a file descriptor
-+ */
-+
-+static void
-+watch_update (AvahiWatch *watch,
-+ AvahiWatchEvent events)
-+{
-+ watch->events = events;
-+ watched_fd_add_select (watch->watched_fd);
-+}
-+
-+
-+/*
-+ * 'watch_get_events' - Get events that happened for a file descriptor
-+ */
-+
-+static AvahiWatchEvent
-+watch_get_events (AvahiWatch *watch)
-+{
-+ return (watch->watched_fd->occurred);
-+}
-+
-+
-+/*
-+ * 'timeout_cb()' - Run a timed Avahi callback
-+ */
-+
-+static void
-+timeout_cb (cupsd_timeout_t *cupsd_timeout, void *userdata)
-+{
-+ AvahiTimeout *timeout = userdata;
-+ (timeout->callback) (timeout, timeout->userdata);
-+}
-+
-+
-+/*
-+ * 'timeout_new' - Set a wakeup time
-+ */
-+
-+static AvahiTimeout *
-+timeout_new (const AvahiPoll *api,
-+ const struct timeval *tv,
-+ AvahiTimeoutCallback callback,
-+ void *userdata)
-+{
-+ AvahiTimeout *timeout;
-+ AvahiCupsPoll *cups_poll = api->userdata;
-+
-+ timeout = malloc(sizeof(AvahiTimeout));
-+ if (timeout == NULL)
-+ return (NULL);
-+
-+ timeout->cups_poll = cups_poll;
-+ timeout->callback = callback;
-+ timeout->userdata = userdata;
-+ timeout->cupsd_timeout = cupsdAddTimeout (tv,
-+ (cupsd_timeoutfunc_t)timeout_cb,
-+ timeout);
-+ cupsArrayAdd (cups_poll->timeouts, timeout);
-+ return (timeout);
-+}
-+
-+
-+/*
-+ * 'timeout_update' - Update the expiration time for a timeout
-+ */
-+
-+static void
-+timeout_update (AvahiTimeout *timeout,
-+ const struct timeval *tv)
-+{
-+ cupsdUpdateTimeout (timeout->cupsd_timeout, tv);
-+}
-+
-+
-+/*
-+ * ' timeout_free' - Free a timeout
-+ */
-+
-+static void
-+timeout_free (AvahiTimeout *timeout)
-+{
-+ cupsArrayRemove (timeout->cups_poll->timeouts, timeout);
-+ cupsdRemoveTimeout (timeout->cupsd_timeout);
-+ free (timeout);
-+}
-+
-+
-+/*
-+ * 'compare_watched_fds' - Compare watched file descriptors for array sorting
-+ */
-+static int
-+compare_watched_fds(cupsd_watched_fd_t *p0,
-+ cupsd_watched_fd_t *p1)
-+{
-+ /*
-+ * Compare by fd (no two elements have the same fd)
-+ */
-+
-+ if (p0->fd == p1->fd)
-+ return 0;
-+
-+ return (p0->fd < p1->fd ? -1 : 1);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_new' - Create a new Avahi main loop object for CUPS
-+ */
-+
-+AvahiCupsPoll *
-+avahi_cups_poll_new (void)
-+{
-+ AvahiCupsPoll *cups_poll = malloc(sizeof(AvahiCupsPoll));
-+ if (cups_poll == NULL)
-+ return (NULL);
-+
-+ cups_poll->watched_fds = cupsArrayNew ((cups_array_func_t)compare_watched_fds,
-+ NULL);
-+ cups_poll->timeouts = cupsArrayNew (NULL, NULL);
-+
-+ cups_poll->api.userdata = cups_poll;
-+ cups_poll->api.watch_new = watch_new;
-+ cups_poll->api.watch_free = watch_free;
-+ cups_poll->api.watch_update = watch_update;
-+ cups_poll->api.watch_get_events = watch_get_events;
-+
-+ cups_poll->api.timeout_new = timeout_new;
-+ cups_poll->api.timeout_update = timeout_update;
-+ cups_poll->api.timeout_free = timeout_free;
-+
-+ return (cups_poll);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_free' - Free an Avahi main loop object for CUPS
-+ */
-+void
-+avahi_cups_poll_free (AvahiCupsPoll *cups_poll)
-+{
-+ cupsd_watched_fd_t *watched_fd;
-+
-+ for (watched_fd = (cupsd_watched_fd_t*)cupsArrayFirst(cups_poll->watched_fds);
-+ watched_fd;
-+ watched_fd = (cupsd_watched_fd_t*)cupsArrayNext(cups_poll->watched_fds))
-+ cupsArrayClear (watched_fd->watches);
-+
-+ cupsArrayClear (cups_poll->watched_fds);
-+ cupsArrayClear (cups_poll->timeouts);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_get' - Get the abstract poll API structure
-+ */
-+
-+const AvahiPoll *
-+avahi_cups_poll_get (AvahiCupsPoll *cups_poll)
-+{
-+ return (&cups_poll->api);
-+}
-+
-+
-+#endif /* HAVE_AVAHI ... from top of file */
-+
-+/*
-+ * End of "$Id$".
-+ */
-diff -up cups-1.5.2/scheduler/avahi.h.avahi-4-poll cups-1.5.2/scheduler/avahi.h
---- cups-1.5.2/scheduler/avahi.h.avahi-4-poll 2012-03-14 15:07:29.477542381 +0000
-+++ cups-1.5.2/scheduler/avahi.h 2012-03-14 15:07:29.477542381 +0000
-@@ -0,0 +1,69 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Avahi poll implementation for the CUPS scheduler.
-+ *
-+ * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-+ * OF THE POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/publish.h>
-+#endif /* HAVE_AVAHI */
-+
-+#ifdef HAVE_AUTHORIZATION_H
-+# include <Security/Authorization.h>
-+#endif /* HAVE_AUTHORIZATION_H */
-+
-+
-+#ifdef HAVE_AVAHI
-+typedef struct
-+{
-+ AvahiPoll api;
-+ cups_array_t *watched_fds;
-+ cups_array_t *timeouts;
-+} AvahiCupsPoll;
-+#endif /* HAVE_AVAHI */
-+
-+/*
-+ * Prototypes...
-+ */
-+
-+#ifdef HAVE_AVAHI
-+extern AvahiCupsPoll * avahi_cups_poll_new(void);
-+extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
-+extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
-+#endif /* HAVE_AVAHI */
-+
-+
-+/*
-+ * End of "$Id$".
-+ */
-diff -up cups-1.5.2/scheduler/Makefile.avahi-4-poll cups-1.5.2/scheduler/Makefile
---- cups-1.5.2/scheduler/Makefile.avahi-4-poll 2012-03-14 15:06:36.508476980 +0000
-+++ cups-1.5.2/scheduler/Makefile 2012-03-14 15:07:29.476542380 +0000
-@@ -17,6 +17,7 @@ include ../Makedefs
-
- CUPSDOBJS = \
- auth.o \
-+ avahi.o \
- banners.o \
- cert.o \
- classes.o \
diff --git a/libre/cups-libre/cups-avahi-5-services.patch b/libre/cups-libre/cups-avahi-5-services.patch
deleted file mode 100644
index 820b3c32b..000000000
--- a/libre/cups-libre/cups-avahi-5-services.patch
+++ /dev/null
@@ -1,1272 +0,0 @@
-diff -up cups-1.5.2/cgi-bin/admin.c.avahi-5-services cups-1.5.2/cgi-bin/admin.c
---- cups-1.5.2/cgi-bin/admin.c.avahi-5-services 2011-08-17 22:01:53.000000000 +0100
-+++ cups-1.5.2/cgi-bin/admin.c 2012-03-14 15:08:25.701611799 +0000
-@@ -1643,7 +1643,7 @@ do_config_server(http_t *http) /* I - H
- else
- local_protocols[0] = '\0';
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if (cgiGetVariable("BROWSE_LOCAL_DNSSD"))
- {
- if (local_protocols[0])
-@@ -1651,7 +1651,7 @@ do_config_server(http_t *http) /* I - H
- else
- strcat(local_protocols, "dnssd");
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LDAP
- if (cgiGetVariable("BROWSE_LOCAL_LDAP"))
-@@ -2718,9 +2718,9 @@ do_menu(http_t *http) /* I - HTTP conn
- #endif /* HAVE_GSSAPI */
- cgiSetVariable("KERBEROS", "");
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cgiSetVariable("HAVE_DNSSD", "1");
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LDAP
- cgiSetVariable("HAVE_LDAP", "1");
-diff -up cups-1.5.2/scheduler/avahi.h.avahi-5-services cups-1.5.2/scheduler/avahi.h
---- cups-1.5.2/scheduler/avahi.h.avahi-5-services 2012-03-14 15:07:29.477542381 +0000
-+++ cups-1.5.2/scheduler/avahi.h 2012-03-14 15:08:25.701611799 +0000
-@@ -3,7 +3,7 @@
- *
- * Avahi poll implementation for the CUPS scheduler.
- *
-- * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Copyright (C) 2010, 2011, 2012 Red Hat, Inc.
- * Authors:
- * Tim Waugh <twaugh@redhat.com>
- *
-@@ -32,37 +32,40 @@
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
--#include <config.h>
-+#ifndef _CUPS_AVAHI_H_
-+# define _CUPS_AVAHI_H_
-
--#ifdef HAVE_AVAHI
--# include <avahi-client/client.h>
--# include <avahi-client/publish.h>
--#endif /* HAVE_AVAHI */
-+/*
-+ * Include necessary headers...
-+ */
-
--#ifdef HAVE_AUTHORIZATION_H
--# include <Security/Authorization.h>
--#endif /* HAVE_AUTHORIZATION_H */
-+# include <config.h>
-
-+# ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/publish.h>
-+# endif /* HAVE_AVAHI */
-
--#ifdef HAVE_AVAHI
-+# ifdef HAVE_AVAHI
- typedef struct
- {
- AvahiPoll api;
- cups_array_t *watched_fds;
- cups_array_t *timeouts;
- } AvahiCupsPoll;
--#endif /* HAVE_AVAHI */
-+# endif /* HAVE_AVAHI */
-
- /*
- * Prototypes...
- */
-
--#ifdef HAVE_AVAHI
-+# ifdef HAVE_AVAHI
- extern AvahiCupsPoll * avahi_cups_poll_new(void);
- extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
- extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
--#endif /* HAVE_AVAHI */
-+# endif /* HAVE_AVAHI */
-
-+#endif /* !_CUPS_AVAHI_H_ */
-
- /*
- * End of "$Id$".
-diff -up cups-1.5.2/scheduler/client.c.avahi-5-services cups-1.5.2/scheduler/client.c
---- cups-1.5.2/scheduler/client.c.avahi-5-services 2012-01-13 23:00:22.000000000 +0000
-+++ cups-1.5.2/scheduler/client.c 2012-03-14 15:08:25.703611797 +0000
-@@ -4989,7 +4989,7 @@ valid_host(cupsd_client_t *con) /* I -
- !strncmp(host, "[::1]:", 6));
- }
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * Check if the hostname is something.local (Bonjour); if so, allow it.
- */
-@@ -4998,7 +4998,7 @@ valid_host(cupsd_client_t *con) /* I -
- (!_cups_strcasecmp(end, ".local") || !_cups_strncasecmp(end, ".local:", 7) ||
- !_cups_strcasecmp(end, ".local.") || !_cups_strncasecmp(end, ".local.:", 8)))
- return (1);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- /*
- * Check if the hostname is an IP address...
-diff -up cups-1.5.2/scheduler/conf.c.avahi-5-services cups-1.5.2/scheduler/conf.c
---- cups-1.5.2/scheduler/conf.c.avahi-5-services 2012-03-14 15:04:17.636305526 +0000
-+++ cups-1.5.2/scheduler/conf.c 2012-03-14 15:08:25.706611803 +0000
-@@ -652,7 +652,7 @@ cupsdReadConfiguration(void)
- Browsing = CUPS_DEFAULT_BROWSING;
- DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cupsdSetString(&DNSSDRegType, "_ipp._tcp,_cups");
- #endif /* HAVE_DNSSD */
-
-diff -up cups-1.5.2/scheduler/dirsvc.c.avahi-5-services cups-1.5.2/scheduler/dirsvc.c
---- cups-1.5.2/scheduler/dirsvc.c.avahi-5-services 2012-03-14 15:04:17.674305572 +0000
-+++ cups-1.5.2/scheduler/dirsvc.c 2012-03-14 15:08:25.709611806 +0000
-@@ -27,6 +27,7 @@
- * ldap_connect() - Start new LDAP connection
- * ldap_reconnect() - Reconnect to LDAP Server
- * ldap_disconnect() - Disconnect from LDAP Server
-+ * cupsdStartAvahiClient() - Start an Avahi client if needed
- * cupsdStartBrowsing() - Start sending and receiving broadcast
- * information.
- * cupsdStartPolling() - Start polling servers as needed.
-@@ -40,11 +41,12 @@
- * dequote() - Remote quotes from a string.
- * dnssdAddAlias() - Add a DNS-SD alias name.
- * dnssdBuildTxtRecord() - Build a TXT record from printer info.
-- * dnssdComparePrinters() - Compare the registered names of two printers.
- * dnssdDeregisterPrinter() - Stop sending broadcast information for a
- * printer.
- * dnssdPackTxtRecord() - Pack an array of key/value pairs into the TXT
- * record format.
-+ * avahiPackTxtRecord() - Pack an array of key/value pairs into an
-+ * AvahiStringList.
- * dnssdRegisterCallback() - DNSServiceRegister callback.
- * dnssdRegisterPrinter() - Start sending broadcast information for a
- * printer or update the broadcast contents.
-@@ -83,6 +85,7 @@
- */
-
- #include "cupsd.h"
-+#include <assert.h>
- #include <grp.h>
-
- #ifdef HAVE_DNSSD
-@@ -97,6 +100,17 @@
- # endif /* HAVE_SYSTEMCONFIGURATION */
- # endif /* __APPLE__ */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/domain.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+#ifdef HAVE_DNSSD
-+typedef char *cupsd_txt_record_t;
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+typedef AvahiStringList *cupsd_txt_record_t;
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -159,27 +173,38 @@ static void update_polling(void);
- static void update_smb(int onoff);
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+static cupsd_txt_record_t dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
-+ int for_lpd);
-+static void dnssdDeregisterPrinter(cupsd_printer_t *p);
-+static void dnssdRegisterPrinter(cupsd_printer_t *p);
-+static void dnssdStop(void);
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+
- #ifdef HAVE_DNSSD
- # ifdef HAVE_COREFOUNDATION
- static void dnssdAddAlias(const void *key, const void *value,
- void *context);
- # endif /* HAVE_COREFOUNDATION */
--static char *dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
-- int for_lpd);
--static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
--static void dnssdDeregisterPrinter(cupsd_printer_t *p);
--static char *dnssdPackTxtRecord(int *txt_len, char *keyvalue[][2],
-- int count);
- static void dnssdRegisterCallback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- DNSServiceErrorType errorCode,
- const char *name, const char *regtype,
- const char *domain, void *context);
--static void dnssdRegisterPrinter(cupsd_printer_t *p);
--static void dnssdStop(void);
- static void dnssdUpdate(void);
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+static AvahiStringList *avahiPackTxtRecord(char *keyvalue[][2],
-+ int count);
-+static void avahi_entry_group_cb (AvahiEntryGroup *group,
-+ AvahiEntryGroupState state,
-+ void *userdata);
-+static void avahi_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *userdata);
-+#endif /* HAVE_AVAHI */
-+
- #ifdef HAVE_LDAP
- static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
- {
-@@ -283,10 +308,10 @@ cupsdDeregisterPrinter(
- ldap_dereg_printer(p);
- #endif /* HAVE_LDAP */
-
--#ifdef HAVE_DNSSD
-- if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdDeregisterPrinter(p);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
-@@ -702,10 +727,10 @@ cupsdRegisterPrinter(cupsd_printer_t *p)
- slpRegisterPrinter(p); */
- #endif /* HAVE_LIBSLP */
-
--#ifdef HAVE_DNSSD
-- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if ((BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdRegisterPrinter(p);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
-@@ -1419,6 +1444,36 @@ ldap_disconnect(LDAP *ld) /* I - LDAP h
- #endif /* HAVE_LDAP */
-
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'cupsdStartAvahiClient()' - Start an Avahi client if needed
-+ */
-+
-+void
-+cupsdStartAvahiClient(void)
-+{
-+ int error = 0;
-+
-+ if (!AvahiCupsClient && !AvahiCupsClientConnecting)
-+ {
-+ if (!AvahiCupsPollHandle)
-+ AvahiCupsPollHandle = avahi_cups_poll_new ();
-+
-+ if (AvahiCupsPollHandle)
-+ {
-+ if (avahi_client_new (avahi_cups_poll_get (AvahiCupsPollHandle),
-+ AVAHI_CLIENT_NO_FAIL,
-+ avahi_client_cb, NULL,
-+ &error) != NULL)
-+ AvahiCupsClientConnecting = 1;
-+ else
-+ cupsdLogMessage (CUPSD_LOG_WARN, "Avahi client failed: %d", error);
-+ }
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
- /*
- * 'cupsdStartBrowsing()' - Start sending and receiving broadcast information.
- */
-@@ -1542,13 +1597,16 @@ cupsdStartBrowsing(void)
- else
- BrowseSocket = -1;
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_DNSSD)
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType error; /* Error from service creation */
-+#endif /* HAVE_DNSSD */
- cupsd_listener_t *lis; /* Current listening socket */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * First create a "master" connection for all registrations...
- */
-@@ -1573,6 +1631,7 @@ cupsdStartBrowsing(void)
- fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
-
- cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
-+#endif /* HAVE_DNSSD */
-
- /*
- * Then get the port we use for registrations. If we are not listening
-@@ -1598,17 +1657,23 @@ cupsdStartBrowsing(void)
- */
-
- if (BrowseRemoteProtocols & BROWSE_DNSSD)
-- DNSSDPrinters = cupsArrayNew((cups_array_func_t)dnssdComparePrinters,
-- NULL);
-+ DNSSDPrinters = cupsArrayNew(NULL, NULL);
-
- /*
- * Set the computer name and register the web interface...
- */
-
- cupsdUpdateDNSSDName();
-+
-+#ifdef HAVE_AVAHI
-+ cupsdStartAvahiClient ();
-+#endif /* HAVE_AVAHI */
-+
-+#ifdef HAVE_DNSSD
- }
-- }
- #endif /* HAVE_DNSSD */
-+ }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LIBSLP
- if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP)
-@@ -1834,10 +1899,10 @@ cupsdStopBrowsing(void)
- BrowseSocket = -1;
- }
-
--#ifdef HAVE_DNSSD
-- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if ((BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdStop();
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LIBSLP
- if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) &&
-@@ -1902,7 +1967,7 @@ cupsdStopPolling(void)
- }
-
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
- */
-@@ -1910,8 +1975,14 @@ cupsdStopPolling(void)
- void
- cupsdUpdateDNSSDName(void)
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType error; /* Error from service creation */
- char webif[1024]; /* Web interface share name */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int ret; /* Error from service creation */
-+ char webif[AVAHI_LABEL_MAX]; /* Web interface share name */
-+#endif /* HAVE_AVAHI */
- # ifdef HAVE_SYSTEMCONFIGURATION
- SCDynamicStoreRef sc; /* Context for dynamic store */
- CFDictionaryRef btmm; /* Back-to-My-Mac domains */
-@@ -2042,6 +2113,7 @@ cupsdUpdateDNSSDName(void)
- else
- strlcpy(webif, "CUPS Web Interface", sizeof(webif));
-
-+#ifdef HAVE_DNSSD
- if (WebIFRef)
- DNSServiceRefDeallocate(WebIFRef);
-
-@@ -2054,9 +2126,45 @@ cupsdUpdateDNSSDName(void)
- NULL)) != kDNSServiceErr_NoError)
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "DNS-SD web interface registration failed: %d", error);
-+#endif /* HAVE_DNSSD */
-+
-+#ifdef HAVE_AVAHI
-+ if (!AvahiCupsClient)
-+ /*
-+ * Client not yet running.
-+ */
-+ return;
-+
-+ if (AvahiWebIFGroup)
-+ avahi_entry_group_reset (AvahiWebIFGroup);
-+ else
-+ AvahiWebIFGroup = avahi_entry_group_new (AvahiCupsClient,
-+ avahi_entry_group_cb,
-+ NULL);
-+
-+ if (AvahiWebIFGroup)
-+ {
-+ ret = avahi_entry_group_add_service (AvahiWebIFGroup,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, /* flags */
-+ webif, /* name */
-+ "_http._tcp", /* type */
-+ NULL, /* domain */
-+ NULL, /* host */
-+ DNSSDPort, /* port */
-+ "path=/", NULL);
-+ if (ret == 0)
-+ ret = avahi_entry_group_commit (AvahiWebIFGroup);
-+
-+ if (ret != 0)
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Avahi web interface registration failed: %d", ret);
-+ }
-+#endif /* HAVE_AVAHI */
- }
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
- #ifdef HAVE_LDAP
-@@ -2334,13 +2442,15 @@ dnssdAddAlias(const void *key, /* I - K
- "Bad Back to My Mac domain in dynamic store!");
- }
- # endif /* HAVE_COREFOUNDATION */
-+#endif /* HAVE_DNSSD */
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'dnssdBuildTxtRecord()' - Build a TXT record from printer info.
- */
-
--static char * /* O - TXT record */
-+static cupsd_txt_record_t /* O - TXT record */
- dnssdBuildTxtRecord(
- int *txt_len, /* O - TXT record length */
- cupsd_printer_t *p, /* I - Printer information */
-@@ -2379,7 +2489,12 @@ dnssdBuildTxtRecord(
- keyvalue[i ][0] = "ty";
- keyvalue[i++][1] = p->make_model ? p->make_model : "Unknown";
-
-- snprintf(admin_hostname, sizeof(admin_hostname), "%s.local.", DNSSDHostName);
-+ snprintf(admin_hostname, sizeof(admin_hostname),
-+ "%s.local"
-+#ifdef HAVE_DNSSD
-+ "." /* terminating dot no good for Avahi */
-+#endif /* HAVE_DNSSD */
-+ , DNSSDHostName);
- httpAssembleURIf(HTTP_URI_CODING_ALL, adminurl_str, sizeof(adminurl_str),
- "http", NULL, admin_hostname, DNSSDPort, "/%s/%s",
- (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
-@@ -2462,19 +2577,12 @@ dnssdBuildTxtRecord(
- * Then pack them into a proper txt record...
- */
-
-+#ifdef HAVE_DNSSD
- return (dnssdPackTxtRecord(txt_len, keyvalue, i));
--}
--
--
--/*
-- * 'dnssdComparePrinters()' - Compare the registered names of two printers.
-- */
--
--static int /* O - Result of comparison */
--dnssdComparePrinters(cupsd_printer_t *a,/* I - First printer */
-- cupsd_printer_t *b)/* I - Second printer */
--{
-- return (_cups_strcasecmp(a->reg_name, b->reg_name));
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ return (avahiPackTxtRecord(keyvalue, i));
-+#endif /* HAVE_AVAHI */
- }
-
-
-@@ -2489,6 +2597,10 @@ dnssdDeregisterPrinter(
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name);
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+
- /*
- * Closing the socket deregisters the service
- */
-@@ -2524,6 +2636,24 @@ dnssdDeregisterPrinter(
- free(p->printer_txt);
- p->printer_txt = NULL;
- }
-+#endif /* HAVE_DNSSD */
-+
-+#ifdef HAVE_AVAHI
-+ if (p->avahi_group)
-+ {
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+
-+ if (p->ipp_txt)
-+ avahi_string_list_free (p->ipp_txt);
-+
-+ if (p->printer_txt)
-+ avahi_string_list_free (p->printer_txt);
-+
-+ p->ipp_txt = p->printer_txt = NULL;
-+ }
-+#endif /* HAVE_AVAHI */
-
- /*
- * Remove the printer from the array of DNS-SD printers, then clear the
-@@ -2533,8 +2663,10 @@ dnssdDeregisterPrinter(
- cupsArrayRemove(DNSSDPrinters, p);
- cupsdClearString(&p->reg_name);
- }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'dnssdPackTxtRecord()' - Pack an array of key/value pairs into the
- * TXT record format.
-@@ -2644,8 +2776,10 @@ dnssdRegisterCallback(
- LastEvent |= CUPSD_EVENT_PRINTER_MODIFIED;
- }
- }
-+#endif /* HAVE_DNSSD */
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'dnssdRegisterPrinter()' - Start sending broadcast information for a printer
- * or update the broadcast contents.
-@@ -2654,20 +2788,40 @@ dnssdRegisterCallback(
- static void
- dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType se; /* dnssd errors */
- char *ipp_txt, /* IPP TXT record buffer */
- *printer_txt, /* LPD TXT record buffer */
-- name[1024], /* Service name */
-- *nameptr; /* Pointer into name */
-+ name[1024]; /* Service name */
- int ipp_len, /* IPP TXT record length */
- printer_len, /* LPD TXT record length */
- printer_port; /* LPD port number */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int ret; /* Error code */
-+ AvahiStringList *ipp_txt, /* IPP TXT record */
-+ *printer_txt; /* LPD TXT record */
-+ char name[AVAHI_LABEL_MAX], /* Service name */
-+ fullsubtype[AVAHI_LABEL_MAX]; /* Full subtype */
-+ char *regtype_copy, /* Writeable copy of reg type */
-+ *subtype, /* Current service sub type */
-+ *nextsubtype; /* Next service sub type */
-+#endif /* HAVE_AVAHI */
-+ char *nameptr; /* Pointer into name */
- const char *regtype; /* Registration type */
-
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
- !p->ipp_ref ? "new" : "update");
--
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
-+ !p->avahi_group ? "new" : "update");
-+#endif /* HAVE_AVAHI */
- /*
- * If per-printer sharing was just disabled make sure we're not
- * registered before returning.
-@@ -2686,12 +2840,36 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
- if (p->info && strlen(p->info) > 0)
- {
- if (DNSSDComputerName)
-- snprintf(name, sizeof(name), "%s @ %s", p->info, DNSSDComputerName);
-+ {
-+ /*
-+ * Make sure there is room for at least 15 characters of
-+ * DNSSDComputerName.
-+ */
-+
-+ assert(sizeof(name) >= 15 + 4);
-+ nameptr = name + strlcpy(name, p->info,
-+ sizeof(name) - 4 -
-+ strnlen(DNSSDComputerName, 15));
-+ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
-+ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
-+ }
- else
- strlcpy(name, p->info, sizeof(name));
- }
- else if (DNSSDComputerName)
-- snprintf(name, sizeof(name), "%s @ %s", p->name, DNSSDComputerName);
-+ {
-+ /*
-+ * Make sure there is room for at least 15 characters of
-+ * DNSSDComputerName.
-+ */
-+
-+ assert(sizeof(name) >= 15 + 4);
-+ nameptr = name + strlcpy(name, p->info,
-+ sizeof(name) - 4 -
-+ strnlen(DNSSDComputerName, 15));
-+ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
-+ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
-+ }
- else
- strlcpy(name, p->name, sizeof(name));
-
-@@ -2712,6 +2890,7 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
- * Register IPP and (optionally) LPD...
- */
-
-+#ifdef HAVE_DNSSD
- ipp_len = 0; /* anti-compiler-warning-code */
- ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0);
-
-@@ -2884,6 +3063,209 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
-
- if (printer_txt)
- free(printer_txt);
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ if (!AvahiCupsClient)
-+ /*
-+ * Client not running yet. The client callback will call us again later.
-+ */
-+ return;
-+
-+ ipp_txt = dnssdBuildTxtRecord(NULL, p, 0);
-+ printer_txt = dnssdBuildTxtRecord(NULL, p, 1);
-+ regtype = (p->type & CUPS_PRINTER_FAX) ? "_fax-ipp._tcp" : DNSSDRegType;
-+
-+ if (p->avahi_group && p->ipp_txt && ipp_txt &&
-+ !avahi_string_list_equal (p->ipp_txt, ipp_txt))
-+ {
-+ /*
-+ * Update the existing registration...
-+ */
-+
-+ avahi_string_list_free (p->ipp_txt);
-+
-+ if (p->printer_txt)
-+ avahi_string_list_free (p->printer_txt);
-+
-+ /*
-+ * Update the service group entry.
-+ */
-+
-+ regtype_copy = strdup (regtype);
-+ subtype = strchr (regtype_copy, ',');
-+ if (subtype)
-+ *subtype = '\0';
-+
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Updating TXT record for %s (%s)", name, regtype_copy);
-+ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ regtype_copy,
-+ NULL, ipp_txt);
-+ free (regtype_copy);
-+
-+ if (ret < 0)
-+ goto update_failed;
-+
-+ p->ipp_txt = ipp_txt;
-+ ipp_txt = NULL;
-+
-+ if (BrowseLocalProtocols & BROWSE_LPD)
-+ {
-+ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ "_printer._tcp", NULL,
-+ printer_txt);
-+ if (ret < 0)
-+ goto update_failed;
-+
-+ p->printer_txt = printer_txt;
-+ printer_txt = NULL;
-+ }
-+
-+ ret = avahi_entry_group_commit (p->avahi_group);
-+ if (ret < 0)
-+ {
-+ update_failed:
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Failed to update TXT record for %s: %d",
-+ name, ret);
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+ ipp_txt = p->ipp_txt;
-+ p->ipp_txt = NULL;
-+ }
-+ }
-+
-+ if (!p->avahi_group)
-+ {
-+ /*
-+ * Initial registration. Use the _fax subtype for fax queues...
-+ */
-+
-+ p->avahi_group = avahi_entry_group_new (AvahiCupsClient,
-+ avahi_entry_group_cb,
-+ p);
-+
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "Registering Avahi printer %s with name \"%s\" and "
-+ "type \"%s\"", p->name, name, regtype);
-+
-+ if (!p->avahi_group)
-+ {
-+ ret = 0;
-+ goto add_failed;
-+ }
-+
-+ /*
-+ * Add each service type (DNSSDRegType may contain several,
-+ * separated by commas).
-+ */
-+
-+ subtype = regtype_copy = strdup (regtype);
-+ while (subtype && *subtype)
-+ {
-+ nextsubtype = strchr (subtype, ',');
-+ if (nextsubtype)
-+ *nextsubtype++ = '\0';
-+
-+ if (subtype == regtype_copy)
-+ {
-+ /*
-+ * Main type entry.
-+ */
-+
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Adding TXT record for %s (%s)", name, regtype_copy);
-+ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name, regtype_copy,
-+ NULL, NULL,
-+ DNSSDPort,
-+ ipp_txt);
-+ }
-+ else
-+ {
-+ /*
-+ * Sub-type entry.
-+ */
-+
-+ snprintf (fullsubtype, sizeof(fullsubtype),
-+ "%s._sub.%s", subtype, regtype_copy);
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Adding TXT record for %s (%s)", name, fullsubtype);
-+ ret = avahi_entry_group_add_service_subtype (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ regtype_copy,
-+ NULL, fullsubtype);
-+ }
-+
-+ if (ret < 0)
-+ {
-+ free (regtype_copy);
-+ goto add_failed;
-+ }
-+
-+ subtype = nextsubtype;
-+ }
-+
-+ free (regtype_copy);
-+ p->ipp_txt = ipp_txt;
-+ ipp_txt = NULL;
-+
-+ if (BrowseLocalProtocols & BROWSE_LPD)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "Registering Avahi printer %s with name \"%s\" and "
-+ "type \"_printer._tcp\"", p->name, name);
-+
-+ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ "_printer._tcp", NULL, NULL,
-+ 515,
-+ printer_txt);
-+ if (ret < 0)
-+ goto add_failed;
-+
-+ p->printer_txt = printer_txt;
-+ printer_txt = NULL;
-+ }
-+
-+ ret = avahi_entry_group_commit (p->avahi_group);
-+
-+ if (ret < 0)
-+ {
-+ add_failed:
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Failed to add Avahi entry for %s: %d",
-+ name, ret);
-+ if (p->avahi_group)
-+ {
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+ }
-+ ipp_txt = p->ipp_txt;
-+ p->ipp_txt = NULL;
-+ }
-+ }
-+
-+ if (ipp_txt)
-+ avahi_string_list_free (ipp_txt);
-+
-+ if (printer_txt)
-+ avahi_string_list_free (printer_txt);
-+#endif /* HAVE_AVAHI */
- }
-
-
-@@ -2896,6 +3278,10 @@ dnssdStop(void)
- {
- cupsd_printer_t *p; /* Current printer */
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+#endif /* HAVE_DNSSD */
-
- /*
- * De-register the individual printers
-@@ -2910,12 +3296,23 @@ dnssdStop(void)
- * Shutdown the rest of the service refs...
- */
-
-+#ifdef HAVE_DNSSD
- if (WebIFRef)
- {
- DNSServiceRefDeallocate(WebIFRef);
- WebIFRef = NULL;
- }
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ if (AvahiWebIFGroup)
-+ {
-+ avahi_entry_group_reset (AvahiWebIFGroup);
-+ avahi_entry_group_free (AvahiWebIFGroup);
-+ AvahiWebIFGroup = NULL;
-+ }
-+#endif /* HAVE_AVAHI */
-
-+#ifdef HAVE_DNSSD
- if (RemoteRef)
- {
- DNSServiceRefDeallocate(RemoteRef);
-@@ -2926,14 +3323,17 @@ dnssdStop(void)
-
- DNSServiceRefDeallocate(DNSSDRef);
- DNSSDRef = NULL;
-+#endif /* HAVE_DNSSD */
-
- cupsArrayDelete(DNSSDPrinters);
- DNSSDPrinters = NULL;
-
- DNSSDPort = 0;
- }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'dnssdUpdate()' - Handle DNS-SD queries.
- */
-@@ -2955,6 +3355,153 @@ dnssdUpdate(void)
- #endif /* HAVE_DNSSD */
-
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahiPackTxtRecord()' - Pack an array of key/value pairs into an
-+ * AvahiStringList.
-+ */
-+
-+static AvahiStringList * /* O - new string list */
-+avahiPackTxtRecord(char *keyvalue[][2], /* I - Table of key value pairs */
-+ int count) /* I - Number of items in table */
-+{
-+ AvahiStringList *strlst = NULL;
-+ char **elements;
-+ size_t len;
-+ int i = 0;
-+
-+ elements = malloc ((1 + count) * sizeof (char *));
-+ if (!elements)
-+ goto cleanup;
-+
-+ for (i = 0; i < count; i++)
-+ {
-+ len = (1 + strlen (keyvalue[i][0]) +
-+ (keyvalue[i][1] ? 1 + strlen (keyvalue[i][1]) : 1));
-+ elements[i] = malloc (len * sizeof (char));
-+ if (!elements[i])
-+ goto cleanup;
-+
-+ snprintf (elements[i], len, "%s=%s", keyvalue[i][0], keyvalue[i][1]);
-+ }
-+
-+ strlst = avahi_string_list_new_from_array ((const char **) elements, count);
-+
-+cleanup:
-+ while (--i >= 0)
-+ free (elements[i]);
-+
-+ free (elements);
-+ return (strlst);
-+}
-+
-+
-+/*
-+ * 'avahi_entry_group_cb()' - Avahi entry group callback function.
-+ */
-+static void
-+avahi_entry_group_cb (AvahiEntryGroup *group,
-+ AvahiEntryGroupState state,
-+ void *userdata)
-+{
-+ char *name;
-+
-+ if (userdata)
-+ name = ((cupsd_printer_t *) userdata)->reg_name;
-+ else
-+ name = "CUPS web interface";
-+
-+ switch (state)
-+ {
-+ case AVAHI_ENTRY_GROUP_UNCOMMITED:
-+ case AVAHI_ENTRY_GROUP_REGISTERING:
-+ break;
-+
-+ case AVAHI_ENTRY_GROUP_ESTABLISHED:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Avahi entry group established for %s", name);
-+ break;
-+
-+ default:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Avahi entry group %s has state %d",
-+ name, state);
-+ break;
-+ }
-+}
-+
-+
-+/*
-+ * 'avahi_client_cb()' - Avahi client callback function.
-+ */
-+static void
-+avahi_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *userdata)
-+{
-+ cupsd_printer_t *printer;
-+ switch (state)
-+ {
-+ case AVAHI_CLIENT_S_RUNNING:
-+ /*
-+ * Avahi client started successfully.
-+ */
-+ AvahiCupsClient = client;
-+ AvahiCupsClientConnecting = 0;
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started");
-+
-+ cupsdUpdateDNSSDName ();
-+
-+ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
-+ printer;
-+ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
-+ if (Browsing && (BrowseLocalProtocols & BROWSE_DNSSD) &&
-+ (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT |
-+ CUPS_PRINTER_SCANNER))) && printer->shared)
-+ dnssdRegisterPrinter (printer);
-+
-+ break;
-+
-+ case AVAHI_CLIENT_CONNECTING:
-+ /*
-+ * No Avahi daemon, client is waiting.
-+ */
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting");
-+ break;
-+
-+ case AVAHI_CLIENT_S_REGISTERING:
-+ /*
-+ * Not yet registered.
-+ */
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client registering");
-+ break;
-+
-+ case AVAHI_CLIENT_FAILURE:
-+ /*
-+ * Avahi client failed, close it to allow a clean restart.
-+ */
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Avahi client failed, "
-+ "closing client to allow a clean restart");
-+
-+ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
-+ printer;
-+ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
-+ dnssdDeregisterPrinter (printer);
-+
-+ avahi_client_free(client);
-+ AvahiCupsClientConnecting = 0;
-+ AvahiCupsClient = NULL;
-+
-+ break;
-+
-+ default:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client state: %d", state);
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
- /*
- * 'get_auth_info_required()' - Get the auth-info-required value to advertise.
- */
-diff -up cups-1.5.2/scheduler/dirsvc.h.avahi-5-services cups-1.5.2/scheduler/dirsvc.h
---- cups-1.5.2/scheduler/dirsvc.h.avahi-5-services 2011-03-21 02:12:14.000000000 +0000
-+++ cups-1.5.2/scheduler/dirsvc.h 2012-03-14 15:08:25.711611808 +0000
-@@ -31,6 +31,10 @@
- # endif /* HAVE_LDAP_SSL_H */
- #endif /* HAVE_LDAP */
-
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/publish.h>
-+#endif /* HAVE_AVAHI */
-+
- /*
- * Browse protocols...
- */
-@@ -131,19 +135,22 @@ VAR int PollPipe VALUE(0);
- VAR cupsd_statbuf_t *PollStatusBuffer VALUE(NULL);
- /* Status buffer for pollers */
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- VAR char *DNSSDComputerName VALUE(NULL),
- /* Computer/server name */
- *DNSSDHostName VALUE(NULL),
- /* Hostname */
- *DNSSDRegType VALUE(NULL);
- /* Bonjour registration type */
--VAR cups_array_t *DNSSDAlias VALUE(NULL);
-- /* List of dynamic ServerAlias's */
- VAR int DNSSDPort VALUE(0);
- /* Port number to register */
- VAR cups_array_t *DNSSDPrinters VALUE(NULL);
- /* Printers we have registered */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+
-+#ifdef HAVE_DNSSD
-+VAR cups_array_t *DNSSDAlias VALUE(NULL);
-+ /* List of dynamic ServerAlias's */
- VAR DNSServiceRef DNSSDRef VALUE(NULL),
- /* Master DNS-SD service reference */
- WebIFRef VALUE(NULL),
-@@ -152,6 +159,17 @@ VAR DNSServiceRef DNSSDRef VALUE(NULL),
- /* Remote printer browse reference */
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+VAR AvahiCupsPoll *AvahiCupsPollHandle VALUE(NULL);
-+ /* AvahiCupsPoll object */
-+VAR AvahiClient *AvahiCupsClient VALUE(NULL);
-+ /* AvahiClient object */
-+VAR int AvahiCupsClientConnecting VALUE(0);
-+ /* Is AvahiClient object connecting? */
-+VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL);
-+ /* Web interface entry group */
-+#endif /* HAVE_AVAHI */
-+
- #ifdef HAVE_LIBSLP
- VAR SLPHandle BrowseSLPHandle VALUE(NULL);
- /* SLP API handle */
-@@ -195,13 +213,14 @@ extern void cupsdRegisterPrinter(cupsd_p
- extern void cupsdRestartPolling(void);
- extern void cupsdSaveRemoteCache(void);
- extern void cupsdSendBrowseList(void);
-+extern void cupsdStartAvahiClient(void);
- extern void cupsdStartBrowsing(void);
- extern void cupsdStartPolling(void);
- extern void cupsdStopBrowsing(void);
- extern void cupsdStopPolling(void);
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- extern void cupsdUpdateDNSSDName(void);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- #ifdef HAVE_LDAP
- extern void cupsdUpdateLDAPBrowse(void);
- #endif /* HAVE_LDAP */
-diff -up cups-1.5.2/scheduler/ipp.c.avahi-5-services cups-1.5.2/scheduler/ipp.c
---- cups-1.5.2/scheduler/ipp.c.avahi-5-services 2012-03-14 15:04:17.665305560 +0000
-+++ cups-1.5.2/scheduler/ipp.c 2012-03-14 15:08:25.715611813 +0000
-@@ -6099,7 +6099,7 @@ copy_printer_attrs(
- ippAddDate(con->response, IPP_TAG_PRINTER, "printer-current-time",
- ippTimeToDate(curtime));
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if (!ra || cupsArrayFind(ra, "printer-dns-sd-name"))
- {
- if (printer->reg_name)
-@@ -6109,7 +6109,7 @@ copy_printer_attrs(
- ippAddInteger(con->response, IPP_TAG_PRINTER, IPP_TAG_NOVALUE,
- "printer-dns-sd-name", 0);
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- if (!ra || cupsArrayFind(ra, "printer-error-policy"))
- ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME,
-diff -up cups-1.5.2/scheduler/main.c.avahi-5-services cups-1.5.2/scheduler/main.c
---- cups-1.5.2/scheduler/main.c.avahi-5-services 2012-03-14 15:06:36.511476986 +0000
-+++ cups-1.5.2/scheduler/main.c 2012-03-14 15:08:25.718611817 +0000
-@@ -120,6 +120,10 @@ main(int argc, /* I - Number of comm
- cupsd_listener_t *lis; /* Current listener */
- time_t current_time, /* Current time */
- activity, /* Client activity timer */
-+#ifdef HAVE_AVAHI
-+ avahi_client_time, /* Time for next Avahi client
-+ check */
-+#endif /* HAVE_AVAHI */
- browse_time, /* Next browse send time */
- senddoc_time, /* Send-Document time */
- expire_time, /* Subscription expire time */
-@@ -672,6 +676,9 @@ main(int argc, /* I - Number of comm
- */
-
- current_time = time(NULL);
-+#ifdef HAVE_AVAHI
-+ avahi_client_time = current_time;
-+#endif /* HAVE_AVAHI */
- browse_time = current_time;
- event_time = current_time;
- expire_time = current_time;
-@@ -894,6 +901,16 @@ main(int argc, /* I - Number of comm
- tmo = cupsdNextTimeout (&tmo_delay);
- if (tmo && tmo_delay == 0)
- cupsdRunTimeout (tmo);
-+
-+ /*
-+ * Try to restart the Avahi client every 10 seconds if needed...
-+ */
-+
-+ if ((current_time - avahi_client_time) >= 10)
-+ {
-+ avahi_client_time = current_time;
-+ cupsdStartAvahiClient();
-+ }
- #endif /* HAVE_AVAHI */
-
- #ifndef __APPLE__
-diff -up cups-1.5.2/scheduler/printers.c.avahi-5-services cups-1.5.2/scheduler/printers.c
---- cups-1.5.2/scheduler/printers.c.avahi-5-services 2012-03-14 15:04:17.646305537 +0000
-+++ cups-1.5.2/scheduler/printers.c 2012-03-14 15:08:25.720611819 +0000
-@@ -883,9 +883,9 @@ cupsdDeletePrinter(
- cupsdClearString(&p->alert);
- cupsdClearString(&p->alert_description);
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cupsdClearString(&p->pdl);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- cupsArrayDelete(p->filetypes);
-
-@@ -3787,7 +3787,7 @@ add_printer_formats(cupsd_printer_t *p)
- attr->values[i].string.text = _cupsStrAlloc(mimetype);
- }
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- {
- char pdl[1024]; /* Buffer to build pdl list */
- mime_filter_t *filter; /* MIME filter looping var */
-@@ -3843,7 +3843,7 @@ add_printer_formats(cupsd_printer_t *p)
-
- cupsdSetString(&p->pdl, pdl);
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
-diff -up cups-1.5.2/scheduler/printers.h.avahi-5-services cups-1.5.2/scheduler/printers.h
---- cups-1.5.2/scheduler/printers.h.avahi-5-services 2011-03-18 18:42:46.000000000 +0000
-+++ cups-1.5.2/scheduler/printers.h 2012-03-14 15:08:25.721611820 +0000
-@@ -16,6 +16,9 @@
- #ifdef HAVE_DNSSD
- # include <dns_sd.h>
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include "avahi.h"
-+#endif /* HAVE_AVAHI */
- #include <cups/pwg-private.h>
-
-
-@@ -95,16 +98,23 @@ struct cupsd_printer_s
- time_t marker_time; /* Last time marker attributes were updated */
- _ppd_cache_t *pc; /* PPD cache and mapping data */
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- char *reg_name, /* Name used for service registration */
-- *pdl, /* pdl value for TXT record */
-- *ipp_txt, /* IPP TXT record contents */
-+ *pdl; /* pdl value for TXT record */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+#ifdef HAVE_DNSSD
-+ char *ipp_txt, /* IPP TXT record contents */
- *printer_txt; /* LPD TXT record contents */
- int ipp_len, /* IPP TXT record length */
- printer_len; /* LPD TXT record length */
- DNSServiceRef ipp_ref, /* Reference for _ipp._tcp,_cups */
- printer_ref; /* Reference for _printer._tcp */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ AvahiStringList *ipp_txt, /* IPP TXT record */
-+ *printer_txt; /* LPD TXT record */
-+ AvahiEntryGroup *avahi_group; /* Avahi entry group */
-+#endif /* HAVE_AVAHI */
- };
-
-
diff --git a/libre/cups-libre/cups-no-export-ssllibs.patch b/libre/cups-libre/cups-no-export-ssllibs.patch
deleted file mode 100644
index 9be3c819b..000000000
--- a/libre/cups-libre/cups-no-export-ssllibs.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/config-scripts/cups-ssl.m4
---- cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs 2011-05-11 02:52:08.000000000 +0200
-+++ cups-1.5b1/config-scripts/cups-ssl.m4 2011-05-23 17:47:27.000000000 +0200
-@@ -164,7 +164,7 @@ AC_SUBST(IPPALIASES)
- AC_SUBST(SSLFLAGS)
- AC_SUBST(SSLLIBS)
-
--EXPORT_SSLLIBS="$SSLLIBS"
-+EXPORT_SSLLIBS=""
- AC_SUBST(EXPORT_SSLLIBS)
-
-
diff --git a/libre/cups-libre/cups-no-gcrypt.patch b/libre/cups-libre/cups-no-gcrypt.patch
deleted file mode 100644
index 42f71d0d4..000000000
--- a/libre/cups-libre/cups-no-gcrypt.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -ruN cups-1.4.7.orig//config-scripts/cups-ssl.m4 cups-1.4.7/config-scripts/cups-ssl.m4
---- cups-1.5.0.orig//config-scripts/cups-ssl.m4 2011-01-11 08:05:58.000000000 +0100
-+++ cups-1.5.0/config-scripts/cups-ssl.m4 2011-08-02 10:44:26.011047900 +0200
-@@ -96,7 +96,6 @@
- dnl Then look for GNU TLS...
- if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then
- AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
-- AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config)
- if $PKGCONFIG --exists gnutls; then
- have_ssl=1
- SSLLIBS=`$PKGCONFIG --libs gnutls`
-@@ -110,16 +109,6 @@
- AC_DEFINE(HAVE_SSL)
- AC_DEFINE(HAVE_GNUTLS)
- fi
--
-- if test $have_ssl = 1; then
-- if $PKGCONFIG --exists gcrypt; then
-- SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
-- SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
-- elif test "x$LIBGCRYPTCONFIG" != x; then
-- SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`"
-- SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`"
-- fi
-- fi
- fi
-
- dnl Check for the OpenSSL library last...
---- cups-1.5.0.orig//cups/http-private.h 2011-01-22 01:07:22.000000000 +0100
-+++ cups-1.5.0/cups/http-private.h 2011-08-02 10:42:43.341604107 +0200
-@@ -93,7 +93,6 @@
- # elif defined HAVE_GNUTLS
- # include <gnutls/gnutls.h>
- # include <gnutls/x509.h>
--# include <gcrypt.h>
- # elif defined(HAVE_CDSASSL)
- # include <CoreFoundation/CoreFoundation.h>
- # include <Security/Security.h>
diff --git a/libre/cups-libre/cups-no-gzip-man.patch b/libre/cups-libre/cups-no-gzip-man.patch
deleted file mode 100644
index 6786c4430..000000000
--- a/libre/cups-libre/cups-no-gzip-man.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man cups-1.5b1/config-scripts/cups-manpages.m4
---- cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man 2011-05-12 07:21:56.000000000 +0200
-+++ cups-1.5b1/config-scripts/cups-manpages.m4 2011-05-23 17:25:50.000000000 +0200
-@@ -69,10 +69,10 @@ case "$uname" in
- ;;
- Linux* | GNU* | Darwin*)
- # Linux, GNU Hurd, and Mac OS X
-- MAN1EXT=1.gz
-- MAN5EXT=5.gz
-- MAN7EXT=7.gz
-- MAN8EXT=8.gz
-+ MAN1EXT=1
-+ MAN5EXT=5
-+ MAN7EXT=7
-+ MAN8EXT=8
- MAN8DIR=8
- ;;
- *)
diff --git a/libre/cups-libre/cups.install b/libre/cups-libre/cups.install
deleted file mode 100644
index 47c3d9b82..000000000
--- a/libre/cups-libre/cups.install
+++ /dev/null
@@ -1,26 +0,0 @@
-post_install() {
- if [ -x usr/bin/xdg-icon-resource ]; then
- xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
- fi
- echo ">> If you use an HTTPS connection to CUPS, the first time you access"
- echo ">> the interface it may take a very long time before the site comes up."
- echo ">> This is because the first request triggers the generation of the CUPS"
- echo ">> SSL certificates which can be a very time-consuming job."
-}
-
-post_upgrade() {
- if [ -x usr/bin/xdg-icon-resource ]; then
- xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
- fi
- if [ "`vercmp $2 1.4.7-2`" -lt 0 ]; then
- # important upgrade notice
- echo "daemon script has been renamed to /etc/rc.d/cupsd"
- echo "change your entry in /etc/rc.conf"
- fi
-}
-
-post_remove() {
- if [ -x usr/bin/xdg-icon-resource ]; then
- xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
- fi
-}
diff --git a/libre/cups-libre/cups.logrotate b/libre/cups-libre/cups.logrotate
deleted file mode 100644
index 9c49bbdaf..000000000
--- a/libre/cups-libre/cups.logrotate
+++ /dev/null
@@ -1,8 +0,0 @@
-/var/log/cups/*log {
- missingok
- notifempty
- delaycompress
- postrotate
- /bin/kill -HUP `cat /var/run/cups.pid 2>/dev/null` 2>/dev/null || true
- endscript
-}
diff --git a/libre/cups-libre/cups.pam b/libre/cups-libre/cups.pam
deleted file mode 100644
index 53724d1f8..000000000
--- a/libre/cups-libre/cups.pam
+++ /dev/null
@@ -1,3 +0,0 @@
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
diff --git a/libre/cups-libre/rePKGBUILD b/libre/cups-libre/rePKGBUILD
deleted file mode 100644
index 5f55000cc..000000000
--- a/libre/cups-libre/rePKGBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# This is an example rePKGBUILD file. Use this as a start to creating your own,
-# and remove these comments. For more information, see 'man PKGBUILD'.
-# NOTE: Please fill out the license field for your package! If it is unknown,
-# then please put 'unknown'.
-
-# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
-source PKGBUILD
-unset build package md5sums source check
-_repo=extra
-pkgname='cups-libre'
-options=(!strip)
-source=(PKGBUILD
- http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgbase}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
- # files for pkg modifications
- )
-
-build() {
- cd "${srcdir}/"
- rm -v .{INSTALL,PKGINFO} ${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT || true
- # put actions for package modifications below this line
-}
-
-package_cups-libre() {
- pkgdesc="The CUPS Printing System - daemon package"
- provides=("${pkgbase}=${pkgver}")
- replaces=("${pkgbase}")
- conflicts=("${pkgbase}")
- install=cups.install
- backup=(etc/cups/cupsd.conf
- etc/cups/mime.convs
- etc/cups/mime.types
- etc/cups/snmp.conf
- etc/cups/printers.conf
- etc/cups/classes.conf
- etc/cups/client.conf
- etc/cups/subscriptions.conf
- etc/dbus-1/system.d/cups.conf
- etc/logrotate.d/cups
- etc/pam.d/cups
- etc/xinetd.d/cups-lpd)
- depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'poppler>=0.12.3' 'libusb-compat' 'dbus-core' 'hicolor-icon-theme')
- optdepends=('php: for included phpcups.so module'
- 'ghostscript: for non-PostScript printers to print with CUPS to convert PostScript to raster images'
- 'foomatic-db: drivers use Ghostscript to convert PostScript to a printable form directly'
- 'foomatic-db-engine: drivers use Ghostscript to convert PostScript to a printable form directly'
- 'xdg-utils: xdg .desktop file support')
-
- find ${srcdir} -maxdepth 1 -type l -delete
- cp -a ${srcdir}/* ${pkgdir}
-}
diff --git a/libre/debhelper/PKGBUILD b/libre/debhelper/PKGBUILD
deleted file mode 100644
index 60ff8f267..000000000
--- a/libre/debhelper/PKGBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer (AUR): Antoine Lubineau <antoine@lubignon.info>
-# Contributor (AUR): Andrei "Garoth" Thorp <garoth@gmail.com>
-# Contributor (Parabola): Luke Shumaker <lukeshu@sbcglobal.net>
-
-_debrepo=http://ftp.debian.org/debian/pool/main/ # Debian Sid
-debfile() { echo -n "$_debrepo"; echo -n "$@"|sed -r 's@(.).*@\1/&@'; }
-
-pkgname=debhelper
-pkgver=9.20120322
-pkgrel=1
-pkgdesc="A collection of programs that can be used in a debian/rules file to automate common tasks"
-arch=('any')
-url="http://packages.debian.org/${pkgname}"
-license='GPL3'
-depends=('binutils' 'dpkg' 'file' 'html2text' 'man-db' 'perl')
-makedepends=('po4a')
-source=(`debfile ${pkgname}`/${pkgname}_$pkgver.tar.gz)
-
-build() {
- cd "$srcdir/$pkgname"
- make
-}
-
-package() {
- cd "$srcdir/$pkgname"
- make DESTDIR="$pkgdir" install
-}
-
-md5sums=('9ea56782e6396a59ec49f45f9c4a603f')
diff --git a/libre/dpkg/dpkg-arch.patch b/libre/dpkg/dpkg-arch.patch
deleted file mode 100644
index 66e7a2ef2..000000000
--- a/libre/dpkg/dpkg-arch.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -ru dpkg-1.16.2.orig/scripts/Dpkg/Arch.pm dpkg-1.16.2/scripts/Dpkg/Arch.pm
---- dpkg-1.16.2.orig/scripts/Dpkg/Arch.pm 2012-03-19 02:40:08.000000000 -0400
-+++ dpkg-1.16.2/scripts/Dpkg/Arch.pm 2012-04-02 16:14:55.000000000 -0400
-@@ -49,12 +49,7 @@
- {
- return $build_arch if defined $build_arch;
-
-- # Note: We *always* require an installed dpkg when inferring the
-- # build architecture. The bootstrapping case is handled by
-- # dpkg-architecture itself, by avoiding computing the DEB_BUILD_
-- # variables when they are not requested.
--
-- my $build_arch = `dpkg --print-architecture`;
-+ my $build_arch = `uname -m`;
- syserr("dpkg --print-architecture failed") if $? >> 8;
-
- chomp $build_arch;
diff --git a/libre/dpkg/dpkg-rsyncable.patch b/libre/dpkg/dpkg-rsyncable.patch
deleted file mode 100644
index e7e58dfdf..000000000
--- a/libre/dpkg/dpkg-rsyncable.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru dpkg-1.16.2.orig/scripts/Dpkg/Compression.pm dpkg-1.16.2/scripts/Dpkg/Compression.pm
---- dpkg-1.16.2.orig/scripts/Dpkg/Compression.pm 2012-03-19 02:40:08.000000000 -0400
-+++ dpkg-1.16.2/scripts/Dpkg/Compression.pm 2012-04-02 16:26:27.000000000 -0400
-@@ -52,7 +52,7 @@
- my $COMP = {
- "gzip" => {
- "file_ext" => "gz",
-- "comp_prog" => [ "gzip", "--no-name", "--rsyncable" ],
-+ "comp_prog" => [ "gzip", "--no-name"],
- "decomp_prog" => [ "gunzip" ],
- "default_level" => 9,
- },
diff --git a/libre/file-roller-libre/extract-to-fix.patch b/libre/file-roller-libre/extract-to-fix.patch
deleted file mode 100644
index 2ec4c8336..000000000
--- a/libre/file-roller-libre/extract-to-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/main.c~ b/src/main.c
-index 1eb2e65..539ddfa 100644
---- a/src/main.c~
-+++ b/src/main.c
-@@ -850,7 +850,7 @@ fr_application_command_line (GApplication *application,
-
- _g_object_unref (default_directory);
- _g_object_unref (add_to_archive);
-- g_free (extraction_destination);
-+ _g_object_unref (extraction_destination);
-
- return fr_application_command_line_finished (application, EXIT_SUCCESS);
- }
diff --git a/libre/gnu-ghostscript/gnu-ghostscript-cups-rgbw.patch b/libre/gnu-ghostscript/gnu-ghostscript-cups-rgbw.patch
deleted file mode 100644
index 81b52a2e6..000000000
--- a/libre/gnu-ghostscript/gnu-ghostscript-cups-rgbw.patch
+++ /dev/null
@@ -1,263 +0,0 @@
-diff -up gnu-ghostscript-9.04.1/cups/gdevcups.c.cups-rgbw ghostscript-9.04/cups/gdevcups.c
---- gnu-ghostscript-9.04.1/cups/gdevcups.c.cups-rgbw 2011-08-05 12:12:21.000000000 +0100
-+++ gnu-ghostscript-9.04.1/cups/gdevcups.c 2011-08-22 10:54:24.614010581 +0100
-@@ -225,6 +225,7 @@ typedef struct gx_device_cups_s
- unsigned short EncodeLUT[gx_max_color_value + 1];/* RGB value to output color LUT */
- int Density[CUPS_MAX_VALUE + 1];/* Density LUT */
- int Matrix[3][3][CUPS_MAX_VALUE + 1];/* Color transform matrix LUT */
-+ int user_icc;
- int cupsRasterVersion;
-
- /* Used by cups_put_params(): */
-@@ -426,6 +427,7 @@ gx_device_cups gs_cups_device =
- {0x00}, /* EncodeLUT */
- {0x00}, /* Density */
- {0x00}, /* Matrix */
-+ 0,
- 3 /* cupsRasterVersion */
- };
-
-@@ -1182,15 +1184,18 @@ cups_map_cmyk(gx_device *pdev, /* I - D
-
- case CUPS_CSPACE_RGB :
- case CUPS_CSPACE_RGBW :
-+ c0 = c + k;
-+ c1 = m + k;
-+ c2 = y + k;
- if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) {
-- c0 = c;
-- c1 = m;
-- c2 = y;
-- c3 = k;
-- } else {
-- c0 = c + k;
-- c1 = m + k;
-- c2 = y + k;
-+ if ((k >= frac_1 - 1) ||
-+ ((c0 >= frac_1) && (c1 >= frac_1) && (c2 >= frac_1))) {
-+ c0 = frac_1;
-+ c1 = frac_1;
-+ c2 = frac_1;
-+ c3 = frac_1;
-+ } else
-+ c3 = 0;
- }
-
- if (c0 < 0)
-@@ -1212,11 +1217,12 @@ cups_map_cmyk(gx_device *pdev, /* I - D
- out[2] = frac_1 - (frac)cups->Density[c2];
-
- if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) {
-- if (c3 < 0)
-- c3 = 0;
-- else if (c3 > frac_1)
-- c3 = frac_1;
-- out[3] = frac_1 - (frac)cups->Density[c3];
-+ if (c3 == 0)
-+ out[3] = frac_1;
-+ else if (c3 == frac_1)
-+ out[3] = 0;
-+ else
-+ out[3] = frac_1;
- }
- break;
-
-@@ -2034,10 +2040,15 @@ cups_map_color_rgb(gx_device *pdev,
- * cups->DecodeLUT actually maps to RGBW, not CMYK...
- */
-
-- k = cups->DecodeLUT[c3];
-- c = cups->DecodeLUT[c0] + k - gx_max_color_value;
-- m = cups->DecodeLUT[c1] + k - gx_max_color_value;
-- y = cups->DecodeLUT[c2] + k - gx_max_color_value;
-+ if (c3 == 0) {
-+ c = 0;
-+ m = 0;
-+ y = 0;
-+ } else {
-+ c = cups->DecodeLUT[c0];
-+ m = cups->DecodeLUT[c1];
-+ y = cups->DecodeLUT[c2];
-+ }
-
- if (c > gx_max_color_value)
- prgb[0] = gx_max_color_value;
-@@ -2282,20 +2293,20 @@ cups_map_rgb_color(gx_device *pdev,
- switch (cups->header.cupsBitsPerColor)
- {
- default :
-- i = 0x0e;
-+ i = 0x00;
- break;
- case 2 :
-- i = 0xfc;
-+ i = 0x00;
- break;
- case 4 :
-- i = 0xfff0;
-+ i = 0x0000;
- break;
- case 8 :
-- i = 0xffffff00;
-+ i = 0x00000000;
- break;
- #ifdef GX_COLOR_INDEX_TYPE
- case 16 :
-- i = 0xffffffffffff0000;
-+ i = 0x0000000000000000;
- break;
- #endif /* GX_COLOR_INDEX_TYPE */
- }
-@@ -2929,7 +2940,10 @@ cups_put_params(gx_device *pdev, /*
- int xflip = 0,
- yflip = 0;
- int found = 0;
--
-+ gs_param_string icc_pro_dummy;
-+ int old_cmps = cups->color_info.num_components;
-+ int old_depth = cups->color_info.depth;
-+
- #ifdef DEBUG
- dprintf2("DEBUG2: cups_put_params(%p, %p)\n", pdev, plist);
- #endif /* DEBUG */
-@@ -3024,6 +3038,11 @@ cups_put_params(gx_device *pdev, /*
- margins_set = param_read_float_array(plist, "Margins", &arrayval) == 0;
- color_set = param_read_int(plist, "cupsColorSpace", &intval) == 0 ||
- param_read_int(plist, "cupsBitsPerColor", &intval) == 0;
-+
-+ if (!cups->user_icc) {
-+ cups->user_icc = param_read_string(plist, "OutputICCProfile", &icc_pro_dummy) == 0;
-+ }
-+
- /* We set the old dimensions to 1 if we have a color depth change, so
- that memory reallocation gets forced. This is perhaps not the correct
- approach to prevent crashes like in bug 690435. We keep it for the
-@@ -3134,12 +3153,20 @@ cups_put_params(gx_device *pdev, /*
- if ((code = gdev_prn_put_params(pdev, plist)) < 0)
- return (code);
-
-+ /* If cups_set_color_info() changed the color model of the device we want to
-+ * force the raster memory to be recreated/reinitialized
-+ */
-+ if (cups->color_info.num_components != old_cmps || cups->color_info.depth != old_depth) {
-+ width_old = 0;
-+ height_old = 0;
-+ }
-+ else {
- /* pdev->width/height may have been changed by the call to
- * gdev_prn_put_params()
- */
-- width_old = pdev->width;
-- height_old = pdev->height;
--
-+ width_old = pdev->width;
-+ height_old = pdev->height;
-+ }
- /*
- * Update margins/sizes as needed...
- */
-@@ -4044,22 +4071,88 @@ cups_set_color_info(gx_device *pdev) /*
- for (k = 0; k <= CUPS_MAX_VALUE; k ++)
- cups->Density[k] = k;
- }
-- /* Set up the ICC profile for ghostscript to use based upon the color space.
-- This is different than the PPD profile above which appears to be some sort
-- of matrix based TRC profile */
-- switch (cups->header.cupsColorSpace) {
-- /* Use RGB profile for this */
-- case CUPS_CSPACE_RGBW:
-- if (pdev->icc_struct == NULL) {
-- pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory);
-- }
-- if (pdev->icc_struct->device_profile[gsDEFAULTPROFILE] == NULL) {
-- code = gsicc_set_device_profile(pdev, pdev->memory,
-- DEFAULT_RGB_ICC, gsDEFAULTPROFILE);
-- }
-- break;
-- default:
-- break;
-+ if (!cups->user_icc) {
-+ /* Set up the ICC profile for ghostscript to use based upon the color space.
-+ This is different than the PPD profile above which appears to be some sort
-+ of matrix based TRC profile */
-+ switch (cups->header.cupsColorSpace)
-+ {
-+ default :
-+ case CUPS_CSPACE_RGBW :
-+ case CUPS_CSPACE_RGB :
-+ case CUPS_CSPACE_RGBA :
-+ case CUPS_CSPACE_CMY :
-+ case CUPS_CSPACE_YMC :
-+# ifdef CUPS_RASTER_HAVE_COLORIMETRIC
-+ case CUPS_CSPACE_CIELab :
-+ case CUPS_CSPACE_ICC1 :
-+ case CUPS_CSPACE_ICC2 :
-+ case CUPS_CSPACE_ICC3 :
-+ case CUPS_CSPACE_ICC4 :
-+ case CUPS_CSPACE_ICC5 :
-+ case CUPS_CSPACE_ICC6 :
-+ case CUPS_CSPACE_ICC7 :
-+ case CUPS_CSPACE_ICC8 :
-+ case CUPS_CSPACE_ICC9 :
-+ case CUPS_CSPACE_ICCA :
-+ case CUPS_CSPACE_ICCB :
-+ case CUPS_CSPACE_ICCC :
-+ case CUPS_CSPACE_ICCD :
-+ case CUPS_CSPACE_ICCE :
-+ case CUPS_CSPACE_ICCF :
-+# endif /* CUPS_RASTER_HAVE_COLORIMETRIC */
-+ if (!pdev->icc_struct || (pdev->icc_struct &&
-+ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsRGB)) {
-+
-+ if (pdev->icc_struct) {
-+ rc_decrement(pdev->icc_struct, "cups_set_color_info");
-+ }
-+ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory);
-+
-+ code = gsicc_set_device_profile(pdev, pdev->memory,
-+ (char *)DEFAULT_RGB_ICC, gsDEFAULTPROFILE);
-+ }
-+ break;
-+
-+ case CUPS_CSPACE_W :
-+ case CUPS_CSPACE_WHITE :
-+ case CUPS_CSPACE_K :
-+ case CUPS_CSPACE_GOLD :
-+ case CUPS_CSPACE_SILVER :
-+ if (!pdev->icc_struct || (pdev->icc_struct &&
-+ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsGRAY)) {
-+
-+ if (pdev->icc_struct) {
-+ rc_decrement(pdev->icc_struct, "cups_set_color_info");
-+ }
-+ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory);
-+
-+ code = gsicc_set_device_profile(pdev, pdev->memory->non_gc_memory,
-+ (char *)DEFAULT_GRAY_ICC, gsDEFAULTPROFILE);
-+ }
-+ break;
-+ case CUPS_CSPACE_KCMYcm :
-+# ifdef CUPS_RASTER_HAVE_COLORIMETRIC
-+ case CUPS_CSPACE_CIEXYZ :
-+#endif
-+ case CUPS_CSPACE_CMYK :
-+ case CUPS_CSPACE_YMCK :
-+ case CUPS_CSPACE_KCMY :
-+ case CUPS_CSPACE_GMCK :
-+ case CUPS_CSPACE_GMCS :
-+ if (!pdev->icc_struct || (pdev->icc_struct &&
-+ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsCMYK)) {
-+
-+ if (pdev->icc_struct) {
-+ rc_decrement(pdev->icc_struct, "cups_set_color_info");
-+ }
-+ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory);
-+
-+ code = gsicc_set_device_profile(pdev, pdev->memory,
-+ (char *)DEFAULT_CMYK_ICC, gsDEFAULTPROFILE);
-+ }
-+ break;
-+ }
- }
- }
-
diff --git a/libre/gnustep-base-libre/PKGBUILD b/libre/gnustep-base-libre/PKGBUILD
deleted file mode 100644
index 4b5fa1731..000000000
--- a/libre/gnustep-base-libre/PKGBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# Parabola contributor: André Silva <andre.paulista@adinet.com.uy>
-# $Id$
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
-# Contributor: Sebastian Sareyko <public@nooms.de>
-
-_pkgname=gnustep-base
-pkgname=gnustep-base-libre
-pkgver=1.24.0
-pkgrel=2
-pkgdesc="The GNUstep base package with exceptions enabled"
-arch=('i686' 'x86_64')
-url="http://www.gnustep.org/"
-license=("GPL" "LGPL")
-depends=(libxslt avahi gmp gcc-libs openssl libffi gnustep-make-libre gnutls)
-makedepends=(gcc-objc)
-conflicts=('gnustep-base-svn' 'gnustep-base')
-provides=('gnustep-base')
-groups=('gnustep-core')
-options=('!emptydirs' '!makeflags')
-source=(ftp://ftp.gnustep.org/pub/gnustep/core/$_pkgname-$pkgver.tar.gz)
-md5sums=('53cd117e9f64729870e906b66d2314ba')
-
-build() {
- cd "$srcdir/$_pkgname-$pkgver"
- source /etc/profile.d/GNUstep.sh
- ./configure --prefix=/usr --sysconfdir=/etc/GNUstep \
- --with-ffi-include=/usr/lib/libffi-`pacman -Q libffi | cut -f2 -d\ |cut -f1 -d-`/include/
- # fix file ownership
- sed -i 's/tar -xf $(TIMEZONE_ARCHIVE);/tar -xf $(TIMEZONE_ARCHIVE);chown -R root:root * ;/' NSTimeZones/Makefile.postamble
- sed -i 's|.*gnutls_transport_set_lowat.*||' Source/GSSocketStream.m
- make VERBOSE=1
-}
-
-package() {
- cd "$srcdir/$_pkgname-$pkgver"
- make DESTDIR="$pkgdir" install
- chown -R root.root "$pkgdir/"
-}
diff --git a/libre/gnustep-make-libre/PKGBUILD b/libre/gnustep-make-libre/PKGBUILD
deleted file mode 100644
index 7abc014c6..000000000
--- a/libre/gnustep-make-libre/PKGBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# Parabola contributor: André Silva <andre.paulista@adinet.com.uy>
-# $Id$
-# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
-# Contributor: Sebastian Sareyko <public@nooms.de>
-
-_pkgname=gnustep-make
-pkgname=gnustep-make-libre
-pkgver=2.6.2
-pkgrel=1
-pkgdesc="The GNUstep make package with exceptions enabled"
-arch=('any')
-url="http://www.gnustep.org/"
-license=('GPL')
-depends=('glibc')
-conflicts=('gnustep-make-svn' 'gnustep-make')
-provides=('gnustep-make')
-groups=('gnustep-core')
-source=(ftp://ftp.gnustep.org/pub/gnustep/core/$_pkgname-$pkgver.tar.gz)
-md5sums=('b926d142debc9f38d75b11019c31889f')
-
-build() {
- cd $srcdir/$_pkgname-$pkgver
- # The option is not needed, but makes clear why we rebuild this.
- ./configure --prefix=/usr --sysconfdir=/etc/GNUstep \
- --enable-native-objc-exceptions
- make
- make DESTDIR=$pkgdir install
- install -D -m755 \
- $pkgdir/usr/share/GNUstep/Makefiles/GNUstep.sh \
- $pkgdir/etc/profile.d/GNUstep.sh
-}
diff --git a/libre/grub-legacy/grub-0.97-gpt.patch b/libre/grub-legacy/grub-0.97-gpt.patch
deleted file mode 100644
index 7b1a55cd8..000000000
--- a/libre/grub-legacy/grub-0.97-gpt.patch
+++ /dev/null
@@ -1,315 +0,0 @@
-diff -ruBbd --unidirectional-new-file grub-0.96/stage2/builtins.c grub-0.96-patched/stage2/builtins.c
---- grub-0.96/stage2/builtins.c 2004-06-20 09:33:04.000000000 -0400
-+++ grub-0.96-patched/stage2/builtins.c 2007-01-04 13:56:06.000000000 -0500
-@@ -1229,14 +1229,15 @@
- for (drive = 0x80; drive < 0x88; drive++)
- {
- unsigned long part = 0xFFFFFF;
-- unsigned long start, len, offset, ext_offset;
-- int type, entry;
-+ unsigned long start, len, offset, ext_offset, gpt_offset;
-+ int type, entry, gpt_count, gpt_size;
- char buf[SECTOR_SIZE];
-
- current_drive = drive;
- while (next_partition (drive, 0xFFFFFF, &part, &type,
- &start, &len, &offset, &entry,
-- &ext_offset, buf))
-+ &ext_offset, &gpt_offset,
-+ &gpt_count, &gpt_size, buf))
- {
- if (type != PC_SLICE_TYPE_NONE
- && ! IS_PC_SLICE_TYPE_BSD (type)
-@@ -2806,8 +2807,8 @@
- {
- int new_type;
- unsigned long part = 0xFFFFFF;
-- unsigned long start, len, offset, ext_offset;
-- int entry, type;
-+ unsigned long start, len, offset, ext_offset, gpt_offset;
-+ int entry, type, gpt_count, gpt_size;
- char mbr[512];
-
- /* Get the drive and the partition. */
-@@ -2844,7 +2845,14 @@
- /* Look for the partition. */
- while (next_partition (current_drive, 0xFFFFFF, &part, &type,
- &start, &len, &offset, &entry,
-- &ext_offset, mbr))
-+ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
-+ /* The partition may not be a GPT partition. */
-+ if (gpt_offset != 0)
-+ {
-+ errnum = ERR_BAD_ARGUMENT;
-+ return 1;
-+ }
-+
- {
- if (part == current_partition)
- {
-diff -ruBbd --unidirectional-new-file grub-0.96/stage2/disk_io.c grub-0.96-patched/stage2/disk_io.c
---- grub-0.96/stage2/disk_io.c 2004-05-23 12:35:24.000000000 -0400
-+++ grub-0.96-patched/stage2/disk_io.c 2007-01-04 14:01:08.000000000 -0500
-@@ -21,6 +21,7 @@
-
- #include <shared.h>
- #include <filesys.h>
-+#include <gpt.h>
-
- #ifdef SUPPORT_NETBOOT
- # define GRUB 1
-@@ -502,8 +503,8 @@
- set_partition_hidden_flag (int hidden)
- {
- unsigned long part = 0xFFFFFF;
-- unsigned long start, len, offset, ext_offset;
-- int entry, type;
-+ unsigned long start, len, offset, ext_offset, gpt_offset;
-+ int entry, type, gpt_count, gpt_size;
- char mbr[512];
-
- /* The drive must be a hard disk. */
-@@ -524,7 +525,14 @@
- /* Look for the partition. */
- while (next_partition (current_drive, 0xFFFFFF, &part, &type,
- &start, &len, &offset, &entry,
-- &ext_offset, mbr))
-+ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
-+ /* The partition may not be a GPT partition. */
-+ if (gpt_offset != 0)
-+ {
-+ errnum = ERR_BAD_ARGUMENT;
-+ return 1;
-+ }
-+
- {
- if (part == current_partition)
- {
-@@ -577,11 +585,14 @@
- unsigned long *partition, int *type,
- unsigned long *start, unsigned long *len,
- unsigned long *offset, int *entry,
-- unsigned long *ext_offset, char *buf)
-+ unsigned long *ext_offset,
-+ unsigned long *gpt_offset, int *gpt_count,
-+ int *gpt_size, char *buf)
- {
- /* Forward declarations. */
- auto int next_bsd_partition (void);
- auto int next_pc_slice (void);
-+ auto int next_gpt_slice(void);
-
- /* Get next BSD partition in current PC slice. */
- int next_bsd_partition (void)
-@@ -666,6 +677,40 @@
- return 0;
- }
-
-+ /* If this is a GPT partition table, read it as such. */
-+ if (*entry == -1 && *offset == 0 && PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_GPT)
-+ {
-+ struct grub_gpt_header *hdr = (struct grub_gpt_header *) buf;
-+
-+ /* Read in the GPT Partition table header. */
-+ if (! rawread (drive, 1, 0, SECTOR_SIZE, buf))
-+ return 0;
-+
-+ if (hdr->magic == GPT_HEADER_MAGIC && hdr->version == 0x10000)
-+ {
-+ /* Let gpt_offset point to the first entry in the GPT
-+ partition table. This can also be used by callers of
-+ next_partition to determine if a entry comes from a
-+ GPT partition table or not. */
-+ *gpt_offset = hdr->partitions;
-+ *gpt_count = hdr->maxpart;
-+ *gpt_size = hdr->partentry_size;
-+
-+ return next_gpt_slice();
-+ }
-+ else
-+ {
-+ /* This is not a valid header for a GPT partition table.
-+ Re-read the MBR or the boot sector of the extended
-+ partition. */
-+ if (! rawread (drive, *offset, 0, SECTOR_SIZE, buf))
-+ return 0;
-+ }
-+ }
-+
-+ /* Not a GPT partition. */
-+ *gpt_offset = 0;
-+
- /* Increase the entry number. */
- (*entry)++;
-
-@@ -710,6 +755,43 @@
- return 1;
- }
-
-+ /* Get the next GPT slice. */
-+ int next_gpt_slice (void)
-+ {
-+ struct grub_gpt_partentry *gptentry = (struct grub_gpt_partentry *) buf;
-+ /* Make GPT partitions show up as PC slices. */
-+ int pc_slice_no = (*partition & 0xFF0000) >> 16;
-+
-+ /* If this is the first time... */
-+ if (pc_slice_no == 0xFF)
-+ {
-+ pc_slice_no = -1;
-+ *entry = -1;
-+ }
-+
-+ do {
-+ (*entry)++;
-+
-+ if (*entry >= *gpt_count)
-+ {
-+ errnum = ERR_NO_PART;
-+ return 0;
-+ }
-+ /* Read in the GPT Partition table entry. */
-+ if (! rawread (drive, (*gpt_offset) + GPT_ENTRY_SECTOR (*gpt_size, *entry), GPT_ENTRY_INDEX (*gpt_size, *entry), *gpt_size, buf))
-+ return 0;
-+ } while (! (gptentry->type1 && gptentry->type2));
-+
-+ pc_slice_no++;
-+ *start = gptentry->start;
-+ *len = gptentry->end - gptentry->start + 1;
-+ *type = PC_SLICE_TYPE_EXT2FS;
-+ *entry = pc_slice_no;
-+ *partition = (*entry << 16) | 0xFFFF;
-+
-+ return 1;
-+ }
-+
- /* Start the body of this function. */
-
- #ifndef STAGE1_5
-@@ -717,6 +799,9 @@
- return 0;
- #endif
-
-+ if (*partition != 0xFFFFFF && *gpt_offset != 0)
-+ return next_gpt_slice ();
-+
- /* If previous partition is a BSD partition or a PC slice which
- contains BSD partitions... */
- if ((*partition != 0xFFFFFF && IS_PC_SLICE_TYPE_BSD (*type & 0xff))
-@@ -755,6 +840,9 @@
- unsigned long dest_partition = current_partition;
- unsigned long part_offset;
- unsigned long ext_offset;
-+ unsigned long gpt_offset;
-+ int gpt_count;
-+ int gpt_size;
- int entry;
- char buf[SECTOR_SIZE];
- int bsd_part, pc_slice;
-@@ -766,7 +854,8 @@
- int ret = next_partition (current_drive, dest_partition,
- &current_partition, &current_slice,
- &part_start, &part_length,
-- &part_offset, &entry, &ext_offset, buf);
-+ &part_offset, &entry, &ext_offset,
-+ &gpt_offset, &gpt_count, &gpt_size, buf);
- bsd_part = (current_partition >> 8) & 0xFF;
- pc_slice = current_partition >> 16;
- return ret;
-diff -ruBbd --unidirectional-new-file grub-0.96/stage2/gpt.h grub-0.96-patched/stage2/gpt.h
---- grub-0.96/stage2/gpt.h 1969-12-31 19:00:00.000000000 -0500
-+++ grub-0.96-patched/stage2/gpt.h 2007-01-04 13:52:14.000000000 -0500
-@@ -0,0 +1,68 @@
-+/*
-+ * GRUB -- GRand Unified Bootloader
-+ * Copyright (C) 2002,2005,2006 Free Software Foundation, Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#ifndef _GPT_H
-+#define _GPT_H
-+
-+typedef signed char grub_int8_t;
-+typedef signed short grub_int16_t;
-+typedef signed int grub_int32_t;
-+typedef signed long long int grub_int64_t;
-+typedef unsigned char grub_uint8_t;
-+typedef unsigned short grub_uint16_t;
-+typedef unsigned int grub_uint32_t;
-+typedef unsigned long long int grub_uint64_t;
-+
-+struct grub_gpt_header
-+{
-+ grub_uint64_t magic;
-+ grub_uint32_t version;
-+ grub_uint32_t headersize;
-+ grub_uint32_t crc32;
-+ grub_uint32_t unused1;
-+ grub_uint64_t primary;
-+ grub_uint64_t backup;
-+ grub_uint64_t start;
-+ grub_uint64_t end;
-+ grub_uint8_t guid[16];
-+ grub_uint64_t partitions;
-+ grub_uint32_t maxpart;
-+ grub_uint32_t partentry_size;
-+ grub_uint32_t partentry_crc32;
-+} __attribute__ ((packed));
-+
-+struct grub_gpt_partentry
-+{
-+ grub_uint64_t type1;
-+ grub_uint64_t type2;
-+ grub_uint8_t guid[16];
-+ grub_uint64_t start;
-+ grub_uint64_t end;
-+ grub_uint8_t attrib;
-+ char name[72];
-+} __attribute__ ((packed));
-+
-+#define GPT_HEADER_MAGIC 0x5452415020494645UL
-+
-+#define GPT_ENTRY_SECTOR(size,entry) \
-+ ((((entry) * (size) + 1) & ~(SECTOR_SIZE - 1)) >> SECTOR_BITS)
-+#define GPT_ENTRY_INDEX(size,entry) \
-+ ((((entry) * (size) + 1) & (SECTOR_SIZE - 1)) - 1)
-+
-+#endif /* _GPT_H */
-diff -ruBbd --unidirectional-new-file grub-0.96/stage2/pc_slice.h grub-0.96-patched/stage2/pc_slice.h
---- grub-0.96/stage2/pc_slice.h 2003-07-09 07:45:53.000000000 -0400
-+++ grub-0.96-patched/stage2/pc_slice.h 2007-01-04 13:52:14.000000000 -0500
-@@ -115,6 +115,7 @@
- #define PC_SLICE_TYPE_LINUX_EXTENDED 0x85
- #define PC_SLICE_TYPE_VSTAFS 0x9e
- #define PC_SLICE_TYPE_DELL_UTIL 0xde
-+#define PC_SLICE_TYPE_GPT 0xee
- #define PC_SLICE_TYPE_LINUX_RAID 0xfd
-
-
-diff -ruBbd --unidirectional-new-file grub-0.96/stage2/shared.h grub-0.96-patched/stage2/shared.h
---- grub-0.96/stage2/shared.h 2004-06-19 12:40:09.000000000 -0400
-+++ grub-0.96-patched/stage2/shared.h 2007-01-04 13:52:15.000000000 -0500
-@@ -934,7 +934,9 @@
- unsigned long *partition, int *type,
- unsigned long *start, unsigned long *len,
- unsigned long *offset, int *entry,
-- unsigned long *ext_offset, char *buf);
-+ unsigned long *ext_offset,
-+ unsigned long *gpt_offset, int *gpt_count,
-+ int *gpt_size, char *buf);
-
- /* Sets device to the one represented by the SAVED_* parameters. */
- int make_saved_active (void);
diff --git a/libre/grub-legacy/rePKGBUILD b/libre/grub-legacy/rePKGBUILD
deleted file mode 100644
index a73289fb5..000000000
--- a/libre/grub-legacy/rePKGBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
-# Contributor: André Silva <emulatorman@lavabit.com>
-source PKGBUILD
-CARCH=i686
-unset build package md5sums source
-_repo=core
-source=(PKGBUILD
- #http://mirrors.kernel.org/archlinux/${_repo}/os/${CARCH}/${pkgname%}-$pkgver-$pkgrel-$CARCH$PKGEXT
- http://mirrors.kernel.org/archlinux/${_repo}/os/${CARCH}/${pkgname%}-$pkgver-21-$CARCH$PKGEXT
- # files for pkg modifications
- menu.lst
- install-grub
- )
-options=(!strip)
-
-build() {
- cd "${srcdir}/"
- #rm PKGBUILD .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-$pkgrel-$CARCH$PKGEXT
- rm PKGBUILD .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-21-$CARCH$PKGEXT
- # put actions for package modifications below this line
-
- rm -v boot/grub/menu.lst sbin/install-grub
-}
-
-package() {
- cd ${srcdir}
- cp -a ./* ${pkgdir}
-
- install -D -m644 menu.lst $pkgdir/boot/grub/menu.lst
- install -D -m755 install-grub $pkgdir/sbin/install-grub
-
- rm -v menu.lst install-grub ${pkgdir}/menu.lst ${pkgdir}/install-grub
-
-}
-
-
-# vim:set ts=2 sw=2 et:
diff --git a/libre/grub/040_all_grub-0.96-nxstack.patch b/libre/grub/040_all_grub-0.96-nxstack.patch
deleted file mode 100644
index 121941c75..000000000
--- a/libre/grub/040_all_grub-0.96-nxstack.patch
+++ /dev/null
@@ -1,623 +0,0 @@
-Fix NX segfaulting on amd64.
-
-Patch by Peter Jones.
-
-http://lists.gnu.org/archive/html/bug-grub/2005-03/msg00011.html
-
---- grub-0.97/grub/asmstub.c
-+++ grub-0.97/grub/asmstub.c
-@@ -42,6 +42,7 @@
- #include <sys/time.h>
- #include <termios.h>
- #include <signal.h>
-+#include <sys/mman.h>
-
- #ifdef __linux__
- # include <sys/ioctl.h> /* ioctl */
-@@ -79,7 +80,7 @@
- struct apm_info apm_bios_info;
-
- /* Emulation requirements. */
--char *grub_scratch_mem = 0;
-+void *grub_scratch_mem = 0;
-
- struct geometry *disks = 0;
-
-@@ -103,14 +104,62 @@
- static unsigned int serial_speed;
- #endif /* SIMULATE_SLOWNESS_OF_SERIAL */
-
-+/* This allocates page-aligned storage of the specified size, which must be
-+ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE)
-+ */
-+#ifdef __linux__
-+static void *
-+grub_mmap_alloc(size_t len)
-+{
-+ int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE|MAP_EXECUTABLE;
-+
-+#ifdef MAP_32BIT
-+ mmap_flags |= MAP_32BIT;
-+#endif
-+ /* Mark the simulated stack executable, as GCC uses stack trampolines
-+ * to implement nested functions. */
-+ return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0);
-+}
-+#else /* !defined(__linux__) */
-+static void *
-+grub_mmap_alloc(size_t len)
-+{
-+ int fd = 0, offset = 0, ret = 0;
-+ void *pa = MAP_FAILED;
-+ char template[] = "/tmp/grub_mmap_alloc_XXXXXX";
-+ errno_t e;
-+
-+ fd = mkstemp(template);
-+ if (fd < 0)
-+ return pa;
-+
-+ unlink(template);
-+
-+ ret = ftruncate(fd, len);
-+ if (ret < 0)
-+ return pa;
-+
-+ /* Mark the simulated stack executable, as GCC uses stack trampolines
-+ * to implement nested functions. */
-+ pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC,
-+ MAP_PRIVATE|MAP_EXECUTABLE, fd, offset);
-+
-+ e = errno;
-+ close(fd);
-+ errno = e;
-+ return pa;
-+}
-+#endif /* defined(__linux__) */
-+
- /* The main entry point into this mess. */
- int
- grub_stage2 (void)
- {
- /* These need to be static, because they survive our stack transitions. */
- static int status = 0;
-- static char *realstack;
-- char *scratch, *simstack;
-+ static void *realstack;
-+ void *simstack_alloc_base, *simstack;
-+ size_t simstack_size, page_size;
- int i;
-
- /* We need a nested function so that we get a clean stack frame,
-@@ -140,9 +189,35 @@
- }
-
- assert (grub_scratch_mem == 0);
-- scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15);
-- assert (scratch);
-- grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4);
-+
-+ /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and
-+ * make sure the memory is aligned to a multiple of the system's
-+ * page size */
-+ page_size = sysconf (_SC_PAGESIZE);
-+ simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15);
-+ if (simstack_size % page_size)
-+ {
-+ /* If we're not on a page_size boundary, round up to the next one */
-+ simstack_size &= ~(page_size-1);
-+ simstack_size += page_size;
-+ }
-+
-+ /* Add one for a PROT_NONE boundary page at each end. */
-+ simstack_size += 2 * page_size;
-+
-+ simstack_alloc_base = grub_mmap_alloc(simstack_size);
-+ assert (simstack_alloc_base != MAP_FAILED);
-+
-+ /* mark pages above and below our simstack area as innaccessable.
-+ * If the implementation we're using doesn't support that, then the
-+ * new protection modes are undefined. It's safe to just ignore
-+ * them, though. It'd be nice if we knew that we'd get a SEGV for
-+ * touching the area, but that's all. it'd be nice to have. */
-+ mprotect (simstack_alloc_base, page_size, PROT_NONE);
-+ mprotect ((void *)((unsigned long)simstack_alloc_base +
-+ simstack_size - page_size), page_size, PROT_NONE);
-+
-+ grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size);
-
- /* FIXME: simulate the memory holes using mprot, if available. */
-
-@@ -215,7 +290,7 @@
- device_map = 0;
- free (disks);
- disks = 0;
-- free (scratch);
-+ munmap(simstack_alloc_base, simstack_size);
- grub_scratch_mem = 0;
-
- if (serial_device)
---- grub-0.97/stage2/builtins.c
-+++ grub-0.97/stage2/builtins.c
-@@ -131,63 +131,98 @@
- }
-
-
-+/* blocklist_read_helper nee disk_read_blocklist_func was a nested
-+ * function, to which pointers were taken and exposed globally. Even
-+ * in the GNU-C nested functions extension, they have local linkage,
-+ * and aren't guaranteed to be accessable *at all* outside of their
-+ * containing scope.
-+ *
-+ * Above and beyond all of that, the variables within blocklist_func_context
-+ * are originally local variables, with local (not even static) linkage,
-+ * from within blocklist_func. These were each referenced by
-+ * disk_read_blocklist_func, which is only called from other functions
-+ * through a globally scoped pointer.
-+ *
-+ * The documentation in GCC actually uses the words "all hell will break
-+ * loose" to describe this scenario.
-+ *
-+ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn
-+ * about it (possibly because of the scoping madness?)
-+ */
-+
-+static struct {
-+ int start_sector;
-+ int num_sectors;
-+ int num_entries;
-+ int last_length;
-+} blocklist_func_context = {
-+ .start_sector = 0,
-+ .num_sectors = 0,
-+ .num_entries = 0,
-+ .last_length = 0
-+};
-+
-+/* Collect contiguous blocks into one entry as many as possible,
-+ and print the blocklist notation on the screen. */
-+static void
-+blocklist_read_helper (int sector, int offset, int length)
-+{
-+ int *start_sector = &blocklist_func_context.start_sector;
-+ int *num_sectors = &blocklist_func_context.num_sectors;
-+ int *num_entries = &blocklist_func_context.num_entries;
-+ int *last_length = &blocklist_func_context.last_length;
-+
-+ if (*num_sectors > 0)
-+ {
-+ if (*start_sector + *num_sectors == sector
-+ && offset == 0 && *last_length == SECTOR_SIZE)
-+ {
-+ *num_sectors++;
-+ *last_length = length;
-+ return;
-+ }
-+ else
-+ {
-+ if (*last_length == SECTOR_SIZE)
-+ grub_printf ("%s%d+%d", *num_entries ? "," : "",
-+ *start_sector - part_start, *num_sectors);
-+ else if (*num_sectors > 1)
-+ grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "",
-+ *start_sector - part_start, *num_sectors-1,
-+ *start_sector + *num_sectors-1 - part_start,
-+ *last_length);
-+ else
-+ grub_printf ("%s%d[0-%d]", *num_entries ? "," : "",
-+ *start_sector - part_start, *last_length);
-+ *num_entries++;
-+ *num_sectors = 0;
-+ }
-+ }
-+
-+ if (offset > 0)
-+ {
-+ grub_printf("%s%d[%d-%d]", *num_entries ? "," : "",
-+ sector-part_start, offset, offset+length);
-+ *num_entries++;
-+ }
-+ else
-+ {
-+ *start_sector = sector;
-+ *num_sectors = 1;
-+ *last_length = length;
-+ }
-+}
-+
- /* blocklist */
- static int
- blocklist_func (char *arg, int flags)
- {
- char *dummy = (char *) RAW_ADDR (0x100000);
-- int start_sector;
-- int num_sectors = 0;
-- int num_entries = 0;
-- int last_length = 0;
--
-- auto void disk_read_blocklist_func (int sector, int offset, int length);
--
-- /* Collect contiguous blocks into one entry as many as possible,
-- and print the blocklist notation on the screen. */
-- auto void disk_read_blocklist_func (int sector, int offset, int length)
-- {
-- if (num_sectors > 0)
-- {
-- if (start_sector + num_sectors == sector
-- && offset == 0 && last_length == SECTOR_SIZE)
-- {
-- num_sectors++;
-- last_length = length;
-- return;
-- }
-- else
-- {
-- if (last_length == SECTOR_SIZE)
-- grub_printf ("%s%d+%d", num_entries ? "," : "",
-- start_sector - part_start, num_sectors);
-- else if (num_sectors > 1)
-- grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "",
-- start_sector - part_start, num_sectors-1,
-- start_sector + num_sectors-1 - part_start,
-- last_length);
-- else
-- grub_printf ("%s%d[0-%d]", num_entries ? "," : "",
-- start_sector - part_start, last_length);
-- num_entries++;
-- num_sectors = 0;
-- }
-- }
--
-- if (offset > 0)
-- {
-- grub_printf("%s%d[%d-%d]", num_entries ? "," : "",
-- sector-part_start, offset, offset+length);
-- num_entries++;
-- }
-- else
-- {
-- start_sector = sector;
-- num_sectors = 1;
-- last_length = length;
-- }
-- }
-
-+ int *start_sector = &blocklist_func_context.start_sector;
-+ int *num_sectors = &blocklist_func_context.num_sectors;
-+ int *num_entries = &blocklist_func_context.num_entries;
-+
- /* Open the file. */
- if (! grub_open (arg))
- return 1;
-@@ -204,15 +241,15 @@
- grub_printf (")");
-
- /* Read in the whole file to DUMMY. */
-- disk_read_hook = disk_read_blocklist_func;
-+ disk_read_hook = blocklist_read_helper;
- if (! grub_read (dummy, -1))
- goto fail;
-
- /* The last entry may not be printed yet. Don't check if it is a
- * full sector, since it doesn't matter if we read too much. */
-- if (num_sectors > 0)
-- grub_printf ("%s%d+%d", num_entries ? "," : "",
-- start_sector - part_start, num_sectors);
-+ if (*num_sectors > 0)
-+ grub_printf ("%s%d+%d", *num_entries ? "," : "",
-+ *start_sector - part_start, *num_sectors);
-
- grub_printf ("\n");
-
-@@ -1868,6 +1905,77 @@
-
-
- /* install */
-+static struct {
-+ int saved_sector;
-+ int installaddr;
-+ int installlist;
-+ char *stage2_first_buffer;
-+} install_func_context = {
-+ .saved_sector = 0,
-+ .installaddr = 0,
-+ .installlist = 0,
-+ .stage2_first_buffer = NULL,
-+};
-+
-+/* Save the first sector of Stage2 in STAGE2_SECT. */
-+/* Formerly disk_read_savesect_func with local scope inside install_func */
-+static void
-+install_savesect_helper(int sector, int offset, int length)
-+{
-+ if (debug)
-+ printf ("[%d]", sector);
-+
-+ /* ReiserFS has files which sometimes contain data not aligned
-+ on sector boundaries. Returning an error is better than
-+ silently failing. */
-+ if (offset != 0 || length != SECTOR_SIZE)
-+ errnum = ERR_UNALIGNED;
-+
-+ install_func_context.saved_sector = sector;
-+}
-+
-+/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and INSTALLSECT. */
-+/* Formerly disk_read_blocklist_func with local scope inside install_func */
-+static void
-+install_blocklist_helper (int sector, int offset, int length)
-+{
-+ int *installaddr = &install_func_context.installaddr;
-+ int *installlist = &install_func_context.installlist;
-+ char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
-+ /* Was the last sector full? */
-+ static int last_length = SECTOR_SIZE;
-+
-+ if (debug)
-+ printf("[%d]", sector);
-+
-+ if (offset != 0 || last_length != SECTOR_SIZE)
-+ {
-+ /* We found a non-sector-aligned data block. */
-+ errnum = ERR_UNALIGNED;
-+ return;
-+ }
-+
-+ last_length = length;
-+
-+ if (*((unsigned long *) (*installlist - 4))
-+ + *((unsigned short *) *installlist) != sector
-+ || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4)
-+ {
-+ *installlist -= 8;
-+
-+ if (*((unsigned long *) (*installlist - 8)))
-+ errnum = ERR_WONT_FIT;
-+ else
-+ {
-+ *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4);
-+ *((unsigned long *) (*installlist - 4)) = sector;
-+ }
-+ }
-+
-+ *((unsigned short *) *installlist) += 1;
-+ *installaddr += 512;
-+}
-+
- static int
- install_func (char *arg, int flags)
- {
-@@ -1875,8 +1983,12 @@
- char *stage1_buffer = (char *) RAW_ADDR (0x100000);
- char *stage2_buffer = stage1_buffer + SECTOR_SIZE;
- char *old_sect = stage2_buffer + SECTOR_SIZE;
-- char *stage2_first_buffer = old_sect + SECTOR_SIZE;
-- char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE;
-+ /* stage2_first_buffer used to be defined as:
-+ * char *stage2_first_buffer = old_sect + SECTOR_SIZE; */
-+ char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
-+ /* and stage2_second_buffer was:
-+ * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */
-+ char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE;
- /* XXX: Probably SECTOR_SIZE is reasonable. */
- char *config_filename = stage2_second_buffer + SECTOR_SIZE;
- char *dummy = config_filename + SECTOR_SIZE;
-@@ -1885,10 +1997,11 @@
- int src_drive, src_partition, src_part_start;
- int i;
- struct geometry dest_geom, src_geom;
-- int saved_sector;
-+ int *saved_sector = &install_func_context.saved_sector;
- int stage2_first_sector, stage2_second_sector;
- char *ptr;
-- int installaddr, installlist;
-+ int *installaddr = &install_func_context.installaddr;
-+ int *installlist = &install_func_context.installlist;
- /* Point to the location of the name of a configuration file in Stage 2. */
- char *config_file_location;
- /* If FILE is a Stage 1.5? */
-@@ -1897,67 +2010,13 @@
- int is_open = 0;
- /* If LBA is forced? */
- int is_force_lba = 0;
-- /* Was the last sector full? */
-- int last_length = SECTOR_SIZE;
--
-+
-+ *stage2_first_buffer = old_sect + SECTOR_SIZE;
- #ifdef GRUB_UTIL
- /* If the Stage 2 is in a partition mounted by an OS, this will store
- the filename under the OS. */
- char *stage2_os_file = 0;
- #endif /* GRUB_UTIL */
--
-- auto void disk_read_savesect_func (int sector, int offset, int length);
-- auto void disk_read_blocklist_func (int sector, int offset, int length);
--
-- /* Save the first sector of Stage2 in STAGE2_SECT. */
-- auto void disk_read_savesect_func (int sector, int offset, int length)
-- {
-- if (debug)
-- printf ("[%d]", sector);
--
-- /* ReiserFS has files which sometimes contain data not aligned
-- on sector boundaries. Returning an error is better than
-- silently failing. */
-- if (offset != 0 || length != SECTOR_SIZE)
-- errnum = ERR_UNALIGNED;
--
-- saved_sector = sector;
-- }
--
-- /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
-- INSTALLSECT. */
-- auto void disk_read_blocklist_func (int sector, int offset, int length)
-- {
-- if (debug)
-- printf("[%d]", sector);
--
-- if (offset != 0 || last_length != SECTOR_SIZE)
-- {
-- /* We found a non-sector-aligned data block. */
-- errnum = ERR_UNALIGNED;
-- return;
-- }
--
-- last_length = length;
--
-- if (*((unsigned long *) (installlist - 4))
-- + *((unsigned short *) installlist) != sector
-- || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4)
-- {
-- installlist -= 8;
--
-- if (*((unsigned long *) (installlist - 8)))
-- errnum = ERR_WONT_FIT;
-- else
-- {
-- *((unsigned short *) (installlist + 2)) = (installaddr >> 4);
-- *((unsigned long *) (installlist - 4)) = sector;
-- }
-- }
--
-- *((unsigned short *) installlist) += 1;
-- installaddr += 512;
-- }
-
- /* First, check the GNU-style long option. */
- while (1)
-@@ -1987,10 +2049,10 @@
- addr = skip_to (0, file);
-
- /* Get the installation address. */
-- if (! safe_parse_maxint (&addr, &installaddr))
-+ if (! safe_parse_maxint (&addr, installaddr))
- {
- /* ADDR is not specified. */
-- installaddr = 0;
-+ *installaddr = 0;
- ptr = addr;
- errnum = 0;
- }
-@@ -2084,17 +2146,17 @@
- = (dest_drive & BIOS_FLAG_FIXED_DISK);
-
- /* Read the first sector of Stage 2. */
-- disk_read_hook = disk_read_savesect_func;
-- if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
-+ disk_read_hook = install_savesect_helper;
-+ if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
- goto fail;
-
-- stage2_first_sector = saved_sector;
-+ stage2_first_sector = *saved_sector;
-
- /* Read the second sector of Stage 2. */
- if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE)
- goto fail;
-
-- stage2_second_sector = saved_sector;
-+ stage2_second_sector = *saved_sector;
-
- /* Check for the version of Stage 2. */
- if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS))
-@@ -2110,27 +2172,27 @@
-
- /* If INSTALLADDR is not specified explicitly in the command-line,
- determine it by the Stage 2 id. */
-- if (! installaddr)
-+ if (! *installaddr)
- {
- if (! is_stage1_5)
- /* Stage 2. */
-- installaddr = 0x8000;
-+ *installaddr = 0x8000;
- else
- /* Stage 1.5. */
-- installaddr = 0x2000;
-+ *installaddr = 0x2000;
- }
-
- *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR))
- = stage2_first_sector;
- *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS))
-- = installaddr;
-+ = *installaddr;
- *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT))
-- = installaddr >> 4;
-+ = *installaddr >> 4;
-
-- i = (int) stage2_first_buffer + SECTOR_SIZE - 4;
-+ i = (int) *stage2_first_buffer + SECTOR_SIZE - 4;
- while (*((unsigned long *) i))
- {
-- if (i < (int) stage2_first_buffer
-+ if (i < (int) *stage2_first_buffer
- || (*((int *) (i - 4)) & 0x80000000)
- || *((unsigned short *) i) >= 0xA00
- || *((short *) (i + 2)) == 0)
-@@ -2144,13 +2206,13 @@
- i -= 8;
- }
-
-- installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4;
-- installaddr += SECTOR_SIZE;
-+ *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4;
-+ *installaddr += SECTOR_SIZE;
-
- /* Read the whole of Stage2 except for the first sector. */
- grub_seek (SECTOR_SIZE);
-
-- disk_read_hook = disk_read_blocklist_func;
-+ disk_read_hook = install_blocklist_helper;
- if (! grub_read (dummy, -1))
- goto fail;
-
-@@ -2233,7 +2295,7 @@
- /* Skip the first sector. */
- grub_seek (SECTOR_SIZE);
-
-- disk_read_hook = disk_read_savesect_func;
-+ disk_read_hook = install_savesect_helper;
- if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE)
- goto fail;
-
-@@ -2303,7 +2365,7 @@
- else
- #endif /* GRUB_UTIL */
- {
-- if (! devwrite (saved_sector - part_start, 1, stage2_buffer))
-+ if (! devwrite (*saved_sector - part_start, 1, stage2_buffer))
- goto fail;
- }
- }
-@@ -2325,7 +2387,7 @@
- goto fail;
- }
-
-- if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
-+ if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
- {
- fclose (fp);
- errnum = ERR_WRITE;
-@@ -2352,7 +2414,7 @@
- goto fail;
-
- if (! devwrite (stage2_first_sector - src_part_start, 1,
-- stage2_first_buffer))
-+ *stage2_first_buffer))
- goto fail;
-
- if (! devwrite (stage2_second_sector - src_part_start, 1,
---- grub-0.97/stage2/shared.h
-+++ grub-0.97/stage2/shared.h
-@@ -36,8 +36,8 @@
-
- /* Maybe redirect memory requests through grub_scratch_mem. */
- #ifdef GRUB_UTIL
--extern char *grub_scratch_mem;
--# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem)
-+extern void *grub_scratch_mem;
-+# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem)
- # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4)
- #else
- # define RAW_ADDR(x) (x)
diff --git a/libre/grub/05-grub-0.97-initrdaddr.diff b/libre/grub/05-grub-0.97-initrdaddr.diff
deleted file mode 100644
index ccf5f3e54..000000000
--- a/libre/grub/05-grub-0.97-initrdaddr.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- grub-0.96/stage2/boot.c
-+++ grub-0.96/stage2/boot.c
-@@ -824,8 +824,11 @@
- moveto = (mbi.mem_upper + 0x400) << 10;
-
- moveto = (moveto - len) & 0xfffff000;
-- max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203
-- ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS);
-+ max_addr = LINUX_INITRD_MAX_ADDRESS;
-+ if (lh->header == LINUX_MAGIC_SIGNATURE &&
-+ lh->version >= 0x0203 &&
-+ lh->initrd_addr_max < max_addr)
-+ max_addr = lh->initrd_addr_max;
- if (moveto + len >= max_addr)
- moveto = (max_addr - len) & 0xfffff000;
-
diff --git a/libre/grub/ext4.patch b/libre/grub/ext4.patch
deleted file mode 100644
index 8a2f9bdb0..000000000
--- a/libre/grub/ext4.patch
+++ /dev/null
@@ -1,263 +0,0 @@
-diff -ruNp grub-0.97/stage2/fsys_ext2fs.c grub-0.97-patch/stage2/fsys_ext2fs.c
---- grub-0.97/stage2/fsys_ext2fs.c 2004-08-08 20:19:18.000000000 +0200
-+++ grub-0.97-patch/stage2/fsys_ext2fs.c 2007-12-29 16:25:19.000000000
-+0100
-@@ -51,6 +51,9 @@ typedef unsigned int __u32;
- #define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1)
- #define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1)
-
-+/* Inode flags */
-+#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
-+
- /* include/linux/ext2_fs.h */
- struct ext2_super_block
- {
-@@ -191,6 +194,42 @@ struct ext2_dir_entry
- #define EXT2_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT2_DIR_ROUND) & \
- ~EXT2_DIR_ROUND)
-
-+/* linux/ext4_fs_extents.h */
-+/*
-+ * This is the extent on-disk structure.
-+ * It's used at the bottom of the tree.
-+ */
-+struct ext4_extent {
-+ __u32 ee_block; /* first logical block extent covers */
-+ __u16 ee_len; /* number of blocks covered by extent */
-+ __u16 ee_start_hi; /* high 16 bits of physical block */
-+ __u32 ee_start; /* low 32 bits of physical block */
-+};
-+
-+/*
-+ * This is index on-disk structure.
-+ * It's used at all the levels except the bottom.
-+ */
-+struct ext4_extent_idx {
-+ __u32 ei_block; /* index covers logical blocks from 'block' */
-+ __u32 ei_leaf; /* pointer to the physical block of the next *
-+ * level. leaf or next index could be there */
-+ __u16 ei_leaf_hi; /* high 16 bits of physical block */
-+ __u16 ei_unused;
-+};
-+
-+/*
-+ * Each block (leaves and indexes), even inode-stored has header.
-+ */
-+struct ext4_extent_header {
-+ __u16 eh_magic; /* probably will support different formats */
-+ __u16 eh_entries; /* number of valid entries */
-+ __u16 eh_max; /* capacity of store in entries */
-+ __u16 eh_depth; /* has tree real underlying blocks? */
-+ __u32 eh_generation; /* generation of the tree */
-+};
-+
-+#define EXT4_EXT_MAGIC 0xf30a
-
- /* ext2/super.c */
- #define log2(n) ffz(~(n))
-@@ -279,6 +318,26 @@ ext2_rdfsb (int fsblock, int buffer)
- EXT2_BLOCK_SIZE (SUPERBLOCK), (char *) buffer);
- }
-
-+/* Walk through extents index tree to find the good leaf */
-+static struct ext4_extent_header *
-+ext4_recurse_extent_index(struct ext4_extent_header *extent_block, int logical_block)
-+{
-+ int i;
-+ struct ext4_extent_idx *index = (struct ext4_extent_idx *) (extent_block + 1);
-+ if (extent_block->eh_magic != EXT4_EXT_MAGIC)
-+ return NULL;
-+ if (extent_block->eh_depth == 0)
-+ return extent_block;
-+ for (i = 0; i < extent_block->eh_entries; i++)
-+ {
-+ if (logical_block < index[i].ei_block)
-+ break;
-+ }
-+ if (i == 0 || !ext2_rdfsb(index[i-1].ei_leaf, DATABLOCK1))
-+ return NULL;
-+ return (ext4_recurse_extent_index((struct ext4_extent_header *) DATABLOCK1, logical_block));
-+}
-+
- /* from
- ext2/inode.c:ext2_bmap()
- */
---- grub-0.97/stage2/fsys_ext2fs.c~ 2008-12-28 20:19:00.000000000 +0100
-+++ grub-0.97/stage2/fsys_ext2fs.c 2008-12-28 20:19:00.000000000 +0100
-@@ -366,83 +366,106 @@
- }
- printf ("logical block %d\n", logical_block);
- #endif /* E2DEBUG */
--
-- /* if it is directly pointed to by the inode, return that physical addr */
-- if (logical_block < EXT2_NDIR_BLOCKS)
-- {
--#ifdef E2DEBUG
-- printf ("returning %d\n", (unsigned char *) (INODE->i_block[logical_block]));
-- printf ("returning %d\n", INODE->i_block[logical_block]);
--#endif /* E2DEBUG */
-- return INODE->i_block[logical_block];
-- }
-- /* else */
-- logical_block -= EXT2_NDIR_BLOCKS;
-- /* try the indirect block */
-- if (logical_block < EXT2_ADDR_PER_BLOCK (SUPERBLOCK))
-+ /* standard ext2 inode */
-+ if (!(INODE->i_flags & EXT4_EXTENTS_FL))
- {
-- if (mapblock1 != 1
-- && !ext2_rdfsb (INODE->i_block[EXT2_IND_BLOCK], DATABLOCK1))
-- {
-- errnum = ERR_FSYS_CORRUPT;
-- return -1;
-- }
-- mapblock1 = 1;
-- return ((__u32 *) DATABLOCK1)[logical_block];
-- }
-- /* else */
-- logical_block -= EXT2_ADDR_PER_BLOCK (SUPERBLOCK);
-- /* now try the double indirect block */
-- if (logical_block < (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2)))
-- {
-- int bnum;
-- if (mapblock1 != 2
-- && !ext2_rdfsb (INODE->i_block[EXT2_DIND_BLOCK], DATABLOCK1))
-- {
-- errnum = ERR_FSYS_CORRUPT;
-- return -1;
-- }
-- mapblock1 = 2;
-- if ((bnum = (((__u32 *) DATABLOCK1)
-- [logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)]))
-- != mapblock2
-- && !ext2_rdfsb (bnum, DATABLOCK2))
-- {
-- errnum = ERR_FSYS_CORRUPT;
-- return -1;
-- }
-- mapblock2 = bnum;
-+ /* if it is directly pointed to by the inode, return that physical addr */
-+ if (logical_block < EXT2_NDIR_BLOCKS)
-+ {
-+#ifdef E2DEBUG
-+ printf ("returning %d\n", (unsigned char *) (INODE->i_block[logical_block]));
-+ printf ("returning %d\n", INODE->i_block[logical_block]);
-+#endif /* E2DEBUG */
-+ return INODE->i_block[logical_block];
-+ }
-+ /* else */
-+ logical_block -= EXT2_NDIR_BLOCKS;
-+ /* try the indirect block */
-+ if (logical_block < EXT2_ADDR_PER_BLOCK (SUPERBLOCK))
-+ {
-+ if (mapblock1 != 1
-+ && !ext2_rdfsb (INODE->i_block[EXT2_IND_BLOCK], DATABLOCK1))
-+ {
-+ errnum = ERR_FSYS_CORRUPT;
-+ return -1;
-+ }
-+ mapblock1 = 1;
-+ return ((__u32 *) DATABLOCK1)[logical_block];
-+ }
-+ /* else */
-+ logical_block -= EXT2_ADDR_PER_BLOCK (SUPERBLOCK);
-+ /* now try the double indirect block */
-+ if (logical_block < (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2)))
-+ {
-+ int bnum;
-+ if (mapblock1 != 2
-+ && !ext2_rdfsb (INODE->i_block[EXT2_DIND_BLOCK], DATABLOCK1))
-+ {
-+ errnum = ERR_FSYS_CORRUPT;
-+ return -1;
-+ }
-+ mapblock1 = 2;
-+ if ((bnum = (((__u32 *) DATABLOCK1)
-+ [logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)]))
-+ != mapblock2
-+ && !ext2_rdfsb (bnum, DATABLOCK2))
-+ {
-+ errnum = ERR_FSYS_CORRUPT;
-+ return -1;
-+ }
-+ mapblock2 = bnum;
-+ return ((__u32 *) DATABLOCK2)
-+ [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
-+ }
-+ /* else */
-+ mapblock2 = -1;
-+ logical_block -= (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2));
-+ if (mapblock1 != 3
-+ && !ext2_rdfsb (INODE->i_block[EXT2_TIND_BLOCK], DATABLOCK1))
-+ {
-+ errnum = ERR_FSYS_CORRUPT;
-+ return -1;
-+ }
-+ mapblock1 = 3;
-+ if (!ext2_rdfsb (((__u32 *) DATABLOCK1)
-+ [logical_block >> (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)
-+ * 2)],
-+ DATABLOCK2))
-+ {
-+ errnum = ERR_FSYS_CORRUPT;
-+ return -1;
-+ }
-+ if (!ext2_rdfsb (((__u32 *) DATABLOCK2)
-+ [(logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK))
-+ & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)],
-+ DATABLOCK2))
-+ {
-+ errnum = ERR_FSYS_CORRUPT;
-+ return -1;
-+ }
- return ((__u32 *) DATABLOCK2)
-- [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
-- }
-- /* else */
-- mapblock2 = -1;
-- logical_block -= (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2));
-- if (mapblock1 != 3
-- && !ext2_rdfsb (INODE->i_block[EXT2_TIND_BLOCK], DATABLOCK1))
-- {
-- errnum = ERR_FSYS_CORRUPT;
-- return -1;
-+ [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
- }
-- mapblock1 = 3;
-- if (!ext2_rdfsb (((__u32 *) DATABLOCK1)
-- [logical_block >> (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)
-- * 2)],
-- DATABLOCK2))
-- {
-- errnum = ERR_FSYS_CORRUPT;
-- return -1;
-- }
-- if (!ext2_rdfsb (((__u32 *) DATABLOCK2)
-- [(logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK))
-- & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)],
-- DATABLOCK2))
-+ /* inode is in extents format */
-+ else
- {
-+ int i;
-+ struct ext4_extent_header *extent_hdr = ext4_recurse_extent_index((struct ext4_extent_header *) INODE->i_block, logical_block);
-+ struct ext4_extent *extent = (struct ext4_extent *) (extent_hdr + 1);
-+ if ( extent_hdr == NULL || extent_hdr->eh_magic != EXT4_EXT_MAGIC)
-+ {
-+ errnum = ERR_FSYS_CORRUPT;
-+ return -1;
-+ }
-+ for (i = 0; i<extent_hdr->eh_entries; i++)
-+ {
-+ if (extent[i].ee_block <= logical_block && logical_block < extent[i].ee_block + extent[i].ee_len && !(extent[i].ee_len>>15))
-+ return (logical_block - extent[i].ee_block + extent[i].ee_start);
-+ }
-+ /* We should not arrive here */
- errnum = ERR_FSYS_CORRUPT;
- return -1;
- }
-- return ((__u32 *) DATABLOCK2)
-- [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
- }
-
- /* preconditions: all preconds of ext2fs_block_map */
diff --git a/libre/grub/grub-0.97-gpt.patch b/libre/grub/grub-0.97-gpt.patch
deleted file mode 100644
index 7b1a55cd8..000000000
--- a/libre/grub/grub-0.97-gpt.patch
+++ /dev/null
@@ -1,315 +0,0 @@
-diff -ruBbd --unidirectional-new-file grub-0.96/stage2/builtins.c grub-0.96-patched/stage2/builtins.c
---- grub-0.96/stage2/builtins.c 2004-06-20 09:33:04.000000000 -0400
-+++ grub-0.96-patched/stage2/builtins.c 2007-01-04 13:56:06.000000000 -0500
-@@ -1229,14 +1229,15 @@
- for (drive = 0x80; drive < 0x88; drive++)
- {
- unsigned long part = 0xFFFFFF;
-- unsigned long start, len, offset, ext_offset;
-- int type, entry;
-+ unsigned long start, len, offset, ext_offset, gpt_offset;
-+ int type, entry, gpt_count, gpt_size;
- char buf[SECTOR_SIZE];
-
- current_drive = drive;
- while (next_partition (drive, 0xFFFFFF, &part, &type,
- &start, &len, &offset, &entry,
-- &ext_offset, buf))
-+ &ext_offset, &gpt_offset,
-+ &gpt_count, &gpt_size, buf))
- {
- if (type != PC_SLICE_TYPE_NONE
- && ! IS_PC_SLICE_TYPE_BSD (type)
-@@ -2806,8 +2807,8 @@
- {
- int new_type;
- unsigned long part = 0xFFFFFF;
-- unsigned long start, len, offset, ext_offset;
-- int entry, type;
-+ unsigned long start, len, offset, ext_offset, gpt_offset;
-+ int entry, type, gpt_count, gpt_size;
- char mbr[512];
-
- /* Get the drive and the partition. */
-@@ -2844,7 +2845,14 @@
- /* Look for the partition. */
- while (next_partition (current_drive, 0xFFFFFF, &part, &type,
- &start, &len, &offset, &entry,
-- &ext_offset, mbr))
-+ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
-+ /* The partition may not be a GPT partition. */
-+ if (gpt_offset != 0)
-+ {
-+ errnum = ERR_BAD_ARGUMENT;
-+ return 1;
-+ }
-+
- {
- if (part == current_partition)
- {
-diff -ruBbd --unidirectional-new-file grub-0.96/stage2/disk_io.c grub-0.96-patched/stage2/disk_io.c
---- grub-0.96/stage2/disk_io.c 2004-05-23 12:35:24.000000000 -0400
-+++ grub-0.96-patched/stage2/disk_io.c 2007-01-04 14:01:08.000000000 -0500
-@@ -21,6 +21,7 @@
-
- #include <shared.h>
- #include <filesys.h>
-+#include <gpt.h>
-
- #ifdef SUPPORT_NETBOOT
- # define GRUB 1
-@@ -502,8 +503,8 @@
- set_partition_hidden_flag (int hidden)
- {
- unsigned long part = 0xFFFFFF;
-- unsigned long start, len, offset, ext_offset;
-- int entry, type;
-+ unsigned long start, len, offset, ext_offset, gpt_offset;
-+ int entry, type, gpt_count, gpt_size;
- char mbr[512];
-
- /* The drive must be a hard disk. */
-@@ -524,7 +525,14 @@
- /* Look for the partition. */
- while (next_partition (current_drive, 0xFFFFFF, &part, &type,
- &start, &len, &offset, &entry,
-- &ext_offset, mbr))
-+ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
-+ /* The partition may not be a GPT partition. */
-+ if (gpt_offset != 0)
-+ {
-+ errnum = ERR_BAD_ARGUMENT;
-+ return 1;
-+ }
-+
- {
- if (part == current_partition)
- {
-@@ -577,11 +585,14 @@
- unsigned long *partition, int *type,
- unsigned long *start, unsigned long *len,
- unsigned long *offset, int *entry,
-- unsigned long *ext_offset, char *buf)
-+ unsigned long *ext_offset,
-+ unsigned long *gpt_offset, int *gpt_count,
-+ int *gpt_size, char *buf)
- {
- /* Forward declarations. */
- auto int next_bsd_partition (void);
- auto int next_pc_slice (void);
-+ auto int next_gpt_slice(void);
-
- /* Get next BSD partition in current PC slice. */
- int next_bsd_partition (void)
-@@ -666,6 +677,40 @@
- return 0;
- }
-
-+ /* If this is a GPT partition table, read it as such. */
-+ if (*entry == -1 && *offset == 0 && PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_GPT)
-+ {
-+ struct grub_gpt_header *hdr = (struct grub_gpt_header *) buf;
-+
-+ /* Read in the GPT Partition table header. */
-+ if (! rawread (drive, 1, 0, SECTOR_SIZE, buf))
-+ return 0;
-+
-+ if (hdr->magic == GPT_HEADER_MAGIC && hdr->version == 0x10000)
-+ {
-+ /* Let gpt_offset point to the first entry in the GPT
-+ partition table. This can also be used by callers of
-+ next_partition to determine if a entry comes from a
-+ GPT partition table or not. */
-+ *gpt_offset = hdr->partitions;
-+ *gpt_count = hdr->maxpart;
-+ *gpt_size = hdr->partentry_size;
-+
-+ return next_gpt_slice();
-+ }
-+ else
-+ {
-+ /* This is not a valid header for a GPT partition table.
-+ Re-read the MBR or the boot sector of the extended
-+ partition. */
-+ if (! rawread (drive, *offset, 0, SECTOR_SIZE, buf))
-+ return 0;
-+ }
-+ }
-+
-+ /* Not a GPT partition. */
-+ *gpt_offset = 0;
-+
- /* Increase the entry number. */
- (*entry)++;
-
-@@ -710,6 +755,43 @@
- return 1;
- }
-
-+ /* Get the next GPT slice. */
-+ int next_gpt_slice (void)
-+ {
-+ struct grub_gpt_partentry *gptentry = (struct grub_gpt_partentry *) buf;
-+ /* Make GPT partitions show up as PC slices. */
-+ int pc_slice_no = (*partition & 0xFF0000) >> 16;
-+
-+ /* If this is the first time... */
-+ if (pc_slice_no == 0xFF)
-+ {
-+ pc_slice_no = -1;
-+ *entry = -1;
-+ }
-+
-+ do {
-+ (*entry)++;
-+
-+ if (*entry >= *gpt_count)
-+ {
-+ errnum = ERR_NO_PART;
-+ return 0;
-+ }
-+ /* Read in the GPT Partition table entry. */
-+ if (! rawread (drive, (*gpt_offset) + GPT_ENTRY_SECTOR (*gpt_size, *entry), GPT_ENTRY_INDEX (*gpt_size, *entry), *gpt_size, buf))
-+ return 0;
-+ } while (! (gptentry->type1 && gptentry->type2));
-+
-+ pc_slice_no++;
-+ *start = gptentry->start;
-+ *len = gptentry->end - gptentry->start + 1;
-+ *type = PC_SLICE_TYPE_EXT2FS;
-+ *entry = pc_slice_no;
-+ *partition = (*entry << 16) | 0xFFFF;
-+
-+ return 1;
-+ }
-+
- /* Start the body of this function. */
-
- #ifndef STAGE1_5
-@@ -717,6 +799,9 @@
- return 0;
- #endif
-
-+ if (*partition != 0xFFFFFF && *gpt_offset != 0)
-+ return next_gpt_slice ();
-+
- /* If previous partition is a BSD partition or a PC slice which
- contains BSD partitions... */
- if ((*partition != 0xFFFFFF && IS_PC_SLICE_TYPE_BSD (*type & 0xff))
-@@ -755,6 +840,9 @@
- unsigned long dest_partition = current_partition;
- unsigned long part_offset;
- unsigned long ext_offset;
-+ unsigned long gpt_offset;
-+ int gpt_count;
-+ int gpt_size;
- int entry;
- char buf[SECTOR_SIZE];
- int bsd_part, pc_slice;
-@@ -766,7 +854,8 @@
- int ret = next_partition (current_drive, dest_partition,
- &current_partition, &current_slice,
- &part_start, &part_length,
-- &part_offset, &entry, &ext_offset, buf);
-+ &part_offset, &entry, &ext_offset,
-+ &gpt_offset, &gpt_count, &gpt_size, buf);
- bsd_part = (current_partition >> 8) & 0xFF;
- pc_slice = current_partition >> 16;
- return ret;
-diff -ruBbd --unidirectional-new-file grub-0.96/stage2/gpt.h grub-0.96-patched/stage2/gpt.h
---- grub-0.96/stage2/gpt.h 1969-12-31 19:00:00.000000000 -0500
-+++ grub-0.96-patched/stage2/gpt.h 2007-01-04 13:52:14.000000000 -0500
-@@ -0,0 +1,68 @@
-+/*
-+ * GRUB -- GRand Unified Bootloader
-+ * Copyright (C) 2002,2005,2006 Free Software Foundation, Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#ifndef _GPT_H
-+#define _GPT_H
-+
-+typedef signed char grub_int8_t;
-+typedef signed short grub_int16_t;
-+typedef signed int grub_int32_t;
-+typedef signed long long int grub_int64_t;
-+typedef unsigned char grub_uint8_t;
-+typedef unsigned short grub_uint16_t;
-+typedef unsigned int grub_uint32_t;
-+typedef unsigned long long int grub_uint64_t;
-+
-+struct grub_gpt_header
-+{
-+ grub_uint64_t magic;
-+ grub_uint32_t version;
-+ grub_uint32_t headersize;
-+ grub_uint32_t crc32;
-+ grub_uint32_t unused1;
-+ grub_uint64_t primary;
-+ grub_uint64_t backup;
-+ grub_uint64_t start;
-+ grub_uint64_t end;
-+ grub_uint8_t guid[16];
-+ grub_uint64_t partitions;
-+ grub_uint32_t maxpart;
-+ grub_uint32_t partentry_size;
-+ grub_uint32_t partentry_crc32;
-+} __attribute__ ((packed));
-+
-+struct grub_gpt_partentry
-+{
-+ grub_uint64_t type1;
-+ grub_uint64_t type2;
-+ grub_uint8_t guid[16];
-+ grub_uint64_t start;
-+ grub_uint64_t end;
-+ grub_uint8_t attrib;
-+ char name[72];
-+} __attribute__ ((packed));
-+
-+#define GPT_HEADER_MAGIC 0x5452415020494645UL
-+
-+#define GPT_ENTRY_SECTOR(size,entry) \
-+ ((((entry) * (size) + 1) & ~(SECTOR_SIZE - 1)) >> SECTOR_BITS)
-+#define GPT_ENTRY_INDEX(size,entry) \
-+ ((((entry) * (size) + 1) & (SECTOR_SIZE - 1)) - 1)
-+
-+#endif /* _GPT_H */
-diff -ruBbd --unidirectional-new-file grub-0.96/stage2/pc_slice.h grub-0.96-patched/stage2/pc_slice.h
---- grub-0.96/stage2/pc_slice.h 2003-07-09 07:45:53.000000000 -0400
-+++ grub-0.96-patched/stage2/pc_slice.h 2007-01-04 13:52:14.000000000 -0500
-@@ -115,6 +115,7 @@
- #define PC_SLICE_TYPE_LINUX_EXTENDED 0x85
- #define PC_SLICE_TYPE_VSTAFS 0x9e
- #define PC_SLICE_TYPE_DELL_UTIL 0xde
-+#define PC_SLICE_TYPE_GPT 0xee
- #define PC_SLICE_TYPE_LINUX_RAID 0xfd
-
-
-diff -ruBbd --unidirectional-new-file grub-0.96/stage2/shared.h grub-0.96-patched/stage2/shared.h
---- grub-0.96/stage2/shared.h 2004-06-19 12:40:09.000000000 -0400
-+++ grub-0.96-patched/stage2/shared.h 2007-01-04 13:52:15.000000000 -0500
-@@ -934,7 +934,9 @@
- unsigned long *partition, int *type,
- unsigned long *start, unsigned long *len,
- unsigned long *offset, int *entry,
-- unsigned long *ext_offset, char *buf);
-+ unsigned long *ext_offset,
-+ unsigned long *gpt_offset, int *gpt_count,
-+ int *gpt_size, char *buf);
-
- /* Sets device to the one represented by the SAVED_* parameters. */
- int make_saved_active (void);
diff --git a/libre/grub/grub-0.97-ldflags-objcopy-remove-build-id.patch b/libre/grub/grub-0.97-ldflags-objcopy-remove-build-id.patch
deleted file mode 100644
index 2b7cc32d0..000000000
--- a/libre/grub/grub-0.97-ldflags-objcopy-remove-build-id.patch
+++ /dev/null
@@ -1,196 +0,0 @@
-diff --git a/Makefile.in b/Makefile.in
-index 6652366..ba058eb 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -112,6 +112,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
- LIBOBJS = @LIBOBJS@
- LIBS = @LIBS@
-+LOADER_LDFLAGS = @LOADER_LDFLAGS@
- LTLIBOBJS = @LTLIBOBJS@
- MAINT = @MAINT@
- MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-diff --git a/acinclude.m4 b/acinclude.m4
-index 368839c..32b3fa6 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -57,7 +57,7 @@ else
- fi
- grub_cv_prog_objcopy_absolute=yes
- for link_addr in 2000 8000 7C00; do
-- if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then :
-+ if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr -Wl,--build-id=none conftest.o -o conftest.exec]); then :
- else
- AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr])
- fi
-diff --git a/configure.ac b/configure.ac
-index bb9e1d9..9ac5c9f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -115,6 +115,9 @@ if test "x$ac_cv_prog_gcc" = xyes; then
- fi
- fi
-
-+LOADER_LDFLAGS="-Wl,--build-id=none"
-+AC_SUBST(LOADER_LDFLAGS)
-+
- AC_SUBST(STAGE1_CFLAGS)
- AC_SUBST(STAGE2_CFLAGS)
- AC_SUBST(GRUB_CFLAGS)
-diff --git a/docs/Makefile.in b/docs/Makefile.in
-index 3e2de4b..7b2c94d 100644
---- a/docs/Makefile.in
-+++ b/docs/Makefile.in
-@@ -131,6 +131,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
- LIBOBJS = @LIBOBJS@
- LIBS = @LIBS@
-+LOADER_LDFLAGS = @LOADER_LDFLAGS@
- LTLIBOBJS = @LTLIBOBJS@
- MAINT = @MAINT@
- MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-diff --git a/grub/Makefile.in b/grub/Makefile.in
-index 136c38f..7c23ebe 100644
---- a/grub/Makefile.in
-+++ b/grub/Makefile.in
-@@ -108,6 +108,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
- LIBOBJS = @LIBOBJS@
- LIBS = @LIBS@
-+LOADER_LDFLAGS = @LOADER_LDFLAGS@
- LTLIBOBJS = @LTLIBOBJS@
- MAINT = @MAINT@
- MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-diff --git a/lib/Makefile.in b/lib/Makefile.in
-index 3dae206..449e126 100644
---- a/lib/Makefile.in
-+++ b/lib/Makefile.in
-@@ -107,6 +107,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
- LIBOBJS = @LIBOBJS@
- LIBS = @LIBS@
-+LOADER_LDFLAGS = @LOADER_LDFLAGS@
- LTLIBOBJS = @LTLIBOBJS@
- MAINT = @MAINT@
- MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-diff --git a/netboot/Makefile.in b/netboot/Makefile.in
-index 75ac299..0275768 100644
---- a/netboot/Makefile.in
-+++ b/netboot/Makefile.in
-@@ -108,6 +108,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
- LIBOBJS = @LIBOBJS@
- LIBS = @LIBS@
-+LOADER_LDFLAGS = @LOADER_LDFLAGS@
- LTLIBOBJS = @LTLIBOBJS@
- MAINT = @MAINT@
- MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-diff --git a/stage1/Makefile.am b/stage1/Makefile.am
-index 0afc285..3d83356 100644
---- a/stage1/Makefile.am
-+++ b/stage1/Makefile.am
-@@ -5,7 +5,7 @@ CLEANFILES = $(nodist_pkglib_DATA)
-
- # We can't use builtins or standard includes.
- AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
--LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
-+LDFLAGS = $(LOADER_LDFLAGS) -nostdlib -Wl,-N,-Ttext,7C00
-
- noinst_PROGRAMS = stage1.exec
- stage1_exec_SOURCES = stage1.S stage1.h
-diff --git a/stage1/Makefile.in b/stage1/Makefile.in
-index 7134bdf..ee4477f 100644
---- a/stage1/Makefile.in
-+++ b/stage1/Makefile.in
-@@ -110,9 +110,10 @@ INSTALL_DATA = @INSTALL_DATA@
- INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
--LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
-+LDFLAGS = $(LOADER_LDFLAGS) -nostdlib -Wl,-N,-Ttext,7C00
- LIBOBJS = @LIBOBJS@
- LIBS = @LIBS@
-+LOADER_LDFLAGS = @LOADER_LDFLAGS@
- LTLIBOBJS = @LTLIBOBJS@
- MAINT = @MAINT@
- MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-diff --git a/stage2/Makefile.am b/stage2/Makefile.am
-index f8e6d42..ff6f347 100644
---- a/stage2/Makefile.am
-+++ b/stage2/Makefile.am
-@@ -55,11 +55,11 @@ noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
- endif
- MOSTLYCLEANFILES = $(noinst_PROGRAMS)
-
--PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
--START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
--NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
--PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
--START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
-+PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 $(LOADER_LDFLAGS)
-+START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000 $(LOADER_LDFLAGS)
-+NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0 $(LOADER_LDFLAGS)
-+PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
-+START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
-
- if NETBOOT_SUPPORT
- NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
-@@ -82,7 +82,7 @@ endif
- STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
- $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
-
--STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
-+STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 $(LOADER_LDFLAGS)
- STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
-
- # For stage2 target.
-diff --git a/stage2/Makefile.in b/stage2/Makefile.in
-index d0062bd..88b2038 100644
---- a/stage2/Makefile.in
-+++ b/stage2/Makefile.in
-@@ -355,6 +355,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
- LIBOBJS = @LIBOBJS@
- LIBS = @LIBS@
-+LOADER_LDFLAGS = @LOADER_LDFLAGS@
- LTLIBOBJS = @LTLIBOBJS@
- MAINT = @MAINT@
- MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-@@ -468,11 +469,11 @@ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
- @DISKLESS_SUPPORT_FALSE@noinst_DATA = pre_stage2 start start_eltorito
- @DISKLESS_SUPPORT_TRUE@noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless
- MOSTLYCLEANFILES = $(noinst_PROGRAMS)
--PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
--START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
--NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
--PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
--START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
-+PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 $(LOADER_LDFLAGS)
-+START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000 $(LOADER_LDFLAGS)
-+NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0 $(LOADER_LDFLAGS)
-+PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
-+START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
- @NETBOOT_SUPPORT_FALSE@NETBOOT_FLAGS =
- @NETBOOT_SUPPORT_TRUE@NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
- @SERIAL_SUPPORT_FALSE@SERIAL_FLAGS =
-@@ -482,7 +483,7 @@ START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
- STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
- $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
-
--STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
-+STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 $(LOADER_LDFLAGS)
- STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
-
- # For stage2 target.
-diff --git a/util/Makefile.in b/util/Makefile.in
-index e700cf7..cd3bf51 100644
---- a/util/Makefile.in
-+++ b/util/Makefile.in
-@@ -113,6 +113,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
- LIBOBJS = @LIBOBJS@
- LIBS = @LIBS@
-+LOADER_LDFLAGS = @LOADER_LDFLAGS@
- LTLIBOBJS = @LTLIBOBJS@
- MAINT = @MAINT@
- MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
diff --git a/libre/grub/grub-inode-size.patch b/libre/grub/grub-inode-size.patch
deleted file mode 100644
index f5ceb110b..000000000
--- a/libre/grub/grub-inode-size.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-diff -Naur grub-0.97-800/stage2/fsys_ext2fs.c grub-0.97-810/stage2/fsys_ext2fs.c
---- grub-0.97-800/stage2/fsys_ext2fs.c 2008-07-21 00:40:21.668879475 -0600
-+++ grub-0.97-810/stage2/fsys_ext2fs.c 2008-07-21 01:01:11.063953773 -0600
-@@ -79,7 +79,52 @@
- __u32 s_rev_level; /* Revision level */
- __u16 s_def_resuid; /* Default uid for reserved blocks */
- __u16 s_def_resgid; /* Default gid for reserved blocks */
-- __u32 s_reserved[235]; /* Padding to the end of the block */
-+ /*
-+ * These fields are for EXT2_DYNAMIC_REV superblocks only.
-+ *
-+ * Note: the difference between the compatible feature set and
-+ * the incompatible feature set is that if there is a bit set
-+ * in the incompatible feature set that the kernel doesn't
-+ * know about, it should refuse to mount the filesystem.
-+ *
-+ * e2fsck's requirements are more strict; if it doesn't know
-+ * about a feature in either the compatible or incompatible
-+ * feature set, it must abort and not try to meddle with
-+ * things it doesn't understand...
-+ */
-+ __u32 s_first_ino; /* First non-reserved inode */
-+ __u16 s_inode_size; /* size of inode structure */
-+ __u16 s_block_group_nr; /* block group # of this superblock */
-+ __u32 s_feature_compat; /* compatible feature set */
-+ __u32 s_feature_incompat; /* incompatible feature set */
-+ __u32 s_feature_ro_compat; /* readonly-compatible feature set */
-+ __u8 s_uuid[16]; /* 128-bit uuid for volume */
-+ char s_volume_name[16]; /* volume name */
-+ char s_last_mounted[64]; /* directory where last mounted */
-+ __u32 s_algorithm_usage_bitmap; /* For compression */
-+ /*
-+ * Performance hints. Directory preallocation should only
-+ * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
-+ */
-+ __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/
-+ __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */
-+ __u16 s_reserved_gdt_blocks;/* Per group table for online growth */
-+ /*
-+ * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
-+ */
-+ __u8 s_journal_uuid[16]; /* uuid of journal superblock */
-+ __u32 s_journal_inum; /* inode number of journal file */
-+ __u32 s_journal_dev; /* device number of journal file */
-+ __u32 s_last_orphan; /* start of list of inodes to delete */
-+ __u32 s_hash_seed[4]; /* HTREE hash seed */
-+ __u8 s_def_hash_version; /* Default hash version to use */
-+ __u8 s_jnl_backup_type; /* Default type of journal backup */
-+ __u16 s_reserved_word_pad;
-+ __u32 s_default_mount_opts;
-+ __u32 s_first_meta_bg; /* First metablock group */
-+ __u32 s_mkfs_time; /* When the filesystem was created */
-+ __u32 s_jnl_blocks[17]; /* Backup of the journal inode */
-+ __u32 s_reserved[172]; /* Padding to the end of the block */
- };
-
- struct ext2_group_desc
-@@ -218,6 +263,14 @@
- #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32))
- #define EXT2_ADDR_PER_BLOCK_BITS(s) (log2(EXT2_ADDR_PER_BLOCK(s)))
-
-+#define EXT2_GOOD_OLD_REV 0 /* The good old (original) format */
-+#define EXT2_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */
-+#define EXT2_GOOD_OLD_INODE_SIZE 128
-+#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
-+ EXT2_GOOD_OLD_INODE_SIZE : \
-+ (s)->s_inode_size)
-+#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
-+
- /* linux/ext2_fs.h */
- #define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10)
- /* kind of from ext2/super.c */
-@@ -553,7 +606,7 @@
- gdp = GROUP_DESC;
- ino_blk = gdp[desc].bg_inode_table +
- (((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group))
-- >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)));
-+ >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK)));
- #ifdef E2DEBUG
- printf ("inode table fsblock=%d\n", ino_blk);
- #endif /* E2DEBUG */
-@@ -565,13 +618,12 @@
- /* reset indirect blocks! */
- mapblock2 = mapblock1 = -1;
-
-- raw_inode = INODE +
-- ((current_ino - 1)
-- & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1));
-+ raw_inode = (struct ext2_inode *)((char *)INODE +
-+ ((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) *
-+ EXT2_INODE_SIZE (SUPERBLOCK));
- #ifdef E2DEBUG
- printf ("ipb=%d, sizeof(inode)=%d\n",
-- (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)),
-- sizeof (struct ext2_inode));
-+ EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK));
- printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode);
- printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE);
- for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode;
-
diff --git a/libre/grub/i2o.patch b/libre/grub/i2o.patch
deleted file mode 100644
index 2af846c90..000000000
--- a/libre/grub/i2o.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Only in grub-0.94/docs: grub.info
-Only in grub-0.94/docs: multiboot.info
-diff -ur grub-0.94/lib/device.c grub-0.94.new/lib/device.c
---- grub-0.94/lib/device.c 2004-05-07 04:50:36.375238696 +0200
-+++ grub-0.94.new/lib/device.c 2004-05-07 04:48:57.611253104 +0200
-@@ -419,6 +419,12 @@
- {
- sprintf (name, "/dev/rd/c%dd%d", controller, drive);
- }
-+
-+static void
-+get_i2o_disk_name (char *name, int unit)
-+{
-+ sprintf (name, "/dev/i2o/hd%c", unit + 'a');
-+}
- #endif
-
- /* Check if DEVICE can be read. If an error occurs, return zero,
-@@ -789,6 +795,26 @@
- }
- }
- }
-+
-+ /* I2O disks. */
-+ for (i = 0; i < 8; i++)
-+ {
-+ char name[16];
-+
-+ get_i2o_disk_name (name, i);
-+ if (check_device (name))
-+ {
-+ (*map)[num_hd + 0x80] = strdup (name);
-+ assert ((*map)[num_hd + 0x80]);
-+
-+ /* If the device map file is opened, write the map. */
-+ if (fp)
-+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
-+
-+ num_hd++;
-+ }
-+ }
-+
- #endif /* __linux__ */
-
- /* OK, close the device map file if opened. */
diff --git a/libre/grub/install-grub b/libre/grub/install-grub
deleted file mode 100644
index affc9c38a..000000000
--- a/libre/grub/install-grub
+++ /dev/null
@@ -1,204 +0,0 @@
-#!/bin/bash
-
-#
-# This is a little helper script that tries to convert linux-style device
-# names to grub-style. It's not very smart, so it
-# probably won't work for more complicated setups.
-#
-# If it doesn't work for you, try installing grub manually:
-#
-# # mkdir -p /boot/grub
-# # cp /usr/lib/grub/i386-pc/* /boot/grub/
-#
-# Then start up the 'grub' shell and run something like the following:
-#
-# grub> root (hd0,0)
-# grub> setup (hd0)
-#
-# The "root" line should point to the partition your kernel is located on,
-# /boot if you have a separate boot partition, otherwise your root (/).
-#
-# The "setup" line tells grub which disc/partition to install the
-# bootloader to. In the example above, it will install to the MBR of the
-# primary master hard drive.
-#
-
-usage() {
- echo "usage: install-grub <install_device> [boot_device]"
- echo
- echo "where <install_device> is the device where Grub will be installed"
- echo "and [boot_device] is the partition that contains the /boot"
- echo "directory (auto-detected if omitted)"
- echo
- echo "examples: install-grub /dev/hda"
- echo " install-grub /dev/hda /dev/hda1"
- echo
- exit 0
-}
-
-## new install-grub, code was taken from setup script
-ROOTDEV=${1}
-PART_ROOT=${2}
-
-if [ "${ROOTDEV}" = "" ]; then
- usage
-fi
-if [ "${PART_ROOT}" = "" ]; then
- PART_ROOT=$(mount | grep "on /boot type" | cut -d' ' -f 1)
-fi
-if [ "$PART_ROOT" = "" ]; then
- PART_ROOT=$(mount | grep "on / type" | cut -d' ' -f 1)
-fi
-if [ "${PART_ROOT}" = "" ]; then
- echo "error: could not determine BOOT_DEVICE, please specify manually" >&2
- exit 1
-fi
-
-
-get_grub_map() {
- [ -e /tmp/dev.map ] && rm /tmp/dev.map
- /sbin/grub --no-floppy --device-map /tmp/dev.map >/tmp/grub.log 2>&1 <<EOF
-quit
-EOF
-}
-
-mapdev() {
- partition_flag=0
- device_found=0
- devs=$(cat /tmp/dev.map | grep -v fd | sed 's/ *\t/ /' | sed ':a;$!N;$!ba;s/\n/ /g')
- linuxdevice=$(echo $1 | cut -b1-8)
- if [ "$(echo ${1} | egrep '[0-9]$')" ]; then
- # /dev/hdXY
- pnum=$(echo ${1} | cut -b9-)
- pnum=$((${pnum}-1))
- partition_flag=1
- fi
- for dev in ${devs}; do
- if [ "(" = $(echo ${dev} | cut -b1) ]; then
- grubdevice="${dev}"
- else
- if [ "${dev}" = "${linuxdevice}" ]; then
- device_found=1
- break
- fi
- fi
- done
- if [ "${device_found}" = "1" ]; then
- if [ "${partition_flag}" = "0" ]; then
- echo "${grubdevice}"
- else
- grubdevice_stringlen=${#grubdevice}
- let grubdevice_stringlen--
- grubdevice=$(echo $grubdevice | cut -b1-$grubdevice_stringlen)
- echo "${grubdevice},${pnum})"
- fi
- else
- echo " DEVICE NOT FOUND"
- fi
-}
-
-dogrub() {
- get_grub_map
- if [ ! -f /boot/grub/menu.lst ]; then
- echo "Error: Couldn't find /boot/grub/menu.lst. Is GRUB installed?"
- exit 1
- fi
- # try to auto-configure GRUB...
- if [ "${PART_ROOT}" != "" -a "$S_GRUB" != "1" ]; then
- grubdev=$(mapdev ${PART_ROOT})
- # look for a separately-mounted /boot partition
- bootdev=$(mount | grep /boot | cut -d' ' -f 1)
- if [ "${grubdev}" != "" -o "${bootdev}" != "" ]; then
- cp /boot/grub/menu.lst /tmp/.menu.lst
- # remove the default entries by truncating the file at our little tag (#-*)
- head -n $(cat /tmp/.menu.lst | grep -n '#-\*' | cut -d: -f 1) /tmp/.menu.lst >/boot/grub/menu.lst
- rm -f /tmp/.menu.lst
-
- for kernel in /boot/vmlinuz-linux* /boot/vmlinuz26-*; do
- if [ ${kernel} == "/boot/vmlinuz-linux*" ] || [ ${kernel} == "/boot/vmlinuz26-*" ] ; then
- echo > /dev/null
- else
- VMLINUZ=$( echo ${kernel} | cut -c 7- )
-
- if [ "$( echo ${VMLINUZ} | cut -c -13 )" = "vmlinuz-linux" ]; then # new naming scheme for linux > 3.0
- extension=$( echo ${VMLINUZ} | cut -c 14- )
- INITRAMFS_BASENAME=initramfs-linux${extension}
- else # old naming scheme for lts kernel
- extension=$( echo ${VMLINUZ} | cut -c 10- )
- INITRAMFS_BASENAME=kernel26${extension}
- fi
-
- echo "" >>/boot/grub/menu.lst
- echo "# (0) Parabola GNU/Linux-libre" >>/boot/grub/menu.lst
- echo "title Parabola GNU/Linux-libre - ${VMLINUZ}" >>/boot/grub/menu.lst
- subdir=
- if [ "${bootdev}" != "" ]; then
- grubdev=$(mapdev ${bootdev})
- else
- subdir="/boot"
- fi
- echo "root ${grubdev}" >>/boot/grub/menu.lst
- echo "kernel ${subdir}/${VMLINUZ} root=${PART_ROOT} ro" >>/boot/grub/menu.lst
- echo "initrd ${subdir}/${INITRAMFS_BASENAME}.img" >>/boot/grub/menu.lst
- echo "" >>/boot/grub/menu.lst
-
- # adding fallback/full image
- echo "# (1) Parabola GNU/Linux-libre" >>/boot/grub/menu.lst
- echo "title Parabola GNU/Linux-libre Fallback - ${VMLINUZ}" >>/boot/grub/menu.lst
- echo "root ${grubdev}" >>/boot/grub/menu.lst
- echo "kernel ${subdir}/${VMLINUZ} root=${PART_ROOT} ro" >>/boot/grub/menu.lst
- echo "initrd ${subdir}/${INITRAMFS_BASENAME}-fallback.img" >>/boot/grub/menu.lst
- echo "" >>/boot/grub/menu.lst
- fi
- done
- fi
- fi
-
- echo "Installing the GRUB bootloader..."
- cp -a /usr/lib/grub/i386-pc/* /boot/grub/
- sync
-
- # freeze xfs filesystems to enable grub installation on xfs filesystems
- if [ -x /usr/sbin/xfs_freeze ]; then
- [ "$(stat -fLc %T /boot)" == "xfs" ] && /usr/sbin/xfs_freeze -f /boot > /dev/null 2>&1
- [ "$(stat -fLc %T /)" == "xfs" ] && /usr/sbin/xfs_freeze -f / > /dev/null 2>&1
- fi
-
- # look for a separately-mounted /boot partition
- bootpart=$(mount | grep /boot | cut -d' ' -f 1)
- if [ "${bootpart}" = "" ]; then
- bootpart=${PART_ROOT}
- fi
- bootpart=$(mapdev ${bootpart})
- bootdev=$(mapdev ${ROOTDEV})
- if [ "${bootpart}" = "" ]; then
- echo "Error: Missing/Invalid root device: ${bootpart}"
- exit 1
- fi
-
- echo ${bootpart}
- echo ${bootdev}
- /sbin/grub --no-floppy --batch >/tmp/grub.log 2>&1 <<EOF
-root ${bootpart}
-setup ${bootdev}
-quit
-EOF
- cat /tmp/grub.log
-
- # unfreeze xfs filesystems
- if [ -x /usr/sbin/xfs_freeze ]; then
- [ "$(stat -fLc %T /boot)" == "xfs" ] && /usr/sbin/xfs_freeze -u /boot > /dev/null 2>&1
- [ "$(stat -fLc %T /)" == "xfs" ] && /usr/sbin/xfs_freeze -u / > /dev/null 2>&1
- fi
- if grep "Error [0-9]*: " /tmp/grub.log >/dev/null; then
- echo "Error installing GRUB. (see /tmp/grub.log for output)"
- exit 1
- fi
- echo "GRUB was successfully installed."
-
- rm -f /tmp/grub.log
-
- exit 0
-}
-
-dogrub
diff --git a/libre/grub/intelmac.patch b/libre/grub/intelmac.patch
deleted file mode 100644
index a3fabc733..000000000
--- a/libre/grub/intelmac.patch
+++ /dev/null
@@ -1,67 +0,0 @@
---- grub-0.97.orig/stage2/asm.S 2004-06-19 18:55:22.000000000 +0200
-+++ grub-0.97/stage2/asm.S 2006-04-21 11:10:52.000000000 +0200
-@@ -1651,7 +1651,29 @@
- jnz 3f
- ret
-
--3: /* use keyboard controller */
-+3: /*
-+ * try to switch gateA20 using PORT92, the "Fast A20 and Init"
-+ * register
-+ */
-+ mov $0x92, %dx
-+ inb %dx, %al
-+ /* skip the port92 code if it's unimplemented (read returns 0xff) */
-+ cmpb $0xff, %al
-+ jz 6f
-+
-+ /* set or clear bit1, the ALT_A20_GATE bit */
-+ movb 4(%esp), %ah
-+ testb %ah, %ah
-+ jz 4f
-+ orb $2, %al
-+ jmp 5f
-+4: and $0xfd, %al
-+
-+ /* clear the INIT_NOW bit don't accidently reset the machine */
-+5: and $0xfe, %al
-+ outb %al, %dx
-+
-+6: /* use keyboard controller */
- pushl %eax
-
- call gloop1
-@@ -1661,9 +1683,12 @@
-
- gloopint1:
- inb $K_STATUS
-+ cmpb $0xff, %al
-+ jz gloopint1_done
- andb $K_IBUF_FUL, %al
- jnz gloopint1
-
-+gloopint1_done:
- movb $KB_OUTPUT_MASK, %al
- cmpb $0, 0x8(%esp)
- jz gdoit
-@@ -1684,6 +1709,8 @@
-
- gloop1:
- inb $K_STATUS
-+ cmpb $0xff, %al
-+ jz gloop2ret
- andb $K_IBUF_FUL, %al
- jnz gloop1
-
-@@ -1991,6 +2018,11 @@
- ENTRY(console_getkey)
- push %ebp
-
-+wait_for_key:
-+ call EXT_C(console_checkkey)
-+ incl %eax
-+ jz wait_for_key
-+
- call EXT_C(prot_to_real)
- .code16
-
diff --git a/libre/grub/menu.lst b/libre/grub/menu.lst
deleted file mode 100644
index f405baa91..000000000
--- a/libre/grub/menu.lst
+++ /dev/null
@@ -1,43 +0,0 @@
-# Config file for GRUB - The GNU GRand Unified Bootloader
-# /boot/grub/menu.lst
-
-# DEVICE NAME CONVERSIONS
-#
-# Linux Grub
-# -------------------------
-# /dev/fd0 (fd0)
-# /dev/sda (hd0)
-# /dev/sdb2 (hd1,1)
-# /dev/sda3 (hd0,2)
-#
-
-# FRAMEBUFFER RESOLUTION SETTINGS
-# +-------------------------------------------------+
-# | 640x480 800x600 1024x768 1280x1024
-# ----+--------------------------------------------
-# 256 | 0x301=769 0x303=771 0x305=773 0x307=775
-# 32K | 0x310=784 0x313=787 0x316=790 0x319=793
-# 64K | 0x311=785 0x314=788 0x317=791 0x31A=794
-# 16M | 0x312=786 0x315=789 0x318=792 0x31B=795
-# +-------------------------------------------------+
-# for more details and different resolutions see
-# https://wiki.archlinux.org/index.php/GRUB#Framebuffer_resolution
-
-# general configuration:
-timeout 5
-default 0
-color magenta/black white/magenta
-
-# boot sections follow
-# each is implicitly numbered from 0 in the order of appearance below
-#
-# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
-#
-#-*
-
-# (0) Parabola GNU/Linux-libre
-title Parabola GNU/Linux-libre [/boot/vmlinuz-linux-libre]
-root (hd0,0)
-kernel /vmlinuz-linux-libre root=/dev/sda3 ro
-initrd /initramfs-linux-libre.img
-
diff --git a/libre/grub/more-raid.patch b/libre/grub/more-raid.patch
deleted file mode 100644
index 39db23474..000000000
--- a/libre/grub/more-raid.patch
+++ /dev/null
@@ -1,100 +0,0 @@
---- grub-0.95/lib/device.c.moreraid 2004-11-30 17:09:36.736099360 -0500
-+++ grub-0.95/lib/device.c 2004-11-30 17:12:17.319686944 -0500
-@@ -544,6 +544,17 @@
- }
-
- static void
-+get_cciss_disk_name (char * name, int controller, int drive)
-+{
-+ sprintf (name, "/dev/cciss/c%dd%d", controller, drive);
-+}
-+
-+static void
-+get_cpqarray_disk_name (char * name, int controller, int drive)
-+{
-+ sprintf (name, "/dev/ida/c%dd%d", controller, drive);
-+}
-+static void
- get_ataraid_disk_name (char *name, int unit)
- {
- sprintf (name, "/dev/ataraid/d%c", unit + '0');
-@@ -920,7 +931,7 @@
-
- for (controller = 0; controller < 8; controller++)
- {
-- for (drive = 0; drive < 15; drive++)
-+ for (drive = 0; drive < 32; drive++)
- {
- char name[24];
-
-@@ -940,6 +951,70 @@
- }
- }
- #endif /* __linux__ */
-+
-+#ifdef __linux__
-+ /* This is for cciss - we have
-+ /dev/cciss/c<controller>d<logical drive>p<partition>.
-+
-+ cciss driver currently supports up to 8 controllers, 16 logical
-+ drives, and 7 partitions. */
-+ {
-+ int controller, drive;
-+
-+ for (controller = 0; controller < 8; controller++)
-+ {
-+ for (drive = 0; drive < 16; drive++)
-+ {
-+ char name[24];
-+
-+ get_cciss_disk_name (name, controller, drive);
-+ if (check_device (name))
-+ {
-+ (*map)[num_hd + 0x80] = strdup (name);
-+ assert ((*map)[num_hd + 0x80]);
-+
-+ /* If the device map file is opened, write the map. */
-+ if (fp)
-+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
-+
-+ num_hd++;
-+ }
-+ }
-+ }
-+ }
-+#endif /* __linux__ */
-+
-+#ifdef __linux__
-+ /* This is for cpqarray - we have
-+ /dev/ida/c<controller>d<logical drive>p<partition>.
-+
-+ cpqarray driver currently supports up to 8 controllers, 16 logical
-+ drives, and 15 partitions. */
-+ {
-+ int controller, drive;
-+
-+ for (controller = 0; controller < 8; controller++)
-+ {
-+ for (drive = 0; drive < 15; drive++)
-+ {
-+ char name[24];
-+
-+ get_cpqarray_disk_name (name, controller, drive);
-+ if (check_device (name))
-+ {
-+ (*map)[num_hd + 0x80] = strdup (name);
-+ assert ((*map)[num_hd + 0x80]);
-+
-+ /* If the device map file is opened, write the map. */
-+ if (fp)
-+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
-+
-+ num_hd++;
-+ }
-+ }
-+ }
-+ }
-+#endif /* __linux__ */
-
- /* OK, close the device map file if opened. */
- if (fp)
diff --git a/libre/grub/rePKGBUILD b/libre/grub/rePKGBUILD
deleted file mode 100644
index a73289fb5..000000000
--- a/libre/grub/rePKGBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
-# Contributor: André Silva <emulatorman@lavabit.com>
-source PKGBUILD
-CARCH=i686
-unset build package md5sums source
-_repo=core
-source=(PKGBUILD
- #http://mirrors.kernel.org/archlinux/${_repo}/os/${CARCH}/${pkgname%}-$pkgver-$pkgrel-$CARCH$PKGEXT
- http://mirrors.kernel.org/archlinux/${_repo}/os/${CARCH}/${pkgname%}-$pkgver-21-$CARCH$PKGEXT
- # files for pkg modifications
- menu.lst
- install-grub
- )
-options=(!strip)
-
-build() {
- cd "${srcdir}/"
- #rm PKGBUILD .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-$pkgrel-$CARCH$PKGEXT
- rm PKGBUILD .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-21-$CARCH$PKGEXT
- # put actions for package modifications below this line
-
- rm -v boot/grub/menu.lst sbin/install-grub
-}
-
-package() {
- cd ${srcdir}
- cp -a ./* ${pkgdir}
-
- install -D -m644 menu.lst $pkgdir/boot/grub/menu.lst
- install -D -m755 install-grub $pkgdir/sbin/install-grub
-
- rm -v menu.lst install-grub ${pkgdir}/menu.lst ${pkgdir}/install-grub
-
-}
-
-
-# vim:set ts=2 sw=2 et:
diff --git a/libre/grub/special-devices.patch b/libre/grub/special-devices.patch
deleted file mode 100644
index 894f3e887..000000000
--- a/libre/grub/special-devices.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- grub-0.93/lib/device.c.raid 2002-05-20 05:53:46.000000000 -0400
-+++ grub-0.93/lib/device.c 2002-12-28 23:24:10.000000000 -0500
-@@ -689,7 +689,14 @@
- if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
- strcpy (dev + strlen(dev) - 5, "/part");
- }
-- sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
-+
-+ sprintf (dev + strlen(dev), "%s%d",
-+ /* Compaq smart and others */
-+ (strncmp(dev, "/dev/ida/", 9) == 0 ||
-+ strncmp(dev, "/dev/ataraid/", 13) == 0 ||
-+ strncmp(dev, "/dev/cciss/", 11) == 0 ||
-+ strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
-+ ((partition >> 16) & 0xFF) + 1);
-
- /* Open the partition. */
- fd = open (dev, O_RDWR);
diff --git a/libre/grub2/05_archtheme b/libre/grub2/05_archtheme
deleted file mode 100644
index 4d1b6fb20..000000000
--- a/libre/grub2/05_archtheme
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash -e
-
-cat << EOF
-set menu_color_normal=light-blue/black
-set menu_color_highlight=light-cyan/blue
-EOF
diff --git a/libre/grub2/20_memtest86+ b/libre/grub2/20_memtest86+
deleted file mode 100644
index 1d3096f6b..000000000
--- a/libre/grub2/20_memtest86+
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /bin/sh -e
-########################################################
-# This script generates a memtest86+ entry on grub.cfg #
-# if memtest is installed on the system. #
-########################################################
-
-prefix="/usr"
-exec_prefix="${prefix}"
-
-datarootdir="/usr/share"
-datadir="${datarootdir}"
-
-. "${datadir}/grub/grub-mkconfig_lib"
-
-MEMTEST86_IMAGE="/boot/memtest86+/memtest.bin"
-CLASS="--class memtest86 --class gnu --class tool"
-
-if [ -e $MEMTEST86_IMAGE ] && is_path_readable_by_grub $MEMTEST86_IMAGE; then
- # image exists, create menu entry
- echo "Found memtest86+ image: $MEMTEST86_IMAGE" >&2
- cat << EOF
-menuentry "Memory test (memtest86+)" $CLASS {
-EOF
- prepare_grub_to_access_device `${grub_probe} --target=device $MEMTEST86_IMAGE` | sed -e "s/^/ /"
- cat << EOF
- linux16 (\$root)`make_system_path_relative_to_its_root $MEMTEST86_IMAGE`
-}
-EOF
-fi
diff --git a/libre/grub2/PKGBUILD b/libre/grub2/PKGBUILD
deleted file mode 100644
index 5b1769f95..000000000
--- a/libre/grub2/PKGBUILD
+++ /dev/null
@@ -1,243 +0,0 @@
-# Maintainer: Ronald van Haren <ronald.archlinux.org>
-# Contributor: Keshav P R <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
-# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
-
-_pkgver="2.00~rc1"
-
-_grub_lua_ver=24
-_grub_ntldr_ver=21
-_grub_915_ver=9
-
-pkgname=('grub2-common' 'grub2-bios' 'grub2-efi-i386')
-pkgbase=grub2
-pkgver=2.00rc1
-pkgrel=1.1
-url="http://www.gnu.org/software/grub/"
-arch=('i686' 'x86_64')
-license=('GPL3')
-epoch="1"
-makedepends=('rsync' 'xz' 'bdf-unifont' 'python' 'autogen' 'texinfo'
- 'help2man' 'gettext' 'device-mapper' 'fuse' 'dosfstools' 'efibootmgr')
-
-# source=("ftp://ftp.archlinux.org/other/grub2/grub_r${_grub_bzr_rev}.tar.xz"
-source=("http://alpha.gnu.org/gnu/grub/grub-${_pkgver}".tar.xz
- "ftp://ftp.archlinux.org/other/grub2/grub2_extras_lua_r${_grub_lua_ver}.tar.xz"
- "ftp://ftp.archlinux.org/other/grub2/grub2_extras_ntldr-img_r${_grub_ntldr_ver}.tar.xz"
- "ftp://ftp.archlinux.org/other/grub2/grub2_extras_915resolution_r${_grub_915_ver}.tar.xz"
- 'parabola_grub_mkconfig_fixes.patch'
- 'grub.default'
- 'grub.cfg'
- '20_memtest86+')
-
-noextract=("grub2_extras_lua_r${_grub_lua_ver}.tar.xz"
- "grub2_extras_ntldr-img_r${_grub_ntldr_ver}.tar.xz"
- "grub2_extras_915resolution_r${_grub_915_ver}.tar.xz")
-
-sha1sums=('2f5ca951c3cb9ca364d38e4b4a2ca2a232fc4c13'
- '89290031b974780c6df76893836d2477d4add895'
- 'eb4b35b4c36b64f9405cbcbc538cb205171c1c0a'
- 'd5ae2efec25616028a9d89e98b6e454f1c4c415f'
- '31aa740fc225b3f3ed4917843038f9e8658a71be'
- '9a81f8bebcbee3d300315a29266ce7a5c9e5881c'
- '9735043d518e16f147f64ef283eceb2549fed860'
- 'ce35d7ae75cd1b5b677e894e528f96add40e77b9')
-
-_build_grub2-common_and_bios() {
-
- ## copy the source for building the common/bios package
- cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub_bios-${_pkgver}"
- cd "${srcdir}/grub_bios-${_pkgver}"
-
- ## Apply Parabola specific fixes to enable grub-mkconfig detect Libre kernels and initramfs
- patch -Np1 -i "${srcdir}/parabola_grub_mkconfig_fixes.patch"
- echo
-
- ## add the grub-extra sources
- export GRUB_CONTRIB="${srcdir}/grub_bios-${_pkgver}/grub-extras/"
- install -d "${srcdir}/grub_bios-${_pkgver}/grub-extras"
-
- bsdtar xf "${srcdir}/grub2_extras_lua_r${_grub_lua_ver}.tar.xz" \
- -C "${srcdir}/grub_bios-${_pkgver}/grub-extras"
-
- bsdtar xf "${srcdir}/grub2_extras_ntldr-img_r${_grub_ntldr_ver}.tar.xz" \
- -C "${srcdir}/grub_bios-${_pkgver}/grub-extras"
-
- bsdtar xf "${srcdir}/grub2_extras_915resolution_r${_grub_915_ver}.tar.xz" \
- -C "${srcdir}/grub_bios-${_pkgver}/grub-extras"
-
- ## Requires python2
- # sed 's|python |python2 |g' -i "${srcdir}/grub_bios-${_pkgver}/autogen.sh"
-
- ## start the actual build process
- cd "${srcdir}/grub_bios-${_pkgver}"
- ./autogen.sh
-
- ## fix unifont.bdf location so grub-mkfont can create *.pf2 files
- sed 's|/usr/share/fonts/unifont|/usr/share/fonts/misc|g' -i "${srcdir}/grub_bios-${_pkgver}/configure"
-
- # install -d "${srcdir}/grub_bios-${_pkgver}/BUILD_BIOS"
- # cd "${srcdir}/grub_bios-${_pkgver}/BUILD_BIOS"
-
- CFLAGS="" ./configure \
- --with-platform="pc" \
- --target="i386" \
- --host="${CARCH}-unknown-linux-gnu" \
- "${_EFIEMU}" \
- --enable-mm-debug \
- --enable-nls \
- --enable-device-mapper \
- --enable-cache-stats \
- --enable-grub-mkfont \
- --enable-grub-mount \
- --prefix="/usr" \
- --bindir="/usr/bin" \
- --sbindir="/usr/sbin" \
- --mandir="/usr/share/man" \
- --infodir="/usr/share/info" \
- --datarootdir="/usr/share" \
- --sysconfdir="/etc" \
- --program-prefix="" \
- --with-bootdir="/boot" \
- --with-grubdir="grub" \
- --disable-werror
-
- CFLAGS="" make
-
-}
-
-_build_grub2-efi-i386() {
-
- ## copy the source for building the efi package
- cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub_efi-${_pkgver}"
- cd "${srcdir}/grub_efi-${_pkgver}"
-
- export GRUB_CONTRIB="${srcdir}/grub_efi-${_pkgver}/grub-extras/"
- install -d "${srcdir}/grub_efi-${_pkgver}/grub-extras"
-
- bsdtar xf "${srcdir}/grub2_extras_lua_r${_grub_lua_ver}.tar.xz" \
- -C "${srcdir}/grub_efi-${_pkgver}/grub-extras"
-
- ## Requires python2
- # sed 's|python |python2 |g' -i "${srcdir}/grub_efi-${_pkgver}/autogen.sh"
-
- cd "${srcdir}/grub_efi-${_pkgver}"
- ./autogen.sh
-
- CFLAGS="" ./configure \
- --with-platform="efi" \
- --target="i386" \
- --host="${CARCH}-unknown-linux-gnu" \
- --disable-efiemu \
- --enable-mm-debug \
- --enable-nls \
- --enable-device-mapper \
- --enable-cache-stats \
- --enable-grub-mkfont \
- --enable-grub-mount \
- --prefix="/usr" \
- --bindir="/usr/bin" \
- --sbindir="/usr/sbin" \
- --mandir="/usr/share/man" \
- --infodir="/usr/share/info" \
- --datarootdir="/usr/share" \
- --sysconfdir="/etc" \
- --program-prefix="" \
- --with-bootdir="/boot" \
- --with-grubdir="grub" \
- --disable-werror
-
- CFLAGS="" make
-}
-
-#_get_locale_files() {
-#
-# cd "${srcdir}/grub-${_pkgver}"
-# rsync -Lrtvz translationproject.org::tp/latest/grub/ "${srcdir}/grub-${_pkgver}/po" || true
-# (cd "${srcdir}/grub-${_pkgver}/po" && ls *.po | cut -d. -f1 | xargs) > "${srcdir}/grub-${_pkgver}/po/LINGUAS"
-#}
-
-build() {
-
- ## set architecture dependent variables
- if [[ "${CARCH}" == 'x86_64' ]]; then
- _EFIEMU="--enable-efiemu"
- else
- _EFIEMU="--disable-efiemu"
- fi
-
- _HOST="${CARCH}"
-
- cd "${srcdir}/grub-${_pkgver}"
- # _get_locale_files
-
- _build_grub2-common_and_bios
- _build_grub2-efi-i386
-
-}
-
-package_grub2-common() {
-
- pkgdesc="The GNU GRand Unified Bootloader version 2 - Files common for all platforms (Parabola rebranded)"
- depends=('xz' 'freetype2' 'gettext' 'device-mapper' 'fuse' 'sh')
- conflicts=('grub')
- backup=('boot/grub/grub.cfg' 'etc/default/grub' 'etc/grub.d/40_custom')
- optdepends=('libisoburn: provides xorriso for generating grub rescue iso using grub-mkrescue'
- 'os-prober: to detect other OSes when generating grub.cfg in BIOS systems'
- 'mtools: for grub-mkrescue FAT FS support')
- install="grub2.install"
- options=('strip' 'purge' 'docs' 'zipman' '!emptydirs')
-
- cd "${srcdir}/grub_bios-${_pkgver}"
- make bashcompletiondir=/usr/share/bash-completion/completions DESTDIR="${pkgdir}/" install
-
- ## install extra /etc/grub.d/ files
- install -D -m0755 "${srcdir}/20_memtest86+" "${pkgdir}/etc/grub.d/20_memtest86+"
-
- ## install /etc/default/grub (used by grub-mkconfig)
- install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub"
-
- ## install grub.cfg (needed so it doesn't get removed on upgrading because it was previously here)
- install -D -m0644 "${srcdir}/grub.cfg" "${pkgdir}/boot/grub/grub.cfg"
-
- # remove platform specific files
- rm -rf "${pkgdir}/usr/lib/grub/i386-pc/"
-
-}
-
-package_grub2-bios() {
-
- pkgdesc="The GNU GRand Unified Bootloader version 2 - Built for i386 PC BIOS"
- depends=("grub2-common=${epoch}:${pkgver}")
- options=('!strip' '!emptydirs')
-
- cd "${srcdir}/grub_bios-${_pkgver}"
- make DESTDIR="${pkgdir}/" install
-
- ## remove non platform-specific files
- rm -rf "${pkgdir}"/{boot,etc,usr/{share,bin,sbin}}
-
- ## remove gdb debugging related files
- rm -f "${pkgdir}/usr/lib/grub/i386-pc"/*.module || true
- rm -f "${pkgdir}/usr/lib/grub/i386-pc"/*.image || true
- rm -f "${pkgdir}/usr/lib/grub/i386-pc"/{kernel.exec,gdb_grub,gmodule.pl} || true
-
-}
-
-package_grub2-efi-i386() {
-
- pkgdesc="The GNU GRand Unified Bootloader version 2 - i386 UEFI version"
- depends=("grub2-common=${epoch}:${pkgver}" 'dosfstools' 'efibootmgr')
- options=('!strip' '!emptydirs')
-
- cd "${srcdir}/grub_efi-${_pkgver}"
- make DESTDIR="${pkgdir}/" install
-
- ## remove non platform-specific files
- rm -rf "${pkgdir}"/{boot,etc,usr/{share,bin,sbin}}
-
- ## remove gdb debugging related files
- rm -f "${pkgdir}/usr/lib/grub/i386-efi"/*.module || true
- rm -f "${pkgdir}/usr/lib/grub/i386-efi"/*.image || true
- rm -f "${pkgdir}/usr/lib/grub/i386-efi"/{kernel.exec,gdb_grub,gmodule.pl} || true
-
-}
diff --git a/libre/grub2/fix_stack_pointer_handling_16_relocator.patch b/libre/grub2/fix_stack_pointer_handling_16_relocator.patch
deleted file mode 100644
index edc0ef502..000000000
--- a/libre/grub2/fix_stack_pointer_handling_16_relocator.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/grub-core/lib/i386/relocator16.S b/grub-core/lib/i386/relocator16.S
-index c3768f4..982415d 100644
---- a/grub-core/lib/i386/relocator16.S
-+++ b/grub-core/lib/i386/relocator16.S
-@@ -130,7 +130,7 @@ VARIABLE(grub_relocator16_ss)
- .byte 0xb8
- VARIABLE(grub_relocator16_sp)
- .word 0
-- movw %ax, %ss
-+ movzwl %ax, %esp
-
- /* movw imm32, %edx. */
- .byte 0x66, 0xba
diff --git a/libre/grub2/grub-install.fix b/libre/grub2/grub-install.fix
deleted file mode 100644
index 29e74bd44..000000000
--- a/libre/grub2/grub-install.fix
+++ /dev/null
@@ -1,11 +0,0 @@
-=== modified file 'grub-core/kern/emu/hostdisk.c'
---- grub-core/kern/emu/hostdisk.c 2012-04-18 21:48:52 +0000
-+++ grub-core/kern/emu/hostdisk.c 2012-04-19 18:35:06 +0000
-@@ -1081,7 +1081,7 @@
- {
- int fd;
- grub_disk_addr_t max = ~0ULL;
-- fd = open_device (disk, sector, O_RDONLY, &max);
-+ fd = open_device (disk, sector, O_WRONLY, &max);
- if (fd < 0)
- return grub_errno;
diff --git a/libre/grub2/grub-mkconfig-Use_outside_GRUB_PREFIX_if_defined.patch b/libre/grub2/grub-mkconfig-Use_outside_GRUB_PREFIX_if_defined.patch
deleted file mode 100644
index e1de26859..000000000
--- a/libre/grub2/grub-mkconfig-Use_outside_GRUB_PREFIX_if_defined.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
-index 859c2e8..c4391dc 100644
---- a/util/grub-mkconfig.in
-+++ b/util/grub-mkconfig.in
-@@ -40,7 +40,9 @@ self=`basename $0`
- grub_probe="${sbindir}/`echo grub-probe | sed "${transform}"`"
- grub_script_check="${bindir}/`echo grub-script-check | sed "${transform}"`"
-
--GRUB_PREFIX=`echo '/@bootdirname@/@grubdirname@' | sed "s,//*,/,g"`
-+if test -z "${GRUB_PREFIX}"; then
-+ GRUB_PREFIX=`echo '/@bootdirname@/@grubdirname@' | sed "s,//*,/,g"`
-+fi
-
- . "${datadir}/@PACKAGE@/grub-mkconfig_lib"
-
diff --git a/libre/grub2/grub.cfg b/libre/grub2/grub.cfg
deleted file mode 100644
index 6e60c70c4..000000000
--- a/libre/grub2/grub.cfg
+++ /dev/null
@@ -1,127 +0,0 @@
-#
-# DO NOT EDIT THIS FILE
-#
-# It is automatically generated by grub-mkconfig using templates
-# from /etc/grub.d and settings from /etc/default/grub
-#
-
-### BEGIN /etc/grub.d/00_header ###
-insmod part_gpt
-insmod part_msdos
-if [ -s $prefix/grubenv ]; then
- load_env
-fi
-set default="0"
-if [ "${prev_saved_entry}" ]; then
- set saved_entry="${prev_saved_entry}"
- save_env saved_entry
- set prev_saved_entry=
- save_env prev_saved_entry
- set boot_once=true
-fi
-
-function savedefault {
- if [ -z "${boot_once}" ]; then
- saved_entry="${chosen}"
- save_env saved_entry
- fi
-}
-
-function load_video {
- if [ x$feature_all_video_module = xy ]; then
- insmod all_video
- else
- insmod efi_gop
- insmod efi_uga
- insmod ieee1275_fb
- insmod vbe
- insmod vga
- insmod video_bochs
- insmod video_cirrus
- fi
-}
-
-if [ x$feature_default_font_path = xy ] ; then
- font=unicode
-else
-insmod part_gpt
-insmod ext2
-set root='hd0,gpt9'
-if [ x$feature_platform_search_hint = xy ]; then
- search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt9 --hint-efi=hd0,gpt9 --hint-baremetal=ahci0,gpt9 0cc6e472-7f98-42ff-b7f3-309b641377ad
-else
- search --no-floppy --fs-uuid --set=root 0cc6e472-7f98-42ff-b7f3-309b641377ad
-fi
- font="/usr/share/grub/unicode.pf2"
-fi
-
-if loadfont $font ; then
- set gfxmode=auto
- load_video
- insmod gfxterm
- set locale_dir=$prefix/locale
- set lang=en_US
- insmod gettext
-fi
-terminal_input console
-terminal_output gfxterm
-set timeout=5
-### END /etc/grub.d/00_header ###
-
-### BEGIN /etc/grub.d/10_linux ###
-menuentry 'Parabola GNU/Linux-libre, with Linux libre' --class parabola --class gnu-linux --class gnu --class os {
- load_video
- set gfxpayload=keep
- insmod gzio
- insmod part_gpt
- insmod ext2
- set root='hd0,gpt3'
- if [ x$feature_platform_search_hint = xy ]; then
- search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 2ccd62fe-2204-44e8-bcfd-ce33996f9852
- else
- search --no-floppy --fs-uuid --set=root 2ccd62fe-2204-44e8-bcfd-ce33996f9852
- fi
- echo 'Loading Linux libre ...'
- linux /vmlinuz-linux-libre root=/dev/disk/by-uuid/0cc6e472-7f98-42ff-b7f3-309b641377ad ro quiet
- echo 'Loading initial ramdisk ...'
- initrd /initramfs-linux-libre.img
-}
-menuentry 'Parabola GNU/Linux-libre, with Linux libre Fallback' --class parabola --class gnu-linux --class gnu --class os {
- load_video
- set gfxpayload=keep
- insmod gzio
- insmod part_gpt
- insmod ext2
- set root='hd0,gpt3'
- if [ x$feature_platform_search_hint = xy ]; then
- search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 2ccd62fe-2204-44e8-bcfd-ce33996f9852
- else
- search --no-floppy --fs-uuid --set=root 2ccd62fe-2204-44e8-bcfd-ce33996f9852
- fi
- echo 'Loading Linux libre ...'
- linux /vmlinuz-linux-libre root=/dev/disk/by-uuid/0cc6e472-7f98-42ff-b7f3-309b641377ad ro quiet
- echo 'Loading initial ramdisk ...'
- initrd /initramfs-linux-libre-fallback.img
-}
-### END /etc/grub.d/10_linux ###
-
-### BEGIN /etc/grub.d/20_linux_xen ###
-### END /etc/grub.d/20_linux_xen ###
-
-### BEGIN /etc/grub.d/20_memtest86+ ###
-### END /etc/grub.d/20_memtest86+ ###
-
-### BEGIN /etc/grub.d/30_os-prober ###
-### END /etc/grub.d/30_os-prober ###
-
-### BEGIN /etc/grub.d/40_custom ###
-# This file provides an easy way to add custom menu entries. Simply type the
-# menu entries you want to add after this comment. Be careful not to change
-# the 'exec tail' line above.
-### END /etc/grub.d/40_custom ###
-
-### BEGIN /etc/grub.d/41_custom ###
-if [ -f $prefix/custom.cfg ]; then
- source $prefix/custom.cfg;
-fi
-### END /etc/grub.d/41_custom ###
diff --git a/libre/grub2/grub.default b/libre/grub2/grub.default
deleted file mode 100644
index d0c959059..000000000
--- a/libre/grub2/grub.default
+++ /dev/null
@@ -1,45 +0,0 @@
-GRUB_DEFAULT=0
-GRUB_TIMEOUT=5
-GRUB_DISTRIBUTOR="Parabola GNU/Linux-libre"
-GRUB_CMDLINE_LINUX_DEFAULT="quiet add_efi_memmap"
-GRUB_CMDLINE_LINUX=""
-
-# Preload both GPT and MBR modules so that they are not missed
-GRUB_PRELOAD_MODULES="part_gpt part_msdos"
-
-# Uncomment to enable Hidden Menu, and optionally hide the timeout count
-#GRUB_HIDDEN_TIMEOUT=5
-#GRUB_HIDDEN_TIMEOUT_QUIET=true
-
-# Uncomment to use basic console
-GRUB_TERMINAL_INPUT=console
-
-# Uncomment to disable graphical terminal
-#GRUB_TERMINAL_OUTPUT=console
-
-# The resolution used on graphical terminal
-# note that you can use only modes which your graphic card supports via VBE
-# you can see them in real GRUB with the command `vbeinfo'
-GRUB_GFXMODE=auto
-
-# Uncomment to allow the kernel use the same resolution used by grub
-GRUB_GFXPAYLOAD_LINUX=keep
-
-# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
-# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
-#GRUB_DISABLE_LINUX_UUID=true
-
-# Uncomment to disable generation of recovery mode menu entries
-GRUB_DISABLE_RECOVERY=true
-
-# Uncomment and set to the desired menu colors. Used by normal and wallpaper
-# modes only. Entries specified as foreground/background.
-GRUB_COLOR_NORMAL="magenta/black"
-GRUB_COLOR_HIGHLIGHT="white/magenta"
-
-# Uncomment one of them for the gfx desired, a image background or a gfxtheme
-#GRUB_BACKGROUND="/path/to/wallpaper"
-#GRUB_THEME="/path/to/gfxtheme"
-
-# Uncomment to get a beep at GRUB start
-#GRUB_INIT_TUNE="480 440 1"
diff --git a/libre/grub2/grub2.install b/libre/grub2/grub2.install
deleted file mode 100644
index 000533553..000000000
--- a/libre/grub2/grub2.install
+++ /dev/null
@@ -1,33 +0,0 @@
-infodir=usr/share/info
-filelist=(grub.info grub-dev.info)
-
-post_install() {
- if [ -f /boot/grub/grub.cfg.pacsave ]; then
- echo "Copying /boot/grub/grub.cfg.pacsave to /boot/grub/grub.cfg"
- install -Dm644 /boot/grub/grub.cfg.pacsave /boot/grub/grub.cfg
- fi
-
- cat << 'EOM'
-Generating grub.cfg.example config file...
-This may fail on some machines running a custom kernel.
-EOM
-
- grub-mkconfig -o /boot/grub/grub.cfg.example 2> /dev/null
- echo "done."
-
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-pre_remove() {
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file $infodir/dir 2> /dev/null
- done
-}
diff --git a/libre/grub2/grub2_automake_1.11.2_pkglib_to_pkgdata.patch b/libre/grub2/grub2_automake_1.11.2_pkglib_to_pkgdata.patch
deleted file mode 100644
index 0e396b210..000000000
--- a/libre/grub2/grub2_automake_1.11.2_pkglib_to_pkgdata.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-diff --git a/ChangeLog_Keshav b/ChangeLog_Keshav
-new file mode 100644
-index 0000000..0eafd65
---- /dev/null
-+++ b/ChangeLog_Keshav
-@@ -0,0 +1,12 @@
-+2012-01-04 Keshav P R <the.ridikulus.rat@gmail.com>
-+
-+ Fixes for automake 1.11.2
-+
-+ * conf/Makefile.common: Change pkglib_SCRIPTS to pkgdata_SCRIPTS.
-+ * conf/Makefile.common: Change pkglib_DATA to pkgdata_DATA.
-+ * Makefile.am: Likewise.
-+ * gentpl.py: Likewise.
-+ * util/grub-mkstandalone.in: Likewise.
-+ * util/grub-mknetdir.in: Likewise.
-+ * util/grub-mkrescue.in: Likewise.
-+ * util/grub-mkstandalone.in: Likewise.
-diff --git a/Makefile.am b/Makefile.am
-index c5f486e..395b0dd 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -101,8 +101,8 @@ CLEANFILES += widthspec.h
- # Install config.h into platformdir
- platform_HEADERS = config.h
-
--pkglib_DATA += grub-mkconfig_lib
--pkglib_DATA += update-grub_lib
-+pkgdata_DATA += grub-mkconfig_lib
-+pkgdata_DATA += update-grub_lib
-
-
- if COND_i386_coreboot
-diff --git a/conf/Makefile.common b/conf/Makefile.common
-index 751188b..bbd59cc 100644
---- a/conf/Makefile.common
-+++ b/conf/Makefile.common
-@@ -137,7 +137,7 @@ KERNEL_HEADER_FILES =
-
- man_MANS =
- noinst_DATA =
--pkglib_DATA =
-+pkgdata_DATA =
- bin_SCRIPTS =
- sbin_SCRIPTS =
- bin_PROGRAMS =
-@@ -147,7 +147,7 @@ check_SCRIPTS =
- grubconf_DATA =
- check_PROGRAMS =
- noinst_SCRIPTS =
--pkglib_SCRIPTS =
-+pkgdata_SCRIPTS =
- noinst_PROGRAMS =
- grubconf_SCRIPTS =
- noinst_LIBRARIES =
-diff --git a/gentpl.py b/gentpl.py
-index 3008b80..a935f4d 100644
---- a/gentpl.py
-+++ b/gentpl.py
-@@ -512,7 +512,7 @@ def script(platform):
- r += "[+ ENDIF +]"
-
- r += rule("[+ name +]", platform_sources(platform) + " $(top_builddir)/config.status", """
--$(top_builddir)/config.status --file=-:$< | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@
-+$(top_builddir)/config.status --file=-:$< | sed -e 's,@pkgdata_DATA@,$(pkgdata_DATA),g' > $@
- chmod a+x [+ name +]
- """)
-
-diff --git a/util/grub-mknetdir.in b/util/grub-mknetdir.in
-index e5a2172..7f6a36d 100644
---- a/util/grub-mknetdir.in
-+++ b/util/grub-mknetdir.in
-@@ -30,7 +30,7 @@ PACKAGE_VERSION=@PACKAGE_VERSION@
- host_os=@host_os@
- localedir=@datadir@/locale
- datarootdir=@datarootdir@
--pkglib_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst"
-+pkgdata_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst"
-
- self=`basename $0`
-
-@@ -183,7 +183,7 @@ process_input_dir ()
- cp -f "$file" "$grubdir/"
- fi
- done
-- for file in ${pkglib_DATA}; do
-+ for file in ${pkgdata_DATA}; do
- if test -f "${input_dir}/${file}"; then
- cp -f "${input_dir}/${file}" "$grubdir/"
- fi
-diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in
-index eff7708..f6b96d4 100644
---- a/util/grub-mkrescue.in
-+++ b/util/grub-mkrescue.in
-@@ -27,7 +27,7 @@ libdir=@libdir@
- PACKAGE_NAME=@PACKAGE_NAME@
- PACKAGE_TARNAME=@PACKAGE_TARNAME@
- PACKAGE_VERSION=@PACKAGE_VERSION@
--pkglib_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst"
-+pkgdata_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst"
-
- self=`basename $0`
-
-@@ -163,7 +163,7 @@ process_input_dir ()
- cp -f "$file" ${iso9660_dir}/boot/grub/${platform}/
- fi
- done
-- for file in ${pkglib_DATA}; do
-+ for file in ${pkgdata_DATA}; do
- if test -f "${input_dir}/${file}"; then
- cp -f "${input_dir}/${file}" ${iso9660_dir}/boot/grub/${platform}/
- fi
-diff --git a/util/grub-mkstandalone.in b/util/grub-mkstandalone.in
-index b0dbf9b..92b7306 100644
---- a/util/grub-mkstandalone.in
-+++ b/util/grub-mkstandalone.in
-@@ -27,7 +27,7 @@ libdir=@libdir@
- PACKAGE_NAME=@PACKAGE_NAME@
- PACKAGE_TARNAME=@PACKAGE_TARNAME@
- PACKAGE_VERSION=@PACKAGE_VERSION@
--pkglib_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst"
-+pkgdata_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst"
-
- self=`basename $0`
-
-@@ -163,7 +163,7 @@ for file in "${source_directory}/"*.mod "${source_directory}/"efiemu32.o "${sour
- fi
- done
-
--for file in ${pkglib_DATA}; do
-+for file in ${pkgdata_DATA}; do
- if test -f "${source_directory}/${file}"; then
- cp -f "${source_directory}/${file}" "${memdisk_dir}"/boot/grub/
- fi
diff --git a/libre/grub2/grub2_bzr_export.sh b/libre/grub2/grub2_bzr_export.sh
deleted file mode 100644
index f40588f82..000000000
--- a/libre/grub2/grub2_bzr_export.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/bash
-
-## For actual repos
-
-# bzr branch bzr://bzr.savannah.gnu.org/grub-extras/lua lua
-# bzr branch bzr://bzr.savannah.gnu.org/grub-extras/gpxe gpxe
-# bzr branch bzr://bzr.savannah.gnu.org/grub-extras/ntldr-img ntldr-img
-# bzr branch bzr://bzr.savannah.gnu.org/grub-extras/915resolution 915resolution
-
-## For launchpad mirror
-
-# bzr branch lp:~the-ridikulus-rat/grub/grub2-extras-lua lua
-# bzr branch lp:~the-ridikulus-rat/grub/grub2-extras-gpxe gpxe
-# bzr branch lp:~the-ridikulus-rat/grub/grub2-extras-ntldr-img ntldr-img
-# bzr branch lp:~the-ridikulus-rat/grub/grub2-extras-915resolution 915resolution
-
-## grub-extras zfs is integrated into grub2 bzr main repo and is no longer needed separately.
-
-_WD="${PWD}/"
-_OUTPUT_DIR="${_WD}/"
-
-_ACTUAL_PKGVER="1.99"
-
-_GRUB2_BZR_REPO_DIR="${_WD}/grub2_BZR/"
-_GRUB2_BZR_EXP_REPO_DIR="${_WD}/grub2_experimental_BZR/"
-_GRUB2_EXTRAS_REPOS_DIR="${_WD}/grub2_extras_BZR/"
-
-_MAIN_SNAPSHOT() {
-
- cd "${_GRUB2_BZR_REPO_DIR}/"
- echo
-
- _REVNUM="$(bzr revno ${_GRUB2_BZR_REPO_DIR})"
- bzr export --root="grub-${_ACTUAL_PKGVER}" --format="tar" "${_OUTPUT_DIR}/grub2_r${_REVNUM}.tar"
- echo
-
- cd "${_OUTPUT_DIR}/"
-
- xz -9 "${_OUTPUT_DIR}/grub2_r${_REVNUM}.tar"
- echo
-
-}
-
-_EXP_SNAPSHOT() {
-
- cd "${_GRUB2_BZR_EXP_REPO_DIR}/"
- echo
-
- _REVNUM="$(bzr revno ${_GRUB2_BZR_EXP_REPO_DIR})"
- bzr export --root="grub-${_ACTUAL_PKGVER}" --format="tar" "${_OUTPUT_DIR}/grub2_exp_r${_REVNUM}.tar"
- echo
-
- cd "${_OUTPUT_DIR}/"
-
- xz -9 "${_OUTPUT_DIR}/grub2_exp_r${_REVNUM}.tar"
- echo
-
-}
-
-_EXTRAS_SNAPSHOT() {
-
- cd "${_GRUB2_EXTRAS_REPOS_DIR}/${_GRUB2_EXTRAS_NAME}/"
- echo
-
- _REVNUM="$(bzr revno ${_GRUB2_EXTRAS_REPOS_DIR}/${_GRUB2_EXTRAS_NAME})"
- bzr export --root="${_GRUB2_EXTRAS_NAME}" --format=tar "${_OUTPUT_DIR}/grub2_extras_${_GRUB2_EXTRAS_NAME}_r${_REVNUM}.tar"
- echo
-
- cd "${_OUTPUT_DIR}/"
- echo
-
- xz -9 "${_OUTPUT_DIR}/grub2_extras_${_GRUB2_EXTRAS_NAME}_r${_REVNUM}.tar"
- echo
-
-}
-
-echo
-
-set -x -e
-
-echo
-
-_MAIN_SNAPSHOT
-
-echo
-
-# _EXP_SNAPSHOT
-
-echo
-
-_GRUB2_EXTRAS_NAME="lua"
-_EXTRAS_SNAPSHOT
-
-_GRUB2_EXTRAS_NAME="gpxe"
-_EXTRAS_SNAPSHOT
-
-_GRUB2_EXTRAS_NAME="ntldr-img"
-_EXTRAS_SNAPSHOT
-
-_GRUB2_EXTRAS_NAME="915resolution"
-_EXTRAS_SNAPSHOT
-
-echo
-
-set +x +e
-
-echo
-
-unset _WD
-unset _OUTPUT_DIR
-unset _GRUB2_BZR_REPO_DIR
-unset _GRUB2_EXTRAS_REPOS_DIR
-unset _GRUB2_EXTRAS_NAME
diff --git a/libre/grub2/grub_extras_lua_args_fix.patch b/libre/grub2/grub_extras_lua_args_fix.patch
deleted file mode 100644
index 5cb317ce3..000000000
--- a/libre/grub2/grub_extras_lua_args_fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/grub-extras/lua/grub_lib.c b/grub-extras/lua/grub_lib.c
-index 9014320..055d620 100644
---- a/grub-extras/lua/grub_lib.c
-+++ b/grub-extras/lua/grub_lib.c
-@@ -466,7 +466,7 @@ grub_lua_add_menu (lua_State *state)
- if (! p)
- return push_result (state);
-
-- grub_normal_add_menu_entry (n, args, NULL, NULL, NULL, NULL, p, 0);
-+ grub_normal_add_menu_entry (n, args, NULL, NULL, NULL, NULL, NULL, p, 0);
- }
- else
- {
diff --git a/libre/grub2/parabola-mkconfig.patch b/libre/grub2/parabola-mkconfig.patch
deleted file mode 100644
index 7c18a4cc2..000000000
--- a/libre/grub2/parabola-mkconfig.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -ru grub-1.99.orig/util/grub.d/10_linux.in grub-1.99/util/grub.d/10_linux.in
---- grub-1.99.orig/util/grub.d/10_linux.in 2011-08-11 15:54:52.051246328 +0200
-+++ grub-1.99/util/grub.d/10_linux.in 2011-08-11 15:55:41.297910793 +0200
-@@ -134,7 +134,7 @@
-
- case x`uname -m` in
- xi?86 | xx86_64)
-- list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* /boot/vmlinuz26-* ; do
-+ list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* /boot/vmlinuz26-* /boot/vmlinuz26 ; do
- if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
- done` ;;
- *)
-@@ -163,7 +163,8 @@
- "initrd-${alt_version}" "initramfs-${alt_version}.img" \
- "initramfs-genkernel-${version}" \
- "initramfs-genkernel-${alt_version}" \
-- "${basename/vmlinuz/kernel}.img"; do
-+ "${basename/vmlinuz/kernel}.img" \
-+ "${basename/vmlinuz/initramfs}.img"; do
- if test -e "${dirname}/${i}" ; then
- initrd="$i"
- break
-@@ -194,7 +195,8 @@
- linux_entry "${OS}" "${version}" false \
- "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
- for i in "initramfs-${version}-fallback.img" \
-- "${basename/vmlinuz/kernel}-fallback.img"; do
-+ "${basename/vmlinuz/kernel}-fallback.img" \
-+ "${basename/vmlinuz/initramfs}-fallback.img"; do
- if test -e "${dirname}/${i}"; then
- initrd="$i"
- linux_entry "${OS}" "${version}" true \
diff --git a/libre/grub2/parabola_grub_mkconfig_fixes.patch b/libre/grub2/parabola_grub_mkconfig_fixes.patch
deleted file mode 100644
index 19022aec6..000000000
--- a/libre/grub2/parabola_grub_mkconfig_fixes.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
-index 516be86..5f37db2 100644
---- a/util/grub-mkconfig.in
-+++ b/util/grub-mkconfig.in
-@@ -213,6 +213,8 @@ export GRUB_DEFAULT \
- GRUB_THEME \
- GRUB_GFXPAYLOAD_LINUX \
- GRUB_DISABLE_OS_PROBER \
-+ GRUB_COLOR_NORMAL \
-+ GRUB_COLOR_HIGHLIGHT \
- GRUB_INIT_TUNE \
- GRUB_SAVEDEFAULT \
- GRUB_ENABLE_CRYPTODISK \
-diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
-index 765bfdc..b148558 100644
---- a/util/grub.d/00_header.in
-+++ b/util/grub.d/00_header.in
-@@ -115,6 +115,14 @@ cat <<EOF
-
- EOF
-
-+if [ x$GRUB_COLOR_NORMAL != x ] && [ x$GRUB_COLOR_HIGHLIGHT != x ] ; then
-+ cat << EOF
-+set menu_color_normal=$GRUB_COLOR_NORMAL
-+set menu_color_highlight=$GRUB_COLOR_HIGHLIGHT
-+
-+EOF
-+fi
-+
- serial=0;
- gfxterm=0;
- for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
-diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
-index 14402e8..64c9bb5 100644
---- a/util/grub.d/10_linux.in
-+++ b/util/grub.d/10_linux.in
-@@ -31,7 +31,7 @@
- if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux
- else
-- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-+ OS="${GRUB_DISTRIBUTOR}"
- CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
- fi
-
-@@ -87,6 +87,8 @@ linux_entry ()
- case $type in
- recovery)
- title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;;
-+ fallback)
-+ title="$(gettext_printf "%s, with Linux %s (Fallback initramfs)" "${os}" "${version}")" ;;
- *)
- title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;;
- esac
-@@ -100,7 +102,7 @@ linux_entry ()
- else
- echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
- fi
-- if [ x$type != xrecovery ] ; then
-+ if [ x$type != xrecovery ] && [ x$type != xfallback ] ; then
- save_default_entry | sed -e "s/^/\t/"
- fi
-
-@@ -132,7 +134,8 @@ linux_entry ()
- fi
- printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
- fi
-- message="$(gettext_printf "Loading Linux %s ..." ${version})"
-+
-+ message="$(gettext_printf "Loading Linux %s ..." "${version}")"
- sed "s/^/$submenu_indentation/" << EOF
- echo '$message'
- linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
-@@ -190,7 +193,22 @@ while [ "x$list" != "x" ] ; do
- alt_version=`echo $version | sed -e "s,\.old$,,g"`
- linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
-
-+ if test -e "/etc/arch-release" ; then
-+ if echo "${basename}" | grep -q 'vmlinuz-linux' ; then
-+ version="`echo "${basename}" | sed -e 's,vmlinuz-linux,,g'`"
-+
-+ if [ "x${version}" = "x" ] ; then
-+ version="core repo kernel"
-+ else
-+ version="`echo "${version}" | sed -e 's,-,,g'`"
-+ version="${version} kernel"
-+ fi
-+ fi
-+ fi
-+
- initrd=
-+ initrd_arch="`echo "${basename}" | sed -e 's,vmlinuz,initramfs,g'`"
-+
- for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
- "initrd-${version}" "initramfs-${version}.img" \
- "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
-@@ -198,7 +216,8 @@ while [ "x$list" != "x" ] ; do
- "initramfs-genkernel-${version}" \
- "initramfs-genkernel-${alt_version}" \
- "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
-- "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
-+ "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" \
-+ "${initrd_arch}.img" ; do
- if test -e "${dirname}/${i}" ; then
- initrd="$i"
- break
-@@ -226,6 +245,22 @@ while [ "x$list" != "x" ] ; do
- linux_root_device_thisversion=${GRUB_DEVICE}
- fi
-
-+ if test -e "/etc/arch-release" ; then
-+ is_first_entry="false"
-+
-+ linux_entry "${OS}" "${version}" true \
-+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-+
-+ for i in "${initrd_arch}-fallback.img" "initramfs-${version}-fallback.img" ; do
-+ if test -e "${dirname}/${i}" ; then
-+ initrd="${i}"
-+ linux_entry "${OS}" "${version}" fallback \
-+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-+ break
-+ fi
-+ done
-+ fi
-+
- if [ "x$is_first_entry" = xtrue ]; then
- linux_entry "${OS}" "${version}" simple \
- "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-@@ -239,8 +274,11 @@ while [ "x$list" != "x" ] ; do
- echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
- fi
-
-+ if ! test -e "/etc/arch-release" ; then
- linux_entry "${OS}" "${version}" advanced \
- "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-+ fi
-+
- if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
- linux_entry "${OS}" "${version}" recovery \
- "single ${GRUB_CMDLINE_LINUX}"
-@@ -252,8 +290,10 @@ done
-
- # If at least one kernel was found, then we need to
- # add a closing '}' for the submenu command.
-+if ! test -e "/etc/arch-release" ; then
- if [ x"$is_first_entry" != xtrue ]; then
- echo '}'
- fi
-+fi
-
- echo "$title_correction_code"
diff --git a/libre/hardinfo/.directory b/libre/hardinfo/.directory
deleted file mode 100644
index 725259ee6..000000000
--- a/libre/hardinfo/.directory
+++ /dev/null
@@ -1,2 +0,0 @@
-[Dolphin]
-Timestamp=2012,4,11,16,57,42
diff --git a/libre/hardinfo/ChangeLog b/libre/hardinfo/ChangeLog
deleted file mode 100644
index faf242a7b..000000000
--- a/libre/hardinfo/ChangeLog
+++ /dev/null
@@ -1,20 +0,0 @@
-2009-04-06 Eric Belanger <eric@archlinux.org>
-
- * hardinfo 0.5.1-1
- * Upstream update
-
-2009-03-29 Eric Belanger <eric@archlinux.org>
-
- * hardinfo 0.5c-1
- * Upstream update
-
-2008-08-13 Eric Belanger <eric@archlinux.org>
-
- * hardinfo 0.4.2.3-3
- * Rebuilt against gnutls 2.4.1
-
-2008-04-06 Eric Belanger <eric@archlinux.org>
-
- * hardinfo 0.4.2.3-2
- * Rebuilt against libsoup 2.4
- * Added ChangeLog
diff --git a/libre/hplip-libre/.hplip.install.swp b/libre/hplip-libre/.hplip.install.swp
deleted file mode 100644
index 819e785c6..000000000
--- a/libre/hplip-libre/.hplip.install.swp
+++ /dev/null
Binary files differ
diff --git a/libre/hplip-libre/rePKGBUILD b/libre/hplip-libre/rePKGBUILD
deleted file mode 100644
index 753b348e3..000000000
--- a/libre/hplip-libre/rePKGBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# This is an example rePKGBUILD file. Use this as a start to creating your own,
-# and remove these comments. For more information, see 'man PKGBUILD'.
-# NOTE: Please fill out the license field for your package! If it is unknown,
-# then please put 'unknown'.
-
-# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
-source PKGBUILD
-CARCH=x86_64
-unset build package md5sums source check
-_repo=extra
-options=(!strip)
-source=(PKGBUILD
- http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${_pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
- # files for pkg modifications
- )
-
-build() {
- cd "${srcdir}/"
- rm -v .{INSTALL,PKGINFO} ${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT || true
- # put actions for package modifications below this line
-}
-
-package() {
- find ${srcdir} -type l -maxdepth 1 -delete
- cp -a ${srcdir}/* ${pkgdir}
-}
diff --git a/libre/iceape-i18n/Makefile b/libre/iceape-i18n/Makefile
deleted file mode 100644
index 89aaccfdc..000000000
--- a/libre/iceape-i18n/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/make -f
-# Use this script to update the PKGBUILD's list of langpacks.
-# This script depends on:
-# - coreutils
-# - pacman
-# - sed
-
-# Variables:
-# This is to get it from Debian Sid
-debname=iceape-l10n
-debver=2.7.4+debian
-debrel=2
-debrepo=http://ftp.debian.org/debian/pool/main/
-
-pkgver=2.7.4
-pkgrel=1
-
-# Guts: ##############################################################
-
-default: PHONY all
-all: PHONY
- $(MAKE) clean
- $(MAKE) PKGBUILD
-.PRECIOUS: PKGBUILD
-
-PKGBUILD.list: Makefile
- sed \
- -e 's/@DEBNAME@/$(debname)/' \
- -e 's/@DEBVER@/$(debver)/' \
- -e 's/@DEBREL@/$(debrel)/' \
- -e 's%@DEBREPO@%$(debrepo)%' \
- -e 's/@PKGVER@/$(pkgver)/' \
- -e 's/@PKGREL@/$(pkgrel)/' \
- -e "s/@LANGPACKS@/(phony)/" \
- -e '/CUT HERE/,$$d' \
- PKGBUILD.in > $@
- echo 'package() { exit 0; }' >> $@
- makepkg -gp $@ >> $@
-langpacks.txt: PKGBUILD.list Makefile
- makepkg -dp $<
- ls src/*/upstream | sed 's/\.xpi//' > $@
-PKGBUILD: PKGBUILD.in langpacks.txt Makefile
- sed \
- -e 's/@DEBNAME@/$(debname)/' \
- -e 's/@DEBVER@/$(debver)/' \
- -e 's/@DEBREL@/$(debrel)/' \
- -e 's%@DEBREPO@%$(debrepo)%' \
- -e 's/@PKGVER@/$(pkgver)/' \
- -e 's/@PKGREL@/$(pkgrel)/' \
- -e "s/@LANGPACKS@/(`xargs echo < langpacks.txt`)/" \
- -e '/CUT HERE/d' \
- -e '/md5sums/,$$d' \
- PKGBUILD.in > $@
- makepkg -dg >> $@
-
-clean: PHONY
- rm -f PKGBUILD.list langpacks.txt
-
-.PHONY: PHONY FORCE
diff --git a/libre/iceape-i18n/PKGBUILD b/libre/iceape-i18n/PKGBUILD
deleted file mode 100644
index ef9906627..000000000
--- a/libre/iceape-i18n/PKGBUILD
+++ /dev/null
@@ -1,83 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
-# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
-# Contributor: fauno <fauno@kiwwwi.com.ar>
-# Contributor: Figue <ffigue@gmail.com>
-# Based on icecat-i18n package, which is in turn based on firefox-i18n
-
-# When updating to a newer upstream release:
-# - Edit variables in in Makefile.
-# - (optionally) edit PKGBUILD.in
-# - Run 'make'. It will take care of everything else for you.
-
-_debname=iceape
-_debver=2.7.11
-_debrel=1
-_debrepo=http://ftp.debian.org/debian/pool/main/
-debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
-
-_langpacks=(be ca cs de en-GB es-AR es-ES fi fr gl hu it ja lt nb-NO nl pl pt-PT ru sk sv-SE tr zh-CN)
-
-pkgbase=iceape-i18n
-pkgname=($(for lang in ${_langpacks[@]}
- do echo $pkgbase-$lang | tr A-Z a-z
- done))
-_pkgver=2.7.11
-pkgver=${_debver}.${_debrel}
-pkgrel=2
-
-pkgdesc="Language packs for Debian Iceape."
-arch=('any')
-url="http://packages.debian.org/source/sid/iceape"
-license=('MPL')
-depends=("iceape-libre>=$pkgver")
-source=()
-for lang in ${_langpacks[@]}
-do
- source+=("${_debrepo}/`debfile ${_debname}`-l10n-$(echo $lang | tr A-Z a-z)_${_debver}-${_debrel}_all.deb")
-done
-
-build() {
- cd "${srcdir}"
- for f in *.deb
- do
- bsdtar xf $f
- bsdtar xf data.tar.gz
- done
-}
-
-_path="/usr/lib/iceape/extensions"
-
-
-for lang in ${_langpacks[@]}
-do
- eval "
-package_iceape-i18n-$(echo $lang | tr A-Z a-z)() {
- install -Dm644 \"\$srcdir$_path/langpack-$lang@iceape.mozilla.org.xpi\" \"\$pkgdir$_path/langpack-$lang@iceape.mozilla.org.xpi\"
-}
-"
-done
-
-md5sums=('fb27360aff6250e7d483803583a5cd78'
- '236c7aacd7e6416a37aff95f7bfa6a80'
- 'f17d76128ab529415078cafe63b61d50'
- '07a5c72158427db8c5a990be6eb2d036'
- 'fddbcf27d00f1f4d92fed197ace8dd1b'
- '96eb3291200c44ffdc3ab1d1446f00b7'
- '04dec3bee388ae66cd434342ab03074f'
- 'bdef8b38501e7d6805b5304ef2bf8425'
- '90b5d0ab0ab2eb3b75e5f80cb6d289bb'
- '97f940c39b84a90b0e16eaeca4fa7806'
- '34644b44381ae1da46f2fa308fd1cf34'
- 'a6240664344798568276dd5dbdd27fb2'
- '61aedef6a89b400584dde82b5e97ff0f'
- 'abe7a9172876b30c4677b1f4c2237fc9'
- '60f3c543fbdb72cc12aef8f2369101ff'
- 'c002da281c0d0fa357f92edd2b8cd12c'
- 'c17ab30f25f05024879afdf85fa4c516'
- '250a08a999d6d1d6086ffbd17d60fbb4'
- '609ce8793ea0d5465da7195e4d956fef'
- '060226599bac5bc8ddb64417ef1a0108'
- 'eaa827909690bfa8dfdc621164e23ca8'
- '3fb66893b5ea3b959de48ef16fb26c74'
- '6f2d77e767efa0b0d4cb56df9ccd0a2f')
diff --git a/libre/iceape-i18n/PKGBUILD.in b/libre/iceape-i18n/PKGBUILD.in
deleted file mode 100644
index 6891b2672..000000000
--- a/libre/iceape-i18n/PKGBUILD.in
+++ /dev/null
@@ -1,64 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# Contributor: fauno <fauno@kiwwwi.com.ar>
-# Contributor: Figue <ffigue@gmail.com>
-# Contributor: André Silva <andre.paulista@adinet.com.uy>
-# Based on icecat-i18n package, which is in turn based on firefox-i18n
-
-# When updating to a newer upstream release:
-# - Edit variables in in Makefile.
-# - (optionally) edit PKGBUILD.in
-# - Run 'make'. It will take care of everything else for you.
-
-_debname=@DEBNAME@
-_debver=@DEBVER@
-_debrel=@DEBREL@
-_debrepo=@DEBREPO@
-debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
-
-_langpacks=@LANGPACKS@
-
-pkgbase=iceape-i18n
-pkgname=($(for lang in ${_langpacks[@]}
- do echo $pkgbase-$lang | tr A-Z a-z
- done))
-_pkgver=@PKGVER@
-pkgver=${_debver}.${_debrel}
-pkgrel=@PKGREL@
-
-pkgdesc="Language packs for Debian Iceape."
-arch=('any')
-url="http://packages.debian.org/source/sid/iceape"
-license=('MPL')
-depends=("iceape=$_pkgver")
-source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.gz"
- "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.diff.gz"
- "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.dsc")
-noextract=($(for lang in ${_langpacks[@]}
- do echo $lang.xpi
- done))
-
-dpkg-source() {
- # This will simulate dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
- cd "${_debname}-${_debver}"
- patch -p1 -i "${srcdir}/${_debname}_${_debver}-${_debrel}.diff"
- cd ..
-}
-
-build() {
- cd "${srcdir}"
- dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
-}
-
-_path="/usr/lib/iceape-${_pkgver}/extensions"
-
-# CUT HERE <-- Separates package_*() functions from everything else.
-
-for lang in ${_langpacks[@]}
-do
- eval "
-package_iceape-i18n-$(echo $lang | tr A-Z a-z) () {
- install -Dm644 '$srcdir/'*'/upstream/$lang.xpi' \"\$pkgdir\"'$_path/langpack-$lang@firefox.mozilla.org.xpi'
-}
-"
-done
-
diff --git a/libre/icecat-i18n/Makefile b/libre/icecat-i18n/Makefile
deleted file mode 100644
index d1aaf7bff..000000000
--- a/libre/icecat-i18n/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/make -f
-# Use this script to update the PKGBUILD's list of langpacks.
-# This script depends on:
-# - coreutils
-# - grep
-# - pacman
-# - sed
-# - wget
-
-# Variables:
-_pkgver=10.0
-pkgver=10.0
-pkgrel=1
-
-# Guts: ##############################################################
-
-default: PHONY all
-all: PHONY PKGBUILD
-
-index.html: Makefile
- rm -f $@
- wget http://gnuzilla.gnu.org/download/langpacks/${pkgver}/
-langpacks.txt: index.html Makefile
- egrep -o '[^>".]+\.xpi' $< | sort -u | sed 's/\.xpi//' > $@
-PKGBUILD: PKGBUILD.in langpacks.txt Makefile
- sed \
- -e 's/@_PKGVER@/$(_pkgver)/' \
- -e 's/@PKGVER@/$(pkgver)/' \
- -e 's/@PKGREL@/$(pkgrel)/' \
- -e "s/@LANGPACKS@/(`xargs echo < langpacks.txt`)/" \
- -e '/md5sums/,$$d' \
- PKGBUILD.in > $@
- makepkg -dg >> $@
-
-clean: PHONY
- rm -f index.html langpacks.txt *.xpi
-
-.PHONY: PHONY FORCE
diff --git a/libre/icecat-i18n/PKGBUILD b/libre/icecat-i18n/PKGBUILD
deleted file mode 100644
index aebc6cef0..000000000
--- a/libre/icecat-i18n/PKGBUILD
+++ /dev/null
@@ -1,240 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# Contributor: fauno <fauno@kiwwwi.com.ar>
-# Contributor: Figue <ffigue@gmail.com>
-# Maintainer : Márcio Silva <coadde@lavabit.com>
-# Maintainer : André Silva <emulatorman@lavabit.com>
-
-# Based on firefox-i18n package
-
-# When updating to a newer upstream release:
-# - Edit variables in in Makefile.
-# - (optionally) edit PKGBUILD.in
-# - Run 'make'. It will take care of everything else for you.
-
-_langpacks=(
- af
- ak
- ar
- as
- ast
- be
- bg
- bn-BD
- bn-IN
- br
- bs
- ca
- cs
- csb
- cy
- da
- de
- el
- en-GB
- en-US
- en-ZA
- eo
- es-AR
- es-CL
- es-ES
- es-MX
- et
- eu
- fa
- ff
- fi
- fr
- fy-NL
- ga-IE
- gd
- gl
- gu-IN
- he
- hi-IN
- hr
- hu
- hy-AM
- id
- is
- it
- ja
- kk
- km
- kn
- ko
- ku
- lg
- lij
- lt
- lv
- mai
- mk
- ml
- mr
- nb-NO
- nl
- nn-NO
- nso
- or
- pa-IN
- pl
- pt-BR
- pt-PT
- rm
- ro
- ru
- si
- sk
- sl
- son
- sq
- sr
- sv-SE
- ta-LK
- ta
- te
- th
- tr
- uk
- vi
- zh-CN
- zh-TW
- zu
-)
-
-pkgbase=icecat-i18n
-pkgname=(
- $(for lang in ${_langpacks[@]}
- do echo icecat-i18n-$lang | tr A-Z a-z
- done)
-)
-_pkgver=14.0
-pkgver=14.0
-pkgrel=1
-pkgdesc='Language packs for GNUzilla IceCat.'
-arch=(
- any
-)
-license=(
- MPL
-)
-url=http://www.gnu.org/software/gnuzilla/
-depends=(
- ${pkgbase%-i18n}=$pkgver
-)
-source=(
- $(for lang in ${_langpacks[@]}
- do echo http://ftp.gnu.org/gnu/gnuzilla/lang/$pkgver/$lang.xpi
- done)
-)
-noextract=(
- $(for lang in ${_langpacks[@]}
- do echo $lang.xpi
- done)
-)
-
-build() {
- cd $srcdir
-}
-
-_path=/usr/lib/${pkgbase%-i18n}/extensions/
-
-for lang in ${_langpacks[@]}
-do
- eval "
-package_icecat-i18n-$(echo $lang | tr A-Z a-z) () {
- install -Dm644 $srcdir/$lang.xpi \"\${pkgdir}\"'${_path}langpack-${lang}@firefox.mozilla.org.xpi'
-}
-"
-done
-
-sha512sums=(
- 765390ba04d88b4b56cebab007f9f593e33c54fe3cd8dbbafdb48171db68e23cd4e1c3d8360f2ef641a537e27f1d6db1aa8a0bdade854d3151359ecab6676af9
- 2b21f849299e7185163ce99e91aa612f64094cdf792bb855eb8836be940c0ef1cdfd33da080a793def714874810b269373f0c80830f42919f967417356efb86f
- 86a79b1a785c967d56bb492a1c5867c42ac00832813a72027cc0a51dd940c1020dc7c911109efd9eb4ef1a9d996eea6382cd0a03a6a53e3347f909a28a3a943d
- 727e3f44812c9c56620b7871fcffb28ebabef460fc52f483402fae787d90f3f197703e0bbde689a744e1135602b5ee765023402e0d365812e8521f8cf9dd2791
- 06989be3fd8d73f7887dae3bac7b0bdc80c7a11b7e6c8630da0ee4652f0ffbd60e01c049242ab3b61555f84485ce9b2f098c80cf6dba41538442cdc5cbdded9b
- bc9e19e9e216df4acb8d9bccae2e0e426ab402998934ad9393cf86a2a81c6d20c7ba622d1f312dd70a62c8659b611421904ba0aa5aa7e3eb7ece5ed578cbdd81
- f12d343a5b5f9f35d3d112f041baa29919bfda8bf4c22353ac899ee65eda438c6a9ed243e7a03fb659aff0f9c448bfa5146807b8d3eafa9dd7b8384d7a0d8124
- 11cedfcd91a550fa1f65d1eca4ebac97ecd7c823e7a41e74f908ae1dc0b36b7cbb0c91c2640de5a0ba61c6820c0101c195bb31482376880025b494b280c7274d
- 51f0b5e575f99b718b5ca96416148cced3a2c3fcd512e7135d3062fbc6e3c0ede86cb5bbda4a0bed43f6bd73d5c493a97c5bfbf373a92edb48b4a299b27a4f4d
- de166d28ba81758d002712c408eada0ca5955e9b6275bc5f491177496f79f8de9dd5d5cd10cda5bc7671c56d7b5d15e136910d671da58ab1363b4dae769b58c9
- 79c0d107c1c61cd6281e0c545f10389a9968b7f49f27a4ff531c729c608cfff9107430f6d7b323a9f00cd2259ef5787db817b7aaa226272e7347413e0a50be83
- a1f5399254c5ce261468dbf539072371a51796de02331e173f8c44704f95d7784280115f7ba1deb46874caeccdeb925d9fe540dc8b5ada5970df6274a06f3429
- 11a278717f5da5a6d284242863bda3142ba4263946104fdbd86545f741127a368138bd4f7d0bd7bf377795d5d36fc61544b585dc044d5a6ddf93ce077f1e747f
- 34a995016f4d7bff5c972bb4ef252a0ddac4f0b36943c7e4f8fbb899827aec307a081a7a30f1cb1fdf8c84af82f8f32675c57c45c39f7e47f21aacb75438be48
- fc5d410a903912f05886c4573a3b199efae22f8c9810a7bfc6acf8b5851b1791d97bd562a9c77204b7cf9091e0731ffe332c640d8693165f69cb934e8d523e04
- ab03d3e5391f806b6733078501d8a767cf2267d126cba284d473de21a7c976e55bd7ba63e3489336232ee9f5a7672b8c436e19adcfc68fe2a69db4e08b6f4b19
- fa55b4a26a346c21f0b98c137c4fabbd7aaaa61de45da89ca26c78044d23be8333f2d0c849ec5a34ff7517a556a979ee98b1ce87f02174fcb695632bbbb5edeb
- 1ac410bd9b30d917b77ebac3ba08e25adaa4a20a6a77d13229a0efedca7a3b650777a6ca71675fde69f06137b09150dd2dee89760b93801dcf14b2801e6e5ad8
- 0b37ef6936f78c0384c36be7ad174cb90b5ca55b77128de6cdb6663de191144392728fccabc2baca25cb2d0f1ba69b80598bbf531e18b473a9515b553c1f594c
- e2d4d6f1fc470d17dfc35b193c20f23b07dfbe54cad1b4f47d2f534493ea297dbdaf15e6c9b1556049c2db314dde66701a0624ef8af8f85f9cebbbf30f50ab3f
- c3874b81b84de34fd9cfbb8b009dd033e57ffc726f7b607d895a917e4eb7ef9770ec0e24e0c41cdcd82f29c8140438101c1d1263ee64fbe0117c6b1510c0ed54
- e06f5da5fd157045be13459635b881cd09c92cc5f56af7d745afbdb52889ff18e23a75475331cc13471d9e7aefe157f43ae83074856d81e4f4ad0a9b275d58a5
- f04c77b037b04bf69929cdd712126b6c08a786d7a66181b3e536ca97c750506963b699dd8c4374fc01a86e694100f3fd9ed15d88ada0ef52364f492c5f61bb16
- f538442bf340e7856522288498de54a28dd0b25f36ad7897d1e444e46e98d17c0e5432c6f40e02c49cacacbe5b6b87a4db0dfec3f79e52df91ef278e15afdd73
- 9154c78adb5ec3d4c5dcb69bd61fb2b9a98a908f3fb6344ca5ba2ac96145ab8e770ad786b2c704f522c9f6cf61fdaf256e309e85bf105bbd83df892840804fca
- 5c80bddaf0e51984034aac3d211327f89209673cceee5fc30dc4d9958cf44f564ce7aae995795987885c560a427a0098958fdcbf4534f5c84ec9778a3cd555c5
- 1d8a8a3fe5b2ade77dbd7b6f7fee74cd82452ec4eeee42bcb590b6f919fbccd9d345dc1ac2c171d265882e3583b6826778df73713e23df4c4ca66cfed594971b
- 6d060b98e0a1d27b87d2e3b4c038756897af223759a53e3ce31beca9244d27f71610e5bc87ffbc5c53aced569165067ebf07720e33ee2ac27105a981dbc201d4
- 646eaaedec5aca57f26c0e1a8cc415e1607efc72a1f37205c40a22ee38e334ec138851375b0091c5d5ea5d8c5d7a2e2e90422e6aec0ddf6079a46f09696911b0
- a7619e2cd951f2b6c87f54386159fbffe5ef3895b05ac5422c76403b8cfd31b05ce98e3dd1532b79e81629adab828149c7154ba861d0bd4760a24ba74a8f4293
- 06dc48e0368927111fc7b4d3ea86c1a8a3a4b077fe0bddd434cf388c9048d2ea0cbd6184becfb2d02005c2e3ed6351e019a086a705c558a8e1e2df0a2816516f
- 5b2120ffe02f469c1b52f0c4d9255619781aeac36e40c8df700707c955118ec298b78474ac2a17cf9d2823f049e9e15596fc58c4cffb5ac07315f9a73f7e2ad3
- c3141419942b85f93b2d6f5643544987f57e2805f1586c40ba91b814876cdf635f2500d350ad2a335cf440405716ed8e212221a7a9140cd8a4c3edee67fd3658
- 5fab16a0210bb6d6bcd18701ec0ff669bf5a971dd9f6953186864e09758ca37283af88c7dfec120cef87b9372bad61ac76d8248dad2bea68ca86b3a6410bc446
- d793679d2b51ecf41c0265e9bd9549d8bdae7d1db2afee631088bbf0aee314f16037840fcef8a1241519b952cdebec7f3eecedf3583ccdb92514d855d8577eb8
- bf658f472d23871cb3b54f9100bf3e935985625b4607330dff318315b9b56eae913c020ec69b0465f6a5cb3ac508e39bc0597e65cc940c20db7a63e3728dd632
- be75a19e56a39b597a88133071ca8f8d8ad2931d9accf47db3370d72c5d0dc9fd1c206f70ba64643a1657198ee930eb8884f36e2f9a2e7dbafb9bcd624c1c993
- b2ba8025736c7c8b40661826908c046e9ba8d61c1f273594d043c56f62dec39ed8e27c428a9444b946c2f638bdf60af5b9c5bd90b578d37dcdd884a9b0766d83
- cb140b72c26eb8e0d150cfac0da9a74932f2764911764d2ba326a6c059547e8e6ad1a5b5f6630b55f8dff1290182672c0c6016cf863b22a0e17524a79c1b835e
- 5b6426c3c68ead2e9dd4975d18d671bdead44e455ee2802935fa34d153a9a651af765f25731ff0cd462823c85e60b3ad13b9e4a340c80e5b6435d9cb74545a89
- 03501a4808ba5cb0c9a94b61843a33604fde88d00bac2cc0e141975cef5ccc2ad4de219bcc077b92191fa45ba228dff3920c206add564a4331ccfbe02a8f69db
- 5277580baa12169d15396ee08d019f5a1fa4cca86ba52e0e2dd05b0f497599cd5c560638ed502b842328c3e767a0f2bffcb6cfdbeada4d7613ff9f9040bd416f
- 6656d0508d65c6e860fe66f5d1180c6040f03ac0579a85dded1f3e2b3d26341be4da8c423029927443ac99dfd52a954aa21f1a06a729ecaa4dca1522ccdd9333
- 4dcc6b8f1305d3b9ee3b6f90a92d169d8c9a3d6aec52b92c320a9cad88fc7c26567a343e201d943c56e721c587d2bbd74bbcfdb29fc0a2691f85e9262fad5dbd
- 046b6d47386940892f07a10f564b9bbd0fdf7094a0e1f468f42d4b33514d8122b54a78fd6de09ad442a497eba266ad459733a86eda417c87db91d988c9d1ce2d
- 0334bb286b560fa28ce9763868110970043155a24f6fec9b01611639add7b2f98781692d4ef84244d67c91afe477a9b1984aaedcba570ad0169c77d904cf865f
- 6dda8b0cd0b5862520812ad2e2d4a5ee7d4be030565dcec55cefb0ff3eb960fb1f18aa52ee437d96890ccc35483d93b4fa684ea042cbb530d038d99770e45760
- 5ba5df20669dd3b337dae8de5f909def9747f4c22c041108ca30398ff59004c4a37dbfe88c243d55af23ef85fbe4509d4a4ddda772626f5170573f89a6f7990b
- 9dd8b244130b291d16390fabf3470235892ae2506f7020fb5e1a3dcf142a5f771e3ebc91a6b14036721dd216751764a2d5cd74a6f60db92cdbe62e97f69d6af5
- a64ef951b6f0e23d8407414b9c1a5f5c8eabf89d7680fcbedb5acb70a9ca7e4c3253437e2af23c4287ecb5638587bceed4a87edc990056b26199e8cd9b955275
- 57459b8e13110e89acaa042a3c7bcfdde40c8f5e7fe00277f38960e23a9e750b1a85fba35fff29c8eca0d0d6c2e38a357cc2692a80af70feef8816225a88805b
- 33cd4be72524c0d0877760a882c79e47fff8036e455103a2587d2eb694715f081a5c95355a8a536df08da4a62c8872001db2a9a1431fe9803d2267a3e02334e9
- 5e653ab0eb49e89408b51f34a549f0f1ac20868d121f9688f04a53788748b69f7f4628355fb23de6c1f69aefbb244d646debf345bed8f98a9f16f1fbd785f116
- 04bcfcf4683ff0f0596e703ea280d843d42f5e883a7c252518c1cc1953b7a7391b38adcab720a020164fa6adfbdfc8f40255109641880c83815b4b5bdb218378
- 6d550a3a1b4e1c375e6754e0e81e049bb10c04ec87614266123076dbc71b518bac4dc03233c7f8fb022302e1d5f7ed0064efdf6a21a98d17b8b0600b04b540fb
- a8a14d0095ed6cb5b6e06f9737cbd7923c4fbce394671e510e275198312144706fa3e3063f4f57a3cd4ec9b08714f8e6b9d01943613b0147502be77647cc9440
- 3fa8938e38ea904b31a086b7cf8221b5ec4aa3c125fab79a9c88e68cc799595117d2199b6fc80e8b7cc1a809e1a10c230a929f420e4ef25bbd04775a0dfd52e1
- 1cb6fca6e8214603b1d60f5c0a187514b002704d33811ce229129a223fd63d55b4aafb1ccd1ed21d003f32b983bff8f785c74b488673edb8a5027f336dfde5d4
- 6566215d680dabf8184ba6edd33ddeeec09d2e2544250e7cf5026c4ea420de6273568056ac403739649d1f2636764459525b847f9d6e21ff860d211bdd3a0eed
- 2c085539c1ab882b0370b2112d517b8f1be1f5869560fa5c0242ccc159c01b9f1c770593e72cafa6eecc3e3e623fe33a9901b2e0d576d98c85219122cdb34317
- 1f7e9eb6351e8de6b709c0a31b1cfcbfa108288da5b5b99ea88235e568b84ee0a3eabd8814c5f4b9935caca467f4a8e4531317ba8abf2d6d3121def8682fa961
- fde912f0a7cfac59fad72a56ddfe6c7ff10fc51a53ac5b89229f08f18c4ff689eb15d2980d32433b640f62941e7b38c4bf147b7728c22849fb04da46a13ec707
- e8b4de904e52503028ba50ec96fc4cf151ccae03bf42240c680204fa1794233374db6a4cc3a2e13965c28af2984be9f55288b0a9f522ec0d1ae738829da04b52
- 5bf071de14dce19ef5faa4b0b35a0618eb65093283c22d4da16b45839b6b3cfd4314fb8173f419dd3596b9684fd7c6ca1258098e0b9c4167b1546987c0e93b1e
- ba0af0ad267b49e2890e77568882eae7d34846208472bfa3299934ae6d40a9864e39340a8228dd6215988a3238dd59dc84856e0d7cb4375601b0018683e867e7
- 3aac042bc0107e8f5d25009266f61272edbb70cad3dd0e984344738995a2119df247a4664bbd1c2bf9f7f889d0f8cb7039b6e852208f2f0c6040ef8953072cc4
- 8c1621ad105104b6dff50fa769c2504d66ef0d1c716f954ab1eb83742efad48be22ec718d4520a262bc733b42c72ef1a0085d1a1868124c5c18a1b4141b89041
- 1da09d13349b54f21ccaa46c0d96c320ee940af10591755a55e8953187a6159b1e1ebe087e3061888dbdc43ee767ed59259312d10e04f1374c45a715d09935ff
- f0430e711a97bc9b0603620ac4a9adf7f63916c5ccdea3db588679df6a36fc4ccf7a17c9f581f7fab679002c50e4f0b8708ae5a2ee9bce4cb1d39bcc2dc05aef
- bef2db0771b5f7053366d0a2f4fc9cce96649af1aec497bb5f38b9fd3affa0fc662a194d2f69f8cc49121037350690b6506da6f6659c41bef734089c8c7da784
- b7585ac1320f12915f01359a573eeff3524fbe24a583476f12a18ce16389c00802f4e48ebc2d4ecdb002dbcca97a44ad5721b0445bcfe0dee220f7d90abef4a5
- 59e278a846484b7c57c978b66658031d23dfc297f63bd756f82701b700906f74322de60988cd481a84c48a7d5e828e411e2ca7e4e58f7f695016b6ffbd680af1
- 21dc4bcdece71d8d310e179c010dc6c4b089ab55315ba7c67aee7da5a93b3ffc22f27e0c10087137c594adf1114abdbeda2424d5ee8c4944e6ad2a780d93acfb
- bf16ae0501316c61656147bdff8140e9f75bfbc9ee625e791b11531d019a6431d9c9ee4110f2d566ae4f11c8d6d4d035c3ebed1a0f6ee0d98f2ede52bcc91e16
- 32161e5a951c353456564b6b0a203e148986322eccf7169630bda6fe8e3913485d431940595a27ff3e9ed71d3a9f2b2a2fd2835363e5db69a2982273e321186c
- 01f6d21908175d58123faa91ec0545a173226052632ef636a3b6ded2b77bd6554532eb94e2a87ae2a64ef62cceacf3fc800360232b11a51cc91dfde4397190d8
- 8f8275d5a4582b524a6dd31ee81afffe1ca8371a87f50cfb663ab397a5906f6ad485b7ed7c49781af9bce82ef5e34f2d3de883ed45a5972ccb187cdbdae9c7c7
- 7183274b7d97652ae635a971dd539d46d16a397eac1f3e51c93c53fb8abfd6eb01cdfd41f7c951847291b033a17e6566ea2b9a629dc5796f012bf1993ca14b40
- b35822f1b09062a9c5b6fa41e036657f68def07a15ee9d5f078d372fdc17bb36fa42f08c1a3ed73bb7eb63d290041f441a580c19ee1f2fe789575aa6361b0293
- c9d05ac24a63799805ebe257c11675c1400a014e0d8c408a02e9b3842ec7bf40922a76120297b6796bba3adff0d2449abe1068085176f0deec0463756e3b5c3d
- 28ff49291b5cfc51acd878fee3e2de6693bc060ac8f4b1233d44cd5797bf2815c0a563f07decd38647d384f183fb9f945e1040d77bfde4503320a5af2b91482f
- 8a137bc5d30e662a28fb809615ebf480503e278a5882aa81b71260d8c548b73e0401e458a6dc4cf0e9e9a61bbadb72a5d8c4e636d7ce616672bf7f10bd4dc810
- cfa399cf459b2487f260a7287b1ddfcbc8ecde9bda160f6f8036bbff7389a383be5acadbfad092b72cbf7d77d8b053fbe98b3df0ae6f01029b92e78bbbf681ba
- 5553b2e0193fe0aa65cc88171b5358949906ee01292bc2b2aaf1bc7c330b703d998901999aa5dd923861886b589411b221ae00fc3323cc3bb23068dd21220601
- 502426fc851b9ce8782a7c73b6024492b8e7a46764eaaf2a3b4fef7546312dde9ae9d6a83619f93c3fa96e85767d0cae668f3f9d4cf16427d9b8e7f55163df41
- 5b48c402f4ac36366d157a30db3c36e0bbbf6f8601a498ef0d7cfac4899ed5a168826caae7427f949cef7c54fada0c4886b5f7b7c9efb933fc246781845d5db4
- e8b0a1580757da961551580dcb83fe5dca1a99e446fc9b0bf302e7eded06f4ad795650743b387c0ce05840f238940e0013019b4b36d9eaff1272057fe2949c0a
- b2d8be6934966c477c07f6c7fbe341148b7cdb75aeb51ac0fbe15b72c933a2886454057237ae968a3ce7d3d8b7132b8d9f488dac8e68f6ed451c608c17738f27
-)
diff --git a/libre/icecat-i18n/PKGBUILD.in b/libre/icecat-i18n/PKGBUILD.in
deleted file mode 100644
index 90c901e31..000000000
--- a/libre/icecat-i18n/PKGBUILD.in
+++ /dev/null
@@ -1,46 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# Contributor: fauno <fauno@kiwwwi.com.ar>
-# Contributor: Figue <ffigue@gmail.com>
-# Based on firefox-i18n package
-
-# When updating to a newer upstream release:
-# - Edit variables in in Makefile.
-# - (optionally) edit PKGBUILD.in
-# - Run 'make'. It will take care of everything else for you.
-
-_langpacks=@LANGPACKS@
-
-pkgbase='icecat-i18n'
-pkgname=($(for lang in ${_langpacks[@]}
- do echo icecat-i18n-$lang | tr A-Z a-z
- done))
-_pkgver=@_PKGVER@
-pkgver=@PKGVER@
-pkgrel=@PKGREL@
-pkgdesc="Language packs for GNUzilla IceCat."
-arch=('any')
-license=('MPL')
-url="http://www.gnu.org/software/gnuzilla/"
-depends=("icecat=${pkgver}")
-source=($(for lang in ${_langpacks[@]}
- do echo http://gnuzilla.gnu.org/download/langpacks/$pkgver/$lang.xpi
- done))
-noextract=($(for lang in ${_langpacks[@]}
- do echo $lang.xpi
- done))
-
-build() {
- cd "${srcdir}"
-}
-
-_path="/usr/lib/icecat-$_pkgver/extensions/"
-
-for lang in ${_langpacks[@]}
-do
- eval "
-package_icecat-i18n-$(echo $lang | tr A-Z a-z) () {
- install -Dm644 '$srcdir/$lang.xpi' \"\${pkgdir}\"'${_path}langpack-$lang@firefox.mozilla.org.xpi'
-}
-"
-done
-
diff --git a/libre/icecat/bug-xulrunner-copy-stub.patch b/libre/icecat/bug-xulrunner-copy-stub.patch
deleted file mode 100644
index 8ccf127df..000000000
--- a/libre/icecat/bug-xulrunner-copy-stub.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/browser/app/Makefile.in
-+++ b/browser/app/Makefile.in
-@@ -233,7 +233,7 @@
- else
- ifdef LIBXUL_SDK
- libs::
-- cp $(LIBXUL_DIST)/bin/$(XULRUNNER_STUB_NAME)$(BIN_SUFFIX) $(DIST)/bin/firefox$(BIN_SUFFIX)
-+ cp $(LIBXUL_DIST)/bin/$(XULRUNNER_STUB_NAME)$(BIN_SUFFIX) $(DIST)/bin/icecat$(BIN_SUFFIX)
- endif
- endif
-
diff --git a/libre/icecat/firefox-install-dir.patch b/libre/icecat/firefox-install-dir.patch
deleted file mode 100644
index 9c115f0eb..000000000
--- a/libre/icecat/firefox-install-dir.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -Nur mozilla-release.orig/config/baseconfig.mk mozilla-release/config/baseconfig.mk
---- mozilla-release.orig/config/baseconfig.mk 2012-10-09 07:34:41.762092280 +0000
-+++ mozilla-release/config/baseconfig.mk 2012-10-09 07:40:53.052771576 +0000
-@@ -1,9 +1,9 @@
- INCLUDED_AUTOCONF_MK = 1
-
--includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+includedir := $(includedir)/$(MOZ_APP_NAME)
-+idldir = $(datadir)/idl/$(MOZ_APP_NAME)
-+installdir = $(libdir)/$(MOZ_APP_NAME)
-+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
- DIST = $(DEPTH)/dist
-
- # We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't
-diff -Nur mozilla-release.orig/js/src/config/baseconfig.mk mozilla-release/js/src/config/baseconfig.mk
---- mozilla-release.orig/js/src/config/baseconfig.mk 2012-10-09 07:34:58.411973276 +0000
-+++ mozilla-release/js/src/config/baseconfig.mk 2012-10-09 07:39:55.143186168 +0000
-@@ -1,7 +1,7 @@
- INCLUDED_AUTOCONF_MK = 1
-
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+installdir = $(libdir)/$(MOZ_APP_NAME)
-+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
-
- ifneq (,$(filter /%,$(TOP_DIST)))
- DIST = $(TOP_DIST)
diff --git a/libre/icecat/firefox.install b/libre/icecat/firefox.install
deleted file mode 100644
index c1fe8284a..000000000
--- a/libre/icecat/firefox.install
+++ /dev/null
@@ -1,13 +0,0 @@
-post_install() {
- update-desktop-database -q
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
-}
-
-post_upgrade() {
- post_install $1
-}
-
-post_remove() {
- post_install $1
-}
-
diff --git a/libre/icecat/libvpx.patch b/libre/icecat/libvpx.patch
deleted file mode 100644
index f883b8e08..000000000
--- a/libre/icecat/libvpx.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur mozilla-release.orig/configure.in mozilla-release/configure.in
---- mozilla-release.orig/configure.in 2012-02-05 16:01:35.722024142 +0000
-+++ mozilla-release/configure.in 2012-02-05 16:03:34.871064547 +0000
-@@ -5629,7 +5629,7 @@
- dnl v0.9.6 one to check for.
- AC_TRY_COMPILE([
- #include <vpx/vpx_decoder.h>
-- #if !defined(VPX_CODEC_USE_INPUT_PARTITION)
-+ #if !defined(VPX_CODEC_USE_INPUT_FRAGMENTS)
- #error "test failed."
- #endif
- ],
diff --git a/libre/icecat/mozconfig.default b/libre/icecat/mozconfig.default
deleted file mode 100644
index 01e047fc3..000000000
--- a/libre/icecat/mozconfig.default
+++ /dev/null
@@ -1,63 +0,0 @@
-# This is a better commented version of the default .mozconfig from 9.0.1
-ac_add_options --enable-application=browser
-
-ac_add_options --prefix=/usr/local
-#ac_add_options --with-default-mozilla-five-home=/usr/local/lib
-
-# System libraries
-ac_add_options --with-system-jpeg
-ac_add_options --with-system-zlib
-#ac_add_options --with-system-png
-ac_add_options --disable-system-cairo
-#ac_add_options --with-pthreads
-
-ac_add_options --disable-toolkit-qt
-ac_add_options --enable-toolkit-cairo-gtk2
-ac_add_options --enable-default-toolkit=cairo-gtk2
-ac_add_options --enable-svg-renderer=cairo
-
-# Features
-ac_add_options --enable-extensions="default spellcheck"
-ac_add_options --enable-freetype2
-ac_add_options --enable-pango
-ac_add_options --enable-crypto
-#ac_add_options --enable-postscript
-ac_add_options --enable-svg
-ac_add_options --enable-xft
-
-ac_add_options --disable-chatzilla
-ac_add_options --disable-accessibility
-ac_add_options --disable-calendar
-ac_add_options --disable-composer
-
-#ac_add_options --disable-jsd
-#ac_add_options --disable-libxul
-ac_add_options --disable-ipc
-ac_add_options --disable-ldap
-ac_add_options --disable-mailnews
-ac_add_options --disable-negotiateauth
-ac_add_options --disable-profilesharing
-ac_add_options --disable-xinerama
-ac_add_options --disable-xprint
-
-ac_add_options --disable-crashreporter
-ac_add_options --disable-updater
-ac_add_options --disable-tests
-ac_add_options --disable-mochitest
-ac_add_options --disable-installer
-
-ac_add_options --disable-debug
-
-# Optimization
-ac_add_options --disable-elf-dynstr-gc
-ac_add_options --enable-optimize="-pipe -O3"
-ac_add_options --enable-strip
-
-# IceCat
-export MOZ_PHOENIX=1
-mk_add_options MOZ_PHOENIX=1
-
-ac_add_options --disable-official-branding
-ac_add_options --with-branding=browser/branding/unofficial
-ac_add_options --with-distribution-id=org.gnu.gnuzilla
-ac_add_options --with-user-appdir=.gnuzilla
diff --git a/libre/icecat/mozconfig.firefox b/libre/icecat/mozconfig.firefox
deleted file mode 100644
index 428503642..000000000
--- a/libre/icecat/mozconfig.firefox
+++ /dev/null
@@ -1,46 +0,0 @@
-# This is the .mozconfig used by Arch for Firefox
-. $topsrcdir/browser/config/mozconfig
-
-ac_add_options --prefix=/usr
-ac_add_options --libdir=/usr/lib
-
-# System libraries
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
-ac_add_options --with-system-jpeg
-ac_add_options --with-system-zlib
-ac_add_options --with-system-bz2
-ac_add_options --with-system-png
-ac_add_options --with-system-libevent
-ac_add_options --with-system-libvpx
-ac_add_options --enable-system-hunspell
-ac_add_options --enable-system-sqlite
-ac_add_options --enable-system-ffi
-ac_add_options --enable-system-cairo
-ac_add_options --enable-system-pixman
-ac_add_options --with-pthreads
-
-# Features
-ac_add_options --enable-official-branding
-ac_add_options --enable-safe-browsing
-ac_add_options --enable-startup-notification
-ac_add_options --enable-gio
-
-ac_add_options --disable-gnomevfs
-ac_add_options --disable-crashreporter
-ac_add_options --disable-updater
-ac_add_options --disable-tests
-ac_add_options --disable-mochitest
-ac_add_options --disable-installer
-
-# Optimization
-ac_add_options --enable-optimize
-
-# PGO
-ac_add_options --enable-profile-guided-optimization
-mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-pgo
-mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py'
-mk_add_options PYTHONPATH='$(OBJDIR)/_profile/pgo'
-
-export MOZILLA_OFFICIAL=1
-mk_add_options MOZILLA_OFFICIAL=1
diff --git a/libre/icecat/mozconfig.old b/libre/icecat/mozconfig.old
deleted file mode 100644
index a790aee48..000000000
--- a/libre/icecat/mozconfig.old
+++ /dev/null
@@ -1,78 +0,0 @@
-# This is a better commented version of the .mozconfig used by the Parabola
-# package < v9
-. $topsrcdir/browser/config/mozconfig
-
-ac_add_options --prefix=/usr
-ac_add_options --libdir=/usr/lib
-
-# System libraries
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
-ac_add_options --with-system-jpeg
-ac_add_options --with-system-zlib
-ac_add_options --with-system-bz2
-ac_add_options --with-system-png
-ac_add_options --with-system-libevent
-ac_add_options --with-system-libvpx
-ac_add_options --enable-system-hunspell
-ac_add_options --enable-system-sqlite
-ac_add_options --enable-system-cairo
-ac_add_options --with-pthreads
-
-ac_add_options --enable-default-toolkit=cairo-gtk2
-
-# Features
-ac_add_options --enable-extensions=default
-
-ac_add_options --enable-url-classifier
-ac_add_options --enable-startup-notification
-ac_add_options --enable-gio
-
-ac_add_options --enable-canvas
-ac_add_options --enable-canvas3d
-ac_add_options --enable-places
-ac_add_options --enable-smil
-ac_add_options --enable-svg
-
-ac_add_options --disable-javaxpcom
-ac_add_options --enable-libnotify
-ac_add_options --enable-printing
-ac_add_options --enable-xinerama
-ac_add_options --enable-xterm-updates
-
-ac_add_options --disable-gnomevfs
-ac_add_options --disable-crashreporter
-ac_add_options --disable-update
-ac_add_options --disable-tests
-ac_add_options --disable-mochitest
-ac_add_options --disable-installer
-
-ac_add_options --disable-debug
-
-# Optimization
-ac_add_options --disable-pedantic
-ac_add_options --disable-static
-ac_add_options --enable-install-strip
-ac_add_options --enable-jemalloc
-ac_add_options --enable-optimize
-ac_add_options --enable-strip
-
-# PGO
-ac_add_options --enable-profile-guided-optimization
-mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-pgo
-mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py'
-mk_add_options PYTHONPATH='$(OBJDIR)/_profile/pgo'
-
-export MOZILLA_OFFICIAL=1
-mk_add_options MOZILLA_OFFICIAL=1
-
-# IceCat
-ac_add_options --disable-official-branding
-ac_add_options --with-branding=browser/branding/unofficial
-ac_add_options --with-distribution-id=org.gnu.gnuzilla
-ac_add_options --with-user-appdir=.gnuzilla
-
-# Parabola
-ac_add_options --disable-safe-browsing
-export BUILD_OFFICIAL=1
-mk_add_options BUILD_OFFICIAL=1
diff --git a/libre/icecat/shared-libs.patch b/libre/icecat/shared-libs.patch
deleted file mode 100644
index 1f22b2b0d..000000000
--- a/libre/icecat/shared-libs.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur mozilla-release.orig/browser/installer/Makefile.in mozilla-release/browser/installer/Makefile.in
---- mozilla-release.orig/browser/installer/Makefile.in 2012-07-17 16:19:29.480356991 +0000
-+++ mozilla-release/browser/installer/Makefile.in 2012-07-17 17:32:41.250937293 +0000
-@@ -50,7 +50,7 @@
- MOZ_PKG_MANIFEST_P = $(srcdir)/package-manifest.in
- # Some files have been already bundled with xulrunner
- ifndef SYSTEM_LIBXUL
--MOZ_PKG_FATAL_WARNINGS = 1
-+MOZ_PKG_FATAL_WARNINGS = 0
- endif
-
- MOZ_NONLOCALIZED_PKG_LIST = \
diff --git a/libre/icedove-i18n/PKGBUILD b/libre/icedove-i18n/PKGBUILD
deleted file mode 100644
index d7dbbb211..000000000
--- a/libre/icedove-i18n/PKGBUILD
+++ /dev/null
@@ -1,530 +0,0 @@
-# Maintainer: Márcio Silva <coadde@lavabit.com>
-# Maintainer: André Silva <emulatorman@lavabit.com>
-
-pkgbase=icedove-i18n
-pkgver=17.0.1
-pkgname=('icedove-i18n-ar'
- 'icedove-i18n-ast'
- 'icedove-i18n-be'
- 'icedove-i18n-bg'
- 'icedove-i18n-bn-bd'
- 'icedove-i18n-br'
- 'icedove-i18n-ca'
- 'icedove-i18n-cs'
- 'icedove-i18n-da'
- 'icedove-i18n-de'
- 'icedove-i18n-el'
- 'icedove-i18n-en-gb'
- 'icedove-i18n-en-us'
- 'icedove-i18n-es-ar'
- 'icedove-i18n-es-es'
- 'icedove-i18n-et'
- 'icedove-i18n-eu'
- 'icedove-i18n-fi'
- 'icedove-i18n-fr'
- 'icedove-i18n-fy-nl'
- 'icedove-i18n-ga-ie'
- 'icedove-i18n-gd'
- 'icedove-i18n-gl'
- 'icedove-i18n-he'
- 'icedove-i18n-hr'
- 'icedove-i18n-hu'
- 'icedove-i18n-hy-am'
- 'icedove-i18n-id'
- 'icedove-i18n-is'
- 'icedove-i18n-it'
- 'icedove-i18n-ja'
- 'icedove-i18n-ko'
- 'icedove-i18n-lt'
- 'icedove-i18n-nb-no'
- 'icedove-i18n-nl'
- 'icedove-i18n-nn-no'
- 'icedove-i18n-pa-in'
- 'icedove-i18n-pl'
- 'icedove-i18n-pt-br'
- 'icedove-i18n-pt'
- 'icedove-i18n-ro'
- 'icedove-i18n-rm'
- 'icedove-i18n-ru'
- 'icedove-i18n-si'
- 'icedove-i18n-sk'
- 'icedove-i18n-sl'
- 'icedove-i18n-sq'
- 'icedove-i18n-sr'
- 'icedove-i18n-sv-se'
- 'icedove-i18n-ta-lk'
- 'icedove-i18n-tr'
- 'icedove-i18n-uk'
- 'icedove-i18n-vi'
- 'icedove-i18n-zh-cn'
- 'icedove-i18n-zh-tw')
-
-pkgrel=1
-pkgdesc="Language pack for Debian Icedove"
-arch=('any')
-url="http://packages.debian.org/source/experimental/icedove"
-license=('MPL' 'GPL')
-depends=("icedove-libre>=$pkgver")
-_url=http://repo.parabolagnulinux.org/other/$pkgbase/releases/$pkgver
-source=(icedove-i18n-$pkgver-ar.xpi::$_url/ar.xpi
- icedove-i18n-$pkgver-ast.xpi::$_url/ast.xpi
- icedove-i18n-$pkgver-be.xpi::$_url/be.xpi
- icedove-i18n-$pkgver-bg.xpi::$_url/bg.xpi
- icedove-i18n-$pkgver-bn-BD.xpi::$_url/bn-BD.xpi
- icedove-i18n-$pkgver-br.xpi::$_url/br.xpi
- icedove-i18n-$pkgver-ca.xpi::$_url/ca.xpi
- icedove-i18n-$pkgver-cs.xpi::$_url/cs.xpi
- icedove-i18n-$pkgver-da.xpi::$_url/da.xpi
- icedove-i18n-$pkgver-de.xpi::$_url/de.xpi
- icedove-i18n-$pkgver-el.xpi::$_url/el.xpi
- icedove-i18n-$pkgver-en-GB.xpi::$_url/en-GB.xpi
- icedove-i18n-$pkgver-en-US.xpi::$_url/en-US.xpi
- icedove-i18n-$pkgver-es-AR.xpi::$_url/es-AR.xpi
- icedove-i18n-$pkgver-es-ES.xpi::$_url/es-ES.xpi
- icedove-i18n-$pkgver-et.xpi::$_url/et.xpi
- icedove-i18n-$pkgver-eu.xpi::$_url/eu.xpi
- icedove-i18n-$pkgver-fi.xpi::$_url/fi.xpi
- icedove-i18n-$pkgver-fr.xpi::$_url/fr.xpi
- icedove-i18n-$pkgver-fy-NL.xpi::$_url/fy-NL.xpi
- icedove-i18n-$pkgver-ga-IE.xpi::$_url/ga-IE.xpi
- icedove-i18n-$pkgver-gd.xpi::$_url/gd.xpi
- icedove-i18n-$pkgver-gl.xpi::$_url/gl.xpi
- icedove-i18n-$pkgver-he.xpi::$_url/he.xpi
- icedove-i18n-$pkgver-hr.xpi::$_url/hr.xpi
- icedove-i18n-$pkgver-hu.xpi::$_url/hu.xpi
- icedove-i18n-$pkgver-hy-AM.xpi::$_url/hy-AM.xpi
- icedove-i18n-$pkgver-id.xpi::$_url/id.xpi
- icedove-i18n-$pkgver-is.xpi::$_url/is.xpi
- icedove-i18n-$pkgver-it.xpi::$_url/it.xpi
- icedove-i18n-$pkgver-ja.xpi::$_url/ja.xpi
- icedove-i18n-$pkgver-ko.xpi::$_url/ko.xpi
- icedove-i18n-$pkgver-lt.xpi::$_url/lt.xpi
- icedove-i18n-$pkgver-nb-NO.xpi::$_url/nb-NO.xpi
- icedove-i18n-$pkgver-nl.xpi::$_url/nl.xpi
- icedove-i18n-$pkgver-nn-NO.xpi::$_url/nn-NO.xpi
- icedove-i18n-$pkgver-pa-IN.xpi::$_url/pa-IN.xpi
- icedove-i18n-$pkgver-pl.xpi::$_url/pl.xpi
- icedove-i18n-$pkgver-pt-BR.xpi::$_url/pt-BR.xpi
- icedove-i18n-$pkgver-pt-PT.xpi::$_url/pt-PT.xpi
- icedove-i18n-$pkgver-rm.xpi::$_url/rm.xpi
- icedove-i18n-$pkgver-ro.xpi::$_url/ro.xpi
- icedove-i18n-$pkgver-ru.xpi::$_url/ru.xpi
- icedove-i18n-$pkgver-si.xpi::$_url/si.xpi
- icedove-i18n-$pkgver-sk.xpi::$_url/sk.xpi
- icedove-i18n-$pkgver-sl.xpi::$_url/sl.xpi
- icedove-i18n-$pkgver-sq.xpi::$_url/sq.xpi
- icedove-i18n-$pkgver-sr.xpi::$_url/sr.xpi
- icedove-i18n-$pkgver-sv-SE.xpi::$_url/sv-SE.xpi
- icedove-i18n-$pkgver-ta-LK.xpi::$_url/ta-LK.xpi
- icedove-i18n-$pkgver-tr.xpi::$_url/tr.xpi
- icedove-i18n-$pkgver-uk.xpi::$_url/uk.xpi
- icedove-i18n-$pkgver-vi.xpi::$_url/vi.xpi
- icedove-i18n-$pkgver-zh-CN.xpi::$_url/zh-CN.xpi
- icedove-i18n-$pkgver-zh-TW.xpi::$_url/zh-TW.xpi)
-
-# Don't extract anything
-noextract=(${source[@]##*/})
-
-_path="/usr/lib/icedove/extensions/"
-
-package_icedove-i18n-ar() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-ar.xpi "${pkgdir}/$_path/langpack-ar@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-ast() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-ast.xpi "${pkgdir}/$_path/langpack-ast@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-af() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-af.xpi "${pkgdir}/$_path/langpack-af@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-be() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-be.xpi "${pkgdir}/$_path/langpack-be@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-bg() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-bg.xpi "${pkgdir}/$_path/langpack-bg@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-bn-bd() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-bn-BD.xpi "${pkgdir}/$_path/langpack-bn-BD@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-br() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-br.xpi "${pkgdir}/$_path/langpack-br@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-ca() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-ca.xpi "${pkgdir}/$_path/langpack-ca@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-cs() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-cs.xpi "${pkgdir}/$_path/langpack-cs@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-da() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-da.xpi "${pkgdir}/$_path/langpack-da@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-de() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-de.xpi "${pkgdir}/$_path/langpack-de@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-el() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-el.xpi "${pkgdir}/$_path/langpack-el@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-en-gb() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-en-GB.xpi "${pkgdir}/$_path/langpack-en-GB@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-en-us() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-en-US.xpi "${pkgdir}/$_path/langpack-en-US@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-es-ar() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-es-AR.xpi "${pkgdir}/$_path/langpack-es-AR@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-es-es() {
- pkgdesc="Language packs for Debian Icedove."
- replaces=icedove-i18n-es
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-es-ES.xpi "${pkgdir}/$_path/langpack-es-ES@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-et() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-et.xpi "${pkgdir}/$_path/langpack-et@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-eu() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-eu.xpi "${pkgdir}/$_path/langpack-eu@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-fi() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-fi.xpi "${pkgdir}/$_path/langpack-fi@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-fr() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-fr.xpi "${pkgdir}/$_path/langpack-fr@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-fy-nl(){
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-fy-NL.xpi "${pkgdir}/$_path/langpack-fy-NL@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-ga-ie() {
- pkgdesc="Language packs for Debian Icedove."
- replaces=icedove-i18n-ga
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-ga-IE.xpi "${pkgdir}/$_path/langpack-ga-IE@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-gd() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-gd.xpi "${pkgdir}/$_path/langpack-gd@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-gl() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-gl.xpi "${pkgdir}/$_path/langpack-gl@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-he() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-he.xpi "${pkgdir}/$_path/langpack-he@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-hr() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-hr.xpi "${pkgdir}/$_path/langpack-hr@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-hu() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-hu.xpi "${pkgdir}/$_path/langpack-hu@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-hy-am() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-hy-AM.xpi "${pkgdir}/$_path/langpack-hy-am@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-id(){
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-id.xpi "${pkgdir}/$_path/langpack-id@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-is() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-is.xpi "${pkgdir}/$_path/langpack-is@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-it() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-it.xpi "${pkgdir}/$_path/langpack-it@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-ja() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-ja.xpi "${pkgdir}/$_path/langpack-ja@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-ko() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-ko.xpi "${pkgdir}/$_path/langpack-ko@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-lt() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-lt.xpi "${pkgdir}/$_path/langpack-lt@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-nb-no() {
- pkgdesc="Language packs for Debian Icedove."
- replaces=icedove-i18n-nb
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-nb-NO.xpi "${pkgdir}/$_path/langpack-nb-NO@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-mk() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-mk.xpi "${pkgdir}/$_path/langpack-mk@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-nl() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-nl.xpi "${pkgdir}/$_path/langpack-nl@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-nn-no() {
- pkgdesc="Language packs for Debian Icedove."
- replaces=icedove-i18n-nn
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-nn-NO.xpi "${pkgdir}/$_path/langpack-nn-NO@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-pa-in() {
- pkgdesc="Language packs for Debian Icedove."
- replaces=icedove-i18n-pa
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-pa-IN.xpi "${pkgdir}/$_path/langpack-pa-IN@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-pl() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-pl.xpi "${pkgdir}/$_path/langpack-pl@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-pt-br() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-pt-BR.xpi "${pkgdir}/$_path/langpack-pt-BR@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-pt() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-pt-PT.xpi "${pkgdir}/$_path/langpack-pt-PT@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-ro() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-ro.xpi "${pkgdir}/$_path/langpack-ro@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-rm() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-rm.xpi "${pkgdir}/$_path/langpack-rm@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-ru() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-ru.xpi "${pkgdir}/$_path/langpack-ru@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-si() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-si.xpi "${pkgdir}/$_path/langpack-si@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-sk() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-sk.xpi "${pkgdir}/$_path/langpack-sk@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-sl() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-sl.xpi "${pkgdir}/$_path/langpack-sl@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-sq() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-sq.xpi "${pkgdir}/$_path/langpack-sq@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-sr() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-sr.xpi "${pkgdir}/$_path/langpack-sr@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-sv-se() {
- pkgdesc="Language packs for Debian Icedove."
- replaces=icedove-i18n-sv
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-sv-SE.xpi "${pkgdir}/$_path/langpack-sv-SE@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-ta-lk() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-ta-LK.xpi "${pkgdir}/$_path/langpack-ta-LK@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-tr() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-tr.xpi "${pkgdir}/$_path/langpack-tr@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-uk() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-uk.xpi "${pkgdir}/$_path/langpack-uk@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-vi() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-vi.xpi "${pkgdir}/$_path/langpack-vi@icedove.mozilla.org.xpi"
-}
-package_icedove-i18n-zh-cn() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-zh-CN.xpi "${pkgdir}/$_path/langpack-zh-CN@icedove.mozilla.org.xpi"
-}
-
-package_icedove-i18n-zh-tw() {
- pkgdesc="Language packs for Debian Icedove."
- cd ${srcdir}
- install -Dm644 icedove-i18n-$pkgver-zh-TW.xpi "${pkgdir}/$_path/langpack-zh-TW@icedove.mozilla.org.xpi"
-}
-md5sums=('15ededc2d92b095297c32682b1ea5556'
- '21b066c8006bd37843873a0950b4dd17'
- 'c531b388e48a2b964091cdabdc6ea843'
- '02dd4a828cd62d3704b329cc0269c754'
- 'aa058920d2e9e590a5f43371ec0c758a'
- 'd2f6d97e73956b929812efc26cbb8a00'
- '422ba52f874f376d97a74c79047bb07e'
- 'ebc329dbdfd9533f237731f4ab13c0c7'
- '372f5b371ef045fd9b1d87d0f5a02f1b'
- 'f4833810e478a319360b144d1e4e5dd0'
- 'dcd04ada6fc38908cd1a0b4c640d49b6'
- 'f5805071746aaac4c977dc6104d81524'
- '55fb0a3581661c71e8a8b4fdaa5f92c6'
- 'f4f24e1b0a53d0dca2b8bef384173682'
- '3beb64fc06de87f5b70f2ba08ab3359e'
- '62d4a011ccdfdf4f24063caec6e881b2'
- '230373349ab450147ff19f4afebde2ea'
- 'c7eff1f39bf536a4da476d77a3e0a450'
- '06a7c3143b493c96628e93a58f25550c'
- '5017bdacb7ee1430fa73b9b7ca657497'
- 'c7aa6657da6f2cd9dc90c323c6676bf9'
- 'ee9a365773d95e7c31de8089aef0d847'
- 'feebccca9f6eec21b81e26e1804b0140'
- '65339aa37592def5a0fa6e5aaf416de5'
- '64980f1186f4045574babcde77f11529'
- '20f25644314ad2801db9156531ea290c'
- 'fd7c8318ab9d946a49ef2873de0d8e0a'
- 'd6612e0b47375fdb34341ed8386a621f'
- '89295ed1c51be054d571609209641fa1'
- 'b35e49dc04bf9134262ae7db57b0311b'
- '15487ee85959928fa0b85fe99e3c7a82'
- 'ed555ce92aa37545b4f62ea4bdca9187'
- '5d83088d4bcd042acfecbb0a85215548'
- '1f1a513aac9b1d3cbc6dce3e948c33ca'
- '1b955a8dd7690991d06ced05fc2f1fae'
- '1785e4bb27d71cc0226eab506f81669a'
- 'fd9a007c75b8738f3b2e167087655526'
- '6578b879762db29b40e1723ba59043d6'
- 'afe8fff2c2707724d2ef5536180a0907'
- 'b8befd7b5e781403c3c0797633f0f92b'
- '2097f7218575732e448662b3d1d1a351'
- '82c29288a115668f25d01d0e7175419f'
- '8398d4a711dd73302b790a2b99d9e78f'
- '1ed5155cd7f3be98b25d94a126d043bb'
- '899f04c2629e648be0f32f1ec04b9b56'
- '4af5b8985fdb1858c0c25b8452ca72fc'
- '43189f0ad649e00cedc608c6197a6426'
- 'aeed4c0b7e536c0b4f9b36a5dc3d1d63'
- 'a8bbc0c2acf8defcf9c200cacd243536'
- '9c35cfcbf9d66aa42abfaae4aa4a6937'
- 'b19268362d73d7e3f66ff7f7f21ab6bd'
- 'c45de9ad905bbdda655227e77b09a1ba'
- '430bb7d6dc4037666fb452e5c2c03c83'
- '6280326bb1fb7c2ddd5c3b5a5360651b'
- '571688d2bce6597ae76a7ead8929420c')
diff --git a/libre/icedove-libre/.directory b/libre/icedove-libre/.directory
deleted file mode 100644
index ef6a156b3..000000000
--- a/libre/icedove-libre/.directory
+++ /dev/null
@@ -1,2 +0,0 @@
-[Dolphin]
-Timestamp=2012,5,10,17,26,4
diff --git a/libre/icedove-libre/clrf.patch b/libre/icedove-libre/clrf.patch
deleted file mode 100644
index 375708ac4..000000000
--- a/libre/icedove-libre/clrf.patch
+++ /dev/null
@@ -1,260 +0,0 @@
-diff -Nur comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp
---- comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-03-12 23:37:12.000000000 -0300
-+++ comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-05-07 12:33:58.517612453 -0300
-@@ -688,7 +688,7 @@
- PL_strcat(encoding, "{");
- lengthStr.AppendInt((PRInt32) strlen(value));
- PL_strcat(encoding, lengthStr.get());
-- PL_strcat(encoding, "}"CRLF);
-+ PL_strcat(encoding, "}" CRLF);
- PL_strcat(encoding, value);
- return NS_OK;
- }
-diff -Nur comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp
---- comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-03-12 23:37:13.000000000 -0300
-+++ comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-05-07 12:41:08.003264793 -0300
-@@ -753,7 +753,7 @@
- }
- }
- }
--#define EXTRA_KEYWORD_HDR " "MSG_LINEBREAK
-+#define EXTRA_KEYWORD_HDR " " MSG_LINEBREAK
-
- // if status offset isn't in the first block, this code won't work. There's no good reason
- // for the status offset not to be at the beginning of the message anyway.
-@@ -1203,7 +1203,7 @@
- // check if there's an envelope header; if not, write one.
- if (strncmp(m_dataBuffer, "From ", 5))
- {
-- m_fileStream->Write("From "CRLF, 7, &bytesWritten);
-+ m_fileStream->Write("From " CRLF, 7, &bytesWritten);
- m_offlineMsgSize += bytesWritten;
- }
- }
-diff -Nur comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp comm-release/mailnews/compose/src/nsSmtpProtocol.cpp
---- comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp 2012-03-12 23:37:13.000000000 -0300
-+++ comm-release/mailnews/compose/src/nsSmtpProtocol.cpp 2012-05-07 12:44:43.127347489 -0300
-@@ -1722,7 +1722,7 @@
- {
- m_sendDone = PR_TRUE;
- nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
-- SendData(url, "QUIT"CRLF); // send a quit command to close the connection with the server.
-+ SendData(url, "QUIT" CRLF); // send a quit command to close the connection with the server.
- m_nextState = SMTP_RESPONSE;
- m_nextStateAfterResponse = SMTP_DONE;
- return(0);
-@@ -1969,7 +1969,7 @@
- {
- nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
- // send a quit command to close the connection with the server.
-- if (SendData(url, "QUIT"CRLF) == NS_OK)
-+ if (SendData(url, "QUIT" CRLF) == NS_OK)
- {
- m_nextState = SMTP_RESPONSE;
- m_nextStateAfterResponse = SMTP_ERROR_DONE;
-diff -Nur comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp comm-release/mailnews/imap/src/nsImapMailFolder.cpp
---- comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp 2012-03-12 23:37:13.000000000 -0300
-+++ comm-release/mailnews/imap/src/nsImapMailFolder.cpp 2012-05-07 12:48:29.417179064 -0300
-@@ -8298,7 +8298,7 @@
- bool needMoreData = false;
- char * newLine = nsnull;
- PRUint32 numBytesInLine = 0;
-- const char *envelope = "From "CRLF;
-+ const char *envelope = "From " CRLF;
- offlineStore->Write(envelope, strlen(envelope), &bytesWritten);
- fileSize += bytesWritten;
- do
-diff -Nur comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp comm-release/mailnews/imap/src/nsImapProtocol.cpp
---- comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp 2012-03-12 23:37:13.000000000 -0300
-+++ comm-release/mailnews/imap/src/nsImapProtocol.cpp 2012-05-07 15:45:58.551202719 -0300
-@@ -1410,7 +1410,7 @@
- {
- // PRInt32 oldRecent = GetServerStateParser().NumberOfRecentMessages();
- nsCAutoString commandBuffer(GetServerCommandTag());
-- commandBuffer.Append(" IDLE"CRLF);
-+ commandBuffer.Append(" IDLE" CRLF);
-
- do
- {
-@@ -3290,7 +3290,7 @@
- commandString.Append(messageIds);
- commandString.Append(" (");
- commandString.Append(attribute);
-- commandString.Append(")"CRLF);
-+ commandString.Append(")" CRLF);
- nsresult rv = SendData(commandString.get());
-
- if (NS_SUCCEEDED(rv))
-@@ -5283,7 +5283,7 @@
-
- IncrementCommandTagNumber();
- nsCAutoString command(GetServerCommandTag());
-- command.Append(" expunge"CRLF);
-+ command.Append(" expunge" CRLF);
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -5359,7 +5359,7 @@
- command.Append(gAppName);
- command.Append("\" \"version\" \"");
- command.Append(gAppVersion);
-- command.Append("\")"CRLF);
-+ command.Append("\")" CRLF);
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -5816,7 +5816,7 @@
- nsCAutoString correctedPassword;
- EscapeUserNamePasswordString(password.get(), &correctedPassword);
- command.Append(correctedPassword);
-- command.Append("\""CRLF);
-+ command.Append("\"" CRLF);
- rv = SendData(command.get(), PR_TRUE /* suppress logging */);
- NS_ENSURE_SUCCESS(rv, rv);
- ParseIMAPandCheckForNewMail();
-@@ -7446,7 +7446,7 @@
- nsCString command(GetServerCommandTag());
- command += " create \"";
- command += escapedName;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- nsresult rv = SendData(command.get());
- if(NS_SUCCEEDED(rv))
-@@ -7549,7 +7549,7 @@
- nsCString command (GetServerCommandTag());
- command += " lsub \"\" \"";
- command += escapedPattern;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- PR_Free(boxnameWithOnlineDirectory);
-
-@@ -7578,7 +7578,7 @@
- command += useXLIST ?
- " xlist \"\" \"" : " list \"\" \"";
- command += escapedPattern;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- PR_Free(boxnameWithOnlineDirectory);
-
-@@ -7599,7 +7599,7 @@
- nsCString command (GetServerCommandTag());
- command += " subscribe \"";
- command += escapedName;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -7617,7 +7617,7 @@
- nsCString command (GetServerCommandTag());
- command += " unsubscribe \"";
- command += escapedName;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -7631,7 +7631,7 @@
- if (m_urlInProgress)
- return;
- nsCAutoString command (GetServerCommandTag());
-- command += " IDLE"CRLF;
-+ command += " IDLE" CRLF;
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
- {
-@@ -7658,7 +7658,7 @@
- nsCOMPtr <nsIAsyncInputStream> asyncInputStream = do_QueryInterface(m_inputStream);
- if (asyncInputStream)
- asyncInputStream->AsyncWait(nsnull, 0, 0, nsnull);
-- nsresult rv = SendData("DONE"CRLF);
-+ nsresult rv = SendData("DONE" CRLF);
- // set a short timeout if we don't want to wait for a response
- if (m_transport && !waitForResponse)
- m_transport->SetTimeout(nsISocketTransport::TIMEOUT_READ_WRITE, 5);
-@@ -7727,8 +7727,8 @@
- PRUint32 msgsHandled = 0;
- const char *formatString;
- formatString = (idsAreUid)
-- ? "%s uid store %s %s"CRLF
-- : "%s store %s %s"CRLF;
-+ ? "%s uid store %s %s" CRLF
-+ : "%s store %s %s" CRLF;
-
- do
- {
-diff -Nur comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp
---- comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-03-12 23:37:13.000000000 -0300
-+++ comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-05-07 12:57:22.050615120 -0300
-@@ -185,7 +185,7 @@
-
- NS_ASSERTION(aCurrentCommand && *aCurrentCommand != '\r' &&
- *aCurrentCommand != '\n' && *aCurrentCommand != ' ', "Invailid command string");
-- bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE"CRLF);
-+ bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE" CRLF);
- if (sendingIdleDone)
- fWaitingForMoreClientInput = PR_FALSE;
-
-diff -Nur comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp comm-release/mailnews/local/src/nsPop3Protocol.cpp
---- comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp 2012-03-12 23:37:13.000000000 -0300
-+++ comm-release/mailnews/local/src/nsPop3Protocol.cpp 2012-05-07 12:59:45.857182813 -0300
-@@ -2483,7 +2483,7 @@
- return(MK_OUT_OF_MEMORY);
- m_pop3ConData->next_state_after_response = POP3_GET_LIST;
- m_listpos = 0;
-- return SendData(m_url, "LIST"CRLF);
-+ return SendData(m_url, "LIST" CRLF);
- }
-
-
-diff -Nur comm-release.orig/mailnews/mime/src/mimedrft.cpp comm-release/mailnews/mime/src/mimedrft.cpp
---- comm-release.orig/mailnews/mime/src/mimedrft.cpp 2012-03-12 23:37:13.000000000 -0300
-+++ comm-release/mailnews/mime/src/mimedrft.cpp 2012-05-07 13:01:42.912022177 -0300
-@@ -1473,7 +1473,7 @@
- *newbody = 0;
- PL_strcatn(newbody, newbodylen, "<PRE>");
- PL_strcatn(newbody, newbodylen, body);
-- PL_strcatn(newbody, newbodylen, "</PRE>"CRLF);
-+ PL_strcatn(newbody, newbodylen, "</PRE>" CRLF);
- PR_Free(body);
- body = newbody;
- }
-diff -Nur comm-release.orig/mailnews/mime/src/mimemult.cpp comm-release/mailnews/mime/src/mimemult.cpp
---- comm-release.orig/mailnews/mime/src/mimemult.cpp 2012-03-12 23:37:13.000000000 -0300
-+++ comm-release/mailnews/mime/src/mimemult.cpp 2012-05-07 13:04:41.511265477 -0300
-@@ -280,7 +280,7 @@
- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
- MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: attachment; filename=\""));
- MimeWriteAString(obj, fileName);
-- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
- MimeWriteAString(obj, NS_LITERAL_CSTRING("X-Mozilla-External-Attachment-URL: "));
- MimeWriteAString(obj, obj->options->state->detachedFilePath);
- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
-@@ -293,10 +293,10 @@
- status = MimeWriteAString(obj, header);
- if (status < 0)
- return status;
-- status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"Content-Transfer-Encoding: 8bit"MSG_LINEBREAK));
-+ status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "Content-Transfer-Encoding: 8bit" MSG_LINEBREAK));
- MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: inline; filename=\"Deleted: "));
- MimeWriteAString(obj, fileName);
-- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"X-Mozilla-Altered: AttachmentDeleted; date=\""));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "X-Mozilla-Altered: AttachmentDeleted; date=\""));
- }
- nsCString result;
- char timeBuffer[128];
-@@ -306,8 +306,8 @@
- "%a %b %d %H:%M:%S %Y",
- &now);
- MimeWriteAString(obj, nsDependentCString(timeBuffer));
-- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
-- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK"You deleted an attachment from this message. The original MIME headers for the attachment were:"MSG_LINEBREAK));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK "You deleted an attachment from this message. The original MIME headers for the attachment were:" MSG_LINEBREAK));
- MimeHeaders_write_raw_headers(mult->hdrs, obj->options, PR_FALSE);
- }
- PRInt32 old_nchildren = container->nchildren;
diff --git a/libre/icedove-libre/gcc47.patch b/libre/icedove-libre/gcc47.patch
deleted file mode 100644
index 115d65131..000000000
--- a/libre/icedove-libre/gcc47.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util.cc comm-release/mozilla/ipc/chromium/src/base/file_util.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-03 18:38:11.474783536 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-03 18:43:29.218995578 +0000
-@@ -8,7 +8,7 @@
- #include <io.h>
- #endif
- #include <stdio.h>
--#if defined(ANDROID)
-+#if defined(ANDROID) || defined(OS_POSIX)
- #include <unistd.h>
- #endif
-
-diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-03 18:38:11.381450924 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-03 18:43:29.218995578 +0000
-@@ -5,6 +5,9 @@
- #include "base/file_util.h"
-
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include <string>
- #include <vector>
-diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-03 18:38:11.438117153 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-03 18:43:29.218995578 +0000
-@@ -6,6 +6,9 @@
-
- #include <errno.h>
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include "eintr_wrapper.h"
- #include "base/logging.h"
-diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc comm-release/mozilla/ipc/chromium/src/base/time_posix.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-03 18:38:11.418117308 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-03 18:43:29.218995578 +0000
-@@ -14,6 +14,8 @@
- #include <time.h>
- #endif
-
-+#include <unistd.h>
-+
- #include <limits>
-
- #include "base/basictypes.h"
-diff -Nur comm-release.orig/mozilla/toolkit/crashreporter/client/Makefile.in comm-release/mozilla/toolkit/crashreporter/client/Makefile.in
---- comm-release.orig/mozilla/toolkit/crashreporter/client/Makefile.in 2012-04-03 18:38:56.101105510 +0000
-+++ comm-release/mozilla/toolkit/crashreporter/client/Makefile.in 2012-04-03 18:43:29.218995578 +0000
-@@ -69,6 +69,9 @@
- $(STDCXX_COMPAT) \
- $(NULL)
-
-+# Needed for moz_free
-+LIBS += -L$(LIBXUL_DIST)/lib -lmozalloc
-+
- ifeq ($(OS_ARCH),WINNT)
- CPPSRCS += crashreporter_win.cpp
- LIBS += \
diff --git a/libre/iceweasel-i18n/.directory b/libre/iceweasel-i18n/.directory
deleted file mode 100644
index afc87a727..000000000
--- a/libre/iceweasel-i18n/.directory
+++ /dev/null
@@ -1,2 +0,0 @@
-[Dolphin]
-Timestamp=2012,6,29,21,18,45
diff --git a/libre/iceweasel-i18n/Makefile b/libre/iceweasel-i18n/Makefile
deleted file mode 100644
index d596111f3..000000000
--- a/libre/iceweasel-i18n/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/make -f
-# Use this script to update the PKGBUILD's list of langpacks.
-# This script depends on:
-# - coreutils
-# - pacman
-# - sed
-
-# Variables:
-# This is to get it from Debian Sid
-debname=iceweasel-l10n
-debver=9.0+debian
-debrel=1
-debrepo=http://ftp.debian.org/debian/pool/main/
-
-pkgver=9.0
-pkgrel=2.1
-
-# Guts: ##############################################################
-
-default: PHONY all
-all: PHONY
- $(MAKE) clean
- $(MAKE) PKGBUILD
-.PRECIOUS: PKGBUILD
-
-PKGBUILD.list: Makefile
- sed \
- -e 's/@DEBNAME@/$(debname)/' \
- -e 's/@DEBVER@/$(debver)/' \
- -e 's/@DEBREL@/$(debrel)/' \
- -e 's%@DEBREPO@%$(debrepo)%' \
- -e 's/@PKGVER@/$(pkgver)/' \
- -e 's/@PKGREL@/$(pkgrel)/' \
- -e "s/@LANGPACKS@/(phony)/" \
- -e '/CUT HERE/,$$d' \
- PKGBUILD.in > $@
- echo 'package() { exit 0; }' >> $@
- makepkg -gp $@ >> $@
-langpacks.txt: PKGBUILD.list Makefile
- makepkg -dp $<
- ls src/*/upstream | sed 's/\.xpi//' > $@
-PKGBUILD: PKGBUILD.in langpacks.txt Makefile
- sed \
- -e 's/@DEBNAME@/$(debname)/' \
- -e 's/@DEBVER@/$(debver)/' \
- -e 's/@DEBREL@/$(debrel)/' \
- -e 's%@DEBREPO@%$(debrepo)%' \
- -e 's/@PKGVER@/$(pkgver)/' \
- -e 's/@PKGREL@/$(pkgrel)/' \
- -e "s/@LANGPACKS@/(`xargs echo < langpacks.txt`)/" \
- -e '/CUT HERE/d' \
- -e '/md5sums/,$$d' \
- PKGBUILD.in > $@
- makepkg -dg >> $@
-
-clean: PHONY
- rm -f PKGBUILD.list langpacks.txt
-
-.PHONY: PHONY FORCE
diff --git a/libre/iceweasel-i18n/PKGBUILD b/libre/iceweasel-i18n/PKGBUILD
deleted file mode 100644
index 437e959d3..000000000
--- a/libre/iceweasel-i18n/PKGBUILD
+++ /dev/null
@@ -1,146 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# Contributor: fauno <fauno@kiwwwi.com.ar>
-# Contributor: Figue <ffigue@gmail.com>
-# Based on icecat-i18n package, which is in turn based on firefox-i18n
-
-# When updating to a newer upstream release:
-# - Edit variables in in Makefile.
-# - (optionally) edit PKGBUILD.in
-# - Run 'make'. It will take care of everything else for you.
-
-_debname=iceweasel
-_debver=18.0
-_debrel=1
-_debrepo=http://ftp.debian.org/debian/pool/main/
-debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
-
-_langpacks=(ach af ak ar as ast be bg bn-BD bn-IN br bs ca cs csb cy da de el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gu-IN he hi-IN hr hu hy-AM id is it ja kk km kn ko ku lg lij lt lv mai mk ml mr nb-NO nl nn-NO nso or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta ta-LK te th tr uk vi zh-CN zh-TW zu)
-
-pkgbase=iceweasel-i18n
-pkgname=($(for lang in ${_langpacks[@]}
- do echo $pkgbase-$lang | tr A-Z a-z
- done))
-_pkgver=18.0
-pkgver=$_debver.$_debrel
-pkgrel=1
-
-pkgdesc="Language packs for Debian Iceweasel."
-arch=('any')
-url="http://www.geticeweasel.org/"
-license=('MPL')
-depends=("iceweasel-libre>=$pkgver")
-source=()
-for lang in ${_langpacks[@]}
-do
- source+=("${_debrepo}/`debfile ${_debname}`-l10n-$(echo $lang | tr A-Z a-z)_${_debver}-${_debrel}_all.deb")
-done
-
-build() {
- cd "${srcdir}"
- for f in *.deb
- do
- bsdtar xf $f
- bsdtar xf data.tar.xz
- done
-}
-
-_path="/usr/lib/iceweasel/extensions"
-
-
-for lang in ${_langpacks[@]}
-do
- eval "
-package_iceweasel-i18n-$(echo $lang | tr A-Z a-z)() {
- install -Dm644 \"\$srcdir$_path/langpack-$lang@iceweasel.mozilla.org.xpi\" \"\$pkgdir$_path/langpack-$lang@iceweasel.mozilla.org.xpi\"
-}
-"
-done
-
-md5sums=('08556c8d27a4313b5e67e655d2e1e828'
- '9fa01f43db09b12cd724f94c28883a9e'
- '0d1ef852709fcae1842105d675c22312'
- '56247c867b52a19808ca72f7fceb349a'
- 'dd670bcc609c06139671bf953f26d7b8'
- 'df233884b68c8f37ff9b757b6480ae94'
- 'd2aa803c6e1d1ebbaf9d4f6ad73f2aa8'
- 'd0f512e8bf97110a60b16de59b15869b'
- '54045555373497393ded8bccc0dc1784'
- '61cb757a64268141518ed9dad4795106'
- '62f338f7bcd7fb50ef2f61936c0e4990'
- '97b2c6a0de5d60b4e5696973aedd3cfc'
- 'd916a0b470264a9271509ed7a109e360'
- '6f442a2989b814f20f4b73975bc97a5c'
- '6117d8d24dad056f143feb3e061702dd'
- 'c759f731a415f99a73e20090f4893184'
- 'b481b08da143ff45a84d32285249fcfd'
- '828f9a5b69634b39d48bfdf472a957bd'
- '12d4b6779cb50777303381d35f539c4c'
- '8609fd343e1e91724f50d6833d3e2f82'
- '331acfbad62badfd48713d9b461efcf3'
- '49216a2ea50fcd01057bd7b0d14a78e2'
- 'b0738cf3f5ce546134150e082cffaf61'
- '9f03cd24990c897e75594229517c1e9a'
- '5667260492203f29bba1b2732ce20b77'
- 'a1dd5872ab73a1a14ce3e285138445da'
- '03e82d09ba4026ab10df5cfc3b78ca5f'
- '1e92e7b3725cdfa94fc705ab54c7c6aa'
- '35d9a0ccfa3c95a3a56f29c7a5bc4e6b'
- '656dbfb6ac9efbeb4e58b5b9fc5fda03'
- '29a343077a3de07ce9bb3e4d24d6a11a'
- '831e09a24d4d40cb1bb45f980b7fa251'
- '8488c98293d6f16caf99cf556f999611'
- '92b07db5dcb8fc95ac8f5706b94d7ed5'
- 'fa9ee1b85adbd15c46ca075d94e62a14'
- '19383d5cb3ed6de8599118dd9f54889e'
- 'fdff305ce5b154b12907fa302419548c'
- '24df7d71f1a70e8225e80d15a53d3777'
- '793bfd1301c4e989e2f904ad9f6b3adc'
- '06d4e4423df0908254e422d207292858'
- 'd53dce3f9b3a5de374dd6c10ebe3665c'
- '382e5237a81fbbbaab499c5c6646b308'
- '1da9f5ce8cbd3bdcc46f932b7458574f'
- 'd635c40c88a7430a2103c13cdf1b58d3'
- 'd1eac26314ade41883b24b91cd9e01c6'
- '6e65dd6b8cb0fbd4395e548926043e70'
- '97e8c9b3db047651a38f29366867c92e'
- '87433742c0b21c7655988d5586667d77'
- 'ac5cab1c45e0accf718cf624c8545dea'
- 'd3f2ff9a817dff71fa05ffe5f3f45db8'
- 'd1909b644b4495343b6d041c15683ad2'
- '5c79b17dd9d0d83f749f52d489b347a7'
- '433f0456e52420955a3689d2b18b7a94'
- '90ee54b793a100b74f1b91ca2acb103b'
- '0544d0e7e26a0c07379f0c6ca22708d8'
- 'c75d55a574f525f5f08574cb01a2ee20'
- 'b43589a4b08112996c756db467015eab'
- '82782fd09a815441622187ed8839b0ee'
- '52de8e6386f0232d13c6768092089c23'
- '091e065f1723fa7fa7701ced828e24ed'
- 'a036b50e5915e5b37257fa048e8d7a60'
- '1037213a49539a069b9e223dacfbdc94'
- '251b43c207b4fb0842a913e658f868c3'
- '1aac06560c3a0957087eab1d2034eba3'
- '964b3edfd3221d8e412ef695bd9a7b00'
- '45a900da3f1cc4834b32b190c67c42af'
- 'cad9df2808fd8f009d27142a729f21d6'
- '192eaff8883db984c42ee43e3a5303f4'
- '1000e395379bc6ef3b9c2c891f615e44'
- '1da3d8777bc0595dea09fdd7222b55f3'
- '0fbdd7294e21936ae75aca56d4d7252c'
- 'af481ef78e4ffe7b4cbf892c5cb10cc2'
- 'fc884a9a8203c56196993f6ed65069ca'
- '1bebdd6e194cbb746f81725e317eb9b4'
- '4c75d146f27aa2a70b0219954baa8965'
- 'd832ceafecac23a0659f7a766f6d98de'
- 'ed056fa5b30ddf55042699713c629503'
- '8e698f20270de2b2fbaf9c1f09257c06'
- 'e864caf42db46efbaa229f36af572ee4'
- '013864da4a811e894ba1605e7f93e80e'
- '69be7804b3d6a6bb5683554cbc324bed'
- 'efc6a8427f080706d7d590a7b0eacadd'
- '40c41e04514e3cbcae33b15a062b3811'
- '164850087cdf79d57569ee9d4e1a8d2d'
- '226de7be23de61db7df718ef93f7c906'
- 'fb331d7fd4f1c853192111663e2672a0'
- '5dd0a89e43aa0f263fc7c1d4302dbfd6'
- '8e602db8304ddafad17fd8098125d37b')
diff --git a/libre/iceweasel-i18n/PKGBUILD.in b/libre/iceweasel-i18n/PKGBUILD.in
deleted file mode 100644
index 05477caef..000000000
--- a/libre/iceweasel-i18n/PKGBUILD.in
+++ /dev/null
@@ -1,63 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# Contributor: fauno <fauno@kiwwwi.com.ar>
-# Contributor: Figue <ffigue@gmail.com>
-# Based on icecat-i18n package, which is in turn based on firefox-i18n
-
-# When updating to a newer upstream release:
-# - Edit variables in in Makefile.
-# - (optionally) edit PKGBUILD.in
-# - Run 'make'. It will take care of everything else for you.
-
-_debname=@DEBNAME@
-_debver=@DEBVER@
-_debrel=@DEBREL@
-_debrepo=@DEBREPO@
-debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
-
-_langpacks=@LANGPACKS@
-
-pkgbase=iceweasel-i18n
-pkgname=($(for lang in ${_langpacks[@]}
- do echo $pkgbase-$lang | tr A-Z a-z
- done))
-_pkgver=@PKGVER@
-pkgver=${_debver}.${_debrel}
-pkgrel=@PKGREL@
-
-pkgdesc="Language packs for Debian Iceweasel."
-arch=('any')
-url="http://www.geticeweasel.org/"
-license=('MPL')
-depends=("iceweasel=$_pkgver")
-source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.gz"
- "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.diff.gz"
- "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.dsc")
-noextract=($(for lang in ${_langpacks[@]}
- do echo $lang.xpi
- done))
-
-dpkg-source() {
- # This will simulate dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
- cd "${_debname}-${_debver}"
- patch -p1 -i "${srcdir}/${_debname}_${_debver}-${_debrel}.diff"
- cd ..
-}
-
-build() {
- cd "${srcdir}"
- dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
-}
-
-_path="/usr/lib/iceweasel-${_pkgver}/extensions"
-
-# CUT HERE <-- Separates package_*() functions from everything else.
-
-for lang in ${_langpacks[@]}
-do
- eval "
-package_iceweasel-i18n-$(echo $lang | tr A-Z a-z) () {
- install -Dm644 '$srcdir/'*'/upstream/$lang.xpi' \"\$pkgdir\"'$_path/langpack-$lang@firefox.mozilla.org.xpi'
-}
-"
-done
-
diff --git a/libre/iceweasel-l10n/PKGBUILD b/libre/iceweasel-l10n/PKGBUILD
index 8e0172208..2e7160daf 100644
--- a/libre/iceweasel-l10n/PKGBUILD
+++ b/libre/iceweasel-l10n/PKGBUILD
@@ -11,7 +11,7 @@
# - Run 'make'. It will take care of everything else for you.
_debname=iceweasel
-_debver=18.0.1
+_debver=18.0.2
_debrel=1
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -75,91 +75,91 @@ package_iceweasel-l10n-$(echo $lang | tr A-Z a-z)() {
done
md5sums=('428246ef3fb64103ff2cf5eaae2a92ca'
- '5bff9acef5bdfd10fff5e3f36ff7c8bc'
- '5ada703cfdc40e32c5c145380e979e1a'
- 'e8b198ad4673ef12538f17e73529f9f8'
- 'ba77a8937f6d0bc84ad789950ef42c70'
- 'd940e1ccb7f501555500b17f5ea28e74'
- '7325a84d999c3ea5f884cff15e1a4210'
- 'f35c32e53f07774efa39bec386aa35c6'
- '2d2a628958c5ad0f66077ae1703f61ba'
- '458c5cee205f12ced09f8baab1605e11'
- '7271c461eb02608d193208c5da94280e'
- 'a505e69bf7cbb4caadcd5dfa67da1b78'
- '0b0e10b39d115aedc1dfc0967068df95'
- '09153faa23ca0a953aa22cc3989eba5e'
- 'da9779d4a64f1bbab1195c9801fb678c'
- '1815468f85d1eea9f018a72bb83889d3'
- '6103d52fb61b4bb7e921870ff05c98af'
- 'c3f0e46e2cfb68bf30363c92dcd9934d'
- '5214d31f5cd5c077f09a0c275f936c25'
- 'ad4f664710dfa896b969f25b824d7086'
- 'ba2339dce1b84f0e7c0b77331572d6f5'
- '28fb3e3e873cf5d03207e220eebf2ab0'
- 'a6f6ea487f6577ddf4cb2ef10ed5e401'
- '8143ba212c6ef5f1dfc311ce84861450'
- '5a6db78ee5cd6b41c02b7f65e666a045'
- '63869ca68431ee4c7d3769f4ef8b68e1'
- '5e87285fa518d1a95a7a63a2587497b7'
- '969c213166c8ecd7cc752c557a1c056d'
- '0c47f76ca2fb3d747be170fd61fa36cb'
- '01f67291435616996e968f41259b91bd'
- 'f785b30e48ea4ee4af286325b020c545'
- '58684c98cfc9d35d3d37f827268e72ac'
- '2ec870106c72d0772f65f6a129547cb1'
- '98d5cec52877790042830e8be41db1ca'
- '654ee0ebb10cfbfe9b8b6540548f08e7'
- '5a60a9cd96e0900a6cfbf37f7a68b715'
- 'e6e276eb4b8b7c1eb5a3593b07b9a84a'
- '0c788fece8760fb61509c0fe1ac7eff4'
- '98cba049bae024ae7dc7426f6adf09d2'
- '2d37f79f57d38008e64c9a52a05c91a4'
- 'aeffb314945de717ef8a417653bcba3d'
- '910b595a09b98f4eae1f4e6ddcae6ad5'
- '9c5babdcd0ecbac8e487bed05cf5fe1a'
- 'f94018f378dcd11d8d63ebbd4a595ca1'
- 'bb4cc3cdb7995333babe6462d1aaef06'
- '7a3d8e89625858fea797f33e7a426c25'
- 'd1fbf396db41d77da0b3f9f2528c8c96'
- 'cfa20a918d3adad42313fc2db86c63b8'
- 'fa213ce6abfa19a6067e64c149e90b27'
- '8c2a0ec2e38504c6f4657d9f00c3b4f0'
- '3ff17d0759b40c4d308b8f28b698dba1'
- '2fc7cc5a0d2d0794c7f08156fd65619d'
- 'ed57c5f168e53cec827695ac4c18ec10'
- 'c8b05f70068e8a8255d8f28f3171df5f'
- 'adc1d1e78c6c42624b1e312be7dec90c'
- '1f667156cd0b9e23effcbf8e26d01839'
- 'dd112d0dbbcc45b38036694e5c82a6aa'
- 'f37be06f19a3e6e60727466896bc6b65'
- 'ec947261ee12d58c1a9998ea8136f744'
- 'a3434e5da7b65559de7c4adcb14906d3'
- 'b8984e5ab770cd3f0fd70cbc33ba1150'
- 'a06634264be552d2e64189a761c7cc3c'
- '417246fb8b66c806bdb903801f975627'
- 'b9e367b2d4f96ea111ae46c22801b0bf'
- '0a245b319c1dc40ef95a24ca5b0fca9d'
- '7a08d4e4d7a10f12a4d79fe96e2c1f51'
- 'f4d71f4e0a1794ccc25463cced9457d4'
- '778089e056b6e8b1aaef1a4769153059'
- 'c3855b0c99342acddca0a7e6d9dc126f'
- '9bbd6dbf2df859fcbbf366e753dfcdd6'
- '338ea8d0681d2df2409a2398c3ae3694'
- 'e783a6e96d080413a60d1200fa0ac8a7'
- 'd1af3e947fc8a8aca39bec88aaeda708'
- 'e53c6a92a5533a706abb6abbe761508e'
- '5d139a83f2b5e1625142f06a63147a28'
- 'd671a0fd8a4f8eb08d4b9ab52372d667'
- 'af9bf9f8a04dc898fad49083824fea6a'
- '78184aa445a574ed6f57e926c7ab25c4'
- '62f54d64f86204a45fc12557a4a76eb0'
- '0ee43e97979aff7b7e2bb3d9e42a6e00'
- '6fe3c2ed768593d942461f462fadd508'
- '469ff3256c7322f15a71e0fd81e09f57'
- '74bb076c39c409d9c795722d692561dc'
- 'fc439b2e9dfff5111d0fea9fdeef30de'
- '546c8cac927262e9166e01f4634a22cb'
- '1009936f51fad91899c6f0144040f174'
- '700322fdfe534fa47579895c87a93808'
- 'fbdd5acbff2ef4d73665766d1f0cd815'
- 'b3cc9c95ce6146453c8929213b04d9fe')
+ '31f654187e17bc58997481e8a56496b1'
+ 'fade60b00eb508d48a84d23c0e6541e5'
+ '3d7a74dbce2d48f3c1ee8b60790835b8'
+ '48d1d9fae40e1bef02c58e61bf7f539b'
+ '065b8ea8d4545358188bf1246936eb8b'
+ '3c70cb0d4212e2efbc90111cc3134e33'
+ 'dbc87745091f8da747656fff12823910'
+ 'ecbae99a66b2ce71cbbec6c73df8844d'
+ 'a154b28a9b0de83e7e4caa8522fe3241'
+ 'a38131384cebd05f97da8e61b549361f'
+ '4dfabf91b1bcf5c5917a30b6042ded81'
+ '376e3652e406c57e7f7a760094dad0ab'
+ 'cb6b6fda241231881fc88dd4123ffa39'
+ 'e940765847d1f83d03df11850fb9147b'
+ '09ec90ab9c064ed95ec94ddf8323394f'
+ 'cb436e667812f9031d450e58d66d932d'
+ 'b8e033ebf0dbf8b0a230f97910d71505'
+ '19208ca1053d4e64d651a19376dcd24a'
+ '9e7b3895ddc0abb9e11588f594d6e4af'
+ '0aa6613e504e5a3c05c47ba1219fbd08'
+ '170fe69ee60cec853063a7da4a874c7e'
+ '317b03437e37d65140850b6bbe72e76d'
+ 'ff81fab8ad6dea85bfd2e6cf19e15168'
+ 'e963bd288d0eef928c639cf474f66106'
+ '02ad1252186b093aa08213bc8e178c96'
+ 'abe884cc2b185ca7ffdba54bbeb56069'
+ '4cc3a9db198329fb9612a4171619f177'
+ 'af14e936a7ad830987464abb251a7e64'
+ '96652e4a21ea60e4c29ecbd2f20ab93b'
+ 'cea50d05ef64864b52eced984cdb6d09'
+ 'a496720ade4c5e27dc265d953a63f4f3'
+ 'cc0cf100ebe57c765b278c3a11fc6898'
+ 'bda56ca990bb70ebc2b17a6d6d078cc0'
+ '0d16cf2741ea660acf781a156e64a60b'
+ 'b773827e9d806722b4164338b1307cdb'
+ '73166bc2a29b207e3b0d724957b0c5ed'
+ 'f1b0c9f9fa3aa50a1837988efef95cf2'
+ '9b08f5fab447bf210282f470e447a3d4'
+ '330c9304f9ab0038c892c248246aea24'
+ 'aa7237a6ad341e4d3463b470265cb6f7'
+ '631646b52dd480126a5efb41d4f5fda4'
+ '89b783cd706c960c217283e0ffba02c1'
+ '0a23686cca72fa95f1ff54eec885b306'
+ 'ee0e262a083429d8388412955314a6f0'
+ '0714162d56a436394b9165f7ad2bf549'
+ '76a5096315e019234b4fe6b9e86c7ae9'
+ '4dc4688b90d81881e89af6b2ee3720ce'
+ 'ce0c82cc666abe518a24231803883d68'
+ 'b67193f83bad38939aafb8bb7368862a'
+ 'f23ac7cdabd042cbc841c408fbe69dff'
+ '422741d2bb3c3a272a94b2977de188b8'
+ 'f88e8e651933640877e9f088e77d503b'
+ 'cf9445ebf2852bc40e140d5cfca269d9'
+ '1cdeb5e3a3e4ccea28299ab21559dc27'
+ '2c4e7209039d4cab5d614419e7612079'
+ '3a9909afb4d73c12e36bd721d1504788'
+ '9bf880dd4d142e0f7adc3bdccf196a13'
+ 'cc7dc9f622ecf277da1598f2a7391936'
+ '70be0726c473cb814cbb59d8efbffac5'
+ '42f43f6ea94dbcc20c9052e5c86edb40'
+ 'ab3b4068e17b5ac765e0bbb29332b935'
+ 'e135b2bf59fe4f03c87fcddb626da4a5'
+ 'f1df05798115e9c7db8cc1ff1713e87e'
+ 'be849695d961f94ecbe95141c5be9b63'
+ '5763fabc54b0a6cc5f7ecbade138c819'
+ '12fc8c500e44a36081963d0b591b5ec7'
+ 'aed0dd9b85788b43916a927234e25a39'
+ '4c0b62ea092c34f8bc22caaacab4206c'
+ 'e31d50bef08bdc2b5b6e526d4aed8aa9'
+ '283f98e2175e01bee3b8b84237d24284'
+ 'fbeb003e7d0819903c415900bd874e4a'
+ '44b6504f4f4158b8439263118bfac99b'
+ '4b692c497769eda8778fd14c747b2f90'
+ '9e6dc514be82e7d9c9702c301525876a'
+ '6cccbbaa7835f4538caaf5b170b42390'
+ 'e43d96c0c4758f327ef28555cbfe3e1b'
+ '65850ad55182fca2a91e213ab25c9c93'
+ '891de1295abfcf21651f5996f2f9c5b8'
+ 'b8497fc27cbc81c54fda917317c0dc3f'
+ 'e9eecc0fe4c3dc4b9ab4c21714eb45c5'
+ 'a3a898b665e4044ea77f6e2a48e3f448'
+ '1dcea4aeeebe6010b95e85d2c4fead6c'
+ 'e063a63b1dd3fc4ab5947079fbb496d4'
+ '9165ab1d8d0b62a460b955129d160c3f'
+ '25b2dff9bdd8592e2ce11dbf53cc995c'
+ 'fdf6b9c514269c39f032d08889f77576'
+ '377c3e6358622323681387a15bf4de1e'
+ '5e72c0853f73aa7e60c8f1ceb95d2910')
diff --git a/libre/iceweasel-l10n/PKGBUILD.in b/libre/iceweasel-l10n/PKGBUILD.in
deleted file mode 100644
index 16017fa61..000000000
--- a/libre/iceweasel-l10n/PKGBUILD.in
+++ /dev/null
@@ -1,80 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# Contributor: fauno <fauno@kiwwwi.com.ar>
-# Contributor: Figue <ffigue@gmail.com>
-# Based on icecat-i18n package, which is in turn based on firefox-i18n
-
-# When updating to a newer upstream release:
-# - Edit variables in in Makefile.
-# - (optionally) edit PKGBUILD.in
-# - Run 'make'. It will take care of everything else for you.
-
-_debname=@DEBNAME@
-_debver=@DEBVER@
-_debrel=@DEBREL@
-_debrepo=@DEBREPO@
-debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
-
-_langpacks=@LANGPACKS@
-
-pkgbase=iceweasel-l10n
-pkgname=($(for lang in ${_langpacks[@]}
- do echo $pkgbase-$lang | tr A-Z a-z
- done))
-_pkgver=@PKGVER@
-pkgver=${_debver}.${_debrel}
-pkgrel=@PKGREL@
-
-pkgdesc="Language packs for Debian Iceweasel."
-arch=('any')
-url="http://www.geticeweasel.org/"
-license=('MPL')
-depends=("iceweasel=$_pkgver")
-source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.gz"
- "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.diff.gz"
- "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.dsc")
-noextract=($(for lang in ${_langpacks[@]}
- do echo $lang.xpi
- done))
-
-_path="/usr/lib/iceweasel-${_pkgver}/extensions"
-
-dpkg-source() {
- # This will simulate dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
- cd "${_debname}-${_debver}"
- patch -p1 -i "${srcdir}/${_debname}_${_debver}-${_debrel}.diff"
- cd ..
-}
-
-build() {
- cd "${srcdir}"
- dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
-
-cd $srcdir$_path
-
-for i in ${_langpacks[@]}
-do
- unzip -q langpack-$i@iceweasel.mozilla.org.xpi -d $i
- rm langpack-$i@iceweasel.mozilla.org.xpi
- install -Dm644 $srcdir/region.properties $i/chrome/$i/locale/browser-region
- zip -q -r langpack-$i@iceweasel.mozilla.org.xpi $i
-done
-
-cd $srcdir
-}
-
-
-
-# CUT HERE <-- Separates package_*() functions from everything else.
-
-for lang in ${_langpacks[@]}
-do
- eval "
-package_iceweasel-l10n-$(echo $lang | tr A-Z a-z) () {
- replaces=(iceweasel-i18n-$(echo $lang | tr A-Z a-z))
- conflicts=(iceweasel-i18n-$(echo $lang | tr A-Z a-z))
- provides=(iceweasel-i18n-$(echo $lang | tr A-Z a-z))
- install -Dm644 '$srcdir/'*'/upstream/$lang.xpi' \"\$pkgdir\"'$_path/langpack-$lang@firefox.mozilla.org.xpi'
-}
-"
-done
-
diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD
index 571ad31a0..00a6fb3b0 100644
--- a/libre/iceweasel-libre/PKGBUILD
+++ b/libre/iceweasel-libre/PKGBUILD
@@ -14,7 +14,7 @@ _pgo=false
# We're getting this from Debian Experimental
_debname=iceweasel
-_debver=18.0.1
+_debver=18.0.2
_debrel=1
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -22,7 +22,7 @@ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
_pkgname=iceweasel
pkgname=iceweasel-libre
pkgver=$_debver.$_debrel
-pkgrel=2
+pkgrel=1
if [ -z "$pkgname" ]; then pkgname=$_pkgname; fi
if $_pgo; then
@@ -54,8 +54,8 @@ source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.bz2"
shared-libs.patch
replace-urls.txt
Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch)
-md5sums=('5d481dd35a304702d1f311eeb3f1149f'
- '6a4781e8ddc1b166f36930c4864e095f'
+md5sums=('9869f5aa42cf922526d34b4946fee867'
+ 'a7f261b9860b9af596e0d8614d52a8cd'
'f90c6a70d0a6d0a9e7f9a0eed6aeffd3'
'ac29b01c189f20abae2f3eef1618ffc0'
'1ee2d4bcacee73d671b9ffa17a02abaa'
diff --git a/libre/iceweasel-libre/bug677092.patch b/libre/iceweasel-libre/bug677092.patch
deleted file mode 100644
index aee09b451..000000000
--- a/libre/iceweasel-libre/bug677092.patch
+++ /dev/null
@@ -1,330 +0,0 @@
-exporting patch:
-# HG changeset patch
-# User Axel Hecht <axel@pike.org>
-# Date 1348128099 -7200
-# Node ID 812d0ba8317507c4026958a740960384eac1507a
-# Parent 97e49e7a33266a0680e5af59289264a07e4321f8
-bug 677092, make language packs restartless, r=Unfocused
-Make language packs just trigger the chrome registration hooks, and
-disable picking up bootstrap.js, and declare them restartless.
-
-diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/XPIProvider.jsm
---- a/toolkit/mozapps/extensions/XPIProvider.jsm Wed Sep 26 13:08:50 2012 +0200
-+++ b/toolkit/mozapps/extensions/XPIProvider.jsm Thu Sep 20 10:01:39 2012 +0200
-@@ -740,8 +740,8 @@
- }
- }
- else {
-- // spell check dictionaries never require a restart
-- if (addon.type == "dictionary")
-+ // spell check dictionaries and language packs never require a restart
-+ if (addon.type == "dictionary" || addon.type == "locale")
- addon.bootstrap = true;
-
- // Only extensions are allowed to provide an optionsURL, optionsType or aboutURL. For
-@@ -3695,6 +3695,11 @@
- Components.manager.addBootstrappedManifestLocation(aFile);
-
- try {
-+ // Don't call bootstrap.js methods for language packs,
-+ // they only contain chrome.
-+ if (aType == "locale")
-+ return;
-+
- // Load the scope if it hasn't already been loaded
- if (!(aId in this.bootstrapScopes))
- this.loadBootstrapScope(aId, aFile, aVersion, aType);
-diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/addons/test_langpack/chrome.manifest
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/toolkit/mozapps/extensions/test/addons/test_langpack/chrome.manifest Thu Sep 20 10:01:39 2012 +0200
-@@ -0,0 +1,1 @@
-+locale test-langpack x-testing locale/x-testing
-diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/addons/test_langpack/install.rdf
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/toolkit/mozapps/extensions/test/addons/test_langpack/install.rdf Thu Sep 20 10:01:39 2012 +0200
-@@ -0,0 +1,23 @@
-+<?xml version="1.0"?>
-+
-+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-+ xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-+
-+ <Description about="urn:mozilla:install-manifest">
-+ <em:id>langpack-x-testing@tests.mozilla.org</em:id>
-+ <em:type>8</em:type>
-+ <em:version>1.0</em:version>
-+
-+ <!-- Front End MetaData -->
-+ <em:name>Language Pack x-testing</em:name>
-+
-+ <em:targetApplication>
-+ <Description>
-+ <em:id>xpcshell@tests.mozilla.org</em:id>
-+ <em:minVersion>1</em:minVersion>
-+ <em:maxVersion>2</em:maxVersion>
-+ </Description>
-+ </em:targetApplication>
-+
-+ </Description>
-+</RDF>
-diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/xpcshell/test_langpack.js
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/toolkit/mozapps/extensions/test/xpcshell/test_langpack.js Thu Sep 20 10:01:39 2012 +0200
-@@ -0,0 +1,247 @@
-+/* Any copyright is dedicated to the Public Domain.
-+ * http://creativecommons.org/publicdomain/zero/1.0/
-+ */
-+
-+// This verifies that language packs can be used without restarts.
-+Components.utils.import("resource://gre/modules/Services.jsm");
-+
-+// Enable loading extensions from the user scopes
-+Services.prefs.setIntPref("extensions.enabledScopes",
-+ AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_USER);
-+
-+createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-+
-+const profileDir = gProfD.clone();
-+profileDir.append("extensions");
-+const userExtDir = gProfD.clone();
-+userExtDir.append("extensions2");
-+userExtDir.append(gAppInfo.ID);
-+registerDirectory("XREUSysExt", userExtDir.parent);
-+
-+var chrome = Components.classes["@mozilla.org/chrome/chrome-registry;1"]
-+ .getService(Components.interfaces.nsIXULChromeRegistry);
-+
-+function do_check_locale_not_registered(provider) {
-+ let didThrow = false;
-+ try {
-+ chrome.getSelectedLocale(provider);
-+ } catch (e) {
-+ didThrow = true;
-+ }
-+ do_check_true(didThrow);
-+}
-+
-+function run_test() {
-+ do_test_pending();
-+
-+ startupManager();
-+
-+ run_test_1();
-+}
-+
-+// Tests that installing doesn't require a restart
-+function run_test_1() {
-+ prepare_test({ }, [
-+ "onNewInstall"
-+ ]);
-+
-+ AddonManager.getInstallForFile(do_get_addon("test_langpack"), function(install) {
-+ ensure_test_completed();
-+
-+ do_check_neq(install, null);
-+ do_check_eq(install.type, "locale");
-+ do_check_eq(install.version, "1.0");
-+ do_check_eq(install.name, "Language Pack x-testing");
-+ do_check_eq(install.state, AddonManager.STATE_DOWNLOADED);
-+ do_check_true(install.addon.hasResource("install.rdf"));
-+ do_check_false(install.addon.hasResource("bootstrap.js"));
-+ do_check_eq(install.addon.operationsRequiringRestart &
-+ AddonManager.OP_NEEDS_RESTART_INSTALL, 0);
-+
-+ let addon = install.addon;
-+ prepare_test({
-+ "langpack-x-testing@tests.mozilla.org": [
-+ ["onInstalling", false],
-+ "onInstalled"
-+ ]
-+ }, [
-+ "onInstallStarted",
-+ "onInstallEnded",
-+ ], function() {
-+ do_check_true(addon.hasResource("install.rdf"));
-+ check_test_1();
-+ });
-+ install.install();
-+ });
-+}
-+
-+function check_test_1() {
-+ AddonManager.getAllInstalls(function(installs) {
-+ // There should be no active installs now since the install completed and
-+ // doesn't require a restart.
-+ do_check_eq(installs.length, 0);
-+
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
-+ do_check_neq(b1, null);
-+ do_check_eq(b1.version, "1.0");
-+ do_check_false(b1.appDisabled);
-+ do_check_false(b1.userDisabled);
-+ do_check_true(b1.isActive);
-+ // check chrome reg that language pack is registered
-+ do_check_eq(chrome.getSelectedLocale("test-langpack"), "x-testing");
-+ do_check_true(b1.hasResource("install.rdf"));
-+ do_check_false(b1.hasResource("bootstrap.js"));
-+
-+ let dir = do_get_addon_root_uri(profileDir, "langpack-x-testing@tests.mozilla.org");
-+
-+ AddonManager.getAddonsWithOperationsByTypes(null, function(list) {
-+ do_check_eq(list.length, 0);
-+
-+ run_test_2();
-+ });
-+ });
-+ });
-+}
-+
-+// Tests that disabling doesn't require a restart
-+function run_test_2() {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
-+ prepare_test({
-+ "langpack-x-testing@tests.mozilla.org": [
-+ ["onDisabling", false],
-+ "onDisabled"
-+ ]
-+ });
-+
-+ do_check_eq(b1.operationsRequiringRestart &
-+ AddonManager.OP_NEEDS_RESTART_DISABLE, 0);
-+ b1.userDisabled = true;
-+ ensure_test_completed();
-+
-+ do_check_neq(b1, null);
-+ do_check_eq(b1.version, "1.0");
-+ do_check_false(b1.appDisabled);
-+ do_check_true(b1.userDisabled);
-+ do_check_false(b1.isActive);
-+ // check chrome reg that language pack is not registered
-+ do_check_locale_not_registered("test-langpack");
-+
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(newb1) {
-+ do_check_neq(newb1, null);
-+ do_check_eq(newb1.version, "1.0");
-+ do_check_false(newb1.appDisabled);
-+ do_check_true(newb1.userDisabled);
-+ do_check_false(newb1.isActive);
-+
-+ run_test_3();
-+ });
-+ });
-+}
-+
-+// Test that restarting doesn't accidentally re-enable
-+function run_test_3() {
-+ shutdownManager();
-+ startupManager(false);
-+ // check chrome reg that language pack is not registered
-+ do_check_locale_not_registered("test-langpack");
-+
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
-+ do_check_neq(b1, null);
-+ do_check_eq(b1.version, "1.0");
-+ do_check_false(b1.appDisabled);
-+ do_check_true(b1.userDisabled);
-+ do_check_false(b1.isActive);
-+
-+ run_test_4();
-+ });
-+}
-+
-+// Tests that enabling doesn't require a restart
-+function run_test_4() {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
-+ prepare_test({
-+ "langpack-x-testing@tests.mozilla.org": [
-+ ["onEnabling", false],
-+ "onEnabled"
-+ ]
-+ });
-+
-+ do_check_eq(b1.operationsRequiringRestart &
-+ AddonManager.OP_NEEDS_RESTART_ENABLE, 0);
-+ b1.userDisabled = false;
-+ ensure_test_completed();
-+
-+ do_check_neq(b1, null);
-+ do_check_eq(b1.version, "1.0");
-+ do_check_false(b1.appDisabled);
-+ do_check_false(b1.userDisabled);
-+ do_check_true(b1.isActive);
-+ // check chrome reg that language pack is registered
-+ do_check_eq(chrome.getSelectedLocale("test-langpack"), "x-testing");
-+
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(newb1) {
-+ do_check_neq(newb1, null);
-+ do_check_eq(newb1.version, "1.0");
-+ do_check_false(newb1.appDisabled);
-+ do_check_false(newb1.userDisabled);
-+ do_check_true(newb1.isActive);
-+
-+ run_test_5();
-+ });
-+ });
-+}
-+
-+// Tests that a restart shuts down and restarts the add-on
-+function run_test_5() {
-+ shutdownManager();
-+ startupManager(false);
-+ // check chrome reg that language pack is registered
-+ do_check_eq(chrome.getSelectedLocale("test-langpack"), "x-testing");
-+
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
-+ do_check_neq(b1, null);
-+ do_check_eq(b1.version, "1.0");
-+ do_check_false(b1.appDisabled);
-+ do_check_false(b1.userDisabled);
-+ do_check_true(b1.isActive);
-+ do_check_false(isExtensionInAddonsList(profileDir, b1.id));
-+
-+ run_test_7();
-+ });
-+}
-+
-+// Tests that uninstalling doesn't require a restart
-+function run_test_7() {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
-+ prepare_test({
-+ "langpack-x-testing@tests.mozilla.org": [
-+ ["onUninstalling", false],
-+ "onUninstalled"
-+ ]
-+ });
-+
-+ do_check_eq(b1.operationsRequiringRestart &
-+ AddonManager.OP_NEEDS_RESTART_UNINSTALL, 0);
-+ b1.uninstall();
-+
-+ check_test_7();
-+ });
-+}
-+
-+function check_test_7() {
-+ ensure_test_completed();
-+ // check chrome reg that language pack is not registered
-+ do_check_locale_not_registered("test-langpack");
-+
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
-+ do_check_eq(b1, null);
-+
-+ restartManager();
-+
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(newb1) {
-+ do_check_eq(newb1, null);
-+
-+ do_test_finished();
-+ });
-+ });
-+}
-diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
---- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini Wed Sep 26 13:08:50 2012 +0200
-+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini Thu Sep 20 10:01:39 2012 +0200
-@@ -139,6 +139,7 @@
- [test_corrupt_strictcompat.js]
- [test_db_sanity.js]
- [test_dictionary.js]
-+[test_langpack.js]
- [test_disable.js]
- [test_distribution.js]
- [test_dss.js]
diff --git a/libre/iceweasel-libre/firefox.install b/libre/iceweasel-libre/firefox.install
deleted file mode 100644
index 1a1f4b16b..000000000
--- a/libre/iceweasel-libre/firefox.install
+++ /dev/null
@@ -1,13 +0,0 @@
-post_install() {
- update-desktop-database -q
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
-}
-
-post_upgrade() {
- post_install
-}
-
-post_remove() {
- post_install
-}
-
diff --git a/libre/iceweasel-libre/gcc47.patch b/libre/iceweasel-libre/gcc47.patch
deleted file mode 100644
index 829d59510..000000000
--- a/libre/iceweasel-libre/gcc47.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-
-# HG changeset patch
-# User Martin Stránský <stransky@redhat.com>
-# Date 1328886461 -3600
-# Node ID 87a5ed480992788832387ba91a77c69fbe9fe349
-# Parent 67017dd3b7f6650e6bcd5b6f545e0309e8de7049
-Bug 725655 - gcc 4.7 build failures (missing headers). r=benjamin
-
-diff --git a/ipc/chromium/src/base/file_util_linux.cc b/ipc/chromium/src/base/file_util_linux.cc
---- a/ipc/chromium/src/base/file_util_linux.cc
-+++ b/ipc/chromium/src/base/file_util_linux.cc
-@@ -1,15 +1,18 @@
- // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
- #include "base/file_util.h"
-
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include <string>
- #include <vector>
-
- #include "base/eintr_wrapper.h"
- #include "base/file_path.h"
- #include "base/string_util.h"
-
-diff --git a/ipc/chromium/src/base/message_pump_libevent.cc b/ipc/chromium/src/base/message_pump_libevent.cc
---- a/ipc/chromium/src/base/message_pump_libevent.cc
-+++ b/ipc/chromium/src/base/message_pump_libevent.cc
-@@ -1,16 +1,19 @@
- // Copyright (c) 2008 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
- #include "base/message_pump_libevent.h"
-
- #include <errno.h>
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include "eintr_wrapper.h"
- #include "base/logging.h"
- #include "base/scoped_nsautorelease_pool.h"
- #include "base/scoped_ptr.h"
- #include "base/time.h"
- #include "third_party/libevent/event.h"
-
-diff --git a/ipc/chromium/src/base/time_posix.cc b/ipc/chromium/src/base/time_posix.cc
---- a/ipc/chromium/src/base/time_posix.cc
-+++ b/ipc/chromium/src/base/time_posix.cc
-@@ -8,16 +8,19 @@
- #include <mach/mach_time.h>
- #endif
- #include <sys/time.h>
- #ifdef ANDROID
- #include <time64.h>
- #else
- #include <time.h>
- #endif
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include <limits>
-
- #include "base/basictypes.h"
- #include "base/logging.h"
-
- namespace base {
diff --git a/libre/iceweasel-libre/region.properties b/libre/iceweasel-libre/region.properties
deleted file mode 100644
index 2e980987e..000000000
--- a/libre/iceweasel-libre/region.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-# Default search engine
-browser.search.defaultenginename=Duck Duck Go (SSL)
-
-# Search engine order (order displayed in the search bar dropdown)s
-browser.search.order.1=Duck Duck Go (SSL)
-browser.search.order.2=Duck Duck Go (Lite)
-
-
-# Keyword URL (for location bar searches)
-keyword.URL=https://duckduckgo.com/?q=
-
-# URL for site-specific search engines
-# TRANSLATION NOTE: {moz:domain} and {searchTerms} are placeholders for the site
-# to be searched and the user's search query. Place them in the appropriate location
-# for your locale's URL but do not translate them.
-browser.search.siteSearchURL=https://duckduckgo.com/?q=site%3A{moz:domain}+{searchTerms}
-
-# increment this number when anything gets changed in the list below. This will
-# cause Firefox to re-read these prefs and inject any new handlers into the
-# profile database. Note that "new" is defined as "has a different URL"; this
-# means that it's not possible to update the name of existing handler, so
-# don't make any spelling errors here.
-#gecko.handlerService.defaultHandlersVersion=3
diff --git a/libre/iceweasel-libre/xulrunner-copy-stub.patch b/libre/iceweasel-libre/xulrunner-copy-stub.patch
deleted file mode 100644
index e3b8e9376..000000000
--- a/libre/iceweasel-libre/xulrunner-copy-stub.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- iceweasel-9.0.1/browser/app/Makefile.in~ 2011-12-25 16:19:29.000000000 -0500
-+++ iceweasel-9.0.1/browser/app/Makefile.in 2011-12-25 16:19:55.000000000 -0500
-@@ -257,7 +257,7 @@
- else
- ifdef LIBXUL_SDK
- libs::
-- cp $(LIBXUL_DIST)/bin/$(XULRUNNER_STUB_NAME)$(BIN_SUFFIX) $(DIST)/bin/firefox$(BIN_SUFFIX)
-+ cp $(LIBXUL_DIST)/bin/$(XULRUNNER_STUB_NAME)$(BIN_SUFFIX) $(DIST)/bin/iceweasel$(BIN_SUFFIX)
- endif
- endif
-
diff --git a/libre/java-asm2/PKGBUILD b/libre/java-asm2/PKGBUILD
deleted file mode 100644
index 4853d79c0..000000000
--- a/libre/java-asm2/PKGBUILD
+++ /dev/null
@@ -1,76 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-
-_pkgname=asm
-pkgname=java-asm2
-_pkgver=2
-pkgver=2.2.3
-pkgrel=4
-pkgdesc="An all purpose Java bytecode manipulation and analysis framework."
-arch=('any')
-url="http://asm.ow2.org/"
-license=('custom:BSD3')
-depends=('java-runtime')
-makedepends=(
- apache-ant
- java-ow-util-ant-tasks
-)
-source=("http://download.forge.objectweb.org/$_pkgname/$_pkgname-$pkgver.tar.gz")
-
-_M2_LOCALREPO='/usr/share/maven/repository'
-_ow_util_ant_tasks='/usr/share/java/ow_util_ant_tasks.jar'
-_m2_packages=(
- asm
- asm-analysis
- asm-attrs
- asm-commons
- asm-tree
- asm-util
- asm-xml
- asm-all)
-
-build() {
- cd "$srcdir/$_pkgname-$pkgver"
-
- mkdir -p test/lib
-
- echo "objectweb.ant.tasks.path $_ow_util_ant_tasks" >> build.properties
- ant dist
-
- # This will make package() easier:
- cd output/dist/lib
- ln -s all/* .
-}
-
-package() {
- cd "$srcdir/$_pkgname-$pkgver"
-
- # Install license file
- install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
-
- # Install documentation
- cd output/dist
- install -d "$pkgdir/usr/share/doc/$pkgname"
- cp -r doc/javadoc/user "$pkgdir/usr/share/doc/$pkgname/javadoc"
- cp -r examples "$pkgdir/usr/share/doc/$pkgname/examples"
-
- # Install Apache Maven modules
- cd lib
- install -d "$pkgdir"/usr/share/java/asm
- for pkg in "${_m2_packages[@]}"; do
- dir="$_M2_LOCALREPO"/asm/$pkg/$pkgver
- # Create the Maven directory
- install -d "$pkgdir$dir"
- # Install the files
- cp $pkg-$pkgver.* "$pkgdir$dir"
- # Symlink them to /usr/share/java
- ln -s "$dir"/$pkg-$pkgver.jar "$pkgdir"/usr/share/java/asm/
- ln -s asm/$pkg-$pkgver.jar "$pkgdir"/usr/share/java/$pkg-$_pkgver.jar
- done
-
- # Install a README file about the -all files
- cd "$srcdir/$_pkgname-$pkgver"
- install -m644 output/dist/lib/all/README.txt \
- "$pkgdir"/usr/share/java/asm/README-$pkgver.txt
-}
-
-md5sums=('7a92c87bf067925685cf68dcc0dd8998')
diff --git a/libre/java-asm3/PKGBUILD b/libre/java-asm3/PKGBUILD
deleted file mode 100644
index 7e66a5b5a..000000000
--- a/libre/java-asm3/PKGBUILD
+++ /dev/null
@@ -1,78 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-
-_pkgname=asm
-pkgname=java-asm3
-_pkgver=3
-pkgver=3.3.1
-pkgrel=4.1
-pkgdesc="An all purpose Java bytecode manipulation and analysis framework."
-arch=('any')
-url="http://asm.ow2.org/"
-license=('custom:BSD3')
-depends=('java-runtime')
-makedepends=(
- apache-ant
- java-ow-util-ant-tasks
-)
-source=("http://download.forge.objectweb.org/$_pkgname/$_pkgname-$pkgver.tar.gz")
-
-_M2_LOCALREPO='/usr/share/maven/repository'
-_ow_util_ant_tasks='/usr/share/java/ow_util_ant_tasks.jar'
-_m2_packages=(
- asm
- asm-analysis
- asm-commons
- asm-parent
- asm-tree
- asm-util
- asm-xml
- asm-all
- asm-debug-all)
-
-build() {
- cd "$srcdir/$_pkgname-$pkgver"
-
- rm cobertura.ser # We regenerate this
- rm examples/jasmin/test/jasmin.jar
-
- echo "objectweb.ant.tasks.path $_ow_util_ant_tasks" >> build.properties
- ant dist
-
- # This will make package() easier:
- cd output/dist/lib
- ln -s all/* .
-}
-
-package() {
- cd "$srcdir/$_pkgname-$pkgver"
-
- # Install license file
- install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
-
- # Install documentation
- cd output/dist
- install -d "$pkgdir/usr/share/doc/$pkgname"
- cp -r doc/javadoc/user "$pkgdir/usr/share/doc/$pkgname/javadoc"
- cp -r examples "$pkgdir/usr/share/doc/$pkgname/examples"
-
- # Install Apache Maven modules
- cd lib
- install -d "$pkgdir"/usr/share/java/asm
- for pkg in "${_m2_packages[@]}"; do
- dir="$_M2_LOCALREPO"/asm/$pkg/$pkgver
- # Create the Maven directory
- install -d "$pkgdir$dir"
- # Install the files
- cp $pkg-$pkgver.* "$pkgdir$dir"
- # Symlink them to /usr/share/java
- ln -s "$dir"/$pkg-$pkgver.jar "$pkgdir"/usr/share/java/asm/
- ln -s asm/$pkg-$pkgver.jar "$pkgdir"/usr/share/java/$pkg-$_pkgver.jar
- done
-
- # Install a README file about the -all files
- cd "$srcdir/$_pkgname-$pkgver"
- install -m644 output/dist/lib/all/README.txt \
- "$pkgdir"/usr/share/java/asm/README-$pkgver.txt
-}
-
-md5sums=('433024df8176f09922646316e415631c')
diff --git a/libre/java-ow-util-ant-tasks/PKGBUILD b/libre/java-ow-util-ant-tasks/PKGBUILD
deleted file mode 100644
index 023048188..000000000
--- a/libre/java-ow-util-ant-tasks/PKGBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-
-pkgname=java-ow-util-ant-tasks
-pkgver=1.3.2
-pkgrel=1
-pkgdesc="ObjectWeb utility Ant tasks library"
-arch=('any')
-url="http://forge.ow2.org/projects/monolog"
-license=('LGPL')
-depends=('java-environment')
-makedepends=('apache-ant' 'xalan-java' 'java-asm2')
-source=("http://repo.parabolagnulinux.org/sources/${pkgname}-${pkgver}-1-any.src.tar.xz")
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
- ln -s /usr/share/java/asm-2.jar externals
- ln -s /usr/share/java/xalan.jar externals
- ant jar
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
- install -d "$pkgdir"/usr/share/java
- install -m644 "output/lib/ow_util_ant_tasks.jar" "$pkgdir"/usr/share/java
-}
-
-md5sums=('339b3eb4b2960473a42f5f781afbeca6')
diff --git a/libre/java-ow-util-ant-tasks/SRCBUILD b/libre/java-ow-util-ant-tasks/SRCBUILD
deleted file mode 100644
index 01241907d..000000000
--- a/libre/java-ow-util-ant-tasks/SRCBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-
-pkgname=java-ow-util-ant-tasks
-pkgver=1.3.2
-pkgrel=1
-pkgdesc="ObjectWeb utility Ant tasks library"
-arch=('any')
-url="http://forge.ow2.org/projects/monolog"
-license=('LGPL')
-source=("http://download.forge.objectweb.org/monolog/ow_util_ant_tasks_$pkgver.zip")
-noextract=("ow_util_ant_tasks_$pkgver.zip")
-
-build() {
- cd "$srcdir"
- mkdir $pkgname-$pkgver
- cd $pkgname-$pkgver
- bsdtar xf "$srcdir"/ow_util_ant_tasks_$pkgver.zip
- rm -rf output
- rm externals/*
-}
-
-
-package() {
- PKGEXT=${SRCEXT}
- PKGDEST=${SRCDEST}
- cp -a "$srcdir/$pkgname-$pkgver" "$pkgdir/"
-}
-
-md5sums=('cd602bf75a0feab480fa97739955b84e')
diff --git a/libre/kdelibs-libre/fix-application-crashes.patch b/libre/kdelibs-libre/fix-application-crashes.patch
deleted file mode 100644
index 8ac385483..000000000
--- a/libre/kdelibs-libre/fix-application-crashes.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From: Vishesh Handa <me@vhanda.in>
-Date: Wed, 13 Jun 2012 21:26:31 +0000
-Subject: Revert "Always rec-connect if forced (ie. when Nepomuk server restarts)"
-X-Git-Url: http://quickgit.kde.org/?p=kdelibs.git&amp;a=commitdiff&amp;h=bde5aad1e9f7bfb6f8d5c60197797de4a315158d
----
-Revert "Always rec-connect if forced (ie. when Nepomuk server restarts)"
-
-This reverts commit a43824a200ed76cef48a90bd3aee8547698b7c91.
-
-This is done so that 4.8.x works with Soprano 2.7.6
----
-
-
---- a/nepomuk/core/nepomukmainmodel.cpp
-+++ b/nepomuk/core/nepomukmainmodel.cpp
-@@ -94,7 +94,7 @@ public:
-
- // we may get disconnected from the server but we don't want to try
- // to connect every time the model is requested
-- if ( forced || (!m_socketConnectFailed && !localSocketClient.isConnected()) ) {
-+ if ( !m_socketConnectFailed && !localSocketClient.isConnected() ) {
- delete localSocketModel;
- localSocketModel = 0;
- QString socketName = KGlobal::dirs()->locateLocal( "socket", "nepomuk-socket" );
-
-From: Vishesh Handa <me@vhanda.in>
-Date: Wed, 13 Jun 2012 21:25:32 +0000
-Subject: Revert "Disconnect before re-connecting. Soprano does not do that for us."
-X-Git-Url: http://quickgit.kde.org/?p=kdelibs.git&amp;a=commitdiff&amp;h=76e0376d7582cfe5b898c56bf3779ca2279dace8
----
-Revert "Disconnect before re-connecting. Soprano does not do that for us."
-
-This reverts commit 3708be2d09700b21f934c2129218e1c7ea44efdf.
-
-This is being done so that KDE 4.8.x works with Soprano 2.7.6
----
-
-
---- a/nepomuk/core/nepomukmainmodel.cpp
-+++ b/nepomuk/core/nepomukmainmodel.cpp
-@@ -97,7 +97,6 @@ public:
- if ( forced || (!m_socketConnectFailed && !localSocketClient.isConnected()) ) {
- delete localSocketModel;
- localSocketModel = 0;
-- localSocketClient.disconnect();
- QString socketName = KGlobal::dirs()->locateLocal( "socket", "nepomuk-socket" );
- kDebug() << "Connecting to local socket" << socketName;
- if ( localSocketClient.connect( socketName ) ) {
-
diff --git a/libre/kdeutils-ark-libre/rePKGBUILD b/libre/kdeutils-ark-libre/rePKGBUILD
deleted file mode 100644
index f40b19d3f..000000000
--- a/libre/kdeutils-ark-libre/rePKGBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Maintainer: Nicolás Reynolds <fauno@kiwwwi.com.ar>
-source PKGBUILD
-#CARCH=x86_64
-unset build package md5sums source
-_repo=extra # Put the repo here
-_mirror=ftp://mirrors.kernel.org/archlinux # Put mirror here
-source=(PKGBUILD
- "${_mirror}/${_repo}/os/${CARCH}/${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT"
- # files for pkg modifications below this line
- )
-options=(!strip)
-
-build() {
- cd "${srcdir}/"
- rm -vf .{INSTALL,PKGINFO} || true
- # put actions for package modifications below this line
-
-}
-
-package() {
- find ${srcdir} -maxdepth 1 -type l -delete
- cp -a ${srcdir}/* ${pkgdir}
-}
-
-
-# vim:set ts=2 sw=2 et:
diff --git a/libre/libdrm-libre/COPYING b/libre/libdrm-libre/COPYING
deleted file mode 100644
index 6e74c337c..000000000
--- a/libre/libdrm-libre/COPYING
+++ /dev/null
@@ -1,48 +0,0 @@
- Copyright 2005 Adam Jackson.
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation on the rights to use, copy, modify, merge,
- publish, distribute, sub license, and/or sell copies of the Software,
- and to permit persons to whom the Software is furnished to do so,
- subject to the following conditions:
-
- The above copyright notice and this permission notice (including the
- next paragraph) shall be included in all copies or substantial
- portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NON-INFRINGEMENT. IN NO EVENT SHALL ADAM JACKSON BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-------------------------------------------------------------------------
-
- Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
- Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
- All Rights Reserved.
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice (including the
- next paragraph) shall be included in all copies or substantial
- portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS
- SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
diff --git a/libre/libdrm-libre/PKGBUILD b/libre/libdrm-libre/PKGBUILD
deleted file mode 100644
index 1746710cb..000000000
--- a/libre/libdrm-libre/PKGBUILD
+++ /dev/null
@@ -1,90 +0,0 @@
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
-
-pkgname=libdrm-libre
-pkgver=2.4.39
-pkgrel=1
-pkgdesc='Userspace interface to kernel DRM services, without VMWare Graphics KMS API (vmwgfx)'
-arch=(
- i686
- x86_64
- mips64el
-:)
-license=(
- MIT
-)
-depends=(
- libpciaccess
- )
-makedepends=(
- cairo
- valgrind
-)
-options=(
- !libtool
-)
-url=http://dri.freedesktop.org/
-provides=(
- ${pkgname%-libre}=$pkgver
- ${pkgname%-libre}-git
- $pkgname-git
-)
-conflicts=(
- ${pkgname%-libre}
- ${pkgname%-libre}-git
- $pkgname-git
- ${pkgname%-libre}-new
- ${pkgname%-libre}-nouveau
- ${pkgname%-libre}-old
-)
-replaces=(
- ${pkgname%-libre}
- ${pkgname%-libre}-git
- ${pkgname%-libre}-new
- ${pkgname%-libre}-nouveau
-)
-
-source=(
- http://dri.freedesktop.org/${pkgname%-libre}/${pkgname%-libre}-$pkgver.tar.bz2
- COPYING
-)
-sha512sums=(
- 51b849d501adbf6c9d65847d2e6b41e426137af8cdb1335d19e22939128b7cdae8685c27d750db3aad7b1c43e7bb5a448634491dcd86873ba98293d56320eb1f
- b0ca349b882a4326b19f81f22804fabdb6fb7aef31cdc7b16b0a7ae191bfbb50c7daddb2fc4e6c33f1136af06d060a273de36f6f3412ea326f16fa4309fda660
-)
-
-build() {
- cd ${pkgname%-libre}-$pkgver
-
- sed -i '/PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)/d;/AC_SUBST(PTHREADSTUBS_CFLAGS)/d;/AC_SUBST(PTHREADSTUBS_LIBS)/d' \
- configure.ac
- sed -i '/ $(PTHREADSTUBS_CFLAGS) /d;s/ @PTHREADSTUBS_LIBS@//' \
- exynos/Makefile.am
- sed -i '/ $(PTHREADSTUBS_CFLAGS) /d;/ @PTHREADSTUBS_LIBS@ /d' \
- intel/Makefile.am
- sed -i '/ $(PTHREADSTUBS_CFLAGS) /d;s/ @PTHREADSTUBS_LIBS@//' \
- nouveau/Makefile.am
- sed -i '/ $(PTHREADSTUBS_CFLAGS) /d;s/ @PTHREADSTUBS_LIBS@//' \
- omap/Makefile.am
- sed -i '/ $(PTHREADSTUBS_CFLAGS) /d;s/ @PTHREADSTUBS_LIBS@//' \
- radeon/Makefile.am
-
- #libtoolize --force
- autoreconf --force --install
- ./configure --prefix=/usr \
- --disable-vmwgfx-experimental-api \
- --enable-udev
- make V=0
-}
-
-check() {
-cd ${pkgname%-libre}-$pkgver
- make -k check
-}
-
-package() {
-cd ${pkgname%-libre}-$pkgver
- make DESTDIR=$pkgdir install
- install -m755 -d $pkgdir/usr/share/licenses/${pkgname%-libre}
- install -m644 ../COPYING $pkgdir/usr/share/licenses/${pkgname%-libre}
-}
diff --git a/libre/lilo/.directory b/libre/lilo/.directory
deleted file mode 100644
index ba03b0e05..000000000
--- a/libre/lilo/.directory
+++ /dev/null
@@ -1,2 +0,0 @@
-[Dolphin]
-Timestamp=2012,5,3,19,29,58
diff --git a/libre/linux-libre-lts/.directory b/libre/linux-libre-lts/.directory
deleted file mode 100644
index 3bbc4dedd..000000000
--- a/libre/linux-libre-lts/.directory
+++ /dev/null
@@ -1,3 +0,0 @@
-[Dolphin]
-Timestamp=2012,8,9,22,54,43
-Version=3
diff --git a/libre/linux-libre-tools/cpupower.conf b/libre/linux-libre-tools/cpupower.conf
deleted file mode 100644
index b5c522ea1..000000000
--- a/libre/linux-libre-tools/cpupower.conf
+++ /dev/null
@@ -1,29 +0,0 @@
-# Define CPUs governor
-# valid governors: ondemand, performance, powersave, conservative, userspace.
-#governor='ondemand'
-
-# Limit frequency range
-# Valid suffixes: Hz, kHz (default), MHz, GHz, THz
-#min_freq="2.25GHz"
-#max_freq="3GHz"
-
-# Specific frequency to be set.
-# Requires userspace governor to be available.
-# Do not set governor field if you use this one.
-#freq=
-
-# Utilizes cores in one processor package/socket first before processes are
-# scheduled to other processor packages/sockets.
-# See man (1) CPUPOWER-SET for additional details.
-#mc_scheduler=
-
-# Utilizes thread siblings of one processor core first before processes are
-# scheduled to other cores. See man (1) CPUPOWER-SET for additional details.
-#smp_scheduler=
-
-# Sets a register on supported Intel processore which allows software to convey
-# its policy for the relative importance of performance versus energy savings to
-# the processor. See man (1) CPUPOWER-SET for additional details.
-#perf_bias=
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/linux-libre-tools/cpupower.pmutils b/libre/linux-libre-tools/cpupower.pmutils
deleted file mode 100644
index fb93cd7c1..000000000
--- a/libre/linux-libre-tools/cpupower.pmutils
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-[[ -x /usr/bin/cpupower ]] || exit $NA
-
-CPUPOWER_GOVERNOR_AC=${CPUPOWER_GOVERNOR_AC:-ondemand}
-CPUPOWER_GOVERNOR_BAT=${CPUPOWER_GOVERNOR_BAT:-conservative}
-
-help() {
- cat <<EOF
---------
-$0: Select cpupower frequency governor.
-
-Parameters:
-CPUPOWER_GOVERNOR_AC = Governor to use on AC.
-Defaults to ondemand.
-
-CPUPOWER_GOVERNOR_BAT = Governor to use on battery.
-Defaults to conservative.
-
-EOF
-}
-
-cpupow() {
- printf 'Setting cpupower frequency governor to %s...' "$1"
- cpupower -c all frequency-set -g "$1"
-}
-
-case $1 in
- true) cpupow "$CPUPOWER_GOVERNOR_BAT" ;;
- false) cpupow "$CPUPOWER_GOVERNOR_AC" ;;
- help) help;;
- *) exit $NA ;;
-esac
-
-exit 0
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/linux-libre-tools/cpupower.rc b/libre/linux-libre-tools/cpupower.rc
deleted file mode 100644
index 88edaf791..000000000
--- a/libre/linux-libre-tools/cpupower.rc
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-case "$1" in
- start|restart)
- status 'Setting cpupower rules' /usr/lib/systemd/scripts/cpupower || exit 1
- ;;
- *)
- echo "usage: ${0##*/} {start|restart}" >&2
- exit 1
- ;;
-esac
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/linux-libre-tools/usbipd.conf b/libre/linux-libre-tools/usbipd.conf
deleted file mode 100644
index 5990b857a..000000000
--- a/libre/linux-libre-tools/usbipd.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-# vim:set ts=2 sw=2 ft=sh noet:
-
-DAEMON_OPTS=''
diff --git a/libre/linux-libre-tools/usbipd.rc b/libre/linux-libre-tools/usbipd.rc
deleted file mode 100644
index 15a1bcf00..000000000
--- a/libre/linux-libre-tools/usbipd.rc
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/conf.d/${0##*/}
-
-DAEMON=/usr/sbin/usbipd
-PID=$(pidof -o %PPID $DAEMON)
-DAEMON_OPTS="--daemon $DAEMON_OPTS"
-
-case "$1" in
- start)
- stat_busy "Starting ${0##*/} daemon"
- [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon ${0##*/} && stat_done && exit 0
- stat_fail
- ;;
- stop)
- stat_busy "Stopping ${0##*/} daemon"
- [[ $PID ]] && kill $PID &> /dev/null && rm_daemon ${0##*/} && stat_done && exit 0
- stat_fail
- ;;
- restart)
- $0 stop
- $0 start
- exit 0
- ;;
- *)
- echo "usage: ${0##*/} {start|stop|restart}" >&2
- ;;
-esac
-
-exit 1
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/linux-libre/.directory b/libre/linux-libre/.directory
deleted file mode 100644
index e6f3e33d1..000000000
--- a/libre/linux-libre/.directory
+++ /dev/null
@@ -1,6 +0,0 @@
-[Dolphin]
-Timestamp=2012,8,9,22,54,19
-Version=3
-
-[Settings]
-HiddenFilesShown=true
diff --git a/libre/linux-libre/3.4.2-rpc_pipefs.patch b/libre/linux-libre/3.4.2-rpc_pipefs.patch
deleted file mode 100644
index db53b3813..000000000
--- a/libre/linux-libre/3.4.2-rpc_pipefs.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index 0404047..21fde99 100644
---- a/net/sunrpc/rpc_pipe.c
-+++ b/net/sunrpc/rpc_pipe.c
-@@ -71,7 +71,9 @@ static void rpc_purge_list(wait_queue_head_t *waitq, struct list_head *head,
- msg->errno = err;
- destroy_msg(msg);
- } while (!list_empty(head));
-- wake_up(waitq);
-+
-+ if (waitq)
-+ wake_up(waitq);
- }
-
- static void
-@@ -91,11 +93,9 @@ rpc_timeout_upcall_queue(struct work_struct *work)
- }
- dentry = dget(pipe->dentry);
- spin_unlock(&pipe->lock);
-- if (dentry) {
-- rpc_purge_list(&RPC_I(dentry->d_inode)->waitq,
-- &free_list, destroy_msg, -ETIMEDOUT);
-- dput(dentry);
-- }
-+ rpc_purge_list(dentry ? &RPC_I(dentry->d_inode)->waitq : NULL,
-+ &free_list, destroy_msg, -ETIMEDOUT);
-+ dput(dentry);
- }
-
- ssize_t rpc_pipe_generic_upcall(struct file *filp, struct rpc_pipe_msg *msg,
---
-1.7.7.6
-
diff --git a/libre/linux-libre/3.4.4-fix-backlight-regression.patch b/libre/linux-libre/3.4.4-fix-backlight-regression.patch
deleted file mode 100644
index a0cf0b1db..000000000
--- a/libre/linux-libre/3.4.4-fix-backlight-regression.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Subject: Still use ACPI backlight control if _DOS doesn't exist
-
-This is a regression introduced by commit
-ea9f8856bd6d4ed45885b06a338f7362cd6c60e5
-
-https://bugzilla.kernel.org/show_bug.cgi?id=43168
-
-Some platforms don't have _DOS control method, but the ACPI
-backlight still works.
-We do not want to lose the backlight control ability on these platforms.
-
-CC : Igor Murzov <intergalactic.anonymous@gmail.com>
-Signed-off-by: Zhang Rui <rui.zhang@intel.com>
----
- drivers/acpi/video.c | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-Index: rtd3/drivers/acpi/video.c
-===================================================================
---- rtd3.orig/drivers/acpi/video.c
-+++ rtd3/drivers/acpi/video.c
-@@ -565,8 +565,14 @@ acpi_video_bus_DOS(struct acpi_video_bus
- video->dos_setting = arg0.integer.value;
- status = acpi_evaluate_object(video->device->handle, "_DOS",
- &args, NULL);
-- if (ACPI_FAILURE(status))
-- return -EIO;
-+ if (ACPI_FAILURE(status)) {
-+ /*
-+ * some platforms don't have _DOS, but the ACPI
-+ * backlight control still works
-+ */
-+ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "No _DOS\n"));
-+ return 0;
-+ }
-
- return 0;
- }
diff --git a/libre/linux-libre/3.4.4-fix-gtx560ti-nouveau-regression.patch b/libre/linux-libre/3.4.4-fix-gtx560ti-nouveau-regression.patch
deleted file mode 100644
index 1b70e918c..000000000
--- a/libre/linux-libre/3.4.4-fix-gtx560ti-nouveau-regression.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Revert change to include/drm/drm_fb_helper.h made in commit 4f988d132d2668b4f3b42bfc70daa531115ccca1
-
- include/drm/drm_fb_helper.h | 1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
-index 55e10d6..5120b01 100644
---- a/include/drm/drm_fb_helper.h
-+++ b/include/drm/drm_fb_helper.h
-@@ -35,6 +35,7 @@ struct drm_fb_helper;
- #include <linux/kgdb.h>
-
- struct drm_fb_helper_crtc {
-+ uint32_t crtc_id;
- struct drm_mode_set mode_set;
- struct drm_display_mode *desired_mode;
- };
---
-1.7.6.5
-
diff --git a/libre/linux-libre/alsa-powersave-3.5.x.patch b/libre/linux-libre/alsa-powersave-3.5.x.patch
deleted file mode 100644
index 189fd1ceb..000000000
--- a/libre/linux-libre/alsa-powersave-3.5.x.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Takashi Iwai <tiwai@suse.de>
-Date: Mon, 20 Aug 2012 19:25:22 +0000 (+0200)
-Subject: ALSA: hda - Fix leftover codec->power_transition
-X-Git-Tag: v3.6-rc3~14^2~1
-X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=commitdiff_plain;h=535b6c51fe8293c88ce919cdfc4390c67a1cb6d1
-
-ALSA: hda - Fix leftover codec->power_transition
-
-When the codec turn-on operation is canceled by the immediate
-power-on, the driver left the power_transition flag as is.
-This caused the persistent avoidance of power-save behavior.
-
-Cc: <stable@vger.kernel.org> [v3.5+]
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
----
-
-diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
-index c3077d5..f560051 100644
---- a/sound/pci/hda/hda_codec.c
-+++ b/sound/pci/hda/hda_codec.c
-@@ -4454,6 +4454,8 @@ static void __snd_hda_power_up(struct hda_codec *codec, bool wait_power_down)
- * then there is no need to go through power up here.
- */
- if (codec->power_on) {
-+ if (codec->power_transition < 0)
-+ codec->power_transition = 0;
- spin_unlock(&codec->power_lock);
- return;
- }
diff --git a/libre/linux-libre/avmfritz-only-few-bytes-are-transfered-on-a-conn.patch b/libre/linux-libre/avmfritz-only-few-bytes-are-transfered-on-a-conn.patch
deleted file mode 100644
index f8bb193c6..000000000
--- a/libre/linux-libre/avmfritz-only-few-bytes-are-transfered-on-a-conn.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 285c08154eede7dc4387bfc925967c884594dcc9 Mon Sep 17 00:00:00 2001
-From: Karsten Keil <keil@b1-systems.de>
-Date: Sat, 28 Jul 2012 20:10:04 +0200
-Subject: [PATCH] mISDN: Bugfix only few bytes are transfered on a connection
-
-The test for the fillempty condition was wrong in one place.
-Changed the variable to the right boolean type.
-
-Signed-off-by: Karsten Keil <keil@b1-systems.de>
----
- drivers/isdn/hardware/mISDN/avmfritz.c | 7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/isdn/hardware/mISDN/avmfritz.c b/drivers/isdn/hardware/mISDN/avmfritz.c
-index c08fc60..fa6ca47 100644
---- a/drivers/isdn/hardware/mISDN/avmfritz.c
-+++ b/drivers/isdn/hardware/mISDN/avmfritz.c
-@@ -449,7 +449,8 @@ hdlc_fill_fifo(struct bchannel *bch)
- {
- struct fritzcard *fc = bch->hw;
- struct hdlc_hw *hdlc;
-- int count, fs, cnt = 0, idx, fillempty = 0;
-+ int count, fs, cnt = 0, idx;
-+ bool fillempty = false;
- u8 *p;
- u32 *ptr, val, addr;
-
-@@ -462,7 +463,7 @@ hdlc_fill_fifo(struct bchannel *bch)
- return;
- count = fs;
- p = bch->fill;
-- fillempty = 1;
-+ fillempty = true;
- } else {
- count = bch->tx_skb->len - bch->tx_idx;
- if (count <= 0)
-@@ -477,7 +478,7 @@ hdlc_fill_fifo(struct bchannel *bch)
- hdlc->ctrl.sr.cmd |= HDLC_CMD_XME;
- }
- ptr = (u32 *)p;
-- if (fillempty) {
-+ if (!fillempty) {
- pr_debug("%s.B%d: %d/%d/%d", fc->name, bch->nr, count,
- bch->tx_idx, bch->tx_skb->len);
- bch->tx_idx += count;
---
-1.7.7
-
diff --git a/libre/linux-libre/i915-fix-ghost-tv-output.patch b/libre/linux-libre/i915-fix-ghost-tv-output.patch
deleted file mode 100644
index 3b631361a..000000000
--- a/libre/linux-libre/i915-fix-ghost-tv-output.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
-Tested-by: Santi <santi@agolina.net>
----
- drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
-index dc83b7a..c8f67bf 100644
---- a/drivers/gpu/drm/i915/intel_tv.c
-+++ b/drivers/gpu/drm/i915/intel_tv.c
-@@ -1267,6 +1267,15 @@
- DAC_B_0_7_V |
- DAC_C_0_7_V);
-
-+ /*
-+ * The TV sense state should be cleared to zero on cantiga platform. Otherwise
-+ * the TV is misdetected. This is hardware requirement.
-+ */
-+ if (IS_GM45(dev))
-+ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |
-+ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);
-+
-+
- I915_WRITE(TV_CTL, tv_ctl);
- I915_WRITE(TV_DAC, tv_dac);
- POSTING_READ(TV_DAC);
diff --git a/libre/linux-libre/i915-i2c-crash-3.5.x.patch b/libre/linux-libre/i915-i2c-crash-3.5.x.patch
deleted file mode 100644
index d202b531c..000000000
--- a/libre/linux-libre/i915-i2c-crash-3.5.x.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From cee25168e9c4ef7f9417632af2dc78b8521dfda7 Mon Sep 17 00:00:00 2001
-From: Jani Nikula <jani.nikula@intel.com>
-Date: Mon, 13 Aug 2012 17:33:02 +0300
-Subject: [PATCH] drm/i915: ensure i2c adapter is all set before adding it
-
-i2c_add_adapter() may do i2c transfers on the bus to detect supported
-devices. Therefore the adapter needs to be all set before adding it. This
-was not the case for the bit-banging fallback, resulting in an oops if the
-device detection GMBUS transfers timed out. Fix the issue by calling
-i2c_add_adapter() only after intel_gpio_setup().
-
-LKML-Reference: <5021F00B.7000503@ionic.de>
-Tested-by: Mihai Moldovan <ionic@ionic.de>
-Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
----
- drivers/gpu/drm/i915/intel_i2c.c | 7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_i2c.c b/drivers/gpu/drm/i915/intel_i2c.c
-index d79500b..b9755f6 100644
---- a/drivers/gpu/drm/i915/intel_i2c.c
-+++ b/drivers/gpu/drm/i915/intel_i2c.c
-@@ -486,9 +486,6 @@ int intel_setup_gmbus(struct drm_device *dev)
- bus->dev_priv = dev_priv;
-
- bus->adapter.algo = &gmbus_algorithm;
-- ret = i2c_add_adapter(&bus->adapter);
-- if (ret)
-- goto err;
-
- /* By default use a conservative clock rate */
- bus->reg0 = port | GMBUS_RATE_100KHZ;
-@@ -498,6 +495,10 @@ int intel_setup_gmbus(struct drm_device *dev)
- bus->force_bit = true;
-
- intel_gpio_setup(bus, port);
-+
-+ ret = i2c_add_adapter(&bus->adapter);
-+ if (ret)
-+ goto err;
- }
-
- intel_i2c_reset(dev_priv->dev);
---
-1.7.7.6
-
diff --git a/libre/linux-libre/irq_cfg_pointer-3.6.6.patch b/libre/linux-libre/irq_cfg_pointer-3.6.6.patch
deleted file mode 100644
index 32583c0ac..000000000
--- a/libre/linux-libre/irq_cfg_pointer-3.6.6.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=blobdiff_plain;f=arch%2Fx86%2Fkernel%2Fapic%2Fio_apic.c;h=1817fa911024f07151d3edf91bd350722c9f79f8;hp=c265593ec2cdc3df35fda1586aaf91514fab62fa;hb=94777fc51b3ad85ff9f705ddf7cdd0eb3bbad5a6;hpb=3e8fa263a97079c74880675c451587bb6899e661
-
-diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
-index c265593..1817fa9 100644
---- a/arch/x86/kernel/apic/io_apic.c
-+++ b/arch/x86/kernel/apic/io_apic.c
-@@ -2257,6 +2257,9 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void)
- continue;
-
- cfg = irq_cfg(irq);
-+ if (!cfg)
-+ continue;
-+
- raw_spin_lock(&desc->lock);
-
- /*
diff --git a/libre/linux-libre/module-init-wait-3.6.patch b/libre/linux-libre/module-init-wait-3.6.patch
deleted file mode 100644
index 1bcfd2491..000000000
--- a/libre/linux-libre/module-init-wait-3.6.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From: Rusty Russell <rusty@rustcorp.com.au>
-Date: Fri, 28 Sep 2012 05:01:03 +0000 (+0930)
-Subject: module: wait when loading a module which is currently initializing.
-X-Git-Tag: v3.7-rc1~2^2~32
-X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=9bb9c3be568346538
-
-module: wait when loading a module which is currently initializing.
-
-The original module-init-tools module loader used a fnctl lock on the
-.ko file to avoid attempts to simultaneously load a module.
-Unfortunately, you can't get an exclusive fcntl lock on a read-only
-fd, making this not work for read-only mounted filesystems.
-module-init-tools has a hacky sleep-and-loop for this now.
-
-It's not that hard to wait in the kernel, and only return -EEXIST once
-the first module has finished loading (or continue loading the module
-if the first one failed to initialize for some reason). It's also
-consistent with what we do for dependent modules which are still loading.
-
-Suggested-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
-Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
----
-
-diff --git a/kernel/module.c b/kernel/module.c
-index 63cf6e7..74bc195 100644
---- a/kernel/module.c
-+++ b/kernel/module.c
-@@ -2845,6 +2845,20 @@ static int post_relocation(struct module *mod, const struct load_info *info)
- return module_finalize(info->hdr, info->sechdrs, mod);
- }
-
-+/* Is this module of this name done loading? No locks held. */
-+static bool finished_loading(const char *name)
-+{
-+ struct module *mod;
-+ bool ret;
-+
-+ mutex_lock(&module_mutex);
-+ mod = find_module(name);
-+ ret = !mod || mod->state != MODULE_STATE_COMING;
-+ mutex_unlock(&module_mutex);
-+
-+ return ret;
-+}
-+
- /* Allocate and load the module: note that size of section 0 is always
- zero, and we rely on this for optional sections. */
- static struct module *load_module(void __user *umod,
-@@ -2852,7 +2866,7 @@ static struct module *load_module(void __user *umod,
- const char __user *uargs)
- {
- struct load_info info = { NULL, };
-- struct module *mod;
-+ struct module *mod, *old;
- long err;
-
- pr_debug("load_module: umod=%p, len=%lu, uargs=%p\n",
-@@ -2918,8 +2932,18 @@ static struct module *load_module(void __user *umod,
- * function to insert in a way safe to concurrent readers.
- * The mutex protects against concurrent writers.
- */
-+again:
- mutex_lock(&module_mutex);
-- if (find_module(mod->name)) {
-+ if ((old = find_module(mod->name)) != NULL) {
-+ if (old->state == MODULE_STATE_COMING) {
-+ /* Wait in case it fails to load. */
-+ mutex_unlock(&module_mutex);
-+ err = wait_event_interruptible(module_wq,
-+ finished_loading(mod->name));
-+ if (err)
-+ goto free_arch_cleanup;
-+ goto again;
-+ }
- err = -EEXIST;
- goto unlock;
- }
diff --git a/libre/linux-libre/module-symbol-waiting-3.6.patch b/libre/linux-libre/module-symbol-waiting-3.6.patch
deleted file mode 100644
index b87a38ff5..000000000
--- a/libre/linux-libre/module-symbol-waiting-3.6.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From: Rusty Russell <rusty@rustcorp.com.au>
-Date: Fri, 28 Sep 2012 05:01:03 +0000 (+0930)
-Subject: module: fix symbol waiting when module fails before init
-X-Git-Tag: v3.7-rc1~2^2~33
-X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=6f13909f4fe9652f1
-
-module: fix symbol waiting when module fails before init
-
-We use resolve_symbol_wait(), which blocks if the module containing
-the symbol is still loading. However:
-
-1) The module_wq we use is only woken after calling the modules' init
- function, but there are other failure paths after the module is
- placed in the linked list where we need to do the same thing.
-
-2) wake_up() only wakes one waiter, and our waitqueue is shared by all
- modules, so we need to wake them all.
-
-3) wake_up_all() doesn't imply a memory barrier: I feel happier calling
- it after we've grabbed and dropped the module_mutex, not just after
- the state assignment.
-
-Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
----
-
-diff --git a/kernel/module.c b/kernel/module.c
-index 7f2ee45f..63cf6e7 100644
---- a/kernel/module.c
-+++ b/kernel/module.c
-@@ -2959,7 +2959,7 @@ static struct module *load_module(void __user *umod,
- /* Unlink carefully: kallsyms could be walking list. */
- list_del_rcu(&mod->list);
- module_bug_cleanup(mod);
--
-+ wake_up_all(&module_wq);
- ddebug:
- dynamic_debug_remove(info.debug);
- unlock:
-@@ -3034,7 +3034,7 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
- blocking_notifier_call_chain(&module_notify_list,
- MODULE_STATE_GOING, mod);
- free_module(mod);
-- wake_up(&module_wq);
-+ wake_up_all(&module_wq);
- return ret;
- }
- if (ret > 0) {
-@@ -3046,9 +3046,8 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
- dump_stack();
- }
-
-- /* Now it's a first class citizen! Wake up anyone waiting for it. */
-+ /* Now it's a first class citizen! */
- mod->state = MODULE_STATE_LIVE;
-- wake_up(&module_wq);
- blocking_notifier_call_chain(&module_notify_list,
- MODULE_STATE_LIVE, mod);
-
-@@ -3071,6 +3070,7 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
- mod->init_ro_size = 0;
- mod->init_text_size = 0;
- mutex_unlock(&module_mutex);
-+ wake_up_all(&module_wq);
-
- return 0;
- }
diff --git a/libre/linux-libre/watchdog-3.5.x.patch b/libre/linux-libre/watchdog-3.5.x.patch
deleted file mode 100644
index 7ac1e6732..000000000
--- a/libre/linux-libre/watchdog-3.5.x.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/drivers/mfd/lpc_ich.c b/drivers/mfd/lpc_ich.c
-index 027cc8f..a05fdfc 100644
---- a/drivers/mfd/lpc_ich.c
-+++ b/drivers/mfd/lpc_ich.c
-@@ -765,7 +765,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
- u32 base_addr_cfg;
- u32 base_addr;
- int ret;
-- bool acpi_conflict = false;
- struct resource *res;
-
- /* Setup power management base register */
-@@ -780,20 +779,11 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
- res = wdt_io_res(ICH_RES_IO_TCO);
- res->start = base_addr + ACPIBASE_TCO_OFF;
- res->end = base_addr + ACPIBASE_TCO_END;
-- ret = acpi_check_resource_conflict(res);
-- if (ret) {
-- acpi_conflict = true;
-- goto wdt_done;
-- }
-
- res = wdt_io_res(ICH_RES_IO_SMI);
- res->start = base_addr + ACPIBASE_SMI_OFF;
- res->end = base_addr + ACPIBASE_SMI_END;
-- ret = acpi_check_resource_conflict(res);
-- if (ret) {
-- acpi_conflict = true;
-- goto wdt_done;
-- }
-+
- lpc_ich_enable_acpi_space(dev);
-
- /*
-@@ -813,11 +803,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
- res = wdt_mem_res(ICH_RES_MEM_GCS);
- res->start = base_addr + ACPIBASE_GCS_OFF;
- res->end = base_addr + ACPIBASE_GCS_END;
-- ret = acpi_check_resource_conflict(res);
-- if (ret) {
-- acpi_conflict = true;
-- goto wdt_done;
-- }
- }
-
- lpc_ich_finalize_cell(&lpc_ich_cells[LPC_WDT], id);
-@@ -825,9 +810,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
- 1, NULL, 0);
-
- wdt_done:
-- if (acpi_conflict)
-- pr_warn("Resource conflict(s) found affecting %s\n",
-- lpc_ich_cells[LPC_WDT].name);
- return ret;
- }
-
---
-1.7.1
-
- \ No newline at end of file
diff --git a/libre/luxrays-libre/PKGBUILD b/libre/luxrays-libre/PKGBUILD
deleted file mode 100644
index 279e6622e..000000000
--- a/libre/luxrays-libre/PKGBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# $Id$
-# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
-# Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy>
-_pkgname=luxrays
-pkgname=luxrays-libre
-pkgver=1.0rc3
-_pkgver=eb749c000ffc
-pkgrel=1
-epoch=0
-pkgdesc="Accelerate the ray intersection process by using CPUs (without OpenCL)"
-arch=('i686' 'x86_64' 'mips64el')
-url="http://www.luxrender.net/"
-license=('GPL')
-depends=('freeimage' 'freeglut' 'glew')
-makedepends=('cmake' 'boost')
-replaces=('luxrays')
-conflicts=('luxrays')
-provides=("luxrays=$pkgver")
-source=(https://bitbucket.org/luxrender/luxrays/get/$_pkgver.tar.bz2)
-md5sums=('f5f4b53df22a1c7ad301c78d046edd7d')
-
-build() {
- cd "$srcdir/luxrender-$_pkgname-$_pkgver"
-
- export CXXFLAGS="$CXXFLAGS -lpthread"
- cmake -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_SKIP_RPATH=ON \
- -DLUXRAYS_DISABLE_OPENCL=ON \
- .
- make
-}
-
-package() {
- cd "$srcdir/luxrender-$_pkgname-$_pkgver"
-
- install -d -m755 "$pkgdir"/usr/{bin,include,lib}
- install -m755 bin/* "$pkgdir"/usr/bin
- install -m644 lib/* "$pkgdir"/usr/lib
- cp -a include/luxrays "$pkgdir"/usr/include
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/libre/luxrender-libre/PKGBUILD b/libre/luxrender-libre/PKGBUILD
deleted file mode 100644
index be6fd88e8..000000000
--- a/libre/luxrender-libre/PKGBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# $Id$
-# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
-# Initial contributor: flixie <69one@gmx.net>
-# Contributor: Imanol Celaya <ornitorrincos@archlinux-es.org>
-# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
-pkgname=luxrender-libre
-pkgver=1.0rc3
-_pkgver=9ed6b94cef05
-pkgrel=1
-pkgdesc="Rendering system for physically correct, unbiased image synthesis (without OpenCL)"
-arch=('i686' 'x86_64' 'mips64el')
-url="http://www.luxrender.net/"
-license=('GPL')
-depends=('boost-libs' 'freeimage' 'openexr')
-optdepends=('luxblend25: Blender exporter' 'qt: Qt GUI' \
- 'python: Python interface (pylux)')
-makedepends=('cmake' 'boost' 'qt' 'luxrays-libre' 'python')
-replaces=('luxrender')
-conflicts=('luxrender')
-provides=("luxrender=$pkgver")
-source=(https://bitbucket.org/luxrender/lux/get/$_pkgver.tar.bz2 \
- boost_1.50_fix.diff)
-md5sums=('54ff625a7833541c3cff5f0a77a93863'
- '8c7774bb0c97aadd77d9e665d8fa4aab')
-
-build() {
- cd "$srcdir"/luxrender-lux-$_pkgver
-
- # fix for boost 1.50
- # the boost::TIME_UTC has been renamed due to the conflict with C++11
- patch -Np1 < "$srcdir"/boost_1.50_fix.diff || true
-
- export CXXFLAGS="$CXXFLAGS -lpthread"
- cmake -DCMAKE_INSTALL_PREFIX=/usr \
- -DLUXRAYS_DISABLE_OPENCL=ON \
- -DPYTHON_CUSTOM=ON \
- -DPYTHON_LIBRARIES=/usr/lib/libpython3.2mu.so \
- -DPYTHON_INCLUDE_PATH=/usr/include/python3.2mu/ \
- .
- make
-}
-
-package() {
- cd "$srcdir"/luxrender-lux-$_pkgver
- make DESTDIR="$pkgdir" install
-
- # fix library path on x86_64
- [ "$CARCH" = "x86_64" ] && mv "$pkgdir"/usr/lib64 "$pkgdir"/usr/lib
-
- #install pylux
- install -D -m644 pylux.so "$pkgdir"/usr/lib/python3.2/pylux.so
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/libre/luxrender-libre/boost_1.50_fix.diff b/libre/luxrender-libre/boost_1.50_fix.diff
deleted file mode 100644
index c1aa0a8e2..000000000
--- a/libre/luxrender-libre/boost_1.50_fix.diff
+++ /dev/null
@@ -1,131 +0,0 @@
-diff -rup luxrender-lux-008805644181/core/film.cpp luxrender-lux-008805644181.new/core/film.cpp
---- luxrender-lux-008805644181/core/film.cpp 2012-06-02 08:40:33.000000000 +0200
-+++ luxrender-lux-008805644181.new/core/film.cpp 2012-07-07 15:44:59.867492295 +0200
-@@ -618,7 +618,7 @@ Film::Film(u_int xres, u_int yres, Filte
- int yRealHeight = Floor2Int(yPixelStart + .5f + yPixelCount + filter->yWidth) - Floor2Int(yPixelStart + .5f - filter->yWidth);
- samplePerPass = xRealWidth * yRealHeight;
-
-- boost::xtime_get(&creationTime, boost::TIME_UTC);
-+ boost::xtime_get(&creationTime, boost::TIME_UTC_);
-
- //Queryable parameters
- AddIntAttribute(*this, "xResolution", "Horizontal resolution (pixels)", &Film::GetXResolution);
-@@ -855,7 +855,7 @@ void Film::AddSampleCount(float count) {
- if (haltTime > 0) {
- // Check if we have met the enough rendering time condition
- boost::xtime t;
-- boost::xtime_get(&t, boost::TIME_UTC);
-+ boost::xtime_get(&t, boost::TIME_UTC_);
- if (t.sec - creationTime.sec > haltTime)
- enoughSamplesPerPixel = true;
- }
-diff -rup luxrender-lux-008805644181/core/photonmap.cpp luxrender-lux-008805644181.new/core/photonmap.cpp
---- luxrender-lux-008805644181/core/photonmap.cpp 2012-06-02 08:40:33.000000000 +0200
-+++ luxrender-lux-008805644181.new/core/photonmap.cpp 2012-07-07 15:44:59.870825579 +0200
-@@ -474,13 +474,13 @@ void PhotonMapPreprocess(const RandomGen
-
- boost::xtime photonShootingStartTime;
- boost::xtime lastUpdateTime;
-- boost::xtime_get(&photonShootingStartTime, boost::TIME_UTC);
-- boost::xtime_get(&lastUpdateTime, boost::TIME_UTC);
-+ boost::xtime_get(&photonShootingStartTime, boost::TIME_UTC_);
-+ boost::xtime_get(&lastUpdateTime, boost::TIME_UTC_);
- u_int nshot = 0;
- while ((!radianceDone || !directDone || !causticDone || !indirectDone) && !scene.terminated) {
- // Dade - print some progress information
- boost::xtime currentTime;
-- boost::xtime_get(&currentTime, boost::TIME_UTC);
-+ boost::xtime_get(&currentTime, boost::TIME_UTC_);
- if (currentTime.sec - lastUpdateTime.sec > 5) {
- ss.str("");
- ss << "Photon shooting progress: Direct[" << directPhotons.size();
-@@ -686,7 +686,7 @@ void PhotonMapPreprocess(const RandomGen
- return;
-
- boost::xtime photonShootingEndTime;
-- boost::xtime_get(&photonShootingEndTime, boost::TIME_UTC);
-+ boost::xtime_get(&photonShootingEndTime, boost::TIME_UTC_);
- LOG(LUX_INFO,LUX_NOERROR) << "Photon shooting done (" << ( photonShootingEndTime.sec - photonShootingStartTime.sec ) << "s)";
-
- if (computeRadianceMap) {
-@@ -700,7 +700,7 @@ void PhotonMapPreprocess(const RandomGen
- for (u_int i = 0; i < radiancePhotons.size(); ++i) {
- // Dade - print some progress info
- boost::xtime currentTime;
-- boost::xtime_get(&currentTime, boost::TIME_UTC);
-+ boost::xtime_get(&currentTime, boost::TIME_UTC_);
- if (currentTime.sec - lastUpdateTime.sec > 5) {
- LOG(LUX_INFO,LUX_NOERROR) << "Radiance photon map computation progress: " << i << " (" << (100 * i / radiancePhotons.size()) << "%)";
-
-@@ -740,7 +740,7 @@ void PhotonMapPreprocess(const RandomGen
-
-
- boost::xtime radianceComputeEndTime;
-- boost::xtime_get(&radianceComputeEndTime, boost::TIME_UTC);
-+ boost::xtime_get(&radianceComputeEndTime, boost::TIME_UTC_);
- LOG(LUX_INFO,LUX_NOERROR) << "Radiance photon map computed (" << ( radianceComputeEndTime.sec - photonShootingEndTime.sec ) << "s)";
- }
-
-diff -rup luxrender-lux-008805644181/core/renderfarm.cpp luxrender-lux-008805644181.new/core/renderfarm.cpp
---- luxrender-lux-008805644181/core/renderfarm.cpp 2012-06-02 08:40:33.000000000 +0200
-+++ luxrender-lux-008805644181.new/core/renderfarm.cpp 2012-07-07 15:44:59.870825579 +0200
-@@ -100,7 +100,7 @@ void FilmUpdaterThread::updateFilm(FilmU
- // Dade - thread to update the film with data from servers
-
- boost::xtime reft;
-- boost::xtime_get(&reft, boost::TIME_UTC);
-+ boost::xtime_get(&reft, boost::TIME_UTC_);
-
- while (filmUpdaterThread->signal == SIG_NONE) {
- // Dade - check signal every 1 sec
-@@ -108,7 +108,7 @@ void FilmUpdaterThread::updateFilm(FilmU
- for(;;) {
- // Dade - sleep for 1 sec
- boost::xtime xt;
-- boost::xtime_get(&xt, boost::TIME_UTC);
-+ boost::xtime_get(&xt, boost::TIME_UTC_);
- xt.sec += 1;
- boost::thread::sleep(xt);
-
-diff -rup luxrender-lux-008805644181/film/fleximage.cpp luxrender-lux-008805644181.new/film/fleximage.cpp
---- luxrender-lux-008805644181/film/fleximage.cpp 2012-06-02 08:40:33.000000000 +0200
-+++ luxrender-lux-008805644181.new/film/fleximage.cpp 2012-07-07 15:44:59.877492150 +0200
-@@ -191,7 +191,7 @@ FlexImageFilm::FlexImageFilm(u_int xres,
- m_CameraResponseEnabled = d_CameraResponseEnabled = m_CameraResponseFile != "";
-
- // init timer
-- boost::xtime_get(&lastWriteImageTime, boost::TIME_UTC);
-+ boost::xtime_get(&lastWriteImageTime, boost::TIME_UTC_);
- lastWriteFLMTime = lastWriteImageTime;
- }
-
-@@ -812,7 +812,7 @@ void FlexImageFilm::CheckWriteOuputInter
- {
- // Check write output interval
- boost::xtime currentTime;
-- boost::xtime_get(&currentTime, boost::TIME_UTC);
-+ boost::xtime_get(&currentTime, boost::TIME_UTC_);
- bool timeToWriteImage = (currentTime.sec - lastWriteImageTime.sec > writeInterval);
- bool timeToWriteFLM = (currentTime.sec - lastWriteFLMTime.sec > flmWriteInterval);
-
-@@ -834,7 +834,7 @@ void FlexImageFilm::CheckWriteOuputInter
- // WriteImage can take a very long time to be executed (i.e. by saving
- // the film. It is better to refresh timestamps after the
- // execution of WriteImage instead than before.
-- boost::xtime_get(&currentTime, boost::TIME_UTC);
-+ boost::xtime_get(&currentTime, boost::TIME_UTC_);
-
- if (timeToWriteImage)
- lastWriteImageTime = currentTime;
-diff -rup luxrender-lux-008805644181/renderers/sppmrenderer.h luxrender-lux-008805644181.new/renderers/sppmrenderer.h
---- luxrender-lux-008805644181/renderers/sppmrenderer.h 2012-06-02 08:40:33.000000000 +0200
-+++ luxrender-lux-008805644181.new/renderers/sppmrenderer.h 2012-07-07 15:44:59.874158864 +0200
-@@ -126,7 +126,7 @@ public:
- {
- while (state == PAUSE && !boost::this_thread::interruption_requested()) {
- boost::xtime xt;
-- boost::xtime_get(&xt, boost::TIME_UTC);
-+ boost::xtime_get(&xt, boost::TIME_UTC_);
- xt.sec += 1;
- boost::thread::sleep(xt);
- }
diff --git a/libre/maven-libre/PKGBUILD b/libre/maven-libre/PKGBUILD
deleted file mode 100644
index 2bd99940e..000000000
--- a/libre/maven-libre/PKGBUILD
+++ /dev/null
@@ -1,76 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: William Rea <sillywilly@gmail.com>
-
-_pkgname=maven
-pkgname=maven-libre
-pkgver=3.0.4
-
-provides=("$_pkgname=$pkgver")
-replaces=("$_pkgname")
-conflicts=("$_pkgname")
-
-pkgrel=1
-pkgdesc="A Java project management and project comprehension tool"
-arch=('any')
-url="http://maven.apache.org"
-license=('Apache')
-depends=('java-environment')
-makedepends=('apache-ant')
-backup=('etc/maven/settings.xml')
-
-_mirror=http://archive.apache.org/dist
-source=($_mirror/maven/source/apache-maven-$pkgver-src.tar.gz
- maven.sh maven.csh)
-
-_M2_LOCALREPO="/usr/share/maven/repository"
-
-# FIXME: This also does tasks for package()
-build() {
- cd $srcdir/apache-maven-$pkgver
-
- . /etc/profile.d/jre.sh
- . /etc/profile.d/jdk.sh
-
- export MAVEN_OPTS=-Xmx512m
- export M2_HOME="$pkgdir"/opt/maven
- export PATH="$PATH:$M2_HOME/bin"
-
- # FIXME: Downloads many deps from Internet. They should be
- # packaged separately and added to depends=()
- install -d "$pkgdir`dirname $_M2_LOCALREPO`"
- cp -r $_M2_LOCALREPO "$pkgdir$_M2_LOCALREPO"
- install -d "$pkgdir"/opt
- ant -Dmaven.repo.local="$pkgdir$_M2_LOCALREPO"
- rm "$pkgdir"/opt/maven/*.txt
-}
-
-package() {
- install -d "$pkgdir$_M2_LOCALREPO"
-
- # Install config file in /etc
- # Unlike the other directories, we symlink from the system to /opt/maven
- # because that way all conf files stay in /etc
- install -d "$pkgdir"/etc/maven
- sed "55i<localRepository>$_M2_LOCALREPO</localRepository>" \
- < "$pkgdir"/opt/maven/conf/settings.xml \
- > "$pkgdir"/etc/maven/settings.xml
- rm -rf "$pkgdir"/opt/maven/conf
- ln -s /etc/maven "$pkgdir"/opt/maven/conf
-
- # Install profile.d settings
- install -d "$pkgdir"/etc/profile.d
- install -m 755 "$srcdir"/maven.{csh,sh} "$pkgdir"/etc/profile.d
-
- # Link executables to /usr/bin
- install -d "$pkgdir"/usr/bin
- ln -s /opt/maven/bin/{mvn,mvnDebug,mvnyjp} "$pkgdir"/usr/bin
-
- # Link jar files to appropriate place in /usr/share
- install -d "$pkgdir"/usr/share/java
- ln -s /opt/maven/lib "$pkgdir"/usr/share/java/maven
-}
-
-md5sums=('17ca94d5be05a78c6ab12425b7a0ee10'
- '58820067a4d7384477daa134023d9b57'
- 'e2bbdeffed100cd51d05b2ba8ebd6321')
diff --git a/libre/maven-libre/maven.csh b/libre/maven-libre/maven.csh
deleted file mode 100644
index f5750cfc8..000000000
--- a/libre/maven-libre/maven.csh
+++ /dev/null
@@ -1,2 +0,0 @@
-setenv MAVEN_OPTS -Xmx512m
-setenv M2_HOME=/opt/maven
diff --git a/libre/maven-libre/maven.sh b/libre/maven-libre/maven.sh
deleted file mode 100644
index b6655cc22..000000000
--- a/libre/maven-libre/maven.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-export MAVEN_OPTS=-Xmx512m
-export M2_HOME=/opt/maven
diff --git a/libre/metalog/PKGBUILD b/libre/metalog/PKGBUILD
deleted file mode 100644
index 41a570b7c..000000000
--- a/libre/metalog/PKGBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# $Id: PKGBUILD 137711 2011-09-10 13:12:33Z pierre $
-# Maintainer: juergen <juergen@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-
-pkgname=metalog
-pkgver=2.0
-pkgrel=3
-pkgdesc="Metalog is a modern replacement for syslogd and klogd"
-url="http://metalog.sourceforge.net"
-license=('GPL')
-arch=('i686' 'x86_64' 'mips64el')
-depends=('pcre')
-groups=('base')
-provides=('logger')
-replaces=('syslog-ng')
-conflicts=('syslog-ng')
-backup=('etc/metalog.conf' 'etc/conf.d/metalog')
-source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-2.tar.xz"
- 'metalog' 'metalog.confd')
-md5sums=('e948d10d780205eae17645c89aee1361'
- 'cdd1d34eedbfbc2d9e659bf0a0f58f56'
- '86bccd5a02996921e29eff8a0394d11f')
-
-build() {
- cd $srcdir/$pkgname-2
- ./configure --prefix=/usr --sysconfdir=/etc
- make
-}
-
-check() {
- cd $srcdir/$pkgname-2
- make check
-}
-
-package() {
- cd $srcdir/$pkgname-2
- make DESTDIR=$pkgdir install
- install -D -m755 $srcdir/metalog $pkgdir/etc/rc.d/metalog
- install -D -m644 $srcdir/metalog.confd $pkgdir/etc/conf.d/metalog
- install -D -m644 metalog.conf $pkgdir/etc/metalog.conf
-
-}
-
diff --git a/libre/metalog/metalog b/libre/metalog/metalog
deleted file mode 100644
index d30f47289..000000000
--- a/libre/metalog/metalog
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-# source application-specific settings
-[ -f /etc/conf.d/metalog ] && . /etc/conf.d/metalog
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /usr/sbin/metalog`
-case "$1" in
- start)
- stat_busy "Starting Metalog"
- [ -z "$PID" ] && /usr/sbin/metalog -B $METALOG_OPTS 2>&1
- if [ $? -gt 0 ]; then
- stat_fail
- else
- echo $PID > /var/run/metalog.pid
- add_daemon metalog
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping Metalog"
- [ ! -z "$PID" ] && kill $PID &>/dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon metalog
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/libre/metalog/metalog.confd b/libre/metalog/metalog.confd
deleted file mode 100644
index 3d76ffab3..000000000
--- a/libre/metalog/metalog.confd
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Parameters to be passed to metalog
-#
-
-# NOTE: Since v.0.7, metalog disables buffering by default.
-# Add '-a' if you want buffering.
-
-METALOG_OPTS=""
diff --git a/libre/mozilla-devscripts/PKGBUILD b/libre/mozilla-devscripts/PKGBUILD
deleted file mode 100644
index ef7ea7641..000000000
--- a/libre/mozilla-devscripts/PKGBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# Contributor: Márcio Silva <coadde@lavabit.com>
-
-pkgname=mozilla-devscripts
-pkgver=0.32
-pkgrel=1
-pkgdesc="Development scripts used by Debian Mozilla's addons packages"
-arch=("any")
-url="http://packages.debian.org/source/unstable/mozilla-devscripts"
-license=('GPL' 'custom')
-depends=("python2" "zip" "unzip")
-_debrepo=http://ftp.debian.org/debian/pool/main/
-source=("${_debrepo}/m/${pkgname}/${pkgname}_${pkgver}.dsc"
- "${_debrepo}/m/${pkgname}/${pkgname}_${pkgver}.tar.gz")
-md5sums=("386a5854601f29dca4a293f90f6c2a69"
- "230126afa15fa654eb254bb4e61b4a93")
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
- # Adapt it to Arch's Python naming.
- find . -type f | xargs -L1 sed -i "s:#!/usr/bin/python:#!/usr/bin/python2:"
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
- # The Makefile expects the system to have standard Python name, so
- # do this directly here.
- python2 setup.py install --root="$pkgdir/"
- install -Dm644 debian/copyright "${pkgdir}/usr/share/licenses/${pkgname}/copyright"
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/libre/mozilla-searchplugins/duck-duck-go-lite.xml b/libre/mozilla-searchplugins/duck-duck-go-lite.xml
deleted file mode 100644
index 3142d3410..000000000
--- a/libre/mozilla-searchplugins/duck-duck-go-lite.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-<os:ShortName>Duck Duck Go (Lite)</os:ShortName>
-<os:Description>Search Duck Duck Go (Lite)</os:Description>
-<os:InputEncoding>UTF-8</os:InputEncoding>
-<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</os:Image>
-<os:Url type="text/html" method="GET" template="https://duckduckgo.com/lite/?q={searchTerms}">
-</os:Url>
-</SearchPlugin> \ No newline at end of file
diff --git a/libre/mozilla-searchplugins/duck-duck-go-ssl.xml b/libre/mozilla-searchplugins/duck-duck-go-ssl.xml
deleted file mode 100644
index 4fb1391ab..000000000
--- a/libre/mozilla-searchplugins/duck-duck-go-ssl.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-<os:ShortName>Duck Duck Go (SSL)</os:ShortName>
-<os:Description>Search Duck Duck Go (SSL)</os:Description>
-<os:InputEncoding>UTF-8</os:InputEncoding>
-<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</os:Image>
-<os:Url type="text/html" method="GET" template="https://duckduckgo.com/?q={searchTerms}">
-</os:Url>
-</SearchPlugin> \ No newline at end of file
diff --git a/libre/mozilla-searchplugins/jamendo-en.xml b/libre/mozilla-searchplugins/jamendo-en.xml
deleted file mode 100644
index 91d6df6e4..000000000
--- a/libre/mozilla-searchplugins/jamendo-en.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-<os:ShortName>Jamendo (en)</os:ShortName>
-<os:Description>Search Jamendo.com English site for downloadable Creative Commons music</os:Description>
-<os:InputEncoding>UTF-8</os:InputEncoding>
-<os:Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjMxN4N3hgAAAqZJREFUOE9tk21IU2EUx+9S+tAXbZt6J4GRkEFQEQsKsb7W1ySCoK+9iCK9WKvMlZmKI8jqgw0JS52ZpQ4D7RV6IUmIqVGjgl6md0uf3dmcq3nvdv+dezfvNHvgD889z/n/zrn33MfApZfhpSMnu2hN5sGMFVzzori+jUk4nplhuMUfCISXnQc6+VJ21+INdluQFP+PFuKWjz9u8/sWAwz+Tn4nmVjabIF4vwChviKIvesh9hSkoDpEzS3RIGS20kN4wRxyb0b0fRNk0YNEVCD5ILMRREcvaLBkZxro11SXxcpNd1ladPPAVkjCYygJCSH/DEJCCIqiQF1KYh6xry6CbNAhVLyK09u+l0+VGylTRiKeQG9dP5xlTvi8E2lIPIbIyDH9daj4eArAQ21dDr7TqsWlONpPtMO23Yb6/Q3wvvVqcXVJ/mcQHxTqEI51WcBceZh5WILE3IQO6KjqgG3HGVRYK1G15zRGX49pncjiGEL9W8jDQ/VyrI02bXn0xYsRj/iWA7ZVoqy4HE+6nyYBzAOxe5PmUb0cc+aC3cyFeGcjpMBIGnCSOqBXqN1bhzcDw5AlWTub/zYE1lqgeVQvx67ngDWTruVi7pUdoAnE5QT66t1wnXNB+OKnCaQmIc1hdvAQ5ZuTHvJyP6+YW5iDAg4TxBtFiH3ogSL9gegPIxKK0lTUGSpQ5iP4PdyM4FWqTrnkkScd5iZOuGy2sjpzmF2iICnYtBaRIRukz4OIB8YhCx6CujHrLgerp++VyhNqTU76Dw3a3+irNu6atpuCJGg6n0WJ+WCNhWAN68BqeS22cD5ZbWq9uHvVyiX3Qag2lU7ZTV4dYjdiuiYldZ+CU17P88NZq/93W7lPp4xZlFiRhqQ6IvP3s8ZHUzWmIy+OZi8x/wVGO4LYiOwxygAAAABJRU5ErkJggg==</os:Image>
-<UpdateInterval>7</UpdateInterval>
-<UpdateUrl>http://mycroft.mozdev.org/updateos.php/id0/jamendo.xml</UpdateUrl>
-<IconUpdateUrl>http://mycroft.mozdev.org/updateos.php/id0/jamendo.ico</IconUpdateUrl>
-<SearchForm>http://www.jamendo.com/en</SearchForm>
-<os:Url type="text/html" method="GET" template="http://www.jamendo.com/en/search/all/{searchTerms}">
-</os:Url>
-</SearchPlugin> \ No newline at end of file
diff --git a/libre/mozilla-searchplugins/logless-search.xml b/libre/mozilla-searchplugins/logless-search.xml
deleted file mode 100644
index 1538d1ef0..000000000
--- a/libre/mozilla-searchplugins/logless-search.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-<os:ShortName>Logless Search</os:ShortName>
-<os:Description>Use logless.com to search the Internet in privacy, with no search logs.</os:Description>
-<os:InputEncoding>UTF-8</os:InputEncoding>
-<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKo4NSnYdKl4FmtZ52uKdKb2cjQDwQKzoSMS1Ka2lzqJRlt51VmI5MgnVHk4BpoJRPoohMiXZUo4xctJteoZAmT00jPUEYLzoRSToxVVdhhYJ/saCXgnS1cWKykH+KoptfjoBDempaoo5dtZdViXw9TFsuOkghMjoYVVIvTlded36Vm5Lol4X5lIPQlImft62IhnpTfXGMtqxquaJSkYU5Qlk6OFE+SFwzV3dLVW1teoNvo5SPppSNoJR4mJZ7uqhyj3xbg3iGuK1btZxQm4pHSmFHOV48RWhFOWpbRXFgd4BSq5JHqJJQrplprp95uqdVj3xTi3xZsptauphfqZRLRWA/LFozMVhGGEhYOmdUgIJIqo5EqJBPr5ZbspxuuqU7fWNakXpjqY9kvJxhuZ5RYGUvMEgvFSchID9ZM1JMbG1HrpZGpo1QnYZaoJJXpZI0dFqKk3m+mISen4ieln2BPTJuGxeIGhNrFRKHEQ2VLiOCa1xsnIhaf39tlJN6rKVFc1+bmH/vloDshW7oZE+wLR+7MBvHMButJRK9MibhUzzkVj7eXUTBa2yOkYuMuaMtQDS1iHP0gWrpel3dZUnIZEnbWT3aPyXkX0T/k3v0WkD6alH3clv4c1bweGDloIdlSD/ZeWXWdl/sdlvvc1jpe2Pvc1fqUzrudl38hG33aE38dVv8j3f5lXz/inLro42JZluAY13YcGDxgGb1hWj3f2f+iWv0cFT8sZH8kXj7fGP6fGH2e2D/mH/oqY7Vr5pIV1WiY1fYeWbMgHPklXnuj3T9jGr9mXj8nH/7jnT7lHv8knb6kHD/j3S/uZujw7NeXGSWXFSNbGbDi4e6p5HZnYb6kXP6nYP7l4D4qI/irpjaq5D/o4r3o4jZtJu0u7FRRlNpTFyEXWaygnmsrKGprp7SqpXno5X1rJf1wazLuqTQr5rqrKDXuKXbtaDGt6w7ITVQLUaEdHqwu7KpvLOArJ+VpZ+3oqCoqp/App7YnpDimIy2qJ20r6S1r6WhuasAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</os:Image>
-<os:Url type="text/html" method="GET" template="http://www.logless.com/?q={searchTerms}">
-</os:Url>
-</SearchPlugin>
diff --git a/libre/mozilla-searchplugins/parabola-gnulinux-libre-wiki-en.xml b/libre/mozilla-searchplugins/parabola-gnulinux-libre-wiki-en.xml
deleted file mode 100644
index 124f04609..000000000
--- a/libre/mozilla-searchplugins/parabola-gnulinux-libre-wiki-en.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-<os:ShortName>Parabola GNU/Linux-Libre Wiki (en)</os:ShortName>
-<os:Description>Parabola GNU/Linux-Libre Wiki (en)</os:Description>
-<os:InputEncoding>UTF-8</os:InputEncoding>
-<SearchForm>https://wiki.parabolagnulinux.org/Special:Search</SearchForm>
-<os:Url type="text/html" method="GET" template="https://wiki.parabolagnulinux.org/index.php?title=Special:Search&amp;search={searchTerms}">
-</os:Url><os:Url type="application/x-suggestions+json" method="GET" template="https://wiki.parabolagnulinux.org/api.php?action=opensearch&amp;search={searchTerms}&amp;namespace=0">
-</os:Url>
-</SearchPlugin> \ No newline at end of file
diff --git a/libre/mozilla-searchplugins/scroogle-ssl-english.xml b/libre/mozilla-searchplugins/scroogle-ssl-english.xml
deleted file mode 100644
index f817dce40..000000000
--- a/libre/mozilla-searchplugins/scroogle-ssl-english.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-<os:ShortName>Scroogle SSL English</os:ShortName>
-<os:Description>Scroogle SSL English</os:Description>
-<os:InputEncoding>UTF-8</os:InputEncoding>
-<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAQAAAAAAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAACZmZmZAAAAmZmZmZmZAAmZqqqqqpmQCZmQAAAAqZCZqQAAAAAKmZmgAAAAAAqZmaAACaoACpmZoACZAAAKmZmgAKkAAAqZmaAACpmaqpmZoAAAAAAKmZmqAAAAAAqZCZqgAAAJmZAJmaqqqqqZkACZmZmZmZkAAACZmZmZAADwDzgFwAPgA4ABAHyAAQAAAAAAAAAAAAAAAAAAAAAAAAAA4AMAAOADAAAAfAAAAHyAAeADgAHgA8ADAADwDwAA</os:Image>
-<UpdateInterval>7</UpdateInterval>
-<UpdateUrl>http://mycroft.mozdev.org/updateos.php/id0/scroogle_ssl_en_post.xml</UpdateUrl>
-<IconUpdateUrl>http://mycroft.mozdev.org/updateos.php/id0/scroogle_ssl_en_post.ico</IconUpdateUrl>
-<SearchForm>https://ssl.scroogle.org/scrapen8.html</SearchForm>
-<os:Url type="text/html" method="GET" template="https://ssl.scroogle.org/cgi-bin/nbbwssl.cgi">
- <os:Param name="Gw" value="{searchTerms}"/>
- <os:Param name="l" value="en"/>
-</os:Url>
-</SearchPlugin> \ No newline at end of file
diff --git a/libre/mozilla-searchplugins/seeks-search.xml b/libre/mozilla-searchplugins/seeks-search.xml
deleted file mode 100644
index 5025f5a06..000000000
--- a/libre/mozilla-searchplugins/seeks-search.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-<os:ShortName>Seeks Search</os:ShortName>
-<os:Description>Real-time p2p pattern matching network for social websearch.</os:Description>
-<os:InputEncoding>UTF-8</os:InputEncoding>
-<os:Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAwwAAAMMBnc7+MwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAJCSURBVDiNpZJLSFRxGMV/f2fGGWcc8zI6U5qSmmVPyIW0kURoES1CMgODwgh72yZoU1EQRItMooLQLAiLBAsiaVGRBKFID0oqMpqy0UIdnWke1zuPe/8tNHtAwdTZfHyc75zDB0dUtiiXgAZAkBokcFlUtigyReEvSPsf8T8ZSAkYP3bz3w6TGiQ00OMgDTCM6QmQZgKr4zcDaUA8CnEN9NhM2h9g6KDrPxloIYiFp1NSgdnQIToBpTkrqaneQp5SyIexd1x/3MrngA+AEs9ialdvo8BVxJDfS2dvO0Pj76cdyg8r8lBHo0zqCflVDci+wR6pxqIyooXl1nPr5P72ehlLaDKkBmXvYI+MaGGpxafkrtZaWX5UkaLqRLG8c/AFL4eesLutDt1IkpFu51rTPWyWDBw2J97Rt+y4WENST2C12Liyp5u52fmsb16BeWneKhzWTFzOXNp23pr9zWJKZ75rAQBz7AqtjTdnOXu6gxynm1LPcsxqTKWr7yoIgfjeZgE2SwZqLIoQgshUmOHJTzOUYCTgY8D3jGQiifmptw+HSaGitJK2B2eYCI8zTyngZP0Fnnv7sVszmYqrNN8+xkR4nHxXIdurD/BwoJs3wwOYpQ6ByCQl7jKObDxNSA3icrpRY1HO3z1FliObhqp9HK87iz88hiszF7PJgj/kx9BBLGlSpJGEIs9C1ixbS5FnEaPBEbp6OxgNfgGgMLeYDRWbyclyMzjyikev7+Pzf8RkAVG2V+mUkk2p1QeQINK48Q3fpPIi5xKaPwAAAABJRU5ErkJggg==</os:Image>
-<os:Url type="text/html" method="GET" template="http://www.seeks-project.info/search.php/search/txt/{searchTerms}">
-</os:Url>
-</SearchPlugin> \ No newline at end of file
diff --git a/libre/mozilla-searchplugins/wikipedia.xml b/libre/mozilla-searchplugins/wikipedia.xml
deleted file mode 100644
index 36b8ed494..000000000
--- a/libre/mozilla-searchplugins/wikipedia.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
-<ShortName>Wikipedia (en)</ShortName>
-<Description>Wikipedia, the free encyclopedia</Description>
-<InputEncoding>UTF-8</InputEncoding>
-<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAEAgQAhIOEAMjHyABIR0gA6ejpAGlqaQCpqKkAKCgoAPz9%2FAAZGBkAmJiYANjZ2ABXWFcAent6ALm6uQA8OjwAiIiIiIiIiIiIiI4oiL6IiIiIgzuIV4iIiIhndo53KIiIiB%2FWvXoYiIiIfEZfWBSIiIEGi%2FfoqoiIgzuL84i9iIjpGIoMiEHoiMkos3FojmiLlUipYliEWIF%2BiDe0GoRa7D6GPbjcu1yIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</Image>
-<Url type="application/x-suggestions+json" method="GET" template="http://en.wikipedia.org/w/api.php">
- <Param name="action" value="opensearch"/>
- <Param name="search" value="{searchTerms}"/>
-</Url>
-<Url type="text/html" method="GET" template="http://en.wikipedia.org/wiki/Special:Search">
- <Param name="search" value="{searchTerms}"/>
- <Param name="sourceid" value="Mozilla-search"/>
-</Url>
-<SearchForm>http://en.wikipedia.org/wiki/Special:Search</SearchForm>
-</SearchPlugin>
diff --git a/libre/mozilla-searchplugins/yacy.xml b/libre/mozilla-searchplugins/yacy.xml
deleted file mode 100644
index 61201ad20..000000000
--- a/libre/mozilla-searchplugins/yacy.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-<os:ShortName>YaCy</os:ShortName>
-<os:Description>YaCy is an open-source GPL-licensed software that can be used for stand-alone search engine installations or as a client for a multi-user P2P-based web indexing cluster. This is the access to peer 'kupferhammer-keller'.</os:Description>
-<os:InputEncoding>UTF-8</os:InputEncoding>
-<os:Image width="16" height="16">data:image/x-icon,%00%00%01%00%01%00%10%10%00%00%01%00%18%00h%2B%00%00%16%00%00%00(%00%00%00%10%00%00%00%20%00%00%00%01%00%18%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%CE%BD%7B%DE%CE%9C%8CkRkJ1kJ1kJ1kJ1kJ1sR9%C6%B5%9C%E7%DE%BD%E7%DE%BD%E7%DE%C6%E7%DE%C6%EF%EF%CE%DE%DE%AD%DE%CE%9C%BD%ADs%7BZ)%BD%ADk%CE%BD%7B%CE%BD%7B%CE%BD%7B%CE%BD%7B%A5%8CJ%8CkB%CE%BD%84%CE%BD%84%CE%C6%8C%DE%CE%9C%DE%CE%A5%EF%EF%CE%DE%CE%9C%BD%ADkkJ)%D6%C6%8C%F7%F7%E7%F7%F7%E7%F7%F7%E7%F7%F7%E7%CE%BD%84%8Ck9%CE%BD%7B%CE%BD%84%CE%BD%84%CE%C6%8C%DE%CE%9C%EF%EF%CE%DE%CE%9C%C6%B5kkJ)%BD%ADk%EF%EF%CE%EF%EF%CE%EF%EF%CE%F7%F7%E7%DE%CE%A5%7BZ)%CE%BD%7B%CE%BD%7B%CE%BD%84%CE%BD%84%CE%C6%8C%E7%DE%C6%DE%CE%9C%C6%B5ksR9%A5%8CJ%DE%DE%AD%E7%DE%BD%EF%EF%CE%F7%F7%E7%E7%DE%C6%7BZ)%BD%ADk%CE%BD%7B%CE%BD%7B%CE%BD%84%CE%BD%84%E7%DE%BD%CE%C6%8C%C6%ADk%94%7BB%94%7BB%EF%EF%CE%F7%F7%E7%F7%F7%E7%F7%F7%E7%EF%EF%CE%8Ck9%A5%8CZ%CE%BD%7B%CE%BD%7B%CE%BD%7B%CE%BD%84%E7%DE%BD%CE%C6%8C%C6%ADk%A5%8CZ%7BZ)%E7%DE%BD%F7%F7%E7%EF%EF%CE%EF%EF%DE%EF%EF%DE%A5%8CZ%8CkB%CE%BD%7B%CE%BD%7B%CE%BD%7B%CE%BD%7B%E7%DE%BD%CE%BD%84%B8%A7d%BD%ADZkJ)%DE%DE%AD%F7%F7%E7%DE%DE%AD%EF%EF%CE%EF%EF%DE%BD%ADkkJ)%CE%BD%7B%CE%BD%7B%CE%BD%7B%CE%BD%7B%DE%D6%B5%CE%BD%7B%BD%ADZ%BD%ACikJ)%DE%CE%9C%F7%F7%E7%E7%DE%BD%EF%EF%CE%F7%F7%E7%CE%BD%7BZ1%18%BD%ADk%CE%BD%7B%CE%BD%7B%CE%BD%7B%DE%DE%AD%CE%BD%7B%BD%ADZ%BD%ADZ%7BZ)%C6%AD%7B%F7%F7%E7%E7%DE%BD%E7%DE%BD%F7%F7%E7%DE%CE%9CkJ)sR9%A5%8CZ%CE%BD%7B%CE%BD%7B%DE%DE%AD%CE%BD%7B%BD%ADZ%BD%ADZ%8Ck9%AD%9CZ%F7%F7%E7%EF%EF%CE%DE%CE%9C%F7%F7%E7%E7%DE%BD%BD%ADZ%9C%8CJZ1%18%A5%8CZ%CE%BD%7B%DE%DE%AD%C6%B5k%B5%A5J%BD%ADZ%94%7B9%9C%8CJ%F7%F7%E7%EF%EF%DE%CE%BD%84%F7%F7%E7%F7%EF%E7%EF%EF%CE%DE%CE%9C%9C%8CJkJ)%BD%ADk%DE%CE%A5%BD%ADk%AD%9CJ%B5%A5J%9C%8CJ%8Ck9%DE%CE%9C%DE%D6%9C%C6%B5Z%DE%CE%9C%F7%EF%DE%FF%FF%FF%EF%EF%DE%BD%ADZZ1!%BD%ADk%DE%CE%A5%BD%ADZ%AD%9CJ%AD%9CJ%AD%9CJsJ)kR)kR)kJ)%9C%8CJ%DE%CE%9C%F7%EF%DE%DE%DE%AD%94%7B9c9!%BD%ADk%DE%CE%A5%B5%9CR%AD%9CJ%AD%9CJ%AD%9CJ%AD%9CJ%B5%9CJ%B5%9CR%94%7BBc9%18%8Ck9%A5%8CJ%8Cs9Z1!%9C%8CR%CE%BD%84%DE%CE%9C%94%849%B5%9CR%BD%ADZ%BD%ADk%C6%B5k%CE%BD%7B%CE%BD%7B%CE%BD%7B%BD%ADskJ1R)%18kJ1%C6%AD%84%DE%CE%9C%DE%CE%9C%CE%BD%7B%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00</os:Image>
-<os:Url type="text/html" method="GET" template="http://yacy.dyndns.org:8000/yacysearch.html?query={searchTerms}">
-</os:Url><os:Url type="application/rss+xml" method="GET" template="http://yacy.dyndns.org:8000/yacysearch.rss?query={searchTerms}&amp;maximumRecords=10&amp;verify=false">
-</os:Url>
-</SearchPlugin>
diff --git a/libre/mplayer-libre/.directory b/libre/mplayer-libre/.directory
deleted file mode 100644
index b3a1c5dc3..000000000
--- a/libre/mplayer-libre/.directory
+++ /dev/null
@@ -1,3 +0,0 @@
-[Dolphin]
-Timestamp=2012,11,17,0,31,48
-Version=3
diff --git a/libre/mplayer-libre/live-media.patch b/libre/mplayer-libre/live-media.patch
deleted file mode 100644
index b704b5381..000000000
--- a/libre/mplayer-libre/live-media.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: libmpdemux/demux_rtp.cpp
-===================================================================
---- libmpdemux/demux_rtp.cpp (revision 34798)
-+++ libmpdemux/demux_rtp.cpp (working copy)
-@@ -19,6 +19,8 @@
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-+#define RTSPCLIENT_SYNCHRONOUS_INTERFACE 1
-+
- extern "C" {
- // on MinGW, we must include windows.h before the things it conflicts
- #ifdef __MINGW32__ // with. they are each protected from
diff --git a/libre/mplayer-vaapi-libre/gcc-4.6-mp3lib-sse-code-miscompilation.patch b/libre/mplayer-vaapi-libre/gcc-4.6-mp3lib-sse-code-miscompilation.patch
deleted file mode 100644
index 58daa09e7..000000000
--- a/libre/mplayer-vaapi-libre/gcc-4.6-mp3lib-sse-code-miscompilation.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Index: mp3lib/dct64_sse.c
-===================================================================
---- mp3lib/dct64_sse.c (revision 33468)
-+++ mp3lib/dct64_sse.c (revision 33469)
-@@ -112,7 +112,6 @@
- }
-
- {
-- real *costab = costab_mmx + 24;
- int i;
-
- __asm__(
-@@ -121,7 +120,7 @@
- "movaps %1, %%xmm5\n\t"
- "movaps %%xmm5, %%xmm6\n\t"
- :
-- :"m"(*costab), "m"(*nnnn)
-+ :"m"(costab_mmx[24]), "m"(*nnnn)
- );
-
- for (i = 0; i < 0x20; i += 8)
diff --git a/libre/mplayer-vaapi-libre/live-media.patch b/libre/mplayer-vaapi-libre/live-media.patch
deleted file mode 100644
index 73a6451f5..000000000
--- a/libre/mplayer-vaapi-libre/live-media.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: libmpdemux/demux_rtp.cpp
-===================================================================
---- libmpdemux/demux_rtp.cpp (revision 34798)
-+++ libmpdemux/demux_rtp.cpp (working copy)
-@@ -19,6 +19,8 @@
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-+#define RTSPCLIENT_SYNCHRONOUS_INTERFACE 1
-+
- extern "C" {
- // on MinGW, we must include windows.h before the things it conflicts
- #ifdef __MINGW32__ // with. they are each protected from
diff --git a/libre/mplayer-vaapi-libre/mplayer.desktop b/libre/mplayer-vaapi-libre/mplayer.desktop
deleted file mode 100644
index e3229d042..000000000
--- a/libre/mplayer-vaapi-libre/mplayer.desktop
+++ /dev/null
@@ -1,21 +0,0 @@
-[Desktop Entry]
-Type=Application
-Name=MPlayer Media Player
-Name[ca]=Reproductor multimèdia MPlayer
-Name[pl]=MPlayer odtwarzacz multimedialny
-GenericName=Multimedia player
-Comment=Play movies and songs
-Comment[ca]=Reproduïu vídeos i cançons
-Comment[de]=Filme und Musik abspielen
-Comment[es]=Reproduzca vídeos y canciones
-Comment[fr]=Lecteur multimédia
-Comment[it]=Lettore multimediale
-Comment[zh]=多媒体播放器
-Comment[pl]=Odtwarzaj filmy i muzykę
-Icon=mplayer
-TryExec=mplayer
-Exec=mplayer -really-quiet %F
-Terminal=false
-NoDisplay=true
-Categories=GTK;AudioVideo;Audio;Video;Player;TV;
-MimeType=application/ogg;application/x-ogg;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/m4a;audio/x-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg;video/x-mpeg2;video/mp4;video/msvideo;video/x-msvideo;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/x-fli;video/x-flv;video/x-theora;video/x-matroska;
diff --git a/libre/mplayer-vaapi-libre/mplayer.png b/libre/mplayer-vaapi-libre/mplayer.png
deleted file mode 100644
index 799769335..000000000
--- a/libre/mplayer-vaapi-libre/mplayer.png
+++ /dev/null
Binary files differ
diff --git a/libre/mplayer-vaapi-libre/patch-fixes.patch b/libre/mplayer-vaapi-libre/patch-fixes.patch
deleted file mode 100644
index 5da97d1d9..000000000
--- a/libre/mplayer-vaapi-libre/patch-fixes.patch
+++ /dev/null
@@ -1,491 +0,0 @@
-diff -upr mplayer-vaapi-20110127.orig/patches/mplayer-vaapi-0.29.patch mplayer-vaapi-20110127/patches/mplayer-vaapi-0.29.patch
---- mplayer-vaapi-20110127.orig/patches/mplayer-vaapi-0.29.patch 2011-01-27 17:15:16.000000000 +0200
-+++ mplayer-vaapi-20110127/patches/mplayer-vaapi-0.29.patch 2011-03-30 21:22:32.000000000 +0300
-@@ -434,7 +434,7 @@ diff --git a/ffmpeg/libavcodec/vaapi_vc1
- index 34e9056..b29e50e 100644
- --- a/ffmpeg/libavcodec/vaapi_vc1.c
- +++ b/ffmpeg/libavcodec/vaapi_vc1.c
--@@ -146,101 +146,103 @@ static int vaapi_vc1_start_frame(AVCodecContext *avctx, av_unused const uint8_t
-+@@ -146,103 +146,103 @@ static int vaapi_vc1_start_frame(AVCodecContext *avctx, av_unused const uint8_t
- pic_param = ff_vaapi_alloc_pic_param(vactx, sizeof(VAPictureParameterBufferVC1));
- if (!pic_param)
- return -1;
-@@ -452,7 +452,9 @@ index 34e9056..b29e50e 100644
- - pic_param->sequence_fields.bits.syncmarker = s->resync_marker;
- - pic_param->sequence_fields.bits.rangered = v->rangered;
- - pic_param->sequence_fields.bits.max_b_frames = s->avctx->max_b_frames;
-+-#if VA_CHECK_VERSION(0,32,0)
- - pic_param->sequence_fields.bits.profile = v->profile;
-+-#endif
- - pic_param->coded_width = s->avctx->coded_width;
- - pic_param->coded_height = s->avctx->coded_height;
- - pic_param->entrypoint_fields.value = 0; /* reset all bits */
-diff -upr mplayer-vaapi-20110127.orig/patches/mplayer-vaapi.patch mplayer-vaapi-20110127/patches/mplayer-vaapi.patch
---- mplayer-vaapi-20110127.orig/patches/mplayer-vaapi.patch 2011-01-27 17:15:29.000000000 +0200
-+++ mplayer-vaapi-20110127/patches/mplayer-vaapi.patch 2011-03-30 21:09:14.000000000 +0300
-@@ -207,15 +207,6 @@ index 1e0f7fc..45e4574 100755
- echocheck "Xv"
- if test "$_xv" = auto ; then
- _xv=no
--@@ -4372,7 +4435,7 @@ if test "$_vdpau" = yes ; then
-- else
-- def_vdpau='#define CONFIG_VDPAU 0'
-- novomodules="vdpau $novomodules"
--- libavdecoders=$(echo $libavdecoders | sed -e s/MPEG_VDPAU_DECODER// -e s/MPEG1_VDPAU_DECODER// -e s/H264_VDPAU_DECODER// -e s/WMV3_VDPAU_DECODER// -e s/VC1_VDPAU_DECODER// -e s/MPEG4_VDPAU_DECODER//)
--+ libavdecoders=$(echo $libavdecoders | sed -e "s/\(MPEG\|MPEG[124]\|H26[34]\|WMV3\|VC1\)_VDPAU_DECODER//g")
-- fi
-- echores "$_vdpau"
--
- @@ -4791,6 +4854,31 @@ echores "$_corevideo"
- fi #if darwin
-
-@@ -433,30 +424,19 @@ index d353bb5..e39a926 100644
- out YV12,I420,IYUV
-
- videocodec ffzygo
--diff --git a/ffmpeg/libavcodec/vaapi_vc1.c b/ffmpeg/libavcodec/vaapi_vc1.c
--index 2c24042..34e9056 100644
----- a/ffmpeg/libavcodec/vaapi_vc1.c
--+++ b/ffmpeg/libavcodec/vaapi_vc1.c
--@@ -160,6 +160,7 @@ static int vaapi_vc1_start_frame(AVCodecContext *avctx, av_unused const uint8_t
-- pic_param->sequence_fields.bits.syncmarker = s->resync_marker;
-- pic_param->sequence_fields.bits.rangered = v->rangered;
-- pic_param->sequence_fields.bits.max_b_frames = s->avctx->max_b_frames;
--+ pic_param->sequence_fields.bits.profile = v->profile;
-- pic_param->coded_width = s->avctx->coded_width;
-- pic_param->coded_height = s->avctx->coded_height;
-- pic_param->entrypoint_fields.value = 0; /* reset all bits */
- diff --git a/fmt-conversion.c b/fmt-conversion.c
- index 9e88100..bd32ce8 100644
- --- a/fmt-conversion.c
- +++ b/fmt-conversion.c
--@@ -18,12 +18,14 @@
-+@@ -18,6 +18,7 @@
-
- #include "mp_msg.h"
- #include "libavutil/avutil.h"
- +#include "libavcodec/avcodec.h"
- #include "libmpcodecs/img_format.h"
-- #include "fmt-conversion.h"
--
-+ #include "libavutil/samplefmt.h"
-+ #include "libaf/af_format.h"
-+@@ -26,6 +27,7 @@
- static const struct {
- int fmt;
- enum PixelFormat pix_fmt;
-@@ -503,14 +483,15 @@ diff --git a/fmt-conversion.h b/fmt-conv
- index 9e133a8..962ca4e 100644
- --- a/fmt-conversion.h
- +++ b/fmt-conversion.h
--@@ -23,6 +23,6 @@
-- #include "libavutil/avutil.h"
-+@@ -24,7 +24,7 @@
-+ #include "libavutil/samplefmt.h"
-
- enum PixelFormat imgfmt2pixfmt(int fmt);
- -int pixfmt2imgfmt(enum PixelFormat pix_fmt);
- +int pixfmt2imgfmt(enum PixelFormat pix_fmt, int codec_id);
-+ enum AVSampleFormat affmt2samplefmt(int fmt);
-+ int samplefmt2affmt(enum AVSampleFormat sample_fmt);
-
-- #endif /* MPLAYER_FMT_CONVERSION_H */
- diff --git a/gui/mplayer/gtk/opts.c b/gui/mplayer/gtk/opts.c
- index 4f7ffb2..0da5434 100644
- --- a/gui/mplayer/gtk/opts.c
-@@ -808,7 +789,7 @@ index 7c68a20..609ac41 100644
- sh_video_t *sh = avctx->opaque;
- vd_ffmpeg_ctx *ctx = sh->context;
- @@ -295,6 +296,12 @@ static int init(sh_video_t *sh){
-- avctx->codec_type = CODEC_TYPE_VIDEO;
-+ avctx->codec_type = AVMEDIA_TYPE_VIDEO;
- avctx->codec_id = lavc_codec->id;
-
- +#if CONFIG_VAAPI
-@@ -817,9 +798,9 @@ index 7c68a20..609ac41 100644
- + avctx->get_format = get_format;
- + }
- +#endif /* CONFIG_VAAPI */
-- #if CONFIG_VDPAU
-- if(lavc_codec->capabilities & CODEC_CAP_HWACCEL_VDPAU){
-- avctx->get_format = get_format;
-+ avctx->get_format = get_format;
-+ if(ctx->do_dr1){
-+ avctx->flags|= CODEC_FLAG_EMU_EDGE;
- @@ -487,7 +494,7 @@ static void draw_slice(struct AVCodecContext *s,
- const AVFrame *src, int offset[4],
- int y, int type, int height){
-@@ -841,12 +822,10 @@ index 7c68a20..609ac41 100644
- ctx->vo_initialized = 1;
- }
- return 0;
--@@ -972,24 +980,62 @@ static mp_image_t *decode(sh_video_t *sh, void *data, int len, int flags){
-+@@ -974,22 +974,60 @@ static mp_image_t *decode(sh_video_t *sh
- return mpi;
- }
-
---#if CONFIG_XVMC || CONFIG_VDPAU
--+#if CONFIG_XVMC || CONFIG_VAAPI || CONFIG_VDPAU
- +static inline int is_hwaccel_format(int imgfmt)
- +{
- + switch (get_video_hwaccel()) {
-@@ -883,15 +862,14 @@ index 7c68a20..609ac41 100644
- int imgfmt;
- sh_video_t *sh = avctx->opaque;
- - int i;
---
-++ int i, try_hwaccel;
-+
- - for(i=0;fmt[i]!=PIX_FMT_NONE;i++){
- - imgfmt = pixfmt2imgfmt(fmt[i]);
- - if(!IMGFMT_IS_HWACCEL(imgfmt)) continue;
- - mp_msg(MSGT_DECVIDEO, MSGL_INFO, MSGTR_MPCODECS_TryingPixfmt, i);
- - if(init_vo(sh, fmt[i]) >= 0) {
- - break;
--+ int i, try_hwaccel;
--+
- + for (try_hwaccel = 1; try_hwaccel >= 0; --try_hwaccel) {
- + for (i = 0; fmt[i] != PIX_FMT_NONE; i++) {
- + imgfmt = pixfmt2imgfmt(fmt[i], avctx->codec_id);
-@@ -912,11 +890,9 @@ index 7c68a20..609ac41 100644
- + break;
- }
- - selected_format = fmt[i];
-+ if (selected_format == PIX_FMT_NONE)
-+ selected_format = avcodec_default_get_format(avctx, fmt);
- set_format_params(avctx, selected_format);
-- return selected_format;
-- }
---#endif /* CONFIG_XVMC || CONFIG_VDPAU */
--+#endif /* CONFIG_XVMC || CONFIG_VAAPI || CONFIG_VDPAU */
- diff --git a/libmpcodecs/vf.h b/libmpcodecs/vf.h
- index 3619e69..fd869b7 100644
- --- a/libmpcodecs/vf.h
-diff -upr mplayer-vaapi-20110127.orig/patches/mplayer-vdpau.patch mplayer-vaapi-20110127/patches/mplayer-vdpau.patch
---- mplayer-vaapi-20110127.orig/patches/mplayer-vdpau.patch 2010-11-15 08:41:19.000000000 +0200
-+++ mplayer-vaapi-20110127/patches/mplayer-vdpau.patch 2011-03-30 22:29:47.000000000 +0300
-@@ -11,15 +11,6 @@ index 91fd164..1f4434e 100755
- libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' ffmpeg/libavformat/allformats.c | tr '[a-z]' '[A-Z]')
- libavdemuxers=$(echo $libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/AVISYNTH_DEMUXER//)
- libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' ffmpeg/libavformat/allformats.c | tr '[a-z]' '[A-Z]')
--@@ -4466,7 +4466,7 @@ if test "$_vdpau" = yes ; then
-- else
-- def_vdpau='#define CONFIG_VDPAU 0'
-- novomodules="vdpau $novomodules"
--- libavdecoders=$(echo $libavdecoders | sed -e "s/\(MPEG\|MPEG[124]\|H26[34]\|WMV3\|VC1\)_VDPAU_DECODER//g")
--+ libavhwaccels=$(echo $libavhwaccels | sed -e "s/\(MPEG[124]\|H26[34]\|WMV3\|VC1\)_VDPAU_HWACCEL//g")
-- fi
-- echores "$_vdpau"
--
- diff --git a/etc/codecs.conf b/etc/codecs.conf
- index b0d00f4..745d3e4 100644
- --- a/etc/codecs.conf
-@@ -48,7 +39,7 @@ index b0d00f4..745d3e4 100644
- out YV12,I420,IYUV
- out 422P,444P
-
--@@ -332,41 +335,6 @@ videocodec ffmpeg12mc
-+@@ -332,38 +335,6 @@ videocodec ffmpeg12mc
- out IDCT_MPEG2
- out MOCO_MPEG2
-
-@@ -73,9 +64,6 @@ index b0d00f4..745d3e4 100644
- - fourcc xdv7,xdv8,xdv9
- - fourcc xdva,xdvb,xdvc
- - fourcc xdvd,xdve,xdvf
--- fourcc xd5a,xd5b,xd5c
--- fourcc xd5d,xd5e,xd5f
--- fourcc xd59,xd54
- - fourcc mx5n,mx4n,mx4p
- - fourcc mx3n,mx3p
- - fourcc AVmp
-@@ -87,9 +75,9 @@ index b0d00f4..745d3e4 100644
- - out VDPAU_MPEG1
- - out VDPAU_MPEG2
- -
-- videocodec mpegpes
-- info "MPEG-PES output (.mpg or DXR3/IVTV/DVB/V4L2 card)"
-- comment "for hardware decoding"
-+ videocodec ffmpeg2crystalhd
-+ info "FFmpeg MPEG-2 (CrystalHD)"
-+ status working
- @@ -943,6 +911,7 @@ videocodec ffwmv3
- driver ffmpeg
- dll wmv3
-@@ -133,7 +121,7 @@ index b0d00f4..745d3e4 100644
-
- videocodec ffh264
- info "FFmpeg H.264"
--@@ -993,19 +947,8 @@ videocodec ffh264
-+@@ -993,21 +947,8 @@ videocodec ffh264
- driver ffmpeg
- dll h264
- out VAAPI_H264
-@@ -146,6 +134,8 @@ index b0d00f4..745d3e4 100644
- - fourcc X264,x264
- - fourcc avc1,AVC1
- - fourcc davc,DAVC
-+- fourcc ai55,ai15 ; flip4mac avc intra
-+- fourcc ai1q,ai5q ; flip4mac avc intra
- - format 0x10000005
- - driver ffmpeg
- - dll h264_vdpau
-@@ -200,55 +190,41 @@ diff --git a/ffmpeg/libavcodec/allcodecs
- index fbae0f6..4b6d2e9 100644
- --- a/ffmpeg/libavcodec/allcodecs.c
- +++ b/ffmpeg/libavcodec/allcodecs.c
--@@ -65,6 +65,13 @@ void avcodec_register_all(void)
-- REGISTER_HWACCEL (WMV3_DXVA2, wmv3_dxva2);
-- REGISTER_HWACCEL (WMV3_VAAPI, wmv3_vaapi);
--
--+ REGISTER_HWACCEL (H264_VDPAU, h264_vdpau);
--+ REGISTER_HWACCEL (MPEG1_VDPAU, mpeg1_vdpau);
--+ REGISTER_HWACCEL (MPEG2_VDPAU, mpeg2_vdpau);
--+ REGISTER_HWACCEL (MPEG4_VDPAU, mpeg4_vdpau);
--+ REGISTER_HWACCEL (VC1_VDPAU, vc1_vdpau);
--+ REGISTER_HWACCEL (WMV3_VDPAU, wmv3_vdpau);
--+
-- /* video codecs */
-- REGISTER_ENCODER (A64MULTI, a64multi);
-- REGISTER_ENCODER (A64MULTI5, a64multi5);
- @@ -116,7 +123,6 @@ void avcodec_register_all(void)
-- REGISTER_DECODER (H263I, h263i);
- REGISTER_ENCODER (H263P, h263p);
- REGISTER_DECODER (H264, h264);
-+ REGISTER_DECODER (H264_CRYSTALHD, h264_crystalhd);
- - REGISTER_DECODER (H264_VDPAU, h264_vdpau);
- REGISTER_ENCDEC (HUFFYUV, huffyuv);
- REGISTER_DECODER (IDCIN, idcin);
- REGISTER_DECODER (IFF_BYTERUN1, iff_byterun1);
- @@ -140,10 +146,7 @@ void avcodec_register_all(void)
-- REGISTER_ENCDEC (MPEG1VIDEO, mpeg1video);
- REGISTER_ENCDEC (MPEG2VIDEO, mpeg2video);
- REGISTER_ENCDEC (MPEG4, mpeg4);
-+ REGISTER_DECODER (MPEG4_CRYSTALHD, mpeg4_crystalhd);
- - REGISTER_DECODER (MPEG4_VDPAU, mpeg4_vdpau);
- REGISTER_DECODER (MPEGVIDEO, mpegvideo);
- - REGISTER_DECODER (MPEG_VDPAU, mpeg_vdpau);
- - REGISTER_DECODER (MPEG1_VDPAU, mpeg1_vdpau);
-+ REGISTER_DECODER (MPEG2_CRYSTALHD, mpeg2_crystalhd);
-+ REGISTER_DECODER (MSMPEG4_CRYSTALHD, msmpeg4_crystalhd);
- REGISTER_ENCDEC (MSMPEG4V1, msmpeg4v1);
-- REGISTER_ENCDEC (MSMPEG4V2, msmpeg4v2);
-- REGISTER_ENCDEC (MSMPEG4V3, msmpeg4v3);
- @@ -196,7 +199,6 @@ void avcodec_register_all(void)
-- REGISTER_DECODER (V210X, v210x);
- REGISTER_DECODER (VB, vb);
- REGISTER_DECODER (VC1, vc1);
-+ REGISTER_DECODER (VC1_CRYSTALHD, vc1_crystalhd);
- - REGISTER_DECODER (VC1_VDPAU, vc1_vdpau);
- REGISTER_DECODER (VCR1, vcr1);
- REGISTER_DECODER (VMDVIDEO, vmdvideo);
- REGISTER_DECODER (VMNC, vmnc);
- @@ -210,7 +212,6 @@ void avcodec_register_all(void)
-- REGISTER_ENCDEC (WMV1, wmv1);
- REGISTER_ENCDEC (WMV2, wmv2);
- REGISTER_DECODER (WMV3, wmv3);
-+ REGISTER_DECODER (WMV3_CRYSTALHD, wmv3_crystalhd);
- - REGISTER_DECODER (WMV3_VDPAU, wmv3_vdpau);
- REGISTER_DECODER (WNV1, wnv1);
- REGISTER_DECODER (XAN_WC3, xan_wc3);
-- REGISTER_DECODER (XL, xl);
-+ REGISTER_DECODER (XAN_WC4, xan_wc4);
- diff --git a/ffmpeg/libavcodec/avcodec.h b/ffmpeg/libavcodec/avcodec.h
- index bff9477..1e77fa6 100644
- --- a/ffmpeg/libavcodec/avcodec.h
-@@ -285,9 +261,9 @@ index b0a3a8a..b5b9026 100644
- #include "mpeg4video_parser.h"
- #include "msmpeg4.h"
- -#include "vdpau_internal.h"
-+ #include "thread.h"
- #include "flv.h"
- #include "mpeg4video.h"
--
- @@ -620,11 +619,6 @@ retry:
- if(MPV_frame_start(s, avctx) < 0)
- return -1;
-@@ -305,23 +281,23 @@ index f99f7ea..faafa97 100644
- --- a/ffmpeg/libavcodec/h264.c
- +++ b/ffmpeg/libavcodec/h264.c
- @@ -37,7 +37,6 @@
-- #include "golomb.h"
- #include "mathops.h"
- #include "rectangle.h"
-+ #include "thread.h"
- -#include "vdpau_internal.h"
- #include "libavutil/avassert.h"
-
- #include "cabac.h"
- @@ -1647,9 +1646,6 @@ static void field_end(H264Context *h){
-- s->current_picture_ptr->qscale_type= FF_QSCALE_TYPE_H264;
-- s->current_picture_ptr->pict_type= s->pict_type;
-+ ff_thread_report_progress((AVFrame*)s->current_picture_ptr, (16*s->mb_height >> FIELD_PICTURE) - 1,
-+ s->picture_structure==PICT_BOTTOM_FIELD);
-
- - if (CONFIG_H264_VDPAU_DECODER && s->avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU)
- - ff_vdpau_h264_set_reference_frames(s);
- -
-- if(!s->dropable) {
-- ff_h264_execute_ref_pic_marking(h, h->mmco, h->mmco_index);
-- h->prev_poc_msb= h->poc_msb;
-+ if(in_setup || !(avctx->active_thread_type&FF_THREAD_FRAME)){
-+ if(!s->dropable) {
-+ ff_h264_execute_ref_pic_marking(h, h->mmco, h->mmco_index);
- @@ -1663,9 +1659,6 @@ static void field_end(H264Context *h){
- av_log(avctx, AV_LOG_ERROR, "hardware accelerator failed to decode picture\n");
- }
-@@ -362,13 +338,13 @@ index f99f7ea..faafa97 100644
- context_count++;
- }
- break;
--@@ -3408,20 +3392,3 @@ AVCodec h264_decoder = {
-+@@ -3408,21 +3392,3 @@ AVCodec h264_decoder = {
- .flush= flush_dpb,
- .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
- };
- -
- -#if CONFIG_H264_VDPAU_DECODER
---AVCodec h264_vdpau_decoder = {
-+-AVCodec ff_h264_vdpau_decoder = {
- - "h264_vdpau",
- - AVMEDIA_TYPE_VIDEO,
- - CODEC_ID_H264,
-@@ -381,6 +357,7 @@ index f99f7ea..faafa97 100644
- - .flush= flush_dpb,
- - .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)"),
- - .pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_H264, PIX_FMT_NONE},
-+- .profiles = NULL_IF_CONFIG_SMALL(profiles),
- -};
- -#endif
- diff --git a/ffmpeg/libavcodec/mpeg12.c b/ffmpeg/libavcodec/mpeg12.c
-@@ -449,7 +426,7 @@ index 6a331eb..c226797 100644
- - break;
- - }
- -
-- if(avctx->thread_count > 1){
-+ if(HAVE_THREADS && avctx->active_thread_type&FF_THREAD_SLICE){
- int threshold= (s2->mb_height*s->slice_count + avctx->thread_count/2) / avctx->thread_count;
- if(threshold <= mb_y){
- @@ -2578,36 +2561,3 @@ AVCodec mpeg_xvmc_decoder = {
-@@ -458,7 +435,7 @@ index 6a331eb..c226797 100644
- #endif
- -
- -#if CONFIG_MPEG_VDPAU_DECODER
---AVCodec mpeg_vdpau_decoder = {
-+-AVCodec ff_mpeg_vdpau_decoder = {
- - "mpegvideo_vdpau",
- - AVMEDIA_TYPE_VIDEO,
- - CODEC_ID_MPEG2VIDEO,
-@@ -474,7 +451,7 @@ index 6a331eb..c226797 100644
- -#endif
- -
- -#if CONFIG_MPEG1_VDPAU_DECODER
---AVCodec mpeg1_vdpau_decoder = {
-+-AVCodec ff_mpeg1_vdpau_decoder = {
- - "mpeg1video_vdpau",
- - AVMEDIA_TYPE_VIDEO,
- - CODEC_ID_MPEG1VIDEO,
-@@ -500,7 +477,7 @@ index b339f78..1928d03 100644
- -
- -
- -#if CONFIG_MPEG4_VDPAU_DECODER
---AVCodec mpeg4_vdpau_decoder = {
-+-AVCodec ff_mpeg4_vdpau_decoder = {
- - "mpeg4_vdpau",
- - AVMEDIA_TYPE_VIDEO,
- - CODEC_ID_MPEG4,
-@@ -527,9 +504,17 @@ index 9650066..5f8440b 100644
- PIX_FMT_NONE
- };
- @@ -1064,7 +1065,6 @@ void MPV_frame_end(MpegEncContext *s)
-- if(CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration){
- ff_xvmc_field_end(s);
-- }else if(!s->avctx->hwaccel
-+ }else if((s->error_count || s->encoding)
-+ && !s->avctx->hwaccel
-+- && !(s->avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU)
-+ && s->unrestricted_mv
-+ && s->current_picture.reference
-+ && !s->intra_only
-+@@ -2254,7 +2254,6 @@ void ff_draw_horiz_band(MpegEncContext *
-+ }
-+
-+ if (!s->avctx->hwaccel
- - && !(s->avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU)
- && s->unrestricted_mv
- && s->current_picture.reference
-@@ -582,13 +567,13 @@ index c9a547b..71c50e7 100644
- if (avctx->hwaccel->start_frame(avctx, buf, buf_size) < 0)
- return -1;
- if (avctx->hwaccel->decode_slice(avctx, buf_start, (buf + buf_size) - buf_start) < 0)
--@@ -3376,37 +3364,3 @@ AVCodec wmv3_decoder = {
-- .pix_fmts = ff_hwaccel_pixfmt_list_420
-+@@ -3376,39 +3364,3 @@ AVCodec wmv3_decoder = {
-+ .profiles = NULL_IF_CONFIG_SMALL(profiles)
- };
- #endif
- -
- -#if CONFIG_WMV3_VDPAU_DECODER
---AVCodec wmv3_vdpau_decoder = {
-+-AVCodec ff_wmv3_vdpau_decoder = {
- - "wmv3_vdpau",
- - AVMEDIA_TYPE_VIDEO,
- - CODEC_ID_WMV3,
-@@ -600,12 +585,13 @@ index c9a547b..71c50e7 100644
- - CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
- - NULL,
- - .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 VDPAU"),
--- .pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_WMV3, PIX_FMT_NONE}
-+- .pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_WMV3, PIX_FMT_NONE},
-+- .profiles = NULL_IF_CONFIG_SMALL(profiles)
- -};
- -#endif
- -
- -#if CONFIG_VC1_VDPAU_DECODER
---AVCodec vc1_vdpau_decoder = {
-+-AVCodec ff_vc1_vdpau_decoder = {
- - "vc1_vdpau",
- - AVMEDIA_TYPE_VIDEO,
- - CODEC_ID_VC1,
-@@ -617,7 +603,8 @@ index c9a547b..71c50e7 100644
- - CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
- - NULL,
- - .long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1 VDPAU"),
--- .pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_VC1, PIX_FMT_NONE}
-+- .pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_VC1, PIX_FMT_NONE},
-+- .profiles = NULL_IF_CONFIG_SMALL(profiles)
- -};
- -#endif
- diff --git a/ffmpeg/libavcodec/vdpau.c b/ffmpeg/libavcodec/vdpau.c
-@@ -1163,9 +1150,9 @@ index 8ec91c8..2386a81 100644
- PIX_FMT_BGR444LE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), little-endian, most significant bits to 1
- PIX_FMT_Y400A, ///< 8bit gray, 8bit alpha
- + PIX_FMT_VDPAU, ///< HW decoding with VDPAU, Picture.data[3] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
-+ PIX_FMT_BGR48LE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian
-+ PIX_FMT_BGR48BE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian
- PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
-- };
--
- diff --git a/fmt-conversion.c b/fmt-conversion.c
- index bd32ce8..8994caa 100644
- --- a/fmt-conversion.c
-@@ -1198,19 +1185,6 @@ index bd32ce8..8994caa 100644
- {0, PIX_FMT_NONE}
- };
-
--diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c
--index 84b5430..aef79e9 100644
----- a/libmpcodecs/vd_ffmpeg.c
--+++ b/libmpcodecs/vd_ffmpeg.c
--@@ -303,7 +303,7 @@ static int init(sh_video_t *sh){
-- }
-- #endif /* CONFIG_VAAPI */
-- #if CONFIG_VDPAU
--- if(lavc_codec->capabilities & CODEC_CAP_HWACCEL_VDPAU){
--+ if(get_video_hwaccel() == HWACCEL_VDPAU){
-- avctx->get_format = get_format;
-- }
-- #endif /* CONFIG_VDPAU */
- diff --git a/libvo/vo_vdpau.c b/libvo/vo_vdpau.c
- index 5133b66..0ce6104 100644
- --- a/libvo/vo_vdpau.c
diff --git a/libre/parabolaweb-git/Makefile b/libre/parabolaweb-git/Makefile
deleted file mode 100644
index 55115aba3..000000000
--- a/libre/parabolaweb-git/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-all:
- makepkg
-
-python_packages=south
-python2_packages=markdown|psycopg2|pyinotify|pytz
-requirements= https://projects.parabolagnulinux.org/parabolaweb.git/plain/requirements_prod.txt
-
-requirements_prod.txt: WEB
- rm -f $@
- wget --no-check-certificate $(requirements)
-
-deps-ver.txt: requirements_prod.txt
- sed -r -e 's/.*/\L&/' -e 's/==/=/' \
- -e 's/^(${python_packages})/python-&/' \
- -e 's/^(${python2_packages})/python2-&/' $< >$@
-
-deps-nover.txt: deps-ver.txt
- sed 's/[<>=].*//' $< >$@
-
-clean:
- rm requirements_prod.txt deps-ver.txt deps-nover.txt
-
-WEB: FORCE
-FORCE: PHONY
-PHONY:
-.PHONY: PHONY
diff --git a/libre/parabolaweb-git/PKGBUILD b/libre/parabolaweb-git/PKGBUILD
deleted file mode 100644
index 4641ea8d3..000000000
--- a/libre/parabolaweb-git/PKGBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-
-pkgname=parabolaweb-git
-pkgver=20120506
-pkgrel=3
-pkgdesc="The Parabola website, fork of archweb"
-arch=('any')
-url="https://projects.parabolagnulinux.org/parabolaweb.git/"
-license=('GPL2')
-
-_deps_file=deps-ver.txt
-#_deps_file=deps-nover.txt
-make "$_deps_file" 1>&2
-depends=('python2' 'git' 'libretools' `cat $_deps_file`)
-
-source=('parabolaweb.init.sh' 'parabolaweb.update.sh.in')
-
-# These will make it install into /http/srv/web
-_install_dir=/srv/http
-_gitname=web
-
-_gitroot=https://projects.parabolagnulinux.org/parabolaweb.git
-_gitbranch="master"
-
-build() {
- cd "${srcdir}"
- sed \
- -e "s|^_install_dir=.*|_install_dir='$_install_dir'|" \
- -e "s|^_gitname=.*|_gitname='$_gitname'|" \
- -e "s|^_gitroot=.*|_gitroot='$_gitroot'|" \
- -e "s|^_gitbranch=.*|_gitbranch='$_gitbranch'|" \
- < parabolaweb.update.sh.in > parabolaweb.update.sh
-}
-
-package() {
- cd "${srcdir}"
- install -d "${pkgdir}/${_install_dir}"
- install -Dm755 parabolaweb.init.sh "${pkgdir}/etc/rc.d/parabolaweb"
- install -Dm755 parabolaweb.update.sh "${pkgdir}/usr/sbin/parabolaweb.update"
-}
-
-md5sums=('72bc7092e4e50a2aaca8b871644520d9'
- 'f495b2e4623691925308cb4a1ec7e5a9')
diff --git a/libre/parabolaweb-git/deps-ver.txt b/libre/parabolaweb-git/deps-ver.txt
deleted file mode 100644
index 67fe6848b..000000000
--- a/libre/parabolaweb-git/deps-ver.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-django=1.3.1
-python2-markdown>=2.0.3
-python2-psycopg2
-python-south>=0.7.3
-python2-pyinotify>=0.9.2
-python-memcached>=1.47
-python2-pytz>=2011n
diff --git a/libre/parabolaweb-git/parabolaweb.init.sh b/libre/parabolaweb-git/parabolaweb.init.sh
deleted file mode 100644
index cb9f2441e..000000000
--- a/libre/parabolaweb-git/parabolaweb.init.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-HOST=127.0.0.1
-PORT=8090 # 80 is nginx
-PIDFILE=/var/run/web/fcgi.pid
-
-case $1 in
-start)
- stat_busy "Starting ParabolaWeb"
- if [[ -e /srv/http/web/manage.py ]]; then
- sudo -u nobody \
- python2 /srv/http/web/manage.py runfcgi \
- host=${HOST} \
- port=${PORT} \
- pidfile=${PIDFILE} \
- --settings=settings
-
- add_daemon parabolaweb
- stat_done
- exit 0
- else
- stat_fail
- exit 1
- fi
- ;;
-
-stop)
- stat_busy "Stopping ParabolaWeb"
- if [[ -f ${PIDFILE} ]]; then
- pid=$(cat ${PIDFILE})
- kill ${pid}
- rm_daemon parabolaweb
- stat_done
- else
- stat_fail
- exit 1
- fi
- ;;
-
-restart)
- $0 stop
- $0 start
- ;;
-
-*)
- echo "Usage: $0 {start|stop|restart}" >&2
- exit 1
-
-esac
diff --git a/libre/parabolaweb-git/parabolaweb.update.sh.in b/libre/parabolaweb-git/parabolaweb.update.sh.in
deleted file mode 100644
index 8c3aef0f0..000000000
--- a/libre/parabolaweb-git/parabolaweb.update.sh.in
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/sh
-set -e
-
-_install_dir=@INSTALL_DIR@
-_gitname=@GIT_NAME@
-
-_gitroot=@GITROOT@
-_gitbranch=@GITBRANCH@
-
-. /usr/bin/libremessages
-
-if [ ! -d "$_install_dir" ]; then
- mkdir "$_install_dir"
-fi
-cd "$_install_dir"
-
-msg "Connecting to GIT server...."
-if [ -d ${_gitname} ] ; then
- msg2 "Updating existing tree"
- cd ${_gitname} && git pull ${_gitroot}
-else
- msg2 "Cloning tree"
- git clone ${_gitroot} ${_gitname}
- cd ${_gitname}
-fi
-git checkout ${_gitbranch}
-msg "GIT checkout done or server timeout"
-
-msg "Purging old .pyc files...."
-find . -name '*.pyc' -delete
-
-msg "Checking configuration...."
-if [ ! -f local_settings.py ]; then
- cp local_settings.py.example local_settings.tmp.$$.py
- if ${EDITOR:-xdg-open} local_settings.tmp.$$.py; then
- mv local_settings.tmp.$$.py local_settings.py
- else
- rm local_settings.tmp.$$.py
- msg "Failed to configure, exiting"
- exit 1
- fi
- msg "Creating database...."
- ./manage.py syncdb
-fi
-
-msg "Purging old .pyc files...."
-find . -name '*.pyc' -delete
-
-msg "Updating database...."
-msg2 "Running migrations...."
-./manage.py migrate
-msg2 "Loading fixtures...."
-./manage.py loaddata */fixtures/*.json
-
-msg "Checking media/admin_media symlink...."
-if [ ! -e media/admin-media ]; then
- rm media/admin_media
- ln -s /usr/lib/python2.7/site-packages/django/contrib/admin/media media/admin_media
-fi
diff --git a/libre/parabolaweb-git/requirements_prod.txt b/libre/parabolaweb-git/requirements_prod.txt
deleted file mode 100644
index 78eb51250..000000000
--- a/libre/parabolaweb-git/requirements_prod.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Django==1.3.1
-Markdown>=2.0.3
-psycopg2
-South>=0.7.3
-pyinotify>=0.9.2
-python-memcached>=1.47
-pytz>=2011n
diff --git a/libre/psutils-libre/.directory b/libre/psutils-libre/.directory
deleted file mode 100644
index 60ed4bded..000000000
--- a/libre/psutils-libre/.directory
+++ /dev/null
@@ -1,2 +0,0 @@
-[Dolphin]
-Timestamp=2012,4,11,16,24,1
diff --git a/libre/python-reportlab-libre/PKGBUILD b/libre/python-reportlab-libre/PKGBUILD
deleted file mode 100644
index 7ead18cba..000000000
--- a/libre/python-reportlab-libre/PKGBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id: PKGBUILD 67753 2012-03-14 10:35:58Z giovanni $
-# Maintainer:
-# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
-# Contributor: William Rea <sillywilly@gmail.com>
-# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
-# Contributor: borgo <nomail>
-# Contributor (Parabola): André Silva <emulatorman@lavabit.com>
-
-pkgname=python-reportlab-libre
-_origname=reportlab
-pkgver=2.5
-pkgrel=2
-pkgdesc="A proven industry-strength PDF generating solution"
-arch=('i686' 'x86_64')
-depends=('python2' 'freetype2' 'ttf-bitstream-vera' 'gsfonts' 'python-imaging')
-license=('custom')
-source=(http://www.reportlab.com/ftp/${_origname}-$pkgver.tar.gz
- free-fonts.patch)
-url="http://www.reportlab.org/rl_toolkit.html"
-md5sums=('cdf8b87a6cf1501de1b0a8d341a217d3'
- '1fc63857754cf3e2987d2400d94e7cd7')
-provides=("python-reportlab=$pkgver")
-conflicts=('python-reportlab')
-replaces=('python-reportlab')
-optdepends=('ghostscript')
-
-build() {
- cd $srcdir/${_origname}-$pkgver
-
- # python2 fix
- for file in src/reportlab/graphics/widgets/table.py src/reportlab/lib/normalDate.py \
- src/reportlab/pdfgen/pycanvas.py; do
- sed -i 's_#!.*/usr/bin/env python_#!/usr/bin/env python2_' $file
- done
-
- rm -f reportlab/fonts/Vera* reportlab/fonts/bitstream-vera-license.txt
- patch -p1 -i $srcdir/free-fonts.patch
-
- python2 setup.py install --root=$pkgdir --optimize=1
- install -D -m644 LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/license.txt
-}
diff --git a/libre/python-reportlab-libre/free-fonts.patch b/libre/python-reportlab-libre/free-fonts.patch
deleted file mode 100644
index 9c79839b6..000000000
--- a/libre/python-reportlab-libre/free-fonts.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-diff -rupN reportlab-2.5-orig/setup.py reportlab-2.5/setup.py
---- reportlab-2.5-orig/setup.py 2010-06-16 13:56:53.000000000 +0200
-+++ reportlab-2.5/setup.py 2011-01-06 11:01:50.263333455 +0100
-@@ -222,11 +222,11 @@ def get_fonts(PACKAGE_DIR, reportlab_fil
- infoline("Standard T1 font curves already downloaded")
- return
- try:
-- infoline("Downloading standard T1 font curves")
-+ #infoline("Downloading standard T1 font curves")
-
-- remotehandle = urllib2.urlopen("http://www.reportlab.com/ftp/fonts/pfbfer.zip")
-- zipdata = StringIO.StringIO(remotehandle.read())
-- remotehandle.close()
-+ #remotehandle = urllib2.urlopen("http://www.reportlab.com/ftp/fonts/pfbfer.zip")
-+ #zipdata = StringIO.StringIO(remotehandle.read())
-+ #remotehandle.close()
- archive = zipfile.ZipFile(zipdata)
- dst = pjoin(rl_dir, 'fonts')
-
-@@ -239,7 +239,7 @@ def get_fonts(PACKAGE_DIR, reportlab_fil
- except:
- xitmsg = "Failed to download standard T1 font curves"
- reportlab_files = [x for x in reportlab_files if os.path.isfile(pjoin(rl_dir,x))]
-- infoline(xitmsg)
-+ #infoline(xitmsg)
-
- def main():
- #test to see if we've a special command
-diff -rupN reportlab-2.5-orig/src/reportlab/pdfbase/_fontdata.py reportlab-2.5/src/reportlab/pdfbase/_fontdata.py
---- reportlab-2.5-orig/src/reportlab/pdfbase/_fontdata.py 2010-02-10 22:01:22.000000000 +0100
-+++ reportlab-2.5/src/reportlab/pdfbase/_fontdata.py 2011-01-06 11:03:59.459999025 +0100
-@@ -72,20 +72,20 @@ _font2fnrMapWin32 = {
- }
- if sys.platform in ('linux2',):
- _font2fnrMapLinux2 ={
-- 'symbol': 'Symbol',
-- 'zapfdingbats': 'ZapfDingbats',
-- 'helvetica': 'Arial',
-- 'helvetica-bold': 'Arial-Bold',
-- 'helvetica-boldoblique': 'Arial-BoldItalic',
-- 'helvetica-oblique': 'Arial-Italic',
-- 'times-bold': 'TimesNewRoman-Bold',
-- 'times-bolditalic':'TimesNewRoman-BoldItalic',
-- 'times-italic': 'TimesNewRoman-Italic',
-- 'times-roman': 'TimesNewRoman',
-- 'courier-bold': 'Courier-Bold',
-- 'courier-boldoblique': 'Courier-BoldOblique',
-- 'courier': 'Courier',
-- 'courier-oblique': 'Courier-Oblique',
-+ 'symbol': 's050000l.pfb',
-+ 'zapfdingbats': 'd050000l.pfb',
-+ 'helvetica': 'n019003l.pfb',
-+ 'helvetica-bold': 'n019004l.pfb',
-+ 'helvetica-boldoblique': 'n019024l.pfb',
-+ 'helvetica-oblique': 'n019023l.pfb',
-+ 'times-bold': 'n021004l.pfb',
-+ 'times-bolditalic':'n021024l.pfb',
-+ 'times-italic': 'n021023l.pfb',
-+ 'times-roman': 'n021003l.pfb',
-+ 'courier-bold': 'n022004l.pfb',
-+ 'courier-boldoblique': 'n022024l.pfb',
-+ 'courier': 'n022003l.pfb',
-+ 'courier-oblique': 'n022023l.pfb',
- }
- _font2fnrMap = _font2fnrMapLinux2
- for k, v in _font2fnrMap.items():
-diff -rupN reportlab-2.5-orig/src/reportlab/rl_config.py reportlab-2.5/src/reportlab/rl_config.py
---- reportlab-2.5-orig/src/reportlab/rl_config.py 2010-09-30 13:27:09.000000000 +0200
-+++ reportlab-2.5/src/reportlab/rl_config.py 2011-01-06 11:01:50.266666714 +0100
-@@ -49,25 +49,7 @@ ttfAsciiReadable= 1
-
- # places to look for T1Font information
- T1SearchPath = (
-- 'c:/Program Files/Adobe/Acrobat 9.0/Resource/Font',
-- 'c:/Program Files/Adobe/Acrobat 8.0/Resource/Font',
-- 'c:/Program Files/Adobe/Acrobat 7.0/Resource/Font',
-- 'c:/Program Files/Adobe/Acrobat 6.0/Resource/Font', #Win32, Acrobat 6
-- 'c:/Program Files/Adobe/Acrobat 5.0/Resource/Font', #Win32, Acrobat 5
-- 'c:/Program Files/Adobe/Acrobat 4.0/Resource/Font', #Win32, Acrobat 4
-- '%(disk)s/Applications/Python %(sys_version)s/reportlab/fonts', #Mac?
-- '/usr/lib/Acrobat9/Resource/Font', #Linux, Acrobat 5?
-- '/usr/lib/Acrobat8/Resource/Font', #Linux, Acrobat 5?
-- '/usr/lib/Acrobat7/Resource/Font', #Linux, Acrobat 5?
-- '/usr/lib/Acrobat6/Resource/Font', #Linux, Acrobat 5?
-- '/usr/lib/Acrobat5/Resource/Font', #Linux, Acrobat 5?
-- '/usr/lib/Acrobat4/Resource/Font', #Linux, Acrobat 4
-- '/usr/local/Acrobat9/Resource/Font', #Linux, Acrobat 5?
-- '/usr/local/Acrobat8/Resource/Font', #Linux, Acrobat 5?
-- '/usr/local/Acrobat7/Resource/Font', #Linux, Acrobat 5?
-- '/usr/local/Acrobat6/Resource/Font', #Linux, Acrobat 5?
-- '/usr/local/Acrobat5/Resource/Font', #Linux, Acrobat 5?
-- '/usr/local/Acrobat4/Resource/Font', #Linux, Acrobat 4
-+ '/usr/share/fonts/Type1',
- '%(REPORTLAB_DIR)s/fonts', #special
- '%(REPORTLAB_DIR)s/../fonts', #special
- '%(REPORTLAB_DIR)s/../../fonts', #special
-@@ -76,44 +58,17 @@ T1SearchPath = (
-
- # places to look for TT Font information
- TTFSearchPath = (
-- 'c:/winnt/fonts',
-- 'c:/windows/fonts',
-- '/usr/lib/X11/fonts/TrueType/',
-- '/usr/share/fonts/truetype',
-+ '/usr/share/fonts/TTF',
- '%(REPORTLAB_DIR)s/fonts', #special
- '%(REPORTLAB_DIR)s/../fonts', #special
- '%(REPORTLAB_DIR)s/../../fonts',#special
- '%(HOME)s/fonts', #special
-- #mac os X - from
-- #http://developer.apple.com/technotes/tn/tn2024.html
-- '~/Library/Fonts',
-- '/Library/Fonts',
-- '/Network/Library/Fonts',
-- '/System/Library/Fonts',
--
- )
-
- # places to look for CMap files - should ideally merge with above
- CMapSearchPath = (
-- '/usr/lib/Acrobat9/Resource/CMap',
-- '/usr/lib/Acrobat8/Resource/CMap',
-- '/usr/lib/Acrobat7/Resource/CMap',
-- '/usr/lib/Acrobat6/Resource/CMap',
-- '/usr/lib/Acrobat5/Resource/CMap',
-- '/usr/lib/Acrobat4/Resource/CMap',
-- '/usr/local/Acrobat9/Resource/CMap',
-- '/usr/local/Acrobat8/Resource/CMap',
-- '/usr/local/Acrobat7/Resource/CMap',
-- '/usr/local/Acrobat6/Resource/CMap',
-- '/usr/local/Acrobat5/Resource/CMap',
-- '/usr/local/Acrobat4/Resource/CMap',
-- 'C:\\Program Files\\Adobe\\Acrobat\\Resource\\CMap',
-- 'C:\\Program Files\\Adobe\\Acrobat 9.0\\Resource\\CMap',
-- 'C:\\Program Files\\Adobe\\Acrobat 8.0\\Resource\\CMap',
-- 'C:\\Program Files\\Adobe\\Acrobat 7.0\\Resource\\CMap',
-- 'C:\\Program Files\\Adobe\\Acrobat 6.0\\Resource\\CMap',
-- 'C:\\Program Files\\Adobe\\Acrobat 5.0\\Resource\\CMap',
-- 'C:\\Program Files\\Adobe\\Acrobat 4.0\\Resource\\CMap',
-+ '/usr/share/ghostscript/8.71/Resource/CMap',
-+ '/usr/share/ghostscript/9.00/Resource/CMap',
- '%(REPORTLAB_DIR)s/fonts/CMap', #special
- '%(REPORTLAB_DIR)s/../fonts/CMap', #special
- '%(REPORTLAB_DIR)s/../../fonts/CMap', #special
diff --git a/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch b/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch
deleted file mode 100644
index ed8154df5..000000000
--- a/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-
-# HG changeset patch
-# User Charles-François Natali <neologix@free.fr>
-# Date 1318446474 -7200
-# Node ID ee4fe16d9b4822457ad855ea6c44e65030166304
-# Parent f6feed6ec3f9b024cecd0fd587595c403f55624f
-Issue #13156: revert changeset f6feed6ec3f9, which was only relevant for native
-TLS implementations, and fails with the ad-hoc TLS implementation when a thread
-doesn't have an auto thread state (e.g. a thread created outside of Python
-calling into a subinterpreter).
-
-diff --git a/Include/pystate.h b/Include/pystate.h
---- a/Include/pystate.h
-+++ b/Include/pystate.h
-@@ -111,7 +111,6 @@ PyAPI_FUNC(void) PyThreadState_Clear(PyT
- PyAPI_FUNC(void) PyThreadState_Delete(PyThreadState *);
- #ifdef WITH_THREAD
- PyAPI_FUNC(void) PyThreadState_DeleteCurrent(void);
--PyAPI_FUNC(void) _PyGILState_Reinit(void);
- #endif
-
- PyAPI_FUNC(PyThreadState *) PyThreadState_Get(void);
-diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
---- a/Modules/signalmodule.c
-+++ b/Modules/signalmodule.c
-@@ -976,7 +976,6 @@ void
- PyOS_AfterFork(void)
- {
- #ifdef WITH_THREAD
-- _PyGILState_Reinit();
- PyEval_ReInitThreads();
- main_thread = PyThread_get_thread_ident();
- main_pid = getpid();
-diff --git a/Python/pystate.c b/Python/pystate.c
---- a/Python/pystate.c
-+++ b/Python/pystate.c
-@@ -537,23 +537,6 @@ void
- autoInterpreterState = NULL;
- }
-
--/* Reset the TLS key - called by PyOS_AfterFork.
-- * This should not be necessary, but some - buggy - pthread implementations
-- * don't flush TLS on fork, see issue #10517.
-- */
--void
--_PyGILState_Reinit(void)
--{
-- PyThreadState *tstate = PyGILState_GetThisThreadState();
-- PyThread_delete_key(autoTLSkey);
-- if ((autoTLSkey = PyThread_create_key()) == -1)
-- Py_FatalError("Could not allocate TLS entry");
--
-- /* re-associate the current thread state with the new key */
-- if (PyThread_set_key_value(autoTLSkey, (void *)tstate) < 0)
-- Py_FatalError("Couldn't create autoTLSkey mapping");
--}
--
- /* When a thread state is created for a thread by some mechanism other than
- PyGILState_Ensure, it's important that the GILState machinery knows about
- it so it doesn't try to create another thread state for the thread (this is
-
diff --git a/libre/python2-libre/PKGBUILD b/libre/python2-libre/PKGBUILD
deleted file mode 100644
index e743151b0..000000000
--- a/libre/python2-libre/PKGBUILD
+++ /dev/null
@@ -1,109 +0,0 @@
-# $Id: PKGBUILD 129895 2011-06-29 15:22:59Z stephane $
-# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
-# Contributer: Allan McRae <allan@archlinux.org>
-# Contributer: Jason Chu <jason@archlinux.org>
-
-_pkgname=python2
-pkgname=python2-libre
-pkgver=2.7.2
-pkgrel=6
-_pybasever=2.7
-pkgdesc="A high-level scripting language"
-arch=('i686' 'x86_64')
-license=('PSF')
-url="http://www.python.org/"
-depends=('bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite' 'libffi')
-makedepends=('tk')
-optdepends=('tk: for IDLE')
-conflicts=('python<3')
-options=('!makeflags')
-source=(http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-4-any.src.tar.xz
- doc_license_change.patch
- WDAS.patch
- linux2.patch
- gdbm-magic-values.patch
- 13156-revert-tls-changeset-subinterpreter.patch)
-provides=("$_pkgname=$pkgver")
-conflicts=("$_pkgname")
-replaces=("$_pkgname")
-
-build() {
- cd "${srcdir}/Python-${pkgver}"
-
- # Temporary workaround for FS#22322
- # See http://bugs.python.org/issue10835 for upstream report
- sed -i "/progname =/s/python/python${_pybasever}/" Python/pythonrun.c
-
- # Enable built-in SQLite module to load extensions (fix FS#22122)
- sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py
-
- # FS#23997
- sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python2|" Lib/cgi.py
-
- # Make sure sys.platform is set to linux2, even on kernel 3.X
- # cf http://bugs.python.org/issue12326
- patch -Np1 -i ../linux2.patch
-
- # gdbm has new magic that whichdb does not recognize
- # http://bugs.python.org/issue13007
- patch -Np1 -i ../gdbm-magic-values.patch
-
- # http://bugs.python.org/issue13156
- patch -Np1 -i ../13156-revert-tls-changeset-subinterpreter.patch
-
- # Ensure that we are using the system copy of various libraries (expat, zlib and libffi),
- # rather than copies shipped in the tarball
- rm -r Modules/expat
- rm -r Modules/zlib
- rm -r Modules/_ctypes/{darwin,libffi}*
-
- export OPT="${CFLAGS}"
- ./configure --prefix=/usr --enable-shared --with-threads --enable-ipv6 \
- --enable-unicode=ucs4 --with-system-expat --with-system-ffi \
- --with-dbmliborder=gdbm:ndbm
-
- make MACHDEP=linux2
-}
-
-package() {
- cd "${srcdir}/Python-${pkgver}"
- make DESTDIR="${pkgdir}" altinstall maninstall
-
- ln -sf python${_pybasever} "${pkgdir}/usr/bin/python2"
- ln -sf python${_pybasever}-config "${pkgdir}/usr/bin/python2-config"
- ln -sf python${_pybasever}.1 "${pkgdir}/usr/share/man/man1/python2.1"
-
- ln -sf ../../libpython${_pybasever}.so \
- "${pkgdir}/usr/lib/python${_pybasever}/config/libpython${_pybasever}.so"
-
- mv "${pkgdir}/usr/bin/smtpd.py" "${pkgdir}/usr/lib/python${_pybasever}/"
-
- # some useful "stuff"
- install -dm755 "${pkgdir}"/usr/lib/python${_pybasever}/Tools/{i18n,scripts}
- install -m755 Tools/i18n/{msgfmt,pygettext}.py \
- "${pkgdir}/usr/lib/python${_pybasever}/Tools/i18n/"
- install -m755 Tools/scripts/{README,*py} \
- "${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/"
-
- # fix conflicts with python
- mv "${pkgdir}"/usr/bin/idle{,2}
- mv "${pkgdir}"/usr/bin/pydoc{,2}
- mv "${pkgdir}"/usr/bin/2to3{,-2.7}
-
- # clean up #!s
- find "${pkgdir}/usr/lib/python${_pybasever}/" -name '*.py' | \
- xargs sed -i "s|#[ ]*![ ]*/usr/bin/env python$|#!/usr/bin/env python2|"
-
- # clean-up reference to build directory
- sed -i "s#${srcdir}/Python-${pkgver}:##" \
- "${pkgdir}/usr/lib/python${_pybasever}/config/Makefile"
-
- # license
- install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-}
-md5sums=('456d053a5d418adc913a4971e95fe918'
- '1e6595f85a1da7f42b69456119924d50'
- '3f8c0e310a0be0bd8b319d6c46bbd427'
- '6099a7c1aed80cf04943ee4affa84b5c'
- '6de394351179c2ada82e95458ceb13e5'
- 'daa5110f092f1406c17de23171529e62')
diff --git a/libre/python2-libre/SRCBUILD b/libre/python2-libre/SRCBUILD
deleted file mode 100644
index f021d6624..000000000
--- a/libre/python2-libre/SRCBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# $Id: PKGBUILD 123066 2011-05-07 23:01:49Z stephane $
-# Maintainer: AndyRTR <andyrtr@archlinux.org>
-# Maintainer (Parabola): xihh
-
-pkgname=python2-libre
-pkgver=2.7.2
-pkgrel=4
-pkgdesc="A high-level scripting language"
-arch=('any')
-license=('PSF')
-url="http://www.python.org/"
-source=(http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz
- doc_license_change.patch
- WDAS.patch)
-md5sums=('75c87a80c6ddb0b785a57ea3583e04fa'
- '1e6595f85a1da7f42b69456119924d50'
- '3f8c0e310a0be0bd8b319d6c46bbd427')
-options=(!strip docs libtool emptydirs !zipman !purge)
-
-build() {
- cd "${srcdir}/Python-${pkgver}"
-
- export PKGEXT=.src.tar.xz
-
- patch -Np1 -i ../WDAS.patch
- patch -Np0 -i ../doc_license_change.patch
-
-}
-
-package() {
- export PKGEXT=.src.tar.xz
- export PKGDEST=${startdir}
-
- mv "${srcdir}/Python-${pkgver}" ${pkgdir}
-
-}
diff --git a/libre/python2-libre/WDAS.patch b/libre/python2-libre/WDAS.patch
deleted file mode 100644
index 86bc75e8c..000000000
--- a/libre/python2-libre/WDAS.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-diff -r ac562d86ab71 Lib/profile.py
---- a/Lib/profile.py Fri Jun 03 17:50:59 2011 -0500
-+++ b/Lib/profile.py Mon Jun 27 00:02:20 2011 -0700
-@@ -2,35 +2,26 @@
- #
- # Class for profiling python code. rev 1.0 6/2/94
- #
-+# Written by James Roskind
- # Based on prior profile module by Sjoerd Mullender...
- # which was hacked somewhat by: Guido van Rossum
-
- """Class for profiling Python code."""
-
--# Copyright 1994, by InfoSeek Corporation, all rights reserved.
--# Written by James Roskind
--#
--# Permission to use, copy, modify, and distribute this Python software
--# and its associated documentation for any purpose (subject to the
--# restriction in the following sentence) without fee is hereby granted,
--# provided that the above copyright notice appears in all copies, and
--# that both that copyright notice and this permission notice appear in
--# supporting documentation, and that the name of InfoSeek not be used in
--# advertising or publicity pertaining to distribution of the software
--# without specific, written prior permission. This permission is
--# explicitly restricted to the copying and modification of the software
--# to remain in Python, compiled Python, or other languages (such as C)
--# wherein the modified or derived code is exclusively imported into a
--# Python module.
--#
--# INFOSEEK CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
--# SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
--# FITNESS. IN NO EVENT SHALL INFOSEEK CORPORATION BE LIABLE FOR ANY
--# SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
--# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
--# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
--# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
--
-+# Copyright Disney Enterprises, Inc. All Rights Reserved.
-+# Licensed to PSF under a Contributor Agreement
-+#
-+# Licensed under the Apache License, Version 2.0 (the "License");
-+# you may not use this file except in compliance with the License.
-+# You may obtain a copy of the License at
-+#
-+# http://www.apache.org/licenses/LICENSE-2.0
-+#
-+# Unless required by applicable law or agreed to in writing, software
-+# distributed under the License is distributed on an "AS IS" BASIS,
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
-+# either express or implied. See the License for the specific language
-+# governing permissions and limitations under the License.
-
-
- import sys
-diff -r ac562d86ab71 Lib/pstats.py
---- a/Lib/pstats.py Fri Jun 03 17:50:59 2011 -0500
-+++ b/Lib/pstats.py Mon Jun 27 00:02:20 2011 -0700
-@@ -2,34 +2,26 @@
-
- # Class for printing reports on profiled python code. rev 1.0 4/1/94
- #
-+# Written by James Roskind
- # Based on prior profile module by Sjoerd Mullender...
- # which was hacked somewhat by: Guido van Rossum
--#
--# see profile.py for more info.
-
--# Copyright 1994, by InfoSeek Corporation, all rights reserved.
--# Written by James Roskind
--#
--# Permission to use, copy, modify, and distribute this Python software
--# and its associated documentation for any purpose (subject to the
--# restriction in the following sentence) without fee is hereby granted,
--# provided that the above copyright notice appears in all copies, and
--# that both that copyright notice and this permission notice appear in
--# supporting documentation, and that the name of InfoSeek not be used in
--# advertising or publicity pertaining to distribution of the software
--# without specific, written prior permission. This permission is
--# explicitly restricted to the copying and modification of the software
--# to remain in Python, compiled Python, or other languages (such as C)
--# wherein the modified or derived code is exclusively imported into a
--# Python module.
--#
--# INFOSEEK CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
--# SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
--# FITNESS. IN NO EVENT SHALL INFOSEEK CORPORATION BE LIABLE FOR ANY
--# SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
--# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
--# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
--# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+"""Class for profiling Python code."""
-+
-+# Copyright Disney Enterprises, Inc. All Rights Reserved.
-+# Licensed to PSF under a Contributor Agreement
-+#
-+# Licensed under the Apache License, Version 2.0 (the "License");
-+# you may not use this file except in compliance with the License.
-+# You may obtain a copy of the License at
-+#
-+# http://www.apache.org/licenses/LICENSE-2.0
-+#
-+# Unless required by applicable law or agreed to in writing, software
-+# distributed under the License is distributed on an "AS IS" BASIS,
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
-+# either express or implied. See the License for the specific language
-+# governing permissions and limitations under the License.
-
-
- import sys
diff --git a/libre/python2-libre/doc_license_change.patch b/libre/python2-libre/doc_license_change.patch
deleted file mode 100644
index 18f9447d7..000000000
--- a/libre/python2-libre/doc_license_change.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- Doc/library/profile.rst 2011-06-11 12:46:23.000000000 -0300
-+++ Doc/library/profile.rst.orig 2011-08-12 11:35:25.000000000 -0300
-@@ -12,27 +12,23 @@
-
- .. index:: single: InfoSeek Corporation
-
--Copyright © 1994, by InfoSeek Corporation, all rights reserved.
-+Copyright Disney Enterprises, Inc. All Rights Reserved.
-
- Written by James Roskind. [#]_
-
--Permission to use, copy, modify, and distribute this Python software and its
--associated documentation for any purpose (subject to the restriction in the
--following sentence) without fee is hereby granted, provided that the above
--copyright notice appears in all copies, and that both that copyright notice and
--this permission notice appear in supporting documentation, and that the name of
--InfoSeek not be used in advertising or publicity pertaining to distribution of
--the software without specific, written prior permission. This permission is
--explicitly restricted to the copying and modification of the software to remain
--in Python, compiled Python, or other languages (such as C) wherein the modified
--or derived code is exclusively imported into a Python module.
--
--INFOSEEK CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
--INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT
--SHALL INFOSEEK CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
--DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
--WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
--OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+Licensed to PSF under a Contributor Agreement
-+
-+Licensed under the Apache License, Version 2.0 (the "License");
-+you may not use this file except in compliance with the License.
-+You may obtain a copy of the License at
-+
-+http://www.apache.org/licenses/LICENSE-2.0
-+
-+Unless required by applicable law or agreed to in writing, software
-+distributed under the License is distributed on an "AS IS" BASIS,
-+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
-+either express or implied. See the License for the specific language
-+governing permissions and limitations under the License.
-
- .. _profiler-introduction:
-
diff --git a/libre/python2-libre/gdbm-magic-values.patch b/libre/python2-libre/gdbm-magic-values.patch
deleted file mode 100644
index 471faf2c7..000000000
--- a/libre/python2-libre/gdbm-magic-values.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.7.2/Lib/whichdb.py.gdbm-1.9-magic Python-2.7.2/Lib/whichdb.py
---- Python-2.7.2/Lib/whichdb.py.gdbm-1.9-magic 2011-06-11 11:46:26.000000000 -0400
-+++ Python-2.7.2/Lib/whichdb.py 2011-09-30 15:45:21.778872290 -0400
-@@ -91,7 +91,7 @@ def whichdb(filename):
- return ""
-
- # Check for GNU dbm
-- if magic == 0x13579ace:
-+ if magic in (0x13579ace, 0x13579acd, 0x13579acf):
- return "gdbm"
-
- # Check for old Berkeley db hash file format v2
diff --git a/libre/python2-libre/linux2.patch b/libre/python2-libre/linux2.patch
deleted file mode 100644
index 670510fde..000000000
--- a/libre/python2-libre/linux2.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-http://hg.python.org/cpython/rev/c816479f6aaf/
-diff --git a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -2995,6 +2995,7 @@ then
- MACHDEP="$ac_md_system$ac_md_release"
-
- case $MACHDEP in
-+ linux*) MACHDEP="linux2";;
- cygwin*) MACHDEP="cygwin";;
- darwin*) MACHDEP="darwin";;
- atheos*) MACHDEP="atheos";;
-diff --git a/configure.in b/configure.in
---- a/configure.in
-+++ b/configure.in
-@@ -293,6 +293,7 @@ then
- MACHDEP="$ac_md_system$ac_md_release"
-
- case $MACHDEP in
-+ linux*) MACHDEP="linux2";;
- cygwin*) MACHDEP="cygwin";;
- darwin*) MACHDEP="darwin";;
- atheos*) MACHDEP="atheos";;
diff --git a/libre/sdl-libre/no-riva-accel.patch b/libre/sdl-libre/no-riva-accel.patch
deleted file mode 100644
index 89f8ebeed..000000000
--- a/libre/sdl-libre/no-riva-accel.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- src/video/fbcon/SDL_fbvideo.c.orig 2011-09-08 17:30:03.670583685 +0200
-+++ src/video/fbcon/SDL_fbvideo.c 2011-09-08 17:30:24.230582737 +0200
-@@ -46,7 +46,6 @@
- #include "SDL_fbevents_c.h"
- #include "SDL_fb3dfx.h"
- #include "SDL_fbmatrox.h"
--#include "SDL_fbriva.h"
-
- /*#define FBCON_DEBUG*/
-
-@@ -769,13 +768,6 @@
- #endif
- FB_3DfxAccel(this, finfo.accel);
- break;
-- case FB_ACCEL_NV3:
-- case FB_ACCEL_NV4:
--#ifdef FBACCEL_DEBUG
-- printf("NVidia hardware accelerator!\n");
--#endif
-- FB_RivaAccel(this, finfo.accel);
-- break;
- default:
- #ifdef FBACCEL_DEBUG
- printf("Unknown hardware accelerator.\n");
diff --git a/libre/sdl-libre/riva_mmio.patch b/libre/sdl-libre/riva_mmio.patch
deleted file mode 100644
index 945d9bf9b..000000000
--- a/libre/sdl-libre/riva_mmio.patch
+++ /dev/null
@@ -1,554 +0,0 @@
---- src/video/fbcon/riva_mmio.h 2012-01-19 04:30:06.000000000 -0200
-+++ /dev/null 2012-04-01 13:58:27.776718756 -0300
-@@ -1,449 +0,0 @@
--/***************************************************************************\
--|* *|
--|* Copyright 1993-1999 NVIDIA, Corporation. All rights reserved. *|
--|* *|
--|* NOTICE TO USER: The source code is copyrighted under U.S. and *|
--|* international laws. Users and possessors of this source code are *|
--|* hereby granted a nonexclusive, royalty-free copyright license to *|
--|* use this code in individual and commercial software. *|
--|* *|
--|* Any use of this source code must include, in the user documenta- *|
--|* tion and internal comments to the code, notices to the end user *|
--|* as follows: *|
--|* *|
--|* Copyright 1993-1999 NVIDIA, Corporation. All rights reserved. *|
--|* *|
--|* NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY *|
--|* OF THIS SOURCE CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" *|
--|* WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. NVIDIA, CORPOR- *|
--|* ATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOURCE CODE, *|
--|* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE- *|
--|* MENT, AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL *|
--|* NVIDIA, CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT, INCI- *|
--|* DENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RE- *|
--|* SULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION *|
--|* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF *|
--|* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. *|
--|* *|
--|* U.S. Government End Users. This source code is a "commercial *|
--|* item," as that term is defined at 48 C.F.R. 2.101 (OCT 1995), *|
--|* consisting of "commercial computer software" and "commercial *|
--|* computer software documentation," as such terms are used in *|
--|* 48 C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Govern- *|
--|* ment only as a commercial end item. Consistent with 48 C.F.R. *|
--|* 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), *|
--|* all U.S. Government End Users acquire the source code with only *|
--|* those rights set forth herein. *|
--|* *|
--\***************************************************************************/
--
--#ifndef __RIVA_HW_H__
--#define __RIVA_HW_H__
--#define RIVA_SW_VERSION 0x00010003
--
--/*
-- * Typedefs to force certain sized values.
-- */
--typedef Uint8 U008;
--typedef Uint16 U016;
--typedef Uint32 U032;
--
--/*
-- * HW access macros.
-- */
--#define NV_WR08(p,i,d) (((U008 *)(p))[i]=(d))
--#define NV_RD08(p,i) (((U008 *)(p))[i])
--#define NV_WR16(p,i,d) (((U016 *)(p))[(i)/2]=(d))
--#define NV_RD16(p,i) (((U016 *)(p))[(i)/2])
--#define NV_WR32(p,i,d) (((U032 *)(p))[(i)/4]=(d))
--#define NV_RD32(p,i) (((U032 *)(p))[(i)/4])
--#define VGA_WR08(p,i,d) NV_WR08(p,i,d)
--#define VGA_RD08(p,i) NV_RD08(p,i)
--
--/*
-- * Define supported architectures.
-- */
--#define NV_ARCH_03 0x03
--#define NV_ARCH_04 0x04
--#define NV_ARCH_10 0x10
--/***************************************************************************\
--* *
--* FIFO registers. *
--* *
--\***************************************************************************/
--
--/*
-- * Raster OPeration. Windows style ROP3.
-- */
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop;
-- U032 reserved01[0x0BB];
-- U032 Rop3;
--} RivaRop;
--/*
-- * 8X8 Monochrome pattern.
-- */
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop;
-- U032 reserved01[0x0BD];
-- U032 Shape;
-- U032 reserved03[0x001];
-- U032 Color0;
-- U032 Color1;
-- U032 Monochrome[2];
--} RivaPattern;
--/*
-- * Scissor clip rectangle.
-- */
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop;
-- U032 reserved01[0x0BB];
-- U032 TopLeft;
-- U032 WidthHeight;
--} RivaClip;
--/*
-- * 2D filled rectangle.
-- */
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop[1];
-- U032 reserved01[0x0BC];
-- U032 Color;
-- U032 reserved03[0x03E];
-- U032 TopLeft;
-- U032 WidthHeight;
--} RivaRectangle;
--/*
-- * 2D screen-screen BLT.
-- */
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop;
-- U032 reserved01[0x0BB];
-- U032 TopLeftSrc;
-- U032 TopLeftDst;
-- U032 WidthHeight;
--} RivaScreenBlt;
--/*
-- * 2D pixel BLT.
-- */
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop[1];
-- U032 reserved01[0x0BC];
-- U032 TopLeft;
-- U032 WidthHeight;
-- U032 WidthHeightIn;
-- U032 reserved02[0x03C];
-- U032 Pixels;
--} RivaPixmap;
--/*
-- * Filled rectangle combined with monochrome expand. Useful for glyphs.
-- */
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop;
-- U032 reserved01[0x0BB];
-- U032 reserved03[(0x040)-1];
-- U032 Color1A;
-- struct
-- {
-- U032 TopLeft;
-- U032 WidthHeight;
-- } UnclippedRectangle[64];
-- U032 reserved04[(0x080)-3];
-- struct
-- {
-- U032 TopLeft;
-- U032 BottomRight;
-- } ClipB;
-- U032 Color1B;
-- struct
-- {
-- U032 TopLeft;
-- U032 BottomRight;
-- } ClippedRectangle[64];
-- U032 reserved05[(0x080)-5];
-- struct
-- {
-- U032 TopLeft;
-- U032 BottomRight;
-- } ClipC;
-- U032 Color1C;
-- U032 WidthHeightC;
-- U032 PointC;
-- U032 MonochromeData1C;
-- U032 reserved06[(0x080)+121];
-- struct
-- {
-- U032 TopLeft;
-- U032 BottomRight;
-- } ClipD;
-- U032 Color1D;
-- U032 WidthHeightInD;
-- U032 WidthHeightOutD;
-- U032 PointD;
-- U032 MonochromeData1D;
-- U032 reserved07[(0x080)+120];
-- struct
-- {
-- U032 TopLeft;
-- U032 BottomRight;
-- } ClipE;
-- U032 Color0E;
-- U032 Color1E;
-- U032 WidthHeightInE;
-- U032 WidthHeightOutE;
-- U032 PointE;
-- U032 MonochromeData01E;
--} RivaBitmap;
--/*
-- * 3D textured, Z buffered triangle.
-- */
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop;
-- U032 reserved01[0x0BC];
-- U032 TextureOffset;
-- U032 TextureFormat;
-- U032 TextureFilter;
-- U032 FogColor;
--/* This is a problem on LynxOS */
--#ifdef Control
--#undef Control
--#endif
-- U032 Control;
-- U032 AlphaTest;
-- U032 reserved02[0x339];
-- U032 FogAndIndex;
-- U032 Color;
-- float ScreenX;
-- float ScreenY;
-- float ScreenZ;
-- float EyeM;
-- float TextureS;
-- float TextureT;
--} RivaTexturedTriangle03;
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop;
-- U032 reserved01[0x0BB];
-- U032 ColorKey;
-- U032 TextureOffset;
-- U032 TextureFormat;
-- U032 TextureFilter;
-- U032 Blend;
--/* This is a problem on LynxOS */
--#ifdef Control
--#undef Control
--#endif
-- U032 Control;
-- U032 FogColor;
-- U032 reserved02[0x39];
-- struct
-- {
-- float ScreenX;
-- float ScreenY;
-- float ScreenZ;
-- float EyeM;
-- U032 Color;
-- U032 Specular;
-- float TextureS;
-- float TextureT;
-- } Vertex[16];
-- U032 DrawTriangle3D;
--} RivaTexturedTriangle05;
--/*
-- * 2D line.
-- */
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop[1];
-- U032 reserved01[0x0BC];
-- U032 Color; /* source color 0304-0307*/
-- U032 Reserved02[0x03e];
-- struct { /* start aliased methods in array 0400- */
-- U032 point0; /* y_x S16_S16 in pixels 0- 3*/
-- U032 point1; /* y_x S16_S16 in pixels 4- 7*/
-- } Lin[16]; /* end of aliased methods in array -047f*/
-- struct { /* start aliased methods in array 0480- */
-- U032 point0X; /* in pixels, 0 at left 0- 3*/
-- U032 point0Y; /* in pixels, 0 at top 4- 7*/
-- U032 point1X; /* in pixels, 0 at left 8- b*/
-- U032 point1Y; /* in pixels, 0 at top c- f*/
-- } Lin32[8]; /* end of aliased methods in array -04ff*/
-- U032 PolyLin[32]; /* y_x S16_S16 in pixels 0500-057f*/
-- struct { /* start aliased methods in array 0580- */
-- U032 x; /* in pixels, 0 at left 0- 3*/
-- U032 y; /* in pixels, 0 at top 4- 7*/
-- } PolyLin32[16]; /* end of aliased methods in array -05ff*/
-- struct { /* start aliased methods in array 0600- */
-- U032 color; /* source color 0- 3*/
-- U032 point; /* y_x S16_S16 in pixels 4- 7*/
-- } ColorPolyLin[16]; /* end of aliased methods in array -067f*/
--} RivaLine;
--/*
-- * 2D/3D surfaces
-- */
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop;
-- U032 reserved01[0x0BE];
-- U032 Offset;
--} RivaSurface;
--typedef volatile struct
--{
-- U032 reserved00[4];
-- U016 FifoFree;
-- U016 Nop;
-- U032 reserved01[0x0BD];
-- U032 Pitch;
-- U032 RenderBufferOffset;
-- U032 ZBufferOffset;
--} RivaSurface3D;
--
--/***************************************************************************\
--* *
--* Virtualized RIVA H/W interface. *
--* *
--\***************************************************************************/
--
--struct _riva_hw_inst;
--struct _riva_hw_state;
--/*
-- * Virtialized chip interface. Makes RIVA 128 and TNT look alike.
-- */
--typedef struct _riva_hw_inst
--{
-- /*
-- * Chip specific settings.
-- */
-- U032 Architecture;
-- U032 Version;
-- U032 CrystalFreqKHz;
-- U032 RamAmountKBytes;
-- U032 MaxVClockFreqKHz;
-- U032 RamBandwidthKBytesPerSec;
-- U032 EnableIRQ;
-- U032 IO;
-- U032 VBlankBit;
-- U032 FifoFreeCount;
-- U032 FifoEmptyCount;
-- /*
-- * Non-FIFO registers.
-- */
-- volatile U032 *PCRTC;
-- volatile U032 *PRAMDAC;
-- volatile U032 *PFB;
-- volatile U032 *PFIFO;
-- volatile U032 *PGRAPH;
-- volatile U032 *PEXTDEV;
-- volatile U032 *PTIMER;
-- volatile U032 *PMC;
-- volatile U032 *PRAMIN;
-- volatile U032 *FIFO;
-- volatile U032 *CURSOR;
-- volatile U032 *CURSORPOS;
-- volatile U032 *VBLANKENABLE;
-- volatile U032 *VBLANK;
-- volatile U008 *PCIO;
-- volatile U008 *PVIO;
-- volatile U008 *PDIO;
-- /*
-- * Common chip functions.
-- */
-- int (*Busy)(struct _riva_hw_inst *);
-- void (*CalcStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *,int,int,int,int,int,int,int,int,int,int,int,int,int);
-- void (*LoadStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *);
-- void (*UnloadStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *);
-- void (*SetStartAddress)(struct _riva_hw_inst *,U032);
-- void (*SetSurfaces2D)(struct _riva_hw_inst *,U032,U032);
-- void (*SetSurfaces3D)(struct _riva_hw_inst *,U032,U032);
-- int (*ShowHideCursor)(struct _riva_hw_inst *,int);
-- void (*LockUnlock)(struct _riva_hw_inst *, int);
-- /*
-- * Current extended mode settings.
-- */
-- struct _riva_hw_state *CurrentState;
-- /*
-- * FIFO registers.
-- */
-- RivaRop *Rop;
-- RivaPattern *Patt;
-- RivaClip *Clip;
-- RivaPixmap *Pixmap;
-- RivaScreenBlt *Blt;
-- RivaBitmap *Bitmap;
-- RivaLine *Line;
-- RivaTexturedTriangle03 *Tri03;
-- RivaTexturedTriangle05 *Tri05;
--} RIVA_HW_INST;
--/*
-- * Extended mode state information.
-- */
--typedef struct _riva_hw_state
--{
-- U032 bpp;
-- U032 width;
-- U032 height;
-- U032 repaint0;
-- U032 repaint1;
-- U032 screen;
-- U032 pixel;
-- U032 horiz;
-- U032 arbitration0;
-- U032 arbitration1;
-- U032 vpll;
-- U032 pllsel;
-- U032 general;
-- U032 config;
-- U032 cursor0;
-- U032 cursor1;
-- U032 cursor2;
-- U032 offset0;
-- U032 offset1;
-- U032 offset2;
-- U032 offset3;
-- U032 pitch0;
-- U032 pitch1;
-- U032 pitch2;
-- U032 pitch3;
--} RIVA_HW_STATE;
--
--/*
-- * FIFO Free Count. Should attempt to yield processor if RIVA is busy.
-- */
--
--#define RIVA_FIFO_FREE(hwptr,cnt) \
--{ \
-- while (FifoFreeCount < (cnt)) \
-- FifoFreeCount = hwptr->FifoFree >> 2; \
-- FifoFreeCount -= (cnt); \
--}
--#endif /* __RIVA_HW_H__ */
--
---- src/video/fbcon/SDL_fbriva.c 2012-01-19 04:30:06.000000000 -0200
-+++ src/video/fbcon/SDL_fbriva.c 2012-04-01 15:10:10.108451467 -0300
-@@ -24,12 +24,10 @@
- #include "SDL_video.h"
- #include "../SDL_blit.h"
- #include "SDL_fbriva.h"
--#include "riva_mmio.h"
- #include "riva_regs.h"
-
-
- static int FifoEmptyCount = 0;
--static int FifoFreeCount = 0;
-
- /* Wait for vertical retrace */
- static void WaitVBL(_THIS)
-@@ -41,20 +39,6 @@
- while ( !(*port & 0x08) )
- ;
- }
--static void NV3WaitIdle(_THIS)
--{
-- RivaRop *Rop = (RivaRop *)(mapped_io + ROP_OFFSET);
-- while ( (Rop->FifoFree < FifoEmptyCount) ||
-- (*(mapped_io + PGRAPH_OFFSET + 0x000006B0) & 0x01) )
-- ;
--}
--static void NV4WaitIdle(_THIS)
--{
-- RivaRop *Rop = (RivaRop *)(mapped_io + ROP_OFFSET);
-- while ( (Rop->FifoFree < FifoEmptyCount) ||
-- (*(mapped_io + PGRAPH_OFFSET + 0x00000700) & 0x01) )
-- ;
--}
-
- #if 0 /* Not yet implemented? */
- /* Sets video mem colorkey and accelerated blit function */
-@@ -74,7 +58,6 @@
- {
- int dstX, dstY;
- int dstW, dstH;
-- RivaBitmap *Bitmap = (RivaBitmap *)(mapped_io + BITMAP_OFFSET);
-
- /* Don't blit to the display surface when switched away */
- if ( switched_away ) {
-@@ -93,13 +76,6 @@
- dstX += rect->x;
- dstY += rect->y;
-
-- RIVA_FIFO_FREE(Bitmap, 1);
-- Bitmap->Color1A = color;
--
-- RIVA_FIFO_FREE(Bitmap, 2);
-- Bitmap->UnclippedRectangle[0].TopLeft = (dstX << 16) | dstY;
-- Bitmap->UnclippedRectangle[0].WidthHeight = (dstW << 16) | dstH;
--
- FB_AddBusySurface(dst);
-
- if ( dst == this->screen ) {
-@@ -115,7 +91,6 @@
- int srcX, srcY;
- int dstX, dstY;
- int dstW, dstH;
-- RivaScreenBlt *Blt = (RivaScreenBlt *)(mapped_io + BLT_OFFSET);
-
- /* FIXME: For now, only blit to display surface */
- if ( dst->pitch != SDL_VideoSurface->pitch ) {
-@@ -142,11 +117,6 @@
- dstX += dstrect->x;
- dstY += dstrect->y;
-
-- RIVA_FIFO_FREE(Blt, 3);
-- Blt->TopLeftSrc = (srcY << 16) | srcX;
-- Blt->TopLeftDst = (dstY << 16) | dstX;
-- Blt->WidthHeight = (dstH << 16) | dstW;
--
- FB_AddBusySurface(src);
- FB_AddBusySurface(dst);
-
-@@ -185,23 +155,15 @@
-
- void FB_RivaAccel(_THIS, __u32 card)
- {
-- RivaRop *Rop = (RivaRop *)(mapped_io + ROP_OFFSET);
-
- /* We have hardware accelerated surface functions */
- this->CheckHWBlit = CheckHWBlit;
- wait_vbl = WaitVBL;
- switch (card) {
-- case FB_ACCEL_NV3:
-- wait_idle = NV3WaitIdle;
-- break;
-- case FB_ACCEL_NV4:
-- wait_idle = NV4WaitIdle;
-- break;
- default:
- /* Hmm... FIXME */
- break;
- }
-- FifoEmptyCount = Rop->FifoFree;
-
- /* The Riva has an accelerated color fill */
- this->info.blit_fill = 1;
diff --git a/libre/sqlite3-libre/PKGBUILD b/libre/sqlite3-libre/PKGBUILD
deleted file mode 100644
index 569538fbf..000000000
--- a/libre/sqlite3-libre/PKGBUILD
+++ /dev/null
@@ -1,63 +0,0 @@
-# $Id: PKGBUILD 154652 2012-03-30 14:26:35Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-
-pkgbase="sqlite3"
-pkgname=('sqlite3' 'sqlite3-tcl')
-_amalgamationver=3071100
-_amalgamationver2=${_amalgamationver/00/}
-#pkgver=${_amalgamationver2//0/.}
-pkgver=3.7.11
-pkgrel=1.1
-pkgdesc="A C library that implements an SQL database engine"
-arch=('i686' 'x86_64' 'mips64el')
-license=('custom')
-url="http://www.sqlite.org/"
-makedepends=('tcl' 'readline>=6.0.00')
-source=( # tarball containing the amalgamation for SQLite 3.7.5 together with a configure script and makefile for building it; includes now also the Tcl Extension Architecture (TEA)
- http://www.sqlite.org/sqlite-autoconf-$_amalgamationver.tar.gz
- license.txt)
-options=('!libtool' '!emptydirs')
-md5sums=('0552d71bda98ebdcaea305cd6058221b'
- 'c1cdbc5544034d9012e421e75a5e4890')
-
-build() {
- export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE"
-
- # build sqlite
- cd "$srcdir"/sqlite-autoconf-$_amalgamationver
- ./configure --prefix=/usr \
- --disable-static
- make
-
- # build the tcl extension
- cd "$srcdir"/sqlite-autoconf-$_amalgamationver/tea
- ./configure --prefix=/usr \
- --with-system-sqlite
- make
-
-}
-
-package_sqlite3() {
-
- pkgdesc="A C library that implements an SQL database engine"
- depends=('readline>=6.0.00')
- conflicts=('sqlite' 'sqlite3')
- replaces=('sqlite' 'sqlite3')
- provides=("sqlite3=$pkgver")
-
- cd ${srcdir}/sqlite-autoconf-$_amalgamationver
- make DESTDIR=${pkgdir} install
-
- # license
- install -D -m644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
-}
-
-package_sqlite3-tcl() {
-
- pkgdesc="sqlite3 Tcl Extension Architecture (TEA)"
- depends=('sqlite3>=3.7.5')
-
- cd ${srcdir}/sqlite-autoconf-$_amalgamationver/tea
- make DESTDIR=${pkgdir} install
-}
diff --git a/libre/sqlite3-libre/license.txt b/libre/sqlite3-libre/license.txt
deleted file mode 100644
index 118c5d5e6..000000000
--- a/libre/sqlite3-libre/license.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-SQLite Copyright
-SQLite is in the
-Public Domain
-
-
-All of the deliverable code in SQLite has been dedicated to the public domain by the authors. All code authors, and representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
-
-The previous paragraph applies to the deliverable code in SQLite - those parts of the SQLite library that you actually bundle and ship with a larger application. Portions of the documentation and some code used as part of the build process might fall under other licenses. The details here are unclear. We do not worry about the licensing of the documentation and build code so much because none of these things are part of the core deliverable SQLite library.
-
-All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from the open internet. Every line of code can be traced back to its original author, and all of those authors have public domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects.
-Obtaining An Explicit License To Use SQLite
-
-Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include:
-You are using SQLite in a jurisdiction that does not recognize the public domain.
-You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the public domain.
-You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite.
-Your legal department tells you that you have to purchase a license.
-
-If you feel like you really have to purchase a license for SQLite, Hwaci, the company that employs the architect and principal developers of SQLite, will sell you one.
-Contributed Code
-
-In order to keep SQLite completely free and unencumbered by copyright, all new contributors to the SQLite code base are asked to dedicate their contributions to the public domain. If you want to send a patch or enhancement for possible inclusion in the SQLite source tree, please accompany the patch with the following statement:
-The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law.
-
-We are not able to accept patches or changes to SQLite that are not accompanied by a statement such as the above. In addition, if you make changes or enhancements as an employee, then a simple statement such as the above is insufficient. You must also send by surface mail a copyright release signed by a company officer. A signed original of the copyright release should be mailed to:
-Hwaci
-6200 Maple Cove Lane
-Charlotte, NC 28269
-USA
-
-A template copyright release is available in PDF or HTML. You can use this release to make future changes.
-
-see http://www.sqlite.org/copyright.html \ No newline at end of file
diff --git a/libre/sqlite3/PKGBUILD b/libre/sqlite3/PKGBUILD
deleted file mode 100644
index 2a939aa57..000000000
--- a/libre/sqlite3/PKGBUILD
+++ /dev/null
@@ -1,68 +0,0 @@
-# $Id: PKGBUILD 138719 2011-09-27 17:41:55Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-
-# Parabola note: this PKGBUILD is not meant for building, but for
-# providing a PKGBUILD that doesn't build the with unclear permissions
-# docs
-
-pkgbase="sqlite3"
-pkgname=('sqlite3' 'sqlite3-tcl')
-_amalgamationver=3070800
-_amalgamationver2=${_amalgamationver/00/}
-pkgver=${_amalgamationver2//0/.}
-pkgrel=2
-pkgdesc="A C library that implements an SQL database engine"
-arch=('i686' 'x86_64')
-license=('custom')
-url="http://www.sqlite.org/"
-makedepends=('tcl' 'readline>=6.0.00')
-source=( # tarball containing the amalgamation for SQLite 3.7.5 together with a configure script and makefile for building it; includes now also the Tcl Extension Architecture (TEA)
- http://www.sqlite.org/sqlite-autoconf-$_amalgamationver.tar.gz
- license.txt)
-options=('!libtool' '!emptydirs')
-md5sums=('6bfb46d73caaa1bbbcd2b52184b6c542'
- 'c1cdbc5544034d9012e421e75a5e4890')
-sha1sums=('34852cfd49ddea440eb26a35ad32deee0176a724'
- 'f34f6daa4ab3073d74e774aad21d66878cf26853')
-
-build() {
- export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE"
-
- # build sqlite
- cd "$srcdir"/sqlite-autoconf-$_amalgamationver
- ./configure --prefix=/usr \
- --disable-static
- make
-
- # build the tcl extension
- cd "$srcdir"/sqlite-autoconf-$_amalgamationver/tea
- ./configure --prefix=/usr \
- --with-system-sqlite
- make
-
-}
-
-package_sqlite3() {
-
- pkgdesc="A C library that implements an SQL database engine"
- depends=('readline>=6.0.00')
- conflicts=('sqlite')
- replaces=('sqlite')
-
- cd ${srcdir}/sqlite-autoconf-$_amalgamationver
- make DESTDIR=${pkgdir} install
-
- # license
- install -D -m644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
-}
-
-package_sqlite3-tcl() {
-
- pkgdesc="sqlite3 Tcl Extension Architecture (TEA)"
- depends=('sqlite3>=3.7.5')
-
- cd ${srcdir}/sqlite-autoconf-$_amalgamationver/tea
- make DESTDIR=${pkgdir} install
-}
-
diff --git a/libre/sqlite3/license.txt b/libre/sqlite3/license.txt
deleted file mode 100644
index 118c5d5e6..000000000
--- a/libre/sqlite3/license.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-SQLite Copyright
-SQLite is in the
-Public Domain
-
-
-All of the deliverable code in SQLite has been dedicated to the public domain by the authors. All code authors, and representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
-
-The previous paragraph applies to the deliverable code in SQLite - those parts of the SQLite library that you actually bundle and ship with a larger application. Portions of the documentation and some code used as part of the build process might fall under other licenses. The details here are unclear. We do not worry about the licensing of the documentation and build code so much because none of these things are part of the core deliverable SQLite library.
-
-All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from the open internet. Every line of code can be traced back to its original author, and all of those authors have public domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects.
-Obtaining An Explicit License To Use SQLite
-
-Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include:
-You are using SQLite in a jurisdiction that does not recognize the public domain.
-You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the public domain.
-You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite.
-Your legal department tells you that you have to purchase a license.
-
-If you feel like you really have to purchase a license for SQLite, Hwaci, the company that employs the architect and principal developers of SQLite, will sell you one.
-Contributed Code
-
-In order to keep SQLite completely free and unencumbered by copyright, all new contributors to the SQLite code base are asked to dedicate their contributions to the public domain. If you want to send a patch or enhancement for possible inclusion in the SQLite source tree, please accompany the patch with the following statement:
-The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law.
-
-We are not able to accept patches or changes to SQLite that are not accompanied by a statement such as the above. In addition, if you make changes or enhancements as an employee, then a simple statement such as the above is insufficient. You must also send by surface mail a copyright release signed by a company officer. A signed original of the copyright release should be mailed to:
-Hwaci
-6200 Maple Cove Lane
-Charlotte, NC 28269
-USA
-
-A template copyright release is available in PDF or HTML. You can use this release to make future changes.
-
-see http://www.sqlite.org/copyright.html \ No newline at end of file
diff --git a/libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch b/libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch
deleted file mode 100644
index 06fc30944..000000000
--- a/libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 7e5d190ccce8dc064d5756225e306e65fa534ae9 Mon Sep 17 00:00:00 2001
-From: Dave Reisner <dreisner@archlinux.org>
-Date: Mon, 2 Apr 2012 08:20:34 -0400
-Subject: [PATCH] check for proper return from dirent_ensure_type
-
-Fixes 'systemctl list-unit-files', which previously returned only:
-
- Failed to issue method call: No such file or directory
----
- src/install.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/install.c b/src/install.c
-index 174d79b..9256116 100644
---- a/src/install.c
-+++ b/src/install.c
-@@ -1853,7 +1853,7 @@ int unit_file_get_list(
-
- r = dirent_ensure_type(d, de);
- if (r < 0) {
-- if (errno == ENOENT)
-+ if (r == -ENOENT)
- continue;
-
- goto finish;
---
-1.7.9.5
diff --git a/libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch b/libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch
deleted file mode 100644
index 692d93356..000000000
--- a/libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 75c8e3cffd7da8eede614cf61384957af2c82a29 Mon Sep 17 00:00:00 2001
-From: Lennart Poettering <lennart@poettering.net>
-Date: Thu, 22 Mar 2012 02:06:40 +0100
-Subject: [PATCH] logind: close FIFO before ending sessions cleanly
-
-For clean session endings ask logind explicitly to get rid of the FIFO
-before closing it so that the FIFO logic doesn't result in su/sudo to be
-terminated immediately.
----
- src/login/logind-dbus.c | 30 ++++++++++++++++++++
- src/login/pam-module.c | 71 +++++++++++++++++++++++++++++++++++++++++++++--
- 2 files changed, 98 insertions(+), 3 deletions(-)
-
-diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
-index d8f4d89..ea6b89f 100644
---- a/src/login/logind-dbus.c
-+++ b/src/login/logind-dbus.c
-@@ -80,6 +80,9 @@
- " <arg name=\"seat\" type=\"s\" direction=\"out\"/>\n" \
- " <arg name=\"vtnr\" type=\"u\" direction=\"out\"/>\n" \
- " </method>\n" \
-+ " <method name=\"ReleaseSession\">\n" \
-+ " <arg name=\"id\" type=\"s\" direction=\"in\"/>\n" \
-+ " </method>\n" \
- " <method name=\"ActivateSession\">\n" \
- " <arg name=\"id\" type=\"s\" direction=\"in\"/>\n" \
- " </method>\n" \
-@@ -1075,6 +1078,33 @@ static DBusHandlerResult manager_message_handler(
- if (r < 0)
- return bus_send_error_reply(connection, message, &error, r);
-
-+ } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "ReleaseSession")) {
-+ const char *name;
-+ Session *session;
-+
-+ if (!dbus_message_get_args(
-+ message,
-+ &error,
-+ DBUS_TYPE_STRING, &name,
-+ DBUS_TYPE_INVALID))
-+ return bus_send_error_reply(connection, message, &error, -EINVAL);
-+
-+ session = hashmap_get(m->sessions, name);
-+ if (!session)
-+ return bus_send_error_reply(connection, message, &error, -ENOENT);
-+
-+ /* We use the FIFO to detect stray sessions where the
-+ process invoking PAM dies abnormally. We need to make
-+ sure that that process is not killed if at the clean
-+ end of the session it closes the FIFO. Hence, with
-+ this call explicitly turn off the FIFO logic, so that
-+ the PAM code can finish clean up on its own */
-+ session_remove_fifo(session);
-+
-+ reply = dbus_message_new_method_return(message);
-+ if (!reply)
-+ goto oom;
-+
- } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "ActivateSession")) {
- const char *name;
- Session *session;
-diff --git a/src/login/pam-module.c b/src/login/pam-module.c
-index 8544413..4106d2b 100644
---- a/src/login/pam-module.c
-+++ b/src/login/pam-module.c
-@@ -414,7 +414,6 @@ _public_ PAM_EXTERN int pam_sm_open_session(
- "/org/freedesktop/login1",
- "org.freedesktop.login1.Manager",
- "CreateSession");
--
- if (!m) {
- pam_syslog(handle, LOG_ERR, "Could not allocate create session message.");
- r = PAM_BUF_ERR;
-@@ -620,11 +619,77 @@ _public_ PAM_EXTERN int pam_sm_close_session(
- int argc, const char **argv) {
-
- const void *p = NULL;
-+ const char *id;
-+ DBusConnection *bus = NULL;
-+ DBusMessage *m = NULL, *reply = NULL;
-+ DBusError error;
-+ int r;
-
-- pam_get_data(handle, "systemd.session-fd", &p);
-+ assert(handle);
-+
-+ dbus_error_init(&error);
-+
-+ id = pam_getenv(handle, "XDG_SESSION_ID");
-+ if (id) {
-+
-+ /* Before we go and close the FIFO we need to tell
-+ * logind that this is a clean session shutdown, so
-+ * that it doesn't just go and slaughter us
-+ * immediately after closing the fd */
-+
-+ bus = dbus_bus_get_private(DBUS_BUS_SYSTEM, &error);
-+ if (!bus) {
-+ pam_syslog(handle, LOG_ERR, "Failed to connect to system bus: %s", bus_error_message(&error));
-+ r = PAM_SESSION_ERR;
-+ goto finish;
-+ }
-+
-+ m = dbus_message_new_method_call(
-+ "org.freedesktop.login1",
-+ "/org/freedesktop/login1",
-+ "org.freedesktop.login1.Manager",
-+ "ReleaseSession");
-+ if (!m) {
-+ pam_syslog(handle, LOG_ERR, "Could not allocate release session message.");
-+ r = PAM_BUF_ERR;
-+ goto finish;
-+ }
-+
-+ if (!dbus_message_append_args(m,
-+ DBUS_TYPE_STRING, &id,
-+ DBUS_TYPE_INVALID)) {
-+ pam_syslog(handle, LOG_ERR, "Could not attach parameters to message.");
-+ r = PAM_BUF_ERR;
-+ goto finish;
-+ }
-
-+ reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error);
-+ if (!reply) {
-+ pam_syslog(handle, LOG_ERR, "Failed to release session: %s", bus_error_message(&error));
-+ r = PAM_SESSION_ERR;
-+ goto finish;
-+ }
-+ }
-+
-+ r = PAM_SUCCESS;
-+
-+finish:
-+ pam_get_data(handle, "systemd.session-fd", &p);
- if (p)
- close_nointr(PTR_TO_INT(p) - 1);
-
-- return PAM_SUCCESS;
-+ dbus_error_free(&error);
-+
-+ if (bus) {
-+ dbus_connection_close(bus);
-+ dbus_connection_unref(bus);
-+ }
-+
-+ if (m)
-+ dbus_message_unref(m);
-+
-+ if (reply)
-+ dbus_message_unref(reply);
-+
-+ return r;
- }
---
-1.7.9.5
diff --git a/libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch b/libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch
deleted file mode 100644
index 9bf84dda6..000000000
--- a/libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 5ebff5337594d690b322078c512eb222d34aaa82 Mon Sep 17 00:00:00 2001
-From: Michal Schmidt <mschmidt@redhat.com>
-Date: Fri, 2 Mar 2012 10:39:10 +0100
-Subject: [PATCH] util: never follow symlinks in rm_rf_children()
-
-The function checks if the entry is a directory before recursing, but
-there is a window between the check and the open, during which the
-directory could be replaced with a symlink.
-
-CVE-2012-1174
-https://bugzilla.redhat.com/show_bug.cgi?id=803358
----
- src/util.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/util.c b/src/util.c
-index 20cbc2b..dfc1dc6 100644
---- a/src/util.c
-+++ b/src/util.c
-@@ -3593,7 +3593,8 @@ static int rm_rf_children(int fd, bool only_dirs, bool honour_sticky) {
- if (is_dir) {
- int subdir_fd;
-
-- if ((subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)) < 0) {
-+ subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW);
-+ if (subdir_fd < 0) {
- if (ret == 0 && errno != ENOENT)
- ret = -errno;
- continue;
---
-1.7.9.4
diff --git a/libre/systemd/PKGBUILD b/libre/systemd/PKGBUILD
deleted file mode 100644
index d4f08f7d5..000000000
--- a/libre/systemd/PKGBUILD
+++ /dev/null
@@ -1,123 +0,0 @@
-# $Id$
-# Maintainer: Dave Reisner <dreisner@archlinux.org>
-# Maintainer (Parabola): Nicolas Reynolds <fauno@kiwwwi.com.ar>
-# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
-
-pkgbase=systemd
-pkgname=('systemd')
-pkgver=44
-pkgrel=7
-arch=('i686' 'x86_64' 'mips64el')
-url="http://www.freedesktop.org/wiki/Software/systemd"
-license=('GPL2' 'LGPL2.1' 'MIT')
-makedepends=('acl' 'cryptsetup' 'dbus-core' 'docbook-xsl' 'gperf' 'intltool'
- 'kmod' 'libcap' 'libxslt' 'linux-api-headers' 'pam' 'udev' 'xz')
-options=('!libtool')
-source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz"
- "os-release"
- 0001-util-never-follow-symlinks-in-rm_rf_children.patch
- 0001-logind-close-FIFO-before-ending-sessions-cleanly.patch
- 0001-check-for-proper-return-from-dirent_ensure_type.patch)
-md5sums=('11f44ff74c87850064e4351518bcff17'
- 'd0210754762d923d36c9452a1648d550'
- 'b5863d6d4b47e2b5bda8eb57bde0d327'
- 'd37833358ef6c23fad622ea4a0941d1f'
- '11f930fd0a3966abc794bf9127a7dde0')
-
-build() {
- cd "$pkgname-$pkgver"
-
- # https://bugzilla.redhat.com/show_bug.cgi?id=803358 (upstream 5ebff53375)
- patch -Np1 <"$srcdir/0001-util-never-follow-symlinks-in-rm_rf_children.patch"
-
- # https://bugs.archlinux.org/task/28386 (upstream 75c8e3cffd)
- patch -Np1 <"$srcdir/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch"
-
- # Fix broken 'systemctl list-unit-files' (upstream fb5ef067c49)
- patch -Np1 <"$srcdir/0001-check-for-proper-return-from-dirent_ensure_type.patch"
-
- ./configure --sysconfdir=/etc \
- --libexecdir=/usr/lib \
- --with-pamlibdir=/usr/lib/security \
- --localstatedir=/var \
- --with-distro=arch \
- --enable-split-usr \
- --disable-ima
-
- make
-}
-
-package_systemd() {
- pkgdesc="system and service manager"
- depends=('acl' 'dbus-core' 'libsystemd' 'kbd' 'kmod' 'libcap' 'pam' 'util-linux' 'udev' 'xz')
- optdepends=('cryptsetup: required for encrypted block devices'
- 'dbus-python: systemd-analyze'
- 'initscripts: legacy support for hostname and vconsole setup'
- 'initscripts-systemd: native boot and initialization scripts'
- 'python2-cairo: systemd-analyze'
- 'systemd-arch-units: collection of native unit files for Arch daemon/init scripts'
- 'systemd-sysvcompat: symlink package to provide sysvinit binaries')
- backup=(etc/dbus-1/system.d/org.freedesktop.systemd1.conf
- etc/dbus-1/system.d/org.freedesktop.hostname1.conf
- etc/dbus-1/system.d/org.freedesktop.login1.conf
- etc/dbus-1/system.d/org.freedesktop.locale1.conf
- etc/dbus-1/system.d/org.freedesktop.timedate1.conf
- etc/systemd/system.conf
- etc/systemd/user.conf
- etc/systemd/systemd-logind.conf
- etc/systemd/systemd-journald.conf)
- install="$pkgname.install"
-
- cd "$pkgname-$pkgver"
-
- make DESTDIR="$pkgdir" install
-
- install -Dm644 "$srcdir/os-release" "$pkgdir/etc/os-release"
-
- printf "d /run/console 755 root root\n" >"$pkgdir/usr/lib/tmpfiles.d/console.conf"
- chmod 644 "$pkgdir/usr/lib/tmpfiles.d/console.conf"
-
- # symlink to /bin/systemd for compat and sanity
- install -dm755 "$pkgdir/bin"
- ln -s ../usr/lib/systemd/systemd "$pkgdir/bin/systemd"
-
- # use python2 for systemd-analyze
- sed -i '1s/python$/python2/' "$pkgdir/usr/bin/systemd-analyze"
-
- # didn't build this...
- rm -f "$pkgdir/usr/share/man/man1/systemadm.1"
-
- # fix .so links in manpage stubs
- find "$pkgdir/usr/share/man" -type f -name '*.[[:digit:]]' \
- -exec sed -i '1s|^\.so \(.*\)\.\([[:digit:]]\+\)|.so man\2/\1.\2|' {} +
-
- # rename man pages to avoid conflicts with sysvinit and initscripts
- manpages=(man8/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8
- man5/{hostname,{vconsole,locale}.conf}.5)
- cd "$pkgdir/usr/share/man"
- for manpage in "${manpages[@]}"; do
- IFS='/' read section page <<< "$manpage"
- mv "$manpage" "$section/systemd.$page"
- done
- sed -i '1s|/\([^/]\+\)|/systemd.\1|' "$pkgdir"/usr/share/man/man8/systemd.{poweroff,reboot}.8
-
- # move bash-completion and symlink for loginctl
- install -Dm644 "$pkgdir/etc/bash_completion.d/systemd-bash-completion.sh" \
- "$pkgdir/usr/share/bash-completion/completions/systemctl"
- ln -s systemctl "$pkgdir/usr/share/bash-completion/completions/loginctl"
- rm -rf "$pkgdir/etc/bash_completion.d"
-
- # fix systemctl where
- find "$pkgdir" -type f -name '*.service' -exec \
- sed -i 's@\([=-]\)/bin/systemctl@\1/usr/bin/systemctl@g' {} +
-
- ### split off libsystemd (libs, includes, pkgconfig, man3)
- install -dm755 "$srcdir"/libsystemd/usr/{include,lib/pkgconfig}
-
- cd "$srcdir"/libsystemd
- mv "$pkgdir/usr/lib"/libsystemd-*.so* usr/lib
- mv "$pkgdir/usr/include/systemd" usr/include
- mv "$pkgdir/usr/lib/pkgconfig"/libsystemd-*.pc usr/lib/pkgconfig
-}
-
-# vim: ft=sh syn=sh et
diff --git a/libre/systemd/os-release b/libre/systemd/os-release
deleted file mode 100644
index 65253e9c3..000000000
--- a/libre/systemd/os-release
+++ /dev/null
@@ -1,7 +0,0 @@
-NAME=Parabola
-ID=parabola
-ID_LIKE=arch
-PRETTY_NAME="Parabola GNU/Linux-libre"
-ANSI_COLOR="1;35"
-HOME_URL="https://parabolagnulinux.org/"
-BUG_REPORT_URL="https://labs.parabola.nu/"
diff --git a/libre/systemd/rePKGBUILD b/libre/systemd/rePKGBUILD
deleted file mode 100644
index f825ee579..000000000
--- a/libre/systemd/rePKGBUILD
+++ /dev/null
@@ -1,52 +0,0 @@
-# This is an example rePKGBUILD file. Use this as a start to creating your own,
-# and remove these comments. For more information, see 'man PKGBUILD'.
-# NOTE: Please fill out the license field for your package! If it is unknown,
-# then please put 'unknown'.
-
-# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
-# Maintainer: André Silva <andre.paulista@adinet.com.uy>
-source PKGBUILD
-unset build package md5sums source check
-_repo=extra
-pkgname='systemd'
-options=(!strip)
-source=(PKGBUILD
- http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgbase}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
- # files for pkg modifications
- os-release)
-
-build() {
- cd "${srcdir}/"
- rm -v .{INSTALL,PKGINFO} $pkgname-$pkgver-$pkgrel-$CARCH$PKGEXT || true
- # put actions for package modifications below this line
-
- rm -v etc/os-release
-}
-
-package_systemd() {
- pkgdesc="system and service manager (Parabola rebranded)"
- depends=('acl' 'dbus-core' 'libsystemd' 'kbd' 'kmod' 'libcap' 'pam' 'util-linux' 'udev' 'xz')
- optdepends=('cryptsetup: required for encrypted block devices'
- 'dbus-python: systemd-analyze'
- 'initscripts: legacy support for hostname and vconsole setup'
- 'initscripts-systemd: native boot and initialization scripts'
- 'python2-cairo: systemd-analyze'
- 'systemd-arch-units: collection of native unit files for Arch daemon/init scripts'
- 'systemd-sysvcompat: symlink package to provide sysvinit binaries')
- backup=(etc/dbus-1/system.d/org.freedesktop.systemd1.conf
- etc/dbus-1/system.d/org.freedesktop.hostname1.conf
- etc/dbus-1/system.d/org.freedesktop.login1.conf
- etc/dbus-1/system.d/org.freedesktop.locale1.conf
- etc/dbus-1/system.d/org.freedesktop.timedate1.conf
- etc/systemd/system.conf
- etc/systemd/user.conf
- etc/systemd/systemd-logind.conf
- etc/systemd/systemd-journald.conf)
- install="$pkgname.install"
-
- # Install Parabola os-release
- install -Dm644 "$srcdir/os-release" "$pkgdir/etc/os-release"
-
- find ${srcdir} -maxdepth 1 -type l -delete
- cp -a ${srcdir}/* ${pkgdir}
-}
diff --git a/libre/systemd/systemd.install b/libre/systemd/systemd.install
deleted file mode 100644
index 0c3e9abee..000000000
--- a/libre/systemd/systemd.install
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh
-
-checkgroups() {
- if ! getent group lock >/dev/null; then
- groupadd -g 54 lock
- fi
-}
-
-sd_booted() {
- [ -e sys/fs/cgroup/systemd ]
-}
-
-post_install() {
- checkgroups
-
- if [ ! -f etc/machine-id ]; then
- systemd-machine-id-setup
- fi
-
- echo "systemd has been installed to /bin/systemd. Please ensure you append"
- echo "init=/bin/systemd to your kernel command line in your bootloader."
-}
-
-post_upgrade() {
- checkgroups
-
- if [ ! -f etc/machine-id ]; then
- systemd-machine-id-setup
- fi
-
- if sd_booted; then
- # we moved the binary in 44-2 to /usr, so a reexec leads to a
- # coredump. refuse this reexec and warn the user that they should
- # reboot instead.
- if [ "$(vercmp 44-2 "$2")" -eq 1 ]; then
- echo "warning: refusing to reexec systemd. the system should be rebooted."
- else
- systemctl daemon-reload
- systemctl daemon-reexec
- fi
- fi
-}
-
-post_remove() {
- if getent group lock >/dev/null; then
- groupdel lock
- fi
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/libre/texlive-core-libre/.directory b/libre/texlive-core-libre/.directory
deleted file mode 100644
index 9d572f361..000000000
--- a/libre/texlive-core-libre/.directory
+++ /dev/null
@@ -1,5 +0,0 @@
-[Dolphin]
-Timestamp=2012,6,26,20,37,17
-
-[Settings]
-HiddenFilesShown=true
diff --git a/libre/thunderbird-libre/.directory b/libre/thunderbird-libre/.directory
deleted file mode 100644
index 6ec9fb1ce..000000000
--- a/libre/thunderbird-libre/.directory
+++ /dev/null
@@ -1,2 +0,0 @@
-[Dolphin]
-Timestamp=2012,4,13,6,21,8
diff --git a/libre/thunderbird-libre/PKGBUILD b/libre/thunderbird-libre/PKGBUILD
deleted file mode 100644
index 134f0efd0..000000000
--- a/libre/thunderbird-libre/PKGBUILD
+++ /dev/null
@@ -1,82 +0,0 @@
-# $Id: PKGBUILD 157994 2012-04-30 20:56:00Z ibiru $
-# Maintainer : Ionut Biru <ibiru@archlinux.org>
-# Contributor: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Dale Blount <dale@archlinux.org>
-# Contributor: Anders Bostrom <anders.bostrom@home.se>
-# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
-
-pkgname=thunderbird-libre
-pkgver=12.0.1
-pkgrel=1
-pkgdesc="Standalone Mail/News reader"
-arch=('i686' 'x86_64')
-license=('MPL' 'GPL')
-url="http://www.mozilla.org/thunderbird/"
-depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite' 'startup-notification')
-makedepends=('unzip' 'zip' 'pkg-config' 'python2' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13')
-optdepends=('libcanberra: for sound support')
-replaces=('thunderbird')
-conflicts=('thunderbird')
-provides=("thunderbird=$pkgver")
-install=thunderbird.install
-source=(ftp://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.bz2
- mozconfig
- thunderbird.desktop
- thunderbird-install-dir.patch
- channel-prefs.js
- vendor.js
- gcc47.patch
- clrf.patch
- searchplugins-libre.patch)
-md5sums=('64cacde4cb2b1e8736f1c3a0ea6a02db'
- '41511a6bcdd04cf56706218e4670e631'
- 'af3e5b344d2edf1c7d61bb0a5a96de9a'
- 'aea906acf72c43dd82ead2fabcc1c6db'
- '476ec205162340fb0679f522c9d31c3b'
- '5a53179d14ae9631b7afe5e4d0fc0b25'
- '1e3ad86899c61f0993c429d10913edb4'
- 'abe8f73faa71ea2a1e4c6f5a33f56c27'
- '6a1d132b0275876678cb0b08c527805a')
-
-build() {
- cd comm-release
- patch -Np1 -i "$srcdir/thunderbird-install-dir.patch"
- patch -Np1 -i "$srcdir/gcc47.patch"
- patch -Np1 -i "$srcdir/clrf.patch"
-
- # Removing non-free search plugins replacing them with duckduckgo and identi.ca
- patch -Np1 -i "$srcdir/searchplugins-libre.patch"
-
- cp "$srcdir/mozconfig" .mozconfig
-
- export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/thunderbird"
- export PYTHON="/usr/bin/python2"
-
- make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
-}
-
-package() {
- cd comm-release
- make -j1 -f client.mk DESTDIR="$pkgdir" install
-
- install -m644 "$srcdir"/vendor.js "$pkgdir/usr/lib/thunderbird/defaults/pref/"
-
- for i in 16x16 22x22 24x24 32x32 48x48 256x256; do
- install -Dm644 other-licenses/branding/thunderbird/mailicon${i/x*/}.png \
- "$pkgdir/usr/share/icons/hicolor/$i/apps/thunderbird.png"
- done
-
- install -Dm644 "$srcdir/thunderbird.desktop" \
- "$pkgdir/usr/share/applications/thunderbird.desktop"
-
- rm -rf "$pkgdir"/usr/lib/thunderbird/{dictionaries,hyphenation}
- ln -sf /usr/share/hunspell "$pkgdir/usr/lib/thunderbird/dictionaries"
- ln -sf /usr/share/hyphen "$pkgdir/usr/lib/thunderbird/hyphenation"
-
- # We don't want the development stuff
- rm -r "$pkgdir"/usr/{include,lib/thunderbird-devel,share/idl}
-
-# Recommend free addons
- cp --remove-destination "${srcdir}/channel-prefs.js" \
- "${pkgdir}/usr/lib/thunderbird/defaults/pref/channel-prefs.js"
-}
diff --git a/libre/thunderbird-libre/channel-prefs.js b/libre/thunderbird-libre/channel-prefs.js
deleted file mode 100644
index 13b1ba388..000000000
--- a/libre/thunderbird-libre/channel-prefs.js
+++ /dev/null
@@ -1,9 +0,0 @@
-//@line 2 "/build/src/comm-release/mail/app/profile/channel-prefs.js"
-pref("app.update.channel", "default");
-
-//Recommend free addons
-pref("extensions.getAddons.get.url", "http://www.gnu.org/software/gnuzilla/addons.html");
-pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html");
-pref("extensions.getMoreThemesURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-pref("extensions.webservice.discoverURL", "http://www.gnu.org/software/gnuzilla/addons.html");
diff --git a/libre/thunderbird-libre/clrf.patch b/libre/thunderbird-libre/clrf.patch
deleted file mode 100644
index 5a77f2b01..000000000
--- a/libre/thunderbird-libre/clrf.patch
+++ /dev/null
@@ -1,265 +0,0 @@
-diff -Nur comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp
---- comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-04-25 01:09:10.468804374 +0000
-+++ comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-04-25 01:09:45.928528202 +0000
-@@ -688,7 +688,7 @@
- PL_strcat(encoding, "{");
- lengthStr.AppendInt((PRInt32) strlen(value));
- PL_strcat(encoding, lengthStr.get());
-- PL_strcat(encoding, "}"CRLF);
-+ PL_strcat(encoding, "}" CRLF);
- PL_strcat(encoding, value);
- return NS_OK;
- }
-diff -Nur comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp
---- comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-04-25 01:09:10.475470988 +0000
-+++ comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-04-25 01:09:45.928528202 +0000
-@@ -758,7 +758,7 @@
- }
- }
- }
--#define EXTRA_KEYWORD_HDR " "MSG_LINEBREAK
-+#define EXTRA_KEYWORD_HDR " " MSG_LINEBREAK
-
- // if status offset isn't in the first block, this code won't work. There's no good reason
- // for the status offset not to be at the beginning of the message anyway.
-@@ -1216,7 +1216,7 @@
- // check if there's an envelope header; if not, write one.
- if (strncmp(m_dataBuffer, "From ", 5))
- {
-- m_fileStream->Write("From "CRLF, 7, &bytesWritten);
-+ m_fileStream->Write("From " CRLF, 7, &bytesWritten);
- m_offlineMsgSize += bytesWritten;
- }
- }
-diff -Nur comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp comm-release/mailnews/compose/src/nsSmtpProtocol.cpp
---- comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp 2012-04-25 01:09:10.542137136 +0000
-+++ comm-release/mailnews/compose/src/nsSmtpProtocol.cpp 2012-04-25 01:09:45.928528202 +0000
-@@ -1722,7 +1722,7 @@
- {
- m_sendDone = true;
- nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
-- SendData(url, "QUIT"CRLF); // send a quit command to close the connection with the server.
-+ SendData(url, "QUIT" CRLF); // send a quit command to close the connection with the server.
- m_nextState = SMTP_RESPONSE;
- m_nextStateAfterResponse = SMTP_DONE;
- return(0);
-@@ -1969,7 +1969,7 @@
- {
- nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
- // send a quit command to close the connection with the server.
-- if (SendData(url, "QUIT"CRLF) == NS_OK)
-+ if (SendData(url, "QUIT" CRLF) == NS_OK)
- {
- m_nextState = SMTP_RESPONSE;
- m_nextStateAfterResponse = SMTP_ERROR_DONE;
-@@ -2118,4 +2118,3 @@
- NS_ENSURE_SUCCESS(rv,rv);
- return rv;
- }
--
-diff -Nur comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp comm-release/mailnews/imap/src/nsImapMailFolder.cpp
---- comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp 2012-04-25 01:09:10.605469976 +0000
-+++ comm-release/mailnews/imap/src/nsImapMailFolder.cpp 2012-04-25 01:09:45.928528202 +0000
-@@ -8309,7 +8309,7 @@
- bool needMoreData = false;
- char * newLine = nsnull;
- PRUint32 numBytesInLine = 0;
-- const char *envelope = "From "CRLF;
-+ const char *envelope = "From " CRLF;
- offlineStore->Write(envelope, strlen(envelope), &bytesWritten);
- fileSize += bytesWritten;
- do
-diff -Nur comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp comm-release/mailnews/imap/src/nsImapProtocol.cpp
---- comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp 2012-04-25 01:09:10.605469976 +0000
-+++ comm-release/mailnews/imap/src/nsImapProtocol.cpp 2012-04-25 01:09:45.931861509 +0000
-@@ -1409,7 +1409,7 @@
- {
- // PRInt32 oldRecent = GetServerStateParser().NumberOfRecentMessages();
- nsCAutoString commandBuffer(GetServerCommandTag());
-- commandBuffer.Append(" IDLE"CRLF);
-+ commandBuffer.Append(" IDLE" CRLF);
-
- do
- {
-@@ -3287,7 +3287,7 @@
- commandString.Append(messageIds);
- commandString.Append(" (");
- commandString.Append(attribute);
-- commandString.Append(")"CRLF);
-+ commandString.Append(")" CRLF);
- nsresult rv = SendData(commandString.get());
-
- if (NS_SUCCEEDED(rv))
-@@ -5283,7 +5283,7 @@
-
- IncrementCommandTagNumber();
- nsCAutoString command(GetServerCommandTag());
-- command.Append(" expunge"CRLF);
-+ command.Append(" expunge" CRLF);
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -5359,7 +5359,7 @@
- command.Append(gAppName);
- command.Append("\" \"version\" \"");
- command.Append(gAppVersion);
-- command.Append("\")"CRLF);
-+ command.Append("\")" CRLF);
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -5816,7 +5816,7 @@
- nsCAutoString correctedPassword;
- EscapeUserNamePasswordString(password.get(), &correctedPassword);
- command.Append(correctedPassword);
-- command.Append("\""CRLF);
-+ command.Append("\"" CRLF);
- rv = SendData(command.get(), true /* suppress logging */);
- NS_ENSURE_SUCCESS(rv, rv);
- ParseIMAPandCheckForNewMail();
-@@ -7447,7 +7447,7 @@
- nsCString command(GetServerCommandTag());
- command += " create \"";
- command += escapedName;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- nsresult rv = SendData(command.get());
- if(NS_SUCCEEDED(rv))
-@@ -7550,7 +7550,7 @@
- nsCString command (GetServerCommandTag());
- command += " lsub \"\" \"";
- command += escapedPattern;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- PR_Free(boxnameWithOnlineDirectory);
-
-@@ -7579,7 +7579,7 @@
- command += useXLIST ?
- " xlist \"\" \"" : " list \"\" \"";
- command += escapedPattern;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- PR_Free(boxnameWithOnlineDirectory);
-
-@@ -7600,7 +7600,7 @@
- nsCString command (GetServerCommandTag());
- command += " subscribe \"";
- command += escapedName;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -7618,7 +7618,7 @@
- nsCString command (GetServerCommandTag());
- command += " unsubscribe \"";
- command += escapedName;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -7632,7 +7632,7 @@
- if (m_urlInProgress)
- return;
- nsCAutoString command (GetServerCommandTag());
-- command += " IDLE"CRLF;
-+ command += " IDLE" CRLF;
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
- {
-@@ -7659,7 +7659,7 @@
- nsCOMPtr <nsIAsyncInputStream> asyncInputStream = do_QueryInterface(m_inputStream);
- if (asyncInputStream)
- asyncInputStream->AsyncWait(nsnull, 0, 0, nsnull);
-- nsresult rv = SendData("DONE"CRLF);
-+ nsresult rv = SendData("DONE" CRLF);
- // set a short timeout if we don't want to wait for a response
- if (m_transport && !waitForResponse)
- m_transport->SetTimeout(nsISocketTransport::TIMEOUT_READ_WRITE, 5);
-@@ -7728,8 +7728,8 @@
- PRUint32 msgsHandled = 0;
- const char *formatString;
- formatString = (idsAreUid)
-- ? "%s uid store %s %s"CRLF
-- : "%s store %s %s"CRLF;
-+ ? "%s uid store %s %s" CRLF
-+ : "%s store %s %s" CRLF;
-
- do
- {
-diff -Nur comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp
---- comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-04-25 01:09:10.605469976 +0000
-+++ comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-04-25 01:09:45.931861509 +0000
-@@ -185,7 +185,7 @@
-
- NS_ASSERTION(aCurrentCommand && *aCurrentCommand != '\r' &&
- *aCurrentCommand != '\n' && *aCurrentCommand != ' ', "Invailid command string");
-- bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE"CRLF);
-+ bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE" CRLF);
- if (sendingIdleDone)
- fWaitingForMoreClientInput = false;
-
-diff -Nur comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp comm-release/mailnews/local/src/nsPop3Protocol.cpp
---- comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp 2012-04-25 01:09:10.492137526 +0000
-+++ comm-release/mailnews/local/src/nsPop3Protocol.cpp 2012-04-25 01:09:45.931861509 +0000
-@@ -2483,7 +2483,7 @@
- return(MK_OUT_OF_MEMORY);
- m_pop3ConData->next_state_after_response = POP3_GET_LIST;
- m_listpos = 0;
-- return SendData(m_url, "LIST"CRLF);
-+ return SendData(m_url, "LIST" CRLF);
- }
-
-
-diff -Nur comm-release.orig/mailnews/mime/src/mimedrft.cpp comm-release/mailnews/mime/src/mimedrft.cpp
---- comm-release.orig/mailnews/mime/src/mimedrft.cpp 2012-04-25 01:09:10.488804218 +0000
-+++ comm-release/mailnews/mime/src/mimedrft.cpp 2012-04-25 01:09:45.931861509 +0000
-@@ -1473,7 +1473,7 @@
- *newbody = 0;
- PL_strcatn(newbody, newbodylen, "<PRE>");
- PL_strcatn(newbody, newbodylen, body);
-- PL_strcatn(newbody, newbodylen, "</PRE>"CRLF);
-+ PL_strcatn(newbody, newbodylen, "</PRE>" CRLF);
- PR_Free(body);
- body = newbody;
- }
-diff -Nur comm-release.orig/mailnews/mime/src/mimemult.cpp comm-release/mailnews/mime/src/mimemult.cpp
---- comm-release.orig/mailnews/mime/src/mimemult.cpp 2012-04-25 01:09:10.488804218 +0000
-+++ comm-release/mailnews/mime/src/mimemult.cpp 2012-04-25 01:12:53.383735715 +0000
-@@ -280,7 +280,7 @@
- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
- MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: attachment; filename=\""));
- MimeWriteAString(obj, fileName);
-- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
- MimeWriteAString(obj, NS_LITERAL_CSTRING("X-Mozilla-External-Attachment-URL: "));
- MimeWriteAString(obj, obj->options->state->detachedFilePath);
- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
-@@ -293,10 +293,10 @@
- status = MimeWriteAString(obj, header);
- if (status < 0)
- return status;
-- status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"Content-Transfer-Encoding: 8bit"MSG_LINEBREAK));
-+ status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "Content-Transfer-Encoding: 8bit" MSG_LINEBREAK));
- MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: inline; filename=\"Deleted: "));
- MimeWriteAString(obj, fileName);
-- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"X-Mozilla-Altered: AttachmentDeleted; date=\""));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "X-Mozilla-Altered: AttachmentDeleted; date=\""));
- }
- nsCString result;
- char timeBuffer[128];
-@@ -306,8 +306,8 @@
- "%a %b %d %H:%M:%S %Y",
- &now);
- MimeWriteAString(obj, nsDependentCString(timeBuffer));
-- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
-- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK"You deleted an attachment from this message. The original MIME headers for the attachment were:"MSG_LINEBREAK));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK "You deleted an attachment from this message. The original MIME headers for the attachment were:" MSG_LINEBREAK));
- MimeHeaders_write_raw_headers(mult->hdrs, obj->options, false);
- }
- PRInt32 old_nchildren = container->nchildren;
diff --git a/libre/thunderbird-libre/gcc47.patch b/libre/thunderbird-libre/gcc47.patch
deleted file mode 100644
index 080502c23..000000000
--- a/libre/thunderbird-libre/gcc47.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-24 23:15:57.347221336 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-24 23:18:34.116046872 +0000
-@@ -5,6 +5,9 @@
- #include "base/file_util.h"
-
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include <string>
- #include <vector>
-diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-24 23:15:57.353887955 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-24 23:18:34.116046872 +0000
-@@ -6,6 +6,9 @@
-
- #include <errno.h>
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include "eintr_wrapper.h"
- #include "base/logging.h"
-diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc comm-release/mozilla/ipc/chromium/src/base/time_posix.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-24 23:15:57.350554645 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-24 23:18:34.116046872 +0000
-@@ -13,6 +13,9 @@
- #else
- #include <time.h>
- #endif
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include <limits>
-
diff --git a/libre/thunderbird-libre/mozconfig b/libre/thunderbird-libre/mozconfig
deleted file mode 100644
index 8950db703..000000000
--- a/libre/thunderbird-libre/mozconfig
+++ /dev/null
@@ -1,40 +0,0 @@
-mk_add_options MOZ_CO_PROJECT=mail
-ac_add_options --enable-application=mail
-
-ac_add_options --prefix=/usr
-ac_add_options --libdir=/usr/lib
-
-# System libraries
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
-ac_add_options --with-system-jpeg
-ac_add_options --with-system-zlib
-ac_add_options --with-system-bz2
-ac_add_options --with-system-png
-ac_add_options --with-system-libevent
-ac_add_options --with-system-libvpx
-ac_add_options --enable-system-hunspell
-ac_add_options --enable-system-sqlite
-ac_add_options --enable-system-ffi
-#ac_add_options --enable-system-cairo
-ac_add_options --enable-system-pixman
-ac_add_options --with-pthreads
-
-# Features
-ac_add_options --enable-official-branding
-ac_add_options --enable-safe-browsing
-ac_add_options --enable-startup-notification
-ac_add_options --enable-gio
-
-ac_add_options --disable-gnomevfs
-ac_add_options --disable-crashreporter
-ac_add_options --disable-updater
-ac_add_options --disable-tests
-ac_add_options --disable-mochitest
-ac_add_options --disable-installer
-
-# Optimization
-ac_add_options --enable-optimize
-
-export MOZILLA_OFFICIAL=1
-mk_add_options MOZILLA_OFFICIAL=1
diff --git a/libre/thunderbird-libre/rePKGBUILD b/libre/thunderbird-libre/rePKGBUILD
deleted file mode 100644
index 6a0c46222..000000000
--- a/libre/thunderbird-libre/rePKGBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# This is an example rePKGBUILD file. Use this as a start to creating your own,
-# and remove these comments. For more information, see 'man PKGBUILD'.
-# NOTE: Please fill out the license field for your package! If it is unknown,
-# then please put 'unknown'.
-
-# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
-source PKGBUILD
-unset build package md5sums source
-_repo=extra
-options=(!strip)
-source=(PKGBUILD
- http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT
- # files for pkg modifications
- channel-prefs.js)
-
-build() {
- cd "${srcdir}/"
- rm -v .{INSTALL,PKGINFO} ${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT
-
-# Recommend free addons
- cp --remove-destination "${srcdir}/channel-prefs.js" \
- "${srcdir}/usr/lib/thunderbird/defaults/pref/channel-prefs.js"
-}
-
-package() {
- find ${srcdir} -type l -maxdepth 1 -delete
- cd ${srcdir}
- cp -a ./* ${pkgdir}
-}
diff --git a/libre/thunderbird-libre/searchplugins-libre.patch b/libre/thunderbird-libre/searchplugins-libre.patch
deleted file mode 100644
index e466a9eb3..000000000
--- a/libre/thunderbird-libre/searchplugins-libre.patch
+++ /dev/null
@@ -1,144 +0,0 @@
---- comm-release.orig/mail/locales/en-US/searchplugins/list.txt 2012-03-27 15:56:00.000000000 -0300
-+++ comm-release/mail/locales/en-US/searchplugins/list.txt 2012-04-13 05:43:25.227475353 -0300
-@@ -1,7 +1,5 @@
--amazondotcom
--aol-web-search
--bing
-+duckduckgo-ssl
- eBay
--twitter
-+identica-notice-search
-+identica-people-search
- wikipedia
--yahoo
---- comm-release.orig/mail/locales/en-US/searchplugins/amazondotcom.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,11 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Amazon.com</ShortName>
--<Description>Amazon.com Search</Description>
--<InputEncoding>ISO-8859-1</InputEncoding>
--<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHgSURBVHjalFM9TNtQEP4cB7PwM1RITUXIgsRaYEEVEyKZwhiyZAQyd0BhpFOlIjoBqhjSqVQMoVMLLAjEwECCQJkSkBqJYDOAFOMKFSf28d7DTUxiUDnp/Pzeu/vuu7t3ICKF6SLTMv2/lB0fRWKfjwDm4JJisYh0Oo3fpZLYT0SjSCQS8JAFMADNDZ3NZsnf1taiqVTKi4nGASruk5lkkmTmMB6JUKFQqO+DfX1eABWeQoVR6f7HSdM0obqu48Yw8G1tDT82NsRd1TSbU9BbGPCog8PDj+jLzurFoAVgMh4XxoNDQ6SqKi0tL9eBvAB8zZwymYxYY7EYAoEA8vm82BNTg6XUIs0MeGTZoR1mhXSnwNl4pmAbjU7mcjkKhkL1ynMnntZ4OEw3VyrV8utk7s5TdW++0QXz+1i3P7IK36t+PCfVn1OQOoOA0gXr5DPak+cPXbBK+/T3S69AtY3LJ98vZ1or/iLr+pTuvr59/A6s003UdqZFJF/PCKQ3o5CUznoBST2AfbEF/9iqYEDaIfwj73VJPEfgNTe0tWNYR0uwy9uOW0OkrgHI7z5ADo2C7v48nLV3XHKAT+x/1m1sX58xsBxg8rZJrDYD8DHHp4aJj/MK09sXjPOt46PcCzAACXY8/u34wN0AAAAASUVORK5CYII=</Image>
--<Url type="text/html" method="GET" template="http://www.amazon.com/exec/obidos/external-search/">
-- <Param name="field-keywords" value="{searchTerms}"/>
-- <Param name="mode" value="blended"/>
--</Url>
--<SearchForm>http://www.amazon.com/</SearchForm>
--</SearchPlugin>
---- comm-release.orig/mail/locales/en-US/searchplugins/aol-web-search.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,10 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
--<os:ShortName>AOL Web Search</os:ShortName>
--<os:Description>The AOL Search engine delivers great web search results, enhanced by Google, plus relevant multimedia results delivered on a single page-so you can search less and discover more.</os:Description>
--<os:InputEncoding>UTF-8</os:InputEncoding>
--<os:Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%06bKGD%00%FF%00%FF%00%FF%A0%BD%A7%93%00%00%00%09pHYs%00%00%00H%00%00%00H%00F%C9k%3E%00%00%00%FAIDAT8%CB%9D%D3%B1q%C2%40%10%85%E1%0F%8F%0B%A0%04%97%00%1D%40%05%C6%01%B9%95*1%AA%C0C%05%E0%84%D4%E4%0A%0C%15H%EE%40%1D%98%12%D4%81%1D%E84%C8B%60%C9%2F9%AD%EE%EE%9F%DD%B7%7B%23%B0%DC%7D%A3D%22%8D%F7%06h%D4%00%D4*%02(%EF%03%B8%EB%F87Af%B9%7B%EF%03%B8o%C59%DE%A4%F1%E1%3F%25%EC%91%60%83%87%B0%FF%89m%F8%5Et%F9S%032%3C%E1%0B%E3%D6%99%02s%7C%848%91%C6E%1B0%C1%0B%9E%AFd%9A%E0%D4%80l%B1%96%C6eebE%9C%DC(%F51dRk%15%B2%FD%D5%85%B1a*%CF%80%AA%84%FC%C6%E1%23f%8Dx%8D)%E76n%10aq%C5%C4%03%B2%B0%26%D2%F8To%D6%80Y0q%8AW%97m%1C%23%EA%9A%CE%E6%20%AD%82%91%5D%83T%AA%BAp%A1%AE%B7Pk%2F%8D%A3%BF%9C%ECz%0B9%E6%7D.7K(%C3%3A%F89%FF%00_%82G%C3%D5%0E(%3E%00%00%00%00IEND%AEB%60%82</os:Image>
--<SearchForm>http://search.aol.com</SearchForm>
--<os:Url type="text/html" method="GET" template="http://search.aol.com/aol/search">
-- <os:Param name="query" value="{searchTerms}"/>
--</os:Url>
--</SearchPlugin>
---- comm-release.orig/mail/locales/en-US/searchplugins/bing.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,21 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
-- <ShortName>Bing</ShortName>
-- <Description>Bing. Search by Microsoft.</Description>
-- <InputEncoding>UTF-8</InputEncoding>
-- <Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAABMLAAATCwAAAAAAAAAAAAAVpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8ysf97zf+24//F6f/F6f/F6f+K0/9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP+Z2P/////////w+f/F6f/F6f/i9P/////////T7v9Bt/8Vpv8Vpv8Vpv8Vpv/T7v/////w+f97zf8Vpv8Vpv8Vpv8Vpv9QvP/T7v/////w+f9Bt/8Vpv8Vpv97zf////////9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP/i9P/////i9P8Vpv8Vpv+24//////i9P8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+K0/////////8Vpv8Vpv/F6f////////8krP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+n3v/////w+f8Vpv8Vpv/F6f////////+n3v8krP8Vpv8Vpv8Vpv8Vpv8Vpv9tx/////////+Z2P8Vpv8Vpv/F6f/////////////i9P+K0/9QvP9QvP9tx//F6f////////+n3v8Vpv8Vpv8Vpv/F6f/////T7v+Z2P/i9P////////////////////+24/9QvP8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8krP9QvP9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv9Bt/9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8AAHBsAABhdAAAbiAAAHJ0AABsaQAAdGkAACBDAABlbgAAUEEAAEVYAAAuQwAAOy4AAEU7AABBVAAAQ00AAC5W</Image>
-- <Url type="application/x-suggestions+json" template="http://api.bing.com/osjson.aspx">
-- <Param name="query" value="{searchTerms}"/>
-- <Param name="form" value="OSDJAS"/>
-- </Url>
-- <Url type="text/html" method="GET" template="http://www.bing.com/search">
-- <Param name="q" value="{searchTerms}"/>
-- <Param name="form" value="MOZESB"/>
-- <MozParam name="pc" condition="pref" pref="ms-pc"/>
-- </Url>
-- <Url type="application/x-moz-keywordsearch" method="GET" template="http://www.bing.com/search">
-- <Param name="q" value="{searchTerms}"/>
-- <Param name="form" value="MOZESB"/>
-- <MozParam name="pc" condition="pref" pref="ms-pc"/>
-- </Url>
-- <SearchForm>http://www.bing.com/search</SearchForm>
--</SearchPlugin>
---- comm-release.orig/mail/locales/en-US/searchplugins/google.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,14 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Google</ShortName>
--<Description>Google Search</Description>
--<InputEncoding>UTF-8</InputEncoding>
--<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image>
--<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&amp;hl={moz:locale}&amp;q={searchTerms}"/>
--<Url type="text/html" method="GET" template="http://www.google.com/search">
-- <Param name="q" value="{searchTerms}"/>
-- <Param name="ie" value="utf-8"/>
-- <Param name="oe" value="utf-8"/>
-- <Param name="aq" value="t"/>
--</Url>
--<SearchForm>http://www.google.com</SearchForm>
--</SearchPlugin>
---- comm-release.orig/mail/locales/en-US/searchplugins/twitter.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,10 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Twitter Search</ShortName>
--<Description>Realtime Twitter Search</Description>
--<InputEncoding>UTF-8</InputEncoding>
--<Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%20%00%00%00%20%08%06%00%00%00szz%F4%00%00%00%19tEXtSoftware%00Adobe%20ImageReadyq%C9e%3C%00%00%06%60IDATx%DA%ACWMLSY%14%BE%F7%F5%97%B6%96%96%16P%84q%02H%A0%01%85%08%26%C4%18%C9D%60%D8L2%0Bfm2%89%86%85%3B%E2l%5D%BA%9Ad%E2%CEY%B8%18c2a%8C%B3%10%893%02e%98d%F0%07%22c%D0%22%88%C4%01K)%D0%3F%FA%FF%DE%BB%F3%DD%F7Z%82%B5%16%A8%DE%E4%B6%AF%AF%EF%DD%F3%DDs%BEs%BEs)c%8C%F0A)%25%D9q%F9%F2eC%7F%7F%7F%1D.%BF%12%04%A1%F30F%22%91%10%A3%D1%E8%92%C1%60ponn%FE%3D99%E9%BDz%F5%AAL%3Ea(%B6%F9G%16%04%1F%83%83%83%E6%B1%B1%B1oVVV%86%E2%F1%F8%7F%C9d2%22%8Ab%2C%95J%C5p%1D%8A%C5b%9E%85%85%85%1F%EF%DF%BF%DF%06%90%9A%CF%0A%00%3B%D2%3Fy%F2%A4okkk%0C%06%A3%B8%CF%D22c1%91%B1%B8%C4%98%84kY%96%19%3C%B1%B6%B8%B8%F83F%13w%DE%E7%02%40%1F%3E%7CX%BB%BA%BAz%0B%C6%23%DCx%24%CD%D8%F30c%7F%FAe%E6%DE%90%D9%1B%40JIL%19%E1px%05%5E%F8a%60%60%C0%FE)%00%B4%D9%1F%D8%BDA%92%A4%13v%BB%FD%8CN%A7%B3D%25B%A6%02%8C%3C%0E2%12H1%A2%C1%3EkJ(%E9rP%D2x%88%92%92%92%92J%97%CB%F5%F5%F2%F2%F2%08%5E%0FcJ%C5%80%D8%01p%EC%D81%23%10%B94%1A%8DM%82C%BC%09BfB%8C%F8%93%8Cp~%8A%A0%DB%9B%18%23V%1D!%D5%00R%AA%D3j%9DNg%3D%80%B8n%DF%BE%ED%EB%EC%ECL%EE%5E8%18%0C%12%84J%9A%9B%9BK%5C%BAt)%BD'%00%B0%5D%83Lp%02%84%86%03%88%88%8C%84E%D5%B8%40%D4H%F3%FB~%98%89c%AF%1C%08%3CU%D6%D6%D6%F6%9D%CDfs%99%CD%E64%F8%B1%C3%07%AC%25%E9%F5%FA%8D%8E%8E%0E%CF%F8%F8%F8%FC%C4%C4%C4z%BE%AC%D1%E6%FC%D6dl%91%EC%93%BB%19%C6%C1H%84%E1%3F%CE%1BJ%60%C0%D4%D4%D4%D4%AB%D5j%BBr%C9%98%E1V%1A%E9%EB%F5%F9%7C%7F%9C%3Bw%EE%D7%8B%17%2F%CE%DE%B8q%23%5D%08%40%C1A3%93%7B%22%8DI9w%B5z%93H%88%E9%83g%E16-%1E%B6X%2C%0E%84%F5%08%C0V%9D%3F%7F%FE%A7%40%200%3D44%24%15%0D%20%81W%E7%B7%19%F1%26%0B%E7%9F%11%00%1CzJ%9Cz%22%80'%E5eee%3D%B5%B5%B5%1B%ED%ED%ED%EF%00%60%A5(%00%0A%B9%E0%C0%F1%0D%BEuV%F09%9E5%87%0D%94%9C%B6S%D2b%A5%C4d29%EB%EA%EA%BE%9E%99%99%19%ED%EA%EA%DAp%BB%DD%09%85%7B%C5%A4NB%DE%7Bn%23.%8BQF%FEA*%AF'9%5CJP%C6%2B0%DBz%7B%7BKv%C8_%0C%00%BA%8F)P%D5G%3E%A4%F1%26%08%23%AA%0E%D3%19%8D%C6%A3%C8%16%FD'%018%C8%1023%ABu(v4%9DNgq%1E%9C%03d%CF%E8%ABCfd%A7zV%80%8C%3C%23R%B2%9C%0E%85B%3E%BF%DF%9F%CE.s%60%00%DC%B5%A5Z%F5%BB0%09)%A92%12%D2%5E%8AL0%A8%85%01)%E8%F7z%BDsSSS%F1%A2%B2%80C%B6%A3%02v%97%0B%CA%A2TY7%0FG%A8%0A%E0%10%CA%9AE%ABz%C2%EF%DF%D8z%F4%E8%91%7Bzz%FA%19f%B2%E84%D4!%A0G%60%BC%D2H%F7%24%10%F7%12%E2-n%05%83%5BH%BF%C9%7B%F7%EE%0D%0D%0F%0F%2F%EF%16.m1%F1%CF%EA%C3%5Ea%E0%C6%D1%BC%2CC%07%1E%8C%8E%8E%FE~%E7%CE%9D%C7%3C%8BsI%BA%BB~%B3%BDH%26g%CA%F0~%DA%10%A6%F4%2Fr%10%A5x%B1%B2%B2r%1E%B7%22%B9%CB%EFx%00%82%22%A3%F5%8AB%C5d%BEC%BD%A0%C6.w%F0%02%F36F%88%13%5C0%EF%E1%3F%D4%7F%7DCCC3%A4%FEBww%B7%EE%E4%C9%93%B7%20%CD%DE%BC%1E%98%9D%9D%15%A1%E1k%40%2CrI%2CE%DE%98%81%20%D7%1B1D%EF)%9A%14tJ%8A4%87E.%DD%1FN~%9F%CB%B6N%AF7B%90N%94%97%97%7F%7F%FC%F8%F1o%A1%88%A5y%3D%80%064%05%97-!n%DB(%97%0E%0E%80%A7%91%2F%99%89%7Bf%F2%EB%95%04%23%0F%FC%10%1B4%2C%5Cth%1EO%F1M%1C%C6%FB'%AC%02%BE)%85%16%D4566%F6%9F%3Auj%1A%7F%3D%CD%12q%C7%03%D7%AF_O%A1%C1XX__%7F%89j%952a%85F%0BUr%5Ef%EF%97a%3Ex%B3%C2%3B%A4%97P%C6%17%91%0F%E7%BF%F0%D0%C4%86%3A%03)%A5%E1%D1Z%ADV%DEqu%5C%B9r%C5%94%8F%84%CC%E3%F1%AC%A3%85%FA%0BMD%88%A7%5B%BD%99%12%17%FA%3F%83%A0%F6%00%B9ZPP%2F%F0%40%1C%A2%B4%00A%E2z%C0%B5%00%C6%E1%08SCEE%85!o%16%A0e%8A%A0L%8E%A2-%9F%85%17%D2%A5%20%DAi%BB%A0%82%D0%A8%20%D8%01D%89%A7i%12%EEK%CA%AA%17%11b8B%B0%80g%DA%8Fi%81%84%5C%F5%A0%D9%FC%0D%C4%F9%02MDC5%E2%D8%E5%14%00%40%26sp%2B%EF%96%E5%7Dx%80e%AA%A4MG%89%15%7C%D2(%ED%1C%91%E1%DD%08%0E7%F2G%0B%D1%C8%C8H%B8%BE%BE~%18%00%8E%B6%B6%B6%5Ep8%1C55Po%B3F%20%D5FF%3C%88%EF%BB%04%CF%06%F6%5EX%F2%15%2B%1BD%A8%0DZ%C0%C9%C8%01%80%E8%DBkkk%8B(%C9%89%82b%04B%AEB%B7%7F%C1%A5%01%20x%D7%5B%E3%D0k4%ED6%AA%10%937%18%5C%E3%A3%A2%1A%16%9A%07%80%5E%A3vD_*%E0%15%E3%C9%D7%AF_%3F%C7%89%EA%196%19%CF%ED%5E%F3%F2%08%A7%9EZ%F4o%83x%F11NB!%14*)%7B%5CKH%EA%91%AD%D0%E4%CF%F1%C1%8D%BFz%F5%EA%D9%B5k%D7%06%AA%AA%AA%9C%D9%08r%BB4%DF%E9x7%88%BE%BE%3E%E7%D9%B3g%CF477%F7%B5%B4%B4t%22%24UHWd6%E5%E7%08%0Af%D3%DC%0D%F0%B5%F8%19%92%D7a%C4%3B%B6%B4%B4%F4%12%C7%BE%BB7o%DE%BC%3B%3F%3F%FF6%5B%03%F6%03%40%19%D5%D5%D5%25%3D%3D%3DG%90%C7%AD%A8%E9%EDh.%1BA%D4%0A%FC6%E1%5BGs%5E%86%5D%02%EDO%E3%3C%10x%81%81*%EB%86%18M%E1%DC%B9%86%BF%C5%DD%DE%FF_%80%01%00%94%13%9D%26%E9%81%03P%00%00%00%00IEND%AEB%60%82</Image>
--<Url type="text/html" method="get"
-- template="http://search.twitter.com/search?q={searchTerms}"/>
--<SearchForm>http://search.twitter.com/</SearchForm>
--</SearchPlugin>
--
---- comm-release.orig/mail/locales/en-US/searchplugins/yahoo.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,13 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Yahoo</ShortName>
--<Description>Yahoo Search</Description>
--<InputEncoding>UTF-8</InputEncoding>
--<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgJqAIoCdgCaAnoAnhKCAKYijgCuLpIAskKeALpSpgC+Yq4AzHy8ANqezgDmvt4A7tLqAPz5+wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKlRFIoABWAKERERE6ADcKMzzu2hOgAAhERK8REWCWBERE36ERMHMEREvo6iEgY6hEn6Pu0mAzqkz/xjMzoDNwpERERDoAMzAKlERIoAAzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AADAOQAAgBkAAAAPAAAACQAAAAkAAAAIAAAACAAAAAgAAIAYAADAOAAA//8AAP//AAD//wAA</Image>
--<Url type="application/x-suggestions+json" method="GET"
-- template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}" />
--<Url type="text/html" method="GET" template="http://search.yahoo.com/search">
-- <Param name="p" value="{searchTerms}"/>
-- <Param name="ei" value="UTF-8"/>
--</Url>
--<SearchForm>http://search.yahoo.com/</SearchForm>
--</SearchPlugin>
---- /dev/null 2012-04-12 23:52:53.981159155 -0300
-+++ comm-release/mail/locales/en-US/searchplugins/duckduckgo-ssl.xml 2012-04-09 14:43:56.000000000 -0300
-@@ -0,0 +1,11 @@
-+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-+<os:ShortName>DuckDuckGo RU SSL</os:ShortName>
-+<os:Description>DDG Search + Google's suggestions (Russian)</os:Description>
-+<os:InputEncoding>UTF-8</os:InputEncoding>
-+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</os:Image>
-+<SearchForm>https://duckduckgo.com/</SearchForm>
-+<os:Url type="text/html" method="GET" template="https://duckduckgo.com/?q={searchTerms}&amp;kl=ru-ru">
-+</os:Url><os:Url type="application/x-suggestions+json" method="GET" template="http://ddgg.nfriedly.com/complete/search?output=firefox&amp;hl=ru&amp;q={searchTerms}">
-+</os:Url><os:Url type="application/opensearchdescription+xml" method="GET" template="http://mycroft.mozdev.org/updateos.php/id0/duckduckgo_ssl.xml" rel="self">
-+</os:Url>
-+</SearchPlugin>
---- /dev/null 2012-04-12 23:52:53.981159155 -0300
-+++ comm-release/mail/locales/en-US/searchplugins/identica-notice-search.xml 2012-04-13 05:15:55.000000000 -0300
-@@ -0,0 +1,7 @@
-+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-+<os:ShortName>Identi.ca Notice Search</os:ShortName>
-+<os:InputEncoding>UTF-8</os:InputEncoding>
-+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image>
-+<os:Url type="text/html" method="GET" template="http://identi.ca/search/notice?q={searchTerms}">
-+</os:Url>
-+</SearchPlugin>
---- /dev/null 2012-04-12 23:52:53.981159155 -0300
-+++ comm-release/mail/locales/en-US/searchplugins/identica-people-search.xml 2012-04-13 05:15:53.000000000 -0300
-@@ -0,0 +1,7 @@
-+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-+<os:ShortName>Identi.ca People Search</os:ShortName>
-+<os:InputEncoding>UTF-8</os:InputEncoding>
-+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image>
-+<os:Url type="text/html" method="GET" template="http://identi.ca/search/people?q={searchTerms}">
-+</os:Url>
-+</SearchPlugin>
diff --git a/libre/thunderbird-libre/thunderbird-install-dir.patch b/libre/thunderbird-libre/thunderbird-install-dir.patch
deleted file mode 100644
index 74e692bf2..000000000
--- a/libre/thunderbird-libre/thunderbird-install-dir.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -Nur comm-beta.orig/config/autoconf.mk.in comm-beta/config/autoconf.mk.in
---- comm-beta.orig/config/autoconf.mk.in 2011-11-06 14:39:51.064983780 +0000
-+++ comm-beta/config/autoconf.mk.in 2011-11-06 14:42:57.216735333 +0000
-@@ -65,8 +65,8 @@
- mandir = @mandir@
- idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+installdir = $(libdir)/$(MOZ_APP_NAME)
-+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
-
- MOZDEPTH = $(DEPTH)/mozilla
- DIST = $(MOZDEPTH)/dist
-diff -Nur comm-beta.orig/mozilla/config/autoconf.mk.in comm-beta/mozilla/config/autoconf.mk.in
---- comm-beta.orig/mozilla/config/autoconf.mk.in 2011-11-06 14:39:41.771562967 +0000
-+++ comm-beta/mozilla/config/autoconf.mk.in 2011-11-06 14:44:18.404165515 +0000
-@@ -68,8 +68,8 @@
- mandir = @mandir@
- idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+installdir = $(libdir)/$(MOZ_APP_NAME)
-+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
-
- DIST = $(DEPTH)/dist
- LIBXUL_SDK = @LIBXUL_SDK@
-diff -Nur comm-beta.orig/mozilla/js/src/config/autoconf.mk.in comm-beta/mozilla/js/src/config/autoconf.mk.in
---- comm-beta.orig/mozilla/js/src/config/autoconf.mk.in 2011-11-06 14:39:48.014955070 +0000
-+++ comm-beta/mozilla/js/src/config/autoconf.mk.in 2011-11-06 14:44:32.977635875 +0000
-@@ -61,8 +61,8 @@
- datadir = @datadir@
- mandir = @mandir@
-
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+installdir = $(libdir)/$(MOZ_APP_NAME)
-+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
-
- TOP_DIST = @TOP_DIST@
- ifneq (,$(filter /%,$(TOP_DIST)))
diff --git a/libre/thunderbird-libre/thunderbird.desktop b/libre/thunderbird-libre/thunderbird.desktop
deleted file mode 100644
index a626e52ba..000000000
--- a/libre/thunderbird-libre/thunderbird.desktop
+++ /dev/null
@@ -1,13 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Name=Thunderbird
-Comment=Mail & News Reader
-GenericName=Mail Client & News Reader
-Exec=thunderbird %u
-TryExec=thunderbird
-Icon=thunderbird
-Terminal=false
-Type=Application
-Categories=Network;Email;
-MimeType=message/rfc822;x-scheme-handler/mailto;
-StartupNotify=true
diff --git a/libre/thunderbird-libre/thunderbird.install b/libre/thunderbird-libre/thunderbird.install
deleted file mode 100644
index 4d4a283db..000000000
--- a/libre/thunderbird-libre/thunderbird.install
+++ /dev/null
@@ -1,12 +0,0 @@
-post_install() {
- update-desktop-database -q
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
-}
-
-post_upgrade() {
- post_install
-}
-
-post_remove() {
- post_install
-}
diff --git a/libre/thunderbird-libre/vendor.js b/libre/thunderbird-libre/vendor.js
deleted file mode 100644
index 170b505a8..000000000
--- a/libre/thunderbird-libre/vendor.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Use LANG environment variable to choose locale
-pref("intl.locale.matchOS", true);
-
-// Disable default mailer checking.
-pref("mail.shell.checkDefaultMail", false);
-
-// Don't disable our bundled extensions in the application directory
-pref("extensions.autoDisableScopes", 11);
-pref("extensions.shownSelectionUI", true);
diff --git a/libre/unarchiver/PKGBUILD b/libre/unarchiver/PKGBUILD
deleted file mode 100644
index 9921c6d9d..000000000
--- a/libre/unarchiver/PKGBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Maintainer: Cedric Girard <girard.cedric@gmail.com>
-# Contributor: N30N <archlinux@alunamation.com>
-
-pkgname=unarchiver
-pkgver=3.2
-pkgrel=1
-pkgdesc="An Objective-C application for uncompressing archive files"
-arch=('x86_64' 'i686')
-url="http://unarchiver.c3.cx/"
-license=('LGPL2.1')
-depends=('gnustep-base' 'openssl' 'bzip2' 'icu' 'gcc-libs' 'zlib')
-makedepends=('gcc-objc')
-source=("http://theunarchiver.googlecode.com/files/TheUnarchiver${pkgver}_src.zip"
- "native_obj_exceptions.patch"
- "libz.patch")
-md5sums=('a23d7fbfe1f66b0950a359f206df5c8d'
- '4fa4ecc6e4ba14d3b6952d064e728511'
- '665d01bf93191cc6f57dc80d8c1d3d5a')
-
-build() {
- cd "$srcdir/The Unarchiver"
-
- patch -p1 < ../native_obj_exceptions.patch
- patch -p1 < ../libz.patch
-
- cd XADMaster
- . /usr/share/GNUstep/Makefiles/GNUstep.sh
- make -f Makefile.linux
-}
-
-package() {
- cd "$srcdir/The Unarchiver/XADMaster"
- install -d "$pkgdir/usr/bin/"
- install -m755 unar lsar "$pkgdir/usr/bin/"
-
- cd "$srcdir/The Unarchiver/Extra"
- install -d "$pkgdir/usr/share/man/man1"
- gzip -c lsar.1 > "$pkgdir/usr/share/man/man1"/lsar.1.gz
- gzip -c unar.1 > "$pkgdir/usr/share/man/man1"/unar.1.gz
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/libre/unarchiver/libz.patch b/libre/unarchiver/libz.patch
deleted file mode 100644
index acba51463..000000000
--- a/libre/unarchiver/libz.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Naur The Unarchiver/XADMaster/Makefile.linux The Unarchiver_patched/XADMaster/Makefile.linux
---- The Unarchiver/XADMaster/Makefile.linux 2011-04-27 03:32:21.000000000 +0200
-+++ The Unarchiver_patched/XADMaster/Makefile.linux 2011-12-22 10:56:13.749166606 +0100
-@@ -51,7 +51,8 @@
- -licuuc \
- -lobjc \
- -lstdc++ \
-- -lm
-+ -lm \
-+ -lz
-
- LDFLAGS = -Wl,--whole-archive \
- -fexceptions \
diff --git a/libre/unarchiver/native_obj_exceptions.patch b/libre/unarchiver/native_obj_exceptions.patch
deleted file mode 100644
index 9c84918b2..000000000
--- a/libre/unarchiver/native_obj_exceptions.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -Naur The Unarchiver/UniversalDetector/Makefile.linux The Unarchiver_patched/UniversalDetector/Makefile.linux
---- The Unarchiver/UniversalDetector/Makefile.linux 2011-04-27 03:32:21.000000000 +0200
-+++ The Unarchiver_patched/UniversalDetector/Makefile.linux 2011-12-22 10:48:32.138621163 +0100
-@@ -16,7 +16,6 @@
-
- GNUSTEP_OPTS = -DGNUSTEP \
- -DGNU_RUNTIME=1 \
-- -D_NATIVE_OBJC_EXCEPTIONS \
- -fgnu-runtime \
- -fexceptions \
- -fobjc-exceptions \
-diff -Naur The Unarchiver/XADMaster/Makefile.linux The Unarchiver_patched/XADMaster/Makefile.linux
---- The Unarchiver/XADMaster/Makefile.linux 2011-04-27 03:32:21.000000000 +0200
-+++ The Unarchiver_patched/XADMaster/Makefile.linux 2011-12-22 10:48:15.488721721 +0100
-@@ -16,7 +16,6 @@
-
- GNUSTEP_OPTS = -DGNUSTEP \
- -DGNU_RUNTIME=1 \
-- -D_NATIVE_OBJC_EXCEPTIONS \
- -fgnu-runtime \
- -fexceptions \
- -fobjc-exceptions \
diff --git a/libre/unrar-libre/PKGBUILD b/libre/unrar-libre/PKGBUILD
deleted file mode 100644
index e08e90220..000000000
--- a/libre/unrar-libre/PKGBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Joshua Ismael Haase Hernández <hahj87@gmail.com>
-_pkgbase=unrar
-pkgname=unrar-libre
-pkgver=0.0.1
-pkgrel=1
-pkgdesc="A free software library to decompress .rar files."
-arch=('i686' 'x86_64')
-url="http://gna.org/projects/unrar/"
-license=('GPL')
-provides=(unrar)
-conflicts=(unrar)
-replaces=(unrar)
-source=(http://download.gna.org/unrar/$_pkgbase-$pkgver.tar.gz)
-md5sums=('ac284a6739e3b8c794e7f9e8c20ed8f8') #generate with 'makepkg -g'
-
-build() {
- cd "$srcdir/$_pkgbase-$pkgver"
-
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "$srcdir/$_pkgbase-$pkgver"
-
- make DESTDIR="$pkgdir/" install
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/libre/unzip-libre/SRCBUILD b/libre/unzip-libre/SRCBUILD
deleted file mode 100644
index a9ada936b..000000000
--- a/libre/unzip-libre/SRCBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 70615 2010-02-27 15:46:11Z thayer $
-# Maintainer: Thayer Williams <thayer@archlinux.org>
-# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
-# Contributor: Robson Peixoto
-
-_pkgname=unzip
-pkgname=unzip-libre
-pkgver=6.0
-pkgrel=5
-pkgdesc="Unpacks .zip archives such as those made by PKZIP"
-arch=('any')
-url="http://www.info-zip.org/"
-license=('custom')
-depends=('bzip2' 'bash')
-source=('http://downloads.sourceforge.net/infozip/unzip60.tar.gz'
-# from http://bzr.trisquel.info/package-helpers/trunk/annotate/head%3A/helpers/natty/DATA/unzip/match.patch
- 'match.patch')
-md5sums=('62b490407489521db863b523a7f86375'
- 'e6d9f0c204c2abe6a57dc5e1637d5140')
-
-build() {
- cd ${srcdir}/${_pkgname}${pkgver/./}
-
- patch -Np0 -i ${srcdir}/match.patch
-}
-
-package() {
- export PKGEXT=.src.tar.xz
- export PKGDEST=${SRCDEST}
-
- mv ${srcdir}/${_pkgname}${pkgver/./} ${pkgdir}/
-
-}
diff --git a/libre/virtualbox-libre-modules-lts/60-vboxguest.rules b/libre/virtualbox-libre-modules-lts/60-vboxguest.rules
deleted file mode 100644
index 6285f7249..000000000
--- a/libre/virtualbox-libre-modules-lts/60-vboxguest.rules
+++ /dev/null
@@ -1,2 +0,0 @@
-ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
-ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
diff --git a/libre/virtualbox-libre-modules-lts/LocalConfig.kmk b/libre/virtualbox-libre-modules-lts/LocalConfig.kmk
deleted file mode 100644
index af79f90cd..000000000
--- a/libre/virtualbox-libre-modules-lts/LocalConfig.kmk
+++ /dev/null
@@ -1,19 +0,0 @@
-VBOX_WITH_ADDITION_DRIVERS =
-VBOX_WITH_INSTALLER = 1
-VBOX_WITH_LINUX_ADDITIONS = 1
-VBOX_WITH_X11_ADDITIONS =
-VBOX_WITH_TESTCASES =
-VBOX_WITH_TESTSUITE =
-VBOX_WITH_ORIGIN :=
-VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
-VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
-VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
-VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
-VBOX_PATH_APP_DOCS := /usr/share/virtualbox
-VBOX_WITH_REGISTRATION_REQUEST =
-VBOX_WITH_UPDATE_REQUEST =
-VBOX_WITH_VNC := 1
-VBOX_BLD_PYTHON = python2
-VBOX_JAVA_HOME = /usr/lib/jvm/java-6-openjdk
-VBOX_GCC_WERR =
-VBOX_GCC_WARN =
diff --git a/libre/virtualbox-libre-modules-lts/free-distros.patch b/libre/virtualbox-libre-modules-lts/free-distros.patch
deleted file mode 100644
index 47857e05d..000000000
--- a/libre/virtualbox-libre-modules-lts/free-distros.patch
+++ /dev/null
@@ -1,1383 +0,0 @@
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp 2012-07-25 14:51:03.569003667 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp 2012-07-25 14:51:03.652333615 -0300
-@@ -44,94 +44,38 @@
- * first matching string found, will be used. */
- static const osTypePattern gs_OSTypePattern[] =
- {
-- { QRegExp("DOS", Qt::CaseInsensitive), "DOS" },
-
-- /* Windows */
-- { QRegExp("Wi.*98", Qt::CaseInsensitive), "Windows98" },
-- { QRegExp("Wi.*95", Qt::CaseInsensitive), "Windows95" },
-- { QRegExp("Wi.*Me", Qt::CaseInsensitive), "WindowsMe" },
-- { QRegExp("(Wi.*NT)|(NT4)", Qt::CaseInsensitive), "WindowsNT4" },
-- { QRegExp("((Wi.*XP)|(\\bXP\\b)).*64", Qt::CaseInsensitive), "WindowsXP_64" },
-- { QRegExp("(Wi.*XP)|(\\bXP\\b)", Qt::CaseInsensitive), "WindowsXP" },
-- { QRegExp("((Wi.*2003)|(W2K3)).*64", Qt::CaseInsensitive), "Windows2003_64" },
-- { QRegExp("(Wi.*2003)|(W2K3)", Qt::CaseInsensitive), "Windows2003" },
-- { QRegExp("((Wi.*V)|(Vista)).*64", Qt::CaseInsensitive), "WindowsVista_64" },
-- { QRegExp("(Wi.*V)|(Vista)", Qt::CaseInsensitive), "WindowsVista" },
-- { QRegExp("((Wi.*2008)|(W2K8)).*64", Qt::CaseInsensitive), "Windows2008_64" },
-- { QRegExp("(Wi.*2008)|(W2K8)", Qt::CaseInsensitive), "Windows2008" },
-- { QRegExp("(Wi.*2000)|(W2K)", Qt::CaseInsensitive), "Windows2000" },
-- { QRegExp("(Wi.*7.*64)|(W7.*64)", Qt::CaseInsensitive), "Windows7_64" },
-- { QRegExp("(Wi.*7)|(W7)", Qt::CaseInsensitive), "Windows7" },
-- { QRegExp("(Wi.*8.*64)|(W8.*64)", Qt::CaseInsensitive), "Windows8_64" },
-- { QRegExp("(Wi.*8)|(W8)", Qt::CaseInsensitive), "Windows8" },
-- { QRegExp("Wi.*3", Qt::CaseInsensitive), "Windows31" },
-- { QRegExp("Wi", Qt::CaseInsensitive), "WindowsXP" },
--
-- /* Solaris */
-- { QRegExp("((Op.*So)|(os20[01][0-9])|(So.*1[01])|(India)|(Neva)).*64", Qt::CaseInsensitive), "OpenSolaris_64" },
-- { QRegExp("(Op.*So)|(os20[01][0-9])|(So.*1[01])|(India)|(Neva)", Qt::CaseInsensitive), "OpenSolaris" },
-- { QRegExp("So.*64", Qt::CaseInsensitive), "Solaris_64" },
-- { QRegExp("So", Qt::CaseInsensitive), "Solaris" },
--
-- /* OS/2 */
-- { QRegExp("OS[/|!-]{,1}2.*W.*4.?5", Qt::CaseInsensitive), "OS2Warp45" },
-- { QRegExp("OS[/|!-]{,1}2.*W.*4", Qt::CaseInsensitive), "OS2Warp4" },
-- { QRegExp("OS[/|!-]{,1}2.*W", Qt::CaseInsensitive), "OS2Warp3" },
-- { QRegExp("(OS[/|!-]{,1}2.*e)|(eCS.*)", Qt::CaseInsensitive), "OS2eCS" },
-- { QRegExp("OS[/|!-]{,1}2", Qt::CaseInsensitive), "OS2" },
--
-- /* Code names for Linux distributions */
-- { QRegExp("((edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)).*64", Qt::CaseInsensitive), "Ubuntu_64" },
-- { QRegExp("(edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)", Qt::CaseInsensitive), "Ubuntu" },
-- { QRegExp("((sarge)|(etch)|(lenny)|(squeeze)|(wheezy)|(sid)).*64", Qt::CaseInsensitive), "Debian_64" },
-- { QRegExp("(sarge)|(etch)|(lenny)|(squeeze)|(wheezy)|(sid)", Qt::CaseInsensitive), "Debian" },
-- { QRegExp("((moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)).*64", Qt::CaseInsensitive), "Fedora_64" },
-- { QRegExp("(moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)", Qt::CaseInsensitive), "Fedora" },
--
-- /* Regular names of Linux distributions */
-- { QRegExp("Arc.*64", Qt::CaseInsensitive), "ArchLinux_64" },
-- { QRegExp("Arc", Qt::CaseInsensitive), "ArchLinux" },
-- { QRegExp("Deb.*64", Qt::CaseInsensitive), "Debian_64" },
-- { QRegExp("Deb", Qt::CaseInsensitive), "Debian" },
-- { QRegExp("((SU)|(Nov)|(SLE)).*64", Qt::CaseInsensitive), "OpenSUSE_64" },
-- { QRegExp("(SU)|(Nov)|(SLE)", Qt::CaseInsensitive), "OpenSUSE" },
-- { QRegExp("Fe.*64", Qt::CaseInsensitive), "Fedora_64" },
-- { QRegExp("Fe", Qt::CaseInsensitive), "Fedora" },
-- { QRegExp("((Gen)|(Sab)).*64", Qt::CaseInsensitive), "Gentoo_64" },
-- { QRegExp("(Gen)|(Sab)", Qt::CaseInsensitive), "Gentoo" },
-- { QRegExp("Man.*64", Qt::CaseInsensitive), "Mandriva_64" },
-- { QRegExp("Man", Qt::CaseInsensitive), "Mandriva" },
-- { QRegExp("((Red)|(rhel)|(cen)).*64", Qt::CaseInsensitive), "RedHat_64" },
-- { QRegExp("(Red)|(rhel)|(cen)", Qt::CaseInsensitive), "RedHat" },
-- { QRegExp("Tur.*64", Qt::CaseInsensitive), "Turbolinux_64" },
-- { QRegExp("Tur", Qt::CaseInsensitive), "Turbolinux" },
-- { QRegExp("Ub.*64", Qt::CaseInsensitive), "Ubuntu_64" },
-- { QRegExp("Ub", Qt::CaseInsensitive), "Ubuntu" },
-- { QRegExp("Xa.*64", Qt::CaseInsensitive), "Xandros_64" },
-- { QRegExp("Xa", Qt::CaseInsensitive), "Xandros" },
-- { QRegExp("((Or)|(oel)).*64", Qt::CaseInsensitive), "Oracle_64" },
-- { QRegExp("(Or)|(oel)", Qt::CaseInsensitive), "Oracle" },
-- { QRegExp("((Li)|(lnx)).*2.?2", Qt::CaseInsensitive), "Linux22" },
-- { QRegExp("((Li)|(lnx)).*2.?4.*64", Qt::CaseInsensitive), "Linux24_64" },
-- { QRegExp("((Li)|(lnx)).*2.?4", Qt::CaseInsensitive), "Linux24" },
-- { QRegExp("((((Li)|(lnx)).*2.?6)|(LFS)).*64", Qt::CaseInsensitive), "Linux26_64" },
-- { QRegExp("(((Li)|(lnx)).*2.?6)|(LFS)", Qt::CaseInsensitive), "Linux26" },
-- { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "Linux26_64" },
-- { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "Linux26" },
-+ /* Code names for GNU/Linux distributions */
-+ { QRegExp("((Taranis)|(Dagda)|(Brigantia)).*64", Qt::CaseInsensitive), "Trisquel_64" },
-+ { QRegExp("(Taranis)|(Dagda)|(Brigantia)", Qt::CaseInsensitive), "Trisquel" },
-+ { QRegExp("((metad)|(parkes)|(three)).*64", Qt::CaseInsensitive), "gNewSense_64" },
-+ { QRegExp("(deltah)|(metad)|(parkes)|(three)", Qt::CaseInsensitive), "gNewSense" },
-+ { QRegExp("((90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)).*64", Qt::CaseInsensitive), "Blag_64" },
-+ { QRegExp("(90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)", Qt::CaseInsensitive), "Blag" },
-+
-+ /* Regular names of GNU/Linux distributions and GNU-Hurd */
-+ { QRegExp("Pa.*64", Qt::CaseInsensitive), "Parabola_64" },
-+ { QRegExp("Pa", Qt::CaseInsensitive), "Parabola" },
-+ { QRegExp("((gNe)|(new)|(Sen)).*64", Qt::CaseInsensitive), "gNewSense_64" },
-+ { QRegExp("(gNe)|(new)|(Sen)", Qt::CaseInsensitive), "gNewSense" },
-+ { QRegExp("Bla.*64", Qt::CaseInsensitive), "Blag_64" },
-+ { QRegExp("Bla", Qt::CaseInsensitive), "Blag" },
-+ { QRegExp("Dra.*64", Qt::CaseInsensitive), "Dragora_64" },
-+ { QRegExp("Dra", Qt::CaseInsensitive), "Dragora" },
-+ { QRegExp("((Utu)|(XS)).*64", Qt::CaseInsensitive), "Ututo_64" },
-+ { QRegExp("(Utu)|(XS)", Qt::CaseInsensitive), "Ututo" },
-+ { QRegExp("Mus.*64", Qt::CaseInsensitive), "Musix_64" },
-+ { QRegExp("Mus", Qt::CaseInsensitive), "Musix" },
-+ { QRegExp("Tri.*64", Qt::CaseInsensitive), "Trisquel_64" },
-+ { QRegExp("Tri", Qt::CaseInsensitive), "Trisquel" },
-+ { QRegExp("Dyn", Qt::CaseInsensitive), "Dynebolic" },
-+ { QRegExp("Ven", Qt::CaseInsensitive), "Venenux" },
-+ { QRegExp("GNU", Qt::CaseInsensitive), "GNU" },
-+ { QRegExp("Hu", Qt::CaseInsensitive), "GNUHurd" },
-+ { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "GNULinux_64" },
-+ { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "GNULinux" },
-
- /* Other */
-- { QRegExp("L4", Qt::CaseInsensitive), "L4" },
-- { QRegExp("((Fr.*B)|(fbsd)).*64", Qt::CaseInsensitive), "FreeBSD_64" },
-- { QRegExp("(Fr.*B)|(fbsd)", Qt::CaseInsensitive), "FreeBSD" },
-- { QRegExp("Op.*B.*64", Qt::CaseInsensitive), "OpenBSD_64" },
-- { QRegExp("Op.*B", Qt::CaseInsensitive), "OpenBSD" },
-- { QRegExp("Ne.*B.*64", Qt::CaseInsensitive), "NetBSD_64" },
-- { QRegExp("Ne.*B", Qt::CaseInsensitive), "NetBSD" },
-- { QRegExp("QN", Qt::CaseInsensitive), "QNX" },
-- { QRegExp("((Mac)|(Tig)|(Leop)|(osx)).*64", Qt::CaseInsensitive), "MacOS_64" },
-- { QRegExp("(Mac)|(Tig)|(Leop)|(osx)", Qt::CaseInsensitive), "MacOS" },
-- { QRegExp("Net", Qt::CaseInsensitive), "Netware" },
-- { QRegExp("Rocki", Qt::CaseInsensitive), "JRockitVE" },
- { QRegExp("Ot", Qt::CaseInsensitive), "Other" },
- };
-
---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/Settings.cpp 2012-07-25 15:14:50.498764160 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/xml/Settings.cpp 2012-07-25 15:14:50.548761649 -0300
-@@ -3227,40 +3227,18 @@
- } aConvertOSTypes[] =
- {
- { "unknown", "Other" },
-- { "dos", "DOS" },
-- { "win31", "Windows31" },
-- { "win95", "Windows95" },
-- { "win98", "Windows98" },
-- { "winme", "WindowsMe" },
-- { "winnt4", "WindowsNT4" },
-- { "win2k", "Windows2000" },
-- { "winxp", "WindowsXP" },
-- { "win2k3", "Windows2003" },
-- { "winvista", "WindowsVista" },
-- { "win2k8", "Windows2008" },
-- { "os2warp3", "OS2Warp3" },
-- { "os2warp4", "OS2Warp4" },
-- { "os2warp45", "OS2Warp45" },
-- { "ecs", "OS2eCS" },
-- { "linux22", "Linux22" },
-- { "linux24", "Linux24" },
-- { "linux26", "Linux26" },
-- { "archlinux", "ArchLinux" },
-- { "debian", "Debian" },
-- { "opensuse", "OpenSUSE" },
-- { "fedoracore", "Fedora" },
-- { "gentoo", "Gentoo" },
-- { "mandriva", "Mandriva" },
-- { "redhat", "RedHat" },
-- { "ubuntu", "Ubuntu" },
-- { "xandros", "Xandros" },
-- { "freebsd", "FreeBSD" },
-- { "openbsd", "OpenBSD" },
-- { "netbsd", "NetBSD" },
-- { "netware", "Netware" },
-- { "solaris", "Solaris" },
-- { "opensolaris", "OpenSolaris" },
-- { "l4", "L4" }
-+ { "gnu", "GNU" },
-+ { "gnuhurd", "GNUHurd" },
-+ { "gnulinux", "GNULinux" },
-+ { "parabola", "Parabola" },
-+ { "gnewsense", "gNewSense" },
-+ { "blag", "Blag" },
-+ { "dragora", "Dragora" },
-+ { "ututo", "Ututo" },
-+ { "musix", "Musix" },
-+ { "trisquel", "Trisquel" },
-+ { "dynebolic", "Dynebolic" },
-+ { "venenux", "Venenux" },
- };
-
- void MachineConfigFile::convertOldOSType_pre1_5(Utf8Str &str)
---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/SettingsConverter.xsl 2012-07-25 15:21:04.553581275 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/xml/SettingsConverter.xsl 2012-07-25 15:21:04.593579427 -0300
-@@ -729,40 +729,18 @@
- <xsl:attribute name="OSType">
- <xsl:choose>
- <xsl:when test="@OSType='unknown'">Other</xsl:when>
-- <xsl:when test="@OSType='dos'">DOS</xsl:when>
-- <xsl:when test="@OSType='win31'">Windows31</xsl:when>
-- <xsl:when test="@OSType='win95'">Windows95</xsl:when>
-- <xsl:when test="@OSType='win98'">Windows98</xsl:when>
-- <xsl:when test="@OSType='winme'">WindowsMe</xsl:when>
-- <xsl:when test="@OSType='winnt4'">WindowsNT4</xsl:when>
-- <xsl:when test="@OSType='win2k'">Windows2000</xsl:when>
-- <xsl:when test="@OSType='winxp'">WindowsXP</xsl:when>
-- <xsl:when test="@OSType='win2k3'">Windows2003</xsl:when>
-- <xsl:when test="@OSType='winvista'">WindowsVista</xsl:when>
-- <xsl:when test="@OSType='win2k8'">Windows2008</xsl:when>
-- <xsl:when test="@OSType='os2warp3'">OS2Warp3</xsl:when>
-- <xsl:when test="@OSType='os2warp4'">OS2Warp4</xsl:when>
-- <xsl:when test="@OSType='os2warp45'">OS2Warp45</xsl:when>
-- <xsl:when test="@OSType='ecs'">OS2eCS</xsl:when>
-- <xsl:when test="@OSType='linux22'">Linux22</xsl:when>
-- <xsl:when test="@OSType='linux24'">Linux24</xsl:when>
-- <xsl:when test="@OSType='linux26'">Linux26</xsl:when>
-- <xsl:when test="@OSType='archlinux'">ArchLinux</xsl:when>
-- <xsl:when test="@OSType='debian'">Debian</xsl:when>
-- <xsl:when test="@OSType='opensuse'">OpenSUSE</xsl:when>
-- <xsl:when test="@OSType='fedoracore'">Fedora</xsl:when>
-- <xsl:when test="@OSType='gentoo'">Gentoo</xsl:when>
-- <xsl:when test="@OSType='mandriva'">Mandriva</xsl:when>
-- <xsl:when test="@OSType='redhat'">RedHat</xsl:when>
-- <xsl:when test="@OSType='ubuntu'">Ubuntu</xsl:when>
-- <xsl:when test="@OSType='xandros'">Xandros</xsl:when>
-- <xsl:when test="@OSType='freebsd'">FreeBSD</xsl:when>
-- <xsl:when test="@OSType='openbsd'">OpenBSD</xsl:when>
-- <xsl:when test="@OSType='netbsd'">NetBSD</xsl:when>
-- <xsl:when test="@OSType='netware'">Netware</xsl:when>
-- <xsl:when test="@OSType='solaris'">Solaris</xsl:when>
-- <xsl:when test="@OSType='opensolaris'">OpenSolaris</xsl:when>
-- <xsl:when test="@OSType='l4'">L4</xsl:when>
-+ <xsl:when test="@OSType='gnu'">GNU</xsl:when>
-+ <xsl:when test="@OSType='gnuhurd'">GNUHurd</xsl:when>
-+ <xsl:when test="@OSType='gnulinux'">GNULinux</xsl:when>
-+ <xsl:when test="@OSType='parabola'">Parabola</xsl:when>
-+ <xsl:when test="@OSType='gnewsense'">gNewSense</xsl:when>
-+ <xsl:when test="@OSType='blag'">Blag</xsl:when>
-+ <xsl:when test="@OSType='dragora'">Dragora</xsl:when>
-+ <xsl:when test="@OSType='ututo'">Ututo</xsl:when>
-+ <xsl:when test="@OSType='musix'">Musix</xsl:when>
-+ <xsl:when test="@OSType='trisquel'">Trisquel</xsl:when>
-+ <xsl:when test="@OSType='dynebolic'">Dynebolic</xsl:when>
-+ <xsl:when test="@OSType='venenux'">Venenux</xsl:when>
- </xsl:choose>
- </xsl:attribute>
- <xsl:apply-templates select="@*[name()!='OSType']" mode="v1.5"/>
---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/VirtualBox-settings-common.xsd 2012-07-25 15:04:37.856003691 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/xml/VirtualBox-settings-common.xsd 2012-07-25 15:04:37.892668156 -0300
-@@ -137,75 +137,27 @@
- <xsd:simpleType name="TGuestOSType">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="Other"/>
-- <xsd:enumeration value="DOS"/>
-- <xsd:enumeration value="Netware"/>
-- <xsd:enumeration value="L4"/>
-- <xsd:enumeration value="Windows31"/>
-- <xsd:enumeration value="Windows95"/>
-- <xsd:enumeration value="Windows98"/>
-- <xsd:enumeration value="WindowsMe"/>
-- <xsd:enumeration value="WindowsNT4"/>
-- <xsd:enumeration value="Windows2000"/>
-- <xsd:enumeration value="WindowsXP"/>
-- <xsd:enumeration value="WindowsXP_64"/>
-- <xsd:enumeration value="Windows2003"/>
-- <xsd:enumeration value="Windows2003_64"/>
-- <xsd:enumeration value="WindowsVista"/>
-- <xsd:enumeration value="WindowsVista_64"/>
-- <xsd:enumeration value="Windows2008"/>
-- <xsd:enumeration value="Windows2008_64"/>
-- <xsd:enumeration value="Windows7"/>
-- <xsd:enumeration value="Windows7_64"/>
-- <xsd:enumeration value="Windows8"/>
-- <xsd:enumeration value="Windows8_64"/>
-- <xsd:enumeration value="WindowsNT"/>
-- <xsd:enumeration value="OS2Warp3"/>
-- <xsd:enumeration value="OS2Warp4"/>
-- <xsd:enumeration value="OS2Warp45"/>
-- <xsd:enumeration value="OS2eCS"/>
-- <xsd:enumeration value="OS2"/>
-- <xsd:enumeration value="Linux22"/>
-- <xsd:enumeration value="Linux24"/>
-- <xsd:enumeration value="Linux24_64"/>
-- <xsd:enumeration value="Linux26"/>
-- <xsd:enumeration value="Linux26_64"/>
-- <xsd:enumeration value="ArchLinux"/>
-- <xsd:enumeration value="ArchLinux_64"/>
-- <xsd:enumeration value="Debian"/>
-- <xsd:enumeration value="Debian_64"/>
-- <xsd:enumeration value="OpenSUSE"/>
-- <xsd:enumeration value="OpenSUSE_64"/>
-- <xsd:enumeration value="Fedora"/>
-- <xsd:enumeration value="Fedora_64"/>
-- <xsd:enumeration value="Gentoo"/>
-- <xsd:enumeration value="Gentoo_64"/>
-- <xsd:enumeration value="Mandriva"/>
-- <xsd:enumeration value="Mandriva_64"/>
-- <xsd:enumeration value="RedHat"/>
-- <xsd:enumeration value="RedHat_64"/>
-- <xsd:enumeration value="Turbolinux"/>
-- <xsd:enumeration value="Turbolinux_64"/>
-- <xsd:enumeration value="Ubuntu"/>
-- <xsd:enumeration value="Ubuntu_64"/>
-- <xsd:enumeration value="Xandros"/>
-- <xsd:enumeration value="Xandros_64"/>
-- <xsd:enumeration value="Oracle"/>
-- <xsd:enumeration value="Oracle_64"/>
-- <xsd:enumeration value="Linux"/>
-- <xsd:enumeration value="FreeBSD"/>
-- <xsd:enumeration value="FreeBSD_64"/>
-- <xsd:enumeration value="OpenBSD"/>
-- <xsd:enumeration value="OpenBSD_64"/>
-- <xsd:enumeration value="NetBSD"/>
-- <xsd:enumeration value="NetBSD_64"/>
-- <xsd:enumeration value="Solaris"/>
-- <xsd:enumeration value="Solaris_64"/>
-- <xsd:enumeration value="OpenSolaris"/>
-- <xsd:enumeration value="OpenSolaris_64"/>
-- <xsd:enumeration value="QNX"/>
-- <xsd:enumeration value="MacOS"/>
-- <xsd:enumeration value="MacOS_64"/>
-- <xsd:enumeration value="JRockitVE"/>
-+ <xsd:enumeration value="GNU"/>
-+ <xsd:enumeration value="GNU_64"/>
-+ <xsd:enumeration value="GNUHurd"/>
-+ <xsd:enumeration value="GNULinux"/>
-+ <xsd:enumeration value="GNULinux_64"/>
-+ <xsd:enumeration value="Parabola"/>
-+ <xsd:enumeration value="Parabola_64"/>
-+ <xsd:enumeration value="gNewSense"/>
-+ <xsd:enumeration value="gNewSense_64"/>
-+ <xsd:enumeration value="Blag"/>
-+ <xsd:enumeration value="Blag_64"/>
-+ <xsd:enumeration value="Dragora"/>
-+ <xsd:enumeration value="Dragora_64"/>
-+ <xsd:enumeration value="Ututo"/>
-+ <xsd:enumeration value="Ututo_64"/>
-+ <xsd:enumeration value="Musix"/>
-+ <xsd:enumeration value="Musix_64"/>
-+ <xsd:enumeration value="Trisquel"/>
-+ <xsd:enumeration value="Trisquel_64"/>
-+ <xsd:enumeration value="Dynebolic"/>
-+ <xsd:enumeration value="Venenux"/>
- </xsd:restriction>
- </xsd:simpleType>
-
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-25 15:40:56.733096866 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-25 15:40:56.796426519 -0300
-@@ -1,75 +1,27 @@
- <!DOCTYPE RCC><RCC version="1.0">
- <qresource prefix="/">
-- <file alias="os_archlinux.png">images/os_archlinux.png</file>
-- <file alias="os_archlinux_64.png">images/os_archlinux_64.png</file>
-- <file alias="os_debian.png">images/os_debian.png</file>
-- <file alias="os_debian_64.png">images/os_debian_64.png</file>
-- <file alias="os_dos.png">images/os_dos.png</file>
-- <file alias="os_fedora.png">images/os_fedora.png</file>
-- <file alias="os_fedora_64.png">images/os_fedora_64.png</file>
-- <file alias="os_freebsd.png">images/os_freebsd.png</file>
-- <file alias="os_freebsd_64.png">images/os_freebsd_64.png</file>
-- <file alias="os_gentoo.png">images/os_gentoo.png</file>
-- <file alias="os_gentoo_64.png">images/os_gentoo_64.png</file>
-- <file alias="os_jrockitve.png">images/os_jrockitve.png</file>
-- <file alias="os_l4.png">images/os_l4.png</file>
-- <file alias="os_linux_other.png">images/os_linux_other.png</file>
-- <file alias="os_linux22.png">images/os_linux22.png</file>
-- <file alias="os_linux24.png">images/os_linux24.png</file>
-- <file alias="os_linux24_64.png">images/os_linux24_64.png</file>
-- <file alias="os_linux26.png">images/os_linux26.png</file>
-- <file alias="os_linux26_64.png">images/os_linux26_64.png</file>
-- <file alias="os_mandriva.png">images/os_mandriva.png</file>
-- <file alias="os_mandriva_64.png">images/os_mandriva_64.png</file>
-- <file alias="os_netbsd.png">images/os_netbsd.png</file>
-- <file alias="os_netbsd_64.png">images/os_netbsd_64.png</file>
-- <file alias="os_netware.png">images/os_netware.png</file>
-- <file alias="os_openbsd.png">images/os_openbsd.png</file>
-- <file alias="os_openbsd_64.png">images/os_openbsd_64.png</file>
-- <file alias="os_oraclesolaris.png">images/os_oraclesolaris.png</file>
-- <file alias="os_oraclesolaris_64.png">images/os_oraclesolaris_64.png</file>
-- <file alias="os_opensuse.png">images/os_opensuse.png</file>
-- <file alias="os_opensuse_64.png">images/os_opensuse_64.png</file>
-- <file alias="os_os2_other.png">images/os_os2_other.png</file>
-- <file alias="os_os2ecs.png">images/os_os2ecs.png</file>
-- <file alias="os_os2warp3.png">images/os_os2warp3.png</file>
-- <file alias="os_os2warp4.png">images/os_os2warp4.png</file>
-- <file alias="os_os2warp45.png">images/os_os2warp45.png</file>
-+ <file alias="os_parabola.png">images/os_parabola.png</file>
-+ <file alias="os_parabola_64.png">images/os_parabola_64.png</file>
-+ <file alias="os_gnewsense.png">images/os_gnewsense.png</file>
-+ <file alias="os_gnewsense_64.png">images/os_gnewsense_64.png</file>
-+ <file alias="os_blag.png">images/os_blag.png</file>
-+ <file alias="os_blag_64.png">images/os_blag_64.png</file>
-+ <file alias="os_ututo.png">images/os_ututo.png</file>
-+ <file alias="os_ututo_64.png">images/os_ututo_64.png</file>
-+ <file alias="os_gnu.png">images/os_gnu.png</file>
-+ <file alias="os_gnu_64.png">images/os_gnu_64.png</file>
-+ <file alias="os_gnuhurd.png">images/os_gnuhurd.png</file>
-+ <file alias="os_gnulinux.png">images/os_gnulinux.png</file>
-+ <file alias="os_gnulinux_64.png">images/os_gnulinux_64.png</file>
-+ <file alias="os_musix.png">images/os_musix.png</file>
-+ <file alias="os_musix_64.png">images/os_musix_64.png</file>
-+ <file alias="os_dragora.png">images/os_dragora.png</file>
-+ <file alias="os_dragora_64.png">images/os_dragora_64.png</file>
- <file alias="os_other.png">images/os_other.png</file>
-- <file alias="os_qnx.png">images/os_qnx.png</file>
-- <file alias="os_redhat.png">images/os_redhat.png</file>
-- <file alias="os_redhat_64.png">images/os_redhat_64.png</file>
-- <file alias="os_turbolinux.png">images/os_turbolinux.png</file>
-- <file alias="os_turbolinux_64.png">images/os_turbolinux_64.png</file>
-- <file alias="os_solaris.png">images/os_solaris.png</file>
-- <file alias="os_solaris_64.png">images/os_solaris_64.png</file>
-- <file alias="os_ubuntu.png">images/os_ubuntu.png</file>
-- <file alias="os_ubuntu_64.png">images/os_ubuntu_64.png</file>
-- <file alias="os_win_other.png">images/os_win_other.png</file>
-- <file alias="os_win2k.png">images/os_win2k.png</file>
-- <file alias="os_win2k3.png">images/os_win2k3.png</file>
-- <file alias="os_win2k3_64.png">images/os_win2k3_64.png</file>
-- <file alias="os_win2k8.png">images/os_win2k8.png</file>
-- <file alias="os_win2k8_64.png">images/os_win2k8_64.png</file>
-- <file alias="os_win31.png">images/os_win31.png</file>
-- <file alias="os_win7.png">images/os_win7.png</file>
-- <file alias="os_win7_64.png">images/os_win7_64.png</file>
-- <file alias="os_win8.png">images/os_win8.png</file>
-- <file alias="os_win8_64.png">images/os_win8_64.png</file>
-- <file alias="os_win95.png">images/os_win95.png</file>
-- <file alias="os_win98.png">images/os_win98.png</file>
-- <file alias="os_winme.png">images/os_winme.png</file>
-- <file alias="os_winnt4.png">images/os_winnt4.png</file>
-- <file alias="os_winvista.png">images/os_winvista.png</file>
-- <file alias="os_winvista_64.png">images/os_winvista_64.png</file>
-- <file alias="os_winxp.png">images/os_winxp.png</file>
-- <file alias="os_winxp_64.png">images/os_winxp_64.png</file>
-- <file alias="os_xandros.png">images/os_xandros.png</file>
-- <file alias="os_xandros_64.png">images/os_xandros_64.png</file>
-- <file alias="os_oracle.png">images/os_oracle.png</file>
-- <file alias="os_oracle_64.png">images/os_oracle_64.png</file>
-- <file alias="os_macosx.png">images/os_macosx.png</file>
-- <file alias="os_macosx_64.png">images/os_macosx_64.png</file>
-+ <file alias="os_dynebolic.png">images/os_dynebolic.png</file>
-+ <file alias="os_venenux.png">images/os_venenux.png</file>
-+ <file alias="os_trisquel.png">images/os_trisquel.png</file>
-+ <file alias="os_trisquel_64.png">images/os_trisquel_64.png</file>
- <file alias="hd_16px.png">images/hd_16px.png</file>
- <file alias="hd_disabled_16px.png">images/hd_disabled_16px.png</file>
- <file alias="hd_32px.png">images/hd_32px.png</file>
---- VirtualBox-4.1.20.orig/src/VBox/Main/src-all/Global.cpp 2012-08-20 11:36:24.000000000 -0300
-+++ VirtualBox-4.1.20/src/VBox/Main/src-all/Global.cpp 2012-08-21 14:22:29.148190849 -0300
-@@ -35,284 +35,90 @@
- VBOXOSTYPE_Unknown, VBOXOSHINT_NONE,
- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows31, "Windows 3.1",
-- VBOXOSTYPE_Win31, VBOXOSHINT_NONE,
-- 32, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows95, "Windows 95",
-- VBOXOSTYPE_Win95, VBOXOSHINT_NONE,
-- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows98, "Windows 98",
-- VBOXOSTYPE_Win98, VBOXOSHINT_NONE,
-- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsMe, "Windows Me",
-- VBOXOSTYPE_WinMe, VBOXOSHINT_NONE,
-- 64, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT4, "Windows NT 4",
-- VBOXOSTYPE_WinNT4, VBOXOSHINT_NONE,
-- 128, 16, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2000, "Windows 2000",
-- VBOXOSTYPE_Win2k, VBOXOSHINT_USBTABLET,
-- 168, 16, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP, "Windows XP",
-- VBOXOSTYPE_WinXP, VBOXOSHINT_USBTABLET,
-- 192, 16, 10 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP_64, "Windows XP (64 bit)",
-- VBOXOSTYPE_WinXP_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 192, 16, 10 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003, "Windows 2003",
-- VBOXOSTYPE_Win2k3, VBOXOSHINT_USBTABLET,
-- 256, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003_64, "Windows 2003 (64 bit)",
-- VBOXOSTYPE_Win2k3_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 256, 16, 20 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista, "Windows Vista",
-- VBOXOSTYPE_WinVista, VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista_64, "Windows Vista (64 bit)",
-- VBOXOSTYPE_WinVista_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008, "Windows 2008",
-- VBOXOSTYPE_Win2k8, VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008_64, "Windows 2008 (64 bit)",
-- VBOXOSTYPE_Win2k8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7, "Windows 7",
-- VBOXOSTYPE_Win7, VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7_64, "Windows 7 (64 bit)",
-- VBOXOSTYPE_Win7_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows8, "Windows 8",
-- VBOXOSTYPE_Win8, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE,
-- 1024,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows8_64, "Windows 8 (64 bit)",
-- VBOXOSTYPE_Win8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 1536,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT, "Other Windows",
-- VBOXOSTYPE_WinNT, VBOXOSHINT_NONE,
-- 512, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux22, "Linux 2.2",
-- VBOXOSTYPE_Linux22, VBOXOSHINT_RTCUTC,
-- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux24, "Linux 2.4",
-- VBOXOSTYPE_Linux24, VBOXOSHINT_RTCUTC,
-- 128, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux24_64, "Linux 2.4 (64 bit)",
-- VBOXOSTYPE_Linux24_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
-- 128, 4, 4 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ { "GNU", "GNU", SchemaDefs_OSTypeId_GNU, "GNU",
-+ VBOXOSTYPE_GNU, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-+ { "GNU", "GNU", SchemaDefs_OSTypeId_GNU_64, "GNU (64 bit)",
-+ VBOXOSTYPE_GNU_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-+ { "GNU-Hurd", "GNU-Hurd", SchemaDefs_OSTypeId_GNUHurd, "GNU-Hurd",
-+ VBOXOSTYPE_GNUHurd, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux26, "Linux 2.6",
-- VBOXOSTYPE_Linux26, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_GNULinux, "GNU/Linux",
-+ VBOXOSTYPE_GNULinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux26_64, "Linux 2.6 (64 bit)",
-- VBOXOSTYPE_Linux26_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_GNULinux_64, "GNU/Linux (64 bit)",
-+ VBOXOSTYPE_GNULinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_ArchLinux, "Arch Linux",
-- VBOXOSTYPE_ArchLinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Parabola, "Parabola GNU/Linux-libre",
-+ VBOXOSTYPE_Parabola, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_ArchLinux_64, "Arch Linux (64 bit)",
-- VBOXOSTYPE_ArchLinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Parabola_64, "Parabola GNU/Linux-libre (64 bit)",
-+ VBOXOSTYPE_Parabola_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Debian, "Debian",
-- VBOXOSTYPE_Debian, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_gNewSense, "gNewSense",
-+ VBOXOSTYPE_gNewSense, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Debian_64, "Debian (64 bit)",
-- VBOXOSTYPE_Debian_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_gNewSense_64, "gNewSense (64 bit)",
-+ VBOXOSTYPE_gNewSense_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97},
-- { "Linux", "Linux", SchemaDefs_OSTypeId_OpenSUSE, "openSUSE",
-- VBOXOSTYPE_OpenSUSE, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_OpenSUSE_64, "openSUSE (64 bit)",
-- VBOXOSTYPE_OpenSUSE_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Fedora, "Fedora",
-- VBOXOSTYPE_FedoraCore, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Blag, "Blag Linux and GNU",
-+ VBOXOSTYPE_Blag, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Fedora_64, "Fedora (64 bit)",
-- VBOXOSTYPE_FedoraCore_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Blag_64, "Blag Linux and GNU (64 bit)",
-+ VBOXOSTYPE_Blag_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Gentoo, "Gentoo",
-- VBOXOSTYPE_Gentoo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dragora, "Dragora",
-+ VBOXOSTYPE_Dragora, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Gentoo_64, "Gentoo (64 bit)",
-- VBOXOSTYPE_Gentoo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dragora_64, "Dragora (64 bit)",
-+ VBOXOSTYPE_Dragora_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Mandriva, "Mandriva",
-- VBOXOSTYPE_Mandriva, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Mandriva_64, "Mandriva (64 bit)",
-- VBOXOSTYPE_Mandriva_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_RedHat, "Red Hat",
-- VBOXOSTYPE_RedHat, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Ututo, "Ututo XS",
-+ VBOXOSTYPE_Ututo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_RedHat_64, "Red Hat (64 bit)",
-- VBOXOSTYPE_RedHat_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Ututo_64, "Ututo XS (64 bit)",
-+ VBOXOSTYPE_Ututo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Turbolinux, "Turbolinux",
-- VBOXOSTYPE_Turbolinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Musix, "Musix",
-+ VBOXOSTYPE_Musix, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Turbolinux, "Turbolinux (64 bit)",
-- VBOXOSTYPE_Turbolinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Musix_64, "Musix (64 bit)",
-+ VBOXOSTYPE_Musix_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Ubuntu, "Ubuntu",
-- VBOXOSTYPE_Ubuntu, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET,
-+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97},
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Trisquel, "Trisquel",
-+ VBOXOSTYPE_Trisquel, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET,
- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Ubuntu_64, "Ubuntu (64 bit)",
-- VBOXOSTYPE_Ubuntu_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Trisquel_64, "Trisquel (64 bit)",
-+ VBOXOSTYPE_Trisquel_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Xandros, "Xandros",
-- VBOXOSTYPE_Xandros, VBOXOSHINT_RTCUTC,
-- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dynebolic, "Dyne:bolic",
-+ VBOXOSTYPE_Dynebolic, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Xandros_64, "Xandros (64 bit)",
-- VBOXOSTYPE_Xandros_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
-- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Venenux, "Venenux",
-+ VBOXOSTYPE_Venenux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle, "Oracle",
-- VBOXOSTYPE_Oracle, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE,
-- 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle_64, "Oracle (64 bit)",
-- VBOXOSTYPE_Oracle_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
-- 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux, "Other Linux",
-- VBOXOSTYPE_Linux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-- 256, 12, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Solaris", "Solaris", SchemaDefs_OSTypeId_Solaris, "Oracle Solaris 10 5/09 and earlier",
-- VBOXOSTYPE_Solaris, VBOXOSHINT_NONE,
-- 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Solaris", "Solaris", SchemaDefs_OSTypeId_Solaris_64, "Oracle Solaris 10 5/09 and earlier (64 bit)",
-- VBOXOSTYPE_Solaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
-- 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Solaris", "Solaris", SchemaDefs_OSTypeId_OpenSolaris, "Oracle Solaris 10 10/09 and later",
-- VBOXOSTYPE_OpenSolaris, VBOXOSHINT_USBTABLET,
-- 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Solaris", "Solaris", SchemaDefs_OSTypeId_OpenSolaris_64, "Oracle Solaris 10 10/09 and later (64 bit)",
-- VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_FreeBSD, "FreeBSD",
-- VBOXOSTYPE_FreeBSD, VBOXOSHINT_NONE,
-- 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_FreeBSD_64, "FreeBSD (64 bit)",
-- VBOXOSTYPE_FreeBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
-- 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_OpenBSD, "OpenBSD",
-- VBOXOSTYPE_OpenBSD, VBOXOSHINT_HWVIRTEX,
-- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_OpenBSD_64, "OpenBSD (64 bit)",
-- VBOXOSTYPE_OpenBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
-- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_NetBSD, "NetBSD",
-- VBOXOSTYPE_NetBSD, VBOXOSHINT_NONE,
-- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_NetBSD_64, "NetBSD (64 bit)",
-- VBOXOSTYPE_NetBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
-- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp3, "OS/2 Warp 3",
-- VBOXOSTYPE_OS2Warp3, VBOXOSHINT_HWVIRTEX,
-- 48, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp4, "OS/2 Warp 4",
-- VBOXOSTYPE_OS2Warp4, VBOXOSHINT_HWVIRTEX,
-- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp45, "OS/2 Warp 4.5",
-- VBOXOSTYPE_OS2Warp45, VBOXOSHINT_HWVIRTEX,
-- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2eCS, "eComStation",
-- VBOXOSTYPE_ECS, VBOXOSHINT_HWVIRTEX,
-- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2, "Other OS/2",
-- VBOXOSTYPE_OS2, VBOXOSHINT_HWVIRTEX,
-- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "MacOS", "Mac OS X", SchemaDefs_OSTypeId_MacOS, "Mac OS X Server",
-- VBOXOSTYPE_MacOS, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET,
-- 1024, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0,
-- StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA,
-- ChipsetType_ICH9, AudioControllerType_HDA },
-- { "MacOS", "Mac OS X", SchemaDefs_OSTypeId_MacOS_64, "Mac OS X Server (64 bit)",
-- VBOXOSTYPE_MacOS_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET,
-- 1024, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0,
-- StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA,
-- ChipsetType_ICH9, AudioControllerType_HDA },
-- { "Other", "Other", SchemaDefs_OSTypeId_DOS, "DOS",
-- VBOXOSTYPE_DOS, VBOXOSHINT_NONE,
-- 32, 4, 500 * _1M, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
-- { "Other", "Other", SchemaDefs_OSTypeId_Netware, "Netware",
-- VBOXOSTYPE_Netware, VBOXOSHINT_HWVIRTEX,
-- 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Other", "Other", SchemaDefs_OSTypeId_L4, "L4",
-- VBOXOSTYPE_L4, VBOXOSHINT_NONE,
-- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Other", "Other", SchemaDefs_OSTypeId_QNX, "QNX",
-- VBOXOSTYPE_QNX, VBOXOSHINT_HWVIRTEX,
-- 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Other", "Other", SchemaDefs_OSTypeId_JRockitVE, "JRockitVE",
-- VBOXOSTYPE_JRockitVE, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE,
-- 1024, 4, 8 * _1G64, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, AudioControllerType_AC97 },
- };
-
- /**
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-07-25 21:44:01.290876720 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-07-25 22:00:57.819380802 -0300
-@@ -4875,75 +4875,27 @@
- static const char *kOSTypeIcons [][2] =
- {
- {"Other", ":/os_other.png"},
-- {"DOS", ":/os_dos.png"},
-- {"Netware", ":/os_netware.png"},
-- {"L4", ":/os_l4.png"},
-- {"Windows31", ":/os_win31.png"},
-- {"Windows95", ":/os_win95.png"},
-- {"Windows98", ":/os_win98.png"},
-- {"WindowsMe", ":/os_winme.png"},
-- {"WindowsNT4", ":/os_winnt4.png"},
-- {"Windows2000", ":/os_win2k.png"},
-- {"WindowsXP", ":/os_winxp.png"},
-- {"WindowsXP_64", ":/os_winxp_64.png"},
-- {"Windows2003", ":/os_win2k3.png"},
-- {"Windows2003_64", ":/os_win2k3_64.png"},
-- {"WindowsVista", ":/os_winvista.png"},
-- {"WindowsVista_64", ":/os_winvista_64.png"},
-- {"Windows2008", ":/os_win2k8.png"},
-- {"Windows2008_64", ":/os_win2k8_64.png"},
-- {"Windows7", ":/os_win7.png"},
-- {"Windows7_64", ":/os_win7_64.png"},
-- {"Windows8", ":/os_win8.png"},
-- {"Windows8_64", ":/os_win8_64.png"},
-- {"WindowsNT", ":/os_win_other.png"},
-- {"OS2Warp3", ":/os_os2warp3.png"},
-- {"OS2Warp4", ":/os_os2warp4.png"},
-- {"OS2Warp45", ":/os_os2warp45.png"},
-- {"OS2eCS", ":/os_os2ecs.png"},
-- {"OS2", ":/os_os2_other.png"},
-- {"Linux22", ":/os_linux22.png"},
-- {"Linux24", ":/os_linux24.png"},
-- {"Linux24_64", ":/os_linux24_64.png"},
-- {"Linux26", ":/os_linux26.png"},
-- {"Linux26_64", ":/os_linux26_64.png"},
-- {"ArchLinux", ":/os_archlinux.png"},
-- {"ArchLinux_64", ":/os_archlinux_64.png"},
-- {"Debian", ":/os_debian.png"},
-- {"Debian_64", ":/os_debian_64.png"},
-- {"OpenSUSE", ":/os_opensuse.png"},
-- {"OpenSUSE_64", ":/os_opensuse_64.png"},
-- {"Fedora", ":/os_fedora.png"},
-- {"Fedora_64", ":/os_fedora_64.png"},
-- {"Gentoo", ":/os_gentoo.png"},
-- {"Gentoo_64", ":/os_gentoo_64.png"},
-- {"Mandriva", ":/os_mandriva.png"},
-- {"Mandriva_64", ":/os_mandriva_64.png"},
-- {"RedHat", ":/os_redhat.png"},
-- {"RedHat_64", ":/os_redhat_64.png"},
-- {"Turbolinux", ":/os_turbolinux.png"},
-- {"Turbolinux_64", ":/os_turbolinux_64.png"},
-- {"Ubuntu", ":/os_ubuntu.png"},
-- {"Ubuntu_64", ":/os_ubuntu_64.png"},
-- {"Xandros", ":/os_xandros.png"},
-- {"Xandros_64", ":/os_xandros_64.png"},
-- {"Oracle", ":/os_oracle.png"},
-- {"Oracle_64", ":/os_oracle_64.png"},
-- {"Linux", ":/os_linux_other.png"},
-- {"FreeBSD", ":/os_freebsd.png"},
-- {"FreeBSD_64", ":/os_freebsd_64.png"},
-- {"OpenBSD", ":/os_openbsd.png"},
-- {"OpenBSD_64", ":/os_openbsd_64.png"},
-- {"NetBSD", ":/os_netbsd.png"},
-- {"NetBSD_64", ":/os_netbsd_64.png"},
-- {"Solaris", ":/os_solaris.png"},
-- {"Solaris_64", ":/os_solaris_64.png"},
-- {"OpenSolaris", ":/os_oraclesolaris.png"},
-- {"OpenSolaris_64", ":/os_oraclesolaris_64.png"},
-- {"QNX", ":/os_qnx.png"},
-- {"MacOS", ":/os_macosx.png"},
-- {"MacOS_64", ":/os_macosx_64.png"},
-- {"JRockitVE", ":/os_jrockitve.png"},
-+ {"GNU", ":/os_gnu.png"},
-+ {"GNU_64", ":/os_gnu_64.png"},
-+ {"GNUHurd", ":/os_gnuhurd.png"},
-+ {"GNULinux", ":/os_gnulinux.png"},
-+ {"GNULinux_64", ":/os_gnulinux_64.png"},
-+ {"Parabola", ":/os_parabola.png"},
-+ {"Parabola_64", ":/os_parabola_64.png"},
-+ {"gNewSense", ":/os_gnewsense.png"},
-+ {"gNewSense_64", ":/os_gnewsense_64.png"},
-+ {"Blag", ":/os_blag.png"},
-+ {"Blag_64", ":/os_blag_64.png"},
-+ {"Dragora", ":/os_dragora.png"},
-+ {"Dragora_64", ":/os_dragora_64.png"},
-+ {"Ututo", ":/os_ututo.png"},
-+ {"Ututo_64", ":/os_ututo_64.png"},
-+ {"Musix", ":/os_musix.png"},
-+ {"Musix_64", ":/os_musix_64.png"},
-+ {"Trisquel", ":/os_trisquel.png"},
-+ {"Trisquel_64", ":/os_trisquel_64.png"},
-+ {"Dynebolic", ":/os_dynebolic.png"},
-+ {"Venenux", ":/os_venenux.png"},
- };
- for (uint n = 0; n < SIZEOF_ARRAY (kOSTypeIcons); ++ n)
- {
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp.orig 2012-06-20 10:16:38.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp 2012-07-25 22:07:51.232436783 -0300
-@@ -192,17 +192,10 @@
- if (typeIndex != -1)
- mCbType->setCurrentIndex (typeIndex);
- }
-- /* Or select WinXP item for Windows family as default */
-- else if (familyId == "Windows")
-+ /* Or select Parabola GNU/Linux-libre item for GNU/Linux family as default */
-+ else if (familyId == "GNU/Linux")
- {
-- int xpIndex = mCbType->findData ("WindowsXP", RoleTypeID);
-- if (xpIndex != -1)
-- mCbType->setCurrentIndex (xpIndex);
-- }
-- /* Or select Ubuntu item for Linux family as default */
-- else if (familyId == "Linux")
-- {
-- int ubIndex = mCbType->findData ("Ubuntu", RoleTypeID);
-+ int ubIndex = mCbType->findData ("Parabola", RoleTypeID);
- if (ubIndex != -1)
- mCbType->setCurrentIndex (ubIndex);
- }
---- VirtualBox-4.1.18.orig/include/VBox/ostypes.h 2012-06-20 10:07:51.000000000 -0300
-+++ VirtualBox-4.1.18/include/VBox/ostypes.h 2012-07-25 23:20:57.322757456 -0300
-@@ -43,77 +43,27 @@
- typedef enum VBOXOSTYPE
- {
- VBOXOSTYPE_Unknown = 0,
-- VBOXOSTYPE_DOS = 0x10000,
-- VBOXOSTYPE_Win31 = 0x15000,
-- VBOXOSTYPE_Win9x = 0x20000,
-- VBOXOSTYPE_Win95 = 0x21000,
-- VBOXOSTYPE_Win98 = 0x22000,
-- VBOXOSTYPE_WinMe = 0x23000,
-- VBOXOSTYPE_WinNT = 0x30000,
-- VBOXOSTYPE_WinNT4 = 0x31000,
-- VBOXOSTYPE_Win2k = 0x32000,
-- VBOXOSTYPE_WinXP = 0x33000,
-- VBOXOSTYPE_WinXP_x64 = 0x33100,
-- VBOXOSTYPE_Win2k3 = 0x34000,
-- VBOXOSTYPE_Win2k3_x64 = 0x34100,
-- VBOXOSTYPE_WinVista = 0x35000,
-- VBOXOSTYPE_WinVista_x64 = 0x35100,
-- VBOXOSTYPE_Win2k8 = 0x36000,
-- VBOXOSTYPE_Win2k8_x64 = 0x36100,
-- VBOXOSTYPE_Win7 = 0x37000,
-- VBOXOSTYPE_Win7_x64 = 0x37100,
-- VBOXOSTYPE_Win8 = 0x38000,
-- VBOXOSTYPE_Win8_x64 = 0x38100,
-- VBOXOSTYPE_OS2 = 0x40000,
-- VBOXOSTYPE_OS2Warp3 = 0x41000,
-- VBOXOSTYPE_OS2Warp4 = 0x42000,
-- VBOXOSTYPE_OS2Warp45 = 0x43000,
-- VBOXOSTYPE_ECS = 0x44000,
-- VBOXOSTYPE_Linux = 0x50000,
-- VBOXOSTYPE_Linux_x64 = 0x50100,
-- VBOXOSTYPE_Linux22 = 0x51000,
-- VBOXOSTYPE_Linux24 = 0x52000,
-- VBOXOSTYPE_Linux24_x64 = 0x52100,
-- VBOXOSTYPE_Linux26 = 0x53000,
-- VBOXOSTYPE_Linux26_x64 = 0x53100,
-- VBOXOSTYPE_ArchLinux = 0x54000,
-- VBOXOSTYPE_ArchLinux_x64 = 0x54100,
-- VBOXOSTYPE_Debian = 0x55000,
-- VBOXOSTYPE_Debian_x64 = 0x55100,
-- VBOXOSTYPE_OpenSUSE = 0x56000,
-- VBOXOSTYPE_OpenSUSE_x64 = 0x56100,
-- VBOXOSTYPE_FedoraCore = 0x57000,
-- VBOXOSTYPE_FedoraCore_x64 = 0x57100,
-- VBOXOSTYPE_Gentoo = 0x58000,
-- VBOXOSTYPE_Gentoo_x64 = 0x58100,
-- VBOXOSTYPE_Mandriva = 0x59000,
-- VBOXOSTYPE_Mandriva_x64 = 0x59100,
-- VBOXOSTYPE_RedHat = 0x5A000,
-- VBOXOSTYPE_RedHat_x64 = 0x5A100,
-- VBOXOSTYPE_Turbolinux = 0x5B000,
-- VBOXOSTYPE_Turbolinux_x64 = 0x5B100,
-- VBOXOSTYPE_Ubuntu = 0x5C000,
-- VBOXOSTYPE_Ubuntu_x64 = 0x5C100,
-- VBOXOSTYPE_Xandros = 0x5D000,
-- VBOXOSTYPE_Xandros_x64 = 0x5D100,
-- VBOXOSTYPE_Oracle = 0x5E000,
-- VBOXOSTYPE_Oracle_x64 = 0x5E100,
-- VBOXOSTYPE_FreeBSD = 0x60000,
-- VBOXOSTYPE_FreeBSD_x64 = 0x60100,
-- VBOXOSTYPE_OpenBSD = 0x61000,
-- VBOXOSTYPE_OpenBSD_x64 = 0x61100,
-- VBOXOSTYPE_NetBSD = 0x62000,
-- VBOXOSTYPE_NetBSD_x64 = 0x62100,
-- VBOXOSTYPE_Netware = 0x70000,
-- VBOXOSTYPE_Solaris = 0x80000,
-- VBOXOSTYPE_Solaris_x64 = 0x80100,
-- VBOXOSTYPE_OpenSolaris = 0x81000,
-- VBOXOSTYPE_OpenSolaris_x64 = 0x81100,
-- VBOXOSTYPE_L4 = 0x90000,
-- VBOXOSTYPE_QNX = 0xA0000,
-- VBOXOSTYPE_MacOS = 0xB0000,
-- VBOXOSTYPE_MacOS_x64 = 0xB0100,
-- VBOXOSTYPE_JRockitVE = 0xC0000,
-+ VBOXOSTYPE_GNU = 0x10000,
-+ VBOXOSTYPE_GNU_x64 = 0x10100,
-+ VBOXOSTYPE_GNUHurd = 0x20000,
-+ VBOXOSTYPE_GNULinux = 0x30000,
-+ VBOXOSTYPE_GNULinux_x64 = 0x30100,
-+ VBOXOSTYPE_Parabola = 0x31000,
-+ VBOXOSTYPE_Parabola_x64 = 0x31100,
-+ VBOXOSTYPE_gNewSense = 0x32000,
-+ VBOXOSTYPE_gNewSense_x64 = 0x32100,
-+ VBOXOSTYPE_Blag = 0x33000,
-+ VBOXOSTYPE_Blag_x64 = 0x33100,
-+ VBOXOSTYPE_Dragora = 0x34000,
-+ VBOXOSTYPE_Dragora_x64 = 0x34100,
-+ VBOXOSTYPE_Ututo = 0x35000,
-+ VBOXOSTYPE_Ututo_x64 = 0x35100,
-+ VBOXOSTYPE_Musix = 0x36000,
-+ VBOXOSTYPE_Musix_x64 = 0x36100,
-+ VBOXOSTYPE_Trisquel = 0x37000,
-+ VBOXOSTYPE_Trisquel_x64 = 0x37100,
-+ VBOXOSTYPE_Dynebolic = 0x38000,
-+ VBOXOSTYPE_Venenux = 0x39000,
- /** The bit number which indicates 64-bit or 32-bit. */
- #define VBOXOSTYPE_x64_BIT 8
- /** The mask which indicates 64-bit. */
-@@ -129,16 +79,11 @@
- typedef enum VBOXOSFAMILY
- {
- VBOXOSFAMILY_Unknown = 0,
-- VBOXOSFAMILY_Windows32 = 1,
-- VBOXOSFAMILY_Windows64 = 2,
-- VBOXOSFAMILY_Linux32 = 3,
-- VBOXOSFAMILY_Linux64 = 4,
-- VBOXOSFAMILY_FreeBSD32 = 5,
-- VBOXOSFAMILY_FreeBSD64 = 6,
-- VBOXOSFAMILY_Solaris32 = 7,
-- VBOXOSFAMILY_Solaris64 = 8,
-- VBOXOSFAMILY_MacOSX32 = 9,
-- VBOXOSFAMILY_MacOSX64 = 10,
-+ VBOXOSFAMILY_GNU32 = 1,
-+ VBOXOSFAMILY_GNU64 = 2,
-+ VBOXOSFAMILY_GNUHurd = 3,
-+ VBOXOSFAMILY_GNULinux32 = 4,
-+ VBOXOSFAMILY_GNULinux64 = 5,
- /** The usual 32-bit hack. */
- VBOXOSFAMILY_32BIT_HACK = 0x7fffffff
- } VBOXOSFAMILY;
---- VirtualBox-4.1.18.orig/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-06-20 10:17:35.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-07-26 01:28:50.033551279 -0300
-@@ -49,94 +49,33 @@
- g_osTypes[] =
- {
- { ovf::CIMOSType_CIMOS_Unknown, SchemaDefs_OSTypeId_Other },
-- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2 },
-- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp3 },
-- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp4 },
-- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp45 },
-- { ovf::CIMOSType_CIMOS_MSDOS, SchemaDefs_OSTypeId_DOS },
-- { ovf::CIMOSType_CIMOS_WIN3x, SchemaDefs_OSTypeId_Windows31 },
-- { ovf::CIMOSType_CIMOS_WIN95, SchemaDefs_OSTypeId_Windows95 },
-- { ovf::CIMOSType_CIMOS_WIN98, SchemaDefs_OSTypeId_Windows98 },
-- { ovf::CIMOSType_CIMOS_WINNT, SchemaDefs_OSTypeId_WindowsNT },
-- { ovf::CIMOSType_CIMOS_WINNT, SchemaDefs_OSTypeId_WindowsNT4 },
-- { ovf::CIMOSType_CIMOS_NetWare, SchemaDefs_OSTypeId_Netware },
-- { ovf::CIMOSType_CIMOS_NovellOES, SchemaDefs_OSTypeId_Netware },
-- { ovf::CIMOSType_CIMOS_Solaris, SchemaDefs_OSTypeId_Solaris },
-- { ovf::CIMOSType_CIMOS_SunOS, SchemaDefs_OSTypeId_Solaris },
-- { ovf::CIMOSType_CIMOS_FreeBSD, SchemaDefs_OSTypeId_FreeBSD },
-- { ovf::CIMOSType_CIMOS_NetBSD, SchemaDefs_OSTypeId_NetBSD },
-- { ovf::CIMOSType_CIMOS_QNX, SchemaDefs_OSTypeId_QNX },
-- { ovf::CIMOSType_CIMOS_Windows2000, SchemaDefs_OSTypeId_Windows2000 },
-- { ovf::CIMOSType_CIMOS_WindowsMe, SchemaDefs_OSTypeId_WindowsMe },
-- { ovf::CIMOSType_CIMOS_OpenBSD, SchemaDefs_OSTypeId_OpenBSD },
-- { ovf::CIMOSType_CIMOS_WindowsXP, SchemaDefs_OSTypeId_WindowsXP },
-- { ovf::CIMOSType_CIMOS_WindowsXPEmbedded, SchemaDefs_OSTypeId_WindowsXP },
-- { ovf::CIMOSType_CIMOS_WindowsEmbeddedforPointofService, SchemaDefs_OSTypeId_WindowsXP },
-- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003, SchemaDefs_OSTypeId_Windows2003 },
-- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003_64, SchemaDefs_OSTypeId_Windows2003_64 },
-- { ovf::CIMOSType_CIMOS_WindowsXP_64, SchemaDefs_OSTypeId_WindowsXP_64 },
-- { ovf::CIMOSType_CIMOS_WindowsVista, SchemaDefs_OSTypeId_WindowsVista },
-- { ovf::CIMOSType_CIMOS_WindowsVista_64, SchemaDefs_OSTypeId_WindowsVista_64 },
-- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008, SchemaDefs_OSTypeId_Windows2008 },
-- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008_64, SchemaDefs_OSTypeId_Windows2008_64 },
-- { ovf::CIMOSType_CIMOS_FreeBSD_64, SchemaDefs_OSTypeId_FreeBSD_64 },
-- { ovf::CIMOSType_CIMOS_MACOS, SchemaDefs_OSTypeId_MacOS },
-- { ovf::CIMOSType_CIMOS_MACOS, SchemaDefs_OSTypeId_MacOS_64 }, // there is no CIM 64-bit type for this
--
-- // Linuxes
-- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux, SchemaDefs_OSTypeId_RedHat },
-- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux_64, SchemaDefs_OSTypeId_RedHat_64 },
-- { ovf::CIMOSType_CIMOS_Solaris_64, SchemaDefs_OSTypeId_Solaris_64 },
-- { ovf::CIMOSType_CIMOS_SUSE, SchemaDefs_OSTypeId_OpenSUSE },
-- { ovf::CIMOSType_CIMOS_SLES, SchemaDefs_OSTypeId_OpenSUSE },
-- { ovf::CIMOSType_CIMOS_NovellLinuxDesktop, SchemaDefs_OSTypeId_OpenSUSE },
-- { ovf::CIMOSType_CIMOS_SUSE_64, SchemaDefs_OSTypeId_OpenSUSE_64 },
-- { ovf::CIMOSType_CIMOS_SLES_64, SchemaDefs_OSTypeId_OpenSUSE_64 },
-- { ovf::CIMOSType_CIMOS_LINUX, SchemaDefs_OSTypeId_Linux },
-- { ovf::CIMOSType_CIMOS_LINUX, SchemaDefs_OSTypeId_Linux22 },
-- { ovf::CIMOSType_CIMOS_SunJavaDesktopSystem, SchemaDefs_OSTypeId_Linux },
-- { ovf::CIMOSType_CIMOS_TurboLinux, SchemaDefs_OSTypeId_Turbolinux },
-- { ovf::CIMOSType_CIMOS_TurboLinux_64, SchemaDefs_OSTypeId_Turbolinux_64 },
-- { ovf::CIMOSType_CIMOS_Mandriva, SchemaDefs_OSTypeId_Mandriva },
-- { ovf::CIMOSType_CIMOS_Mandriva_64, SchemaDefs_OSTypeId_Mandriva_64 },
-- { ovf::CIMOSType_CIMOS_Ubuntu, SchemaDefs_OSTypeId_Ubuntu },
-- { ovf::CIMOSType_CIMOS_Ubuntu_64, SchemaDefs_OSTypeId_Ubuntu_64 },
-- { ovf::CIMOSType_CIMOS_Debian, SchemaDefs_OSTypeId_Debian },
-- { ovf::CIMOSType_CIMOS_Debian_64, SchemaDefs_OSTypeId_Debian_64 },
-- { ovf::CIMOSType_CIMOS_Linux_2_4_x, SchemaDefs_OSTypeId_Linux24 },
-- { ovf::CIMOSType_CIMOS_Linux_2_4_x_64, SchemaDefs_OSTypeId_Linux24_64 },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Linux26 },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Linux26_64 },
-- { ovf::CIMOSType_CIMOS_Linux_64, SchemaDefs_OSTypeId_Linux26_64 },
--
-- // types that we have support for but CIM doesn't
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_ArchLinux },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_ArchLinux_64 },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Fedora },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Fedora_64 },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Gentoo },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Gentoo_64 },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Xandros },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Xandros_64 },
-- { ovf::CIMOSType_CIMOS_Solaris, SchemaDefs_OSTypeId_OpenSolaris },
-- { ovf::CIMOSType_CIMOS_Solaris_64, SchemaDefs_OSTypeId_OpenSolaris_64 },
--
-- // types added with CIM 2.25.0 follow:
-- { ovf::CIMOSType_CIMOS_WindowsServer2008R2, SchemaDefs_OSTypeId_Windows2008 }, // duplicate, see above
--// { ovf::CIMOSType_CIMOS_VMwareESXi = 104, // we can't run ESX in a VM
-- { ovf::CIMOSType_CIMOS_Windows7, SchemaDefs_OSTypeId_Windows7 },
-- { ovf::CIMOSType_CIMOS_Windows7, SchemaDefs_OSTypeId_Windows7_64 }, // there is no CIM 64-bit type for this
-- { ovf::CIMOSType_CIMOS_CentOS, SchemaDefs_OSTypeId_RedHat },
-- { ovf::CIMOSType_CIMOS_CentOS_64, SchemaDefs_OSTypeId_RedHat_64 },
-- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux, SchemaDefs_OSTypeId_Oracle },
-- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux_64, SchemaDefs_OSTypeId_Oracle_64 },
-- { ovf::CIMOSType_CIMOS_eComStation, SchemaDefs_OSTypeId_OS2eCS }
--
-- // there are no CIM types for these, so these turn to "other" on export:
-- // SchemaDefs_OSTypeId_OpenBSD
-- // SchemaDefs_OSTypeId_OpenBSD_64
-- // SchemaDefs_OSTypeId_NetBSD
-- // SchemaDefs_OSTypeId_NetBSD_64
-+
-+ // Custom OS
-+ { ovf::CIMOSType_CIMOS_GNU, SchemaDefs_OSTypeId_GNU },
-+ { ovf::CIMOSType_CIMOS_GNU_64, SchemaDefs_OSTypeId_GNU_64 },
-+ { ovf::CIMOSType_CIMOS_GNUHurd, SchemaDefs_OSTypeId_GNUHurd },
-+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_GNULinux },
-+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_GNULinux_64 },
-+
-+ // GNU/Linux free distros
-+ { ovf::CIMOSType_CIMOS_gNewSense, SchemaDefs_OSTypeId_gNewSense },
-+ { ovf::CIMOSType_CIMOS_gNewSense_64, SchemaDefs_OSTypeId_gNewSense_64 },
-+ { ovf::CIMOSType_CIMOS_Dragora, SchemaDefs_OSTypeId_Dragora },
-+ { ovf::CIMOSType_CIMOS_Dragora_64, SchemaDefs_OSTypeId_Dragora_64 },
-+ { ovf::CIMOSType_CIMOS_Musix, SchemaDefs_OSTypeId_Musix },
-+ { ovf::CIMOSType_CIMOS_Musix_64, SchemaDefs_OSTypeId_Musix_64 },
-+ { ovf::CIMOSType_CIMOS_Trisquel, SchemaDefs_OSTypeId_Trisquel },
-+ { ovf::CIMOSType_CIMOS_Trisquel_64, SchemaDefs_OSTypeId_Trisquel_64 },
-+ { ovf::CIMOSType_CIMOS_Dynebolic, SchemaDefs_OSTypeId_Dynebolic },
-+ { ovf::CIMOSType_CIMOS_Venenux, SchemaDefs_OSTypeId_Venenux },
-+
-+ // GNU/Linux free distros that we have support for but CIM doesn't
-+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Parabola },
-+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Parabola_64 },
-+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Blag },
-+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Blag_64 },
-+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Ututo },
-+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Ututo_64 },
-
- };
-
-@@ -150,53 +89,34 @@
- /* These are the 32-Bit ones. They are sorted by priority. */
- static const osTypePattern g_osTypesPattern[] =
- {
-- {"Windows NT", SchemaDefs_OSTypeId_WindowsNT4},
-- {"Windows XP", SchemaDefs_OSTypeId_WindowsXP},
-- {"Windows 2000", SchemaDefs_OSTypeId_Windows2000},
-- {"Windows 2003", SchemaDefs_OSTypeId_Windows2003},
-- {"Windows Vista", SchemaDefs_OSTypeId_WindowsVista},
-- {"Windows 2008", SchemaDefs_OSTypeId_Windows2008},
-- {"SUSE", SchemaDefs_OSTypeId_OpenSUSE},
-- {"Novell", SchemaDefs_OSTypeId_OpenSUSE},
-- {"Red Hat", SchemaDefs_OSTypeId_RedHat},
-- {"Mandriva", SchemaDefs_OSTypeId_Mandriva},
-- {"Ubuntu", SchemaDefs_OSTypeId_Ubuntu},
-- {"Debian", SchemaDefs_OSTypeId_Debian},
-- {"QNX", SchemaDefs_OSTypeId_QNX},
-- {"Linux 2.4", SchemaDefs_OSTypeId_Linux24},
-- {"Linux 2.6", SchemaDefs_OSTypeId_Linux26},
-- {"Linux", SchemaDefs_OSTypeId_Linux},
-- {"OpenSolaris", SchemaDefs_OSTypeId_OpenSolaris},
-- {"Solaris", SchemaDefs_OSTypeId_OpenSolaris},
-- {"FreeBSD", SchemaDefs_OSTypeId_FreeBSD},
-- {"NetBSD", SchemaDefs_OSTypeId_NetBSD},
-- {"Windows 95", SchemaDefs_OSTypeId_Windows95},
-- {"Windows 98", SchemaDefs_OSTypeId_Windows98},
-- {"Windows Me", SchemaDefs_OSTypeId_WindowsMe},
-- {"Windows 3.", SchemaDefs_OSTypeId_Windows31},
-- {"DOS", SchemaDefs_OSTypeId_DOS},
-- {"OS2", SchemaDefs_OSTypeId_OS2}
-+
-+ {"Parabola GNU/Linux-libre", SchemaDefs_OSTypeId_Parabola},
-+ {"gNewSense", SchemaDefs_OSTypeId_gNewSense},
-+ {"Blag Linux and GNU", SchemaDefs_OSTypeId_Blag},
-+ {"Dragora", SchemaDefs_OSTypeId_Dragora},
-+ {"Ututo XS", SchemaDefs_OSTypeId_Ututo},
-+ {"Musix", SchemaDefs_OSTypeId_Musix},
-+ {"Trisquel", SchemaDefs_OSTypeId_Trisquel},
-+ {"Dyne:bolic", SchemaDefs_OSTypeId_Dynebolic},
-+ {"Venenux", SchemaDefs_OSTypeId_Venenux},
-+ {"GNU", SchemaDefs_OSTypeId_GNU},
-+ {"GNU-Hurd", SchemaDefs_OSTypeId_GNUHurd},
-+ {"GNU/Linux", SchemaDefs_OSTypeId_GNULinux},
-+
- };
-
- /* These are the 64-Bit ones. They are sorted by priority. */
- static const osTypePattern g_osTypesPattern64[] =
- {
-- {"Windows XP", SchemaDefs_OSTypeId_WindowsXP_64},
-- {"Windows 2003", SchemaDefs_OSTypeId_Windows2003_64},
-- {"Windows Vista", SchemaDefs_OSTypeId_WindowsVista_64},
-- {"Windows 2008", SchemaDefs_OSTypeId_Windows2008_64},
-- {"SUSE", SchemaDefs_OSTypeId_OpenSUSE_64},
-- {"Novell", SchemaDefs_OSTypeId_OpenSUSE_64},
-- {"Red Hat", SchemaDefs_OSTypeId_RedHat_64},
-- {"Mandriva", SchemaDefs_OSTypeId_Mandriva_64},
-- {"Ubuntu", SchemaDefs_OSTypeId_Ubuntu_64},
-- {"Debian", SchemaDefs_OSTypeId_Debian_64},
-- {"Linux 2.4", SchemaDefs_OSTypeId_Linux24_64},
-- {"Linux 2.6", SchemaDefs_OSTypeId_Linux26_64},
-- {"Linux", SchemaDefs_OSTypeId_Linux26_64},
-- {"OpenSolaris", SchemaDefs_OSTypeId_OpenSolaris_64},
-- {"Solaris", SchemaDefs_OSTypeId_OpenSolaris_64},
-- {"FreeBSD", SchemaDefs_OSTypeId_FreeBSD_64},
-+ {"Parabola GNU/Linux-libre", SchemaDefs_OSTypeId_Parabola_64},
-+ {"gNewSense", SchemaDefs_OSTypeId_gNewSense_64},
-+ {"Blag Linux and GNU", SchemaDefs_OSTypeId_Blag_64},
-+ {"Dragora", SchemaDefs_OSTypeId_Dragora_64},
-+ {"Ututo XS", SchemaDefs_OSTypeId_Ututo_64},
-+ {"Musix", SchemaDefs_OSTypeId_Musix_64},
-+ {"Trisquel", SchemaDefs_OSTypeId_Trisquel_64},
-+ {"GNU", SchemaDefs_OSTypeId_GNU_64},
-+ {"GNU/Linux", SchemaDefs_OSTypeId_GNULinux_64},
- };
-
- /**
---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ovfreader.h 2012-06-20 10:17:34.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/include/ovfreader.h 2012-07-26 03:51:21.807619186 -0300
-@@ -34,119 +34,24 @@
-
- enum CIMOSType_T
- {
-- CIMOSType_CIMOS_Unknown = 0,
-- CIMOSType_CIMOS_Other = 1,
-- CIMOSType_CIMOS_MACOS = 2,
-- CIMOSType_CIMOS_ATTUNIX = 3,
-- CIMOSType_CIMOS_DGUX = 4,
-- CIMOSType_CIMOS_DECNT = 5,
-- CIMOSType_CIMOS_Tru64UNIX = 6,
-- CIMOSType_CIMOS_OpenVMS = 7,
-- CIMOSType_CIMOS_HPUX = 8,
-- CIMOSType_CIMOS_AIX = 9,
-- CIMOSType_CIMOS_MVS = 10,
-- CIMOSType_CIMOS_OS400 = 11,
-- CIMOSType_CIMOS_OS2 = 12,
-- CIMOSType_CIMOS_JavaVM = 13,
-- CIMOSType_CIMOS_MSDOS = 14,
-- CIMOSType_CIMOS_WIN3x = 15,
-- CIMOSType_CIMOS_WIN95 = 16,
-- CIMOSType_CIMOS_WIN98 = 17,
-- CIMOSType_CIMOS_WINNT = 18,
-- CIMOSType_CIMOS_WINCE = 19,
-- CIMOSType_CIMOS_NCR3000 = 20,
-- CIMOSType_CIMOS_NetWare = 21,
-- CIMOSType_CIMOS_OSF = 22,
-- CIMOSType_CIMOS_DCOS = 23,
-- CIMOSType_CIMOS_ReliantUNIX = 24,
-- CIMOSType_CIMOS_SCOUnixWare = 25,
-- CIMOSType_CIMOS_SCOOpenServer = 26,
-- CIMOSType_CIMOS_Sequent = 27,
-- CIMOSType_CIMOS_IRIX = 28,
-- CIMOSType_CIMOS_Solaris = 29,
-- CIMOSType_CIMOS_SunOS = 30,
-- CIMOSType_CIMOS_U6000 = 31,
-- CIMOSType_CIMOS_ASERIES = 32,
-- CIMOSType_CIMOS_HPNonStopOS = 33,
-- CIMOSType_CIMOS_HPNonStopOSS = 34,
-- CIMOSType_CIMOS_BS2000 = 35,
-- CIMOSType_CIMOS_LINUX = 36,
-- CIMOSType_CIMOS_Lynx = 37,
-- CIMOSType_CIMOS_XENIX = 38,
-- CIMOSType_CIMOS_VM = 39,
-- CIMOSType_CIMOS_InteractiveUNIX = 40,
-- CIMOSType_CIMOS_BSDUNIX = 41,
-- CIMOSType_CIMOS_FreeBSD = 42,
-- CIMOSType_CIMOS_NetBSD = 43,
-- CIMOSType_CIMOS_GNUHurd = 44,
-- CIMOSType_CIMOS_OS9 = 45,
-- CIMOSType_CIMOS_MACHKernel = 46,
-- CIMOSType_CIMOS_Inferno = 47,
-- CIMOSType_CIMOS_QNX = 48,
-- CIMOSType_CIMOS_EPOC = 49,
-- CIMOSType_CIMOS_IxWorks = 50,
-- CIMOSType_CIMOS_VxWorks = 51,
-- CIMOSType_CIMOS_MiNT = 52,
-- CIMOSType_CIMOS_BeOS = 53,
-- CIMOSType_CIMOS_HPMPE = 54,
-- CIMOSType_CIMOS_NextStep = 55,
-- CIMOSType_CIMOS_PalmPilot = 56,
-- CIMOSType_CIMOS_Rhapsody = 57,
-- CIMOSType_CIMOS_Windows2000 = 58,
-- CIMOSType_CIMOS_Dedicated = 59,
-- CIMOSType_CIMOS_OS390 = 60,
-- CIMOSType_CIMOS_VSE = 61,
-- CIMOSType_CIMOS_TPF = 62,
-- CIMOSType_CIMOS_WindowsMe = 63,
-- CIMOSType_CIMOS_CalderaOpenUNIX = 64,
-- CIMOSType_CIMOS_OpenBSD = 65,
-- CIMOSType_CIMOS_NotApplicable = 66,
-- CIMOSType_CIMOS_WindowsXP = 67,
-- CIMOSType_CIMOS_zOS = 68,
-- CIMOSType_CIMOS_MicrosoftWindowsServer2003 = 69,
-- CIMOSType_CIMOS_MicrosoftWindowsServer2003_64 = 70,
-- CIMOSType_CIMOS_WindowsXP_64 = 71,
-- CIMOSType_CIMOS_WindowsXPEmbedded = 72,
-- CIMOSType_CIMOS_WindowsVista = 73,
-- CIMOSType_CIMOS_WindowsVista_64 = 74,
-- CIMOSType_CIMOS_WindowsEmbeddedforPointofService = 75,
-- CIMOSType_CIMOS_MicrosoftWindowsServer2008 = 76,
-- CIMOSType_CIMOS_MicrosoftWindowsServer2008_64 = 77,
-- CIMOSType_CIMOS_FreeBSD_64 = 78,
-- CIMOSType_CIMOS_RedHatEnterpriseLinux = 79,
-- CIMOSType_CIMOS_RedHatEnterpriseLinux_64 = 80,
-- CIMOSType_CIMOS_Solaris_64 = 81,
-- CIMOSType_CIMOS_SUSE = 82,
-- CIMOSType_CIMOS_SUSE_64 = 83,
-- CIMOSType_CIMOS_SLES = 84,
-- CIMOSType_CIMOS_SLES_64 = 85,
-- CIMOSType_CIMOS_NovellOES = 86,
-- CIMOSType_CIMOS_NovellLinuxDesktop = 87,
-- CIMOSType_CIMOS_SunJavaDesktopSystem = 88,
-- CIMOSType_CIMOS_Mandriva = 89,
-- CIMOSType_CIMOS_Mandriva_64 = 90,
-- CIMOSType_CIMOS_TurboLinux = 91,
-- CIMOSType_CIMOS_TurboLinux_64 = 92,
-- CIMOSType_CIMOS_Ubuntu = 93,
-- CIMOSType_CIMOS_Ubuntu_64 = 94,
-- CIMOSType_CIMOS_Debian = 95,
-- CIMOSType_CIMOS_Debian_64 = 96,
-- CIMOSType_CIMOS_Linux_2_4_x = 97,
-- CIMOSType_CIMOS_Linux_2_4_x_64 = 98,
-- CIMOSType_CIMOS_Linux_2_6_x = 99,
-- CIMOSType_CIMOS_Linux_2_6_x_64 = 100,
-- CIMOSType_CIMOS_Linux_64 = 101,
-- CIMOSType_CIMOS_Other_64 = 102,
-- // types added with CIM 2.25.0 follow:
-- CIMOSType_CIMOS_WindowsServer2008R2 = 103,
-- CIMOSType_CIMOS_VMwareESXi = 104,
-- CIMOSType_CIMOS_Windows7 = 105,
-- CIMOSType_CIMOS_CentOS = 106,
-- CIMOSType_CIMOS_CentOS_64 = 107,
-- CIMOSType_CIMOS_OracleEnterpriseLinux = 108,
-- CIMOSType_CIMOS_OracleEnterpriseLinux_64 = 109,
-- CIMOSType_CIMOS_eComStation = 110
-- // no new types added with CIM 2.26.0
-+ CIMOSType_CIMOS_Unknown = 0,
-+ CIMOSType_CIMOS_Other = 1,
-+ CIMOSType_CIMOS_Other_64 = 2,
-+ CIMOSType_CIMOS_gNewSense = 3,
-+ CIMOSType_CIMOS_gNewSense_64 = 4,
-+ CIMOSType_CIMOS_Dragora = 5,
-+ CIMOSType_CIMOS_Dragora_64 = 6,
-+ CIMOSType_CIMOS_Musix = 7,
-+ CIMOSType_CIMOS_Musix_64 = 8,
-+ CIMOSType_CIMOS_Trisquel = 9,
-+ CIMOSType_CIMOS_Trisquel_64 = 10,
-+ CIMOSType_CIMOS_Dynebolic = 11,
-+ CIMOSType_CIMOS_Venenux = 12,
-+ CIMOSType_CIMOS_GNU = 13,
-+ CIMOSType_CIMOS_GNU_64 = 14,
-+ CIMOSType_CIMOS_GNUHurd = 15,
-+ CIMOSType_CIMOS_GNULinux = 16,
-+ CIMOSType_CIMOS_GNULinux_64 = 17
- };
-
-
---- VirtualBox-4.1.18.orig/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c 2012-06-20 10:09:01.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c 2012-07-26 15:32:55.309812685 -0300
-@@ -622,16 +622,16 @@
- * Call the common device extension initializer.
- */
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) && defined(RT_ARCH_X86)
-- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux26;
-+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux;
- #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) && defined(RT_ARCH_AMD64)
-- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux26_x64;
-+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux_x64;
- #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) && defined(RT_ARCH_X86)
-- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux24;
-+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux;
- #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) && defined(RT_ARCH_AMD64)
-- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux24_x64;
-+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux_x64;
- #else
- # warning "huh? which arch + version is this?"
-- VBOXOSTYPE enmOsType = VBOXOSTYPE_Linux;
-+ VBOXOSTYPE enmOsType = VBOXOSTYPE_GNULinux;
- #endif
- rc = VBoxGuestInitDevExt(&g_DevExt,
- g_IOPortBase,
diff --git a/libre/virtualbox-libre-modules-lts/libre.patch b/libre/virtualbox-libre-modules-lts/libre.patch
deleted file mode 100644
index e51d0c0a7..000000000
--- a/libre/virtualbox-libre-modules-lts/libre.patch
+++ /dev/null
@@ -1,5765 +0,0 @@
---- VirtualBox-4.1.18.orig/Config.kmk 2012-07-24 16:38:43.981310996 -0300
-+++ VirtualBox-4.1.18/Config.kmk 2012-07-24 16:38:44.001309865 -0300
-@@ -56,9 +56,6 @@
- PROPS_SYSMODS_ACCUMULATE_L += INTERMEDIATES
- PROPS_MISCBINS_ACCUMULATE_L += INTERMEDIATES
-
--# Misc names used bye the install paths below.
--VBOX_PUEL_MANGLED_NAME := Oracle_VM_VirtualBox_Extension_Pack
--
- # Install paths
- ## @todo This will change after 4.1 is branched off!
- # What is now 'bin' and 'lib' will be moved down under 'staged/', except on
-@@ -125,9 +122,6 @@
- endif
-
- INST_DOC = doc/
--INST_EXTPACK = $(INST_BIN)ExtensionPacks/
--INST_EXTPACK_CERTS = $(INST_BIN)ExtPackCertificates/
--INST_EXTPACK_PUEL = $(INST_EXTPACK)$(VBOX_PUEL_MANGLED_NAME)/
- INST_PACKAGES = packages/
-
- VBOX_PATH_SDK = $(patsubst %/,%,$(PATH_STAGE)/$(INST_SDK))
-@@ -136,7 +130,6 @@
- VBOX_PATH_ADDITIONS = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS))
- VBOX_PATH_ADDITIONS_ISO = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_ISO))
- VBOX_PATH_ADDITIONS_LIB = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_LIB))
--VBOX_PATH_EXTPACK_PUEL= $(patsubst %/,%,$(PATH_STAGE)/$(INST_EXTPACK_PUEL))
- VBOX_PATH_PACKAGES = $(patsubst %/,%,$(PATH_STAGE)/$(INST_PACKAGES))
-
-
-@@ -208,7 +201,6 @@
- export VBOX_ADDITIONS_SH_MODE = release
- export VBOX_DOCUMENTATION_SH_MODE = release
- export VBOX_EFI_SH_MODE = release
-- export VBOX_EXTPACKS_SH_MODE = release
- endif
-
- # Some info on the vendor
-@@ -361,8 +353,6 @@
- VBOX_WITH_USB = 1
- # Enable the USB 1.1 controller plus virtual USB HID devices.
- VBOX_WITH_VUSB = 1
--# Enable the USB 2.0 controller.
--VBOX_WITH_EHCI = 1
- # Enable the ISCSI feature.
- VBOX_WITH_ISCSI = 1
- # Enable INIP support in the ISCSI feature.
-@@ -430,9 +420,6 @@
- ifdef VBOX_WITH_USB
- VBOX_WITH_VUSB = 1
- endif
--ifdef VBOX_WITH_EHCI
-- VBOX_WITH_EHCI_IMPL = 1
--endif
- ifdef VBOX_WITH_PCI_PASSTHROUGH
- VBOX_WITH_PCI_PASSTHROUGH_IMPL = 1
- endif
-@@ -591,15 +578,6 @@
- ## @}
-
-
--## @name Extension pack
--## @{
--# Enables the extension pack feature.
--VBOX_WITH_EXTPACK = 1
--# Enables separating code into the Oracle VM VirtualBox Extension Pack, dubbed PUEL.
--VBOX_WITH_EXTPACK_PUEL = 1
--# Enables building+packing the Oracle VM VirtualBox Extension Pack, includes VBOX_WITH_EXTPACK_PUEL
--VBOX_WITH_EXTPACK_PUEL_BUILD = 1
--## @}
-
- ## @name Misc
- ## @{
-@@ -777,14 +755,6 @@
- # Skip stuff.
- #
-
--ifdef VBOX_ONLY_EXTPACKS
-- # Clear some VBOX_WITH_XXX variables instead of adding ifdefs all over the place.
-- VBOX_WITH_DEBUGGER =
-- VBOX_WITH_ADDITIONS =
-- VBOX_WITH_VBOXDRV =
-- VBOX_WITH_TESTCASES =
--endif
--
- # VBOX_QUICK can be used by core developers to speed to the build
- ifdef VBOX_QUICK
- # undefine variables by assigning blank.
-@@ -848,7 +818,6 @@
- VBOX_WITH_TESTSUITE=
- VBOX_WITH_QTGUI=
- VBOX_WITH_USB=
-- VBOX_WITH_EHCI=
- VBOX_WITH_DOCS=
- VBOX_WITH_PDM_ASYNC_COMPLETION=
- VBOX_WITH_KCHMVIEWER=
-@@ -870,7 +839,6 @@
- VBOX_WITH_CROGL=
- VBOX_WITH_DEBUGGER=
- VBOX_WITH_DOCS=
-- VBOX_WITH_EHCI=
- VBOX_WITH_HARDENING=
- VBOX_WITH_HEADLESS=
- VBOX_WITH_HGCM=
-@@ -952,9 +920,6 @@
- #
- ifdef VBOX_OSE
- VBOX_WITH_VRDP=
-- VBOX_WITH_EHCI_IMPL=
-- VBOX_WITH_EXTPACK_PUEL=
-- VBOX_WITH_EXTPACK_PUEL_BUILD=
- VBOX_WITH_PCI_PASSTHROUGH_IMPL=
- VBOX_WITH_OS2_ADDITIONS_BIN=
- VBOX_WITH_SECURELABEL=
-@@ -1082,10 +1047,6 @@
- VBOX_WITH_KCHMVIEWER=
- endif
-
--ifdef VBOX_WITH_EXTPACK_PUEL_BUILD
-- VBOX_WITH_EXTPACK_PUEL = 1
--endif
--
- #
- # Mark OSE builds clearly, helps figuring out limitations more easily.
- #
-@@ -1679,9 +1640,6 @@
- # biossums (set BIOS checksums)
- VBOX_BIOSSUMS ?= $(PATH_OBJ)/biossums/biossums$(HOSTSUFF_EXE)
-
--# RTManifest (extension pack manifest utility)
--VBOX_RTMANIFEST ?= $(PATH_OBJ)/bldRTManifest/bldRTManifest$(HOSTSUFF_EXE)
--
- # filesplitter (splits java files)
- VBOX_FILESPLIT ?= $(PATH_OBJ)/filesplitter/filesplitter$(HOSTSUFF_EXE)
-
-@@ -2461,13 +2419,6 @@
- SDK_VBOX_OPENSSL2_LIBS = $(NO_SUCH_VARIABLE)
- endif
-
--SDK_VBoxOpenSslExtPack = Internal use only.
--SDK_VBoxOpenSslExtPack_INCS = $(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS)
--SDK_VBoxOpenSslExtPack_ORDERDEPS = $(crypto-headers_1_TARGET)
--SDK_VBoxOpenSslExtPack_LIBS = \
-- $(PATH_STAGE_LIB)/VBoxExtPack-libssl$(VBOX_SUFF_LIB) \
-- $(PATH_STAGE_LIB)/VBoxExtPack-libcrypto$(VBOX_SUFF_LIB)
--
- SDK_VBOX_BLD_OPENSSL = .
- SDK_VBOX_BLD_OPENSSL_EXTENDS = VBOX_OPENSSL
- SDK_VBOX_BLD_OPENSSL_LIBS ?= \
-@@ -3817,100 +3768,6 @@
- endif
- TEMPLATE_VBOXMAINCLIENTDLL_LDFLAGS.darwin = $(filter-out -bind_at_load,$(TEMPLATE_VBOXMAINCLIENTEXE_LDFLAGS.darwin))
-
--
--
--#
--# Templates used for building the extension packs.
--#
--ifdef VBOX_WITH_EXTPACK
-- # Base templates (native or portable).
-- TEMPLATE_VBoxR3ExtPack = For the ring-3 context extension pack modules.
-- if 1 # Native for now.
-- TEMPLATE_VBoxR3ExtPack_EXTENDS = VBOXR3DLLNOXCPT
-- TEMPLATE_VBoxR3ExtPack_DEFS = $(TEMPLATE_VBOXR3DLLNOXCPT_DEFS) VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R3
-- else
-- TEMPLATE_VBoxR3ExtPack_EXTENDS = VBOXNOCRTGCC
-- TEMPLATE_VBoxR3ExtPack_DEFS = $(TEMPLATE_VBOXNOCRTGCC_DEFS) VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R3 IPRT_NO_CRT IN_RING3
-- TEMPLATE_VBoxR3ExtPack_INCS = $(PATH_ROOT)/include/iprt/nocrt $(TEMPLATE_VBOXR3DLLNOXCPT_INCS)
-- endif
-- ifneq ($(KBUILD_TARGET),win)
-- TEMPLATE_VBoxR3ExtPack_CXXFLAGS = $(TEMPLATE_VBOXR3DLLNOXCPT_CXXFLAGS) -fno-rtti
-- endif
-- TEMPLATE_VBoxR3ExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/
-- ifeq ($(KBUILD_TARGET),linux)
-- TEMPLATE_VBoxR3ExtPack_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBOXR3DLLNOXCPT_LDFLAGS))
-- else
-- if !defined(VBOX_WITH_RUNPATH) && defined(VBOX_WITH_RELATIVE_RUNPATH)
-- TEMPLATE_VBoxR3ExtPack_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/../../..' $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBOXR3DLLNOXCPT_LDFLAGS))
-- endif
-- endif
-- ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
-- if1of ($(KBUILD_TARGET), win os2)
-- TEMPLATE_VBoxR3ExtPack_LIBS = \
-- $(TEMPLATE_LIBS_VBOXR3) \
-- $(PATH_STAGE_LIB)/VMMR3Imp$(VBOX_SUFF_LIB) \
-- $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_LIB)
-- else
-- TEMPLATE_VBoxR3ExtPack_LIBS = \
-- $(TEMPLATE_LIBS_VBOXR3) \
-- $(PATH_STAGE_LIB)/VMMR3Imp$(VBOX_SUFF_DLL) \
-- $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_DLL)
-- endif
-- else
-- TEMPLATE_VBoxR3ExtPack_LIBS = \
-- $(TEMPLATE_LIBS_VBOXR3) \
-- $(LIB_RUNTIME) \
-- $(LIB_VMM)
-- endif
--
-- TEMPLATE_VBoxR0ExtPack = For the ring-0 context extension pack modules.
-- TEMPLATE_VBoxR0ExtPack_EXTENDS = VBoxR0
-- TEMPLATE_VBoxR0ExtPack_EXTENDS_BY = appending
-- TEMPLATE_VBoxR0ExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/
-- TEMPLATE_VBoxR0ExtPack_DEFS = VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R0
-- if1of ($(VBOX_LDR_FMT), pe lx)
-- TEMPLATE_VBoxR0ExtPack_LIBS = \
-- $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB) \
-- $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB)
-- endif
--
-- TEMPLATE_VBoxRcExtPack = For the raw-mode context extension pack modules.
-- TEMPLATE_VBoxRcExtPack_EXTENDS = VBoxRc
-- TEMPLATE_VBoxRcExtPack_EXTENDS_BY = appending
-- TEMPLATE_VBoxRcExtPack_SYSSUFF = .rc
-- TEMPLATE_VBoxRcExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/
-- TEMPLATE_VBoxRcExtPack_DEFS = VBOX_IN_EXTPACK VBOX_IN_EXTPACK_RC
-- if1of ($(VBOX_LDR_FMT32), pe lx)
-- TEMPLATE_VBoxRcExtPack_LIBS = \
-- $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
-- $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
-- endif
--
-- TEMPLATE_VBoxInsExtPack = For the install targets of an extension pack.
-- TEMPLATE_VBoxInsExtPack_MODE = 0644
-- TEMPLATE_VBoxInsExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/
--
-- # For each individual extension pack
-- ifdef VBOX_WITH_EXTPACK_PUEL
-- TEMPLATE_VBoxR3ExtPackPuel = For the ring-3 context modules in the PUEL extension pack.
-- TEMPLATE_VBoxR3ExtPackPuel_EXTENDS = VBoxR3ExtPack
-- TEMPLATE_VBoxR3ExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
--
-- TEMPLATE_VBoxR0ExtPackPuel = For the ring-0 context modules in the PUEL extension pack.
-- TEMPLATE_VBoxR0ExtPackPuel_EXTENDS = VBoxR0ExtPack
-- TEMPLATE_VBoxR0ExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
--
-- TEMPLATE_VBoxRcExtPackPuel = For the raw-mode context modules in the PUEL extension pack.
-- TEMPLATE_VBoxRcExtPackPuel_EXTENDS = VBoxRcExtPack
-- TEMPLATE_VBoxRcExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
--
-- TEMPLATE_VBoxInsExtPackPuel = For the install targets of an extension pack.
-- TEMPLATE_VBoxInsExtPackPuel_EXTENDS = VBoxR0ExtPack
-- TEMPLATE_VBoxInsExtPackPuel_INST = $(INST_EXTPACK_PUEL)
--endif
--endif # VBOX_WITH_EXTPACK
--
--
- #
- # Qt 4
- # Qt 4
---- VirtualBox-4.1.18.orig/Makefile.kmk 2012-07-24 17:16:47.078929150 -0300
-+++ VirtualBox-4.1.18/Makefile.kmk 2012-07-24 17:16:47.125592981 -0300
-@@ -446,7 +446,6 @@
- include/VBox \
- include/VBox/vmm \
- include/VBox/com \
-- include/VBox/ExtPack \
- include/VBox/HostServices \
- include/VBox/GuestHost \
- include/VBox/HGSMI \
-@@ -862,191 +861,6 @@
- additions-build-linux.x86.combined \
- additions-packing
-
--
--#
--# Build the extension packs, all of them.
--#
--# This is tailored (hardcoded) for the extension pack build box.
--#
--# The fetching must be done in serial fashion, while the building should be
--# more flexible wrt to -jN.
--#
--extpacks-fetch:
-- + $(KMK) -C tools fetch VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=amd64 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=x86 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1
--# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=amd64 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1
--# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=x86 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux BUILD_TARGET_ARCH=amd64 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux BUILD_TARGET_ARCH=x86 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1
--# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 BUILD_TARGET_ARCH=x86 BUILD_TARGET=os2 VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=amd64 BUILD_TARGET=solaris VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=x86 BUILD_TARGET=solaris VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win BUILD_TARGET_ARCH=amd64 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win BUILD_TARGET_ARCH=x86 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1
--
--
--extpacks-build: \
-- extpacks-build-win.amd64 \
-- extpacks-build-win.x86 \
-- extpacks-build-solaris.amd64 \
-- extpacks-build-solaris.x86 \
-- extpacks-build-os2.x86 \
-- extpacks-build-linux.amd64 \
-- extpacks-build-linux.x86 \
-- extpacks-build-darwin.amd64 \
-- extpacks-build-darwin.x86 \
-- extpacks-build-freebsd.amd64 \
-- extpacks-build-freebsd.x86
--
--VBOX_EXTPACKS_BUILD.amd64 = VBOX_ONLY_EXTPACKS=1 \
-- KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
-- KBUILD_TARGET_ARCH=amd64 BUILD_TARGET_ARCH=amd64 \
-- VBOX_SVN_REV=$(VBOX_SVN_REV)
--
--VBOX_EXTPACKS_BUILD.x86 = VBOX_ONLY_EXTPACKS=1 \
-- KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
-- KBUILD_TARGET_ARCH=x86 BUILD_TARGET_ARCH=x86 \
-- VBOX_SVN_REV=$(VBOX_SVN_REV)
--
--# Automatically determine the extpack build subdir name. Used for figuring out
--# directory names inside the extension pack building VMs.
--VBOX_EXTPACKS_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
--
--# When building in parallel on a Windows host, make sure we finish the host
--# bit before kicking off any UNIX guest or we'll run into file sharing issues.
--ifeq ($(KBUILD_TARGET),win)
--VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST = extpacks-build-win.x86 extpacks-build-win.amd64
--else
--VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST =
--endif
--
--extpacks-build-win.amd64:
--ifeq ($(KBUILD_TARGET),win)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Windows/amd64 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.6 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
--endif
--
--extpacks-build-win.x86:
--ifeq ($(KBUILD_TARGET),win)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Windows/x86 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.16 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.x86) all"
--endif
--
--ifeq ($(KBUILD_TARGET),solaris)
--extpacks-build-solaris.amd64:
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--
--extpacks-build-solaris.x86: extpacks-build-solaris.amd64
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--
--else
--# Serialize 32-bit and 64-bit ASSUMING the same VM builds both.
--extpacks-build-solaris.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
-- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) . 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
--
--extpacks-build-solaris.build-it: extpacks-build-solaris.rsync-into-vm
-- $(call MSG_L1,Building Solaris/amd64 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
-- $(call MSG_L1,Building Solaris/x86 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all"
--
--extpacks-build-solaris.rsync-out-of-vm: extpacks-build-solaris.build-it
-- $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.x86 out/
-- $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/
--
--.NOTPARALLEL: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm
--.PHONY: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm extpacks-build-solaris.build-it
--
--extpacks-build-solaris.amd64: extpacks-build-solaris.rsync-out-of-vm
--extpacks-build-solaris.x86: extpacks-build-solaris.rsync-out-of-vm
--endif
--
--extpacks-build-os2.x86:
--#ifeq ($(KBUILD_TARGET),os2)
--# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--#else
--# $(VBOX_KMK_TIME) ssh vbox@192.168.27.3 " cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) "
--#endif
--
--extpacks-build-linux.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.amd64)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Linux/amd64 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.12 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
--endif
--
--extpacks-build-linux.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.x86)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Linux/x86 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.11 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all"
--endif
--
--extpacks-build-freebsd.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64)
--# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--#else
--# $(call MSG_L1,Building FreeBSD/amd64 extension packs)
--# $(VBOX_KMK_TIME) ssh vbox@192.168.27.17 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
--#endif
--
--extpacks-build-freebsd.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86)
--# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--#else
--# $(call MSG_L1,Building FreeBSD/x86 extension packs)
--# $(VBOX_KMK_TIME) ssh vbox@192.168.27.7 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all"
--#endif
--
--extpacks-build-darwin.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Darwin/amd64 extension packs)
-- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.15 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
-- $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/
--endif
--
--extpacks-build-darwin.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Darwin/x86 extension packs)
-- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.5 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all"
-- $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.x86 out/
--endif
--
--
--extpacks-packing:
-- + $(KMK) VBOX_ONLY_EXTPACKS=1 \
-- VBOX_WITH_EXTPACK_OS_ARCHS="darwin.amd64 darwin.x86 linux.amd64 linux.x86 solaris.amd64 solaris.x86 win.amd64 win.x86" \
-- packing
--# +++ freebsd.amd64 freebsd.x86 os2.x86 ^^^
--
--.PHONY: \
-- extpacks-build-win.x86 \
-- extpacks-build-win.amd64 \
-- extpacks-build-solaris.amd64 \
-- extpacks-build-solaris.x86 \
-- extpacks-build-os2.x86 \
-- extpacks-build-linux.amd64 \
-- extpacks-build-linux.x86 \
-- extpacks-build-freebsd.amd64 \
-- extpacks-build-freebsd.x86 \
-- extpacks-build-darwin.amd64 \
-- extpacks-build-darwin.x86 \
-- extpacks-packing
--
--
- #
- # Build the test suite, all of it.
- #
---- VirtualBox-4.1.18.orig/src/VBox/Devices/build/VBoxDD.cpp 2012-06-20 10:15:51.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Devices/build/VBoxDD.cpp 2012-07-24 16:18:03.964493454 -0300
-@@ -132,11 +132,6 @@
- if (RT_FAILURE(rc))
- return rc;
- #endif
--#ifdef VBOX_WITH_EHCI_IMPL
-- rc = pCallbacks->pfnRegister(pCallbacks, &g_DeviceEHCI);
-- if (RT_FAILURE(rc))
-- return rc;
--#endif
- #ifdef VBOX_ACPI
- rc = pCallbacks->pfnRegister(pCallbacks, &g_DeviceACPI);
- if (RT_FAILURE(rc))
---- VirtualBox-4.1.18.orig/src/VBox/Devices/build/VBoxDD.h 2012-06-20 10:15:51.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Devices/build/VBoxDD.h 2012-07-24 16:20:35.939205389 -0300
-@@ -62,7 +62,6 @@
- extern const PDMDEVREG g_DeviceICH6_HDA;
- extern const PDMDEVREG g_DeviceAudioSniffer;
- extern const PDMDEVREG g_DeviceOHCI;
--extern const PDMDEVREG g_DeviceEHCI;
- extern const PDMDEVREG g_DeviceACPI;
- extern const PDMDEVREG g_DeviceDMA;
- extern const PDMDEVREG g_DeviceFloppyController;
---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ExtPackManagerImpl.h 2012-06-20 10:17:33.000000000 -0300
-+++ /dev/null 2012-07-24 14:48:18.638572110 -0300
-@@ -1,245 +0,0 @@
--/* $Id: ExtPackManagerImpl.h $ */
--/** @file
-- * VirtualBox Main - interface for Extension Packs, VBoxSVC & VBoxC.
-- */
--
--/*
-- * Copyright (C) 2010 Oracle Corporation
-- *
-- * This file is part of VirtualBox Open Source Edition (OSE), as
-- * available from http://www.virtualbox.org. This file is free software;
-- * you can redistribute it and/or modify it under the terms of the GNU
-- * General Public License (GPL) as published by the Free Software
-- * Foundation, in version 2 as it comes in the "COPYING" file of the
-- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-- */
--
--#ifndef ____H_EXTPACKMANAGERIMPL
--#define ____H_EXTPACKMANAGERIMPL
--
--#include "VirtualBoxBase.h"
--#include <VBox/ExtPack/ExtPack.h>
--#include <iprt/fs.h>
--
--/**
-- * An extension pack file.
-- */
--class ATL_NO_VTABLE ExtPackFile :
-- public VirtualBoxBase,
-- VBOX_SCRIPTABLE_IMPL(IExtPackFile)
--{
--public:
-- /** @name COM and internal init/term/mapping cruft.
-- * @{ */
-- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPackFile, IExtPackFile)
-- DECLARE_NOT_AGGREGATABLE(ExtPackFile)
-- DECLARE_PROTECT_FINAL_CONSTRUCT()
-- BEGIN_COM_MAP(ExtPackFile)
-- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPackFile)
-- COM_INTERFACE_ENTRY(IExtPackBase)
-- END_COM_MAP()
-- DECLARE_EMPTY_CTOR_DTOR(ExtPackFile)
--
-- HRESULT FinalConstruct();
-- void FinalRelease();
-- HRESULT initWithFile(const char *a_pszFile, const char *a_pszDigest, class ExtPackManager *a_pExtPackMgr, VirtualBox *a_pVirtualBox);
-- void uninit();
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
-- /** @} */
--
-- /** @name IExtPackBase interfaces
-- * @{ */
-- STDMETHOD(COMGETTER(Name))(BSTR *a_pbstrName);
-- STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription);
-- STDMETHOD(COMGETTER(Version))(BSTR *a_pbstrVersion);
-- STDMETHOD(COMGETTER(Revision))(ULONG *a_puRevision);
-- STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule);
-- STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns));
-- STDMETHOD(COMGETTER(Usable))(BOOL *a_pfUsable);
-- STDMETHOD(COMGETTER(WhyUnusable))(BSTR *a_pbstrWhy);
-- STDMETHOD(COMGETTER(ShowLicense))(BOOL *a_pfShowIt);
-- STDMETHOD(COMGETTER(License))(BSTR *a_pbstrHtmlLicense);
-- STDMETHOD(QueryLicense)(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage,
-- IN_BSTR a_bstrFormat, BSTR *a_pbstrLicense);
-- /** @} */
--
-- /** @name IExtPackFile interfaces
-- * @{ */
-- STDMETHOD(COMGETTER(FilePath))(BSTR *a_pbstrPath);
-- STDMETHOD(Install)(BOOL a_fReplace, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress);
-- /** @} */
--
--private:
-- /** @name Misc init helpers
-- * @{ */
-- HRESULT initFailed(const char *a_pszWhyFmt, ...);
-- /** @} */
--
--private:
-- struct Data;
-- /** Pointer to the private instance. */
-- Data *m;
--
-- friend class ExtPackManager;
--};
--
--
--/**
-- * An installed extension pack.
-- */
--class ATL_NO_VTABLE ExtPack :
-- public VirtualBoxBase,
-- VBOX_SCRIPTABLE_IMPL(IExtPack)
--{
--public:
-- /** @name COM and internal init/term/mapping cruft.
-- * @{ */
-- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPack, IExtPack)
-- DECLARE_NOT_AGGREGATABLE(ExtPack)
-- DECLARE_PROTECT_FINAL_CONSTRUCT()
-- BEGIN_COM_MAP(ExtPack)
-- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPack)
-- COM_INTERFACE_ENTRY(IExtPackBase)
-- END_COM_MAP()
-- DECLARE_EMPTY_CTOR_DTOR(ExtPack)
--
-- HRESULT FinalConstruct();
-- void FinalRelease();
-- HRESULT initWithDir(VBOXEXTPACKCTX a_enmContext, const char *a_pszName, const char *a_pszDir);
-- void uninit();
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
-- /** @} */
--
-- /** @name IExtPackBase interfaces
-- * @{ */
-- STDMETHOD(COMGETTER(Name))(BSTR *a_pbstrName);
-- STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription);
-- STDMETHOD(COMGETTER(Version))(BSTR *a_pbstrVersion);
-- STDMETHOD(COMGETTER(Revision))(ULONG *a_puRevision);
-- STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule);
-- STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns));
-- STDMETHOD(COMGETTER(Usable))(BOOL *a_pfUsable);
-- STDMETHOD(COMGETTER(WhyUnusable))(BSTR *a_pbstrWhy);
-- STDMETHOD(COMGETTER(ShowLicense))(BOOL *a_pfShowIt);
-- STDMETHOD(COMGETTER(License))(BSTR *a_pbstrHtmlLicense);
-- STDMETHOD(QueryLicense)(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage,
-- IN_BSTR a_bstrFormat, BSTR *a_pbstrLicense);
-- /** @} */
--
-- /** @name IExtPack interfaces
-- * @{ */
-- STDMETHOD(QueryObject)(IN_BSTR a_bstrObjectId, IUnknown **a_ppUnknown);
-- /** @} */
--
-- /** @name Internal interfaces used by ExtPackManager.
-- * @{ */
-- bool callInstalledHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock, PRTERRINFO pErrInfo);
-- HRESULT callUninstallHookAndClose(IVirtualBox *a_pVirtualBox, bool a_fForcedRemoval);
-- bool callVirtualBoxReadyHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock);
-- bool callConsoleReadyHook(IConsole *a_pConsole, AutoWriteLock *a_pLock);
-- bool callVmCreatedHook(IVirtualBox *a_pVirtualBox, IMachine *a_pMachine, AutoWriteLock *a_pLock);
-- bool callVmConfigureVmmHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc);
-- bool callVmPowerOnHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc);
-- bool callVmPowerOffHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock);
-- HRESULT checkVrde(void);
-- HRESULT getVrdpLibraryName(Utf8Str *a_pstrVrdeLibrary);
-- bool wantsToBeDefaultVrde(void) const;
-- HRESULT refresh(bool *pfCanDelete);
-- /** @} */
--
--protected:
-- /** @name Internal helper methods.
-- * @{ */
-- void probeAndLoad(void);
-- bool findModule(const char *a_pszName, const char *a_pszExt, VBOXEXTPACKMODKIND a_enmKind,
-- Utf8Str *a_ppStrFound, bool *a_pfNative, PRTFSOBJINFO a_pObjInfo) const;
-- static bool objinfoIsEqual(PCRTFSOBJINFO pObjInfo1, PCRTFSOBJINFO pObjInfo2);
-- /** @} */
--
-- /** @name Extension Pack Helpers
-- * @{ */
-- static DECLCALLBACK(int) hlpFindModule(PCVBOXEXTPACKHLP pHlp, const char *pszName, const char *pszExt,
-- VBOXEXTPACKMODKIND enmKind, char *pszFound, size_t cbFound, bool *pfNative);
-- static DECLCALLBACK(int) hlpGetFilePath(PCVBOXEXTPACKHLP pHlp, const char *pszFilename, char *pszPath, size_t cbPath);
-- static DECLCALLBACK(VBOXEXTPACKCTX) hlpGetContext(PCVBOXEXTPACKHLP pHlp);
-- static DECLCALLBACK(int) hlpReservedN(PCVBOXEXTPACKHLP pHlp);
-- /** @} */
--
--private:
-- struct Data;
-- /** Pointer to the private instance. */
-- Data *m;
--
-- friend class ExtPackManager;
--};
--
--
--/**
-- * Extension pack manager.
-- */
--class ATL_NO_VTABLE ExtPackManager :
-- public VirtualBoxBase,
-- VBOX_SCRIPTABLE_IMPL(IExtPackManager)
--{
-- /** @name COM and internal init/term/mapping cruft.
-- * @{ */
-- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPackManager, IExtPackManager)
-- DECLARE_NOT_AGGREGATABLE(ExtPackManager)
-- DECLARE_PROTECT_FINAL_CONSTRUCT()
-- BEGIN_COM_MAP(ExtPackManager)
-- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPackManager)
-- END_COM_MAP()
-- DECLARE_EMPTY_CTOR_DTOR(ExtPackManager)
--
-- HRESULT FinalConstruct();
-- void FinalRelease();
-- HRESULT initExtPackManager(VirtualBox *a_pVirtualBox, VBOXEXTPACKCTX a_enmContext);
-- void uninit();
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
-- /** @} */
--
-- /** @name IExtPack interfaces
-- * @{ */
-- STDMETHOD(COMGETTER(InstalledExtPacks))(ComSafeArrayOut(IExtPack *, a_paExtPacks));
-- STDMETHOD(Find)(IN_BSTR a_bstrName, IExtPack **a_pExtPack);
-- STDMETHOD(OpenExtPackFile)(IN_BSTR a_bstrTarball, IExtPackFile **a_ppExtPackFile);
-- STDMETHOD(Uninstall)(IN_BSTR a_bstrName, BOOL a_fForcedRemoval, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress);
-- STDMETHOD(Cleanup)(void);
-- STDMETHOD(QueryAllPlugInsForFrontend)(IN_BSTR a_bstrFrontend, ComSafeArrayOut(BSTR, a_pabstrPlugInModules));
-- STDMETHOD(IsExtPackUsable(IN_BSTR a_bstrExtPack, BOOL *aUsable));
-- /** @} */
--
-- /** @name Internal interfaces used by other Main classes.
-- * @{ */
-- static DECLCALLBACK(int) doInstallThreadProc(RTTHREAD hThread, void *pvJob);
-- HRESULT doInstall(ExtPackFile *a_pExtPackFile, bool a_fReplace, Utf8Str const *a_pstrDisplayInfo);
-- static DECLCALLBACK(int) doUninstallThreadProc(RTTHREAD hThread, void *pvJob);
-- HRESULT doUninstall(const Utf8Str *a_pstrName, bool a_fForcedRemoval, const Utf8Str *a_pstrDisplayInfo);
-- void callAllVirtualBoxReadyHooks(void);
-- void callAllConsoleReadyHooks(IConsole *a_pConsole);
-- void callAllVmCreatedHooks(IMachine *a_pMachine);
-- int callAllVmConfigureVmmHooks(IConsole *a_pConsole, PVM a_pVM);
-- int callAllVmPowerOnHooks(IConsole *a_pConsole, PVM a_pVM);
-- void callAllVmPowerOffHooks(IConsole *a_pConsole, PVM a_pVM);
-- HRESULT checkVrdeExtPack(Utf8Str const *a_pstrExtPack);
-- int getVrdeLibraryPathForExtPack(Utf8Str const *a_pstrExtPack, Utf8Str *a_pstrVrdeLibrary);
-- HRESULT getDefaultVrdeExtPack(Utf8Str *a_pstrExtPack);
-- bool isExtPackUsable(const char *a_pszExtPack);
-- void dumpAllToReleaseLog(void);
-- /** @} */
--
--private:
-- HRESULT runSetUidToRootHelper(Utf8Str const *a_pstrDisplayInfo, const char *a_pszCommand, ...);
-- ExtPack *findExtPack(const char *a_pszName);
-- void removeExtPack(const char *a_pszName);
-- HRESULT refreshExtPack(const char *a_pszName, bool a_fUnsuableIsError, ExtPack **a_ppExtPack);
--
--private:
-- struct Data;
-- /** Pointer to the private instance. */
-- Data *m;
--};
--
--#endif
--/* vi: set tabstop=4 shiftwidth=4 expandtab: */
---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ExtPackUtil.h 2012-06-20 10:17:33.000000000 -0300
-+++ /dev/null 2012-07-24 14:48:18.638572110 -0300
-@@ -1,137 +0,0 @@
--/* $Id: ExtPackUtil.h $ */
--/** @file
-- * VirtualBox Main - Extension Pack Utilities and definitions, VBoxC, VBoxSVC, ++.
-- */
--
--/*
-- * Copyright (C) 2010 Oracle Corporation
-- *
-- * This file is part of VirtualBox Open Source Edition (OSE), as
-- * available from http://www.virtualbox.org. This file is free software;
-- * you can redistribute it and/or modify it under the terms of the GNU
-- * General Public License (GPL) as published by the Free Software
-- * Foundation, in version 2 as it comes in the "COPYING" file of the
-- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-- */
--
--#ifndef ____H_EXTPACKUTIL
--#define ____H_EXTPACKUTIL
--
--#include <iprt/cpp/ministring.h>
--#include <iprt/fs.h>
--#include <iprt/vfs.h>
--
--
--/** @name VBOX_EXTPACK_DESCRIPTION_NAME
-- * The name of the description file in an extension pack. */
--#define VBOX_EXTPACK_DESCRIPTION_NAME "ExtPack.xml"
--/** @name VBOX_EXTPACK_DESCRIPTION_NAME
-- * The name of the manifest file in an extension pack. */
--#define VBOX_EXTPACK_MANIFEST_NAME "ExtPack.manifest"
--/** @name VBOX_EXTPACK_SIGNATURE_NAME
-- * The name of the signature file in an extension pack. */
--#define VBOX_EXTPACK_SIGNATURE_NAME "ExtPack.signature"
--/** @name VBOX_EXTPACK_LICENSE_NAME_PREFIX
-- * The name prefix of a license file in an extension pack. There can be
-- * several license files in a pack, the variations being on locale, language
-- * and format (HTML, RTF, plain text). All extension packages shall include
-- * a */
--#define VBOX_EXTPACK_LICENSE_NAME_PREFIX "ExtPack-license"
--/** @name VBOX_EXTPACK_SUFFIX
-- * The suffix of a extension pack tarball. */
--#define VBOX_EXTPACK_SUFFIX ".vbox-extpack"
--
--/** The minimum length (strlen) of a extension pack name. */
--#define VBOX_EXTPACK_NAME_MIN_LEN 3
--/** The max length (strlen) of a extension pack name. */
--#define VBOX_EXTPACK_NAME_MAX_LEN 64
--
--/** The architecture-dependent application data subdirectory where the
-- * extension packs are installed. Relative to RTPathAppPrivateArch. */
--#define VBOX_EXTPACK_INSTALL_DIR "ExtensionPacks"
--/** The architecture-independent application data subdirectory where the
-- * certificates are installed. Relative to RTPathAppPrivateNoArch. */
--#define VBOX_EXTPACK_CERT_DIR "ExtPackCertificates"
--
--/** The maximum entry name length.
-- * Play short and safe. */
--#define VBOX_EXTPACK_MAX_MEMBER_NAME_LENGTH 128
--
--
--/**
-- * Plug-in descriptor.
-- */
--typedef struct VBOXEXTPACKPLUGINDESC
--{
-- /** The name. */
-- RTCString strName;
-- /** The module name. */
-- RTCString strModule;
-- /** The description. */
-- RTCString strDescription;
-- /** The frontend or component which it plugs into. */
-- RTCString strFrontend;
--} VBOXEXTPACKPLUGINDESC;
--/** Pointer to a plug-in descriptor. */
--typedef VBOXEXTPACKPLUGINDESC *PVBOXEXTPACKPLUGINDESC;
--
--/**
-- * Extension pack descriptor
-- *
-- * This is the internal representation of the ExtPack.xml.
-- */
--typedef struct VBOXEXTPACKDESC
--{
-- /** The name. */
-- RTCString strName;
-- /** The description. */
-- RTCString strDescription;
-- /** The version string. */
-- RTCString strVersion;
-- /** The edition string. */
-- RTCString strEdition;
-- /** The internal revision number. */
-- uint32_t uRevision;
-- /** The name of the main module. */
-- RTCString strMainModule;
-- /** The name of the VRDE module, empty if none. */
-- RTCString strVrdeModule;
-- /** The number of plug-in descriptors. */
-- uint32_t cPlugIns;
-- /** Pointer to an array of plug-in descriptors. */
-- PVBOXEXTPACKPLUGINDESC paPlugIns;
-- /** Whether to show the license prior to installation. */
-- bool fShowLicense;
--} VBOXEXTPACKDESC;
--
--/** Pointer to a extension pack descriptor. */
--typedef VBOXEXTPACKDESC *PVBOXEXTPACKDESC;
--/** Pointer to a const extension pack descriptor. */
--typedef VBOXEXTPACKDESC const *PCVBOXEXTPACKDESC;
--
--
--void VBoxExtPackInitDesc(PVBOXEXTPACKDESC a_pExtPackDesc);
--RTCString *VBoxExtPackLoadDesc(const char *a_pszDir, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo);
--RTCString *VBoxExtPackLoadDescFromVfsFile(RTVFSFILE hVfsFile, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo);
--RTCString *VBoxExtPackExtractNameFromTarballPath(const char *pszTarball);
--void VBoxExtPackFreeDesc(PVBOXEXTPACKDESC a_pExtPackDesc);
--bool VBoxExtPackIsValidName(const char *pszName);
--bool VBoxExtPackIsValidMangledName(const char *pszMangledName, size_t cchMax = RTSTR_MAX);
--RTCString *VBoxExtPackMangleName(const char *pszName);
--RTCString *VBoxExtPackUnmangleName(const char *pszMangledName, size_t cbMax);
--int VBoxExtPackCalcDir(char *pszExtPackDir, size_t cbExtPackDir, const char *pszParentDir, const char *pszName);
--bool VBoxExtPackIsValidVersionString(const char *pszVersion);
--bool VBoxExtPackIsValidEditionString(const char *pszEdition);
--bool VBoxExtPackIsValidModuleString(const char *pszModule);
--
--int VBoxExtPackValidateMember(const char *pszName, RTVFSOBJTYPE enmType, RTVFSOBJ hVfsObj, char *pszError, size_t cbError);
--int VBoxExtPackOpenTarFss(RTFILE hTarballFile, char *pszError, size_t cbError, PRTVFSFSSTREAM phTarFss, PRTMANIFEST phFileManifest);
--int VBoxExtPackValidateTarball(RTFILE hTarballFile, const char *pszExtPackName,
-- const char *pszTarball, const char *pszTarballDigest,
-- char *pszError, size_t cbError,
-- PRTMANIFEST phValidManifest, PRTVFSFILE phXmlFile, RTCString *pStrDigest);
--
--
--#endif
--
---- VirtualBox-4.1.18.orig/src/VBox/Main/src-all/ExtPackManagerImpl.cpp 2012-06-20 10:17:34.000000000 -0300
-+++ /dev/null 2012-07-24 14:48:18.638572110 -0300
-@@ -1,3126 +0,0 @@
--/* $Id: ExtPackManagerImpl.cpp $ */
--/** @file
-- * VirtualBox Main - interface for Extension Packs, VBoxSVC & VBoxC.
-- */
--
--/*
-- * Copyright (C) 2010 Oracle Corporation
-- *
-- * This file is part of VirtualBox Open Source Edition (OSE), as
-- * available from http://www.virtualbox.org. This file is free software;
-- * you can redistribute it and/or modify it under the terms of the GNU
-- * General Public License (GPL) as published by the Free Software
-- * Foundation, in version 2 as it comes in the "COPYING" file of the
-- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-- */
--
--
--/*******************************************************************************
--* Header Files *
--*******************************************************************************/
--#include "ExtPackManagerImpl.h"
--#include "ExtPackUtil.h"
--
--#include <iprt/buildconfig.h>
--#include <iprt/ctype.h>
--#include <iprt/dir.h>
--#include <iprt/env.h>
--#include <iprt/file.h>
--#include <iprt/ldr.h>
--#include <iprt/manifest.h>
--#include <iprt/param.h>
--#include <iprt/path.h>
--#include <iprt/pipe.h>
--#include <iprt/process.h>
--#include <iprt/string.h>
--
--#include <VBox/com/array.h>
--#include <VBox/com/ErrorInfo.h>
--#include <VBox/err.h>
--#include <VBox/log.h>
--#include <VBox/sup.h>
--#include <VBox/version.h>
--#include "AutoCaller.h"
--#include "Global.h"
--#include "ProgressImpl.h"
--#include "SystemPropertiesImpl.h"
--#include "VirtualBoxImpl.h"
--
--
--/*******************************************************************************
--* Defined Constants And Macros *
--*******************************************************************************/
--/** @name VBOX_EXTPACK_HELPER_NAME
-- * The name of the utility application we employ to install and uninstall the
-- * extension packs. This is a set-uid-to-root binary on unixy platforms, which
-- * is why it has to be a separate application.
-- */
--#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2)
--# define VBOX_EXTPACK_HELPER_NAME "VBoxExtPackHelperApp.exe"
--#else
--# define VBOX_EXTPACK_HELPER_NAME "VBoxExtPackHelperApp"
--#endif
--
--
--/*******************************************************************************
--* Structures and Typedefs *
--*******************************************************************************/
--struct ExtPackBaseData
--{
--public:
-- /** The extension pack descriptor (loaded from the XML, mostly). */
-- VBOXEXTPACKDESC Desc;
-- /** The file system object info of the XML file.
-- * This is for detecting changes and save time in refresh(). */
-- RTFSOBJINFO ObjInfoDesc;
-- /** Whether it's usable or not. */
-- bool fUsable;
-- /** Why it is unusable. */
-- Utf8Str strWhyUnusable;
--};
--
--/**
-- * Private extension pack data.
-- */
--struct ExtPackFile::Data : public ExtPackBaseData
--{
--public:
-- /** The path to the tarball. */
-- Utf8Str strExtPackFile;
-- /** The SHA-256 hash of the file (as string). */
-- Utf8Str strDigest;
-- /** The file handle of the extension pack file. */
-- RTFILE hExtPackFile;
-- /** Our manifest for the tarball. */
-- RTMANIFEST hOurManifest;
-- /** Pointer to the extension pack manager. */
-- ComObjPtr<ExtPackManager> ptrExtPackMgr;
-- /** Pointer to the VirtualBox object so we can create a progress object. */
-- VirtualBox *pVirtualBox;
--
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
--};
--
--/**
-- * Private extension pack data.
-- */
--struct ExtPack::Data : public ExtPackBaseData
--{
--public:
-- /** Where the extension pack is located. */
-- Utf8Str strExtPackPath;
-- /** The file system object info of the extension pack directory.
-- * This is for detecting changes and save time in refresh(). */
-- RTFSOBJINFO ObjInfoExtPack;
-- /** The full path to the main module. */
-- Utf8Str strMainModPath;
-- /** The file system object info of the main module.
-- * This is used to determin whether to bother try reload it. */
-- RTFSOBJINFO ObjInfoMainMod;
-- /** The module handle of the main extension pack module. */
-- RTLDRMOD hMainMod;
--
-- /** The helper callbacks for the extension pack. */
-- VBOXEXTPACKHLP Hlp;
-- /** Pointer back to the extension pack object (for Hlp methods). */
-- ExtPack *pThis;
-- /** The extension pack registration structure. */
-- PCVBOXEXTPACKREG pReg;
-- /** The current context. */
-- VBOXEXTPACKCTX enmContext;
-- /** Set if we've made the pfnVirtualBoxReady or pfnConsoleReady call. */
-- bool fMadeReadyCall;
--
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
--};
--
--/** List of extension packs. */
--typedef std::list< ComObjPtr<ExtPack> > ExtPackList;
--
--/**
-- * Private extension pack manager data.
-- */
--struct ExtPackManager::Data
--{
-- /** The directory where the extension packs are installed. */
-- Utf8Str strBaseDir;
-- /** The directory where the certificates this installation recognizes are
-- * stored. */
-- Utf8Str strCertificatDirPath;
-- /** The list of installed extension packs. */
-- ExtPackList llInstalledExtPacks;
-- /** Pointer to the VirtualBox object, our parent. */
-- VirtualBox *pVirtualBox;
-- /** The current context. */
-- VBOXEXTPACKCTX enmContext;
--#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_DARWIN)
-- /** File handle for the VBoxVMM libary which we slurp because ExtPacks depend on it. */
-- RTLDRMOD hVBoxVMM;
--#endif
--
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
--};
--
--/**
-- * Extension pack installation job.
-- */
--typedef struct EXTPACKINSTALLJOB
--{
-- /** Smart pointer to the extension pack file. */
-- ComPtr<ExtPackFile> ptrExtPackFile;
-- /** The replace argument. */
-- bool fReplace;
-- /** The display info argument. */
-- Utf8Str strDisplayInfo;
-- /** Smart pointer to the extension manager. */
-- ComPtr<ExtPackManager> ptrExtPackMgr;
-- /** Smart pointer to the progress object for this job. */
-- ComObjPtr<Progress> ptrProgress;
--} EXTPACKINSTALLJOB;
--/** Pointer to an extension pack installation job. */
--typedef EXTPACKINSTALLJOB *PEXTPACKINSTALLJOB;
--
--/**
-- * Extension pack uninstallation job.
-- */
--typedef struct EXTPACKUNINSTALLJOB
--{
-- /** Smart pointer to the extension manager. */
-- ComPtr<ExtPackManager> ptrExtPackMgr;
-- /** The name of the extension pack. */
-- Utf8Str strName;
-- /** The replace argument. */
-- bool fForcedRemoval;
-- /** The display info argument. */
-- Utf8Str strDisplayInfo;
-- /** Smart pointer to the progress object for this job. */
-- ComObjPtr<Progress> ptrProgress;
--} EXTPACKUNINSTALLJOB;
--/** Pointer to an extension pack uninstallation job. */
--typedef EXTPACKUNINSTALLJOB *PEXTPACKUNINSTALLJOB;
--
--
--DEFINE_EMPTY_CTOR_DTOR(ExtPackFile)
--
--/**
-- * Called by ComObjPtr::createObject when creating the object.
-- *
-- * Just initialize the basic object state, do the rest in initWithDir().
-- *
-- * @returns S_OK.
-- */
--HRESULT ExtPackFile::FinalConstruct()
--{
-- m = NULL;
-- return BaseFinalConstruct();
--}
--
--/**
-- * Initializes the extension pack by reading its file.
-- *
-- * @returns COM status code.
-- * @param a_pszFile The path to the extension pack file.
-- * @param a_pszDigest The SHA-256 digest of the file. Or an empty string.
-- * @param a_pExtPackMgr Pointer to the extension pack manager.
-- * @param a_pVirtualBox Pointer to the VirtualBox object.
-- */
--HRESULT ExtPackFile::initWithFile(const char *a_pszFile, const char *a_pszDigest, ExtPackManager *a_pExtPackMgr, VirtualBox *a_pVirtualBox)
--{
-- AutoInitSpan autoInitSpan(this);
-- AssertReturn(autoInitSpan.isOk(), E_FAIL);
--
-- /*
-- * Allocate + initialize our private data.
-- */
-- m = new ExtPackFile::Data;
-- VBoxExtPackInitDesc(&m->Desc);
-- RT_ZERO(m->ObjInfoDesc);
-- m->fUsable = false;
-- m->strWhyUnusable = tr("ExtPack::init failed");
-- m->strExtPackFile = a_pszFile;
-- m->strDigest = a_pszDigest;
-- m->hExtPackFile = NIL_RTFILE;
-- m->hOurManifest = NIL_RTMANIFEST;
-- m->ptrExtPackMgr = a_pExtPackMgr;
-- m->pVirtualBox = a_pVirtualBox;
--
-- RTCString *pstrTarName = VBoxExtPackExtractNameFromTarballPath(a_pszFile);
-- if (pstrTarName)
-- {
-- m->Desc.strName = *pstrTarName;
-- delete pstrTarName;
-- pstrTarName = NULL;
-- }
--
-- autoInitSpan.setSucceeded();
--
-- /*
-- * Try open the extension pack and check that it is a regular file.
-- */
-- int vrc = RTFileOpen(&m->hExtPackFile, a_pszFile,
-- RTFILE_O_READ | RTFILE_O_DENY_WRITE | RTFILE_O_OPEN);
-- if (RT_FAILURE(vrc))
-- {
-- if (vrc == VERR_FILE_NOT_FOUND || vrc == VERR_PATH_NOT_FOUND)
-- return initFailed(tr("'%s' file not found"), a_pszFile);
-- return initFailed(tr("RTFileOpen('%s',,) failed with %Rrc"), a_pszFile, vrc);
-- }
--
-- RTFSOBJINFO ObjInfo;
-- vrc = RTFileQueryInfo(m->hExtPackFile, &ObjInfo, RTFSOBJATTRADD_UNIX);
-- if (RT_FAILURE(vrc))
-- return initFailed(tr("RTFileQueryInfo failed with %Rrc on '%s'"), vrc, a_pszFile);
-- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode))
-- return initFailed(tr("Not a regular file: %s"), a_pszFile);
--
-- /*
-- * Validate the tarball and extract the XML file.
-- */
-- char szError[8192];
-- RTVFSFILE hXmlFile;
-- vrc = VBoxExtPackValidateTarball(m->hExtPackFile, NULL /*pszExtPackName*/, a_pszFile, a_pszDigest,
-- szError, sizeof(szError), &m->hOurManifest, &hXmlFile, &m->strDigest);
-- if (RT_FAILURE(vrc))
-- return initFailed(tr("%s"), szError);
--
-- /*
-- * Parse the XML.
-- */
-- RTCString strSavedName(m->Desc.strName);
-- RTCString *pStrLoadErr = VBoxExtPackLoadDescFromVfsFile(hXmlFile, &m->Desc, &m->ObjInfoDesc);
-- RTVfsFileRelease(hXmlFile);
-- if (pStrLoadErr != NULL)
-- {
-- m->strWhyUnusable.printf(tr("Failed to the xml file: %s"), pStrLoadErr->c_str());
-- m->Desc.strName = strSavedName;
-- delete pStrLoadErr;
-- return S_OK;
-- }
--
-- /*
-- * Match the tarball name with the name from the XML.
-- */
-- /** @todo drop this restriction after the old install interface is
-- * dropped. */
-- if (!strSavedName.equalsIgnoreCase(m->Desc.strName))
-- return initFailed(tr("Extension pack name mismatch between the downloaded file and the XML inside it (xml='%s' file='%s')"),
-- m->Desc.strName.c_str(), strSavedName.c_str());
--
-- m->fUsable = true;
-- m->strWhyUnusable.setNull();
-- return S_OK;
--}
--
--/**
-- * Protected helper that formats the strWhyUnusable value.
-- *
-- * @returns S_OK
-- * @param a_pszWhyFmt Why it failed, format string.
-- * @param ... The format arguments.
-- */
--HRESULT ExtPackFile::initFailed(const char *a_pszWhyFmt, ...)
--{
-- va_list va;
-- va_start(va, a_pszWhyFmt);
-- m->strWhyUnusable.printfV(a_pszWhyFmt, va);
-- va_end(va);
-- return S_OK;
--}
--
--/**
-- * COM cruft.
-- */
--void ExtPackFile::FinalRelease()
--{
-- uninit();
-- BaseFinalRelease();
--}
--
--/**
-- * Do the actual cleanup.
-- */
--void ExtPackFile::uninit()
--{
-- /* Enclose the state transition Ready->InUninit->NotReady */
-- AutoUninitSpan autoUninitSpan(this);
-- if (!autoUninitSpan.uninitDone() && m != NULL)
-- {
-- VBoxExtPackFreeDesc(&m->Desc);
-- RTFileClose(m->hExtPackFile);
-- m->hExtPackFile = NIL_RTFILE;
-- RTManifestRelease(m->hOurManifest);
-- m->hOurManifest = NIL_RTMANIFEST;
--
-- delete m;
-- m = NULL;
-- }
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(Name)(BSTR *a_pbstrName)
--{
-- CheckComArgOutPointerValid(a_pbstrName);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strName);
-- str.cloneTo(a_pbstrName);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(Description)(BSTR *a_pbstrDescription)
--{
-- CheckComArgOutPointerValid(a_pbstrDescription);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strDescription);
-- str.cloneTo(a_pbstrDescription);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(Version)(BSTR *a_pbstrVersion)
--{
-- CheckComArgOutPointerValid(a_pbstrVersion);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- /* HACK ALERT: This is for easing backporting to 4.1. The edition stuff
-- will be changed into a separate */
-- if (m->Desc.strEdition.isEmpty())
-- {
-- Bstr str(m->Desc.strVersion);
-- str.cloneTo(a_pbstrVersion);
-- }
-- else
-- {
-- RTCString strHack(m->Desc.strVersion);
-- strHack.append('-');
-- strHack.append(m->Desc.strEdition);
--
-- Bstr str(strHack);
-- str.cloneTo(a_pbstrVersion);
-- }
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(Revision)(ULONG *a_puRevision)
--{
-- CheckComArgOutPointerValid(a_puRevision);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_puRevision = m->Desc.uRevision;
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(VRDEModule)(BSTR *a_pbstrVrdeModule)
--{
-- CheckComArgOutPointerValid(a_pbstrVrdeModule);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strVrdeModule);
-- str.cloneTo(a_pbstrVrdeModule);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(PlugIns)(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns))
--{
-- /** @todo implement plug-ins. */
--#ifdef VBOX_WITH_XPCOM
-- NOREF(a_paPlugIns);
-- NOREF(a_paPlugInsSize);
--#endif
-- ReturnComNotImplemented();
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(Usable)(BOOL *a_pfUsable)
--{
-- CheckComArgOutPointerValid(a_pfUsable);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_pfUsable = m->fUsable;
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(WhyUnusable)(BSTR *a_pbstrWhy)
--{
-- CheckComArgOutPointerValid(a_pbstrWhy);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- m->strWhyUnusable.cloneTo(a_pbstrWhy);
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(ShowLicense)(BOOL *a_pfShowIt)
--{
-- CheckComArgOutPointerValid(a_pfShowIt);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_pfShowIt = m->Desc.fShowLicense;
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(License)(BSTR *a_pbstrHtmlLicense)
--{
-- Bstr bstrHtml("html");
-- return QueryLicense(Bstr::Empty.raw(), Bstr::Empty.raw(), bstrHtml.raw(), a_pbstrHtmlLicense);
--}
--
--/* Same as ExtPack::QueryLicense, should really explore the subject of base classes here... */
--STDMETHODIMP ExtPackFile::QueryLicense(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, IN_BSTR a_bstrFormat,
-- BSTR *a_pbstrLicense)
--{
-- /*
-- * Validate input.
-- */
-- CheckComArgOutPointerValid(a_pbstrLicense);
-- CheckComArgNotNull(a_bstrPreferredLocale);
-- CheckComArgNotNull(a_bstrPreferredLanguage);
-- CheckComArgNotNull(a_bstrFormat);
--
-- Utf8Str strPreferredLocale(a_bstrPreferredLocale);
-- if (strPreferredLocale.length() != 2 && strPreferredLocale.length() != 0)
-- return setError(E_FAIL, tr("The preferred locale is a two character string or empty."));
--
-- Utf8Str strPreferredLanguage(a_bstrPreferredLanguage);
-- if (strPreferredLanguage.length() != 2 && strPreferredLanguage.length() != 0)
-- return setError(E_FAIL, tr("The preferred lanuage is a two character string or empty."));
--
-- Utf8Str strFormat(a_bstrFormat);
-- if ( !strFormat.equals("html")
-- && !strFormat.equals("rtf")
-- && !strFormat.equals("txt"))
-- return setError(E_FAIL, tr("The license format can only have the values 'html', 'rtf' and 'txt'."));
--
-- /*
-- * Combine the options to form a file name before locking down anything.
-- */
-- char szName[sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX "-de_DE.html") + 2];
-- if (strPreferredLocale.isNotEmpty() && strPreferredLanguage.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s_%s.%s",
-- strPreferredLocale.c_str(), strPreferredLanguage.c_str(), strFormat.c_str());
-- else if (strPreferredLocale.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s.%s", strPreferredLocale.c_str(), strFormat.c_str());
-- else if (strPreferredLanguage.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-_%s.%s", strPreferredLocale.c_str(), strFormat.c_str());
-- else
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX ".%s", strFormat.c_str());
--
-- /*
-- * Lock the extension pack. We need a write lock here as there must not be
-- * concurrent accesses to the tar file handle.
-- */
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- /*
-- * Do not permit this query on a pack that isn't considered usable (could
-- * be marked so because of bad license files).
-- */
-- if (!m->fUsable)
-- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str());
-- else
-- {
-- /*
-- * Look it up in the manifest before scanning the tarball for it
-- */
-- if (RTManifestEntryExists(m->hOurManifest, szName))
-- {
-- RTVFSFSSTREAM hTarFss;
-- char szError[8192];
-- int vrc = VBoxExtPackOpenTarFss(m->hExtPackFile, szError, sizeof(szError), &hTarFss, NULL);
-- if (RT_SUCCESS(vrc))
-- {
-- for (;;)
-- {
-- /* Get the first/next. */
-- char *pszName;
-- RTVFSOBJ hVfsObj;
-- RTVFSOBJTYPE enmType;
-- vrc = RTVfsFsStrmNext(hTarFss, &pszName, &enmType, &hVfsObj);
-- if (RT_FAILURE(vrc))
-- {
-- if (vrc != VERR_EOF)
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTVfsFsStrmNext failed: %Rrc"), vrc);
-- else
-- hrc = setError(E_UNEXPECTED, tr("'%s' was found in the manifest but not in the tarball"), szName);
-- break;
-- }
--
-- /* Is this it? */
-- const char *pszAdjName = pszName[0] == '.' && pszName[1] == '/' ? &pszName[2] : pszName;
-- if ( !strcmp(pszAdjName, szName)
-- && ( enmType == RTVFSOBJTYPE_IO_STREAM
-- || enmType == RTVFSOBJTYPE_FILE))
-- {
-- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(hVfsObj);
-- RTVfsObjRelease(hVfsObj);
-- RTStrFree(pszName);
--
-- /* Load the file into memory. */
-- RTFSOBJINFO ObjInfo;
-- vrc = RTVfsIoStrmQueryInfo(hVfsIos, &ObjInfo, RTFSOBJATTRADD_NOTHING);
-- if (RT_SUCCESS(vrc))
-- {
-- size_t cbFile = (size_t)ObjInfo.cbObject;
-- void *pvFile = RTMemAllocZ(cbFile + 1);
-- if (pvFile)
-- {
-- vrc = RTVfsIoStrmRead(hVfsIos, pvFile, cbFile, true /*fBlocking*/, NULL);
-- if (RT_SUCCESS(vrc))
-- {
-- /* try translate it into a string we can return. */
-- Bstr bstrLicense((const char *)pvFile, cbFile);
-- if (bstrLicense.isNotEmpty())
-- {
-- bstrLicense.detachTo(a_pbstrLicense);
-- hrc = S_OK;
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR,
-- tr("The license file '%s' is empty or contains invalid UTF-8 encoding"),
-- szName);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to read '%s': %Rrc"), szName, vrc);
-- RTMemFree(pvFile);
-- }
-- else
-- hrc = setError(E_OUTOFMEMORY, tr("Failed to allocate %zu bytes for '%s'"), cbFile, szName);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTVfsIoStrmQueryInfo on '%s': %Rrc"), szName, vrc);
-- RTVfsIoStrmRelease(hVfsIos);
-- break;
-- }
--
-- /* Release current. */
-- RTVfsObjRelease(hVfsObj);
-- RTStrFree(pszName);
-- }
-- RTVfsFsStrmRelease(hTarFss);
-- }
-- else
-- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("%s"), szError);
-- }
-- else
-- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("The license file '%s' was not found in '%s'"),
-- szName, m->strExtPackFile.c_str());
-- }
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(FilePath)(BSTR *a_pbstrPath)
--{
-- CheckComArgOutPointerValid(a_pbstrPath);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- m->strExtPackFile.cloneTo(a_pbstrPath);
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::Install(BOOL a_fReplace, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress)
--{
-- if (a_ppProgress)
-- *a_ppProgress = NULL;
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- if (m->fUsable)
-- {
-- PEXTPACKINSTALLJOB pJob = NULL;
-- try
-- {
-- pJob = new EXTPACKINSTALLJOB;
-- pJob->ptrExtPackFile = this;
-- pJob->fReplace = a_fReplace != FALSE;
-- pJob->strDisplayInfo = a_bstrDisplayInfo;
-- pJob->ptrExtPackMgr = m->ptrExtPackMgr;
-- hrc = pJob->ptrProgress.createObject();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr bstrDescription = tr("Installing extension pack");
-- hrc = pJob->ptrProgress->init(
--#ifndef VBOX_COM_INPROC
-- m->pVirtualBox,
--#endif
-- static_cast<IExtPackFile *>(this),
-- bstrDescription.raw(),
-- FALSE /*aCancelable*/,
-- NULL /*aId*/);
-- }
-- if (SUCCEEDED(hrc))
-- {
-- ComPtr<Progress> ptrProgress = pJob->ptrProgress;
-- int vrc = RTThreadCreate(NULL /*phThread*/, ExtPackManager::doInstallThreadProc, pJob, 0,
-- RTTHREADTYPE_DEFAULT, 0 /*fFlags*/, "ExtPackInst");
-- if (RT_SUCCESS(vrc))
-- {
-- pJob = NULL; /* the thread deletes it */
-- ptrProgress.queryInterfaceTo(a_ppProgress);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTThreadCreate failed with %Rrc"), vrc);
-- }
-- }
-- catch (std::bad_alloc)
-- {
-- hrc = E_OUTOFMEMORY;
-- }
-- if (pJob)
-- delete pJob;
-- }
-- else
-- hrc = setError(E_FAIL, "%s", m->strWhyUnusable.c_str());
-- }
-- return hrc;
--}
--
--
--
--
--
--DEFINE_EMPTY_CTOR_DTOR(ExtPack)
--
--/**
-- * Called by ComObjPtr::createObject when creating the object.
-- *
-- * Just initialize the basic object state, do the rest in initWithDir().
-- *
-- * @returns S_OK.
-- */
--HRESULT ExtPack::FinalConstruct()
--{
-- m = NULL;
-- return S_OK;
--}
--
--/**
-- * Initializes the extension pack by reading its file.
-- *
-- * @returns COM status code.
-- * @param a_enmContext The context we're in.
-- * @param a_pszName The name of the extension pack. This is also the
-- * name of the subdirector under @a a_pszParentDir
-- * where the extension pack is installed.
-- * @param a_pszDir The extension pack directory name.
-- */
--HRESULT ExtPack::initWithDir(VBOXEXTPACKCTX a_enmContext, const char *a_pszName, const char *a_pszDir)
--{
-- AutoInitSpan autoInitSpan(this);
-- AssertReturn(autoInitSpan.isOk(), E_FAIL);
--
-- static const VBOXEXTPACKHLP s_HlpTmpl =
-- {
-- /* u32Version = */ VBOXEXTPACKHLP_VERSION,
-- /* uVBoxFullVersion = */ VBOX_FULL_VERSION,
-- /* uVBoxVersionRevision = */ 0,
-- /* u32Padding = */ 0,
-- /* pszVBoxVersion = */ "",
-- /* pfnFindModule = */ ExtPack::hlpFindModule,
-- /* pfnGetFilePath = */ ExtPack::hlpGetFilePath,
-- /* pfnGetContext = */ ExtPack::hlpGetContext,
-- /* pfnReserved1 = */ ExtPack::hlpReservedN,
-- /* pfnReserved2 = */ ExtPack::hlpReservedN,
-- /* pfnReserved3 = */ ExtPack::hlpReservedN,
-- /* pfnReserved4 = */ ExtPack::hlpReservedN,
-- /* pfnReserved5 = */ ExtPack::hlpReservedN,
-- /* pfnReserved6 = */ ExtPack::hlpReservedN,
-- /* pfnReserved7 = */ ExtPack::hlpReservedN,
-- /* pfnReserved8 = */ ExtPack::hlpReservedN,
-- /* pfnReserved9 = */ ExtPack::hlpReservedN,
-- /* u32EndMarker = */ VBOXEXTPACKHLP_VERSION
-- };
--
-- /*
-- * Allocate + initialize our private data.
-- */
-- m = new Data;
-- VBoxExtPackInitDesc(&m->Desc);
-- m->Desc.strName = a_pszName;
-- RT_ZERO(m->ObjInfoDesc);
-- m->fUsable = false;
-- m->strWhyUnusable = tr("ExtPack::init failed");
-- m->strExtPackPath = a_pszDir;
-- RT_ZERO(m->ObjInfoExtPack);
-- m->strMainModPath.setNull();
-- RT_ZERO(m->ObjInfoMainMod);
-- m->hMainMod = NIL_RTLDRMOD;
-- m->Hlp = s_HlpTmpl;
-- m->Hlp.pszVBoxVersion = RTBldCfgVersion();
-- m->Hlp.uVBoxInternalRevision = RTBldCfgRevision();
-- m->pThis = this;
-- m->pReg = NULL;
-- m->enmContext = a_enmContext;
-- m->fMadeReadyCall = false;
--
-- /*
-- * Probe the extension pack (this code is shared with refresh()).
-- */
-- probeAndLoad();
--
-- autoInitSpan.setSucceeded();
-- return S_OK;
--}
--
--/**
-- * COM cruft.
-- */
--void ExtPack::FinalRelease()
--{
-- uninit();
--}
--
--/**
-- * Do the actual cleanup.
-- */
--void ExtPack::uninit()
--{
-- /* Enclose the state transition Ready->InUninit->NotReady */
-- AutoUninitSpan autoUninitSpan(this);
-- if (!autoUninitSpan.uninitDone() && m != NULL)
-- {
-- if (m->hMainMod != NIL_RTLDRMOD)
-- {
-- AssertPtr(m->pReg);
-- if (m->pReg->pfnUnload != NULL)
-- m->pReg->pfnUnload(m->pReg);
--
-- RTLdrClose(m->hMainMod);
-- m->hMainMod = NIL_RTLDRMOD;
-- m->pReg = NULL;
-- }
--
-- VBoxExtPackFreeDesc(&m->Desc);
--
-- delete m;
-- m = NULL;
-- }
--}
--
--
--/**
-- * Calls the installed hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pVirtualBox The VirtualBox interface.
-- * @param a_pLock The write lock held by the caller.
-- * @param pErrInfo Where to return error information.
-- */
--bool ExtPack::callInstalledHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock, PRTERRINFO pErrInfo)
--{
-- if ( m != NULL
-- && m->hMainMod != NIL_RTLDRMOD)
-- {
-- if (m->pReg->pfnInstalled)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- pErrInfo->rc = m->pReg->pfnInstalled(m->pReg, a_pVirtualBox, pErrInfo);
-- a_pLock->acquire();
-- return true;
-- }
-- }
-- pErrInfo->rc = VINF_SUCCESS;
-- return false;
--}
--
--/**
-- * Calls the uninstall hook and closes the module.
-- *
-- * @returns S_OK or COM error status with error information.
-- * @param a_pVirtualBox The VirtualBox interface.
-- * @param a_fForcedRemoval When set, we'll ignore complaints from the
-- * uninstall hook.
-- * @remarks The caller holds the manager's write lock, not released.
-- */
--HRESULT ExtPack::callUninstallHookAndClose(IVirtualBox *a_pVirtualBox, bool a_fForcedRemoval)
--{
-- HRESULT hrc = S_OK;
--
-- if ( m != NULL
-- && m->hMainMod != NIL_RTLDRMOD)
-- {
-- if (m->pReg->pfnUninstall && !a_fForcedRemoval)
-- {
-- int vrc = m->pReg->pfnUninstall(m->pReg, a_pVirtualBox);
-- if (RT_FAILURE(vrc))
-- {
-- LogRel(("ExtPack pfnUninstall returned %Rrc for %s\n", vrc, m->Desc.strName.c_str()));
-- if (!a_fForcedRemoval)
-- hrc = setError(E_FAIL, tr("pfnUninstall returned %Rrc"), vrc);
-- }
-- }
-- if (SUCCEEDED(hrc))
-- {
-- RTLdrClose(m->hMainMod);
-- m->hMainMod = NIL_RTLDRMOD;
-- m->pReg = NULL;
-- }
-- }
--
-- return hrc;
--}
--
--/**
-- * Calls the pfnVirtualBoxReady hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pVirtualBox The VirtualBox interface.
-- * @param a_pLock The write lock held by the caller.
-- */
--bool ExtPack::callVirtualBoxReadyHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock)
--{
-- if ( m != NULL
-- && m->fUsable
-- && !m->fMadeReadyCall)
-- {
-- m->fMadeReadyCall = true;
-- if (m->pReg->pfnVirtualBoxReady)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- m->pReg->pfnVirtualBoxReady(m->pReg, a_pVirtualBox);
-- a_pLock->acquire();
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Calls the pfnConsoleReady hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pConsole The Console interface.
-- * @param a_pLock The write lock held by the caller.
-- */
--bool ExtPack::callConsoleReadyHook(IConsole *a_pConsole, AutoWriteLock *a_pLock)
--{
-- if ( m != NULL
-- && m->fUsable
-- && !m->fMadeReadyCall)
-- {
-- m->fMadeReadyCall = true;
-- if (m->pReg->pfnConsoleReady)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- m->pReg->pfnConsoleReady(m->pReg, a_pConsole);
-- a_pLock->acquire();
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Calls the pfnVMCreate hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pVirtualBox The VirtualBox interface.
-- * @param a_pMachine The machine interface of the new VM.
-- * @param a_pLock The write lock held by the caller.
-- */
--bool ExtPack::callVmCreatedHook(IVirtualBox *a_pVirtualBox, IMachine *a_pMachine, AutoWriteLock *a_pLock)
--{
-- if ( m != NULL
-- && m->fUsable)
-- {
-- if (m->pReg->pfnVMCreated)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- m->pReg->pfnVMCreated(m->pReg, a_pVirtualBox, a_pMachine);
-- a_pLock->acquire();
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Calls the pfnVMConfigureVMM hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pConsole The console interface.
-- * @param a_pVM The VM handle.
-- * @param a_pLock The write lock held by the caller.
-- * @param a_pvrc Where to return the status code of the
-- * callback. This is always set. LogRel is
-- * called on if a failure status is returned.
-- */
--bool ExtPack::callVmConfigureVmmHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc)
--{
-- *a_pvrc = VINF_SUCCESS;
-- if ( m != NULL
-- && m->fUsable)
-- {
-- if (m->pReg->pfnVMConfigureVMM)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- int vrc = m->pReg->pfnVMConfigureVMM(m->pReg, a_pConsole, a_pVM);
-- *a_pvrc = vrc;
-- a_pLock->acquire();
-- if (RT_FAILURE(vrc))
-- LogRel(("ExtPack pfnVMConfigureVMM returned %Rrc for %s\n", vrc, m->Desc.strName.c_str()));
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Calls the pfnVMPowerOn hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pConsole The console interface.
-- * @param a_pVM The VM handle.
-- * @param a_pLock The write lock held by the caller.
-- * @param a_pvrc Where to return the status code of the
-- * callback. This is always set. LogRel is
-- * called on if a failure status is returned.
-- */
--bool ExtPack::callVmPowerOnHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc)
--{
-- *a_pvrc = VINF_SUCCESS;
-- if ( m != NULL
-- && m->fUsable)
-- {
-- if (m->pReg->pfnVMPowerOn)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- int vrc = m->pReg->pfnVMPowerOn(m->pReg, a_pConsole, a_pVM);
-- *a_pvrc = vrc;
-- a_pLock->acquire();
-- if (RT_FAILURE(vrc))
-- LogRel(("ExtPack pfnVMPowerOn returned %Rrc for %s\n", vrc, m->Desc.strName.c_str()));
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Calls the pfnVMPowerOff hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pConsole The console interface.
-- * @param a_pVM The VM handle.
-- * @param a_pLock The write lock held by the caller.
-- */
--bool ExtPack::callVmPowerOffHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock)
--{
-- if ( m != NULL
-- && m->fUsable)
-- {
-- if (m->pReg->pfnVMPowerOff)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- m->pReg->pfnVMPowerOff(m->pReg, a_pConsole, a_pVM);
-- a_pLock->acquire();
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Check if the extension pack is usable and has an VRDE module.
-- *
-- * @returns S_OK or COM error status with error information.
-- *
-- * @remarks Caller holds the extension manager lock for reading, no locking
-- * necessary.
-- */
--HRESULT ExtPack::checkVrde(void)
--{
-- HRESULT hrc;
-- if ( m != NULL
-- && m->fUsable)
-- {
-- if (m->Desc.strVrdeModule.isNotEmpty())
-- hrc = S_OK;
-- else
-- hrc = setError(E_FAIL, tr("The extension pack '%s' does not include a VRDE module"), m->Desc.strName.c_str());
-- }
-- else
-- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str());
-- return hrc;
--}
--
--/**
-- * Same as checkVrde(), except that it also resolves the path to the module.
-- *
-- * @returns S_OK or COM error status with error information.
-- * @param a_pstrVrdeLibrary Where to return the path on success.
-- *
-- * @remarks Caller holds the extension manager lock for reading, no locking
-- * necessary.
-- */
--HRESULT ExtPack::getVrdpLibraryName(Utf8Str *a_pstrVrdeLibrary)
--{
-- HRESULT hrc = checkVrde();
-- if (SUCCEEDED(hrc))
-- {
-- if (findModule(m->Desc.strVrdeModule.c_str(), NULL, VBOXEXTPACKMODKIND_R3,
-- a_pstrVrdeLibrary, NULL /*a_pfNative*/, NULL /*a_pObjInfo*/))
-- hrc = S_OK;
-- else
-- hrc = setError(E_FAIL, tr("Failed to locate the VRDE module '%s' in extension pack '%s'"),
-- m->Desc.strVrdeModule.c_str(), m->Desc.strName.c_str());
-- }
-- return hrc;
--}
--
--/**
-- * Check if this extension pack wishes to be the default VRDE provider.
-- *
-- * @returns @c true if it wants to and it is in a usable state, otherwise
-- * @c false.
-- *
-- * @remarks Caller holds the extension manager lock for reading, no locking
-- * necessary.
-- */
--bool ExtPack::wantsToBeDefaultVrde(void) const
--{
-- return m->fUsable
-- && m->Desc.strVrdeModule.isNotEmpty();
--}
--
--/**
-- * Refreshes the extension pack state.
-- *
-- * This is called by the manager so that the on disk changes are picked up.
-- *
-- * @returns S_OK or COM error status with error information.
-- *
-- * @param a_pfCanDelete Optional can-delete-this-object output indicator.
-- *
-- * @remarks Caller holds the extension manager lock for writing.
-- * @remarks Only called in VBoxSVC.
-- */
--HRESULT ExtPack::refresh(bool *a_pfCanDelete)
--{
-- if (a_pfCanDelete)
-- *a_pfCanDelete = false;
--
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); /* for the COMGETTERs */
--
-- /*
-- * Has the module been deleted?
-- */
-- RTFSOBJINFO ObjInfoExtPack;
-- int vrc = RTPathQueryInfoEx(m->strExtPackPath.c_str(), &ObjInfoExtPack, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK);
-- if ( RT_FAILURE(vrc)
-- || !RTFS_IS_DIRECTORY(ObjInfoExtPack.Attr.fMode))
-- {
-- if (a_pfCanDelete)
-- *a_pfCanDelete = true;
-- return S_OK;
-- }
--
-- /*
-- * We've got a directory, so try query file system object info for the
-- * files we are interested in as well.
-- */
-- RTFSOBJINFO ObjInfoDesc;
-- char szDescFilePath[RTPATH_MAX];
-- vrc = RTPathJoin(szDescFilePath, sizeof(szDescFilePath), m->strExtPackPath.c_str(), VBOX_EXTPACK_DESCRIPTION_NAME);
-- if (RT_SUCCESS(vrc))
-- vrc = RTPathQueryInfoEx(szDescFilePath, &ObjInfoDesc, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK);
-- if (RT_FAILURE(vrc))
-- RT_ZERO(ObjInfoDesc);
--
-- RTFSOBJINFO ObjInfoMainMod;
-- if (m->strMainModPath.isNotEmpty())
-- vrc = RTPathQueryInfoEx(m->strMainModPath.c_str(), &ObjInfoMainMod, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK);
-- if (m->strMainModPath.isEmpty() || RT_FAILURE(vrc))
-- RT_ZERO(ObjInfoMainMod);
--
-- /*
-- * If we have a usable module already, just verify that things haven't
-- * changed since we loaded it.
-- */
-- if (m->fUsable)
-- {
-- if (m->hMainMod == NIL_RTLDRMOD)
-- probeAndLoad();
-- else if ( !objinfoIsEqual(&ObjInfoDesc, &m->ObjInfoDesc)
-- || !objinfoIsEqual(&ObjInfoMainMod, &m->ObjInfoMainMod)
-- || !objinfoIsEqual(&ObjInfoExtPack, &m->ObjInfoExtPack) )
-- {
-- /** @todo not important, so it can wait. */
-- }
-- }
-- /*
-- * Ok, it is currently not usable. If anything has changed since last time
-- * reprobe the extension pack.
-- */
-- else if ( !objinfoIsEqual(&ObjInfoDesc, &m->ObjInfoDesc)
-- || !objinfoIsEqual(&ObjInfoMainMod, &m->ObjInfoMainMod)
-- || !objinfoIsEqual(&ObjInfoExtPack, &m->ObjInfoExtPack) )
-- probeAndLoad();
--
-- return S_OK;
--}
--
--/**
-- * Probes the extension pack, loading the main dll and calling its registration
-- * entry point.
-- *
-- * This updates the state accordingly, the strWhyUnusable and fUnusable members
-- * being the most important ones.
-- */
--void ExtPack::probeAndLoad(void)
--{
-- m->fUsable = false;
-- m->fMadeReadyCall = false;
--
-- /*
-- * Query the file system info for the extension pack directory. This and
-- * all other file system info we save is for the benefit of refresh().
-- */
-- int vrc = RTPathQueryInfoEx(m->strExtPackPath.c_str(), &m->ObjInfoExtPack, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK);
-- if (RT_FAILURE(vrc))
-- {
-- m->strWhyUnusable.printf(tr("RTPathQueryInfoEx on '%s' failed: %Rrc"), m->strExtPackPath.c_str(), vrc);
-- return;
-- }
-- if (!RTFS_IS_DIRECTORY(m->ObjInfoExtPack.Attr.fMode))
-- {
-- if (RTFS_IS_SYMLINK(m->ObjInfoExtPack.Attr.fMode))
-- m->strWhyUnusable.printf(tr("'%s' is a symbolic link, this is not allowed"), m->strExtPackPath.c_str(), vrc);
-- else if (RTFS_IS_FILE(m->ObjInfoExtPack.Attr.fMode))
-- m->strWhyUnusable.printf(tr("'%s' is a symbolic file, not a directory"), m->strExtPackPath.c_str(), vrc);
-- else
-- m->strWhyUnusable.printf(tr("'%s' is not a directory (fMode=%#x)"), m->strExtPackPath.c_str(), m->ObjInfoExtPack.Attr.fMode);
-- return;
-- }
--
-- RTERRINFOSTATIC ErrInfo;
-- RTErrInfoInitStatic(&ErrInfo);
-- vrc = SUPR3HardenedVerifyDir(m->strExtPackPath.c_str(), true /*fRecursive*/, true /*fCheckFiles*/, &ErrInfo.Core);
-- if (RT_FAILURE(vrc))
-- {
-- m->strWhyUnusable.printf(tr("%s (rc=%Rrc)"), ErrInfo.Core.pszMsg, vrc);
-- return;
-- }
--
-- /*
-- * Read the description file.
-- */
-- RTCString strSavedName(m->Desc.strName);
-- RTCString *pStrLoadErr = VBoxExtPackLoadDesc(m->strExtPackPath.c_str(), &m->Desc, &m->ObjInfoDesc);
-- if (pStrLoadErr != NULL)
-- {
-- m->strWhyUnusable.printf(tr("Failed to load '%s/%s': %s"),
-- m->strExtPackPath.c_str(), VBOX_EXTPACK_DESCRIPTION_NAME, pStrLoadErr->c_str());
-- m->Desc.strName = strSavedName;
-- delete pStrLoadErr;
-- return;
-- }
--
-- /*
-- * Make sure the XML name and directory matches.
-- */
-- if (!m->Desc.strName.equalsIgnoreCase(strSavedName))
-- {
-- m->strWhyUnusable.printf(tr("The description name ('%s') and directory name ('%s') does not match"),
-- m->Desc.strName.c_str(), strSavedName.c_str());
-- m->Desc.strName = strSavedName;
-- return;
-- }
--
-- /*
-- * Load the main DLL and call the predefined entry point.
-- */
-- bool fIsNative;
-- if (!findModule(m->Desc.strMainModule.c_str(), NULL /* default extension */, VBOXEXTPACKMODKIND_R3,
-- &m->strMainModPath, &fIsNative, &m->ObjInfoMainMod))
-- {
-- m->strWhyUnusable.printf(tr("Failed to locate the main module ('%s')"), m->Desc.strMainModule.c_str());
-- return;
-- }
--
-- vrc = SUPR3HardenedVerifyPlugIn(m->strMainModPath.c_str(), &ErrInfo.Core);
-- if (RT_FAILURE(vrc))
-- {
-- m->strWhyUnusable.printf(tr("%s"), ErrInfo.Core.pszMsg);
-- return;
-- }
--
-- if (fIsNative)
-- {
-- vrc = SUPR3HardenedLdrLoadPlugIn(m->strMainModPath.c_str(), &m->hMainMod, &ErrInfo.Core);
-- if (RT_FAILURE(vrc))
-- {
-- m->hMainMod = NIL_RTLDRMOD;
-- m->strWhyUnusable.printf(tr("Failed to load the main module ('%s'): %Rrc - %s"),
-- m->strMainModPath.c_str(), vrc, ErrInfo.Core.pszMsg);
-- return;
-- }
-- }
-- else
-- {
-- m->strWhyUnusable.printf(tr("Only native main modules are currently supported"));
-- return;
-- }
--
-- /*
-- * Resolve the predefined entry point.
-- */
-- PFNVBOXEXTPACKREGISTER pfnRegistration;
-- vrc = RTLdrGetSymbol(m->hMainMod, VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, (void **)&pfnRegistration);
-- if (RT_SUCCESS(vrc))
-- {
-- RTErrInfoClear(&ErrInfo.Core);
-- vrc = pfnRegistration(&m->Hlp, &m->pReg, &ErrInfo.Core);
-- if ( RT_SUCCESS(vrc)
-- && !RTErrInfoIsSet(&ErrInfo.Core)
-- && VALID_PTR(m->pReg))
-- {
-- if ( VBOXEXTPACK_IS_MAJOR_VER_EQUAL(m->pReg->u32Version, VBOXEXTPACKREG_VERSION)
-- && m->pReg->u32EndMarker == m->pReg->u32Version)
-- {
-- if ( (!m->pReg->pfnInstalled || RT_VALID_PTR(m->pReg->pfnInstalled))
-- && (!m->pReg->pfnUninstall || RT_VALID_PTR(m->pReg->pfnUninstall))
-- && (!m->pReg->pfnVirtualBoxReady || RT_VALID_PTR(m->pReg->pfnVirtualBoxReady))
-- && (!m->pReg->pfnConsoleReady || RT_VALID_PTR(m->pReg->pfnConsoleReady))
-- && (!m->pReg->pfnUnload || RT_VALID_PTR(m->pReg->pfnUnload))
-- && (!m->pReg->pfnVMCreated || RT_VALID_PTR(m->pReg->pfnVMCreated))
-- && (!m->pReg->pfnVMConfigureVMM || RT_VALID_PTR(m->pReg->pfnVMConfigureVMM))
-- && (!m->pReg->pfnVMPowerOn || RT_VALID_PTR(m->pReg->pfnVMPowerOn))
-- && (!m->pReg->pfnVMPowerOff || RT_VALID_PTR(m->pReg->pfnVMPowerOff))
-- && (!m->pReg->pfnQueryObject || RT_VALID_PTR(m->pReg->pfnQueryObject))
-- )
-- {
-- /*
-- * We're good!
-- */
-- m->fUsable = true;
-- m->strWhyUnusable.setNull();
-- return;
-- }
--
-- m->strWhyUnusable = tr("The registration structure contains on or more invalid function pointers");
-- }
-- else
-- m->strWhyUnusable.printf(tr("Unsupported registration structure version %u.%u"),
-- RT_HIWORD(m->pReg->u32Version), RT_LOWORD(m->pReg->u32Version));
-- }
-- else
-- m->strWhyUnusable.printf(tr("%s returned %Rrc, pReg=%p ErrInfo='%s'"),
-- VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, vrc, m->pReg, ErrInfo.Core.pszMsg);
-- m->pReg = NULL;
-- }
-- else
-- m->strWhyUnusable.printf(tr("Failed to resolve exported symbol '%s' in the main module: %Rrc"),
-- VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, vrc);
--
-- RTLdrClose(m->hMainMod);
-- m->hMainMod = NIL_RTLDRMOD;
--}
--
--/**
-- * Finds a module.
-- *
-- * @returns true if found, false if not.
-- * @param a_pszName The module base name (no extension).
-- * @param a_pszExt The extension. If NULL we use default
-- * extensions.
-- * @param a_enmKind The kind of module to locate.
-- * @param a_pStrFound Where to return the path to the module we've
-- * found.
-- * @param a_pfNative Where to return whether this is a native module
-- * or an agnostic one. Optional.
-- * @param a_pObjInfo Where to return the file system object info for
-- * the module. Optional.
-- */
--bool ExtPack::findModule(const char *a_pszName, const char *a_pszExt, VBOXEXTPACKMODKIND a_enmKind,
-- Utf8Str *a_pStrFound, bool *a_pfNative, PRTFSOBJINFO a_pObjInfo) const
--{
-- /*
-- * Try the native path first.
-- */
-- char szPath[RTPATH_MAX];
-- int vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), RTBldCfgTargetDotArch());
-- AssertLogRelRCReturn(vrc, false);
-- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName);
-- AssertLogRelRCReturn(vrc, false);
-- if (!a_pszExt)
-- {
-- const char *pszDefExt;
-- switch (a_enmKind)
-- {
-- case VBOXEXTPACKMODKIND_RC: pszDefExt = ".rc"; break;
-- case VBOXEXTPACKMODKIND_R0: pszDefExt = ".r0"; break;
-- case VBOXEXTPACKMODKIND_R3: pszDefExt = RTLdrGetSuff(); break;
-- default:
-- AssertFailedReturn(false);
-- }
-- vrc = RTStrCat(szPath, sizeof(szPath), pszDefExt);
-- AssertLogRelRCReturn(vrc, false);
-- }
--
-- RTFSOBJINFO ObjInfo;
-- if (!a_pObjInfo)
-- a_pObjInfo = &ObjInfo;
-- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX);
-- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode))
-- {
-- if (a_pfNative)
-- *a_pfNative = true;
-- *a_pStrFound = szPath;
-- return true;
-- }
--
-- /*
-- * Try the platform agnostic modules.
-- */
-- /* gcc.x86/module.rel */
-- char szSubDir[32];
-- RTStrPrintf(szSubDir, sizeof(szSubDir), "%s.%s", RTBldCfgCompiler(), RTBldCfgTargetArch());
-- vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), szSubDir);
-- AssertLogRelRCReturn(vrc, false);
-- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName);
-- AssertLogRelRCReturn(vrc, false);
-- if (!a_pszExt)
-- {
-- vrc = RTStrCat(szPath, sizeof(szPath), ".rel");
-- AssertLogRelRCReturn(vrc, false);
-- }
-- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX);
-- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode))
-- {
-- if (a_pfNative)
-- *a_pfNative = false;
-- *a_pStrFound = szPath;
-- return true;
-- }
--
-- /* x86/module.rel */
-- vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), RTBldCfgTargetArch());
-- AssertLogRelRCReturn(vrc, false);
-- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName);
-- AssertLogRelRCReturn(vrc, false);
-- if (!a_pszExt)
-- {
-- vrc = RTStrCat(szPath, sizeof(szPath), ".rel");
-- AssertLogRelRCReturn(vrc, false);
-- }
-- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX);
-- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode))
-- {
-- if (a_pfNative)
-- *a_pfNative = false;
-- *a_pStrFound = szPath;
-- return true;
-- }
--
-- return false;
--}
--
--/**
-- * Compares two file system object info structures.
-- *
-- * @returns true if equal, false if not.
-- * @param pObjInfo1 The first.
-- * @param pObjInfo2 The second.
-- * @todo IPRT should do this, really.
-- */
--/* static */ bool ExtPack::objinfoIsEqual(PCRTFSOBJINFO pObjInfo1, PCRTFSOBJINFO pObjInfo2)
--{
-- if (!RTTimeSpecIsEqual(&pObjInfo1->ModificationTime, &pObjInfo2->ModificationTime))
-- return false;
-- if (!RTTimeSpecIsEqual(&pObjInfo1->ChangeTime, &pObjInfo2->ChangeTime))
-- return false;
-- if (!RTTimeSpecIsEqual(&pObjInfo1->BirthTime, &pObjInfo2->BirthTime))
-- return false;
-- if (pObjInfo1->cbObject != pObjInfo2->cbObject)
-- return false;
-- if (pObjInfo1->Attr.fMode != pObjInfo2->Attr.fMode)
-- return false;
-- if (pObjInfo1->Attr.enmAdditional == pObjInfo2->Attr.enmAdditional)
-- {
-- switch (pObjInfo1->Attr.enmAdditional)
-- {
-- case RTFSOBJATTRADD_UNIX:
-- if (pObjInfo1->Attr.u.Unix.uid != pObjInfo2->Attr.u.Unix.uid)
-- return false;
-- if (pObjInfo1->Attr.u.Unix.gid != pObjInfo2->Attr.u.Unix.gid)
-- return false;
-- if (pObjInfo1->Attr.u.Unix.INodeIdDevice != pObjInfo2->Attr.u.Unix.INodeIdDevice)
-- return false;
-- if (pObjInfo1->Attr.u.Unix.INodeId != pObjInfo2->Attr.u.Unix.INodeId)
-- return false;
-- if (pObjInfo1->Attr.u.Unix.GenerationId != pObjInfo2->Attr.u.Unix.GenerationId)
-- return false;
-- break;
-- default:
-- break;
-- }
-- }
-- return true;
--}
--
--
--/**
-- * @interface_method_impl{VBOXEXTPACKHLP,pfnFindModule}
-- */
--/*static*/ DECLCALLBACK(int)
--ExtPack::hlpFindModule(PCVBOXEXTPACKHLP pHlp, const char *pszName, const char *pszExt, VBOXEXTPACKMODKIND enmKind,
-- char *pszFound, size_t cbFound, bool *pfNative)
--{
-- /*
-- * Validate the input and get our bearings.
-- */
-- AssertPtrReturn(pszName, VERR_INVALID_POINTER);
-- AssertPtrNullReturn(pszExt, VERR_INVALID_POINTER);
-- AssertPtrReturn(pszFound, VERR_INVALID_POINTER);
-- AssertPtrNullReturn(pfNative, VERR_INVALID_POINTER);
-- AssertReturn(enmKind > VBOXEXTPACKMODKIND_INVALID && enmKind < VBOXEXTPACKMODKIND_END, VERR_INVALID_PARAMETER);
--
-- AssertPtrReturn(pHlp, VERR_INVALID_POINTER);
-- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER);
-- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp);
-- AssertPtrReturn(m, VERR_INVALID_POINTER);
-- ExtPack *pThis = m->pThis;
-- AssertPtrReturn(pThis, VERR_INVALID_POINTER);
--
-- /*
-- * This is just a wrapper around findModule.
-- */
-- Utf8Str strFound;
-- if (pThis->findModule(pszName, pszExt, enmKind, &strFound, pfNative, NULL))
-- return RTStrCopy(pszFound, cbFound, strFound.c_str());
-- return VERR_FILE_NOT_FOUND;
--}
--
--/*static*/ DECLCALLBACK(int)
--ExtPack::hlpGetFilePath(PCVBOXEXTPACKHLP pHlp, const char *pszFilename, char *pszPath, size_t cbPath)
--{
-- /*
-- * Validate the input and get our bearings.
-- */
-- AssertPtrReturn(pszFilename, VERR_INVALID_POINTER);
-- AssertPtrReturn(pszPath, VERR_INVALID_POINTER);
-- AssertReturn(cbPath > 0, VERR_BUFFER_OVERFLOW);
--
-- AssertPtrReturn(pHlp, VERR_INVALID_POINTER);
-- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER);
-- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp);
-- AssertPtrReturn(m, VERR_INVALID_POINTER);
-- ExtPack *pThis = m->pThis;
-- AssertPtrReturn(pThis, VERR_INVALID_POINTER);
--
-- /*
-- * This is a simple RTPathJoin, no checking if things exists or anything.
-- */
-- int vrc = RTPathJoin(pszPath, cbPath, pThis->m->strExtPackPath.c_str(), pszFilename);
-- if (RT_FAILURE(vrc))
-- RT_BZERO(pszPath, cbPath);
-- return vrc;
--}
--
--/*static*/ DECLCALLBACK(VBOXEXTPACKCTX)
--ExtPack::hlpGetContext(PCVBOXEXTPACKHLP pHlp)
--{
-- /*
-- * Validate the input and get our bearings.
-- */
-- AssertPtrReturn(pHlp, VBOXEXTPACKCTX_INVALID);
-- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VBOXEXTPACKCTX_INVALID);
-- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp);
-- AssertPtrReturn(m, VBOXEXTPACKCTX_INVALID);
-- ExtPack *pThis = m->pThis;
-- AssertPtrReturn(pThis, VBOXEXTPACKCTX_INVALID);
--
-- return pThis->m->enmContext;
--}
--
--/*static*/ DECLCALLBACK(int)
--ExtPack::hlpReservedN(PCVBOXEXTPACKHLP pHlp)
--{
-- /*
-- * Validate the input and get our bearings.
-- */
-- AssertPtrReturn(pHlp, VERR_INVALID_POINTER);
-- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER);
-- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp);
-- AssertPtrReturn(m, VERR_INVALID_POINTER);
-- ExtPack *pThis = m->pThis;
-- AssertPtrReturn(pThis, VERR_INVALID_POINTER);
--
-- return VERR_NOT_IMPLEMENTED;
--}
--
--
--
--
--
--STDMETHODIMP ExtPack::COMGETTER(Name)(BSTR *a_pbstrName)
--{
-- CheckComArgOutPointerValid(a_pbstrName);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strName);
-- str.cloneTo(a_pbstrName);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(Description)(BSTR *a_pbstrDescription)
--{
-- CheckComArgOutPointerValid(a_pbstrDescription);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strDescription);
-- str.cloneTo(a_pbstrDescription);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(Version)(BSTR *a_pbstrVersion)
--{
-- CheckComArgOutPointerValid(a_pbstrVersion);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- /* HACK ALERT: This is for easing backporting to 4.1. The edition stuff
-- will be changed into a separate */
-- if (m->Desc.strEdition.isEmpty())
-- {
-- Bstr str(m->Desc.strVersion);
-- str.cloneTo(a_pbstrVersion);
-- }
-- else
-- {
-- RTCString strHack(m->Desc.strVersion);
-- strHack.append('-');
-- strHack.append(m->Desc.strEdition);
--
-- Bstr str(strHack);
-- str.cloneTo(a_pbstrVersion);
-- }
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(Revision)(ULONG *a_puRevision)
--{
-- CheckComArgOutPointerValid(a_puRevision);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_puRevision = m->Desc.uRevision;
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(VRDEModule)(BSTR *a_pbstrVrdeModule)
--{
-- CheckComArgOutPointerValid(a_pbstrVrdeModule);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strVrdeModule);
-- str.cloneTo(a_pbstrVrdeModule);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(PlugIns)(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns))
--{
-- /** @todo implement plug-ins. */
--#ifdef VBOX_WITH_XPCOM
-- NOREF(a_paPlugIns);
-- NOREF(a_paPlugInsSize);
--#endif
-- ReturnComNotImplemented();
--}
--
--STDMETHODIMP ExtPack::COMGETTER(Usable)(BOOL *a_pfUsable)
--{
-- CheckComArgOutPointerValid(a_pfUsable);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_pfUsable = m->fUsable;
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(WhyUnusable)(BSTR *a_pbstrWhy)
--{
-- CheckComArgOutPointerValid(a_pbstrWhy);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- m->strWhyUnusable.cloneTo(a_pbstrWhy);
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(ShowLicense)(BOOL *a_pfShowIt)
--{
-- CheckComArgOutPointerValid(a_pfShowIt);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_pfShowIt = m->Desc.fShowLicense;
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(License)(BSTR *a_pbstrHtmlLicense)
--{
-- Bstr bstrHtml("html");
-- return QueryLicense(Bstr::Empty.raw(), Bstr::Empty.raw(), bstrHtml.raw(), a_pbstrHtmlLicense);
--}
--
--STDMETHODIMP ExtPack::QueryLicense(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, IN_BSTR a_bstrFormat,
-- BSTR *a_pbstrLicense)
--{
-- /*
-- * Validate input.
-- */
-- CheckComArgOutPointerValid(a_pbstrLicense);
-- CheckComArgNotNull(a_bstrPreferredLocale);
-- CheckComArgNotNull(a_bstrPreferredLanguage);
-- CheckComArgNotNull(a_bstrFormat);
--
-- Utf8Str strPreferredLocale(a_bstrPreferredLocale);
-- if (strPreferredLocale.length() != 2 && strPreferredLocale.length() != 0)
-- return setError(E_FAIL, tr("The preferred locale is a two character string or empty."));
--
-- Utf8Str strPreferredLanguage(a_bstrPreferredLanguage);
-- if (strPreferredLanguage.length() != 2 && strPreferredLanguage.length() != 0)
-- return setError(E_FAIL, tr("The preferred lanuage is a two character string or empty."));
--
-- Utf8Str strFormat(a_bstrFormat);
-- if ( !strFormat.equals("html")
-- && !strFormat.equals("rtf")
-- && !strFormat.equals("txt"))
-- return setError(E_FAIL, tr("The license format can only have the values 'html', 'rtf' and 'txt'."));
--
-- /*
-- * Combine the options to form a file name before locking down anything.
-- */
-- char szName[sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX "-de_DE.html") + 2];
-- if (strPreferredLocale.isNotEmpty() && strPreferredLanguage.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s_%s.%s",
-- strPreferredLocale.c_str(), strPreferredLanguage.c_str(), strFormat.c_str());
-- else if (strPreferredLocale.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s.%s", strPreferredLocale.c_str(), strFormat.c_str());
-- else if (strPreferredLanguage.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-_%s.%s", strPreferredLocale.c_str(), strFormat.c_str());
-- else
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX ".%s", strFormat.c_str());
--
-- /*
-- * Effectuate the query.
-- */
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); /* paranoia */
--
-- if (!m->fUsable)
-- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str());
-- else
-- {
-- char szPath[RTPATH_MAX];
-- int vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), szName);
-- if (RT_SUCCESS(vrc))
-- {
-- void *pvFile;
-- size_t cbFile;
-- vrc = RTFileReadAllEx(szPath, 0, RTFOFF_MAX, RTFILE_RDALL_O_DENY_READ, &pvFile, &cbFile);
-- if (RT_SUCCESS(vrc))
-- {
-- Bstr bstrLicense((const char *)pvFile, cbFile);
-- if (bstrLicense.isNotEmpty())
-- {
-- bstrLicense.detachTo(a_pbstrLicense);
-- hrc = S_OK;
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("The license file '%s' is empty or contains invalid UTF-8 encoding"),
-- szPath);
-- RTFileReadAllFree(pvFile, cbFile);
-- }
-- else if (vrc == VERR_FILE_NOT_FOUND || vrc == VERR_PATH_NOT_FOUND)
-- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("The license file '%s' was not found in extension pack '%s'"),
-- szName, m->Desc.strName.c_str());
-- else
-- hrc = setError(VBOX_E_FILE_ERROR, tr("Failed to open the license file '%s': %Rrc"), szPath, vrc);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTPathJoin failed: %Rrc"), vrc);
-- }
-- }
-- return hrc;
--}
--
--
--STDMETHODIMP ExtPack::QueryObject(IN_BSTR a_bstrObjectId, IUnknown **a_ppUnknown)
--{
-- com::Guid ObjectId;
-- CheckComArgGuid(a_bstrObjectId, ObjectId);
-- CheckComArgOutPointerValid(a_ppUnknown);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- if ( m->pReg
-- && m->pReg->pfnQueryObject)
-- {
-- void *pvUnknown = m->pReg->pfnQueryObject(m->pReg, ObjectId.raw());
-- if (pvUnknown)
-- *a_ppUnknown = (IUnknown *)pvUnknown;
-- else
-- hrc = E_NOINTERFACE;
-- }
-- else
-- hrc = E_NOINTERFACE;
-- }
-- return hrc;
--}
--
--
--
--
--DEFINE_EMPTY_CTOR_DTOR(ExtPackManager)
--
--/**
-- * Called by ComObjPtr::createObject when creating the object.
-- *
-- * Just initialize the basic object state, do the rest in init().
-- *
-- * @returns S_OK.
-- */
--HRESULT ExtPackManager::FinalConstruct()
--{
-- m = NULL;
-- return S_OK;
--}
--
--/**
-- * Initializes the extension pack manager.
-- *
-- * @returns COM status code.
-- * @param a_pVirtualBox Pointer to the VirtualBox object.
-- * @param a_enmContext The context we're in.
-- */
--HRESULT ExtPackManager::initExtPackManager(VirtualBox *a_pVirtualBox, VBOXEXTPACKCTX a_enmContext)
--{
-- AutoInitSpan autoInitSpan(this);
-- AssertReturn(autoInitSpan.isOk(), E_FAIL);
--
-- /*
-- * Figure some stuff out before creating the instance data.
-- */
-- char szBaseDir[RTPATH_MAX];
-- int rc = RTPathAppPrivateArchTop(szBaseDir, sizeof(szBaseDir));
-- AssertLogRelRCReturn(rc, E_FAIL);
-- rc = RTPathAppend(szBaseDir, sizeof(szBaseDir), VBOX_EXTPACK_INSTALL_DIR);
-- AssertLogRelRCReturn(rc, E_FAIL);
--
-- char szCertificatDir[RTPATH_MAX];
-- rc = RTPathAppPrivateNoArch(szCertificatDir, sizeof(szCertificatDir));
-- AssertLogRelRCReturn(rc, E_FAIL);
-- rc = RTPathAppend(szCertificatDir, sizeof(szCertificatDir), VBOX_EXTPACK_CERT_DIR);
-- AssertLogRelRCReturn(rc, E_FAIL);
--
-- /*
-- * Allocate and initialize the instance data.
-- */
-- m = new Data;
-- m->strBaseDir = szBaseDir;
-- m->strCertificatDirPath = szCertificatDir;
-- m->pVirtualBox = a_pVirtualBox;
-- m->enmContext = a_enmContext;
--
-- /*
-- * Slurp in VBoxVMM which is used by VBoxPuelMain.
-- */
--#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_DARWIN)
-- if (a_enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON)
-- {
-- int vrc = SUPR3HardenedLdrLoadAppPriv("VBoxVMM", &m->hVBoxVMM, RTLDRLOAD_FLAGS_GLOBAL, NULL);
-- if (RT_FAILURE(vrc))
-- m->hVBoxVMM = NIL_RTLDRMOD;
-- /* cleanup in ::uninit()? */
-- }
--#endif
--
-- /*
-- * Go looking for extensions. The RTDirOpen may fail if nothing has been
-- * installed yet, or if root is paranoid and has revoked our access to them.
-- *
-- * We ASSUME that there are no files, directories or stuff in the directory
-- * that exceed the max name length in RTDIRENTRYEX.
-- */
-- HRESULT hrc = S_OK;
-- PRTDIR pDir;
-- int vrc = RTDirOpen(&pDir, szBaseDir);
-- if (RT_SUCCESS(vrc))
-- {
-- for (;;)
-- {
-- RTDIRENTRYEX Entry;
-- vrc = RTDirReadEx(pDir, &Entry, NULL /*pcbDirEntry*/, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK);
-- if (RT_FAILURE(vrc))
-- {
-- AssertLogRelMsg(vrc == VERR_NO_MORE_FILES, ("%Rrc\n", vrc));
-- break;
-- }
-- if ( RTFS_IS_DIRECTORY(Entry.Info.Attr.fMode)
-- && strcmp(Entry.szName, ".") != 0
-- && strcmp(Entry.szName, "..") != 0
-- && VBoxExtPackIsValidMangledName(Entry.szName) )
-- {
-- /*
-- * All directories are extensions, the shall be nothing but
-- * extensions in this subdirectory.
-- */
-- char szExtPackDir[RTPATH_MAX];
-- vrc = RTPathJoin(szExtPackDir, sizeof(szExtPackDir), m->strBaseDir.c_str(), Entry.szName);
-- AssertLogRelRC(vrc);
-- if (RT_SUCCESS(vrc))
-- {
-- RTCString *pstrName = VBoxExtPackUnmangleName(Entry.szName, RTSTR_MAX);
-- AssertLogRel(pstrName);
-- if (pstrName)
-- {
-- ComObjPtr<ExtPack> NewExtPack;
-- HRESULT hrc2 = NewExtPack.createObject();
-- if (SUCCEEDED(hrc2))
-- hrc2 = NewExtPack->initWithDir(a_enmContext, pstrName->c_str(), szExtPackDir);
-- delete pstrName;
-- if (SUCCEEDED(hrc2))
-- m->llInstalledExtPacks.push_back(NewExtPack);
-- else if (SUCCEEDED(rc))
-- hrc = hrc2;
-- }
-- else
-- hrc = E_UNEXPECTED;
-- }
-- else
-- hrc = E_UNEXPECTED;
-- }
-- }
-- RTDirClose(pDir);
-- }
-- /* else: ignore, the directory probably does not exist or something. */
--
-- if (SUCCEEDED(hrc))
-- autoInitSpan.setSucceeded();
-- return hrc;
--}
--
--/**
-- * COM cruft.
-- */
--void ExtPackManager::FinalRelease()
--{
-- uninit();
--}
--
--/**
-- * Do the actual cleanup.
-- */
--void ExtPackManager::uninit()
--{
-- /* Enclose the state transition Ready->InUninit->NotReady */
-- AutoUninitSpan autoUninitSpan(this);
-- if (!autoUninitSpan.uninitDone() && m != NULL)
-- {
-- delete m;
-- m = NULL;
-- }
--}
--
--
--STDMETHODIMP ExtPackManager::COMGETTER(InstalledExtPacks)(ComSafeArrayOut(IExtPack *, a_paExtPacks))
--{
-- CheckComArgOutSafeArrayPointerValid(a_paExtPacks);
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- SafeIfaceArray<IExtPack> SaExtPacks(m->llInstalledExtPacks);
-- SaExtPacks.detachTo(ComSafeArrayOutArg(a_paExtPacks));
-- }
--
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::Find(IN_BSTR a_bstrName, IExtPack **a_pExtPack)
--{
-- CheckComArgNotNull(a_bstrName);
-- CheckComArgOutPointerValid(a_pExtPack);
-- Utf8Str strName(a_bstrName);
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- ComPtr<ExtPack> ptrExtPack = findExtPack(strName.c_str());
-- if (!ptrExtPack.isNull())
-- ptrExtPack.queryInterfaceTo(a_pExtPack);
-- else
-- hrc = VBOX_E_OBJECT_NOT_FOUND;
-- }
--
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::OpenExtPackFile(IN_BSTR a_bstrTarballAndDigest, IExtPackFile **a_ppExtPackFile)
--{
-- CheckComArgNotNull(a_bstrTarballAndDigest);
-- CheckComArgOutPointerValid(a_ppExtPackFile);
-- AssertReturn(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON, E_UNEXPECTED);
--
-- /* The API can optionally take a ::SHA-256=<hex-digest> attribute at the
-- end of the file name. This is just a temporary measure for
-- backporting, in 4.2 we'll add another parameter to the method. */
-- Utf8Str strTarball;
-- Utf8Str strDigest;
-- Utf8Str strTarballAndDigest(a_bstrTarballAndDigest);
-- size_t offSha256 = strTarballAndDigest.find("::SHA-256=");
-- if (offSha256 == Utf8Str::npos)
-- strTarball = strTarballAndDigest;
-- else
-- {
-- strTarball = strTarballAndDigest.substr(0, offSha256);
-- strDigest = strTarballAndDigest.substr(offSha256 + sizeof("::SHA-256=") - 1);
-- }
--
-- ComObjPtr<ExtPackFile> NewExtPackFile;
-- HRESULT hrc = NewExtPackFile.createObject();
-- if (SUCCEEDED(hrc))
-- hrc = NewExtPackFile->initWithFile(strTarball.c_str(), strDigest.c_str(), this, m->pVirtualBox);
-- if (SUCCEEDED(hrc))
-- NewExtPackFile.queryInterfaceTo(a_ppExtPackFile);
--
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::Uninstall(IN_BSTR a_bstrName, BOOL a_fForcedRemoval, IN_BSTR a_bstrDisplayInfo,
-- IProgress **a_ppProgress)
--{
-- CheckComArgNotNull(a_bstrName);
-- if (a_ppProgress)
-- *a_ppProgress = NULL;
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- PEXTPACKUNINSTALLJOB pJob = NULL;
-- try
-- {
-- pJob = new EXTPACKUNINSTALLJOB;
-- pJob->ptrExtPackMgr = this;
-- pJob->strName = a_bstrName;
-- pJob->fForcedRemoval = a_fForcedRemoval != FALSE;
-- pJob->strDisplayInfo = a_bstrDisplayInfo;
-- hrc = pJob->ptrProgress.createObject();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr bstrDescription = tr("Uninstalling extension pack");
-- hrc = pJob->ptrProgress->init(
--#ifndef VBOX_COM_INPROC
-- m->pVirtualBox,
--#endif
-- static_cast<IExtPackManager *>(this),
-- bstrDescription.raw(),
-- FALSE /*aCancelable*/,
-- NULL /*aId*/);
-- }
-- if (SUCCEEDED(hrc))
-- {
-- ComPtr<Progress> ptrProgress = pJob->ptrProgress;
-- int vrc = RTThreadCreate(NULL /*phThread*/, ExtPackManager::doUninstallThreadProc, pJob, 0,
-- RTTHREADTYPE_DEFAULT, 0 /*fFlags*/, "ExtPackUninst");
-- if (RT_SUCCESS(vrc))
-- {
-- pJob = NULL; /* the thread deletes it */
-- ptrProgress.queryInterfaceTo(a_ppProgress);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTThreadCreate failed with %Rrc"), vrc);
-- }
-- }
-- catch (std::bad_alloc)
-- {
-- hrc = E_OUTOFMEMORY;
-- }
-- if (pJob)
-- delete pJob;
-- }
--
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::Cleanup(void)
--{
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- /*
-- * Run the set-uid-to-root binary that performs the cleanup.
-- *
-- * Take the write lock to prevent conflicts with other calls to this
-- * VBoxSVC instance.
-- */
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- hrc = runSetUidToRootHelper(NULL,
-- "cleanup",
-- "--base-dir", m->strBaseDir.c_str(),
-- (const char *)NULL);
-- }
--
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::QueryAllPlugInsForFrontend(IN_BSTR a_bstrFrontend, ComSafeArrayOut(BSTR, a_pabstrPlugInModules))
--{
-- CheckComArgNotNull(a_bstrFrontend);
-- Utf8Str strName(a_bstrFrontend);
-- CheckComArgOutSafeArrayPointerValid(a_pabstrPlugInModules);
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- com::SafeArray<BSTR> saPaths((size_t)0);
-- /** @todo implement plug-ins */
-- saPaths.detachTo(ComSafeArrayOutArg(a_pabstrPlugInModules));
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::IsExtPackUsable(IN_BSTR a_bstrExtPack, BOOL *aUsable)
--{
-- CheckComArgNotNull(a_bstrExtPack);
-- Utf8Str strExtPack(a_bstrExtPack);
-- *aUsable = isExtPackUsable(strExtPack.c_str());
-- return S_OK;
--}
--
--/**
-- * Finds the success indicator string in the stderr output ofr hte helper app.
-- *
-- * @returns Pointer to the indicator.
-- * @param psz The stderr output string. Can be NULL.
-- * @param cch The size of the string.
-- */
--static char *findSuccessIndicator(char *psz, size_t cch)
--{
-- static const char s_szSuccessInd[] = "rcExit=RTEXITCODE_SUCCESS";
-- Assert(!cch || strlen(psz) == cch);
-- if (cch < sizeof(s_szSuccessInd) - 1)
-- return NULL;
-- char *pszInd = &psz[cch - sizeof(s_szSuccessInd) + 1];
-- if (strcmp(s_szSuccessInd, pszInd))
-- return NULL;
-- return pszInd;
--}
--
--/**
-- * Runs the helper application that does the privileged operations.
-- *
-- * @returns S_OK or a failure status with error information set.
-- * @param a_pstrDisplayInfo Platform specific display info hacks.
-- * @param a_pszCommand The command to execute.
-- * @param ... The argument strings that goes along with the
-- * command. Maximum is about 16. Terminated by a
-- * NULL.
-- */
--HRESULT ExtPackManager::runSetUidToRootHelper(Utf8Str const *a_pstrDisplayInfo, const char *a_pszCommand, ...)
--{
-- /*
-- * Calculate the path to the helper application.
-- */
-- char szExecName[RTPATH_MAX];
-- int vrc = RTPathAppPrivateArch(szExecName, sizeof(szExecName));
-- AssertLogRelRCReturn(vrc, E_UNEXPECTED);
--
-- vrc = RTPathAppend(szExecName, sizeof(szExecName), VBOX_EXTPACK_HELPER_NAME);
-- AssertLogRelRCReturn(vrc, E_UNEXPECTED);
--
-- /*
-- * Convert the variable argument list to a RTProcCreate argument vector.
-- */
-- const char *apszArgs[20];
-- unsigned cArgs = 0;
--
-- LogRel(("ExtPack: Executing '%s'", szExecName));
-- apszArgs[cArgs++] = &szExecName[0];
--
-- if ( a_pstrDisplayInfo
-- && a_pstrDisplayInfo->isNotEmpty())
-- {
-- LogRel((" '--display-info-hack' '%s'", a_pstrDisplayInfo->c_str()));
-- apszArgs[cArgs++] = "--display-info-hack";
-- apszArgs[cArgs++] = a_pstrDisplayInfo->c_str();
-- }
--
-- LogRel(("'%s'", a_pszCommand));
-- apszArgs[cArgs++] = a_pszCommand;
--
-- va_list va;
-- va_start(va, a_pszCommand);
-- const char *pszLastArg;
-- for (;;)
-- {
-- AssertReturn(cArgs < RT_ELEMENTS(apszArgs) - 1, E_UNEXPECTED);
-- pszLastArg = va_arg(va, const char *);
-- if (!pszLastArg)
-- break;
-- LogRel((" '%s'", pszLastArg));
-- apszArgs[cArgs++] = pszLastArg;
-- };
-- va_end(va);
--
-- LogRel(("\n"));
-- apszArgs[cArgs] = NULL;
--
-- /*
-- * Create a PIPE which we attach to stderr so that we can read the error
-- * message on failure and report it back to the caller.
-- */
-- RTPIPE hPipeR;
-- RTHANDLE hStdErrPipe;
-- hStdErrPipe.enmType = RTHANDLETYPE_PIPE;
-- vrc = RTPipeCreate(&hPipeR, &hStdErrPipe.u.hPipe, RTPIPE_C_INHERIT_WRITE);
-- AssertLogRelRCReturn(vrc, E_UNEXPECTED);
--
-- /*
-- * Spawn the process.
-- */
-- HRESULT hrc;
-- RTPROCESS hProcess;
-- vrc = RTProcCreateEx(szExecName,
-- apszArgs,
-- RTENV_DEFAULT,
-- 0 /*fFlags*/,
-- NULL /*phStdIn*/,
-- NULL /*phStdOut*/,
-- &hStdErrPipe,
-- NULL /*pszAsUser*/,
-- NULL /*pszPassword*/,
-- &hProcess);
-- if (RT_SUCCESS(vrc))
-- {
-- vrc = RTPipeClose(hStdErrPipe.u.hPipe);
-- hStdErrPipe.u.hPipe = NIL_RTPIPE;
--
-- /*
-- * Read the pipe output until the process completes.
-- */
-- RTPROCSTATUS ProcStatus = { -42, RTPROCEXITREASON_ABEND };
-- size_t cbStdErrBuf = 0;
-- size_t offStdErrBuf = 0;
-- char *pszStdErrBuf = NULL;
-- do
-- {
-- /*
-- * Service the pipe. Block waiting for output or the pipe breaking
-- * when the process terminates.
-- */
-- if (hPipeR != NIL_RTPIPE)
-- {
-- char achBuf[1024];
-- size_t cbRead;
-- vrc = RTPipeReadBlocking(hPipeR, achBuf, sizeof(achBuf), &cbRead);
-- if (RT_SUCCESS(vrc))
-- {
-- /* grow the buffer? */
-- size_t cbBufReq = offStdErrBuf + cbRead + 1;
-- if ( cbBufReq > cbStdErrBuf
-- && cbBufReq < _256K)
-- {
-- size_t cbNew = RT_ALIGN_Z(cbBufReq, 16); // 1024
-- void *pvNew = RTMemRealloc(pszStdErrBuf, cbNew);
-- if (pvNew)
-- {
-- pszStdErrBuf = (char *)pvNew;
-- cbStdErrBuf = cbNew;
-- }
-- }
--
-- /* append if we've got room. */
-- if (cbBufReq <= cbStdErrBuf)
-- {
-- memcpy(&pszStdErrBuf[offStdErrBuf], achBuf, cbRead);
-- offStdErrBuf = offStdErrBuf + cbRead;
-- pszStdErrBuf[offStdErrBuf] = '\0';
-- }
-- }
-- else
-- {
-- AssertLogRelMsg(vrc == VERR_BROKEN_PIPE, ("%Rrc\n", vrc));
-- RTPipeClose(hPipeR);
-- hPipeR = NIL_RTPIPE;
-- }
-- }
--
-- /*
-- * Service the process. Block if we have no pipe.
-- */
-- if (hProcess != NIL_RTPROCESS)
-- {
-- vrc = RTProcWait(hProcess,
-- hPipeR == NIL_RTPIPE ? RTPROCWAIT_FLAGS_BLOCK : RTPROCWAIT_FLAGS_NOBLOCK,
-- &ProcStatus);
-- if (RT_SUCCESS(vrc))
-- hProcess = NIL_RTPROCESS;
-- else
-- AssertLogRelMsgStmt(vrc == VERR_PROCESS_RUNNING, ("%Rrc\n", vrc), hProcess = NIL_RTPROCESS);
-- }
-- } while ( hPipeR != NIL_RTPIPE
-- || hProcess != NIL_RTPROCESS);
--
-- LogRel(("ExtPack: enmReason=%d iStatus=%d stderr='%s'\n",
-- ProcStatus.enmReason, ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : ""));
--
-- /*
-- * Look for rcExit=RTEXITCODE_SUCCESS at the end of the error output,
-- * cut it as it is only there to attest the success.
-- */
-- if (offStdErrBuf > 0)
-- {
-- RTStrStripR(pszStdErrBuf);
-- offStdErrBuf = strlen(pszStdErrBuf);
-- }
--
-- char *pszSuccessInd = findSuccessIndicator(pszStdErrBuf, offStdErrBuf);
-- if (pszSuccessInd)
-- {
-- *pszSuccessInd = '\0';
-- offStdErrBuf = pszSuccessInd - pszStdErrBuf;
-- }
-- else if ( ProcStatus.enmReason == RTPROCEXITREASON_NORMAL
-- && ProcStatus.iStatus == 0)
-- ProcStatus.iStatus = offStdErrBuf ? 667 : 666;
--
-- /*
-- * Compose the status code and, on failure, error message.
-- */
-- if ( ProcStatus.enmReason == RTPROCEXITREASON_NORMAL
-- && ProcStatus.iStatus == 0)
-- hrc = S_OK;
-- else if (ProcStatus.enmReason == RTPROCEXITREASON_NORMAL)
-- {
-- AssertMsg(ProcStatus.iStatus != 0, ("%s\n", pszStdErrBuf));
-- hrc = setError(E_FAIL, tr("The installer failed with exit code %d: %s"),
-- ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : "");
-- }
-- else if (ProcStatus.enmReason == RTPROCEXITREASON_SIGNAL)
-- hrc = setError(E_UNEXPECTED, tr("The installer was killed by signal #d (stderr: %s)"),
-- ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : "");
-- else if (ProcStatus.enmReason == RTPROCEXITREASON_ABEND)
-- hrc = setError(E_UNEXPECTED, tr("The installer aborted abnormally (stderr: %s)"),
-- offStdErrBuf ? pszStdErrBuf : "");
-- else
-- hrc = setError(E_UNEXPECTED, tr("internal error: enmReason=%d iStatus=%d stderr='%s'"),
-- ProcStatus.enmReason, ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : "");
--
-- RTMemFree(pszStdErrBuf);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to launch the helper application '%s' (%Rrc)"), szExecName, vrc);
--
-- RTPipeClose(hPipeR);
-- RTPipeClose(hStdErrPipe.u.hPipe);
--
-- return hrc;
--}
--
--/**
-- * Finds an installed extension pack.
-- *
-- * @returns Pointer to the extension pack if found, NULL if not. (No reference
-- * counting problem here since the caller must be holding the lock.)
-- * @param a_pszName The name of the extension pack.
-- */
--ExtPack *ExtPackManager::findExtPack(const char *a_pszName)
--{
-- size_t cchName = strlen(a_pszName);
--
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- it++)
-- {
-- ExtPack::Data *pExtPackData = (*it)->m;
-- if ( pExtPackData
-- && pExtPackData->Desc.strName.length() == cchName
-- && pExtPackData->Desc.strName.equalsIgnoreCase(a_pszName))
-- return (*it);
-- }
-- return NULL;
--}
--
--/**
-- * Removes an installed extension pack from the internal list.
-- *
-- * The package is expected to exist!
-- *
-- * @param a_pszName The name of the extension pack.
-- */
--void ExtPackManager::removeExtPack(const char *a_pszName)
--{
-- size_t cchName = strlen(a_pszName);
--
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- it++)
-- {
-- ExtPack::Data *pExtPackData = (*it)->m;
-- if ( pExtPackData
-- && pExtPackData->Desc.strName.length() == cchName
-- && pExtPackData->Desc.strName.equalsIgnoreCase(a_pszName))
-- {
-- m->llInstalledExtPacks.erase(it);
-- return;
-- }
-- }
-- AssertMsgFailed(("%s\n", a_pszName));
--}
--
--/**
-- * Refreshes the specified extension pack.
-- *
-- * This may remove the extension pack from the list, so any non-smart pointers
-- * to the extension pack object may become invalid.
-- *
-- * @returns S_OK and *a_ppExtPack on success, COM status code and error
-- * message on failure. Note that *a_ppExtPack can be NULL.
-- *
-- * @param a_pszName The extension to update..
-- * @param a_fUnusableIsError If @c true, report an unusable extension pack
-- * as an error.
-- * @param a_ppExtPack Where to store the pointer to the extension
-- * pack of it is still around after the refresh.
-- * This is optional.
-- *
-- * @remarks Caller holds the extension manager lock.
-- * @remarks Only called in VBoxSVC.
-- */
--HRESULT ExtPackManager::refreshExtPack(const char *a_pszName, bool a_fUnusableIsError, ExtPack **a_ppExtPack)
--{
-- Assert(m->pVirtualBox != NULL); /* Only called from VBoxSVC. */
--
-- HRESULT hrc;
-- ExtPack *pExtPack = findExtPack(a_pszName);
-- if (pExtPack)
-- {
-- /*
-- * Refresh existing object.
-- */
-- bool fCanDelete;
-- hrc = pExtPack->refresh(&fCanDelete);
-- if (SUCCEEDED(hrc))
-- {
-- if (fCanDelete)
-- {
-- removeExtPack(a_pszName);
-- pExtPack = NULL;
-- }
-- }
-- }
-- else
-- {
-- /*
-- * Do this check here, otherwise VBoxExtPackCalcDir() will fail with a strange
-- * error.
-- */
-- bool fValid = VBoxExtPackIsValidName(a_pszName);
-- if (!fValid)
-- return setError(E_FAIL, "Invalid extension pack name specified");
--
-- /*
-- * Does the dir exist? Make some special effort to deal with case
-- * sensitivie file systems (a_pszName is case insensitive and mangled).
-- */
-- char szDir[RTPATH_MAX];
-- int vrc = VBoxExtPackCalcDir(szDir, sizeof(szDir), m->strBaseDir.c_str(), a_pszName);
-- AssertLogRelRCReturn(vrc, E_FAIL);
--
-- RTDIRENTRYEX Entry;
-- RTFSOBJINFO ObjInfo;
-- vrc = RTPathQueryInfoEx(szDir, &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK);
-- bool fExists = RT_SUCCESS(vrc) && RTFS_IS_DIRECTORY(ObjInfo.Attr.fMode);
-- if (!fExists)
-- {
-- PRTDIR pDir;
-- vrc = RTDirOpen(&pDir, m->strBaseDir.c_str());
-- if (RT_SUCCESS(vrc))
-- {
-- const char *pszMangledName = RTPathFilename(szDir);
-- for (;;)
-- {
-- vrc = RTDirReadEx(pDir, &Entry, NULL /*pcbDirEntry*/, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK);
-- if (RT_FAILURE(vrc))
-- {
-- AssertLogRelMsg(vrc == VERR_NO_MORE_FILES, ("%Rrc\n", vrc));
-- break;
-- }
-- if ( RTFS_IS_DIRECTORY(Entry.Info.Attr.fMode)
-- && !RTStrICmp(Entry.szName, pszMangledName))
-- {
-- /*
-- * The installed extension pack has a uses different case.
-- * Update the name and directory variables.
-- */
-- vrc = RTPathJoin(szDir, sizeof(szDir), m->strBaseDir.c_str(), Entry.szName); /* not really necessary */
-- AssertLogRelRCReturnStmt(vrc, RTDirClose(pDir), E_UNEXPECTED);
-- a_pszName = Entry.szName;
-- fExists = true;
-- break;
-- }
-- }
-- RTDirClose(pDir);
-- }
-- }
-- if (fExists)
-- {
-- /*
-- * We've got something, create a new extension pack object for it.
-- */
-- ComObjPtr<ExtPack> ptrNewExtPack;
-- hrc = ptrNewExtPack.createObject();
-- if (SUCCEEDED(hrc))
-- hrc = ptrNewExtPack->initWithDir(m->enmContext, a_pszName, szDir);
-- if (SUCCEEDED(hrc))
-- {
-- m->llInstalledExtPacks.push_back(ptrNewExtPack);
-- if (ptrNewExtPack->m->fUsable)
-- LogRel(("ExtPackManager: Found extension pack '%s'.\n", a_pszName));
-- else
-- LogRel(("ExtPackManager: Found bad extension pack '%s': %s\n",
-- a_pszName, ptrNewExtPack->m->strWhyUnusable.c_str() ));
-- pExtPack = ptrNewExtPack;
-- }
-- }
-- else
-- hrc = S_OK;
-- }
--
-- /*
-- * Report error if not usable, if that is desired.
-- */
-- if ( SUCCEEDED(hrc)
-- && pExtPack
-- && a_fUnusableIsError
-- && !pExtPack->m->fUsable)
-- hrc = setError(E_FAIL, "%s", pExtPack->m->strWhyUnusable.c_str());
--
-- if (a_ppExtPack)
-- *a_ppExtPack = pExtPack;
-- return hrc;
--}
--
--/**
-- * Thread wrapper around doInstall.
-- *
-- * @returns VINF_SUCCESS (ignored)
-- * @param hThread The thread handle (ignored).
-- * @param pvJob The job structure.
-- */
--/*static*/ DECLCALLBACK(int) ExtPackManager::doInstallThreadProc(RTTHREAD hThread, void *pvJob)
--{
-- PEXTPACKINSTALLJOB pJob = (PEXTPACKINSTALLJOB)pvJob;
-- HRESULT hrc = pJob->ptrExtPackMgr->doInstall(pJob->ptrExtPackFile, pJob->fReplace, &pJob->strDisplayInfo);
-- pJob->ptrProgress->notifyComplete(hrc);
-- delete pJob;
--
-- NOREF(hThread);
-- return VINF_SUCCESS;
--}
--
--/**
-- * Worker for IExtPackFile::Install.
-- *
-- * Called on a worker thread via doInstallThreadProc.
-- *
-- * @returns COM status code.
-- * @param a_pExtPackFile The extension pack file, caller checks that
-- * it's usable.
-- * @param a_fReplace Whether to replace any existing extpack or just
-- * fail.
-- * @param a_pstrDisplayInfo Host specific display information hacks.
-- * @param a_ppProgress Where to return a progress object some day. Can
-- * be NULL.
-- */
--HRESULT ExtPackManager::doInstall(ExtPackFile *a_pExtPackFile, bool a_fReplace, Utf8Str const *a_pstrDisplayInfo)
--{
-- AssertReturn(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON, E_UNEXPECTED);
-- RTCString const * const pStrName = &a_pExtPackFile->m->Desc.strName;
-- RTCString const * const pStrTarball = &a_pExtPackFile->m->strExtPackFile;
-- RTCString const * const pStrTarballDigest = &a_pExtPackFile->m->strDigest;
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- /*
-- * Refresh the data we have on the extension pack as it
-- * may be made stale by direct meddling or some other user.
-- */
-- ExtPack *pExtPack;
-- hrc = refreshExtPack(pStrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack);
-- if (SUCCEEDED(hrc))
-- {
-- if (pExtPack && a_fReplace)
-- hrc = pExtPack->callUninstallHookAndClose(m->pVirtualBox, false /*a_ForcedRemoval*/);
-- else if (pExtPack)
-- hrc = setError(E_FAIL,
-- tr("Extension pack '%s' is already installed."
-- " In case of a reinstallation, please uninstall it first"),
-- pStrName->c_str());
-- }
-- if (SUCCEEDED(hrc))
-- {
-- /*
-- * Run the privileged helper binary that performs the actual
-- * installation. Then create an object for the packet (we do this
-- * even on failure, to be on the safe side).
-- */
-- hrc = runSetUidToRootHelper(a_pstrDisplayInfo,
-- "install",
-- "--base-dir", m->strBaseDir.c_str(),
-- "--cert-dir", m->strCertificatDirPath.c_str(),
-- "--name", pStrName->c_str(),
-- "--tarball", pStrTarball->c_str(),
-- "--sha-256", pStrTarballDigest->c_str(),
-- pExtPack ? "--replace" : (const char *)NULL,
-- (const char *)NULL);
-- if (SUCCEEDED(hrc))
-- {
-- hrc = refreshExtPack(pStrName->c_str(), true /*a_fUnusableIsError*/, &pExtPack);
-- if (SUCCEEDED(hrc) && pExtPack)
-- {
-- RTERRINFOSTATIC ErrInfo;
-- RTErrInfoInitStatic(&ErrInfo);
-- pExtPack->callInstalledHook(m->pVirtualBox, &autoLock, &ErrInfo.Core);
-- if (RT_SUCCESS(ErrInfo.Core.rc))
-- LogRel(("ExtPackManager: Successfully installed extension pack '%s'.\n", pStrName->c_str()));
-- else
-- {
-- LogRel(("ExtPackManager: Installated hook for '%s' failed: %Rrc - %s\n",
-- pStrName->c_str(), ErrInfo.Core.rc, ErrInfo.Core.pszMsg));
--
-- /*
-- * Uninstall the extpack if the error indicates that.
-- */
-- if (ErrInfo.Core.rc == VERR_EXTPACK_UNSUPPORTED_HOST_UNINSTALL)
-- runSetUidToRootHelper(a_pstrDisplayInfo,
-- "uninstall",
-- "--base-dir", m->strBaseDir.c_str(),
-- "--name", pStrName->c_str(),
-- "--forced",
-- (const char *)NULL);
-- hrc = setError(E_FAIL, tr("The installation hook failed: %Rrc - %s"),
-- ErrInfo.Core.rc, ErrInfo.Core.pszMsg);
-- }
-- }
-- else if (SUCCEEDED(hrc))
-- hrc = setError(E_FAIL, tr("Installing extension pack '%s' failed under mysterious circumstances"),
-- pStrName->c_str());
-- }
-- else
-- {
-- ErrorInfoKeeper Eik;
-- refreshExtPack(pStrName->c_str(), false /*a_fUnusableIsError*/, NULL);
-- }
-- }
--
-- /*
-- * Do VirtualBoxReady callbacks now for any freshly installed
-- * extension pack (old ones will not be called).
-- */
-- if (m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON)
-- {
-- autoLock.release();
-- callAllVirtualBoxReadyHooks();
-- }
-- }
--
-- return hrc;
--}
--
--/**
-- * Thread wrapper around doUninstall.
-- *
-- * @returns VINF_SUCCESS (ignored)
-- * @param hThread The thread handle (ignored).
-- * @param pvJob The job structure.
-- */
--/*static*/ DECLCALLBACK(int) ExtPackManager::doUninstallThreadProc(RTTHREAD hThread, void *pvJob)
--{
-- PEXTPACKUNINSTALLJOB pJob = (PEXTPACKUNINSTALLJOB)pvJob;
-- HRESULT hrc = pJob->ptrExtPackMgr->doUninstall(&pJob->strName, pJob->fForcedRemoval, &pJob->strDisplayInfo);
-- pJob->ptrProgress->notifyComplete(hrc);
-- delete pJob;
--
-- NOREF(hThread);
-- return VINF_SUCCESS;
--}
--
--/**
-- * Worker for IExtPackManager::Uninstall.
-- *
-- * Called on a worker thread via doUninstallThreadProc.
-- *
-- * @returns COM status code.
-- * @param a_pstrName The name of the extension pack to uninstall.
-- * @param a_fForcedRemoval Whether to be skip and ignore certain bits of
-- * the extpack feedback. To deal with misbehaving
-- * extension pack hooks.
-- * @param a_pstrDisplayInfo Host specific display information hacks.
-- */
--HRESULT ExtPackManager::doUninstall(Utf8Str const *a_pstrName, bool a_fForcedRemoval, Utf8Str const *a_pstrDisplayInfo)
--{
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- /*
-- * Refresh the data we have on the extension pack as it may be made
-- * stale by direct meddling or some other user.
-- */
-- ExtPack *pExtPack;
-- hrc = refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack);
-- if (SUCCEEDED(hrc))
-- {
-- if (!pExtPack)
-- {
-- LogRel(("ExtPackManager: Extension pack '%s' is not installed, so nothing to uninstall.\n", a_pstrName->c_str()));
-- hrc = S_OK; /* nothing to uninstall */
-- }
-- else
-- {
-- /*
-- * Call the uninstall hook and unload the main dll.
-- */
-- hrc = pExtPack->callUninstallHookAndClose(m->pVirtualBox, a_fForcedRemoval);
-- if (SUCCEEDED(hrc))
-- {
-- /*
-- * Run the set-uid-to-root binary that performs the
-- * uninstallation. Then refresh the object.
-- *
-- * This refresh is theorically subject to races, but it's of
-- * the don't-do-that variety.
-- */
-- const char *pszForcedOpt = a_fForcedRemoval ? "--forced" : NULL;
-- hrc = runSetUidToRootHelper(a_pstrDisplayInfo,
-- "uninstall",
-- "--base-dir", m->strBaseDir.c_str(),
-- "--name", a_pstrName->c_str(),
-- pszForcedOpt, /* Last as it may be NULL. */
-- (const char *)NULL);
-- if (SUCCEEDED(hrc))
-- {
-- hrc = refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack);
-- if (SUCCEEDED(hrc))
-- {
-- if (!pExtPack)
-- LogRel(("ExtPackManager: Successfully uninstalled extension pack '%s'.\n", a_pstrName->c_str()));
-- else
-- hrc = setError(E_FAIL,
-- tr("Uninstall extension pack '%s' failed under mysterious circumstances"),
-- a_pstrName->c_str());
-- }
-- }
-- else
-- {
-- ErrorInfoKeeper Eik;
-- refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, NULL);
-- }
-- }
-- }
-- }
--
-- /*
-- * Do VirtualBoxReady callbacks now for any freshly installed
-- * extension pack (old ones will not be called).
-- */
-- if (m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON)
-- {
-- autoLock.release();
-- callAllVirtualBoxReadyHooks();
-- }
-- }
--
-- return hrc;
--}
--
--
--/**
-- * Calls the pfnVirtualBoxReady hook for all working extension packs.
-- *
-- * @remarks The caller must not hold any locks.
-- */
--void ExtPackManager::callAllVirtualBoxReadyHooks(void)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return;
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this;
--
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- /* advancing below */)
-- {
-- if ((*it)->callVirtualBoxReadyHook(m->pVirtualBox, &autoLock))
-- it = m->llInstalledExtPacks.begin();
-- else
-- it++;
-- }
--}
--
--/**
-- * Calls the pfnConsoleReady hook for all working extension packs.
-- *
-- * @param a_pConsole The console interface.
-- * @remarks The caller must not hold any locks.
-- */
--void ExtPackManager::callAllConsoleReadyHooks(IConsole *a_pConsole)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return;
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this;
--
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- /* advancing below */)
-- {
-- if ((*it)->callConsoleReadyHook(a_pConsole, &autoLock))
-- it = m->llInstalledExtPacks.begin();
-- else
-- it++;
-- }
--}
--
--/**
-- * Calls the pfnVMCreated hook for all working extension packs.
-- *
-- * @param a_pMachine The machine interface of the new VM.
-- */
--void ExtPackManager::callAllVmCreatedHooks(IMachine *a_pMachine)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return;
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */
-- ExtPackList llExtPacks = m->llInstalledExtPacks;
--
-- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++)
-- (*it)->callVmCreatedHook(m->pVirtualBox, a_pMachine, &autoLock);
--}
--
--/**
-- * Calls the pfnVMConfigureVMM hook for all working extension packs.
-- *
-- * @returns VBox status code. Stops on the first failure, expecting the caller
-- * to signal this to the caller of the CFGM constructor.
-- * @param a_pConsole The console interface for the VM.
-- * @param a_pVM The VM handle.
-- */
--int ExtPackManager::callAllVmConfigureVmmHooks(IConsole *a_pConsole, PVM a_pVM)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return Global::vboxStatusCodeFromCOM(hrc);
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */
-- ExtPackList llExtPacks = m->llInstalledExtPacks;
--
-- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++)
-- {
-- int vrc;
-- (*it)->callVmConfigureVmmHook(a_pConsole, a_pVM, &autoLock, &vrc);
-- if (RT_FAILURE(vrc))
-- return vrc;
-- }
--
-- return VINF_SUCCESS;
--}
--
--/**
-- * Calls the pfnVMPowerOn hook for all working extension packs.
-- *
-- * @returns VBox status code. Stops on the first failure, expecting the caller
-- * to not power on the VM.
-- * @param a_pConsole The console interface for the VM.
-- * @param a_pVM The VM handle.
-- */
--int ExtPackManager::callAllVmPowerOnHooks(IConsole *a_pConsole, PVM a_pVM)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return Global::vboxStatusCodeFromCOM(hrc);
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */
-- ExtPackList llExtPacks = m->llInstalledExtPacks;
--
-- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++)
-- {
-- int vrc;
-- (*it)->callVmPowerOnHook(a_pConsole, a_pVM, &autoLock, &vrc);
-- if (RT_FAILURE(vrc))
-- return vrc;
-- }
--
-- return VINF_SUCCESS;
--}
--
--/**
-- * Calls the pfnVMPowerOff hook for all working extension packs.
-- *
-- * @param a_pConsole The console interface for the VM.
-- * @param a_pVM The VM handle. Can be NULL.
-- */
--void ExtPackManager::callAllVmPowerOffHooks(IConsole *a_pConsole, PVM a_pVM)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return;
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */
-- ExtPackList llExtPacks = m->llInstalledExtPacks;
--
-- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++)
-- (*it)->callVmPowerOffHook(a_pConsole, a_pVM, &autoLock);
--}
--
--
--/**
-- * Checks that the specified extension pack contains a VRDE module and that it
-- * is shipshape.
-- *
-- * @returns S_OK if ok, appropriate failure status code with details.
-- * @param a_pstrExtPack The name of the extension pack.
-- */
--HRESULT ExtPackManager::checkVrdeExtPack(Utf8Str const *a_pstrExtPack)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- ExtPack *pExtPack = findExtPack(a_pstrExtPack->c_str());
-- if (pExtPack)
-- hrc = pExtPack->checkVrde();
-- else
-- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("No extension pack by the name '%s' was found"), a_pstrExtPack->c_str());
-- }
--
-- return hrc;
--}
--
--/**
-- * Gets the full path to the VRDE library of the specified extension pack.
-- *
-- * This will do extacly the same as checkVrdeExtPack and then resolve the
-- * library path.
-- *
-- * @returns S_OK if a path is returned, COM error status and message return if
-- * not.
-- * @param a_pstrExtPack The extension pack.
-- * @param a_pstrVrdeLibrary Where to return the path.
-- */
--int ExtPackManager::getVrdeLibraryPathForExtPack(Utf8Str const *a_pstrExtPack, Utf8Str *a_pstrVrdeLibrary)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- ExtPack *pExtPack = findExtPack(a_pstrExtPack->c_str());
-- if (pExtPack)
-- hrc = pExtPack->getVrdpLibraryName(a_pstrVrdeLibrary);
-- else
-- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("No extension pack by the name '%s' was found"), a_pstrExtPack->c_str());
-- }
--
-- return hrc;
--}
--
--/**
-- * Gets the name of the default VRDE extension pack.
-- *
-- * @returns S_OK or some COM error status on red tape failure.
-- * @param a_pstrExtPack Where to return the extension pack name. Returns
-- * empty if no extension pack wishes to be the default
-- * VRDP provider.
-- */
--HRESULT ExtPackManager::getDefaultVrdeExtPack(Utf8Str *a_pstrExtPack)
--{
-- a_pstrExtPack->setNull();
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- it++)
-- {
-- if ((*it)->wantsToBeDefaultVrde())
-- {
-- *a_pstrExtPack = (*it)->m->Desc.strName;
-- break;
-- }
-- }
-- }
-- return hrc;
--}
--
--/**
-- * Checks if an extension pack is (present and) usable.
-- *
-- * @returns @c true if it is, otherwise @c false.
-- * @param a_pszExtPack The name of the extension pack.
-- */
--bool ExtPackManager::isExtPackUsable(const char *a_pszExtPack)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return false;
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- ExtPack *pExtPack = findExtPack(a_pszExtPack);
-- return pExtPack != NULL
-- && pExtPack->m->fUsable;
--}
--
--/**
-- * Dumps all extension packs to the release log.
-- */
--void ExtPackManager::dumpAllToReleaseLog(void)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return;
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- LogRel(("Installed Extension Packs:\n"));
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- it++)
-- {
-- ExtPack::Data *pExtPackData = (*it)->m;
-- if (pExtPackData)
-- {
-- if (pExtPackData->fUsable)
-- LogRel((" %s (Version: %s r%u%s%s; VRDE Module: %s)\n",
-- pExtPackData->Desc.strName.c_str(),
-- pExtPackData->Desc.strVersion.c_str(),
-- pExtPackData->Desc.uRevision,
-- pExtPackData->Desc.strEdition.isEmpty() ? "" : " ",
-- pExtPackData->Desc.strEdition.c_str(),
-- pExtPackData->Desc.strVrdeModule.c_str() ));
-- else
-- LogRel((" %s (Version: %s r%u%s%s; VRDE Module: %s unusable because of '%s')\n",
-- pExtPackData->Desc.strName.c_str(),
-- pExtPackData->Desc.strVersion.c_str(),
-- pExtPackData->Desc.uRevision,
-- pExtPackData->Desc.strEdition.isEmpty() ? "" : " ",
-- pExtPackData->Desc.strEdition.c_str(),
-- pExtPackData->Desc.strVrdeModule.c_str(),
-- pExtPackData->strWhyUnusable.c_str() ));
-- }
-- else
-- LogRel((" pExtPackData is NULL\n"));
-- }
--
-- if (!m->llInstalledExtPacks.size())
-- LogRel((" None installed!\n"));
--}
--
--/* vi: set tabstop=4 shiftwidth=4 expandtab: */
---- VirtualBox-4.1.18.orig/src/VBox/Main/src-all/ExtPackUtil.cpp 2012-06-20 10:17:34.000000000 -0300
-+++ /dev/null 2012-07-24 14:48:18.638572110 -0300
-@@ -1,1385 +0,0 @@
--/* $Id: ExtPackUtil.cpp $ */
--/** @file
-- * VirtualBox Main - Extension Pack Utilities and definitions, VBoxC, VBoxSVC, ++.
-- */
--
--/*
-- * Copyright (C) 2010-2012 Oracle Corporation
-- *
-- * This file is part of VirtualBox Open Source Edition (OSE), as
-- * available from http://www.virtualbox.org. This file is free software;
-- * you can redistribute it and/or modify it under the terms of the GNU
-- * General Public License (GPL) as published by the Free Software
-- * Foundation, in version 2 as it comes in the "COPYING" file of the
-- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-- */
--
--
--/*******************************************************************************
--* Header Files *
--*******************************************************************************/
--#include "../include/ExtPackUtil.h"
--
--#include <iprt/ctype.h>
--#include <iprt/dir.h>
--#include <iprt/file.h>
--#include <iprt/manifest.h>
--#include <iprt/param.h>
--#include <iprt/path.h>
--#include <iprt/sha.h>
--#include <iprt/string.h>
--#include <iprt/vfs.h>
--#include <iprt/tar.h>
--#include <iprt/zip.h>
--#include <iprt/cpp/xml.h>
--
--#include <VBox/log.h>
--
--
--/**
-- * Worker for VBoxExtPackLoadDesc that loads the plug-in descriptors.
-- *
-- * @returns Same as VBoxExtPackLoadDesc.
-- * @param pVBoxExtPackElm
-- * @param pcPlugIns Where to return the number of plug-ins in the
-- * array.
-- * @param paPlugIns Where to return the plug-in descriptor array.
-- * (RTMemFree it even on failure)
-- */
--static RTCString *
--vboxExtPackLoadPlugInDescs(const xml::ElementNode *pVBoxExtPackElm,
-- uint32_t *pcPlugIns, PVBOXEXTPACKPLUGINDESC *paPlugIns)
--{
-- *pcPlugIns = 0;
-- *paPlugIns = NULL;
--
-- /** @todo plug-ins */
-- NOREF(pVBoxExtPackElm);
--
-- return NULL;
--}
--
--/**
-- * Clears the extension pack descriptor.
-- *
-- * @param a_pExtPackDesc The descriptor to clear.
-- */
--static void vboxExtPackClearDesc(PVBOXEXTPACKDESC a_pExtPackDesc)
--{
-- a_pExtPackDesc->strName.setNull();
-- a_pExtPackDesc->strDescription.setNull();
-- a_pExtPackDesc->strVersion.setNull();
-- a_pExtPackDesc->strEdition.setNull();
-- a_pExtPackDesc->uRevision = 0;
-- a_pExtPackDesc->strMainModule.setNull();
-- a_pExtPackDesc->strVrdeModule.setNull();
-- a_pExtPackDesc->cPlugIns = 0;
-- a_pExtPackDesc->paPlugIns = NULL;
-- a_pExtPackDesc->fShowLicense = false;
--}
--
--/**
-- * Initializes an extension pack descriptor so that it's safe to call free on
-- * it whatever happens later on.
-- *
-- * @param a_pExtPackDesc The descirptor to initialize.
-- */
--void VBoxExtPackInitDesc(PVBOXEXTPACKDESC a_pExtPackDesc)
--{
-- vboxExtPackClearDesc(a_pExtPackDesc);
--}
--
--
--/**
-- * Load the extension pack descriptor from an XML document.
-- *
-- * @returns NULL on success, pointer to an error message on failure (caller
-- * deletes it).
-- * @param a_pDoc Pointer to the the XML document.
-- * @param a_pExtPackDesc Where to store the extension pack descriptor.
-- */
--static RTCString *vboxExtPackLoadDescFromDoc(xml::Document *a_pDoc, PVBOXEXTPACKDESC a_pExtPackDesc)
--{
-- /*
-- * Get the main element and check its version.
-- */
-- const xml::ElementNode *pVBoxExtPackElm = a_pDoc->getRootElement();
-- if ( !pVBoxExtPackElm
-- || strcmp(pVBoxExtPackElm->getName(), "VirtualBoxExtensionPack") != 0)
-- return new RTCString("No VirtualBoxExtensionPack element");
--
-- RTCString strFormatVersion;
-- if (!pVBoxExtPackElm->getAttributeValue("version", strFormatVersion))
-- return new RTCString("Missing format version");
-- if (!strFormatVersion.equals("1.0"))
-- return &(new RTCString("Unsupported format version: "))->append(strFormatVersion);
--
-- /*
-- * Read and validate mandatory bits.
-- */
-- const xml::ElementNode *pNameElm = pVBoxExtPackElm->findChildElement("Name");
-- if (!pNameElm)
-- return new RTCString("The 'Name' element is missing");
-- const char *pszName = pNameElm->getValue();
-- if (!VBoxExtPackIsValidName(pszName))
-- return &(new RTCString("Invalid name: "))->append(pszName);
--
-- const xml::ElementNode *pDescElm = pVBoxExtPackElm->findChildElement("Description");
-- if (!pDescElm)
-- return new RTCString("The 'Description' element is missing");
-- const char *pszDesc = pDescElm->getValue();
-- if (!pszDesc || *pszDesc == '\0')
-- return new RTCString("The 'Description' element is empty");
-- if (strpbrk(pszDesc, "\n\r\t\v\b") != NULL)
-- return new RTCString("The 'Description' must not contain control characters");
--
-- const xml::ElementNode *pVersionElm = pVBoxExtPackElm->findChildElement("Version");
-- if (!pVersionElm)
-- return new RTCString("The 'Version' element is missing");
-- const char *pszVersion = pVersionElm->getValue();
-- if (!pszVersion || *pszVersion == '\0')
-- return new RTCString("The 'Version' element is empty");
-- if (!VBoxExtPackIsValidVersionString(pszVersion))
-- return &(new RTCString("Invalid version string: "))->append(pszVersion);
--
-- uint32_t uRevision;
-- if (!pVersionElm->getAttributeValue("revision", uRevision))
-- uRevision = 0;
--
-- const char *pszEdition;
-- if (!pVersionElm->getAttributeValue("edition", pszEdition))
-- pszEdition = "";
-- if (!VBoxExtPackIsValidEditionString(pszEdition))
-- return &(new RTCString("Invalid edition string: "))->append(pszEdition);
--
-- const xml::ElementNode *pMainModuleElm = pVBoxExtPackElm->findChildElement("MainModule");
-- if (!pMainModuleElm)
-- return new RTCString("The 'MainModule' element is missing");
-- const char *pszMainModule = pMainModuleElm->getValue();
-- if (!pszMainModule || *pszMainModule == '\0')
-- return new RTCString("The 'MainModule' element is empty");
-- if (!VBoxExtPackIsValidModuleString(pszMainModule))
-- return &(new RTCString("Invalid main module string: "))->append(pszMainModule);
--
-- /*
-- * The VRDE module, optional.
-- * Accept both none and empty as tokens of no VRDE module.
-- */
-- const char *pszVrdeModule = NULL;
-- const xml::ElementNode *pVrdeModuleElm = pVBoxExtPackElm->findChildElement("VRDEModule");
-- if (pVrdeModuleElm)
-- {
-- pszVrdeModule = pVrdeModuleElm->getValue();
-- if (!pszVrdeModule || *pszVrdeModule == '\0')
-- pszVrdeModule = NULL;
-- else if (!VBoxExtPackIsValidModuleString(pszVrdeModule))
-- return &(new RTCString("Invalid VRDE module string: "))->append(pszVrdeModule);
-- }
--
-- /*
-- * Whether to show the license, optional. (presense is enough here)
-- */
-- const xml::ElementNode *pShowLicenseElm = pVBoxExtPackElm->findChildElement("ShowLicense");
-- bool fShowLicense = pShowLicenseElm != NULL;
--
-- /*
-- * Parse plug-in descriptions (last because of the manual memory management).
-- */
-- uint32_t cPlugIns = 0;
-- PVBOXEXTPACKPLUGINDESC paPlugIns = NULL;
-- RTCString *pstrRet = vboxExtPackLoadPlugInDescs(pVBoxExtPackElm, &cPlugIns, &paPlugIns);
-- if (pstrRet)
-- {
-- RTMemFree(paPlugIns);
-- return pstrRet;
-- }
--
-- /*
-- * Everything seems fine, fill in the return values and return successfully.
-- */
-- a_pExtPackDesc->strName = pszName;
-- a_pExtPackDesc->strDescription = pszDesc;
-- a_pExtPackDesc->strVersion = pszVersion;
-- a_pExtPackDesc->strEdition = pszEdition;
-- a_pExtPackDesc->uRevision = uRevision;
-- a_pExtPackDesc->strMainModule = pszMainModule;
-- a_pExtPackDesc->strVrdeModule = pszVrdeModule;
-- a_pExtPackDesc->cPlugIns = cPlugIns;
-- a_pExtPackDesc->paPlugIns = paPlugIns;
-- a_pExtPackDesc->fShowLicense = fShowLicense;
--
-- return NULL;
--}
--
--/**
-- * Reads the extension pack descriptor.
-- *
-- * @returns NULL on success, pointer to an error message on failure (caller
-- * deletes it).
-- * @param a_pszDir The directory containing the description file.
-- * @param a_pExtPackDesc Where to store the extension pack descriptor.
-- * @param a_pObjInfo Where to store the object info for the file (unix
-- * attribs). Optional.
-- */
--RTCString *VBoxExtPackLoadDesc(const char *a_pszDir, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo)
--{
-- vboxExtPackClearDesc(a_pExtPackDesc);
--
-- /*
-- * Validate, open and parse the XML file.
-- */
-- char szFilePath[RTPATH_MAX];
-- int vrc = RTPathJoin(szFilePath, sizeof(szFilePath), a_pszDir, VBOX_EXTPACK_DESCRIPTION_NAME);
-- if (RT_FAILURE(vrc))
-- return new RTCString("RTPathJoin failed with %Rrc", vrc);
--
-- RTFSOBJINFO ObjInfo;
-- vrc = RTPathQueryInfoEx(szFilePath, &ObjInfo, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK);
-- if (RT_FAILURE(vrc))
-- return &(new RTCString())->printf("RTPathQueryInfoEx failed with %Rrc", vrc);
-- if (a_pObjInfo)
-- *a_pObjInfo = ObjInfo;
-- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode))
-- {
-- if (RTFS_IS_SYMLINK(ObjInfo.Attr.fMode))
-- return new RTCString("The XML file is symlinked, that is not allowed");
-- return &(new RTCString)->printf("The XML file is not a file (fMode=%#x)", ObjInfo.Attr.fMode);
-- }
--
-- xml::Document Doc;
-- {
-- xml::XmlFileParser Parser;
-- try
-- {
-- Parser.read(szFilePath, Doc);
-- }
-- catch (xml::XmlError Err)
-- {
-- return new RTCString(Err.what());
-- }
-- }
--
-- /*
-- * Hand the xml doc over to the common code.
-- */
-- return vboxExtPackLoadDescFromDoc(&Doc, a_pExtPackDesc);
--}
--
--/**
-- * Reads the extension pack descriptor.
-- *
-- * @returns NULL on success, pointer to an error message on failure (caller
-- * deletes it).
-- * @param a_pszDir The directory containing the description file.
-- * @param a_pExtPackDesc Where to store the extension pack descriptor.
-- * @param a_pObjInfo Where to store the object info for the file (unix
-- * attribs). Optional.
-- */
--RTCString *VBoxExtPackLoadDescFromVfsFile(RTVFSFILE hVfsFile, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo)
--{
-- vboxExtPackClearDesc(a_pExtPackDesc);
--
-- /*
-- * Query the object info.
-- */
-- RTFSOBJINFO ObjInfo;
-- int rc = RTVfsFileQueryInfo(hVfsFile, &ObjInfo, RTFSOBJATTRADD_UNIX);
-- if (RT_FAILURE(rc))
-- return &(new RTCString)->printf("RTVfsFileQueryInfo failed: %Rrc", rc);
-- if (a_pObjInfo)
-- *a_pObjInfo = ObjInfo;
--
-- /*
-- * The simple approach, read the whole thing into memory and pass this to
-- * the XML parser.
-- */
--
-- /* Check the file size. */
-- if (ObjInfo.cbObject > _1M || ObjInfo.cbObject < 0)
-- return &(new RTCString)->printf("The XML file is too large (%'RU64 bytes)", ObjInfo.cbObject);
-- size_t const cbFile = (size_t)ObjInfo.cbObject;
--
-- /* Rewind to the start of the file. */
-- rc = RTVfsFileSeek(hVfsFile, 0, RTFILE_SEEK_BEGIN, NULL);
-- if (RT_FAILURE(rc))
-- return &(new RTCString)->printf("RTVfsFileSeek(,0,BEGIN) failed: %Rrc", rc);
--
-- /* Allocate memory and read the file content into it. */
-- void *pvFile = RTMemTmpAlloc(cbFile);
-- if (!pvFile)
-- return &(new RTCString)->printf("RTMemTmpAlloc(%zu) failed", cbFile);
--
-- RTCString *pstrErr = NULL;
-- rc = RTVfsFileRead(hVfsFile, pvFile, cbFile, NULL);
-- if (RT_FAILURE(rc))
-- pstrErr = &(new RTCString)->printf("RTVfsFileRead failed: %Rrc", rc);
--
-- /*
-- * Parse the file.
-- */
-- xml::Document Doc;
-- if (RT_SUCCESS(rc))
-- {
-- xml::XmlMemParser Parser;
-- RTCString strFileName = VBOX_EXTPACK_DESCRIPTION_NAME;
-- try
-- {
-- Parser.read(pvFile, cbFile, strFileName, Doc);
-- }
-- catch (xml::XmlError Err)
-- {
-- pstrErr = new RTCString(Err.what());
-- rc = VERR_PARSE_ERROR;
-- }
-- }
-- RTMemTmpFree(pvFile);
--
-- /*
-- * Hand the xml doc over to the common code.
-- */
-- if (RT_SUCCESS(rc))
-- pstrErr = vboxExtPackLoadDescFromDoc(&Doc, a_pExtPackDesc);
--
-- return pstrErr;
--}
--
--/**
-- * Frees all resources associated with a extension pack descriptor.
-- *
-- * @param a_pExtPackDesc The extension pack descriptor which members
-- * should be freed.
-- */
--void VBoxExtPackFreeDesc(PVBOXEXTPACKDESC a_pExtPackDesc)
--{
-- if (!a_pExtPackDesc)
-- return;
--
-- a_pExtPackDesc->strName.setNull();
-- a_pExtPackDesc->strDescription.setNull();
-- a_pExtPackDesc->strVersion.setNull();
-- a_pExtPackDesc->strEdition.setNull();
-- a_pExtPackDesc->uRevision = 0;
-- a_pExtPackDesc->strMainModule.setNull();
-- a_pExtPackDesc->strVrdeModule.setNull();
-- a_pExtPackDesc->cPlugIns = 0;
-- RTMemFree(a_pExtPackDesc->paPlugIns);
-- a_pExtPackDesc->paPlugIns = NULL;
-- a_pExtPackDesc->fShowLicense = false;
--}
--
--/**
-- * Extract the extension pack name from the tarball path.
-- *
-- * @returns String containing the name on success, the caller must delete it.
-- * NULL if no valid name was found or if we ran out of memory.
-- * @param pszTarball The path to the tarball.
-- */
--RTCString *VBoxExtPackExtractNameFromTarballPath(const char *pszTarball)
--{
-- /*
-- * Skip ahead to the filename part and count the number of characters
-- * that matches the criteria for a mangled extension pack name.
-- */
-- const char *pszSrc = RTPathFilename(pszTarball);
-- if (!pszSrc)
-- return NULL;
--
-- size_t off = 0;
-- while (RT_C_IS_ALNUM(pszSrc[off]) || pszSrc[off] == '_')
-- off++;
--
-- /*
-- * Check min and max name limits.
-- */
-- if ( off > VBOX_EXTPACK_NAME_MAX_LEN
-- || off < VBOX_EXTPACK_NAME_MIN_LEN)
-- return NULL;
--
-- /*
-- * Return the unmangled name.
-- */
-- return VBoxExtPackUnmangleName(pszSrc, off);
--}
--
--/**
-- * Validates the extension pack name.
-- *
-- * @returns true if valid, false if not.
-- * @param pszName The name to validate.
-- * @sa VBoxExtPackExtractNameFromTarballPath
-- */
--bool VBoxExtPackIsValidName(const char *pszName)
--{
-- if (!pszName)
-- return false;
--
-- /*
-- * Check the characters making up the name, only english alphabet
-- * characters, decimal digits and spaces are allowed.
-- */
-- size_t off = 0;
-- while (pszName[off])
-- {
-- if (!RT_C_IS_ALNUM(pszName[off]) && pszName[off] != ' ')
-- return false;
-- off++;
-- }
--
-- /*
-- * Check min and max name limits.
-- */
-- if ( off > VBOX_EXTPACK_NAME_MAX_LEN
-- || off < VBOX_EXTPACK_NAME_MIN_LEN)
-- return false;
--
-- return true;
--}
--
--/**
-- * Checks if an alledged manged extension pack name.
-- *
-- * @returns true if valid, false if not.
-- * @param pszMangledName The mangled name to validate.
-- * @param cchMax The max number of chars to test.
-- * @sa VBoxExtPackMangleName
-- */
--bool VBoxExtPackIsValidMangledName(const char *pszMangledName, size_t cchMax /*= RTSTR_MAX*/)
--{
-- if (!pszMangledName)
-- return false;
--
-- /*
-- * Check the characters making up the name, only english alphabet
-- * characters, decimal digits and underscores (=space) are allowed.
-- */
-- size_t off = 0;
-- while (off < cchMax && pszMangledName[off])
-- {
-- if (!RT_C_IS_ALNUM(pszMangledName[off]) && pszMangledName[off] != '_')
-- return false;
-- off++;
-- }
--
-- /*
-- * Check min and max name limits.
-- */
-- if ( off > VBOX_EXTPACK_NAME_MAX_LEN
-- || off < VBOX_EXTPACK_NAME_MIN_LEN)
-- return false;
--
-- return true;
--}
--
--/**
-- * Mangle an extension pack name so it can be used by a directory or file name.
-- *
-- * @returns String containing the mangled name on success, the caller must
-- * delete it. NULL on failure.
-- * @param pszName The unmangled name.
-- * @sa VBoxExtPackUnmangleName, VBoxExtPackIsValidMangledName
-- */
--RTCString *VBoxExtPackMangleName(const char *pszName)
--{
-- AssertReturn(VBoxExtPackIsValidName(pszName), NULL);
--
-- char szTmp[VBOX_EXTPACK_NAME_MAX_LEN + 1];
-- size_t off = 0;
-- char ch;
-- while ((ch = pszName[off]) != '\0')
-- {
-- if (ch == ' ')
-- ch = '_';
-- szTmp[off++] = ch;
-- }
-- szTmp[off] = '\0';
-- Assert(VBoxExtPackIsValidMangledName(szTmp));
--
-- return new RTCString(szTmp, off);
--}
--
--/**
-- * Unmangle an extension pack name (reverses VBoxExtPackMangleName).
-- *
-- * @returns String containing the mangled name on success, the caller must
-- * delete it. NULL on failure.
-- * @param pszMangledName The mangled name.
-- * @param cchMax The max name length. RTSTR_MAX is fine.
-- * @sa VBoxExtPackMangleName, VBoxExtPackIsValidMangledName
-- */
--RTCString *VBoxExtPackUnmangleName(const char *pszMangledName, size_t cchMax)
--{
-- AssertReturn(VBoxExtPackIsValidMangledName(pszMangledName, cchMax), NULL);
--
-- char szTmp[VBOX_EXTPACK_NAME_MAX_LEN + 1];
-- size_t off = 0;
-- char ch;
-- while ( off < cchMax
-- && (ch = pszMangledName[off]) != '\0')
-- {
-- if (ch == '_')
-- ch = ' ';
-- else
-- AssertReturn(RT_C_IS_ALNUM(ch) || ch == ' ', NULL);
-- szTmp[off++] = ch;
-- }
-- szTmp[off] = '\0';
-- AssertReturn(VBoxExtPackIsValidName(szTmp), NULL);
--
-- return new RTCString(szTmp, off);
--}
--
--/**
-- * Constructs the extension pack directory path.
-- *
-- * A combination of RTPathJoin and VBoxExtPackMangleName.
-- *
-- * @returns IPRT status code like RTPathJoin.
-- * @param pszExtPackDir Where to return the directory path.
-- * @param cbExtPackDir The size of the return buffer.
-- * @param pszParentDir The parent directory (".../Extensions").
-- * @param pszName The extension pack name, unmangled.
-- */
--int VBoxExtPackCalcDir(char *pszExtPackDir, size_t cbExtPackDir, const char *pszParentDir, const char *pszName)
--{
-- AssertReturn(VBoxExtPackIsValidName(pszName), VERR_INTERNAL_ERROR_5);
--
-- RTCString *pstrMangledName = VBoxExtPackMangleName(pszName);
-- if (!pstrMangledName)
-- return VERR_INTERNAL_ERROR_4;
--
-- int vrc = RTPathJoin(pszExtPackDir, cbExtPackDir, pszParentDir, pstrMangledName->c_str());
-- delete pstrMangledName;
--
-- return vrc;
--}
--
--
--/**
-- * Validates the extension pack version string.
-- *
-- * @returns true if valid, false if not.
-- * @param pszVersion The version string to validate.
-- */
--bool VBoxExtPackIsValidVersionString(const char *pszVersion)
--{
-- if (!pszVersion || *pszVersion == '\0')
-- return false;
--
-- /* 1.x.y.z... */
-- for (;;)
-- {
-- if (!RT_C_IS_DIGIT(*pszVersion))
-- return false;
-- do
-- pszVersion++;
-- while (RT_C_IS_DIGIT(*pszVersion));
-- if (*pszVersion != '.')
-- break;
-- pszVersion++;
-- }
--
-- /* upper case string + numbers indicating the build type */
-- if (*pszVersion == '-' || *pszVersion == '_')
-- {
-- /** @todo Should probably restrict this to known build types (alpha,
-- * beta, rc, ++). */
-- do
-- pszVersion++;
-- while ( RT_C_IS_DIGIT(*pszVersion)
-- || RT_C_IS_UPPER(*pszVersion)
-- || *pszVersion == '-'
-- || *pszVersion == '_');
-- }
--
-- return *pszVersion == '\0';
--}
--
--/**
-- * Validates the extension pack edition string.
-- *
-- * @returns true if valid, false if not.
-- * @param pszEdition The edition string to validate.
-- */
--bool VBoxExtPackIsValidEditionString(const char *pszEdition)
--{
-- if (*pszEdition)
-- {
-- if (!RT_C_IS_UPPER(*pszEdition))
-- return false;
--
-- do
-- pszEdition++;
-- while ( RT_C_IS_UPPER(*pszEdition)
-- || RT_C_IS_DIGIT(*pszEdition)
-- || *pszEdition == '-'
-- || *pszEdition == '_');
-- }
-- return *pszEdition == '\0';
--}
--
--/**
-- * Validates an extension pack module string.
-- *
-- * @returns true if valid, false if not.
-- * @param pszModule The module string to validate.
-- */
--bool VBoxExtPackIsValidModuleString(const char *pszModule)
--{
-- if (!pszModule || *pszModule == '\0')
-- return false;
--
-- /* Restricted charset, no extensions (dots). */
-- while ( RT_C_IS_ALNUM(*pszModule)
-- || *pszModule == '-'
-- || *pszModule == '_')
-- pszModule++;
--
-- return *pszModule == '\0';
--}
--
--/**
-- * RTStrPrintfv wrapper.
-- *
-- * @returns @a rc
-- * @param rc The status code to return.
-- * @param pszError The error buffer.
-- * @param cbError The size of the buffer.
-- * @param pszFormat The error message format string.
-- * @param ... Format arguments.
-- */
--static int vboxExtPackReturnError(int rc, char *pszError, size_t cbError, const char *pszFormat, ...)
--{
-- va_list va;
-- va_start(va, pszFormat);
-- RTStrPrintfV(pszError, cbError, pszFormat, va);
-- va_end(va);
-- return rc;
--}
--
--/**
-- * RTStrPrintfv wrapper.
-- *
-- * @param pszError The error buffer.
-- * @param cbError The size of the buffer.
-- * @param pszFormat The error message format string.
-- * @param ... Format arguments.
-- */
--static void vboxExtPackSetError(char *pszError, size_t cbError, const char *pszFormat, ...)
--{
-- va_list va;
-- va_start(va, pszFormat);
-- RTStrPrintfV(pszError, cbError, pszFormat, va);
-- va_end(va);
--}
--
--/**
-- * Verifies the manifest and its signature.
-- *
-- * @returns VBox status code, failures with message.
-- * @param hManifestFile The xml from the extension pack.
-- * @param pszExtPackName The expected extension pack name. This can be
-- * NULL, in which we don't have any expectations.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--static int vboxExtPackVerifyXml(RTVFSFILE hXmlFile, const char *pszExtPackName, char *pszError, size_t cbError)
--{
-- /*
-- * Load the XML.
-- */
-- VBOXEXTPACKDESC ExtPackDesc;
-- RTCString *pstrErr = VBoxExtPackLoadDescFromVfsFile(hXmlFile, &ExtPackDesc, NULL);
-- if (pstrErr)
-- {
-- RTStrCopy(pszError, cbError, pstrErr->c_str());
-- delete pstrErr;
-- return VERR_PARSE_ERROR;
-- }
--
-- /*
-- * Check the name.
-- */
-- /** @todo drop this restriction after the old install interface is
-- * dropped. */
-- int rc = VINF_SUCCESS;
-- if ( pszExtPackName
-- && !ExtPackDesc.strName.equalsIgnoreCase(pszExtPackName))
-- rc = vboxExtPackReturnError(VERR_NOT_EQUAL, pszError, cbError,
-- "The name of the downloaded file and the name stored inside the extension pack does not match"
-- " (xml='%s' file='%s')", ExtPackDesc.strName.c_str(), pszExtPackName);
-- return rc;
--}
--
--/**
-- * Verifies the manifest and its signature.
-- *
-- * @returns VBox status code, failures with message.
-- * @param hOurManifest The manifest we compiled.
-- * @param hManifestFile The manifest file in the extension pack.
-- * @param hSignatureFile The manifest signature file.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--static int vboxExtPackVerifyManifestAndSignature(RTMANIFEST hOurManifest, RTVFSFILE hManifestFile, RTVFSFILE hSignatureFile,
-- char *pszError, size_t cbError)
--{
-- /*
-- * Read the manifest from the extension pack.
-- */
-- int rc = RTVfsFileSeek(hManifestFile, 0, RTFILE_SEEK_BEGIN, NULL);
-- if (RT_FAILURE(rc))
-- return vboxExtPackReturnError(rc, pszError, cbError, "RTVfsFileSeek failed: %Rrc", rc);
--
-- RTMANIFEST hTheirManifest;
-- rc = RTManifestCreate(0 /*fFlags*/, &hTheirManifest);
-- if (RT_FAILURE(rc))
-- return vboxExtPackReturnError(rc, pszError, cbError, "RTManifestCreate failed: %Rrc", rc);
--
-- RTVFSIOSTREAM hVfsIos = RTVfsFileToIoStream(hManifestFile);
-- rc = RTManifestReadStandard(hTheirManifest, hVfsIos);
-- RTVfsIoStrmRelease(hVfsIos);
-- if (RT_SUCCESS(rc))
-- {
-- /*
-- * Compare the manifests.
-- */
-- static const char *s_apszIgnoreEntries[] =
-- {
-- VBOX_EXTPACK_MANIFEST_NAME,
-- VBOX_EXTPACK_SIGNATURE_NAME,
-- "./" VBOX_EXTPACK_MANIFEST_NAME,
-- "./" VBOX_EXTPACK_SIGNATURE_NAME,
-- NULL
-- };
-- char szError[RTPATH_MAX];
-- rc = RTManifestEqualsEx(hOurManifest, hTheirManifest, &s_apszIgnoreEntries[0], NULL,
-- RTMANIFEST_EQUALS_IGN_MISSING_ATTRS /*fFlags*/,
-- szError, sizeof(szError));
-- if (RT_SUCCESS(rc))
-- {
-- /*
-- * Validate the manifest file signature.
-- */
-- /** @todo implement signature stuff */
-- NOREF(hSignatureFile);
--
-- }
-- else if (rc == VERR_NOT_EQUAL && szError[0])
-- vboxExtPackSetError(pszError, cbError, "Manifest mismatch: %s", szError);
-- else
-- vboxExtPackSetError(pszError, cbError, "RTManifestEqualsEx failed: %Rrc", rc);
--#if 0
-- RTVFSIOSTREAM hVfsIosStdOut = NIL_RTVFSIOSTREAM;
-- RTVfsIoStrmFromStdHandle(RTHANDLESTD_OUTPUT, RTFILE_O_WRITE, true, &hVfsIosStdOut);
-- RTVfsIoStrmWrite(hVfsIosStdOut, "Our:\n", sizeof("Our:\n") - 1, true, NULL);
-- RTManifestWriteStandard(hOurManifest, hVfsIosStdOut);
-- RTVfsIoStrmWrite(hVfsIosStdOut, "Their:\n", sizeof("Their:\n") - 1, true, NULL);
-- RTManifestWriteStandard(hTheirManifest, hVfsIosStdOut);
--#endif
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "Error parsing '%s': %Rrc", VBOX_EXTPACK_MANIFEST_NAME, rc);
--
-- RTManifestRelease(hTheirManifest);
-- return rc;
--}
--
--
--/**
-- * Verifies the file digest (if specified) and returns the SHA-256 of the file.
-- *
-- * @returns
-- * @param hFileManifest Manifest containing a SHA-256 digest of the file
-- * that was calculated as the file was processed.
-- * @param pszFileDigest SHA-256 digest of the file.
-- * @param pStrDigest Where to return the SHA-256 digest. Optional.
-- * @param pszError Where to write an error message on failure.
-- * @param cbError The size of the @a pszError buffer.
-- */
--static int vboxExtPackVerifyFileDigest(RTMANIFEST hFileManifest, const char *pszFileDigest,
-- RTCString *pStrDigest, char *pszError, size_t cbError)
--{
-- /*
-- * Extract the SHA-256 entry for the extpack file.
-- */
-- char szCalculatedDigest[RTSHA256_DIGEST_LEN + 1];
-- int rc = RTManifestEntryQueryAttr(hFileManifest, "extpack", NULL /*no name*/, RTMANIFEST_ATTR_SHA256,
-- szCalculatedDigest, sizeof(szCalculatedDigest), NULL);
-- if (RT_SUCCESS(rc))
-- {
-- /*
-- * Convert the two strings to binary form before comparing.
-- * We convert the calculated hash even if we don't have anything to
-- * compare with, just to validate it.
-- */
-- uint8_t abCalculatedHash[RTSHA256_HASH_SIZE];
-- rc = RTSha256FromString(szCalculatedDigest, abCalculatedHash);
-- if (RT_SUCCESS(rc))
-- {
-- if ( pszFileDigest
-- && *pszFileDigest != '\0')
-- {
-- uint8_t abFileHash[RTSHA256_HASH_SIZE];
-- rc = RTSha256FromString(pszFileDigest, abFileHash);
-- if (RT_SUCCESS(rc))
-- {
-- if (memcmp(abFileHash, abCalculatedHash, sizeof(abFileHash)))
-- {
-- vboxExtPackSetError(pszError, cbError, "The extension pack file has changed (SHA-256 mismatch)");
-- rc = VERR_NOT_EQUAL;
-- }
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "Bad SHA-256 '%s': %Rrc", szCalculatedDigest, rc);
-- }
--
-- /*
-- * Set the output hash on success.
-- */
-- if (pStrDigest && RT_SUCCESS(rc))
-- {
-- try
-- {
-- *pStrDigest = szCalculatedDigest;
-- }
-- catch (std::bad_alloc)
-- {
-- rc = VERR_NO_MEMORY;
-- }
-- }
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "Bad SHA-256 '%s': %Rrc", szCalculatedDigest, rc);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTManifestEntryGetAttr: %Rrc", rc);
-- return rc;
--}
--
--
--
--/**
-- * Validates a standard file.
-- *
-- * Generally all files are
-- *
-- * @returns VBox status code, failure message in @a pszError.
-- * @param pszAdjName The adjusted member name.
-- * @param enmType The VFS object type.
-- * @param phVfsObj The pointer to the VFS object handle variable.
-- * This is both input and output.
-- * @param phVfsFile Where to store the handle to the memorized
-- * file. This is NULL for license files.
-- * @param pszError Where to write an error message on failure.
-- * @param cbError The size of the @a pszError buffer.
-- */
--static int VBoxExtPackValidateStandardFile(const char *pszAdjName, RTVFSOBJTYPE enmType,
-- PRTVFSOBJ phVfsObj, PRTVFSFILE phVfsFile, char *pszError, size_t cbError)
--{
-- int rc;
--
-- /*
-- * Make sure it's a file and that it isn't too large.
-- */
-- if (phVfsFile && *phVfsFile != NIL_RTVFSFILE)
-- rc = vboxExtPackReturnError(VERR_DUPLICATE, pszError, cbError,
-- "There can only be one '%s'", pszAdjName);
-- else if (enmType != RTVFSOBJTYPE_IO_STREAM && enmType != RTVFSOBJTYPE_FILE)
-- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError,
-- "Standard member '%s' is not a file", pszAdjName);
-- else
-- {
-- RTFSOBJINFO ObjInfo;
-- rc = RTVfsObjQueryInfo(*phVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING);
-- if (RT_SUCCESS(rc))
-- {
-- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode))
-- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError,
-- "Standard member '%s' is not a file", pszAdjName);
-- else if (ObjInfo.cbObject >= _1M)
-- rc = vboxExtPackReturnError(VERR_OUT_OF_RANGE, pszError, cbError,
-- "Standard member '%s' is too large: %'RU64 bytes (max 1 MB)",
-- pszAdjName, (uint64_t)ObjInfo.cbObject);
-- else
-- {
-- /*
-- * Make an in memory copy of the stream and check that the file
-- * is UTF-8 clean.
-- */
-- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(*phVfsObj);
-- RTVFSFILE hVfsFile;
-- rc = RTVfsMemorizeIoStreamAsFile(hVfsIos, RTFILE_O_READ, &hVfsFile);
-- if (RT_SUCCESS(rc))
-- {
-- rc = RTVfsIoStrmValidateUtf8Encoding(hVfsIos,
-- RTVFS_VALIDATE_UTF8_BY_RTC_3629 | RTVFS_VALIDATE_UTF8_NO_NULL,
-- NULL);
-- if (RT_SUCCESS(rc))
-- {
-- /*
-- * Replace *phVfsObj with the memorized file.
-- */
-- rc = RTVfsFileSeek(hVfsFile, 0, RTFILE_SEEK_BEGIN, NULL);
-- if (RT_SUCCESS(rc))
-- {
-- RTVfsObjRelease(*phVfsObj);
-- *phVfsObj = RTVfsObjFromFile(hVfsFile);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTVfsFileSeek failed on '%s': %Rrc", pszAdjName, rc);
-- }
--
-- if (phVfsFile && RT_SUCCESS(rc))
-- *phVfsFile = hVfsFile;
-- else
-- RTVfsFileRelease(hVfsFile);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTVfsMemorizeIoStreamAsFile failed on '%s': %Rrc", pszAdjName, rc);
-- RTVfsIoStrmRelease(hVfsIos);
-- }
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszAdjName, rc);
-- }
-- return rc;
--}
--
--
--/**
-- * Validates a name in an extension pack.
-- *
-- * We restrict the charset to try make sure the extension pack can be unpacked
-- * on all file systems.
-- *
-- * @returns VBox status code, failures with message.
-- * @param pszName The name to validate.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--static int vboxExtPackValidateMemberName(const char *pszName, char *pszError, size_t cbError)
--{
-- if (RTPathStartsWithRoot(pszName))
-- return vboxExtPackReturnError(VERR_PATH_IS_NOT_RELATIVE, pszError, cbError, "'%s': starts with root spec", pszName);
--
-- const char *pszErr = NULL;
-- const char *psz = pszName;
-- int ch;
-- while ((ch = *psz) != '\0')
-- {
-- /* Character set restrictions. */
-- if (ch < 0 || ch >= 128)
-- {
-- pszErr = "Only 7-bit ASCII allowed";
-- break;
-- }
-- if (ch <= 31 || ch == 127)
-- {
-- pszErr = "No control characters are not allowed";
-- break;
-- }
-- if (ch == '\\')
-- {
-- pszErr = "Only backward slashes are not allowed";
-- break;
-- }
-- if (strchr("'\":;*?|[]<>(){}", ch))
-- {
-- pszErr = "The characters ', \", :, ;, *, ?, |, [, ], <, >, (, ), { and } are not allowed";
-- break;
-- }
--
-- /* Take the simple way out and ban all ".." sequences. */
-- if ( ch == '.'
-- && psz[1] == '.')
-- {
-- pszErr = "Double dot sequence are not allowed";
-- break;
-- }
--
-- /* Keep the tree shallow or the hardening checks will fail. */
-- if (psz - pszName > VBOX_EXTPACK_MAX_MEMBER_NAME_LENGTH)
-- {
-- pszErr = "Too long";
-- break;
-- }
--
-- /* advance */
-- psz++;
-- }
--
-- if (pszErr)
-- return vboxExtPackReturnError(VERR_INVALID_NAME, pszError, cbError,
-- "Bad member name '%s' (pos %zu): %s", pszName, (size_t)(psz - pszName), pszErr);
-- return RTEXITCODE_SUCCESS;
--}
--
--
--/**
-- * Validates a file in an extension pack.
-- *
-- * @returns VBox status code, failures with message.
-- * @param pszName The name of the file.
-- * @param hVfsObj The VFS object.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--static int vboxExtPackValidateMemberFile(const char *pszName, RTVFSOBJ hVfsObj, char *pszError, size_t cbError)
--{
-- int rc = vboxExtPackValidateMemberName(pszName, pszError, cbError);
-- if (RT_SUCCESS(rc))
-- {
-- RTFSOBJINFO ObjInfo;
-- rc = RTVfsObjQueryInfo(hVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING);
-- if (RT_SUCCESS(rc))
-- {
-- if (ObjInfo.cbObject >= 9*_1G64)
-- rc = vboxExtPackReturnError(VERR_OUT_OF_RANGE, pszError, cbError,
-- "'%s': too large (%'RU64 bytes)",
-- pszName, (uint64_t)ObjInfo.cbObject);
-- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode))
-- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError,
-- "The alleged file '%s' has a mode mask stating otherwise (%RTfmode)",
-- pszName, ObjInfo.Attr.fMode);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszName, rc);
-- }
-- return rc;
--}
--
--
--/**
-- * Validates a directory in an extension pack.
-- *
-- * @returns VBox status code, failures with message.
-- * @param pszName The name of the directory.
-- * @param hVfsObj The VFS object.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--static int vboxExtPackValidateMemberDir(const char *pszName, RTVFSOBJ hVfsObj, char *pszError, size_t cbError)
--{
-- int rc = vboxExtPackValidateMemberName(pszName, pszError, cbError);
-- if (RT_SUCCESS(rc))
-- {
-- RTFSOBJINFO ObjInfo;
-- rc = RTVfsObjQueryInfo(hVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING);
-- if (RT_SUCCESS(rc))
-- {
-- if (!RTFS_IS_DIRECTORY(ObjInfo.Attr.fMode))
-- rc = vboxExtPackReturnError(VERR_NOT_A_DIRECTORY, pszError, cbError,
-- "The alleged directory '%s' has a mode mask saying differently (%RTfmode)",
-- pszName, ObjInfo.Attr.fMode);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszName, rc);
-- }
-- return rc;
--}
--
--/**
-- * Validates a member of an extension pack.
-- *
-- * @returns VBox status code, failures with message.
-- * @param pszName The name of the directory.
-- * @param enmType The object type.
-- * @param hVfsObj The VFS object.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--int VBoxExtPackValidateMember(const char *pszName, RTVFSOBJTYPE enmType, RTVFSOBJ hVfsObj, char *pszError, size_t cbError)
--{
-- Assert(cbError > 0);
-- *pszError = '\0';
--
-- int rc;
-- if ( enmType == RTVFSOBJTYPE_FILE
-- || enmType == RTVFSOBJTYPE_IO_STREAM)
-- rc = vboxExtPackValidateMemberFile(pszName, hVfsObj, pszError, cbError);
-- else if ( enmType == RTVFSOBJTYPE_DIR
-- || enmType == RTVFSOBJTYPE_BASE)
-- rc = vboxExtPackValidateMemberDir(pszName, hVfsObj, pszError, cbError);
-- else
-- rc = vboxExtPackReturnError(VERR_UNEXPECTED_FS_OBJ_TYPE, pszError, cbError,
-- "'%s' is not a file or directory (enmType=%d)", pszName, enmType);
-- return rc;
--}
--
--
--/**
-- * Rewinds the tarball file handle and creates a gunzip | tar chain that
-- * results in a filesystem stream.
-- *
-- * @returns VBox status code, failures with message.
-- * @param hTarballFile The handle to the tarball file.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- * @param phTarFss Where to return the filesystem stream handle.
-- * @param phFileManifest Where to return a manifest where the tarball is
-- * gettting hashed. The entry will be called
-- * "extpack" and be ready when the file system
-- * stream is at an end. Optional.
-- */
--int VBoxExtPackOpenTarFss(RTFILE hTarballFile, char *pszError, size_t cbError, PRTVFSFSSTREAM phTarFss, PRTMANIFEST phFileManifest)
--{
-- Assert(cbError > 0);
-- *pszError = '\0';
-- *phTarFss = NIL_RTVFSFSSTREAM;
--
-- /*
-- * Rewind the file and set up a VFS chain for it.
-- */
-- int rc = RTFileSeek(hTarballFile, 0, RTFILE_SEEK_BEGIN, NULL);
-- if (RT_FAILURE(rc))
-- return vboxExtPackReturnError(rc, pszError, cbError, "Failed seeking to the start of the tarball: %Rrc", rc);
--
-- RTVFSIOSTREAM hTarballIos;
-- rc = RTVfsIoStrmFromRTFile(hTarballFile, RTFILE_O_READ | RTFILE_O_DENY_WRITE | RTFILE_O_OPEN, true /*fLeaveOpen*/,
-- &hTarballIos);
-- if (RT_FAILURE(rc))
-- return vboxExtPackReturnError(rc, pszError, cbError, "RTVfsIoStrmFromRTFile failed: %Rrc", rc);
--
-- RTMANIFEST hFileManifest = NIL_RTMANIFEST;
-- rc = RTManifestCreate(0 /*fFlags*/, &hFileManifest);
-- if (RT_SUCCESS(rc))
-- {
-- RTVFSIOSTREAM hPtIos;
-- rc = RTManifestEntryAddPassthruIoStream(hFileManifest, hTarballIos, "extpack", RTMANIFEST_ATTR_SHA256, true /*read*/, &hPtIos);
-- if (RT_SUCCESS(rc))
-- {
-- RTVFSIOSTREAM hGunzipIos;
-- rc = RTZipGzipDecompressIoStream(hPtIos, 0 /*fFlags*/, &hGunzipIos);
-- if (RT_SUCCESS(rc))
-- {
-- RTVFSFSSTREAM hTarFss;
-- rc = RTZipTarFsStreamFromIoStream(hGunzipIos, 0 /*fFlags*/, &hTarFss);
-- if (RT_SUCCESS(rc))
-- {
-- RTVfsIoStrmRelease(hPtIos);
-- RTVfsIoStrmRelease(hGunzipIos);
-- RTVfsIoStrmRelease(hTarballIos);
-- *phTarFss = hTarFss;
-- if (phFileManifest)
-- *phFileManifest = hFileManifest;
-- else
-- RTManifestRelease(hFileManifest);
-- return VINF_SUCCESS;
-- }
--
-- vboxExtPackSetError(pszError, cbError, "RTZipTarFsStreamFromIoStream failed: %Rrc", rc);
-- RTVfsIoStrmRelease(hGunzipIos);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTZipGzipDecompressIoStream failed: %Rrc", rc);
-- RTVfsIoStrmRelease(hPtIos);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTManifestEntryAddPassthruIoStream failed: %Rrc", rc);
-- RTManifestRelease(hFileManifest);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTManifestCreate failed: %Rrc", rc);
--
-- RTVfsIoStrmRelease(hTarballIos);
-- return rc;
--}
--
--
--/**
-- * Validates the extension pack tarball prior to unpacking.
-- *
-- * Operations performed:
-- * - Mandatory files.
-- * - Manifest check.
-- * - Manifest seal check.
-- * - XML check, match name.
-- *
-- * @returns VBox status code, failures with message.
-- * @param hTarballFile The handle to open the @a pszTarball file.
-- * @param pszExtPackName The name of the extension pack name. NULL if
-- * the name is not fixed.
-- * @param pszTarball The name of the tarball in case we have to
-- * complain about something.
-- * @param pszTarballDigest The SHA-256 digest of the tarball. Empty string
-- * if no digest available.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- * @param phValidManifest Where to optionally return the handle to fully
-- * validated the manifest for the extension pack.
-- * This includes all files.
-- * @param phXmlFile Where to optionally return the memorized XML
-- * file.
-- * @param pStrDigest Where to return the digest of the file.
-- * Optional.
-- */
--int VBoxExtPackValidateTarball(RTFILE hTarballFile, const char *pszExtPackName,
-- const char *pszTarball, const char *pszTarballDigest,
-- char *pszError, size_t cbError,
-- PRTMANIFEST phValidManifest, PRTVFSFILE phXmlFile, RTCString *pStrDigest)
--{
-- /*
-- * Clear return values.
-- */
-- if (phValidManifest)
-- *phValidManifest = NIL_RTMANIFEST;
-- if (phXmlFile)
-- *phXmlFile = NIL_RTVFSFILE;
-- Assert(cbError > 1);
-- *pszError = '\0';
-- NOREF(pszTarball);
--
-- /*
-- * Open the tar.gz filesystem stream and set up an manifest in-memory file.
-- */
-- RTMANIFEST hFileManifest;
-- RTVFSFSSTREAM hTarFss;
-- int rc = VBoxExtPackOpenTarFss(hTarballFile, pszError, cbError, &hTarFss, &hFileManifest);
-- if (RT_FAILURE(rc))
-- return rc;
--
-- RTMANIFEST hOurManifest;
-- rc = RTManifestCreate(0 /*fFlags*/, &hOurManifest);
-- if (RT_SUCCESS(rc))
-- {
-- /*
-- * Process the tarball (would be nice to move this to a function).
-- */
-- RTVFSFILE hXmlFile = NIL_RTVFSFILE;
-- RTVFSFILE hManifestFile = NIL_RTVFSFILE;
-- RTVFSFILE hSignatureFile = NIL_RTVFSFILE;
-- for (;;)
-- {
-- /*
-- * Get the next stream object.
-- */
-- char *pszName;
-- RTVFSOBJ hVfsObj;
-- RTVFSOBJTYPE enmType;
-- rc = RTVfsFsStrmNext(hTarFss, &pszName, &enmType, &hVfsObj);
-- if (RT_FAILURE(rc))
-- {
-- if (rc != VERR_EOF)
-- vboxExtPackSetError(pszError, cbError, "RTVfsFsStrmNext failed: %Rrc", rc);
-- else
-- rc = VINF_SUCCESS;
-- break;
-- }
-- const char *pszAdjName = pszName[0] == '.' && pszName[1] == '/' ? &pszName[2] : pszName;
--
-- /*
-- * Check the type & name validity, performing special tests on
-- * standard extension pack member files.
-- *
-- * N.B. We will always reach the end of the loop before breaking on
-- * failure - cleanup reasons.
-- */
-- rc = VBoxExtPackValidateMember(pszName, enmType, hVfsObj, pszError, cbError);
-- if (RT_SUCCESS(rc))
-- {
-- PRTVFSFILE phVfsFile = NULL;
-- if (!strcmp(pszAdjName, VBOX_EXTPACK_DESCRIPTION_NAME))
-- phVfsFile = &hXmlFile;
-- else if (!strcmp(pszAdjName, VBOX_EXTPACK_MANIFEST_NAME))
-- phVfsFile = &hManifestFile;
-- else if (!strcmp(pszAdjName, VBOX_EXTPACK_SIGNATURE_NAME))
-- phVfsFile = &hSignatureFile;
-- else if (!strncmp(pszAdjName, VBOX_EXTPACK_LICENSE_NAME_PREFIX, sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX) - 1))
-- rc = VBoxExtPackValidateStandardFile(pszAdjName, enmType, &hVfsObj, NULL, pszError, cbError);
-- if (phVfsFile)
-- rc = VBoxExtPackValidateStandardFile(pszAdjName, enmType, &hVfsObj, phVfsFile, pszError, cbError);
-- }
--
-- /*
-- * Add any I/O stream to the manifest
-- */
-- if ( RT_SUCCESS(rc)
-- && ( enmType == RTVFSOBJTYPE_FILE
-- || enmType == RTVFSOBJTYPE_IO_STREAM))
-- {
-- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(hVfsObj);
-- rc = RTManifestEntryAddIoStream(hOurManifest, hVfsIos, pszAdjName, RTMANIFEST_ATTR_SIZE | RTMANIFEST_ATTR_SHA256);
-- if (RT_FAILURE(rc))
-- vboxExtPackSetError(pszError, cbError, "RTManifestEntryAddIoStream failed on '%s': %Rrc", pszAdjName, rc);
-- RTVfsIoStrmRelease(hVfsIos);
-- }
--
-- /*
-- * Clean up and break out on failure.
-- */
-- RTVfsObjRelease(hVfsObj);
-- RTStrFree(pszName);
-- if (RT_FAILURE(rc))
-- break;
-- }
--
-- /*
-- * Check the integrity of the tarball file.
-- */
-- if (RT_SUCCESS(rc))
-- {
-- RTVfsFsStrmRelease(hTarFss);
-- hTarFss = NIL_RTVFSFSSTREAM;
-- rc = vboxExtPackVerifyFileDigest(hFileManifest, pszTarballDigest, pStrDigest, pszError, cbError);
-- }
--
-- /*
-- * If we've successfully processed the tarball, verify that the
-- * mandatory files are present.
-- */
-- if (RT_SUCCESS(rc))
-- {
-- if (hXmlFile == NIL_RTVFSFILE)
-- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_DESCRIPTION_NAME);
-- if (hManifestFile == NIL_RTVFSFILE)
-- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_MANIFEST_NAME);
-- if (hSignatureFile == NIL_RTVFSFILE)
-- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_SIGNATURE_NAME);
-- }
--
-- /*
-- * Check the manifest and it's signature.
-- */
-- if (RT_SUCCESS(rc))
-- rc = vboxExtPackVerifyManifestAndSignature(hOurManifest, hManifestFile, hSignatureFile, pszError, cbError);
--
-- /*
-- * Check the XML.
-- */
-- if (RT_SUCCESS(rc))
-- rc = vboxExtPackVerifyXml(hXmlFile, pszExtPackName, pszError, cbError);
--
-- /*
-- * Returns objects.
-- */
-- if (RT_SUCCESS(rc))
-- {
-- if (phValidManifest)
-- {
-- RTManifestRetain(hOurManifest);
-- *phValidManifest = hOurManifest;
-- }
-- if (phXmlFile)
-- {
-- RTVfsFileRetain(hXmlFile);
-- *phXmlFile = hXmlFile;
-- }
-- }
--
-- /*
-- * Release our object references.
-- */
-- RTManifestRelease(hOurManifest);
-- RTVfsFileRelease(hXmlFile);
-- RTVfsFileRelease(hManifestFile);
-- RTVfsFileRelease(hSignatureFile);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTManifestCreate failed: %Rrc", rc);
-- RTVfsFsStrmRelease(hTarFss);
-- RTManifestRelease(hFileManifest);
--
-- return rc;
--}
--
---- VirtualBox-4.1.18.orig/include/Makefile.kmk 2012-06-20 10:07:49.000000000 -0300
-+++ VirtualBox-4.1.18/include/Makefile.kmk 2012-07-24 21:11:57.007068865 -0300
-@@ -51,7 +51,6 @@
- VBox/vd-cache-plugin.h \
- VBox/vmm/uvm.h \
- VBox/vscsi.h \
-- $(wildcard VBox/ExtPack/*.h ) \
- iprt/alloca.h \
- iprt/tcp.h \
- iprt/localipc.h \
---- VirtualBox-4.1.18.orig/src/Makefile.kmk 2012-06-20 10:07:57.000000000 -0300
-+++ VirtualBox-4.1.18/src/Makefile.kmk 2012-07-24 22:51:10.206996034 -0300
-@@ -26,14 +26,6 @@
- include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk
- include $(PATH_SUB_CURRENT)/libs/Makefile.kmk
-
--else if defined(VBOX_ONLY_EXTPACKS)
-- include $(PATH_SUB_CURRENT)/bldprogs/Makefile.kmk
-- include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk
-- include $(PATH_SUB_CURRENT)/libs/Makefile.kmk
-- ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
-- include $(PATH_SUB_CURRENT)/recompiler/Makefile.kmk
-- endif
--
- else if defined(VBOX_ONLY_TESTSUITE)
- include $(PATH_SUB_CURRENT)/libs/Makefile.kmk
- include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk
---- VirtualBox-4.1.18.orig/src/VBox/Makefile.kmk 2012-07-24 21:19:55.565641784 -0300
-+++ VirtualBox-4.1.18/src/VBox/Makefile.kmk 2012-07-24 22:12:55.429156962 -0300
-@@ -33,19 +33,6 @@
- include $(PATH_SUB_CURRENT)/HostDrivers/Makefile.kmk
- include $(PATH_SUB_CURRENT)/Frontends/Makefile.kmk
-
--else ifdef VBOX_ONLY_EXTPACKS
-- include $(PATH_SUB_CURRENT)/Runtime/Makefile.kmk
-- include $(PATH_SUB_CURRENT)/Devices/Makefile.kmk
-- include $(PATH_SUB_CURRENT)/HostDrivers/Makefile.kmk
-- include $(PATH_SUB_CURRENT)/ExtPacks/Makefile.kmk
-- ifdef VBOX_WITH_VRDP
-- include $(PATH_SUB_CURRENT)/RDP/Makefile.kmk
-- endif
-- include $(PATH_SUB_CURRENT)/VMM/Makefile.kmk
-- ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
-- include $(PATH_SUB_CURRENT)/Disassembler/Makefile.kmk
-- endif
--
- else ifdef VBOX_ONLY_SDK
- include $(PATH_SUB_CURRENT)/Main/Makefile.kmk
- ifdef VBOX_WITH_VRDP
-@@ -92,9 +79,6 @@
- if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
- include $(PATH_SUB_CURRENT)/NetworkServices/Makefile.kmk
- endif
-- ifndef VBOX_OSE
-- include $(PATH_SUB_CURRENT)/ExtPacks/Makefile.kmk
-- endif
- ifdef VBOX_WITH_INSTALLER
- include $(PATH_SUB_CURRENT)/Installer/Makefile.kmk # Keep this last.
- endif
---- VirtualBox-4.1.18/src/libs/Makefile.kmk.orig 2012-07-24 21:23:26.938013023 -0300
-+++ VirtualBox-4.1.18/src/libs/Makefile.kmk 2012-07-24 21:43:42.557911752 -0300
-@@ -48,13 +48,6 @@
- include $(PATH_SUB_CURRENT)/kStuff/Makefile.kmk
- endif
-
--# OpenSSL.
--if !defined(VBOX_ONLY_SDK) \
-- && ( "$(SDK_VBOX_OPENSSL_INCS)" == "$(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS)" \
-- || defined(VBOX_WITH_EXTPACK_PUEL_BUILD))
-- include $(PATH_SUB_CURRENT)/openssl-0.9.8t/Makefile.kmk
--endif
--
- # libjpeg for VRDP video redirection
- if defined(VBOX_WITH_VRDP) && defined(VBOX_WITH_VRDP_VIDEO_CHANNEL)
- include $(PATH_SUB_CURRENT)/jpeg-8a/Makefile.kmk
---- VirtualBox-4.1.18.orig/src/VBox/Devices/Makefile.kmk 2012-07-24 23:06:45.916276235 -0300
-+++ VirtualBox-4.1.18/src/VBox/Devices/Makefile.kmk 2012-07-24 23:17:00.202963228 -0300
-@@ -21,9 +21,7 @@
-
- # Include sub-makefiles.
- include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
--if defined(VBOX_WITH_INTEL_PXE) || defined(VBOX_ONLY_EXTPACKS)
-- include $(PATH_SUB_CURRENT)/PC/PXE/Makefile.kmk
--else if defined(VBOX_WITH_PXE_ROM) && !defined(VBOX_WITHOUT_ETHERBOOT)
-+if defined(VBOX_WITH_PXE_ROM) && !defined(VBOX_WITHOUT_ETHERBOOT)
- include $(PATH_SUB_CURRENT)/PC/Etherboot-src/Makefile.kmk
- endif
- if !defined(VBOX_ONLY_EXTPACKS) # Goes on almost to the end of the file.
-@@ -57,9 +55,6 @@
- ifdef VBOX_WITH_USB
- VBoxDDU_DEFS += VBOX_WITH_USB IN_USBLIB
- VBoxDDU_SDKS.win = WINPSDK W2K3DDK
-- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-- VBoxDDU_DEFS += VBOX_WITH_EHCI_IMPL
-- endif
- ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
- VBoxDDU_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN
- endif
-@@ -122,9 +117,6 @@
- VBoxDD_DEFS = VBOX_ACPI
- ifdef VBOX_WITH_USB
- VBoxDD_DEFS += VBOX_WITH_USB
-- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-- VBoxDD_DEFS += VBOX_WITH_EHCI_IMPL
-- endif
- endif
- ifdef VBOX_WITH_VUSB
- VBoxDD_DEFS += VBOX_WITH_VUSB
-@@ -446,11 +438,6 @@
- endif
- ifdef VBOX_WITH_USB
- DevicesR3_DEFS += VBOX_WITH_USB
-- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-- DevicesR3_DEFS += VBOX_WITH_EHCI_IMPL
-- DevicesR3_SOURCES += \
-- USB/DevEHCI.cpp
-- endif
- endif
- if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
- DevicesR3_DEFS += VBOX_WITH_PCI_PASSTHROUGH_IMPL
-@@ -607,11 +594,6 @@
-
- ifdef VBOX_WITH_USB
- VBoxDDGC_DEFS += VBOX_WITH_USB
-- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-- VBoxDDGC_DEFS += VBOX_WITH_EHCI_IMPL
-- VBoxDDGC_SOURCES += \
-- USB/DevEHCI.cpp
-- endif
- endif
-
- ifdef VBOX_WITH_VIDEOHWACCEL
-@@ -711,11 +693,6 @@
- endif
- ifdef VBOX_WITH_USB
- VBoxDDR0_DEFS += VBOX_WITH_USB
-- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-- VBoxDDR0_DEFS += VBOX_WITH_EHCI_IMPL
-- VBoxDDR0_SOURCES += \
-- USB/DevEHCI.cpp
-- endif
- endif
-
- if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-@@ -1204,49 +1181,5 @@
-
- endif # !VBOX_ONLY_EXTPACKS
-
--if defined(VBOX_WITH_EXTPACK_PUEL) && defined(VBOX_WITH_EXTPACK_PUEL_BUILD)
-- #
-- # The EHCI (USB 2.0) Extension Pack Modules.
-- #
-- if defined(VBOX_WITH_USB)
-- DLLS += VBoxEhciR3
-- VBoxEhciR3_TEMPLATE = VBoxR3ExtPackPuel
-- VBoxEhciR3_SOURCES = USB/DevEHCI.cpp
--
-- SYSMODS += VBoxEhciR0
-- VBoxEhciR0_TEMPLATE = VBoxR0ExtPackPuel
-- VBoxEhciR0_SOURCES = USB/DevEHCI.cpp
--
-- ifdef VBOX_WITH_RAW_MODE
-- SYSMODS += VBoxEhciRC
-- VBoxEhciRC_TEMPLATE = VBoxRcExtPackPuel
-- VBoxEhciRC_SOURCES = USB/DevEHCI.cpp
-- endif
-- endif
--
-- if defined(VBOX_WITH_PCI_PASSTHROUGH)
-- DLLS += VBoxPciRawR3
-- VBoxPciRawR3_TEMPLATE = VBoxR3ExtPackPuel
-- VBoxPciRawR3_SOURCES = Bus/DevPciRaw.cpp
--
-- DLLS += VBoxPciRawDrv
-- VBoxPciRawDrv_TEMPLATE = VBoxR3ExtPackPuel
-- VBoxPciRawDrv_SOURCES = Bus/DrvPciRaw.cpp
--
-- SYSMODS += VBoxPciRawR0
-- VBoxPciRawR0_TEMPLATE = VBoxR0ExtPackPuel
-- VBoxPciRawR0_SOURCES = Bus/DevPciRaw.cpp
--
-- Bus/DevPciRaw.cpp_INCS = Bus
-- endif
--
-- #
-- # The Intel PXE rom.
-- #
-- INSTALLS += VBoxExtPackPuelInsRoms
-- VBoxExtPackPuelInsRoms_TEMPLATE = VBoxInsExtPackPuel
-- VBoxExtPackPuelInsRoms_SOURCES = PC/PXE/PXE-Intel.rom=>PXE-Intel.rom
--endif # VBOX_WITH_EXTPACK_PUEL
--
- include $(KBUILD_PATH)/subfooter.kmk
-
---- VirtualBox-4.1.18.orig/src/VBox/Main/Makefile.kmk 2012-07-24 23:38:25.304126039 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/Makefile.kmk 2012-07-24 23:38:25.350789964 -0300
-@@ -230,14 +230,12 @@
- $(if $(VBOX_USB_WITH_SYSFS),VBOX_USB_WITH_SYSFS,) \
- $(if $(VBOX_USB_WITH_INOTIFY),VBOX_USB_WITH_INOTIFY,) \
- $(if $(VBOX_WITH_LIVE_MIGRATION),VBOX_WITH_LIVE_MIGRATION,) \
-- $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \
- $(if $(VBOX_WITH_VUSB),VBOX_WITH_VUSB,) \
- $(if $(VBOX_WITH_S3),VBOX_WITH_S3,) \
- $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,)
- ifdef VBOX_WITH_USB
- VBoxSVC_DEFS += \
- VBOX_WITH_USB \
-- $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI,) \
- $(if $(VBOX_WITH_NEW_USB_CODE_ON_DARWIN),VBOX_WITH_NEW_USB_CODE_ON_DARWIN,)
- endif
- VBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE
-@@ -290,7 +288,6 @@
- src-all/SharedFolderImpl.cpp \
- src-all/VirtualBoxBase.cpp \
- src-all/VirtualBoxErrorInfoImpl.cpp \
-- $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \
- src-server/ApplianceImpl.cpp \
- src-server/ApplianceImplExport.cpp \
- src-server/ApplianceImplImport.cpp \
-@@ -543,8 +540,6 @@
- $(if $(VBOX_WITH_HGSMI),VBOX_WITH_HGSMI,) \
- $(if $(VBOX_WITH_VIDEOHWACCEL),VBOX_WITH_VIDEOHWACCEL,) \
- $(if $(VBOX_WITH_USB),VBOX_WITH_USB,) \
-- $(if-expr defined(VBOX_WITH_EHCI) && defined(VBOX_WITH_USB),VBOX_WITH_EHCI,) \
-- $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \
- $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,)
-
- VBoxC_DEFS.darwin.x86 = VBOX_WITH_2X_4GB_ADDR_SPACE
-@@ -602,7 +597,6 @@
- src-all/SharedFolderImpl.cpp \
- src-all/VirtualBoxBase.cpp \
- src-all/VirtualBoxErrorInfoImpl.cpp \
-- $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \
- $(if $(VBOX_WITH_USB_VIDEO),src-client/UsbWebcamInterface.cpp,) \
- $(if $(VBOX_WITH_USB_CARDREADER),src-client/UsbCardReader.cpp,) \
- src-client/AdditionsFacilityImpl.cpp \
-@@ -711,22 +705,6 @@
- endif # !win
-
-
--#
--# The VBoxExtPackHelperApp.
--#
--ifdef VBOX_WITH_EXTPACK
-- PROGRAMS += VBoxExtPackHelperApp
-- VBoxExtPackHelperApp_TEMPLATE = VBoxR3SetUidToRoot
-- VBoxExtPackHelperApp_LDFLAGS.darwin = -framework Security
-- VBoxExtPackHelperApp_LDFLAGS.win = /SUBSYSTEM:windows
-- VBoxExtPackHelperApp_SOURCES = \
-- src-helper-apps/VBoxExtPackHelperApp.cpp \
-- src-all/ExtPackUtil.cpp
-- VBoxExtPackHelperApp_LIBS = \
-- $(LIB_RUNTIME)
--endif # VBOX_WITH_EXTPACK
--
--
- endif # !VBOX_ONLY_SDK (the ifndef is far above)
-
-
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/Makefile.kmk 2012-07-24 23:25:04.575825175 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/Makefile.kmk 2012-07-24 23:25:04.619156084 -0300
-@@ -888,7 +888,6 @@
- $(VBOX_MACOSX_ICON_FILE)=>Resources/virtualbox.icns \
- $(VBOX_BRAND_GUI_VBOX_64PX_PNG)=>Resources/virtualbox.png \
- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vbox.icns=>Resources/virtualbox-vbox.icns \
-- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vbox-extpack.icns=>Resources/virtualbox-vbox-extpack.icns \
- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ovf.icns=>Resources/virtualbox-ovf.icns \
- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ova.icns=>Resources/virtualbox-ova.icns \
- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vdi.icns=>Resources/virtualbox-vdi.icns \
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-24 23:28:17.985011038 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-24 23:28:18.051673913 -0300
-@@ -167,18 +167,6 @@
- <file alias="status_check_32px.png">images/status_check_32px.png</file>
- <file alias="status_error_16px.png">images/status_error_16px.png</file>
- <file alias="status_error_32px.png">images/status_error_32px.png</file>
-- <file alias="extension_pack_16px.png">images/extension_pack_16px.png</file>
-- <file alias="extension_pack_disabled_16px.png">images/extension_pack_disabled_16px.png</file>
-- <file alias="extension_pack_32px.png">images/extension_pack_32px.png</file>
-- <file alias="extension_pack_disabled_32px.png">images/extension_pack_disabled_32px.png</file>
-- <file alias="extension_pack_install_16px.png">images/extension_pack_install_16px.png</file>
-- <file alias="extension_pack_install_disabled_16px.png">images/extension_pack_install_disabled_16px.png</file>
-- <file alias="extension_pack_install_32px.png">images/extension_pack_install_32px.png</file>
-- <file alias="extension_pack_install_disabled_32px.png">images/extension_pack_install_disabled_32px.png</file>
-- <file alias="extension_pack_uninstall_16px.png">images/extension_pack_uninstall_16px.png</file>
-- <file alias="extension_pack_uninstall_disabled_16px.png">images/extension_pack_uninstall_disabled_16px.png</file>
-- <file alias="extension_pack_uninstall_32px.png">images/extension_pack_uninstall_32px.png</file>
-- <file alias="extension_pack_uninstall_disabled_32px.png">images/extension_pack_uninstall_disabled_32px.png</file>
- <file alias="proxy_16px.png">images/proxy_16px.png</file>
- <file alias="proxy_disabled_16px.png">images/proxy_disabled_16px.png</file>
- <file alias="proxy_32px.png">images/proxy_32px.png</file>
---- VirtualBox-4.1.18.orig/src/VBox/Installer/linux/Makefile.kmk 2012-07-25 00:32:00.780012664 -0300
-+++ VirtualBox-4.1.18/src/VBox/Installer/linux/Makefile.kmk 2012-07-25 00:32:00.806677728 -0300
-@@ -170,11 +170,6 @@
- VBox.sh \
- VBox.png
-
--ifdef VBOX_WITH_EXTPACK
-- VBOX_LNX_STRIP_BIN += \
-- VBoxExtPackHelperApp
--endif
--
- # Qt4 GUI
- ifdef VBOX_WITH_QTGUI
- include $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk
-@@ -286,7 +281,7 @@
-
- VBOX_MIME_ICONS = \
- $(addprefix $(PATH_ROOT)/src/VBox/Resources/other/,\
-- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \
-+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \
- $(foreach s,16 20 24 32 48 64 72 96 128 256,\
- virtualbox-$(f)-$(s)px.png=>$(s)x$(s)/virtualbox-$(f).png)))
-
---- VirtualBox-4.1.18.orig/src/VBox/Installer/win/Makefile.kmk 2012-07-25 00:34:52.253398525 -0300
-+++ VirtualBox-4.1.18/src/VBox/Installer/win/Makefile.kmk 2012-07-25 00:34:52.300062531 -0300
-@@ -435,7 +435,6 @@
- -E 'VBOX_WITH_DEBUGGER_GUI=$(if-expr defined(VBOX_WITH_DEBUGGER_GUI) && defined(VBOX_WITH_QTGUI),yes,no)' \
- -E 'VBOX_WITH_DOCS_PACKING=$(if $(VBOX_WITH_DOCS_PACKING),yes,no)' \
- -E 'VBOX_WITH_EFIFW_PACKING=$(if $(VBOX_WITH_EFIFW_PACKING),yes,no)' \
-- -E 'VBOX_WITH_EXTPACK=$(if $(VBOX_WITH_EXTPACK),yes,no)' \
- -E 'VBOX_WITH_GUEST_CONTROL=$(if $(VBOX_WITH_GUEST_CONTROL),yes,no)' \
- -E 'VBOX_WITH_GUEST_PROPS=$(if $(VBOX_WITH_GUEST_PROPS),yes,no)' \
- -E 'VBOX_WITH_NETFLT=$(if $(VBOX_WITH_NETFLT),yes,no)' \
---- VirtualBox-4.1.18.orig/src/VBox/Installer/darwin/Makefile.kmk 2012-07-25 00:36:55.929571374 -0300
-+++ VirtualBox-4.1.18/src/VBox/Installer/darwin/Makefile.kmk 2012-07-25 00:36:55.959569630 -0300
-@@ -629,7 +629,6 @@
- MacOS/VirtualBoxVM \
- MacOS/VBoxNetAdpCtl \
- MacOS/VBoxNetDHCP \
-- MacOS/VBoxExtPackHelperApp \
- MacOS/VBoxBalloonCtrl
- ifdef VBOX_WITH_WEBSERVICES
- VBOX_DI_VBAPP_PROGS += \
-@@ -659,7 +658,6 @@
- Resources/virtualbox.icns \
- Resources/virtualbox.png \
- Resources/virtualbox-vbox.icns \
-- Resources/virtualbox-vbox-extpack.icns \
- Resources/virtualbox-ovf.icns \
- Resources/virtualbox-ova.icns \
- Resources/virtualbox-vdi.icns \
---- VirtualBox-4.1.18/src/VBox/Installer/solaris/Makefile.kmk.orig 2012-07-25 00:38:48.476398293 -0300
-+++ VirtualBox-4.1.18/src/VBox/Installer/solaris/Makefile.kmk 2012-07-25 00:38:48.516396159 -0300
-@@ -185,12 +185,12 @@
-
- VBOX_MIME_ICONS = \
- $(addprefix $(PATH_ROOT)/src/VBox/Resources/other/,\
-- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \
-+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \
- $(foreach s,16 20 24 32 48 64 72 96 128 256,\
- virtualbox-$(f)-$(s)px.png=>$(s)x$(s)/mimetypes/virtualbox-$(f).png)))
-
- SOLARIS_COMMON_ICONS = \
-- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \
-+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \
- $(foreach s,16 20 24 32 48 64 72 96 128 256,\
- $(s)x$(s)/mimetypes/virtualbox-$(f).png))
-
-@@ -210,7 +210,6 @@
- $(if $(VBOX_WITH_VBOXSDL),VBoxSDL,) \
- $(if $(VBOX_WITH_NETADP),VBoxNetAdpCtl,) \
- VBoxNetDHCP \
-- $(if $(VBOX_WITH_EXTPACK),VBoxExtPackHelperApp,) \
- VBoxSVC \
- $(if $(VBOX_WITH_CROGL),VBoxTestOGL,) \
- VBoxXPCOMIPCD \
---- VirtualBox-4.1.18.orig/src/VBox/Runtime/Makefile.kmk 2012-07-25 00:40:58.745522450 -0300
-+++ VirtualBox-4.1.18/src/VBox/Runtime/Makefile.kmk 2012-07-25 00:40:58.782186960 -0300
-@@ -53,15 +53,6 @@
- #
- LIBRARIES += RuntimeR3 RuntimeBldProg
-
--else ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
-- #
-- # Build docs only - need just regular R3 runtime.
-- #
-- LIBRARIES += RuntimeBldProg
-- LIBRARIES.solaris += RuntimeR0Stub
-- LIBRARIES.win += RuntimeR0Stub RuntimeRCStub
-- include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
--
- else # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_TESTSUITE && !VBOX_ONLY_DOCS
-
- #
diff --git a/libre/virtualbox-libre-modules-lts/os_blag.png b/libre/virtualbox-libre-modules-lts/os_blag.png
deleted file mode 100644
index 61995ca10..000000000
--- a/libre/virtualbox-libre-modules-lts/os_blag.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_blag_64.png b/libre/virtualbox-libre-modules-lts/os_blag_64.png
deleted file mode 100644
index aa4463a97..000000000
--- a/libre/virtualbox-libre-modules-lts/os_blag_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_dragora.png b/libre/virtualbox-libre-modules-lts/os_dragora.png
deleted file mode 100644
index d1df45880..000000000
--- a/libre/virtualbox-libre-modules-lts/os_dragora.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_dragora_64.png b/libre/virtualbox-libre-modules-lts/os_dragora_64.png
deleted file mode 100644
index 64bcecf20..000000000
--- a/libre/virtualbox-libre-modules-lts/os_dragora_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_dynebolic.png b/libre/virtualbox-libre-modules-lts/os_dynebolic.png
deleted file mode 100644
index 67b07d4c0..000000000
--- a/libre/virtualbox-libre-modules-lts/os_dynebolic.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_gnewsense.png b/libre/virtualbox-libre-modules-lts/os_gnewsense.png
deleted file mode 100644
index 76d9e38b3..000000000
--- a/libre/virtualbox-libre-modules-lts/os_gnewsense.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_gnewsense_64.png b/libre/virtualbox-libre-modules-lts/os_gnewsense_64.png
deleted file mode 100644
index 8859c34e8..000000000
--- a/libre/virtualbox-libre-modules-lts/os_gnewsense_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_gnu.png b/libre/virtualbox-libre-modules-lts/os_gnu.png
deleted file mode 100644
index 26c4550f9..000000000
--- a/libre/virtualbox-libre-modules-lts/os_gnu.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_gnu_64.png b/libre/virtualbox-libre-modules-lts/os_gnu_64.png
deleted file mode 100644
index 4161634e9..000000000
--- a/libre/virtualbox-libre-modules-lts/os_gnu_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_gnuhurd.png b/libre/virtualbox-libre-modules-lts/os_gnuhurd.png
deleted file mode 100644
index 26c4550f9..000000000
--- a/libre/virtualbox-libre-modules-lts/os_gnuhurd.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_gnulinux.png b/libre/virtualbox-libre-modules-lts/os_gnulinux.png
deleted file mode 100644
index 26c4550f9..000000000
--- a/libre/virtualbox-libre-modules-lts/os_gnulinux.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_gnulinux_64.png b/libre/virtualbox-libre-modules-lts/os_gnulinux_64.png
deleted file mode 100644
index 4161634e9..000000000
--- a/libre/virtualbox-libre-modules-lts/os_gnulinux_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_musix.png b/libre/virtualbox-libre-modules-lts/os_musix.png
deleted file mode 100644
index fb7b94577..000000000
--- a/libre/virtualbox-libre-modules-lts/os_musix.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_musix_64.png b/libre/virtualbox-libre-modules-lts/os_musix_64.png
deleted file mode 100644
index a1bbbbf3a..000000000
--- a/libre/virtualbox-libre-modules-lts/os_musix_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_os64base.png b/libre/virtualbox-libre-modules-lts/os_os64base.png
deleted file mode 100644
index 7aec20314..000000000
--- a/libre/virtualbox-libre-modules-lts/os_os64base.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_os64base.xcf b/libre/virtualbox-libre-modules-lts/os_os64base.xcf
deleted file mode 100644
index d8e28e35e..000000000
--- a/libre/virtualbox-libre-modules-lts/os_os64base.xcf
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_osbase.png b/libre/virtualbox-libre-modules-lts/os_osbase.png
deleted file mode 100644
index 00f197fca..000000000
--- a/libre/virtualbox-libre-modules-lts/os_osbase.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_osbase.xcf b/libre/virtualbox-libre-modules-lts/os_osbase.xcf
deleted file mode 100644
index c4463c857..000000000
--- a/libre/virtualbox-libre-modules-lts/os_osbase.xcf
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_parabola.png b/libre/virtualbox-libre-modules-lts/os_parabola.png
deleted file mode 100644
index 757abc484..000000000
--- a/libre/virtualbox-libre-modules-lts/os_parabola.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_parabola_64.png b/libre/virtualbox-libre-modules-lts/os_parabola_64.png
deleted file mode 100644
index 5ac7c2767..000000000
--- a/libre/virtualbox-libre-modules-lts/os_parabola_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_trisquel.png b/libre/virtualbox-libre-modules-lts/os_trisquel.png
deleted file mode 100644
index c6f0d3d7a..000000000
--- a/libre/virtualbox-libre-modules-lts/os_trisquel.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_trisquel_64.png b/libre/virtualbox-libre-modules-lts/os_trisquel_64.png
deleted file mode 100644
index ebca3dd43..000000000
--- a/libre/virtualbox-libre-modules-lts/os_trisquel_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_ututo.png b/libre/virtualbox-libre-modules-lts/os_ututo.png
deleted file mode 100644
index e1dffb575..000000000
--- a/libre/virtualbox-libre-modules-lts/os_ututo.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_ututo_64.png b/libre/virtualbox-libre-modules-lts/os_ututo_64.png
deleted file mode 100644
index 158468e0a..000000000
--- a/libre/virtualbox-libre-modules-lts/os_ututo_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/os_venenux.png b/libre/virtualbox-libre-modules-lts/os_venenux.png
deleted file mode 100644
index 5e0c1585d..000000000
--- a/libre/virtualbox-libre-modules-lts/os_venenux.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules-lts/virtualbox-libre-modules-lts.install b/libre/virtualbox-libre-modules-lts/virtualbox-libre-modules-lts.install
deleted file mode 100644
index 5387563a6..000000000
--- a/libre/virtualbox-libre-modules-lts/virtualbox-libre-modules-lts.install
+++ /dev/null
@@ -1,18 +0,0 @@
-EXTRAMODULES='extramodules-3.0-LIBRE-LTS'
-
-post_install() {
-/bin/cat << EOF
-===> You must load vboxdrv module before starting VirtualBox:
-===> # modprobe vboxdrv
-EOF
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_upgrade() {
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
- echo 'In order to use the new version, reload all virtualbox modules manually.'
-}
-
-post_remove() {
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
diff --git a/libre/virtualbox-libre-modules-lts/virtualbox-libre-parabola-modules-lts.install b/libre/virtualbox-libre-modules-lts/virtualbox-libre-parabola-modules-lts.install
deleted file mode 100644
index 54a052390..000000000
--- a/libre/virtualbox-libre-modules-lts/virtualbox-libre-parabola-modules-lts.install
+++ /dev/null
@@ -1,16 +0,0 @@
-EXTRAMODULES='extramodules-3.0-LIBRE-LTS'
-
-post_install() {
-cat << EOF
-===> You may want to load vboxguest, vboxsf and vboxvideo
-EOF
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_upgrade() {
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_remove() {
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
diff --git a/libre/virtualbox-libre-modules/.directory b/libre/virtualbox-libre-modules/.directory
deleted file mode 100644
index 9f6471595..000000000
--- a/libre/virtualbox-libre-modules/.directory
+++ /dev/null
@@ -1,3 +0,0 @@
-[Dolphin]
-Timestamp=2012,8,16,6,34,39
-Version=3
diff --git a/libre/virtualbox-libre-modules/60-vboxguest.rules b/libre/virtualbox-libre-modules/60-vboxguest.rules
deleted file mode 100644
index 6285f7249..000000000
--- a/libre/virtualbox-libre-modules/60-vboxguest.rules
+++ /dev/null
@@ -1,2 +0,0 @@
-ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
-ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
diff --git a/libre/virtualbox-libre-modules/LocalConfig.kmk b/libre/virtualbox-libre-modules/LocalConfig.kmk
deleted file mode 100644
index af79f90cd..000000000
--- a/libre/virtualbox-libre-modules/LocalConfig.kmk
+++ /dev/null
@@ -1,19 +0,0 @@
-VBOX_WITH_ADDITION_DRIVERS =
-VBOX_WITH_INSTALLER = 1
-VBOX_WITH_LINUX_ADDITIONS = 1
-VBOX_WITH_X11_ADDITIONS =
-VBOX_WITH_TESTCASES =
-VBOX_WITH_TESTSUITE =
-VBOX_WITH_ORIGIN :=
-VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
-VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
-VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
-VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
-VBOX_PATH_APP_DOCS := /usr/share/virtualbox
-VBOX_WITH_REGISTRATION_REQUEST =
-VBOX_WITH_UPDATE_REQUEST =
-VBOX_WITH_VNC := 1
-VBOX_BLD_PYTHON = python2
-VBOX_JAVA_HOME = /usr/lib/jvm/java-6-openjdk
-VBOX_GCC_WERR =
-VBOX_GCC_WARN =
diff --git a/libre/virtualbox-libre-modules/free-distros.patch b/libre/virtualbox-libre-modules/free-distros.patch
deleted file mode 100644
index 47857e05d..000000000
--- a/libre/virtualbox-libre-modules/free-distros.patch
+++ /dev/null
@@ -1,1383 +0,0 @@
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp 2012-07-25 14:51:03.569003667 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp 2012-07-25 14:51:03.652333615 -0300
-@@ -44,94 +44,38 @@
- * first matching string found, will be used. */
- static const osTypePattern gs_OSTypePattern[] =
- {
-- { QRegExp("DOS", Qt::CaseInsensitive), "DOS" },
-
-- /* Windows */
-- { QRegExp("Wi.*98", Qt::CaseInsensitive), "Windows98" },
-- { QRegExp("Wi.*95", Qt::CaseInsensitive), "Windows95" },
-- { QRegExp("Wi.*Me", Qt::CaseInsensitive), "WindowsMe" },
-- { QRegExp("(Wi.*NT)|(NT4)", Qt::CaseInsensitive), "WindowsNT4" },
-- { QRegExp("((Wi.*XP)|(\\bXP\\b)).*64", Qt::CaseInsensitive), "WindowsXP_64" },
-- { QRegExp("(Wi.*XP)|(\\bXP\\b)", Qt::CaseInsensitive), "WindowsXP" },
-- { QRegExp("((Wi.*2003)|(W2K3)).*64", Qt::CaseInsensitive), "Windows2003_64" },
-- { QRegExp("(Wi.*2003)|(W2K3)", Qt::CaseInsensitive), "Windows2003" },
-- { QRegExp("((Wi.*V)|(Vista)).*64", Qt::CaseInsensitive), "WindowsVista_64" },
-- { QRegExp("(Wi.*V)|(Vista)", Qt::CaseInsensitive), "WindowsVista" },
-- { QRegExp("((Wi.*2008)|(W2K8)).*64", Qt::CaseInsensitive), "Windows2008_64" },
-- { QRegExp("(Wi.*2008)|(W2K8)", Qt::CaseInsensitive), "Windows2008" },
-- { QRegExp("(Wi.*2000)|(W2K)", Qt::CaseInsensitive), "Windows2000" },
-- { QRegExp("(Wi.*7.*64)|(W7.*64)", Qt::CaseInsensitive), "Windows7_64" },
-- { QRegExp("(Wi.*7)|(W7)", Qt::CaseInsensitive), "Windows7" },
-- { QRegExp("(Wi.*8.*64)|(W8.*64)", Qt::CaseInsensitive), "Windows8_64" },
-- { QRegExp("(Wi.*8)|(W8)", Qt::CaseInsensitive), "Windows8" },
-- { QRegExp("Wi.*3", Qt::CaseInsensitive), "Windows31" },
-- { QRegExp("Wi", Qt::CaseInsensitive), "WindowsXP" },
--
-- /* Solaris */
-- { QRegExp("((Op.*So)|(os20[01][0-9])|(So.*1[01])|(India)|(Neva)).*64", Qt::CaseInsensitive), "OpenSolaris_64" },
-- { QRegExp("(Op.*So)|(os20[01][0-9])|(So.*1[01])|(India)|(Neva)", Qt::CaseInsensitive), "OpenSolaris" },
-- { QRegExp("So.*64", Qt::CaseInsensitive), "Solaris_64" },
-- { QRegExp("So", Qt::CaseInsensitive), "Solaris" },
--
-- /* OS/2 */
-- { QRegExp("OS[/|!-]{,1}2.*W.*4.?5", Qt::CaseInsensitive), "OS2Warp45" },
-- { QRegExp("OS[/|!-]{,1}2.*W.*4", Qt::CaseInsensitive), "OS2Warp4" },
-- { QRegExp("OS[/|!-]{,1}2.*W", Qt::CaseInsensitive), "OS2Warp3" },
-- { QRegExp("(OS[/|!-]{,1}2.*e)|(eCS.*)", Qt::CaseInsensitive), "OS2eCS" },
-- { QRegExp("OS[/|!-]{,1}2", Qt::CaseInsensitive), "OS2" },
--
-- /* Code names for Linux distributions */
-- { QRegExp("((edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)).*64", Qt::CaseInsensitive), "Ubuntu_64" },
-- { QRegExp("(edgy)|(feisty)|(gutsy)|(hardy)|(intrepid)|(jaunty)|(karmic)|(lucid)|(maverick)|(natty)|(oneiric)|(precise)", Qt::CaseInsensitive), "Ubuntu" },
-- { QRegExp("((sarge)|(etch)|(lenny)|(squeeze)|(wheezy)|(sid)).*64", Qt::CaseInsensitive), "Debian_64" },
-- { QRegExp("(sarge)|(etch)|(lenny)|(squeeze)|(wheezy)|(sid)", Qt::CaseInsensitive), "Debian" },
-- { QRegExp("((moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)).*64", Qt::CaseInsensitive), "Fedora_64" },
-- { QRegExp("(moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)|(lovelock)|(verne)", Qt::CaseInsensitive), "Fedora" },
--
-- /* Regular names of Linux distributions */
-- { QRegExp("Arc.*64", Qt::CaseInsensitive), "ArchLinux_64" },
-- { QRegExp("Arc", Qt::CaseInsensitive), "ArchLinux" },
-- { QRegExp("Deb.*64", Qt::CaseInsensitive), "Debian_64" },
-- { QRegExp("Deb", Qt::CaseInsensitive), "Debian" },
-- { QRegExp("((SU)|(Nov)|(SLE)).*64", Qt::CaseInsensitive), "OpenSUSE_64" },
-- { QRegExp("(SU)|(Nov)|(SLE)", Qt::CaseInsensitive), "OpenSUSE" },
-- { QRegExp("Fe.*64", Qt::CaseInsensitive), "Fedora_64" },
-- { QRegExp("Fe", Qt::CaseInsensitive), "Fedora" },
-- { QRegExp("((Gen)|(Sab)).*64", Qt::CaseInsensitive), "Gentoo_64" },
-- { QRegExp("(Gen)|(Sab)", Qt::CaseInsensitive), "Gentoo" },
-- { QRegExp("Man.*64", Qt::CaseInsensitive), "Mandriva_64" },
-- { QRegExp("Man", Qt::CaseInsensitive), "Mandriva" },
-- { QRegExp("((Red)|(rhel)|(cen)).*64", Qt::CaseInsensitive), "RedHat_64" },
-- { QRegExp("(Red)|(rhel)|(cen)", Qt::CaseInsensitive), "RedHat" },
-- { QRegExp("Tur.*64", Qt::CaseInsensitive), "Turbolinux_64" },
-- { QRegExp("Tur", Qt::CaseInsensitive), "Turbolinux" },
-- { QRegExp("Ub.*64", Qt::CaseInsensitive), "Ubuntu_64" },
-- { QRegExp("Ub", Qt::CaseInsensitive), "Ubuntu" },
-- { QRegExp("Xa.*64", Qt::CaseInsensitive), "Xandros_64" },
-- { QRegExp("Xa", Qt::CaseInsensitive), "Xandros" },
-- { QRegExp("((Or)|(oel)).*64", Qt::CaseInsensitive), "Oracle_64" },
-- { QRegExp("(Or)|(oel)", Qt::CaseInsensitive), "Oracle" },
-- { QRegExp("((Li)|(lnx)).*2.?2", Qt::CaseInsensitive), "Linux22" },
-- { QRegExp("((Li)|(lnx)).*2.?4.*64", Qt::CaseInsensitive), "Linux24_64" },
-- { QRegExp("((Li)|(lnx)).*2.?4", Qt::CaseInsensitive), "Linux24" },
-- { QRegExp("((((Li)|(lnx)).*2.?6)|(LFS)).*64", Qt::CaseInsensitive), "Linux26_64" },
-- { QRegExp("(((Li)|(lnx)).*2.?6)|(LFS)", Qt::CaseInsensitive), "Linux26" },
-- { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "Linux26_64" },
-- { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "Linux26" },
-+ /* Code names for GNU/Linux distributions */
-+ { QRegExp("((Taranis)|(Dagda)|(Brigantia)).*64", Qt::CaseInsensitive), "Trisquel_64" },
-+ { QRegExp("(Taranis)|(Dagda)|(Brigantia)", Qt::CaseInsensitive), "Trisquel" },
-+ { QRegExp("((metad)|(parkes)|(three)).*64", Qt::CaseInsensitive), "gNewSense_64" },
-+ { QRegExp("(deltah)|(metad)|(parkes)|(three)", Qt::CaseInsensitive), "gNewSense" },
-+ { QRegExp("((90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)).*64", Qt::CaseInsensitive), "Blag_64" },
-+ { QRegExp("(90k)|(119k)|(140k)|(160k)|(90000)|(119000)|(140000)|(160000)|(Spartakus)", Qt::CaseInsensitive), "Blag" },
-+
-+ /* Regular names of GNU/Linux distributions and GNU-Hurd */
-+ { QRegExp("Pa.*64", Qt::CaseInsensitive), "Parabola_64" },
-+ { QRegExp("Pa", Qt::CaseInsensitive), "Parabola" },
-+ { QRegExp("((gNe)|(new)|(Sen)).*64", Qt::CaseInsensitive), "gNewSense_64" },
-+ { QRegExp("(gNe)|(new)|(Sen)", Qt::CaseInsensitive), "gNewSense" },
-+ { QRegExp("Bla.*64", Qt::CaseInsensitive), "Blag_64" },
-+ { QRegExp("Bla", Qt::CaseInsensitive), "Blag" },
-+ { QRegExp("Dra.*64", Qt::CaseInsensitive), "Dragora_64" },
-+ { QRegExp("Dra", Qt::CaseInsensitive), "Dragora" },
-+ { QRegExp("((Utu)|(XS)).*64", Qt::CaseInsensitive), "Ututo_64" },
-+ { QRegExp("(Utu)|(XS)", Qt::CaseInsensitive), "Ututo" },
-+ { QRegExp("Mus.*64", Qt::CaseInsensitive), "Musix_64" },
-+ { QRegExp("Mus", Qt::CaseInsensitive), "Musix" },
-+ { QRegExp("Tri.*64", Qt::CaseInsensitive), "Trisquel_64" },
-+ { QRegExp("Tri", Qt::CaseInsensitive), "Trisquel" },
-+ { QRegExp("Dyn", Qt::CaseInsensitive), "Dynebolic" },
-+ { QRegExp("Ven", Qt::CaseInsensitive), "Venenux" },
-+ { QRegExp("GNU", Qt::CaseInsensitive), "GNU" },
-+ { QRegExp("Hu", Qt::CaseInsensitive), "GNUHurd" },
-+ { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "GNULinux_64" },
-+ { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "GNULinux" },
-
- /* Other */
-- { QRegExp("L4", Qt::CaseInsensitive), "L4" },
-- { QRegExp("((Fr.*B)|(fbsd)).*64", Qt::CaseInsensitive), "FreeBSD_64" },
-- { QRegExp("(Fr.*B)|(fbsd)", Qt::CaseInsensitive), "FreeBSD" },
-- { QRegExp("Op.*B.*64", Qt::CaseInsensitive), "OpenBSD_64" },
-- { QRegExp("Op.*B", Qt::CaseInsensitive), "OpenBSD" },
-- { QRegExp("Ne.*B.*64", Qt::CaseInsensitive), "NetBSD_64" },
-- { QRegExp("Ne.*B", Qt::CaseInsensitive), "NetBSD" },
-- { QRegExp("QN", Qt::CaseInsensitive), "QNX" },
-- { QRegExp("((Mac)|(Tig)|(Leop)|(osx)).*64", Qt::CaseInsensitive), "MacOS_64" },
-- { QRegExp("(Mac)|(Tig)|(Leop)|(osx)", Qt::CaseInsensitive), "MacOS" },
-- { QRegExp("Net", Qt::CaseInsensitive), "Netware" },
-- { QRegExp("Rocki", Qt::CaseInsensitive), "JRockitVE" },
- { QRegExp("Ot", Qt::CaseInsensitive), "Other" },
- };
-
---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/Settings.cpp 2012-07-25 15:14:50.498764160 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/xml/Settings.cpp 2012-07-25 15:14:50.548761649 -0300
-@@ -3227,40 +3227,18 @@
- } aConvertOSTypes[] =
- {
- { "unknown", "Other" },
-- { "dos", "DOS" },
-- { "win31", "Windows31" },
-- { "win95", "Windows95" },
-- { "win98", "Windows98" },
-- { "winme", "WindowsMe" },
-- { "winnt4", "WindowsNT4" },
-- { "win2k", "Windows2000" },
-- { "winxp", "WindowsXP" },
-- { "win2k3", "Windows2003" },
-- { "winvista", "WindowsVista" },
-- { "win2k8", "Windows2008" },
-- { "os2warp3", "OS2Warp3" },
-- { "os2warp4", "OS2Warp4" },
-- { "os2warp45", "OS2Warp45" },
-- { "ecs", "OS2eCS" },
-- { "linux22", "Linux22" },
-- { "linux24", "Linux24" },
-- { "linux26", "Linux26" },
-- { "archlinux", "ArchLinux" },
-- { "debian", "Debian" },
-- { "opensuse", "OpenSUSE" },
-- { "fedoracore", "Fedora" },
-- { "gentoo", "Gentoo" },
-- { "mandriva", "Mandriva" },
-- { "redhat", "RedHat" },
-- { "ubuntu", "Ubuntu" },
-- { "xandros", "Xandros" },
-- { "freebsd", "FreeBSD" },
-- { "openbsd", "OpenBSD" },
-- { "netbsd", "NetBSD" },
-- { "netware", "Netware" },
-- { "solaris", "Solaris" },
-- { "opensolaris", "OpenSolaris" },
-- { "l4", "L4" }
-+ { "gnu", "GNU" },
-+ { "gnuhurd", "GNUHurd" },
-+ { "gnulinux", "GNULinux" },
-+ { "parabola", "Parabola" },
-+ { "gnewsense", "gNewSense" },
-+ { "blag", "Blag" },
-+ { "dragora", "Dragora" },
-+ { "ututo", "Ututo" },
-+ { "musix", "Musix" },
-+ { "trisquel", "Trisquel" },
-+ { "dynebolic", "Dynebolic" },
-+ { "venenux", "Venenux" },
- };
-
- void MachineConfigFile::convertOldOSType_pre1_5(Utf8Str &str)
---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/SettingsConverter.xsl 2012-07-25 15:21:04.553581275 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/xml/SettingsConverter.xsl 2012-07-25 15:21:04.593579427 -0300
-@@ -729,40 +729,18 @@
- <xsl:attribute name="OSType">
- <xsl:choose>
- <xsl:when test="@OSType='unknown'">Other</xsl:when>
-- <xsl:when test="@OSType='dos'">DOS</xsl:when>
-- <xsl:when test="@OSType='win31'">Windows31</xsl:when>
-- <xsl:when test="@OSType='win95'">Windows95</xsl:when>
-- <xsl:when test="@OSType='win98'">Windows98</xsl:when>
-- <xsl:when test="@OSType='winme'">WindowsMe</xsl:when>
-- <xsl:when test="@OSType='winnt4'">WindowsNT4</xsl:when>
-- <xsl:when test="@OSType='win2k'">Windows2000</xsl:when>
-- <xsl:when test="@OSType='winxp'">WindowsXP</xsl:when>
-- <xsl:when test="@OSType='win2k3'">Windows2003</xsl:when>
-- <xsl:when test="@OSType='winvista'">WindowsVista</xsl:when>
-- <xsl:when test="@OSType='win2k8'">Windows2008</xsl:when>
-- <xsl:when test="@OSType='os2warp3'">OS2Warp3</xsl:when>
-- <xsl:when test="@OSType='os2warp4'">OS2Warp4</xsl:when>
-- <xsl:when test="@OSType='os2warp45'">OS2Warp45</xsl:when>
-- <xsl:when test="@OSType='ecs'">OS2eCS</xsl:when>
-- <xsl:when test="@OSType='linux22'">Linux22</xsl:when>
-- <xsl:when test="@OSType='linux24'">Linux24</xsl:when>
-- <xsl:when test="@OSType='linux26'">Linux26</xsl:when>
-- <xsl:when test="@OSType='archlinux'">ArchLinux</xsl:when>
-- <xsl:when test="@OSType='debian'">Debian</xsl:when>
-- <xsl:when test="@OSType='opensuse'">OpenSUSE</xsl:when>
-- <xsl:when test="@OSType='fedoracore'">Fedora</xsl:when>
-- <xsl:when test="@OSType='gentoo'">Gentoo</xsl:when>
-- <xsl:when test="@OSType='mandriva'">Mandriva</xsl:when>
-- <xsl:when test="@OSType='redhat'">RedHat</xsl:when>
-- <xsl:when test="@OSType='ubuntu'">Ubuntu</xsl:when>
-- <xsl:when test="@OSType='xandros'">Xandros</xsl:when>
-- <xsl:when test="@OSType='freebsd'">FreeBSD</xsl:when>
-- <xsl:when test="@OSType='openbsd'">OpenBSD</xsl:when>
-- <xsl:when test="@OSType='netbsd'">NetBSD</xsl:when>
-- <xsl:when test="@OSType='netware'">Netware</xsl:when>
-- <xsl:when test="@OSType='solaris'">Solaris</xsl:when>
-- <xsl:when test="@OSType='opensolaris'">OpenSolaris</xsl:when>
-- <xsl:when test="@OSType='l4'">L4</xsl:when>
-+ <xsl:when test="@OSType='gnu'">GNU</xsl:when>
-+ <xsl:when test="@OSType='gnuhurd'">GNUHurd</xsl:when>
-+ <xsl:when test="@OSType='gnulinux'">GNULinux</xsl:when>
-+ <xsl:when test="@OSType='parabola'">Parabola</xsl:when>
-+ <xsl:when test="@OSType='gnewsense'">gNewSense</xsl:when>
-+ <xsl:when test="@OSType='blag'">Blag</xsl:when>
-+ <xsl:when test="@OSType='dragora'">Dragora</xsl:when>
-+ <xsl:when test="@OSType='ututo'">Ututo</xsl:when>
-+ <xsl:when test="@OSType='musix'">Musix</xsl:when>
-+ <xsl:when test="@OSType='trisquel'">Trisquel</xsl:when>
-+ <xsl:when test="@OSType='dynebolic'">Dynebolic</xsl:when>
-+ <xsl:when test="@OSType='venenux'">Venenux</xsl:when>
- </xsl:choose>
- </xsl:attribute>
- <xsl:apply-templates select="@*[name()!='OSType']" mode="v1.5"/>
---- VirtualBox-4.1.18.orig/src/VBox/Main/xml/VirtualBox-settings-common.xsd 2012-07-25 15:04:37.856003691 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/xml/VirtualBox-settings-common.xsd 2012-07-25 15:04:37.892668156 -0300
-@@ -137,75 +137,27 @@
- <xsd:simpleType name="TGuestOSType">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="Other"/>
-- <xsd:enumeration value="DOS"/>
-- <xsd:enumeration value="Netware"/>
-- <xsd:enumeration value="L4"/>
-- <xsd:enumeration value="Windows31"/>
-- <xsd:enumeration value="Windows95"/>
-- <xsd:enumeration value="Windows98"/>
-- <xsd:enumeration value="WindowsMe"/>
-- <xsd:enumeration value="WindowsNT4"/>
-- <xsd:enumeration value="Windows2000"/>
-- <xsd:enumeration value="WindowsXP"/>
-- <xsd:enumeration value="WindowsXP_64"/>
-- <xsd:enumeration value="Windows2003"/>
-- <xsd:enumeration value="Windows2003_64"/>
-- <xsd:enumeration value="WindowsVista"/>
-- <xsd:enumeration value="WindowsVista_64"/>
-- <xsd:enumeration value="Windows2008"/>
-- <xsd:enumeration value="Windows2008_64"/>
-- <xsd:enumeration value="Windows7"/>
-- <xsd:enumeration value="Windows7_64"/>
-- <xsd:enumeration value="Windows8"/>
-- <xsd:enumeration value="Windows8_64"/>
-- <xsd:enumeration value="WindowsNT"/>
-- <xsd:enumeration value="OS2Warp3"/>
-- <xsd:enumeration value="OS2Warp4"/>
-- <xsd:enumeration value="OS2Warp45"/>
-- <xsd:enumeration value="OS2eCS"/>
-- <xsd:enumeration value="OS2"/>
-- <xsd:enumeration value="Linux22"/>
-- <xsd:enumeration value="Linux24"/>
-- <xsd:enumeration value="Linux24_64"/>
-- <xsd:enumeration value="Linux26"/>
-- <xsd:enumeration value="Linux26_64"/>
-- <xsd:enumeration value="ArchLinux"/>
-- <xsd:enumeration value="ArchLinux_64"/>
-- <xsd:enumeration value="Debian"/>
-- <xsd:enumeration value="Debian_64"/>
-- <xsd:enumeration value="OpenSUSE"/>
-- <xsd:enumeration value="OpenSUSE_64"/>
-- <xsd:enumeration value="Fedora"/>
-- <xsd:enumeration value="Fedora_64"/>
-- <xsd:enumeration value="Gentoo"/>
-- <xsd:enumeration value="Gentoo_64"/>
-- <xsd:enumeration value="Mandriva"/>
-- <xsd:enumeration value="Mandriva_64"/>
-- <xsd:enumeration value="RedHat"/>
-- <xsd:enumeration value="RedHat_64"/>
-- <xsd:enumeration value="Turbolinux"/>
-- <xsd:enumeration value="Turbolinux_64"/>
-- <xsd:enumeration value="Ubuntu"/>
-- <xsd:enumeration value="Ubuntu_64"/>
-- <xsd:enumeration value="Xandros"/>
-- <xsd:enumeration value="Xandros_64"/>
-- <xsd:enumeration value="Oracle"/>
-- <xsd:enumeration value="Oracle_64"/>
-- <xsd:enumeration value="Linux"/>
-- <xsd:enumeration value="FreeBSD"/>
-- <xsd:enumeration value="FreeBSD_64"/>
-- <xsd:enumeration value="OpenBSD"/>
-- <xsd:enumeration value="OpenBSD_64"/>
-- <xsd:enumeration value="NetBSD"/>
-- <xsd:enumeration value="NetBSD_64"/>
-- <xsd:enumeration value="Solaris"/>
-- <xsd:enumeration value="Solaris_64"/>
-- <xsd:enumeration value="OpenSolaris"/>
-- <xsd:enumeration value="OpenSolaris_64"/>
-- <xsd:enumeration value="QNX"/>
-- <xsd:enumeration value="MacOS"/>
-- <xsd:enumeration value="MacOS_64"/>
-- <xsd:enumeration value="JRockitVE"/>
-+ <xsd:enumeration value="GNU"/>
-+ <xsd:enumeration value="GNU_64"/>
-+ <xsd:enumeration value="GNUHurd"/>
-+ <xsd:enumeration value="GNULinux"/>
-+ <xsd:enumeration value="GNULinux_64"/>
-+ <xsd:enumeration value="Parabola"/>
-+ <xsd:enumeration value="Parabola_64"/>
-+ <xsd:enumeration value="gNewSense"/>
-+ <xsd:enumeration value="gNewSense_64"/>
-+ <xsd:enumeration value="Blag"/>
-+ <xsd:enumeration value="Blag_64"/>
-+ <xsd:enumeration value="Dragora"/>
-+ <xsd:enumeration value="Dragora_64"/>
-+ <xsd:enumeration value="Ututo"/>
-+ <xsd:enumeration value="Ututo_64"/>
-+ <xsd:enumeration value="Musix"/>
-+ <xsd:enumeration value="Musix_64"/>
-+ <xsd:enumeration value="Trisquel"/>
-+ <xsd:enumeration value="Trisquel_64"/>
-+ <xsd:enumeration value="Dynebolic"/>
-+ <xsd:enumeration value="Venenux"/>
- </xsd:restriction>
- </xsd:simpleType>
-
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-25 15:40:56.733096866 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-25 15:40:56.796426519 -0300
-@@ -1,75 +1,27 @@
- <!DOCTYPE RCC><RCC version="1.0">
- <qresource prefix="/">
-- <file alias="os_archlinux.png">images/os_archlinux.png</file>
-- <file alias="os_archlinux_64.png">images/os_archlinux_64.png</file>
-- <file alias="os_debian.png">images/os_debian.png</file>
-- <file alias="os_debian_64.png">images/os_debian_64.png</file>
-- <file alias="os_dos.png">images/os_dos.png</file>
-- <file alias="os_fedora.png">images/os_fedora.png</file>
-- <file alias="os_fedora_64.png">images/os_fedora_64.png</file>
-- <file alias="os_freebsd.png">images/os_freebsd.png</file>
-- <file alias="os_freebsd_64.png">images/os_freebsd_64.png</file>
-- <file alias="os_gentoo.png">images/os_gentoo.png</file>
-- <file alias="os_gentoo_64.png">images/os_gentoo_64.png</file>
-- <file alias="os_jrockitve.png">images/os_jrockitve.png</file>
-- <file alias="os_l4.png">images/os_l4.png</file>
-- <file alias="os_linux_other.png">images/os_linux_other.png</file>
-- <file alias="os_linux22.png">images/os_linux22.png</file>
-- <file alias="os_linux24.png">images/os_linux24.png</file>
-- <file alias="os_linux24_64.png">images/os_linux24_64.png</file>
-- <file alias="os_linux26.png">images/os_linux26.png</file>
-- <file alias="os_linux26_64.png">images/os_linux26_64.png</file>
-- <file alias="os_mandriva.png">images/os_mandriva.png</file>
-- <file alias="os_mandriva_64.png">images/os_mandriva_64.png</file>
-- <file alias="os_netbsd.png">images/os_netbsd.png</file>
-- <file alias="os_netbsd_64.png">images/os_netbsd_64.png</file>
-- <file alias="os_netware.png">images/os_netware.png</file>
-- <file alias="os_openbsd.png">images/os_openbsd.png</file>
-- <file alias="os_openbsd_64.png">images/os_openbsd_64.png</file>
-- <file alias="os_oraclesolaris.png">images/os_oraclesolaris.png</file>
-- <file alias="os_oraclesolaris_64.png">images/os_oraclesolaris_64.png</file>
-- <file alias="os_opensuse.png">images/os_opensuse.png</file>
-- <file alias="os_opensuse_64.png">images/os_opensuse_64.png</file>
-- <file alias="os_os2_other.png">images/os_os2_other.png</file>
-- <file alias="os_os2ecs.png">images/os_os2ecs.png</file>
-- <file alias="os_os2warp3.png">images/os_os2warp3.png</file>
-- <file alias="os_os2warp4.png">images/os_os2warp4.png</file>
-- <file alias="os_os2warp45.png">images/os_os2warp45.png</file>
-+ <file alias="os_parabola.png">images/os_parabola.png</file>
-+ <file alias="os_parabola_64.png">images/os_parabola_64.png</file>
-+ <file alias="os_gnewsense.png">images/os_gnewsense.png</file>
-+ <file alias="os_gnewsense_64.png">images/os_gnewsense_64.png</file>
-+ <file alias="os_blag.png">images/os_blag.png</file>
-+ <file alias="os_blag_64.png">images/os_blag_64.png</file>
-+ <file alias="os_ututo.png">images/os_ututo.png</file>
-+ <file alias="os_ututo_64.png">images/os_ututo_64.png</file>
-+ <file alias="os_gnu.png">images/os_gnu.png</file>
-+ <file alias="os_gnu_64.png">images/os_gnu_64.png</file>
-+ <file alias="os_gnuhurd.png">images/os_gnuhurd.png</file>
-+ <file alias="os_gnulinux.png">images/os_gnulinux.png</file>
-+ <file alias="os_gnulinux_64.png">images/os_gnulinux_64.png</file>
-+ <file alias="os_musix.png">images/os_musix.png</file>
-+ <file alias="os_musix_64.png">images/os_musix_64.png</file>
-+ <file alias="os_dragora.png">images/os_dragora.png</file>
-+ <file alias="os_dragora_64.png">images/os_dragora_64.png</file>
- <file alias="os_other.png">images/os_other.png</file>
-- <file alias="os_qnx.png">images/os_qnx.png</file>
-- <file alias="os_redhat.png">images/os_redhat.png</file>
-- <file alias="os_redhat_64.png">images/os_redhat_64.png</file>
-- <file alias="os_turbolinux.png">images/os_turbolinux.png</file>
-- <file alias="os_turbolinux_64.png">images/os_turbolinux_64.png</file>
-- <file alias="os_solaris.png">images/os_solaris.png</file>
-- <file alias="os_solaris_64.png">images/os_solaris_64.png</file>
-- <file alias="os_ubuntu.png">images/os_ubuntu.png</file>
-- <file alias="os_ubuntu_64.png">images/os_ubuntu_64.png</file>
-- <file alias="os_win_other.png">images/os_win_other.png</file>
-- <file alias="os_win2k.png">images/os_win2k.png</file>
-- <file alias="os_win2k3.png">images/os_win2k3.png</file>
-- <file alias="os_win2k3_64.png">images/os_win2k3_64.png</file>
-- <file alias="os_win2k8.png">images/os_win2k8.png</file>
-- <file alias="os_win2k8_64.png">images/os_win2k8_64.png</file>
-- <file alias="os_win31.png">images/os_win31.png</file>
-- <file alias="os_win7.png">images/os_win7.png</file>
-- <file alias="os_win7_64.png">images/os_win7_64.png</file>
-- <file alias="os_win8.png">images/os_win8.png</file>
-- <file alias="os_win8_64.png">images/os_win8_64.png</file>
-- <file alias="os_win95.png">images/os_win95.png</file>
-- <file alias="os_win98.png">images/os_win98.png</file>
-- <file alias="os_winme.png">images/os_winme.png</file>
-- <file alias="os_winnt4.png">images/os_winnt4.png</file>
-- <file alias="os_winvista.png">images/os_winvista.png</file>
-- <file alias="os_winvista_64.png">images/os_winvista_64.png</file>
-- <file alias="os_winxp.png">images/os_winxp.png</file>
-- <file alias="os_winxp_64.png">images/os_winxp_64.png</file>
-- <file alias="os_xandros.png">images/os_xandros.png</file>
-- <file alias="os_xandros_64.png">images/os_xandros_64.png</file>
-- <file alias="os_oracle.png">images/os_oracle.png</file>
-- <file alias="os_oracle_64.png">images/os_oracle_64.png</file>
-- <file alias="os_macosx.png">images/os_macosx.png</file>
-- <file alias="os_macosx_64.png">images/os_macosx_64.png</file>
-+ <file alias="os_dynebolic.png">images/os_dynebolic.png</file>
-+ <file alias="os_venenux.png">images/os_venenux.png</file>
-+ <file alias="os_trisquel.png">images/os_trisquel.png</file>
-+ <file alias="os_trisquel_64.png">images/os_trisquel_64.png</file>
- <file alias="hd_16px.png">images/hd_16px.png</file>
- <file alias="hd_disabled_16px.png">images/hd_disabled_16px.png</file>
- <file alias="hd_32px.png">images/hd_32px.png</file>
---- VirtualBox-4.1.20.orig/src/VBox/Main/src-all/Global.cpp 2012-08-20 11:36:24.000000000 -0300
-+++ VirtualBox-4.1.20/src/VBox/Main/src-all/Global.cpp 2012-08-21 14:22:29.148190849 -0300
-@@ -35,284 +35,90 @@
- VBOXOSTYPE_Unknown, VBOXOSHINT_NONE,
- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows31, "Windows 3.1",
-- VBOXOSTYPE_Win31, VBOXOSHINT_NONE,
-- 32, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows95, "Windows 95",
-- VBOXOSTYPE_Win95, VBOXOSHINT_NONE,
-- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows98, "Windows 98",
-- VBOXOSTYPE_Win98, VBOXOSHINT_NONE,
-- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsMe, "Windows Me",
-- VBOXOSTYPE_WinMe, VBOXOSHINT_NONE,
-- 64, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT4, "Windows NT 4",
-- VBOXOSTYPE_WinNT4, VBOXOSHINT_NONE,
-- 128, 16, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2000, "Windows 2000",
-- VBOXOSTYPE_Win2k, VBOXOSHINT_USBTABLET,
-- 168, 16, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP, "Windows XP",
-- VBOXOSTYPE_WinXP, VBOXOSHINT_USBTABLET,
-- 192, 16, 10 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsXP_64, "Windows XP (64 bit)",
-- VBOXOSTYPE_WinXP_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 192, 16, 10 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003, "Windows 2003",
-- VBOXOSTYPE_Win2k3, VBOXOSHINT_USBTABLET,
-- 256, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2003_64, "Windows 2003 (64 bit)",
-- VBOXOSTYPE_Win2k3_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 256, 16, 20 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista, "Windows Vista",
-- VBOXOSTYPE_WinVista, VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsVista_64, "Windows Vista (64 bit)",
-- VBOXOSTYPE_WinVista_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008, "Windows 2008",
-- VBOXOSTYPE_Win2k8, VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows2008_64, "Windows 2008 (64 bit)",
-- VBOXOSTYPE_Win2k8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7, "Windows 7",
-- VBOXOSTYPE_Win7, VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows7_64, "Windows 7 (64 bit)",
-- VBOXOSTYPE_Win7_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 512, 16, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows8, "Windows 8",
-- VBOXOSTYPE_Win8, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE,
-- 1024,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_Windows8_64, "Windows 8 (64 bit)",
-- VBOXOSTYPE_Win8_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 1536,128, 25 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA },
-- { "Windows", "Microsoft Windows", SchemaDefs_OSTypeId_WindowsNT, "Other Windows",
-- VBOXOSTYPE_WinNT, VBOXOSHINT_NONE,
-- 512, 16, 20 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux22, "Linux 2.2",
-- VBOXOSTYPE_Linux22, VBOXOSHINT_RTCUTC,
-- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux24, "Linux 2.4",
-- VBOXOSTYPE_Linux24, VBOXOSHINT_RTCUTC,
-- 128, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux24_64, "Linux 2.4 (64 bit)",
-- VBOXOSTYPE_Linux24_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
-- 128, 4, 4 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ { "GNU", "GNU", SchemaDefs_OSTypeId_GNU, "GNU",
-+ VBOXOSTYPE_GNU, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-+ { "GNU", "GNU", SchemaDefs_OSTypeId_GNU_64, "GNU (64 bit)",
-+ VBOXOSTYPE_GNU_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-+ { "GNU-Hurd", "GNU-Hurd", SchemaDefs_OSTypeId_GNUHurd, "GNU-Hurd",
-+ VBOXOSTYPE_GNUHurd, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux26, "Linux 2.6",
-- VBOXOSTYPE_Linux26, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_GNULinux, "GNU/Linux",
-+ VBOXOSTYPE_GNULinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux26_64, "Linux 2.6 (64 bit)",
-- VBOXOSTYPE_Linux26_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_GNULinux_64, "GNU/Linux (64 bit)",
-+ VBOXOSTYPE_GNULinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_ArchLinux, "Arch Linux",
-- VBOXOSTYPE_ArchLinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Parabola, "Parabola GNU/Linux-libre",
-+ VBOXOSTYPE_Parabola, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_ArchLinux_64, "Arch Linux (64 bit)",
-- VBOXOSTYPE_ArchLinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Parabola_64, "Parabola GNU/Linux-libre (64 bit)",
-+ VBOXOSTYPE_Parabola_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Debian, "Debian",
-- VBOXOSTYPE_Debian, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_gNewSense, "gNewSense",
-+ VBOXOSTYPE_gNewSense, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Debian_64, "Debian (64 bit)",
-- VBOXOSTYPE_Debian_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_gNewSense_64, "gNewSense (64 bit)",
-+ VBOXOSTYPE_gNewSense_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97},
-- { "Linux", "Linux", SchemaDefs_OSTypeId_OpenSUSE, "openSUSE",
-- VBOXOSTYPE_OpenSUSE, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_OpenSUSE_64, "openSUSE (64 bit)",
-- VBOXOSTYPE_OpenSUSE_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Fedora, "Fedora",
-- VBOXOSTYPE_FedoraCore, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Blag, "Blag Linux and GNU",
-+ VBOXOSTYPE_Blag, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Fedora_64, "Fedora (64 bit)",
-- VBOXOSTYPE_FedoraCore_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Blag_64, "Blag Linux and GNU (64 bit)",
-+ VBOXOSTYPE_Blag_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 768, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Gentoo, "Gentoo",
-- VBOXOSTYPE_Gentoo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dragora, "Dragora",
-+ VBOXOSTYPE_Dragora, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Gentoo_64, "Gentoo (64 bit)",
-- VBOXOSTYPE_Gentoo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dragora_64, "Dragora (64 bit)",
-+ VBOXOSTYPE_Dragora_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Mandriva, "Mandriva",
-- VBOXOSTYPE_Mandriva, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Mandriva_64, "Mandriva (64 bit)",
-- VBOXOSTYPE_Mandriva_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_RedHat, "Red Hat",
-- VBOXOSTYPE_RedHat, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Ututo, "Ututo XS",
-+ VBOXOSTYPE_Ututo, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_RedHat_64, "Red Hat (64 bit)",
-- VBOXOSTYPE_RedHat_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
-- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Ututo_64, "Ututo XS (64 bit)",
-+ VBOXOSTYPE_Ututo_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Turbolinux, "Turbolinux",
-- VBOXOSTYPE_Turbolinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Musix, "Musix",
-+ VBOXOSTYPE_Musix, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Turbolinux, "Turbolinux (64 bit)",
-- VBOXOSTYPE_Turbolinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Musix_64, "Musix (64 bit)",
-+ VBOXOSTYPE_Musix_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Ubuntu, "Ubuntu",
-- VBOXOSTYPE_Ubuntu, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET,
-+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97},
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Trisquel, "Trisquel",
-+ VBOXOSTYPE_Trisquel, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET,
- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Ubuntu_64, "Ubuntu (64 bit)",
-- VBOXOSTYPE_Ubuntu_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Trisquel_64, "Trisquel (64 bit)",
-+ VBOXOSTYPE_Trisquel_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
- 512, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Xandros, "Xandros",
-- VBOXOSTYPE_Xandros, VBOXOSHINT_RTCUTC,
-- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Dynebolic, "Dyne:bolic",
-+ VBOXOSTYPE_Dynebolic, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 256, 4, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Xandros_64, "Xandros (64 bit)",
-- VBOXOSTYPE_Xandros_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
-- 256, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-+ { "GNU/Linux", "GNU/Linux", SchemaDefs_OSTypeId_Venenux, "Venenux",
-+ VBOXOSTYPE_Venenux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-+ 384, 12, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle, "Oracle",
-- VBOXOSTYPE_Oracle, VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE,
-- 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Oracle_64, "Oracle (64 bit)",
-- VBOXOSTYPE_Oracle_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
-- 512, 12, 12 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Linux", "Linux", SchemaDefs_OSTypeId_Linux, "Other Linux",
-- VBOXOSTYPE_Linux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
-- 256, 12, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Solaris", "Solaris", SchemaDefs_OSTypeId_Solaris, "Oracle Solaris 10 5/09 and earlier",
-- VBOXOSTYPE_Solaris, VBOXOSHINT_NONE,
-- 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Solaris", "Solaris", SchemaDefs_OSTypeId_Solaris_64, "Oracle Solaris 10 5/09 and earlier (64 bit)",
-- VBOXOSTYPE_Solaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
-- 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Solaris", "Solaris", SchemaDefs_OSTypeId_OpenSolaris, "Oracle Solaris 10 10/09 and later",
-- VBOXOSTYPE_OpenSolaris, VBOXOSHINT_USBTABLET,
-- 768, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Solaris", "Solaris", SchemaDefs_OSTypeId_OpenSolaris_64, "Oracle Solaris 10 10/09 and later (64 bit)",
-- VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
-- 1536, 12, 16 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
-- StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_FreeBSD, "FreeBSD",
-- VBOXOSTYPE_FreeBSD, VBOXOSHINT_NONE,
-- 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_FreeBSD_64, "FreeBSD (64 bit)",
-- VBOXOSTYPE_FreeBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
-- 128, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_OpenBSD, "OpenBSD",
-- VBOXOSTYPE_OpenBSD, VBOXOSHINT_HWVIRTEX,
-- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_OpenBSD_64, "OpenBSD (64 bit)",
-- VBOXOSTYPE_OpenBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
-- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_NetBSD, "NetBSD",
-- VBOXOSTYPE_NetBSD, VBOXOSHINT_NONE,
-- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "BSD", "BSD", SchemaDefs_OSTypeId_NetBSD_64, "NetBSD (64 bit)",
-- VBOXOSTYPE_NetBSD_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
-- 64, 4, 2 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp3, "OS/2 Warp 3",
-- VBOXOSTYPE_OS2Warp3, VBOXOSHINT_HWVIRTEX,
-- 48, 4, 1 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp4, "OS/2 Warp 4",
-- VBOXOSTYPE_OS2Warp4, VBOXOSHINT_HWVIRTEX,
-- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2Warp45, "OS/2 Warp 4.5",
-- VBOXOSTYPE_OS2Warp45, VBOXOSHINT_HWVIRTEX,
-- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2eCS, "eComStation",
-- VBOXOSTYPE_ECS, VBOXOSHINT_HWVIRTEX,
-- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "OS2", "IBM OS/2", SchemaDefs_OSTypeId_OS2, "Other OS/2",
-- VBOXOSTYPE_OS2, VBOXOSHINT_HWVIRTEX,
-- 96, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "MacOS", "Mac OS X", SchemaDefs_OSTypeId_MacOS, "Mac OS X Server",
-- VBOXOSTYPE_MacOS, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET,
-- 1024, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0,
-- StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA,
-- ChipsetType_ICH9, AudioControllerType_HDA },
-- { "MacOS", "Mac OS X", SchemaDefs_OSTypeId_MacOS_64, "Mac OS X Server (64 bit)",
-- VBOXOSTYPE_MacOS_x64, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE | VBOXOSHINT_64BIT | VBOXOSHINT_USBHID | VBOXOSHINT_HPET | VBOXOSHINT_USBTABLET,
-- 1024, 4, 20 * _1G64, NetworkAdapterType_I82543GC, 0,
-- StorageControllerType_ICH6, StorageBus_IDE, StorageControllerType_IntelAhci, StorageBus_SATA,
-- ChipsetType_ICH9, AudioControllerType_HDA },
-- { "Other", "Other", SchemaDefs_OSTypeId_DOS, "DOS",
-- VBOXOSTYPE_DOS, VBOXOSHINT_NONE,
-- 32, 4, 500 * _1M, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16 },
-- { "Other", "Other", SchemaDefs_OSTypeId_Netware, "Netware",
-- VBOXOSTYPE_Netware, VBOXOSHINT_HWVIRTEX,
-- 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Other", "Other", SchemaDefs_OSTypeId_L4, "L4",
-- VBOXOSTYPE_L4, VBOXOSHINT_NONE,
-- 64, 4, 2 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Other", "Other", SchemaDefs_OSTypeId_QNX, "QNX",
-- VBOXOSTYPE_QNX, VBOXOSHINT_HWVIRTEX,
-- 512, 4, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97 },
-- { "Other", "Other", SchemaDefs_OSTypeId_JRockitVE, "JRockitVE",
-- VBOXOSTYPE_JRockitVE, VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE,
-- 1024, 4, 8 * _1G64, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
-- StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, AudioControllerType_AC97 },
- };
-
- /**
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-07-25 21:44:01.290876720 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp 2012-07-25 22:00:57.819380802 -0300
-@@ -4875,75 +4875,27 @@
- static const char *kOSTypeIcons [][2] =
- {
- {"Other", ":/os_other.png"},
-- {"DOS", ":/os_dos.png"},
-- {"Netware", ":/os_netware.png"},
-- {"L4", ":/os_l4.png"},
-- {"Windows31", ":/os_win31.png"},
-- {"Windows95", ":/os_win95.png"},
-- {"Windows98", ":/os_win98.png"},
-- {"WindowsMe", ":/os_winme.png"},
-- {"WindowsNT4", ":/os_winnt4.png"},
-- {"Windows2000", ":/os_win2k.png"},
-- {"WindowsXP", ":/os_winxp.png"},
-- {"WindowsXP_64", ":/os_winxp_64.png"},
-- {"Windows2003", ":/os_win2k3.png"},
-- {"Windows2003_64", ":/os_win2k3_64.png"},
-- {"WindowsVista", ":/os_winvista.png"},
-- {"WindowsVista_64", ":/os_winvista_64.png"},
-- {"Windows2008", ":/os_win2k8.png"},
-- {"Windows2008_64", ":/os_win2k8_64.png"},
-- {"Windows7", ":/os_win7.png"},
-- {"Windows7_64", ":/os_win7_64.png"},
-- {"Windows8", ":/os_win8.png"},
-- {"Windows8_64", ":/os_win8_64.png"},
-- {"WindowsNT", ":/os_win_other.png"},
-- {"OS2Warp3", ":/os_os2warp3.png"},
-- {"OS2Warp4", ":/os_os2warp4.png"},
-- {"OS2Warp45", ":/os_os2warp45.png"},
-- {"OS2eCS", ":/os_os2ecs.png"},
-- {"OS2", ":/os_os2_other.png"},
-- {"Linux22", ":/os_linux22.png"},
-- {"Linux24", ":/os_linux24.png"},
-- {"Linux24_64", ":/os_linux24_64.png"},
-- {"Linux26", ":/os_linux26.png"},
-- {"Linux26_64", ":/os_linux26_64.png"},
-- {"ArchLinux", ":/os_archlinux.png"},
-- {"ArchLinux_64", ":/os_archlinux_64.png"},
-- {"Debian", ":/os_debian.png"},
-- {"Debian_64", ":/os_debian_64.png"},
-- {"OpenSUSE", ":/os_opensuse.png"},
-- {"OpenSUSE_64", ":/os_opensuse_64.png"},
-- {"Fedora", ":/os_fedora.png"},
-- {"Fedora_64", ":/os_fedora_64.png"},
-- {"Gentoo", ":/os_gentoo.png"},
-- {"Gentoo_64", ":/os_gentoo_64.png"},
-- {"Mandriva", ":/os_mandriva.png"},
-- {"Mandriva_64", ":/os_mandriva_64.png"},
-- {"RedHat", ":/os_redhat.png"},
-- {"RedHat_64", ":/os_redhat_64.png"},
-- {"Turbolinux", ":/os_turbolinux.png"},
-- {"Turbolinux_64", ":/os_turbolinux_64.png"},
-- {"Ubuntu", ":/os_ubuntu.png"},
-- {"Ubuntu_64", ":/os_ubuntu_64.png"},
-- {"Xandros", ":/os_xandros.png"},
-- {"Xandros_64", ":/os_xandros_64.png"},
-- {"Oracle", ":/os_oracle.png"},
-- {"Oracle_64", ":/os_oracle_64.png"},
-- {"Linux", ":/os_linux_other.png"},
-- {"FreeBSD", ":/os_freebsd.png"},
-- {"FreeBSD_64", ":/os_freebsd_64.png"},
-- {"OpenBSD", ":/os_openbsd.png"},
-- {"OpenBSD_64", ":/os_openbsd_64.png"},
-- {"NetBSD", ":/os_netbsd.png"},
-- {"NetBSD_64", ":/os_netbsd_64.png"},
-- {"Solaris", ":/os_solaris.png"},
-- {"Solaris_64", ":/os_solaris_64.png"},
-- {"OpenSolaris", ":/os_oraclesolaris.png"},
-- {"OpenSolaris_64", ":/os_oraclesolaris_64.png"},
-- {"QNX", ":/os_qnx.png"},
-- {"MacOS", ":/os_macosx.png"},
-- {"MacOS_64", ":/os_macosx_64.png"},
-- {"JRockitVE", ":/os_jrockitve.png"},
-+ {"GNU", ":/os_gnu.png"},
-+ {"GNU_64", ":/os_gnu_64.png"},
-+ {"GNUHurd", ":/os_gnuhurd.png"},
-+ {"GNULinux", ":/os_gnulinux.png"},
-+ {"GNULinux_64", ":/os_gnulinux_64.png"},
-+ {"Parabola", ":/os_parabola.png"},
-+ {"Parabola_64", ":/os_parabola_64.png"},
-+ {"gNewSense", ":/os_gnewsense.png"},
-+ {"gNewSense_64", ":/os_gnewsense_64.png"},
-+ {"Blag", ":/os_blag.png"},
-+ {"Blag_64", ":/os_blag_64.png"},
-+ {"Dragora", ":/os_dragora.png"},
-+ {"Dragora_64", ":/os_dragora_64.png"},
-+ {"Ututo", ":/os_ututo.png"},
-+ {"Ututo_64", ":/os_ututo_64.png"},
-+ {"Musix", ":/os_musix.png"},
-+ {"Musix_64", ":/os_musix_64.png"},
-+ {"Trisquel", ":/os_trisquel.png"},
-+ {"Trisquel_64", ":/os_trisquel_64.png"},
-+ {"Dynebolic", ":/os_dynebolic.png"},
-+ {"Venenux", ":/os_venenux.png"},
- };
- for (uint n = 0; n < SIZEOF_ARRAY (kOSTypeIcons); ++ n)
- {
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp.orig 2012-06-20 10:16:38.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp 2012-07-25 22:07:51.232436783 -0300
-@@ -192,17 +192,10 @@
- if (typeIndex != -1)
- mCbType->setCurrentIndex (typeIndex);
- }
-- /* Or select WinXP item for Windows family as default */
-- else if (familyId == "Windows")
-+ /* Or select Parabola GNU/Linux-libre item for GNU/Linux family as default */
-+ else if (familyId == "GNU/Linux")
- {
-- int xpIndex = mCbType->findData ("WindowsXP", RoleTypeID);
-- if (xpIndex != -1)
-- mCbType->setCurrentIndex (xpIndex);
-- }
-- /* Or select Ubuntu item for Linux family as default */
-- else if (familyId == "Linux")
-- {
-- int ubIndex = mCbType->findData ("Ubuntu", RoleTypeID);
-+ int ubIndex = mCbType->findData ("Parabola", RoleTypeID);
- if (ubIndex != -1)
- mCbType->setCurrentIndex (ubIndex);
- }
---- VirtualBox-4.1.18.orig/include/VBox/ostypes.h 2012-06-20 10:07:51.000000000 -0300
-+++ VirtualBox-4.1.18/include/VBox/ostypes.h 2012-07-25 23:20:57.322757456 -0300
-@@ -43,77 +43,27 @@
- typedef enum VBOXOSTYPE
- {
- VBOXOSTYPE_Unknown = 0,
-- VBOXOSTYPE_DOS = 0x10000,
-- VBOXOSTYPE_Win31 = 0x15000,
-- VBOXOSTYPE_Win9x = 0x20000,
-- VBOXOSTYPE_Win95 = 0x21000,
-- VBOXOSTYPE_Win98 = 0x22000,
-- VBOXOSTYPE_WinMe = 0x23000,
-- VBOXOSTYPE_WinNT = 0x30000,
-- VBOXOSTYPE_WinNT4 = 0x31000,
-- VBOXOSTYPE_Win2k = 0x32000,
-- VBOXOSTYPE_WinXP = 0x33000,
-- VBOXOSTYPE_WinXP_x64 = 0x33100,
-- VBOXOSTYPE_Win2k3 = 0x34000,
-- VBOXOSTYPE_Win2k3_x64 = 0x34100,
-- VBOXOSTYPE_WinVista = 0x35000,
-- VBOXOSTYPE_WinVista_x64 = 0x35100,
-- VBOXOSTYPE_Win2k8 = 0x36000,
-- VBOXOSTYPE_Win2k8_x64 = 0x36100,
-- VBOXOSTYPE_Win7 = 0x37000,
-- VBOXOSTYPE_Win7_x64 = 0x37100,
-- VBOXOSTYPE_Win8 = 0x38000,
-- VBOXOSTYPE_Win8_x64 = 0x38100,
-- VBOXOSTYPE_OS2 = 0x40000,
-- VBOXOSTYPE_OS2Warp3 = 0x41000,
-- VBOXOSTYPE_OS2Warp4 = 0x42000,
-- VBOXOSTYPE_OS2Warp45 = 0x43000,
-- VBOXOSTYPE_ECS = 0x44000,
-- VBOXOSTYPE_Linux = 0x50000,
-- VBOXOSTYPE_Linux_x64 = 0x50100,
-- VBOXOSTYPE_Linux22 = 0x51000,
-- VBOXOSTYPE_Linux24 = 0x52000,
-- VBOXOSTYPE_Linux24_x64 = 0x52100,
-- VBOXOSTYPE_Linux26 = 0x53000,
-- VBOXOSTYPE_Linux26_x64 = 0x53100,
-- VBOXOSTYPE_ArchLinux = 0x54000,
-- VBOXOSTYPE_ArchLinux_x64 = 0x54100,
-- VBOXOSTYPE_Debian = 0x55000,
-- VBOXOSTYPE_Debian_x64 = 0x55100,
-- VBOXOSTYPE_OpenSUSE = 0x56000,
-- VBOXOSTYPE_OpenSUSE_x64 = 0x56100,
-- VBOXOSTYPE_FedoraCore = 0x57000,
-- VBOXOSTYPE_FedoraCore_x64 = 0x57100,
-- VBOXOSTYPE_Gentoo = 0x58000,
-- VBOXOSTYPE_Gentoo_x64 = 0x58100,
-- VBOXOSTYPE_Mandriva = 0x59000,
-- VBOXOSTYPE_Mandriva_x64 = 0x59100,
-- VBOXOSTYPE_RedHat = 0x5A000,
-- VBOXOSTYPE_RedHat_x64 = 0x5A100,
-- VBOXOSTYPE_Turbolinux = 0x5B000,
-- VBOXOSTYPE_Turbolinux_x64 = 0x5B100,
-- VBOXOSTYPE_Ubuntu = 0x5C000,
-- VBOXOSTYPE_Ubuntu_x64 = 0x5C100,
-- VBOXOSTYPE_Xandros = 0x5D000,
-- VBOXOSTYPE_Xandros_x64 = 0x5D100,
-- VBOXOSTYPE_Oracle = 0x5E000,
-- VBOXOSTYPE_Oracle_x64 = 0x5E100,
-- VBOXOSTYPE_FreeBSD = 0x60000,
-- VBOXOSTYPE_FreeBSD_x64 = 0x60100,
-- VBOXOSTYPE_OpenBSD = 0x61000,
-- VBOXOSTYPE_OpenBSD_x64 = 0x61100,
-- VBOXOSTYPE_NetBSD = 0x62000,
-- VBOXOSTYPE_NetBSD_x64 = 0x62100,
-- VBOXOSTYPE_Netware = 0x70000,
-- VBOXOSTYPE_Solaris = 0x80000,
-- VBOXOSTYPE_Solaris_x64 = 0x80100,
-- VBOXOSTYPE_OpenSolaris = 0x81000,
-- VBOXOSTYPE_OpenSolaris_x64 = 0x81100,
-- VBOXOSTYPE_L4 = 0x90000,
-- VBOXOSTYPE_QNX = 0xA0000,
-- VBOXOSTYPE_MacOS = 0xB0000,
-- VBOXOSTYPE_MacOS_x64 = 0xB0100,
-- VBOXOSTYPE_JRockitVE = 0xC0000,
-+ VBOXOSTYPE_GNU = 0x10000,
-+ VBOXOSTYPE_GNU_x64 = 0x10100,
-+ VBOXOSTYPE_GNUHurd = 0x20000,
-+ VBOXOSTYPE_GNULinux = 0x30000,
-+ VBOXOSTYPE_GNULinux_x64 = 0x30100,
-+ VBOXOSTYPE_Parabola = 0x31000,
-+ VBOXOSTYPE_Parabola_x64 = 0x31100,
-+ VBOXOSTYPE_gNewSense = 0x32000,
-+ VBOXOSTYPE_gNewSense_x64 = 0x32100,
-+ VBOXOSTYPE_Blag = 0x33000,
-+ VBOXOSTYPE_Blag_x64 = 0x33100,
-+ VBOXOSTYPE_Dragora = 0x34000,
-+ VBOXOSTYPE_Dragora_x64 = 0x34100,
-+ VBOXOSTYPE_Ututo = 0x35000,
-+ VBOXOSTYPE_Ututo_x64 = 0x35100,
-+ VBOXOSTYPE_Musix = 0x36000,
-+ VBOXOSTYPE_Musix_x64 = 0x36100,
-+ VBOXOSTYPE_Trisquel = 0x37000,
-+ VBOXOSTYPE_Trisquel_x64 = 0x37100,
-+ VBOXOSTYPE_Dynebolic = 0x38000,
-+ VBOXOSTYPE_Venenux = 0x39000,
- /** The bit number which indicates 64-bit or 32-bit. */
- #define VBOXOSTYPE_x64_BIT 8
- /** The mask which indicates 64-bit. */
-@@ -129,16 +79,11 @@
- typedef enum VBOXOSFAMILY
- {
- VBOXOSFAMILY_Unknown = 0,
-- VBOXOSFAMILY_Windows32 = 1,
-- VBOXOSFAMILY_Windows64 = 2,
-- VBOXOSFAMILY_Linux32 = 3,
-- VBOXOSFAMILY_Linux64 = 4,
-- VBOXOSFAMILY_FreeBSD32 = 5,
-- VBOXOSFAMILY_FreeBSD64 = 6,
-- VBOXOSFAMILY_Solaris32 = 7,
-- VBOXOSFAMILY_Solaris64 = 8,
-- VBOXOSFAMILY_MacOSX32 = 9,
-- VBOXOSFAMILY_MacOSX64 = 10,
-+ VBOXOSFAMILY_GNU32 = 1,
-+ VBOXOSFAMILY_GNU64 = 2,
-+ VBOXOSFAMILY_GNUHurd = 3,
-+ VBOXOSFAMILY_GNULinux32 = 4,
-+ VBOXOSFAMILY_GNULinux64 = 5,
- /** The usual 32-bit hack. */
- VBOXOSFAMILY_32BIT_HACK = 0x7fffffff
- } VBOXOSFAMILY;
---- VirtualBox-4.1.18.orig/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-06-20 10:17:35.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/src-server/ApplianceImpl.cpp 2012-07-26 01:28:50.033551279 -0300
-@@ -49,94 +49,33 @@
- g_osTypes[] =
- {
- { ovf::CIMOSType_CIMOS_Unknown, SchemaDefs_OSTypeId_Other },
-- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2 },
-- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp3 },
-- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp4 },
-- { ovf::CIMOSType_CIMOS_OS2, SchemaDefs_OSTypeId_OS2Warp45 },
-- { ovf::CIMOSType_CIMOS_MSDOS, SchemaDefs_OSTypeId_DOS },
-- { ovf::CIMOSType_CIMOS_WIN3x, SchemaDefs_OSTypeId_Windows31 },
-- { ovf::CIMOSType_CIMOS_WIN95, SchemaDefs_OSTypeId_Windows95 },
-- { ovf::CIMOSType_CIMOS_WIN98, SchemaDefs_OSTypeId_Windows98 },
-- { ovf::CIMOSType_CIMOS_WINNT, SchemaDefs_OSTypeId_WindowsNT },
-- { ovf::CIMOSType_CIMOS_WINNT, SchemaDefs_OSTypeId_WindowsNT4 },
-- { ovf::CIMOSType_CIMOS_NetWare, SchemaDefs_OSTypeId_Netware },
-- { ovf::CIMOSType_CIMOS_NovellOES, SchemaDefs_OSTypeId_Netware },
-- { ovf::CIMOSType_CIMOS_Solaris, SchemaDefs_OSTypeId_Solaris },
-- { ovf::CIMOSType_CIMOS_SunOS, SchemaDefs_OSTypeId_Solaris },
-- { ovf::CIMOSType_CIMOS_FreeBSD, SchemaDefs_OSTypeId_FreeBSD },
-- { ovf::CIMOSType_CIMOS_NetBSD, SchemaDefs_OSTypeId_NetBSD },
-- { ovf::CIMOSType_CIMOS_QNX, SchemaDefs_OSTypeId_QNX },
-- { ovf::CIMOSType_CIMOS_Windows2000, SchemaDefs_OSTypeId_Windows2000 },
-- { ovf::CIMOSType_CIMOS_WindowsMe, SchemaDefs_OSTypeId_WindowsMe },
-- { ovf::CIMOSType_CIMOS_OpenBSD, SchemaDefs_OSTypeId_OpenBSD },
-- { ovf::CIMOSType_CIMOS_WindowsXP, SchemaDefs_OSTypeId_WindowsXP },
-- { ovf::CIMOSType_CIMOS_WindowsXPEmbedded, SchemaDefs_OSTypeId_WindowsXP },
-- { ovf::CIMOSType_CIMOS_WindowsEmbeddedforPointofService, SchemaDefs_OSTypeId_WindowsXP },
-- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003, SchemaDefs_OSTypeId_Windows2003 },
-- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2003_64, SchemaDefs_OSTypeId_Windows2003_64 },
-- { ovf::CIMOSType_CIMOS_WindowsXP_64, SchemaDefs_OSTypeId_WindowsXP_64 },
-- { ovf::CIMOSType_CIMOS_WindowsVista, SchemaDefs_OSTypeId_WindowsVista },
-- { ovf::CIMOSType_CIMOS_WindowsVista_64, SchemaDefs_OSTypeId_WindowsVista_64 },
-- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008, SchemaDefs_OSTypeId_Windows2008 },
-- { ovf::CIMOSType_CIMOS_MicrosoftWindowsServer2008_64, SchemaDefs_OSTypeId_Windows2008_64 },
-- { ovf::CIMOSType_CIMOS_FreeBSD_64, SchemaDefs_OSTypeId_FreeBSD_64 },
-- { ovf::CIMOSType_CIMOS_MACOS, SchemaDefs_OSTypeId_MacOS },
-- { ovf::CIMOSType_CIMOS_MACOS, SchemaDefs_OSTypeId_MacOS_64 }, // there is no CIM 64-bit type for this
--
-- // Linuxes
-- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux, SchemaDefs_OSTypeId_RedHat },
-- { ovf::CIMOSType_CIMOS_RedHatEnterpriseLinux_64, SchemaDefs_OSTypeId_RedHat_64 },
-- { ovf::CIMOSType_CIMOS_Solaris_64, SchemaDefs_OSTypeId_Solaris_64 },
-- { ovf::CIMOSType_CIMOS_SUSE, SchemaDefs_OSTypeId_OpenSUSE },
-- { ovf::CIMOSType_CIMOS_SLES, SchemaDefs_OSTypeId_OpenSUSE },
-- { ovf::CIMOSType_CIMOS_NovellLinuxDesktop, SchemaDefs_OSTypeId_OpenSUSE },
-- { ovf::CIMOSType_CIMOS_SUSE_64, SchemaDefs_OSTypeId_OpenSUSE_64 },
-- { ovf::CIMOSType_CIMOS_SLES_64, SchemaDefs_OSTypeId_OpenSUSE_64 },
-- { ovf::CIMOSType_CIMOS_LINUX, SchemaDefs_OSTypeId_Linux },
-- { ovf::CIMOSType_CIMOS_LINUX, SchemaDefs_OSTypeId_Linux22 },
-- { ovf::CIMOSType_CIMOS_SunJavaDesktopSystem, SchemaDefs_OSTypeId_Linux },
-- { ovf::CIMOSType_CIMOS_TurboLinux, SchemaDefs_OSTypeId_Turbolinux },
-- { ovf::CIMOSType_CIMOS_TurboLinux_64, SchemaDefs_OSTypeId_Turbolinux_64 },
-- { ovf::CIMOSType_CIMOS_Mandriva, SchemaDefs_OSTypeId_Mandriva },
-- { ovf::CIMOSType_CIMOS_Mandriva_64, SchemaDefs_OSTypeId_Mandriva_64 },
-- { ovf::CIMOSType_CIMOS_Ubuntu, SchemaDefs_OSTypeId_Ubuntu },
-- { ovf::CIMOSType_CIMOS_Ubuntu_64, SchemaDefs_OSTypeId_Ubuntu_64 },
-- { ovf::CIMOSType_CIMOS_Debian, SchemaDefs_OSTypeId_Debian },
-- { ovf::CIMOSType_CIMOS_Debian_64, SchemaDefs_OSTypeId_Debian_64 },
-- { ovf::CIMOSType_CIMOS_Linux_2_4_x, SchemaDefs_OSTypeId_Linux24 },
-- { ovf::CIMOSType_CIMOS_Linux_2_4_x_64, SchemaDefs_OSTypeId_Linux24_64 },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Linux26 },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Linux26_64 },
-- { ovf::CIMOSType_CIMOS_Linux_64, SchemaDefs_OSTypeId_Linux26_64 },
--
-- // types that we have support for but CIM doesn't
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_ArchLinux },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_ArchLinux_64 },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Fedora },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Fedora_64 },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Gentoo },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Gentoo_64 },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x, SchemaDefs_OSTypeId_Xandros },
-- { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, SchemaDefs_OSTypeId_Xandros_64 },
-- { ovf::CIMOSType_CIMOS_Solaris, SchemaDefs_OSTypeId_OpenSolaris },
-- { ovf::CIMOSType_CIMOS_Solaris_64, SchemaDefs_OSTypeId_OpenSolaris_64 },
--
-- // types added with CIM 2.25.0 follow:
-- { ovf::CIMOSType_CIMOS_WindowsServer2008R2, SchemaDefs_OSTypeId_Windows2008 }, // duplicate, see above
--// { ovf::CIMOSType_CIMOS_VMwareESXi = 104, // we can't run ESX in a VM
-- { ovf::CIMOSType_CIMOS_Windows7, SchemaDefs_OSTypeId_Windows7 },
-- { ovf::CIMOSType_CIMOS_Windows7, SchemaDefs_OSTypeId_Windows7_64 }, // there is no CIM 64-bit type for this
-- { ovf::CIMOSType_CIMOS_CentOS, SchemaDefs_OSTypeId_RedHat },
-- { ovf::CIMOSType_CIMOS_CentOS_64, SchemaDefs_OSTypeId_RedHat_64 },
-- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux, SchemaDefs_OSTypeId_Oracle },
-- { ovf::CIMOSType_CIMOS_OracleEnterpriseLinux_64, SchemaDefs_OSTypeId_Oracle_64 },
-- { ovf::CIMOSType_CIMOS_eComStation, SchemaDefs_OSTypeId_OS2eCS }
--
-- // there are no CIM types for these, so these turn to "other" on export:
-- // SchemaDefs_OSTypeId_OpenBSD
-- // SchemaDefs_OSTypeId_OpenBSD_64
-- // SchemaDefs_OSTypeId_NetBSD
-- // SchemaDefs_OSTypeId_NetBSD_64
-+
-+ // Custom OS
-+ { ovf::CIMOSType_CIMOS_GNU, SchemaDefs_OSTypeId_GNU },
-+ { ovf::CIMOSType_CIMOS_GNU_64, SchemaDefs_OSTypeId_GNU_64 },
-+ { ovf::CIMOSType_CIMOS_GNUHurd, SchemaDefs_OSTypeId_GNUHurd },
-+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_GNULinux },
-+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_GNULinux_64 },
-+
-+ // GNU/Linux free distros
-+ { ovf::CIMOSType_CIMOS_gNewSense, SchemaDefs_OSTypeId_gNewSense },
-+ { ovf::CIMOSType_CIMOS_gNewSense_64, SchemaDefs_OSTypeId_gNewSense_64 },
-+ { ovf::CIMOSType_CIMOS_Dragora, SchemaDefs_OSTypeId_Dragora },
-+ { ovf::CIMOSType_CIMOS_Dragora_64, SchemaDefs_OSTypeId_Dragora_64 },
-+ { ovf::CIMOSType_CIMOS_Musix, SchemaDefs_OSTypeId_Musix },
-+ { ovf::CIMOSType_CIMOS_Musix_64, SchemaDefs_OSTypeId_Musix_64 },
-+ { ovf::CIMOSType_CIMOS_Trisquel, SchemaDefs_OSTypeId_Trisquel },
-+ { ovf::CIMOSType_CIMOS_Trisquel_64, SchemaDefs_OSTypeId_Trisquel_64 },
-+ { ovf::CIMOSType_CIMOS_Dynebolic, SchemaDefs_OSTypeId_Dynebolic },
-+ { ovf::CIMOSType_CIMOS_Venenux, SchemaDefs_OSTypeId_Venenux },
-+
-+ // GNU/Linux free distros that we have support for but CIM doesn't
-+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Parabola },
-+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Parabola_64 },
-+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Blag },
-+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Blag_64 },
-+ { ovf::CIMOSType_CIMOS_GNULinux, SchemaDefs_OSTypeId_Ututo },
-+ { ovf::CIMOSType_CIMOS_GNULinux_64, SchemaDefs_OSTypeId_Ututo_64 },
-
- };
-
-@@ -150,53 +89,34 @@
- /* These are the 32-Bit ones. They are sorted by priority. */
- static const osTypePattern g_osTypesPattern[] =
- {
-- {"Windows NT", SchemaDefs_OSTypeId_WindowsNT4},
-- {"Windows XP", SchemaDefs_OSTypeId_WindowsXP},
-- {"Windows 2000", SchemaDefs_OSTypeId_Windows2000},
-- {"Windows 2003", SchemaDefs_OSTypeId_Windows2003},
-- {"Windows Vista", SchemaDefs_OSTypeId_WindowsVista},
-- {"Windows 2008", SchemaDefs_OSTypeId_Windows2008},
-- {"SUSE", SchemaDefs_OSTypeId_OpenSUSE},
-- {"Novell", SchemaDefs_OSTypeId_OpenSUSE},
-- {"Red Hat", SchemaDefs_OSTypeId_RedHat},
-- {"Mandriva", SchemaDefs_OSTypeId_Mandriva},
-- {"Ubuntu", SchemaDefs_OSTypeId_Ubuntu},
-- {"Debian", SchemaDefs_OSTypeId_Debian},
-- {"QNX", SchemaDefs_OSTypeId_QNX},
-- {"Linux 2.4", SchemaDefs_OSTypeId_Linux24},
-- {"Linux 2.6", SchemaDefs_OSTypeId_Linux26},
-- {"Linux", SchemaDefs_OSTypeId_Linux},
-- {"OpenSolaris", SchemaDefs_OSTypeId_OpenSolaris},
-- {"Solaris", SchemaDefs_OSTypeId_OpenSolaris},
-- {"FreeBSD", SchemaDefs_OSTypeId_FreeBSD},
-- {"NetBSD", SchemaDefs_OSTypeId_NetBSD},
-- {"Windows 95", SchemaDefs_OSTypeId_Windows95},
-- {"Windows 98", SchemaDefs_OSTypeId_Windows98},
-- {"Windows Me", SchemaDefs_OSTypeId_WindowsMe},
-- {"Windows 3.", SchemaDefs_OSTypeId_Windows31},
-- {"DOS", SchemaDefs_OSTypeId_DOS},
-- {"OS2", SchemaDefs_OSTypeId_OS2}
-+
-+ {"Parabola GNU/Linux-libre", SchemaDefs_OSTypeId_Parabola},
-+ {"gNewSense", SchemaDefs_OSTypeId_gNewSense},
-+ {"Blag Linux and GNU", SchemaDefs_OSTypeId_Blag},
-+ {"Dragora", SchemaDefs_OSTypeId_Dragora},
-+ {"Ututo XS", SchemaDefs_OSTypeId_Ututo},
-+ {"Musix", SchemaDefs_OSTypeId_Musix},
-+ {"Trisquel", SchemaDefs_OSTypeId_Trisquel},
-+ {"Dyne:bolic", SchemaDefs_OSTypeId_Dynebolic},
-+ {"Venenux", SchemaDefs_OSTypeId_Venenux},
-+ {"GNU", SchemaDefs_OSTypeId_GNU},
-+ {"GNU-Hurd", SchemaDefs_OSTypeId_GNUHurd},
-+ {"GNU/Linux", SchemaDefs_OSTypeId_GNULinux},
-+
- };
-
- /* These are the 64-Bit ones. They are sorted by priority. */
- static const osTypePattern g_osTypesPattern64[] =
- {
-- {"Windows XP", SchemaDefs_OSTypeId_WindowsXP_64},
-- {"Windows 2003", SchemaDefs_OSTypeId_Windows2003_64},
-- {"Windows Vista", SchemaDefs_OSTypeId_WindowsVista_64},
-- {"Windows 2008", SchemaDefs_OSTypeId_Windows2008_64},
-- {"SUSE", SchemaDefs_OSTypeId_OpenSUSE_64},
-- {"Novell", SchemaDefs_OSTypeId_OpenSUSE_64},
-- {"Red Hat", SchemaDefs_OSTypeId_RedHat_64},
-- {"Mandriva", SchemaDefs_OSTypeId_Mandriva_64},
-- {"Ubuntu", SchemaDefs_OSTypeId_Ubuntu_64},
-- {"Debian", SchemaDefs_OSTypeId_Debian_64},
-- {"Linux 2.4", SchemaDefs_OSTypeId_Linux24_64},
-- {"Linux 2.6", SchemaDefs_OSTypeId_Linux26_64},
-- {"Linux", SchemaDefs_OSTypeId_Linux26_64},
-- {"OpenSolaris", SchemaDefs_OSTypeId_OpenSolaris_64},
-- {"Solaris", SchemaDefs_OSTypeId_OpenSolaris_64},
-- {"FreeBSD", SchemaDefs_OSTypeId_FreeBSD_64},
-+ {"Parabola GNU/Linux-libre", SchemaDefs_OSTypeId_Parabola_64},
-+ {"gNewSense", SchemaDefs_OSTypeId_gNewSense_64},
-+ {"Blag Linux and GNU", SchemaDefs_OSTypeId_Blag_64},
-+ {"Dragora", SchemaDefs_OSTypeId_Dragora_64},
-+ {"Ututo XS", SchemaDefs_OSTypeId_Ututo_64},
-+ {"Musix", SchemaDefs_OSTypeId_Musix_64},
-+ {"Trisquel", SchemaDefs_OSTypeId_Trisquel_64},
-+ {"GNU", SchemaDefs_OSTypeId_GNU_64},
-+ {"GNU/Linux", SchemaDefs_OSTypeId_GNULinux_64},
- };
-
- /**
---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ovfreader.h 2012-06-20 10:17:34.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/include/ovfreader.h 2012-07-26 03:51:21.807619186 -0300
-@@ -34,119 +34,24 @@
-
- enum CIMOSType_T
- {
-- CIMOSType_CIMOS_Unknown = 0,
-- CIMOSType_CIMOS_Other = 1,
-- CIMOSType_CIMOS_MACOS = 2,
-- CIMOSType_CIMOS_ATTUNIX = 3,
-- CIMOSType_CIMOS_DGUX = 4,
-- CIMOSType_CIMOS_DECNT = 5,
-- CIMOSType_CIMOS_Tru64UNIX = 6,
-- CIMOSType_CIMOS_OpenVMS = 7,
-- CIMOSType_CIMOS_HPUX = 8,
-- CIMOSType_CIMOS_AIX = 9,
-- CIMOSType_CIMOS_MVS = 10,
-- CIMOSType_CIMOS_OS400 = 11,
-- CIMOSType_CIMOS_OS2 = 12,
-- CIMOSType_CIMOS_JavaVM = 13,
-- CIMOSType_CIMOS_MSDOS = 14,
-- CIMOSType_CIMOS_WIN3x = 15,
-- CIMOSType_CIMOS_WIN95 = 16,
-- CIMOSType_CIMOS_WIN98 = 17,
-- CIMOSType_CIMOS_WINNT = 18,
-- CIMOSType_CIMOS_WINCE = 19,
-- CIMOSType_CIMOS_NCR3000 = 20,
-- CIMOSType_CIMOS_NetWare = 21,
-- CIMOSType_CIMOS_OSF = 22,
-- CIMOSType_CIMOS_DCOS = 23,
-- CIMOSType_CIMOS_ReliantUNIX = 24,
-- CIMOSType_CIMOS_SCOUnixWare = 25,
-- CIMOSType_CIMOS_SCOOpenServer = 26,
-- CIMOSType_CIMOS_Sequent = 27,
-- CIMOSType_CIMOS_IRIX = 28,
-- CIMOSType_CIMOS_Solaris = 29,
-- CIMOSType_CIMOS_SunOS = 30,
-- CIMOSType_CIMOS_U6000 = 31,
-- CIMOSType_CIMOS_ASERIES = 32,
-- CIMOSType_CIMOS_HPNonStopOS = 33,
-- CIMOSType_CIMOS_HPNonStopOSS = 34,
-- CIMOSType_CIMOS_BS2000 = 35,
-- CIMOSType_CIMOS_LINUX = 36,
-- CIMOSType_CIMOS_Lynx = 37,
-- CIMOSType_CIMOS_XENIX = 38,
-- CIMOSType_CIMOS_VM = 39,
-- CIMOSType_CIMOS_InteractiveUNIX = 40,
-- CIMOSType_CIMOS_BSDUNIX = 41,
-- CIMOSType_CIMOS_FreeBSD = 42,
-- CIMOSType_CIMOS_NetBSD = 43,
-- CIMOSType_CIMOS_GNUHurd = 44,
-- CIMOSType_CIMOS_OS9 = 45,
-- CIMOSType_CIMOS_MACHKernel = 46,
-- CIMOSType_CIMOS_Inferno = 47,
-- CIMOSType_CIMOS_QNX = 48,
-- CIMOSType_CIMOS_EPOC = 49,
-- CIMOSType_CIMOS_IxWorks = 50,
-- CIMOSType_CIMOS_VxWorks = 51,
-- CIMOSType_CIMOS_MiNT = 52,
-- CIMOSType_CIMOS_BeOS = 53,
-- CIMOSType_CIMOS_HPMPE = 54,
-- CIMOSType_CIMOS_NextStep = 55,
-- CIMOSType_CIMOS_PalmPilot = 56,
-- CIMOSType_CIMOS_Rhapsody = 57,
-- CIMOSType_CIMOS_Windows2000 = 58,
-- CIMOSType_CIMOS_Dedicated = 59,
-- CIMOSType_CIMOS_OS390 = 60,
-- CIMOSType_CIMOS_VSE = 61,
-- CIMOSType_CIMOS_TPF = 62,
-- CIMOSType_CIMOS_WindowsMe = 63,
-- CIMOSType_CIMOS_CalderaOpenUNIX = 64,
-- CIMOSType_CIMOS_OpenBSD = 65,
-- CIMOSType_CIMOS_NotApplicable = 66,
-- CIMOSType_CIMOS_WindowsXP = 67,
-- CIMOSType_CIMOS_zOS = 68,
-- CIMOSType_CIMOS_MicrosoftWindowsServer2003 = 69,
-- CIMOSType_CIMOS_MicrosoftWindowsServer2003_64 = 70,
-- CIMOSType_CIMOS_WindowsXP_64 = 71,
-- CIMOSType_CIMOS_WindowsXPEmbedded = 72,
-- CIMOSType_CIMOS_WindowsVista = 73,
-- CIMOSType_CIMOS_WindowsVista_64 = 74,
-- CIMOSType_CIMOS_WindowsEmbeddedforPointofService = 75,
-- CIMOSType_CIMOS_MicrosoftWindowsServer2008 = 76,
-- CIMOSType_CIMOS_MicrosoftWindowsServer2008_64 = 77,
-- CIMOSType_CIMOS_FreeBSD_64 = 78,
-- CIMOSType_CIMOS_RedHatEnterpriseLinux = 79,
-- CIMOSType_CIMOS_RedHatEnterpriseLinux_64 = 80,
-- CIMOSType_CIMOS_Solaris_64 = 81,
-- CIMOSType_CIMOS_SUSE = 82,
-- CIMOSType_CIMOS_SUSE_64 = 83,
-- CIMOSType_CIMOS_SLES = 84,
-- CIMOSType_CIMOS_SLES_64 = 85,
-- CIMOSType_CIMOS_NovellOES = 86,
-- CIMOSType_CIMOS_NovellLinuxDesktop = 87,
-- CIMOSType_CIMOS_SunJavaDesktopSystem = 88,
-- CIMOSType_CIMOS_Mandriva = 89,
-- CIMOSType_CIMOS_Mandriva_64 = 90,
-- CIMOSType_CIMOS_TurboLinux = 91,
-- CIMOSType_CIMOS_TurboLinux_64 = 92,
-- CIMOSType_CIMOS_Ubuntu = 93,
-- CIMOSType_CIMOS_Ubuntu_64 = 94,
-- CIMOSType_CIMOS_Debian = 95,
-- CIMOSType_CIMOS_Debian_64 = 96,
-- CIMOSType_CIMOS_Linux_2_4_x = 97,
-- CIMOSType_CIMOS_Linux_2_4_x_64 = 98,
-- CIMOSType_CIMOS_Linux_2_6_x = 99,
-- CIMOSType_CIMOS_Linux_2_6_x_64 = 100,
-- CIMOSType_CIMOS_Linux_64 = 101,
-- CIMOSType_CIMOS_Other_64 = 102,
-- // types added with CIM 2.25.0 follow:
-- CIMOSType_CIMOS_WindowsServer2008R2 = 103,
-- CIMOSType_CIMOS_VMwareESXi = 104,
-- CIMOSType_CIMOS_Windows7 = 105,
-- CIMOSType_CIMOS_CentOS = 106,
-- CIMOSType_CIMOS_CentOS_64 = 107,
-- CIMOSType_CIMOS_OracleEnterpriseLinux = 108,
-- CIMOSType_CIMOS_OracleEnterpriseLinux_64 = 109,
-- CIMOSType_CIMOS_eComStation = 110
-- // no new types added with CIM 2.26.0
-+ CIMOSType_CIMOS_Unknown = 0,
-+ CIMOSType_CIMOS_Other = 1,
-+ CIMOSType_CIMOS_Other_64 = 2,
-+ CIMOSType_CIMOS_gNewSense = 3,
-+ CIMOSType_CIMOS_gNewSense_64 = 4,
-+ CIMOSType_CIMOS_Dragora = 5,
-+ CIMOSType_CIMOS_Dragora_64 = 6,
-+ CIMOSType_CIMOS_Musix = 7,
-+ CIMOSType_CIMOS_Musix_64 = 8,
-+ CIMOSType_CIMOS_Trisquel = 9,
-+ CIMOSType_CIMOS_Trisquel_64 = 10,
-+ CIMOSType_CIMOS_Dynebolic = 11,
-+ CIMOSType_CIMOS_Venenux = 12,
-+ CIMOSType_CIMOS_GNU = 13,
-+ CIMOSType_CIMOS_GNU_64 = 14,
-+ CIMOSType_CIMOS_GNUHurd = 15,
-+ CIMOSType_CIMOS_GNULinux = 16,
-+ CIMOSType_CIMOS_GNULinux_64 = 17
- };
-
-
---- VirtualBox-4.1.18.orig/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c 2012-06-20 10:09:01.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c 2012-07-26 15:32:55.309812685 -0300
-@@ -622,16 +622,16 @@
- * Call the common device extension initializer.
- */
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) && defined(RT_ARCH_X86)
-- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux26;
-+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux;
- #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) && defined(RT_ARCH_AMD64)
-- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux26_x64;
-+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux_x64;
- #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) && defined(RT_ARCH_X86)
-- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux24;
-+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux;
- #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) && defined(RT_ARCH_AMD64)
-- VBOXOSTYPE enmOSType = VBOXOSTYPE_Linux24_x64;
-+ VBOXOSTYPE enmOSType = VBOXOSTYPE_GNULinux_x64;
- #else
- # warning "huh? which arch + version is this?"
-- VBOXOSTYPE enmOsType = VBOXOSTYPE_Linux;
-+ VBOXOSTYPE enmOsType = VBOXOSTYPE_GNULinux;
- #endif
- rc = VBoxGuestInitDevExt(&g_DevExt,
- g_IOPortBase,
diff --git a/libre/virtualbox-libre-modules/libre.patch b/libre/virtualbox-libre-modules/libre.patch
deleted file mode 100644
index e51d0c0a7..000000000
--- a/libre/virtualbox-libre-modules/libre.patch
+++ /dev/null
@@ -1,5765 +0,0 @@
---- VirtualBox-4.1.18.orig/Config.kmk 2012-07-24 16:38:43.981310996 -0300
-+++ VirtualBox-4.1.18/Config.kmk 2012-07-24 16:38:44.001309865 -0300
-@@ -56,9 +56,6 @@
- PROPS_SYSMODS_ACCUMULATE_L += INTERMEDIATES
- PROPS_MISCBINS_ACCUMULATE_L += INTERMEDIATES
-
--# Misc names used bye the install paths below.
--VBOX_PUEL_MANGLED_NAME := Oracle_VM_VirtualBox_Extension_Pack
--
- # Install paths
- ## @todo This will change after 4.1 is branched off!
- # What is now 'bin' and 'lib' will be moved down under 'staged/', except on
-@@ -125,9 +122,6 @@
- endif
-
- INST_DOC = doc/
--INST_EXTPACK = $(INST_BIN)ExtensionPacks/
--INST_EXTPACK_CERTS = $(INST_BIN)ExtPackCertificates/
--INST_EXTPACK_PUEL = $(INST_EXTPACK)$(VBOX_PUEL_MANGLED_NAME)/
- INST_PACKAGES = packages/
-
- VBOX_PATH_SDK = $(patsubst %/,%,$(PATH_STAGE)/$(INST_SDK))
-@@ -136,7 +130,6 @@
- VBOX_PATH_ADDITIONS = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS))
- VBOX_PATH_ADDITIONS_ISO = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_ISO))
- VBOX_PATH_ADDITIONS_LIB = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_LIB))
--VBOX_PATH_EXTPACK_PUEL= $(patsubst %/,%,$(PATH_STAGE)/$(INST_EXTPACK_PUEL))
- VBOX_PATH_PACKAGES = $(patsubst %/,%,$(PATH_STAGE)/$(INST_PACKAGES))
-
-
-@@ -208,7 +201,6 @@
- export VBOX_ADDITIONS_SH_MODE = release
- export VBOX_DOCUMENTATION_SH_MODE = release
- export VBOX_EFI_SH_MODE = release
-- export VBOX_EXTPACKS_SH_MODE = release
- endif
-
- # Some info on the vendor
-@@ -361,8 +353,6 @@
- VBOX_WITH_USB = 1
- # Enable the USB 1.1 controller plus virtual USB HID devices.
- VBOX_WITH_VUSB = 1
--# Enable the USB 2.0 controller.
--VBOX_WITH_EHCI = 1
- # Enable the ISCSI feature.
- VBOX_WITH_ISCSI = 1
- # Enable INIP support in the ISCSI feature.
-@@ -430,9 +420,6 @@
- ifdef VBOX_WITH_USB
- VBOX_WITH_VUSB = 1
- endif
--ifdef VBOX_WITH_EHCI
-- VBOX_WITH_EHCI_IMPL = 1
--endif
- ifdef VBOX_WITH_PCI_PASSTHROUGH
- VBOX_WITH_PCI_PASSTHROUGH_IMPL = 1
- endif
-@@ -591,15 +578,6 @@
- ## @}
-
-
--## @name Extension pack
--## @{
--# Enables the extension pack feature.
--VBOX_WITH_EXTPACK = 1
--# Enables separating code into the Oracle VM VirtualBox Extension Pack, dubbed PUEL.
--VBOX_WITH_EXTPACK_PUEL = 1
--# Enables building+packing the Oracle VM VirtualBox Extension Pack, includes VBOX_WITH_EXTPACK_PUEL
--VBOX_WITH_EXTPACK_PUEL_BUILD = 1
--## @}
-
- ## @name Misc
- ## @{
-@@ -777,14 +755,6 @@
- # Skip stuff.
- #
-
--ifdef VBOX_ONLY_EXTPACKS
-- # Clear some VBOX_WITH_XXX variables instead of adding ifdefs all over the place.
-- VBOX_WITH_DEBUGGER =
-- VBOX_WITH_ADDITIONS =
-- VBOX_WITH_VBOXDRV =
-- VBOX_WITH_TESTCASES =
--endif
--
- # VBOX_QUICK can be used by core developers to speed to the build
- ifdef VBOX_QUICK
- # undefine variables by assigning blank.
-@@ -848,7 +818,6 @@
- VBOX_WITH_TESTSUITE=
- VBOX_WITH_QTGUI=
- VBOX_WITH_USB=
-- VBOX_WITH_EHCI=
- VBOX_WITH_DOCS=
- VBOX_WITH_PDM_ASYNC_COMPLETION=
- VBOX_WITH_KCHMVIEWER=
-@@ -870,7 +839,6 @@
- VBOX_WITH_CROGL=
- VBOX_WITH_DEBUGGER=
- VBOX_WITH_DOCS=
-- VBOX_WITH_EHCI=
- VBOX_WITH_HARDENING=
- VBOX_WITH_HEADLESS=
- VBOX_WITH_HGCM=
-@@ -952,9 +920,6 @@
- #
- ifdef VBOX_OSE
- VBOX_WITH_VRDP=
-- VBOX_WITH_EHCI_IMPL=
-- VBOX_WITH_EXTPACK_PUEL=
-- VBOX_WITH_EXTPACK_PUEL_BUILD=
- VBOX_WITH_PCI_PASSTHROUGH_IMPL=
- VBOX_WITH_OS2_ADDITIONS_BIN=
- VBOX_WITH_SECURELABEL=
-@@ -1082,10 +1047,6 @@
- VBOX_WITH_KCHMVIEWER=
- endif
-
--ifdef VBOX_WITH_EXTPACK_PUEL_BUILD
-- VBOX_WITH_EXTPACK_PUEL = 1
--endif
--
- #
- # Mark OSE builds clearly, helps figuring out limitations more easily.
- #
-@@ -1679,9 +1640,6 @@
- # biossums (set BIOS checksums)
- VBOX_BIOSSUMS ?= $(PATH_OBJ)/biossums/biossums$(HOSTSUFF_EXE)
-
--# RTManifest (extension pack manifest utility)
--VBOX_RTMANIFEST ?= $(PATH_OBJ)/bldRTManifest/bldRTManifest$(HOSTSUFF_EXE)
--
- # filesplitter (splits java files)
- VBOX_FILESPLIT ?= $(PATH_OBJ)/filesplitter/filesplitter$(HOSTSUFF_EXE)
-
-@@ -2461,13 +2419,6 @@
- SDK_VBOX_OPENSSL2_LIBS = $(NO_SUCH_VARIABLE)
- endif
-
--SDK_VBoxOpenSslExtPack = Internal use only.
--SDK_VBoxOpenSslExtPack_INCS = $(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS)
--SDK_VBoxOpenSslExtPack_ORDERDEPS = $(crypto-headers_1_TARGET)
--SDK_VBoxOpenSslExtPack_LIBS = \
-- $(PATH_STAGE_LIB)/VBoxExtPack-libssl$(VBOX_SUFF_LIB) \
-- $(PATH_STAGE_LIB)/VBoxExtPack-libcrypto$(VBOX_SUFF_LIB)
--
- SDK_VBOX_BLD_OPENSSL = .
- SDK_VBOX_BLD_OPENSSL_EXTENDS = VBOX_OPENSSL
- SDK_VBOX_BLD_OPENSSL_LIBS ?= \
-@@ -3817,100 +3768,6 @@
- endif
- TEMPLATE_VBOXMAINCLIENTDLL_LDFLAGS.darwin = $(filter-out -bind_at_load,$(TEMPLATE_VBOXMAINCLIENTEXE_LDFLAGS.darwin))
-
--
--
--#
--# Templates used for building the extension packs.
--#
--ifdef VBOX_WITH_EXTPACK
-- # Base templates (native or portable).
-- TEMPLATE_VBoxR3ExtPack = For the ring-3 context extension pack modules.
-- if 1 # Native for now.
-- TEMPLATE_VBoxR3ExtPack_EXTENDS = VBOXR3DLLNOXCPT
-- TEMPLATE_VBoxR3ExtPack_DEFS = $(TEMPLATE_VBOXR3DLLNOXCPT_DEFS) VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R3
-- else
-- TEMPLATE_VBoxR3ExtPack_EXTENDS = VBOXNOCRTGCC
-- TEMPLATE_VBoxR3ExtPack_DEFS = $(TEMPLATE_VBOXNOCRTGCC_DEFS) VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R3 IPRT_NO_CRT IN_RING3
-- TEMPLATE_VBoxR3ExtPack_INCS = $(PATH_ROOT)/include/iprt/nocrt $(TEMPLATE_VBOXR3DLLNOXCPT_INCS)
-- endif
-- ifneq ($(KBUILD_TARGET),win)
-- TEMPLATE_VBoxR3ExtPack_CXXFLAGS = $(TEMPLATE_VBOXR3DLLNOXCPT_CXXFLAGS) -fno-rtti
-- endif
-- TEMPLATE_VBoxR3ExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/
-- ifeq ($(KBUILD_TARGET),linux)
-- TEMPLATE_VBoxR3ExtPack_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBOXR3DLLNOXCPT_LDFLAGS))
-- else
-- if !defined(VBOX_WITH_RUNPATH) && defined(VBOX_WITH_RELATIVE_RUNPATH)
-- TEMPLATE_VBoxR3ExtPack_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/../../..' $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBOXR3DLLNOXCPT_LDFLAGS))
-- endif
-- endif
-- ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
-- if1of ($(KBUILD_TARGET), win os2)
-- TEMPLATE_VBoxR3ExtPack_LIBS = \
-- $(TEMPLATE_LIBS_VBOXR3) \
-- $(PATH_STAGE_LIB)/VMMR3Imp$(VBOX_SUFF_LIB) \
-- $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_LIB)
-- else
-- TEMPLATE_VBoxR3ExtPack_LIBS = \
-- $(TEMPLATE_LIBS_VBOXR3) \
-- $(PATH_STAGE_LIB)/VMMR3Imp$(VBOX_SUFF_DLL) \
-- $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_DLL)
-- endif
-- else
-- TEMPLATE_VBoxR3ExtPack_LIBS = \
-- $(TEMPLATE_LIBS_VBOXR3) \
-- $(LIB_RUNTIME) \
-- $(LIB_VMM)
-- endif
--
-- TEMPLATE_VBoxR0ExtPack = For the ring-0 context extension pack modules.
-- TEMPLATE_VBoxR0ExtPack_EXTENDS = VBoxR0
-- TEMPLATE_VBoxR0ExtPack_EXTENDS_BY = appending
-- TEMPLATE_VBoxR0ExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/
-- TEMPLATE_VBoxR0ExtPack_DEFS = VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R0
-- if1of ($(VBOX_LDR_FMT), pe lx)
-- TEMPLATE_VBoxR0ExtPack_LIBS = \
-- $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB) \
-- $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB)
-- endif
--
-- TEMPLATE_VBoxRcExtPack = For the raw-mode context extension pack modules.
-- TEMPLATE_VBoxRcExtPack_EXTENDS = VBoxRc
-- TEMPLATE_VBoxRcExtPack_EXTENDS_BY = appending
-- TEMPLATE_VBoxRcExtPack_SYSSUFF = .rc
-- TEMPLATE_VBoxRcExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/
-- TEMPLATE_VBoxRcExtPack_DEFS = VBOX_IN_EXTPACK VBOX_IN_EXTPACK_RC
-- if1of ($(VBOX_LDR_FMT32), pe lx)
-- TEMPLATE_VBoxRcExtPack_LIBS = \
-- $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
-- $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
-- endif
--
-- TEMPLATE_VBoxInsExtPack = For the install targets of an extension pack.
-- TEMPLATE_VBoxInsExtPack_MODE = 0644
-- TEMPLATE_VBoxInsExtPack_INST = $(INST_EXTPACK)YouShallOverrideThis/
--
-- # For each individual extension pack
-- ifdef VBOX_WITH_EXTPACK_PUEL
-- TEMPLATE_VBoxR3ExtPackPuel = For the ring-3 context modules in the PUEL extension pack.
-- TEMPLATE_VBoxR3ExtPackPuel_EXTENDS = VBoxR3ExtPack
-- TEMPLATE_VBoxR3ExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
--
-- TEMPLATE_VBoxR0ExtPackPuel = For the ring-0 context modules in the PUEL extension pack.
-- TEMPLATE_VBoxR0ExtPackPuel_EXTENDS = VBoxR0ExtPack
-- TEMPLATE_VBoxR0ExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
--
-- TEMPLATE_VBoxRcExtPackPuel = For the raw-mode context modules in the PUEL extension pack.
-- TEMPLATE_VBoxRcExtPackPuel_EXTENDS = VBoxRcExtPack
-- TEMPLATE_VBoxRcExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
--
-- TEMPLATE_VBoxInsExtPackPuel = For the install targets of an extension pack.
-- TEMPLATE_VBoxInsExtPackPuel_EXTENDS = VBoxR0ExtPack
-- TEMPLATE_VBoxInsExtPackPuel_INST = $(INST_EXTPACK_PUEL)
--endif
--endif # VBOX_WITH_EXTPACK
--
--
- #
- # Qt 4
- # Qt 4
---- VirtualBox-4.1.18.orig/Makefile.kmk 2012-07-24 17:16:47.078929150 -0300
-+++ VirtualBox-4.1.18/Makefile.kmk 2012-07-24 17:16:47.125592981 -0300
-@@ -446,7 +446,6 @@
- include/VBox \
- include/VBox/vmm \
- include/VBox/com \
-- include/VBox/ExtPack \
- include/VBox/HostServices \
- include/VBox/GuestHost \
- include/VBox/HGSMI \
-@@ -862,191 +861,6 @@
- additions-build-linux.x86.combined \
- additions-packing
-
--
--#
--# Build the extension packs, all of them.
--#
--# This is tailored (hardcoded) for the extension pack build box.
--#
--# The fetching must be done in serial fashion, while the building should be
--# more flexible wrt to -jN.
--#
--extpacks-fetch:
-- + $(KMK) -C tools fetch VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=amd64 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=darwin BUILD_TARGET_ARCH=x86 BUILD_TARGET=darwin VBOX_ONLY_EXTPACKS=1
--# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=amd64 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1
--# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=freebsd BUILD_TARGET_ARCH=x86 BUILD_TARGET=freebsd VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=linux BUILD_TARGET_ARCH=amd64 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=linux BUILD_TARGET_ARCH=x86 BUILD_TARGET=linux VBOX_ONLY_EXTPACKS=1
--# + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=os2 BUILD_TARGET_ARCH=x86 BUILD_TARGET=os2 VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=amd64 BUILD_TARGET=solaris VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=solaris BUILD_TARGET_ARCH=x86 BUILD_TARGET=solaris VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=amd64 KBUILD_TARGET=win BUILD_TARGET_ARCH=amd64 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1
-- + $(KMK) -C tools fetch KBUILD_TARGET_ARCH=x86 KBUILD_TARGET=win BUILD_TARGET_ARCH=x86 BUILD_TARGET=win VBOX_ONLY_EXTPACKS=1
--
--
--extpacks-build: \
-- extpacks-build-win.amd64 \
-- extpacks-build-win.x86 \
-- extpacks-build-solaris.amd64 \
-- extpacks-build-solaris.x86 \
-- extpacks-build-os2.x86 \
-- extpacks-build-linux.amd64 \
-- extpacks-build-linux.x86 \
-- extpacks-build-darwin.amd64 \
-- extpacks-build-darwin.x86 \
-- extpacks-build-freebsd.amd64 \
-- extpacks-build-freebsd.x86
--
--VBOX_EXTPACKS_BUILD.amd64 = VBOX_ONLY_EXTPACKS=1 \
-- KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
-- KBUILD_TARGET_ARCH=amd64 BUILD_TARGET_ARCH=amd64 \
-- VBOX_SVN_REV=$(VBOX_SVN_REV)
--
--VBOX_EXTPACKS_BUILD.x86 = VBOX_ONLY_EXTPACKS=1 \
-- KBUILD_TYPE=$(KBUILD_TYPE) BUILD_TYPE=$(KBUILD_TYPE) \
-- KBUILD_TARGET_ARCH=x86 BUILD_TARGET_ARCH=x86 \
-- VBOX_SVN_REV=$(VBOX_SVN_REV)
--
--# Automatically determine the extpack build subdir name. Used for figuring out
--# directory names inside the extension pack building VMs.
--VBOX_EXTPACKS_BUILD_SUBDIRNAME := $(lastword $(subst /, ,$(PATH_ROOT)))
--
--# When building in parallel on a Windows host, make sure we finish the host
--# bit before kicking off any UNIX guest or we'll run into file sharing issues.
--ifeq ($(KBUILD_TARGET),win)
--VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST = extpacks-build-win.x86 extpacks-build-win.amd64
--else
--VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST =
--endif
--
--extpacks-build-win.amd64:
--ifeq ($(KBUILD_TARGET),win)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Windows/amd64 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.6 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
--endif
--
--extpacks-build-win.x86:
--ifeq ($(KBUILD_TARGET),win)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Windows/x86 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.16 " echo $@ && cd e:/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh kmk $(VBOX_EXTPACKS_BUILD.x86) all"
--endif
--
--ifeq ($(KBUILD_TARGET),solaris)
--extpacks-build-solaris.amd64:
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--
--extpacks-build-solaris.x86: extpacks-build-solaris.amd64
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--
--else
--# Serialize 32-bit and 64-bit ASSUMING the same VM builds both.
--extpacks-build-solaris.rsync-into-vm: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
-- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,solaris,*) . 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
--
--extpacks-build-solaris.build-it: extpacks-build-solaris.rsync-into-vm
-- $(call MSG_L1,Building Solaris/amd64 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
-- $(call MSG_L1,Building Solaris/x86 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/x86 && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all"
--
--extpacks-build-solaris.rsync-out-of-vm: extpacks-build-solaris.build-it
-- $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.x86 out/
-- $(VBOX_KMK_TIME) rsync -a --delete 192.168.27.4:/mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/solaris.amd64 out/
--
--.NOTPARALLEL: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm
--.PHONY: extpacks-build-solaris.rsync-out-of-vm extpacks-build-solaris.rsync-into-vm extpacks-build-solaris.build-it
--
--extpacks-build-solaris.amd64: extpacks-build-solaris.rsync-out-of-vm
--extpacks-build-solaris.x86: extpacks-build-solaris.rsync-out-of-vm
--endif
--
--extpacks-build-os2.x86:
--#ifeq ($(KBUILD_TARGET),os2)
--# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--#else
--# $(VBOX_KMK_TIME) ssh vbox@192.168.27.3 " cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) "
--#endif
--
--extpacks-build-linux.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.amd64)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Linux/amd64 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.12 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
--endif
--
--extpacks-build-linux.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.x86)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Linux/x86 extension packs)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.11 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all"
--endif
--
--extpacks-build-freebsd.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.amd64)
--# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--#else
--# $(call MSG_L1,Building FreeBSD/amd64 extension packs)
--# $(VBOX_KMK_TIME) ssh vbox@192.168.27.17 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
--#endif
--
--extpacks-build-freebsd.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--#ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),freebsd.x86)
--# + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--#else
--# $(call MSG_L1,Building FreeBSD/x86 extension packs)
--# $(VBOX_KMK_TIME) ssh vbox@192.168.27.7 " echo $@ && cd /mnt/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all"
--#endif
--
--extpacks-build-darwin.amd64: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.amd64)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.amd64) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Darwin/amd64 extension packs)
-- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,amd64) . 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.15 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.amd64) all"
-- $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.15:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.amd64 out/
--endif
--
--extpacks-build-darwin.x86: $(VBOX_EXTPACKS_BUILD_WIN_HOST_FIRST)
--ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86)
-- + $(VBOX_KMK_TIME) $(KMK) $(VBOX_EXTPACKS_BUILD.x86) all $(VBOX_EXTPACKS_HOST_BUILD_TWEAK)
--else
-- $(call MSG_L1,Building Darwin/x86 extension packs)
-- $(VBOX_KMK_TIME) $(call VBOX_RSYNC_IN_FN,darwin,x86) . 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)
-- $(VBOX_KMK_TIME) ssh vbox@192.168.27.5 " echo $@ && cd /Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_EXTPACKS_BUILD.x86) all"
-- $(VBOX_KMK_TIME) rsync -am -v --delete 192.168.27.5:/Users/vbox/tinderbox/$(VBOX_EXTPACKS_BUILD_SUBDIRNAME)/out/darwin.x86 out/
--endif
--
--
--extpacks-packing:
-- + $(KMK) VBOX_ONLY_EXTPACKS=1 \
-- VBOX_WITH_EXTPACK_OS_ARCHS="darwin.amd64 darwin.x86 linux.amd64 linux.x86 solaris.amd64 solaris.x86 win.amd64 win.x86" \
-- packing
--# +++ freebsd.amd64 freebsd.x86 os2.x86 ^^^
--
--.PHONY: \
-- extpacks-build-win.x86 \
-- extpacks-build-win.amd64 \
-- extpacks-build-solaris.amd64 \
-- extpacks-build-solaris.x86 \
-- extpacks-build-os2.x86 \
-- extpacks-build-linux.amd64 \
-- extpacks-build-linux.x86 \
-- extpacks-build-freebsd.amd64 \
-- extpacks-build-freebsd.x86 \
-- extpacks-build-darwin.amd64 \
-- extpacks-build-darwin.x86 \
-- extpacks-packing
--
--
- #
- # Build the test suite, all of it.
- #
---- VirtualBox-4.1.18.orig/src/VBox/Devices/build/VBoxDD.cpp 2012-06-20 10:15:51.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Devices/build/VBoxDD.cpp 2012-07-24 16:18:03.964493454 -0300
-@@ -132,11 +132,6 @@
- if (RT_FAILURE(rc))
- return rc;
- #endif
--#ifdef VBOX_WITH_EHCI_IMPL
-- rc = pCallbacks->pfnRegister(pCallbacks, &g_DeviceEHCI);
-- if (RT_FAILURE(rc))
-- return rc;
--#endif
- #ifdef VBOX_ACPI
- rc = pCallbacks->pfnRegister(pCallbacks, &g_DeviceACPI);
- if (RT_FAILURE(rc))
---- VirtualBox-4.1.18.orig/src/VBox/Devices/build/VBoxDD.h 2012-06-20 10:15:51.000000000 -0300
-+++ VirtualBox-4.1.18/src/VBox/Devices/build/VBoxDD.h 2012-07-24 16:20:35.939205389 -0300
-@@ -62,7 +62,6 @@
- extern const PDMDEVREG g_DeviceICH6_HDA;
- extern const PDMDEVREG g_DeviceAudioSniffer;
- extern const PDMDEVREG g_DeviceOHCI;
--extern const PDMDEVREG g_DeviceEHCI;
- extern const PDMDEVREG g_DeviceACPI;
- extern const PDMDEVREG g_DeviceDMA;
- extern const PDMDEVREG g_DeviceFloppyController;
---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ExtPackManagerImpl.h 2012-06-20 10:17:33.000000000 -0300
-+++ /dev/null 2012-07-24 14:48:18.638572110 -0300
-@@ -1,245 +0,0 @@
--/* $Id: ExtPackManagerImpl.h $ */
--/** @file
-- * VirtualBox Main - interface for Extension Packs, VBoxSVC & VBoxC.
-- */
--
--/*
-- * Copyright (C) 2010 Oracle Corporation
-- *
-- * This file is part of VirtualBox Open Source Edition (OSE), as
-- * available from http://www.virtualbox.org. This file is free software;
-- * you can redistribute it and/or modify it under the terms of the GNU
-- * General Public License (GPL) as published by the Free Software
-- * Foundation, in version 2 as it comes in the "COPYING" file of the
-- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-- */
--
--#ifndef ____H_EXTPACKMANAGERIMPL
--#define ____H_EXTPACKMANAGERIMPL
--
--#include "VirtualBoxBase.h"
--#include <VBox/ExtPack/ExtPack.h>
--#include <iprt/fs.h>
--
--/**
-- * An extension pack file.
-- */
--class ATL_NO_VTABLE ExtPackFile :
-- public VirtualBoxBase,
-- VBOX_SCRIPTABLE_IMPL(IExtPackFile)
--{
--public:
-- /** @name COM and internal init/term/mapping cruft.
-- * @{ */
-- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPackFile, IExtPackFile)
-- DECLARE_NOT_AGGREGATABLE(ExtPackFile)
-- DECLARE_PROTECT_FINAL_CONSTRUCT()
-- BEGIN_COM_MAP(ExtPackFile)
-- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPackFile)
-- COM_INTERFACE_ENTRY(IExtPackBase)
-- END_COM_MAP()
-- DECLARE_EMPTY_CTOR_DTOR(ExtPackFile)
--
-- HRESULT FinalConstruct();
-- void FinalRelease();
-- HRESULT initWithFile(const char *a_pszFile, const char *a_pszDigest, class ExtPackManager *a_pExtPackMgr, VirtualBox *a_pVirtualBox);
-- void uninit();
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
-- /** @} */
--
-- /** @name IExtPackBase interfaces
-- * @{ */
-- STDMETHOD(COMGETTER(Name))(BSTR *a_pbstrName);
-- STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription);
-- STDMETHOD(COMGETTER(Version))(BSTR *a_pbstrVersion);
-- STDMETHOD(COMGETTER(Revision))(ULONG *a_puRevision);
-- STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule);
-- STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns));
-- STDMETHOD(COMGETTER(Usable))(BOOL *a_pfUsable);
-- STDMETHOD(COMGETTER(WhyUnusable))(BSTR *a_pbstrWhy);
-- STDMETHOD(COMGETTER(ShowLicense))(BOOL *a_pfShowIt);
-- STDMETHOD(COMGETTER(License))(BSTR *a_pbstrHtmlLicense);
-- STDMETHOD(QueryLicense)(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage,
-- IN_BSTR a_bstrFormat, BSTR *a_pbstrLicense);
-- /** @} */
--
-- /** @name IExtPackFile interfaces
-- * @{ */
-- STDMETHOD(COMGETTER(FilePath))(BSTR *a_pbstrPath);
-- STDMETHOD(Install)(BOOL a_fReplace, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress);
-- /** @} */
--
--private:
-- /** @name Misc init helpers
-- * @{ */
-- HRESULT initFailed(const char *a_pszWhyFmt, ...);
-- /** @} */
--
--private:
-- struct Data;
-- /** Pointer to the private instance. */
-- Data *m;
--
-- friend class ExtPackManager;
--};
--
--
--/**
-- * An installed extension pack.
-- */
--class ATL_NO_VTABLE ExtPack :
-- public VirtualBoxBase,
-- VBOX_SCRIPTABLE_IMPL(IExtPack)
--{
--public:
-- /** @name COM and internal init/term/mapping cruft.
-- * @{ */
-- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPack, IExtPack)
-- DECLARE_NOT_AGGREGATABLE(ExtPack)
-- DECLARE_PROTECT_FINAL_CONSTRUCT()
-- BEGIN_COM_MAP(ExtPack)
-- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPack)
-- COM_INTERFACE_ENTRY(IExtPackBase)
-- END_COM_MAP()
-- DECLARE_EMPTY_CTOR_DTOR(ExtPack)
--
-- HRESULT FinalConstruct();
-- void FinalRelease();
-- HRESULT initWithDir(VBOXEXTPACKCTX a_enmContext, const char *a_pszName, const char *a_pszDir);
-- void uninit();
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
-- /** @} */
--
-- /** @name IExtPackBase interfaces
-- * @{ */
-- STDMETHOD(COMGETTER(Name))(BSTR *a_pbstrName);
-- STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription);
-- STDMETHOD(COMGETTER(Version))(BSTR *a_pbstrVersion);
-- STDMETHOD(COMGETTER(Revision))(ULONG *a_puRevision);
-- STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule);
-- STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns));
-- STDMETHOD(COMGETTER(Usable))(BOOL *a_pfUsable);
-- STDMETHOD(COMGETTER(WhyUnusable))(BSTR *a_pbstrWhy);
-- STDMETHOD(COMGETTER(ShowLicense))(BOOL *a_pfShowIt);
-- STDMETHOD(COMGETTER(License))(BSTR *a_pbstrHtmlLicense);
-- STDMETHOD(QueryLicense)(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage,
-- IN_BSTR a_bstrFormat, BSTR *a_pbstrLicense);
-- /** @} */
--
-- /** @name IExtPack interfaces
-- * @{ */
-- STDMETHOD(QueryObject)(IN_BSTR a_bstrObjectId, IUnknown **a_ppUnknown);
-- /** @} */
--
-- /** @name Internal interfaces used by ExtPackManager.
-- * @{ */
-- bool callInstalledHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock, PRTERRINFO pErrInfo);
-- HRESULT callUninstallHookAndClose(IVirtualBox *a_pVirtualBox, bool a_fForcedRemoval);
-- bool callVirtualBoxReadyHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock);
-- bool callConsoleReadyHook(IConsole *a_pConsole, AutoWriteLock *a_pLock);
-- bool callVmCreatedHook(IVirtualBox *a_pVirtualBox, IMachine *a_pMachine, AutoWriteLock *a_pLock);
-- bool callVmConfigureVmmHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc);
-- bool callVmPowerOnHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc);
-- bool callVmPowerOffHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock);
-- HRESULT checkVrde(void);
-- HRESULT getVrdpLibraryName(Utf8Str *a_pstrVrdeLibrary);
-- bool wantsToBeDefaultVrde(void) const;
-- HRESULT refresh(bool *pfCanDelete);
-- /** @} */
--
--protected:
-- /** @name Internal helper methods.
-- * @{ */
-- void probeAndLoad(void);
-- bool findModule(const char *a_pszName, const char *a_pszExt, VBOXEXTPACKMODKIND a_enmKind,
-- Utf8Str *a_ppStrFound, bool *a_pfNative, PRTFSOBJINFO a_pObjInfo) const;
-- static bool objinfoIsEqual(PCRTFSOBJINFO pObjInfo1, PCRTFSOBJINFO pObjInfo2);
-- /** @} */
--
-- /** @name Extension Pack Helpers
-- * @{ */
-- static DECLCALLBACK(int) hlpFindModule(PCVBOXEXTPACKHLP pHlp, const char *pszName, const char *pszExt,
-- VBOXEXTPACKMODKIND enmKind, char *pszFound, size_t cbFound, bool *pfNative);
-- static DECLCALLBACK(int) hlpGetFilePath(PCVBOXEXTPACKHLP pHlp, const char *pszFilename, char *pszPath, size_t cbPath);
-- static DECLCALLBACK(VBOXEXTPACKCTX) hlpGetContext(PCVBOXEXTPACKHLP pHlp);
-- static DECLCALLBACK(int) hlpReservedN(PCVBOXEXTPACKHLP pHlp);
-- /** @} */
--
--private:
-- struct Data;
-- /** Pointer to the private instance. */
-- Data *m;
--
-- friend class ExtPackManager;
--};
--
--
--/**
-- * Extension pack manager.
-- */
--class ATL_NO_VTABLE ExtPackManager :
-- public VirtualBoxBase,
-- VBOX_SCRIPTABLE_IMPL(IExtPackManager)
--{
-- /** @name COM and internal init/term/mapping cruft.
-- * @{ */
-- VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPackManager, IExtPackManager)
-- DECLARE_NOT_AGGREGATABLE(ExtPackManager)
-- DECLARE_PROTECT_FINAL_CONSTRUCT()
-- BEGIN_COM_MAP(ExtPackManager)
-- VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPackManager)
-- END_COM_MAP()
-- DECLARE_EMPTY_CTOR_DTOR(ExtPackManager)
--
-- HRESULT FinalConstruct();
-- void FinalRelease();
-- HRESULT initExtPackManager(VirtualBox *a_pVirtualBox, VBOXEXTPACKCTX a_enmContext);
-- void uninit();
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
-- /** @} */
--
-- /** @name IExtPack interfaces
-- * @{ */
-- STDMETHOD(COMGETTER(InstalledExtPacks))(ComSafeArrayOut(IExtPack *, a_paExtPacks));
-- STDMETHOD(Find)(IN_BSTR a_bstrName, IExtPack **a_pExtPack);
-- STDMETHOD(OpenExtPackFile)(IN_BSTR a_bstrTarball, IExtPackFile **a_ppExtPackFile);
-- STDMETHOD(Uninstall)(IN_BSTR a_bstrName, BOOL a_fForcedRemoval, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress);
-- STDMETHOD(Cleanup)(void);
-- STDMETHOD(QueryAllPlugInsForFrontend)(IN_BSTR a_bstrFrontend, ComSafeArrayOut(BSTR, a_pabstrPlugInModules));
-- STDMETHOD(IsExtPackUsable(IN_BSTR a_bstrExtPack, BOOL *aUsable));
-- /** @} */
--
-- /** @name Internal interfaces used by other Main classes.
-- * @{ */
-- static DECLCALLBACK(int) doInstallThreadProc(RTTHREAD hThread, void *pvJob);
-- HRESULT doInstall(ExtPackFile *a_pExtPackFile, bool a_fReplace, Utf8Str const *a_pstrDisplayInfo);
-- static DECLCALLBACK(int) doUninstallThreadProc(RTTHREAD hThread, void *pvJob);
-- HRESULT doUninstall(const Utf8Str *a_pstrName, bool a_fForcedRemoval, const Utf8Str *a_pstrDisplayInfo);
-- void callAllVirtualBoxReadyHooks(void);
-- void callAllConsoleReadyHooks(IConsole *a_pConsole);
-- void callAllVmCreatedHooks(IMachine *a_pMachine);
-- int callAllVmConfigureVmmHooks(IConsole *a_pConsole, PVM a_pVM);
-- int callAllVmPowerOnHooks(IConsole *a_pConsole, PVM a_pVM);
-- void callAllVmPowerOffHooks(IConsole *a_pConsole, PVM a_pVM);
-- HRESULT checkVrdeExtPack(Utf8Str const *a_pstrExtPack);
-- int getVrdeLibraryPathForExtPack(Utf8Str const *a_pstrExtPack, Utf8Str *a_pstrVrdeLibrary);
-- HRESULT getDefaultVrdeExtPack(Utf8Str *a_pstrExtPack);
-- bool isExtPackUsable(const char *a_pszExtPack);
-- void dumpAllToReleaseLog(void);
-- /** @} */
--
--private:
-- HRESULT runSetUidToRootHelper(Utf8Str const *a_pstrDisplayInfo, const char *a_pszCommand, ...);
-- ExtPack *findExtPack(const char *a_pszName);
-- void removeExtPack(const char *a_pszName);
-- HRESULT refreshExtPack(const char *a_pszName, bool a_fUnsuableIsError, ExtPack **a_ppExtPack);
--
--private:
-- struct Data;
-- /** Pointer to the private instance. */
-- Data *m;
--};
--
--#endif
--/* vi: set tabstop=4 shiftwidth=4 expandtab: */
---- VirtualBox-4.1.18.orig/src/VBox/Main/include/ExtPackUtil.h 2012-06-20 10:17:33.000000000 -0300
-+++ /dev/null 2012-07-24 14:48:18.638572110 -0300
-@@ -1,137 +0,0 @@
--/* $Id: ExtPackUtil.h $ */
--/** @file
-- * VirtualBox Main - Extension Pack Utilities and definitions, VBoxC, VBoxSVC, ++.
-- */
--
--/*
-- * Copyright (C) 2010 Oracle Corporation
-- *
-- * This file is part of VirtualBox Open Source Edition (OSE), as
-- * available from http://www.virtualbox.org. This file is free software;
-- * you can redistribute it and/or modify it under the terms of the GNU
-- * General Public License (GPL) as published by the Free Software
-- * Foundation, in version 2 as it comes in the "COPYING" file of the
-- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-- */
--
--#ifndef ____H_EXTPACKUTIL
--#define ____H_EXTPACKUTIL
--
--#include <iprt/cpp/ministring.h>
--#include <iprt/fs.h>
--#include <iprt/vfs.h>
--
--
--/** @name VBOX_EXTPACK_DESCRIPTION_NAME
-- * The name of the description file in an extension pack. */
--#define VBOX_EXTPACK_DESCRIPTION_NAME "ExtPack.xml"
--/** @name VBOX_EXTPACK_DESCRIPTION_NAME
-- * The name of the manifest file in an extension pack. */
--#define VBOX_EXTPACK_MANIFEST_NAME "ExtPack.manifest"
--/** @name VBOX_EXTPACK_SIGNATURE_NAME
-- * The name of the signature file in an extension pack. */
--#define VBOX_EXTPACK_SIGNATURE_NAME "ExtPack.signature"
--/** @name VBOX_EXTPACK_LICENSE_NAME_PREFIX
-- * The name prefix of a license file in an extension pack. There can be
-- * several license files in a pack, the variations being on locale, language
-- * and format (HTML, RTF, plain text). All extension packages shall include
-- * a */
--#define VBOX_EXTPACK_LICENSE_NAME_PREFIX "ExtPack-license"
--/** @name VBOX_EXTPACK_SUFFIX
-- * The suffix of a extension pack tarball. */
--#define VBOX_EXTPACK_SUFFIX ".vbox-extpack"
--
--/** The minimum length (strlen) of a extension pack name. */
--#define VBOX_EXTPACK_NAME_MIN_LEN 3
--/** The max length (strlen) of a extension pack name. */
--#define VBOX_EXTPACK_NAME_MAX_LEN 64
--
--/** The architecture-dependent application data subdirectory where the
-- * extension packs are installed. Relative to RTPathAppPrivateArch. */
--#define VBOX_EXTPACK_INSTALL_DIR "ExtensionPacks"
--/** The architecture-independent application data subdirectory where the
-- * certificates are installed. Relative to RTPathAppPrivateNoArch. */
--#define VBOX_EXTPACK_CERT_DIR "ExtPackCertificates"
--
--/** The maximum entry name length.
-- * Play short and safe. */
--#define VBOX_EXTPACK_MAX_MEMBER_NAME_LENGTH 128
--
--
--/**
-- * Plug-in descriptor.
-- */
--typedef struct VBOXEXTPACKPLUGINDESC
--{
-- /** The name. */
-- RTCString strName;
-- /** The module name. */
-- RTCString strModule;
-- /** The description. */
-- RTCString strDescription;
-- /** The frontend or component which it plugs into. */
-- RTCString strFrontend;
--} VBOXEXTPACKPLUGINDESC;
--/** Pointer to a plug-in descriptor. */
--typedef VBOXEXTPACKPLUGINDESC *PVBOXEXTPACKPLUGINDESC;
--
--/**
-- * Extension pack descriptor
-- *
-- * This is the internal representation of the ExtPack.xml.
-- */
--typedef struct VBOXEXTPACKDESC
--{
-- /** The name. */
-- RTCString strName;
-- /** The description. */
-- RTCString strDescription;
-- /** The version string. */
-- RTCString strVersion;
-- /** The edition string. */
-- RTCString strEdition;
-- /** The internal revision number. */
-- uint32_t uRevision;
-- /** The name of the main module. */
-- RTCString strMainModule;
-- /** The name of the VRDE module, empty if none. */
-- RTCString strVrdeModule;
-- /** The number of plug-in descriptors. */
-- uint32_t cPlugIns;
-- /** Pointer to an array of plug-in descriptors. */
-- PVBOXEXTPACKPLUGINDESC paPlugIns;
-- /** Whether to show the license prior to installation. */
-- bool fShowLicense;
--} VBOXEXTPACKDESC;
--
--/** Pointer to a extension pack descriptor. */
--typedef VBOXEXTPACKDESC *PVBOXEXTPACKDESC;
--/** Pointer to a const extension pack descriptor. */
--typedef VBOXEXTPACKDESC const *PCVBOXEXTPACKDESC;
--
--
--void VBoxExtPackInitDesc(PVBOXEXTPACKDESC a_pExtPackDesc);
--RTCString *VBoxExtPackLoadDesc(const char *a_pszDir, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo);
--RTCString *VBoxExtPackLoadDescFromVfsFile(RTVFSFILE hVfsFile, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo);
--RTCString *VBoxExtPackExtractNameFromTarballPath(const char *pszTarball);
--void VBoxExtPackFreeDesc(PVBOXEXTPACKDESC a_pExtPackDesc);
--bool VBoxExtPackIsValidName(const char *pszName);
--bool VBoxExtPackIsValidMangledName(const char *pszMangledName, size_t cchMax = RTSTR_MAX);
--RTCString *VBoxExtPackMangleName(const char *pszName);
--RTCString *VBoxExtPackUnmangleName(const char *pszMangledName, size_t cbMax);
--int VBoxExtPackCalcDir(char *pszExtPackDir, size_t cbExtPackDir, const char *pszParentDir, const char *pszName);
--bool VBoxExtPackIsValidVersionString(const char *pszVersion);
--bool VBoxExtPackIsValidEditionString(const char *pszEdition);
--bool VBoxExtPackIsValidModuleString(const char *pszModule);
--
--int VBoxExtPackValidateMember(const char *pszName, RTVFSOBJTYPE enmType, RTVFSOBJ hVfsObj, char *pszError, size_t cbError);
--int VBoxExtPackOpenTarFss(RTFILE hTarballFile, char *pszError, size_t cbError, PRTVFSFSSTREAM phTarFss, PRTMANIFEST phFileManifest);
--int VBoxExtPackValidateTarball(RTFILE hTarballFile, const char *pszExtPackName,
-- const char *pszTarball, const char *pszTarballDigest,
-- char *pszError, size_t cbError,
-- PRTMANIFEST phValidManifest, PRTVFSFILE phXmlFile, RTCString *pStrDigest);
--
--
--#endif
--
---- VirtualBox-4.1.18.orig/src/VBox/Main/src-all/ExtPackManagerImpl.cpp 2012-06-20 10:17:34.000000000 -0300
-+++ /dev/null 2012-07-24 14:48:18.638572110 -0300
-@@ -1,3126 +0,0 @@
--/* $Id: ExtPackManagerImpl.cpp $ */
--/** @file
-- * VirtualBox Main - interface for Extension Packs, VBoxSVC & VBoxC.
-- */
--
--/*
-- * Copyright (C) 2010 Oracle Corporation
-- *
-- * This file is part of VirtualBox Open Source Edition (OSE), as
-- * available from http://www.virtualbox.org. This file is free software;
-- * you can redistribute it and/or modify it under the terms of the GNU
-- * General Public License (GPL) as published by the Free Software
-- * Foundation, in version 2 as it comes in the "COPYING" file of the
-- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-- */
--
--
--/*******************************************************************************
--* Header Files *
--*******************************************************************************/
--#include "ExtPackManagerImpl.h"
--#include "ExtPackUtil.h"
--
--#include <iprt/buildconfig.h>
--#include <iprt/ctype.h>
--#include <iprt/dir.h>
--#include <iprt/env.h>
--#include <iprt/file.h>
--#include <iprt/ldr.h>
--#include <iprt/manifest.h>
--#include <iprt/param.h>
--#include <iprt/path.h>
--#include <iprt/pipe.h>
--#include <iprt/process.h>
--#include <iprt/string.h>
--
--#include <VBox/com/array.h>
--#include <VBox/com/ErrorInfo.h>
--#include <VBox/err.h>
--#include <VBox/log.h>
--#include <VBox/sup.h>
--#include <VBox/version.h>
--#include "AutoCaller.h"
--#include "Global.h"
--#include "ProgressImpl.h"
--#include "SystemPropertiesImpl.h"
--#include "VirtualBoxImpl.h"
--
--
--/*******************************************************************************
--* Defined Constants And Macros *
--*******************************************************************************/
--/** @name VBOX_EXTPACK_HELPER_NAME
-- * The name of the utility application we employ to install and uninstall the
-- * extension packs. This is a set-uid-to-root binary on unixy platforms, which
-- * is why it has to be a separate application.
-- */
--#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2)
--# define VBOX_EXTPACK_HELPER_NAME "VBoxExtPackHelperApp.exe"
--#else
--# define VBOX_EXTPACK_HELPER_NAME "VBoxExtPackHelperApp"
--#endif
--
--
--/*******************************************************************************
--* Structures and Typedefs *
--*******************************************************************************/
--struct ExtPackBaseData
--{
--public:
-- /** The extension pack descriptor (loaded from the XML, mostly). */
-- VBOXEXTPACKDESC Desc;
-- /** The file system object info of the XML file.
-- * This is for detecting changes and save time in refresh(). */
-- RTFSOBJINFO ObjInfoDesc;
-- /** Whether it's usable or not. */
-- bool fUsable;
-- /** Why it is unusable. */
-- Utf8Str strWhyUnusable;
--};
--
--/**
-- * Private extension pack data.
-- */
--struct ExtPackFile::Data : public ExtPackBaseData
--{
--public:
-- /** The path to the tarball. */
-- Utf8Str strExtPackFile;
-- /** The SHA-256 hash of the file (as string). */
-- Utf8Str strDigest;
-- /** The file handle of the extension pack file. */
-- RTFILE hExtPackFile;
-- /** Our manifest for the tarball. */
-- RTMANIFEST hOurManifest;
-- /** Pointer to the extension pack manager. */
-- ComObjPtr<ExtPackManager> ptrExtPackMgr;
-- /** Pointer to the VirtualBox object so we can create a progress object. */
-- VirtualBox *pVirtualBox;
--
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
--};
--
--/**
-- * Private extension pack data.
-- */
--struct ExtPack::Data : public ExtPackBaseData
--{
--public:
-- /** Where the extension pack is located. */
-- Utf8Str strExtPackPath;
-- /** The file system object info of the extension pack directory.
-- * This is for detecting changes and save time in refresh(). */
-- RTFSOBJINFO ObjInfoExtPack;
-- /** The full path to the main module. */
-- Utf8Str strMainModPath;
-- /** The file system object info of the main module.
-- * This is used to determin whether to bother try reload it. */
-- RTFSOBJINFO ObjInfoMainMod;
-- /** The module handle of the main extension pack module. */
-- RTLDRMOD hMainMod;
--
-- /** The helper callbacks for the extension pack. */
-- VBOXEXTPACKHLP Hlp;
-- /** Pointer back to the extension pack object (for Hlp methods). */
-- ExtPack *pThis;
-- /** The extension pack registration structure. */
-- PCVBOXEXTPACKREG pReg;
-- /** The current context. */
-- VBOXEXTPACKCTX enmContext;
-- /** Set if we've made the pfnVirtualBoxReady or pfnConsoleReady call. */
-- bool fMadeReadyCall;
--
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
--};
--
--/** List of extension packs. */
--typedef std::list< ComObjPtr<ExtPack> > ExtPackList;
--
--/**
-- * Private extension pack manager data.
-- */
--struct ExtPackManager::Data
--{
-- /** The directory where the extension packs are installed. */
-- Utf8Str strBaseDir;
-- /** The directory where the certificates this installation recognizes are
-- * stored. */
-- Utf8Str strCertificatDirPath;
-- /** The list of installed extension packs. */
-- ExtPackList llInstalledExtPacks;
-- /** Pointer to the VirtualBox object, our parent. */
-- VirtualBox *pVirtualBox;
-- /** The current context. */
-- VBOXEXTPACKCTX enmContext;
--#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_DARWIN)
-- /** File handle for the VBoxVMM libary which we slurp because ExtPacks depend on it. */
-- RTLDRMOD hVBoxVMM;
--#endif
--
-- RTMEMEF_NEW_AND_DELETE_OPERATORS();
--};
--
--/**
-- * Extension pack installation job.
-- */
--typedef struct EXTPACKINSTALLJOB
--{
-- /** Smart pointer to the extension pack file. */
-- ComPtr<ExtPackFile> ptrExtPackFile;
-- /** The replace argument. */
-- bool fReplace;
-- /** The display info argument. */
-- Utf8Str strDisplayInfo;
-- /** Smart pointer to the extension manager. */
-- ComPtr<ExtPackManager> ptrExtPackMgr;
-- /** Smart pointer to the progress object for this job. */
-- ComObjPtr<Progress> ptrProgress;
--} EXTPACKINSTALLJOB;
--/** Pointer to an extension pack installation job. */
--typedef EXTPACKINSTALLJOB *PEXTPACKINSTALLJOB;
--
--/**
-- * Extension pack uninstallation job.
-- */
--typedef struct EXTPACKUNINSTALLJOB
--{
-- /** Smart pointer to the extension manager. */
-- ComPtr<ExtPackManager> ptrExtPackMgr;
-- /** The name of the extension pack. */
-- Utf8Str strName;
-- /** The replace argument. */
-- bool fForcedRemoval;
-- /** The display info argument. */
-- Utf8Str strDisplayInfo;
-- /** Smart pointer to the progress object for this job. */
-- ComObjPtr<Progress> ptrProgress;
--} EXTPACKUNINSTALLJOB;
--/** Pointer to an extension pack uninstallation job. */
--typedef EXTPACKUNINSTALLJOB *PEXTPACKUNINSTALLJOB;
--
--
--DEFINE_EMPTY_CTOR_DTOR(ExtPackFile)
--
--/**
-- * Called by ComObjPtr::createObject when creating the object.
-- *
-- * Just initialize the basic object state, do the rest in initWithDir().
-- *
-- * @returns S_OK.
-- */
--HRESULT ExtPackFile::FinalConstruct()
--{
-- m = NULL;
-- return BaseFinalConstruct();
--}
--
--/**
-- * Initializes the extension pack by reading its file.
-- *
-- * @returns COM status code.
-- * @param a_pszFile The path to the extension pack file.
-- * @param a_pszDigest The SHA-256 digest of the file. Or an empty string.
-- * @param a_pExtPackMgr Pointer to the extension pack manager.
-- * @param a_pVirtualBox Pointer to the VirtualBox object.
-- */
--HRESULT ExtPackFile::initWithFile(const char *a_pszFile, const char *a_pszDigest, ExtPackManager *a_pExtPackMgr, VirtualBox *a_pVirtualBox)
--{
-- AutoInitSpan autoInitSpan(this);
-- AssertReturn(autoInitSpan.isOk(), E_FAIL);
--
-- /*
-- * Allocate + initialize our private data.
-- */
-- m = new ExtPackFile::Data;
-- VBoxExtPackInitDesc(&m->Desc);
-- RT_ZERO(m->ObjInfoDesc);
-- m->fUsable = false;
-- m->strWhyUnusable = tr("ExtPack::init failed");
-- m->strExtPackFile = a_pszFile;
-- m->strDigest = a_pszDigest;
-- m->hExtPackFile = NIL_RTFILE;
-- m->hOurManifest = NIL_RTMANIFEST;
-- m->ptrExtPackMgr = a_pExtPackMgr;
-- m->pVirtualBox = a_pVirtualBox;
--
-- RTCString *pstrTarName = VBoxExtPackExtractNameFromTarballPath(a_pszFile);
-- if (pstrTarName)
-- {
-- m->Desc.strName = *pstrTarName;
-- delete pstrTarName;
-- pstrTarName = NULL;
-- }
--
-- autoInitSpan.setSucceeded();
--
-- /*
-- * Try open the extension pack and check that it is a regular file.
-- */
-- int vrc = RTFileOpen(&m->hExtPackFile, a_pszFile,
-- RTFILE_O_READ | RTFILE_O_DENY_WRITE | RTFILE_O_OPEN);
-- if (RT_FAILURE(vrc))
-- {
-- if (vrc == VERR_FILE_NOT_FOUND || vrc == VERR_PATH_NOT_FOUND)
-- return initFailed(tr("'%s' file not found"), a_pszFile);
-- return initFailed(tr("RTFileOpen('%s',,) failed with %Rrc"), a_pszFile, vrc);
-- }
--
-- RTFSOBJINFO ObjInfo;
-- vrc = RTFileQueryInfo(m->hExtPackFile, &ObjInfo, RTFSOBJATTRADD_UNIX);
-- if (RT_FAILURE(vrc))
-- return initFailed(tr("RTFileQueryInfo failed with %Rrc on '%s'"), vrc, a_pszFile);
-- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode))
-- return initFailed(tr("Not a regular file: %s"), a_pszFile);
--
-- /*
-- * Validate the tarball and extract the XML file.
-- */
-- char szError[8192];
-- RTVFSFILE hXmlFile;
-- vrc = VBoxExtPackValidateTarball(m->hExtPackFile, NULL /*pszExtPackName*/, a_pszFile, a_pszDigest,
-- szError, sizeof(szError), &m->hOurManifest, &hXmlFile, &m->strDigest);
-- if (RT_FAILURE(vrc))
-- return initFailed(tr("%s"), szError);
--
-- /*
-- * Parse the XML.
-- */
-- RTCString strSavedName(m->Desc.strName);
-- RTCString *pStrLoadErr = VBoxExtPackLoadDescFromVfsFile(hXmlFile, &m->Desc, &m->ObjInfoDesc);
-- RTVfsFileRelease(hXmlFile);
-- if (pStrLoadErr != NULL)
-- {
-- m->strWhyUnusable.printf(tr("Failed to the xml file: %s"), pStrLoadErr->c_str());
-- m->Desc.strName = strSavedName;
-- delete pStrLoadErr;
-- return S_OK;
-- }
--
-- /*
-- * Match the tarball name with the name from the XML.
-- */
-- /** @todo drop this restriction after the old install interface is
-- * dropped. */
-- if (!strSavedName.equalsIgnoreCase(m->Desc.strName))
-- return initFailed(tr("Extension pack name mismatch between the downloaded file and the XML inside it (xml='%s' file='%s')"),
-- m->Desc.strName.c_str(), strSavedName.c_str());
--
-- m->fUsable = true;
-- m->strWhyUnusable.setNull();
-- return S_OK;
--}
--
--/**
-- * Protected helper that formats the strWhyUnusable value.
-- *
-- * @returns S_OK
-- * @param a_pszWhyFmt Why it failed, format string.
-- * @param ... The format arguments.
-- */
--HRESULT ExtPackFile::initFailed(const char *a_pszWhyFmt, ...)
--{
-- va_list va;
-- va_start(va, a_pszWhyFmt);
-- m->strWhyUnusable.printfV(a_pszWhyFmt, va);
-- va_end(va);
-- return S_OK;
--}
--
--/**
-- * COM cruft.
-- */
--void ExtPackFile::FinalRelease()
--{
-- uninit();
-- BaseFinalRelease();
--}
--
--/**
-- * Do the actual cleanup.
-- */
--void ExtPackFile::uninit()
--{
-- /* Enclose the state transition Ready->InUninit->NotReady */
-- AutoUninitSpan autoUninitSpan(this);
-- if (!autoUninitSpan.uninitDone() && m != NULL)
-- {
-- VBoxExtPackFreeDesc(&m->Desc);
-- RTFileClose(m->hExtPackFile);
-- m->hExtPackFile = NIL_RTFILE;
-- RTManifestRelease(m->hOurManifest);
-- m->hOurManifest = NIL_RTMANIFEST;
--
-- delete m;
-- m = NULL;
-- }
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(Name)(BSTR *a_pbstrName)
--{
-- CheckComArgOutPointerValid(a_pbstrName);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strName);
-- str.cloneTo(a_pbstrName);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(Description)(BSTR *a_pbstrDescription)
--{
-- CheckComArgOutPointerValid(a_pbstrDescription);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strDescription);
-- str.cloneTo(a_pbstrDescription);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(Version)(BSTR *a_pbstrVersion)
--{
-- CheckComArgOutPointerValid(a_pbstrVersion);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- /* HACK ALERT: This is for easing backporting to 4.1. The edition stuff
-- will be changed into a separate */
-- if (m->Desc.strEdition.isEmpty())
-- {
-- Bstr str(m->Desc.strVersion);
-- str.cloneTo(a_pbstrVersion);
-- }
-- else
-- {
-- RTCString strHack(m->Desc.strVersion);
-- strHack.append('-');
-- strHack.append(m->Desc.strEdition);
--
-- Bstr str(strHack);
-- str.cloneTo(a_pbstrVersion);
-- }
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(Revision)(ULONG *a_puRevision)
--{
-- CheckComArgOutPointerValid(a_puRevision);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_puRevision = m->Desc.uRevision;
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(VRDEModule)(BSTR *a_pbstrVrdeModule)
--{
-- CheckComArgOutPointerValid(a_pbstrVrdeModule);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strVrdeModule);
-- str.cloneTo(a_pbstrVrdeModule);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(PlugIns)(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns))
--{
-- /** @todo implement plug-ins. */
--#ifdef VBOX_WITH_XPCOM
-- NOREF(a_paPlugIns);
-- NOREF(a_paPlugInsSize);
--#endif
-- ReturnComNotImplemented();
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(Usable)(BOOL *a_pfUsable)
--{
-- CheckComArgOutPointerValid(a_pfUsable);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_pfUsable = m->fUsable;
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(WhyUnusable)(BSTR *a_pbstrWhy)
--{
-- CheckComArgOutPointerValid(a_pbstrWhy);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- m->strWhyUnusable.cloneTo(a_pbstrWhy);
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(ShowLicense)(BOOL *a_pfShowIt)
--{
-- CheckComArgOutPointerValid(a_pfShowIt);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_pfShowIt = m->Desc.fShowLicense;
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(License)(BSTR *a_pbstrHtmlLicense)
--{
-- Bstr bstrHtml("html");
-- return QueryLicense(Bstr::Empty.raw(), Bstr::Empty.raw(), bstrHtml.raw(), a_pbstrHtmlLicense);
--}
--
--/* Same as ExtPack::QueryLicense, should really explore the subject of base classes here... */
--STDMETHODIMP ExtPackFile::QueryLicense(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, IN_BSTR a_bstrFormat,
-- BSTR *a_pbstrLicense)
--{
-- /*
-- * Validate input.
-- */
-- CheckComArgOutPointerValid(a_pbstrLicense);
-- CheckComArgNotNull(a_bstrPreferredLocale);
-- CheckComArgNotNull(a_bstrPreferredLanguage);
-- CheckComArgNotNull(a_bstrFormat);
--
-- Utf8Str strPreferredLocale(a_bstrPreferredLocale);
-- if (strPreferredLocale.length() != 2 && strPreferredLocale.length() != 0)
-- return setError(E_FAIL, tr("The preferred locale is a two character string or empty."));
--
-- Utf8Str strPreferredLanguage(a_bstrPreferredLanguage);
-- if (strPreferredLanguage.length() != 2 && strPreferredLanguage.length() != 0)
-- return setError(E_FAIL, tr("The preferred lanuage is a two character string or empty."));
--
-- Utf8Str strFormat(a_bstrFormat);
-- if ( !strFormat.equals("html")
-- && !strFormat.equals("rtf")
-- && !strFormat.equals("txt"))
-- return setError(E_FAIL, tr("The license format can only have the values 'html', 'rtf' and 'txt'."));
--
-- /*
-- * Combine the options to form a file name before locking down anything.
-- */
-- char szName[sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX "-de_DE.html") + 2];
-- if (strPreferredLocale.isNotEmpty() && strPreferredLanguage.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s_%s.%s",
-- strPreferredLocale.c_str(), strPreferredLanguage.c_str(), strFormat.c_str());
-- else if (strPreferredLocale.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s.%s", strPreferredLocale.c_str(), strFormat.c_str());
-- else if (strPreferredLanguage.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-_%s.%s", strPreferredLocale.c_str(), strFormat.c_str());
-- else
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX ".%s", strFormat.c_str());
--
-- /*
-- * Lock the extension pack. We need a write lock here as there must not be
-- * concurrent accesses to the tar file handle.
-- */
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- /*
-- * Do not permit this query on a pack that isn't considered usable (could
-- * be marked so because of bad license files).
-- */
-- if (!m->fUsable)
-- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str());
-- else
-- {
-- /*
-- * Look it up in the manifest before scanning the tarball for it
-- */
-- if (RTManifestEntryExists(m->hOurManifest, szName))
-- {
-- RTVFSFSSTREAM hTarFss;
-- char szError[8192];
-- int vrc = VBoxExtPackOpenTarFss(m->hExtPackFile, szError, sizeof(szError), &hTarFss, NULL);
-- if (RT_SUCCESS(vrc))
-- {
-- for (;;)
-- {
-- /* Get the first/next. */
-- char *pszName;
-- RTVFSOBJ hVfsObj;
-- RTVFSOBJTYPE enmType;
-- vrc = RTVfsFsStrmNext(hTarFss, &pszName, &enmType, &hVfsObj);
-- if (RT_FAILURE(vrc))
-- {
-- if (vrc != VERR_EOF)
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTVfsFsStrmNext failed: %Rrc"), vrc);
-- else
-- hrc = setError(E_UNEXPECTED, tr("'%s' was found in the manifest but not in the tarball"), szName);
-- break;
-- }
--
-- /* Is this it? */
-- const char *pszAdjName = pszName[0] == '.' && pszName[1] == '/' ? &pszName[2] : pszName;
-- if ( !strcmp(pszAdjName, szName)
-- && ( enmType == RTVFSOBJTYPE_IO_STREAM
-- || enmType == RTVFSOBJTYPE_FILE))
-- {
-- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(hVfsObj);
-- RTVfsObjRelease(hVfsObj);
-- RTStrFree(pszName);
--
-- /* Load the file into memory. */
-- RTFSOBJINFO ObjInfo;
-- vrc = RTVfsIoStrmQueryInfo(hVfsIos, &ObjInfo, RTFSOBJATTRADD_NOTHING);
-- if (RT_SUCCESS(vrc))
-- {
-- size_t cbFile = (size_t)ObjInfo.cbObject;
-- void *pvFile = RTMemAllocZ(cbFile + 1);
-- if (pvFile)
-- {
-- vrc = RTVfsIoStrmRead(hVfsIos, pvFile, cbFile, true /*fBlocking*/, NULL);
-- if (RT_SUCCESS(vrc))
-- {
-- /* try translate it into a string we can return. */
-- Bstr bstrLicense((const char *)pvFile, cbFile);
-- if (bstrLicense.isNotEmpty())
-- {
-- bstrLicense.detachTo(a_pbstrLicense);
-- hrc = S_OK;
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR,
-- tr("The license file '%s' is empty or contains invalid UTF-8 encoding"),
-- szName);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to read '%s': %Rrc"), szName, vrc);
-- RTMemFree(pvFile);
-- }
-- else
-- hrc = setError(E_OUTOFMEMORY, tr("Failed to allocate %zu bytes for '%s'"), cbFile, szName);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTVfsIoStrmQueryInfo on '%s': %Rrc"), szName, vrc);
-- RTVfsIoStrmRelease(hVfsIos);
-- break;
-- }
--
-- /* Release current. */
-- RTVfsObjRelease(hVfsObj);
-- RTStrFree(pszName);
-- }
-- RTVfsFsStrmRelease(hTarFss);
-- }
-- else
-- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("%s"), szError);
-- }
-- else
-- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("The license file '%s' was not found in '%s'"),
-- szName, m->strExtPackFile.c_str());
-- }
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::COMGETTER(FilePath)(BSTR *a_pbstrPath)
--{
-- CheckComArgOutPointerValid(a_pbstrPath);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- m->strExtPackFile.cloneTo(a_pbstrPath);
-- return hrc;
--}
--
--STDMETHODIMP ExtPackFile::Install(BOOL a_fReplace, IN_BSTR a_bstrDisplayInfo, IProgress **a_ppProgress)
--{
-- if (a_ppProgress)
-- *a_ppProgress = NULL;
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- if (m->fUsable)
-- {
-- PEXTPACKINSTALLJOB pJob = NULL;
-- try
-- {
-- pJob = new EXTPACKINSTALLJOB;
-- pJob->ptrExtPackFile = this;
-- pJob->fReplace = a_fReplace != FALSE;
-- pJob->strDisplayInfo = a_bstrDisplayInfo;
-- pJob->ptrExtPackMgr = m->ptrExtPackMgr;
-- hrc = pJob->ptrProgress.createObject();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr bstrDescription = tr("Installing extension pack");
-- hrc = pJob->ptrProgress->init(
--#ifndef VBOX_COM_INPROC
-- m->pVirtualBox,
--#endif
-- static_cast<IExtPackFile *>(this),
-- bstrDescription.raw(),
-- FALSE /*aCancelable*/,
-- NULL /*aId*/);
-- }
-- if (SUCCEEDED(hrc))
-- {
-- ComPtr<Progress> ptrProgress = pJob->ptrProgress;
-- int vrc = RTThreadCreate(NULL /*phThread*/, ExtPackManager::doInstallThreadProc, pJob, 0,
-- RTTHREADTYPE_DEFAULT, 0 /*fFlags*/, "ExtPackInst");
-- if (RT_SUCCESS(vrc))
-- {
-- pJob = NULL; /* the thread deletes it */
-- ptrProgress.queryInterfaceTo(a_ppProgress);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTThreadCreate failed with %Rrc"), vrc);
-- }
-- }
-- catch (std::bad_alloc)
-- {
-- hrc = E_OUTOFMEMORY;
-- }
-- if (pJob)
-- delete pJob;
-- }
-- else
-- hrc = setError(E_FAIL, "%s", m->strWhyUnusable.c_str());
-- }
-- return hrc;
--}
--
--
--
--
--
--DEFINE_EMPTY_CTOR_DTOR(ExtPack)
--
--/**
-- * Called by ComObjPtr::createObject when creating the object.
-- *
-- * Just initialize the basic object state, do the rest in initWithDir().
-- *
-- * @returns S_OK.
-- */
--HRESULT ExtPack::FinalConstruct()
--{
-- m = NULL;
-- return S_OK;
--}
--
--/**
-- * Initializes the extension pack by reading its file.
-- *
-- * @returns COM status code.
-- * @param a_enmContext The context we're in.
-- * @param a_pszName The name of the extension pack. This is also the
-- * name of the subdirector under @a a_pszParentDir
-- * where the extension pack is installed.
-- * @param a_pszDir The extension pack directory name.
-- */
--HRESULT ExtPack::initWithDir(VBOXEXTPACKCTX a_enmContext, const char *a_pszName, const char *a_pszDir)
--{
-- AutoInitSpan autoInitSpan(this);
-- AssertReturn(autoInitSpan.isOk(), E_FAIL);
--
-- static const VBOXEXTPACKHLP s_HlpTmpl =
-- {
-- /* u32Version = */ VBOXEXTPACKHLP_VERSION,
-- /* uVBoxFullVersion = */ VBOX_FULL_VERSION,
-- /* uVBoxVersionRevision = */ 0,
-- /* u32Padding = */ 0,
-- /* pszVBoxVersion = */ "",
-- /* pfnFindModule = */ ExtPack::hlpFindModule,
-- /* pfnGetFilePath = */ ExtPack::hlpGetFilePath,
-- /* pfnGetContext = */ ExtPack::hlpGetContext,
-- /* pfnReserved1 = */ ExtPack::hlpReservedN,
-- /* pfnReserved2 = */ ExtPack::hlpReservedN,
-- /* pfnReserved3 = */ ExtPack::hlpReservedN,
-- /* pfnReserved4 = */ ExtPack::hlpReservedN,
-- /* pfnReserved5 = */ ExtPack::hlpReservedN,
-- /* pfnReserved6 = */ ExtPack::hlpReservedN,
-- /* pfnReserved7 = */ ExtPack::hlpReservedN,
-- /* pfnReserved8 = */ ExtPack::hlpReservedN,
-- /* pfnReserved9 = */ ExtPack::hlpReservedN,
-- /* u32EndMarker = */ VBOXEXTPACKHLP_VERSION
-- };
--
-- /*
-- * Allocate + initialize our private data.
-- */
-- m = new Data;
-- VBoxExtPackInitDesc(&m->Desc);
-- m->Desc.strName = a_pszName;
-- RT_ZERO(m->ObjInfoDesc);
-- m->fUsable = false;
-- m->strWhyUnusable = tr("ExtPack::init failed");
-- m->strExtPackPath = a_pszDir;
-- RT_ZERO(m->ObjInfoExtPack);
-- m->strMainModPath.setNull();
-- RT_ZERO(m->ObjInfoMainMod);
-- m->hMainMod = NIL_RTLDRMOD;
-- m->Hlp = s_HlpTmpl;
-- m->Hlp.pszVBoxVersion = RTBldCfgVersion();
-- m->Hlp.uVBoxInternalRevision = RTBldCfgRevision();
-- m->pThis = this;
-- m->pReg = NULL;
-- m->enmContext = a_enmContext;
-- m->fMadeReadyCall = false;
--
-- /*
-- * Probe the extension pack (this code is shared with refresh()).
-- */
-- probeAndLoad();
--
-- autoInitSpan.setSucceeded();
-- return S_OK;
--}
--
--/**
-- * COM cruft.
-- */
--void ExtPack::FinalRelease()
--{
-- uninit();
--}
--
--/**
-- * Do the actual cleanup.
-- */
--void ExtPack::uninit()
--{
-- /* Enclose the state transition Ready->InUninit->NotReady */
-- AutoUninitSpan autoUninitSpan(this);
-- if (!autoUninitSpan.uninitDone() && m != NULL)
-- {
-- if (m->hMainMod != NIL_RTLDRMOD)
-- {
-- AssertPtr(m->pReg);
-- if (m->pReg->pfnUnload != NULL)
-- m->pReg->pfnUnload(m->pReg);
--
-- RTLdrClose(m->hMainMod);
-- m->hMainMod = NIL_RTLDRMOD;
-- m->pReg = NULL;
-- }
--
-- VBoxExtPackFreeDesc(&m->Desc);
--
-- delete m;
-- m = NULL;
-- }
--}
--
--
--/**
-- * Calls the installed hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pVirtualBox The VirtualBox interface.
-- * @param a_pLock The write lock held by the caller.
-- * @param pErrInfo Where to return error information.
-- */
--bool ExtPack::callInstalledHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock, PRTERRINFO pErrInfo)
--{
-- if ( m != NULL
-- && m->hMainMod != NIL_RTLDRMOD)
-- {
-- if (m->pReg->pfnInstalled)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- pErrInfo->rc = m->pReg->pfnInstalled(m->pReg, a_pVirtualBox, pErrInfo);
-- a_pLock->acquire();
-- return true;
-- }
-- }
-- pErrInfo->rc = VINF_SUCCESS;
-- return false;
--}
--
--/**
-- * Calls the uninstall hook and closes the module.
-- *
-- * @returns S_OK or COM error status with error information.
-- * @param a_pVirtualBox The VirtualBox interface.
-- * @param a_fForcedRemoval When set, we'll ignore complaints from the
-- * uninstall hook.
-- * @remarks The caller holds the manager's write lock, not released.
-- */
--HRESULT ExtPack::callUninstallHookAndClose(IVirtualBox *a_pVirtualBox, bool a_fForcedRemoval)
--{
-- HRESULT hrc = S_OK;
--
-- if ( m != NULL
-- && m->hMainMod != NIL_RTLDRMOD)
-- {
-- if (m->pReg->pfnUninstall && !a_fForcedRemoval)
-- {
-- int vrc = m->pReg->pfnUninstall(m->pReg, a_pVirtualBox);
-- if (RT_FAILURE(vrc))
-- {
-- LogRel(("ExtPack pfnUninstall returned %Rrc for %s\n", vrc, m->Desc.strName.c_str()));
-- if (!a_fForcedRemoval)
-- hrc = setError(E_FAIL, tr("pfnUninstall returned %Rrc"), vrc);
-- }
-- }
-- if (SUCCEEDED(hrc))
-- {
-- RTLdrClose(m->hMainMod);
-- m->hMainMod = NIL_RTLDRMOD;
-- m->pReg = NULL;
-- }
-- }
--
-- return hrc;
--}
--
--/**
-- * Calls the pfnVirtualBoxReady hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pVirtualBox The VirtualBox interface.
-- * @param a_pLock The write lock held by the caller.
-- */
--bool ExtPack::callVirtualBoxReadyHook(IVirtualBox *a_pVirtualBox, AutoWriteLock *a_pLock)
--{
-- if ( m != NULL
-- && m->fUsable
-- && !m->fMadeReadyCall)
-- {
-- m->fMadeReadyCall = true;
-- if (m->pReg->pfnVirtualBoxReady)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- m->pReg->pfnVirtualBoxReady(m->pReg, a_pVirtualBox);
-- a_pLock->acquire();
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Calls the pfnConsoleReady hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pConsole The Console interface.
-- * @param a_pLock The write lock held by the caller.
-- */
--bool ExtPack::callConsoleReadyHook(IConsole *a_pConsole, AutoWriteLock *a_pLock)
--{
-- if ( m != NULL
-- && m->fUsable
-- && !m->fMadeReadyCall)
-- {
-- m->fMadeReadyCall = true;
-- if (m->pReg->pfnConsoleReady)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- m->pReg->pfnConsoleReady(m->pReg, a_pConsole);
-- a_pLock->acquire();
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Calls the pfnVMCreate hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pVirtualBox The VirtualBox interface.
-- * @param a_pMachine The machine interface of the new VM.
-- * @param a_pLock The write lock held by the caller.
-- */
--bool ExtPack::callVmCreatedHook(IVirtualBox *a_pVirtualBox, IMachine *a_pMachine, AutoWriteLock *a_pLock)
--{
-- if ( m != NULL
-- && m->fUsable)
-- {
-- if (m->pReg->pfnVMCreated)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- m->pReg->pfnVMCreated(m->pReg, a_pVirtualBox, a_pMachine);
-- a_pLock->acquire();
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Calls the pfnVMConfigureVMM hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pConsole The console interface.
-- * @param a_pVM The VM handle.
-- * @param a_pLock The write lock held by the caller.
-- * @param a_pvrc Where to return the status code of the
-- * callback. This is always set. LogRel is
-- * called on if a failure status is returned.
-- */
--bool ExtPack::callVmConfigureVmmHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc)
--{
-- *a_pvrc = VINF_SUCCESS;
-- if ( m != NULL
-- && m->fUsable)
-- {
-- if (m->pReg->pfnVMConfigureVMM)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- int vrc = m->pReg->pfnVMConfigureVMM(m->pReg, a_pConsole, a_pVM);
-- *a_pvrc = vrc;
-- a_pLock->acquire();
-- if (RT_FAILURE(vrc))
-- LogRel(("ExtPack pfnVMConfigureVMM returned %Rrc for %s\n", vrc, m->Desc.strName.c_str()));
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Calls the pfnVMPowerOn hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pConsole The console interface.
-- * @param a_pVM The VM handle.
-- * @param a_pLock The write lock held by the caller.
-- * @param a_pvrc Where to return the status code of the
-- * callback. This is always set. LogRel is
-- * called on if a failure status is returned.
-- */
--bool ExtPack::callVmPowerOnHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock, int *a_pvrc)
--{
-- *a_pvrc = VINF_SUCCESS;
-- if ( m != NULL
-- && m->fUsable)
-- {
-- if (m->pReg->pfnVMPowerOn)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- int vrc = m->pReg->pfnVMPowerOn(m->pReg, a_pConsole, a_pVM);
-- *a_pvrc = vrc;
-- a_pLock->acquire();
-- if (RT_FAILURE(vrc))
-- LogRel(("ExtPack pfnVMPowerOn returned %Rrc for %s\n", vrc, m->Desc.strName.c_str()));
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Calls the pfnVMPowerOff hook.
-- *
-- * @returns true if we left the lock, false if we didn't.
-- * @param a_pConsole The console interface.
-- * @param a_pVM The VM handle.
-- * @param a_pLock The write lock held by the caller.
-- */
--bool ExtPack::callVmPowerOffHook(IConsole *a_pConsole, PVM a_pVM, AutoWriteLock *a_pLock)
--{
-- if ( m != NULL
-- && m->fUsable)
-- {
-- if (m->pReg->pfnVMPowerOff)
-- {
-- ComPtr<ExtPack> ptrSelfRef = this;
-- a_pLock->release();
-- m->pReg->pfnVMPowerOff(m->pReg, a_pConsole, a_pVM);
-- a_pLock->acquire();
-- return true;
-- }
-- }
-- return false;
--}
--
--/**
-- * Check if the extension pack is usable and has an VRDE module.
-- *
-- * @returns S_OK or COM error status with error information.
-- *
-- * @remarks Caller holds the extension manager lock for reading, no locking
-- * necessary.
-- */
--HRESULT ExtPack::checkVrde(void)
--{
-- HRESULT hrc;
-- if ( m != NULL
-- && m->fUsable)
-- {
-- if (m->Desc.strVrdeModule.isNotEmpty())
-- hrc = S_OK;
-- else
-- hrc = setError(E_FAIL, tr("The extension pack '%s' does not include a VRDE module"), m->Desc.strName.c_str());
-- }
-- else
-- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str());
-- return hrc;
--}
--
--/**
-- * Same as checkVrde(), except that it also resolves the path to the module.
-- *
-- * @returns S_OK or COM error status with error information.
-- * @param a_pstrVrdeLibrary Where to return the path on success.
-- *
-- * @remarks Caller holds the extension manager lock for reading, no locking
-- * necessary.
-- */
--HRESULT ExtPack::getVrdpLibraryName(Utf8Str *a_pstrVrdeLibrary)
--{
-- HRESULT hrc = checkVrde();
-- if (SUCCEEDED(hrc))
-- {
-- if (findModule(m->Desc.strVrdeModule.c_str(), NULL, VBOXEXTPACKMODKIND_R3,
-- a_pstrVrdeLibrary, NULL /*a_pfNative*/, NULL /*a_pObjInfo*/))
-- hrc = S_OK;
-- else
-- hrc = setError(E_FAIL, tr("Failed to locate the VRDE module '%s' in extension pack '%s'"),
-- m->Desc.strVrdeModule.c_str(), m->Desc.strName.c_str());
-- }
-- return hrc;
--}
--
--/**
-- * Check if this extension pack wishes to be the default VRDE provider.
-- *
-- * @returns @c true if it wants to and it is in a usable state, otherwise
-- * @c false.
-- *
-- * @remarks Caller holds the extension manager lock for reading, no locking
-- * necessary.
-- */
--bool ExtPack::wantsToBeDefaultVrde(void) const
--{
-- return m->fUsable
-- && m->Desc.strVrdeModule.isNotEmpty();
--}
--
--/**
-- * Refreshes the extension pack state.
-- *
-- * This is called by the manager so that the on disk changes are picked up.
-- *
-- * @returns S_OK or COM error status with error information.
-- *
-- * @param a_pfCanDelete Optional can-delete-this-object output indicator.
-- *
-- * @remarks Caller holds the extension manager lock for writing.
-- * @remarks Only called in VBoxSVC.
-- */
--HRESULT ExtPack::refresh(bool *a_pfCanDelete)
--{
-- if (a_pfCanDelete)
-- *a_pfCanDelete = false;
--
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS); /* for the COMGETTERs */
--
-- /*
-- * Has the module been deleted?
-- */
-- RTFSOBJINFO ObjInfoExtPack;
-- int vrc = RTPathQueryInfoEx(m->strExtPackPath.c_str(), &ObjInfoExtPack, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK);
-- if ( RT_FAILURE(vrc)
-- || !RTFS_IS_DIRECTORY(ObjInfoExtPack.Attr.fMode))
-- {
-- if (a_pfCanDelete)
-- *a_pfCanDelete = true;
-- return S_OK;
-- }
--
-- /*
-- * We've got a directory, so try query file system object info for the
-- * files we are interested in as well.
-- */
-- RTFSOBJINFO ObjInfoDesc;
-- char szDescFilePath[RTPATH_MAX];
-- vrc = RTPathJoin(szDescFilePath, sizeof(szDescFilePath), m->strExtPackPath.c_str(), VBOX_EXTPACK_DESCRIPTION_NAME);
-- if (RT_SUCCESS(vrc))
-- vrc = RTPathQueryInfoEx(szDescFilePath, &ObjInfoDesc, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK);
-- if (RT_FAILURE(vrc))
-- RT_ZERO(ObjInfoDesc);
--
-- RTFSOBJINFO ObjInfoMainMod;
-- if (m->strMainModPath.isNotEmpty())
-- vrc = RTPathQueryInfoEx(m->strMainModPath.c_str(), &ObjInfoMainMod, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK);
-- if (m->strMainModPath.isEmpty() || RT_FAILURE(vrc))
-- RT_ZERO(ObjInfoMainMod);
--
-- /*
-- * If we have a usable module already, just verify that things haven't
-- * changed since we loaded it.
-- */
-- if (m->fUsable)
-- {
-- if (m->hMainMod == NIL_RTLDRMOD)
-- probeAndLoad();
-- else if ( !objinfoIsEqual(&ObjInfoDesc, &m->ObjInfoDesc)
-- || !objinfoIsEqual(&ObjInfoMainMod, &m->ObjInfoMainMod)
-- || !objinfoIsEqual(&ObjInfoExtPack, &m->ObjInfoExtPack) )
-- {
-- /** @todo not important, so it can wait. */
-- }
-- }
-- /*
-- * Ok, it is currently not usable. If anything has changed since last time
-- * reprobe the extension pack.
-- */
-- else if ( !objinfoIsEqual(&ObjInfoDesc, &m->ObjInfoDesc)
-- || !objinfoIsEqual(&ObjInfoMainMod, &m->ObjInfoMainMod)
-- || !objinfoIsEqual(&ObjInfoExtPack, &m->ObjInfoExtPack) )
-- probeAndLoad();
--
-- return S_OK;
--}
--
--/**
-- * Probes the extension pack, loading the main dll and calling its registration
-- * entry point.
-- *
-- * This updates the state accordingly, the strWhyUnusable and fUnusable members
-- * being the most important ones.
-- */
--void ExtPack::probeAndLoad(void)
--{
-- m->fUsable = false;
-- m->fMadeReadyCall = false;
--
-- /*
-- * Query the file system info for the extension pack directory. This and
-- * all other file system info we save is for the benefit of refresh().
-- */
-- int vrc = RTPathQueryInfoEx(m->strExtPackPath.c_str(), &m->ObjInfoExtPack, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK);
-- if (RT_FAILURE(vrc))
-- {
-- m->strWhyUnusable.printf(tr("RTPathQueryInfoEx on '%s' failed: %Rrc"), m->strExtPackPath.c_str(), vrc);
-- return;
-- }
-- if (!RTFS_IS_DIRECTORY(m->ObjInfoExtPack.Attr.fMode))
-- {
-- if (RTFS_IS_SYMLINK(m->ObjInfoExtPack.Attr.fMode))
-- m->strWhyUnusable.printf(tr("'%s' is a symbolic link, this is not allowed"), m->strExtPackPath.c_str(), vrc);
-- else if (RTFS_IS_FILE(m->ObjInfoExtPack.Attr.fMode))
-- m->strWhyUnusable.printf(tr("'%s' is a symbolic file, not a directory"), m->strExtPackPath.c_str(), vrc);
-- else
-- m->strWhyUnusable.printf(tr("'%s' is not a directory (fMode=%#x)"), m->strExtPackPath.c_str(), m->ObjInfoExtPack.Attr.fMode);
-- return;
-- }
--
-- RTERRINFOSTATIC ErrInfo;
-- RTErrInfoInitStatic(&ErrInfo);
-- vrc = SUPR3HardenedVerifyDir(m->strExtPackPath.c_str(), true /*fRecursive*/, true /*fCheckFiles*/, &ErrInfo.Core);
-- if (RT_FAILURE(vrc))
-- {
-- m->strWhyUnusable.printf(tr("%s (rc=%Rrc)"), ErrInfo.Core.pszMsg, vrc);
-- return;
-- }
--
-- /*
-- * Read the description file.
-- */
-- RTCString strSavedName(m->Desc.strName);
-- RTCString *pStrLoadErr = VBoxExtPackLoadDesc(m->strExtPackPath.c_str(), &m->Desc, &m->ObjInfoDesc);
-- if (pStrLoadErr != NULL)
-- {
-- m->strWhyUnusable.printf(tr("Failed to load '%s/%s': %s"),
-- m->strExtPackPath.c_str(), VBOX_EXTPACK_DESCRIPTION_NAME, pStrLoadErr->c_str());
-- m->Desc.strName = strSavedName;
-- delete pStrLoadErr;
-- return;
-- }
--
-- /*
-- * Make sure the XML name and directory matches.
-- */
-- if (!m->Desc.strName.equalsIgnoreCase(strSavedName))
-- {
-- m->strWhyUnusable.printf(tr("The description name ('%s') and directory name ('%s') does not match"),
-- m->Desc.strName.c_str(), strSavedName.c_str());
-- m->Desc.strName = strSavedName;
-- return;
-- }
--
-- /*
-- * Load the main DLL and call the predefined entry point.
-- */
-- bool fIsNative;
-- if (!findModule(m->Desc.strMainModule.c_str(), NULL /* default extension */, VBOXEXTPACKMODKIND_R3,
-- &m->strMainModPath, &fIsNative, &m->ObjInfoMainMod))
-- {
-- m->strWhyUnusable.printf(tr("Failed to locate the main module ('%s')"), m->Desc.strMainModule.c_str());
-- return;
-- }
--
-- vrc = SUPR3HardenedVerifyPlugIn(m->strMainModPath.c_str(), &ErrInfo.Core);
-- if (RT_FAILURE(vrc))
-- {
-- m->strWhyUnusable.printf(tr("%s"), ErrInfo.Core.pszMsg);
-- return;
-- }
--
-- if (fIsNative)
-- {
-- vrc = SUPR3HardenedLdrLoadPlugIn(m->strMainModPath.c_str(), &m->hMainMod, &ErrInfo.Core);
-- if (RT_FAILURE(vrc))
-- {
-- m->hMainMod = NIL_RTLDRMOD;
-- m->strWhyUnusable.printf(tr("Failed to load the main module ('%s'): %Rrc - %s"),
-- m->strMainModPath.c_str(), vrc, ErrInfo.Core.pszMsg);
-- return;
-- }
-- }
-- else
-- {
-- m->strWhyUnusable.printf(tr("Only native main modules are currently supported"));
-- return;
-- }
--
-- /*
-- * Resolve the predefined entry point.
-- */
-- PFNVBOXEXTPACKREGISTER pfnRegistration;
-- vrc = RTLdrGetSymbol(m->hMainMod, VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, (void **)&pfnRegistration);
-- if (RT_SUCCESS(vrc))
-- {
-- RTErrInfoClear(&ErrInfo.Core);
-- vrc = pfnRegistration(&m->Hlp, &m->pReg, &ErrInfo.Core);
-- if ( RT_SUCCESS(vrc)
-- && !RTErrInfoIsSet(&ErrInfo.Core)
-- && VALID_PTR(m->pReg))
-- {
-- if ( VBOXEXTPACK_IS_MAJOR_VER_EQUAL(m->pReg->u32Version, VBOXEXTPACKREG_VERSION)
-- && m->pReg->u32EndMarker == m->pReg->u32Version)
-- {
-- if ( (!m->pReg->pfnInstalled || RT_VALID_PTR(m->pReg->pfnInstalled))
-- && (!m->pReg->pfnUninstall || RT_VALID_PTR(m->pReg->pfnUninstall))
-- && (!m->pReg->pfnVirtualBoxReady || RT_VALID_PTR(m->pReg->pfnVirtualBoxReady))
-- && (!m->pReg->pfnConsoleReady || RT_VALID_PTR(m->pReg->pfnConsoleReady))
-- && (!m->pReg->pfnUnload || RT_VALID_PTR(m->pReg->pfnUnload))
-- && (!m->pReg->pfnVMCreated || RT_VALID_PTR(m->pReg->pfnVMCreated))
-- && (!m->pReg->pfnVMConfigureVMM || RT_VALID_PTR(m->pReg->pfnVMConfigureVMM))
-- && (!m->pReg->pfnVMPowerOn || RT_VALID_PTR(m->pReg->pfnVMPowerOn))
-- && (!m->pReg->pfnVMPowerOff || RT_VALID_PTR(m->pReg->pfnVMPowerOff))
-- && (!m->pReg->pfnQueryObject || RT_VALID_PTR(m->pReg->pfnQueryObject))
-- )
-- {
-- /*
-- * We're good!
-- */
-- m->fUsable = true;
-- m->strWhyUnusable.setNull();
-- return;
-- }
--
-- m->strWhyUnusable = tr("The registration structure contains on or more invalid function pointers");
-- }
-- else
-- m->strWhyUnusable.printf(tr("Unsupported registration structure version %u.%u"),
-- RT_HIWORD(m->pReg->u32Version), RT_LOWORD(m->pReg->u32Version));
-- }
-- else
-- m->strWhyUnusable.printf(tr("%s returned %Rrc, pReg=%p ErrInfo='%s'"),
-- VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, vrc, m->pReg, ErrInfo.Core.pszMsg);
-- m->pReg = NULL;
-- }
-- else
-- m->strWhyUnusable.printf(tr("Failed to resolve exported symbol '%s' in the main module: %Rrc"),
-- VBOX_EXTPACK_MAIN_MOD_ENTRY_POINT, vrc);
--
-- RTLdrClose(m->hMainMod);
-- m->hMainMod = NIL_RTLDRMOD;
--}
--
--/**
-- * Finds a module.
-- *
-- * @returns true if found, false if not.
-- * @param a_pszName The module base name (no extension).
-- * @param a_pszExt The extension. If NULL we use default
-- * extensions.
-- * @param a_enmKind The kind of module to locate.
-- * @param a_pStrFound Where to return the path to the module we've
-- * found.
-- * @param a_pfNative Where to return whether this is a native module
-- * or an agnostic one. Optional.
-- * @param a_pObjInfo Where to return the file system object info for
-- * the module. Optional.
-- */
--bool ExtPack::findModule(const char *a_pszName, const char *a_pszExt, VBOXEXTPACKMODKIND a_enmKind,
-- Utf8Str *a_pStrFound, bool *a_pfNative, PRTFSOBJINFO a_pObjInfo) const
--{
-- /*
-- * Try the native path first.
-- */
-- char szPath[RTPATH_MAX];
-- int vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), RTBldCfgTargetDotArch());
-- AssertLogRelRCReturn(vrc, false);
-- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName);
-- AssertLogRelRCReturn(vrc, false);
-- if (!a_pszExt)
-- {
-- const char *pszDefExt;
-- switch (a_enmKind)
-- {
-- case VBOXEXTPACKMODKIND_RC: pszDefExt = ".rc"; break;
-- case VBOXEXTPACKMODKIND_R0: pszDefExt = ".r0"; break;
-- case VBOXEXTPACKMODKIND_R3: pszDefExt = RTLdrGetSuff(); break;
-- default:
-- AssertFailedReturn(false);
-- }
-- vrc = RTStrCat(szPath, sizeof(szPath), pszDefExt);
-- AssertLogRelRCReturn(vrc, false);
-- }
--
-- RTFSOBJINFO ObjInfo;
-- if (!a_pObjInfo)
-- a_pObjInfo = &ObjInfo;
-- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX);
-- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode))
-- {
-- if (a_pfNative)
-- *a_pfNative = true;
-- *a_pStrFound = szPath;
-- return true;
-- }
--
-- /*
-- * Try the platform agnostic modules.
-- */
-- /* gcc.x86/module.rel */
-- char szSubDir[32];
-- RTStrPrintf(szSubDir, sizeof(szSubDir), "%s.%s", RTBldCfgCompiler(), RTBldCfgTargetArch());
-- vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), szSubDir);
-- AssertLogRelRCReturn(vrc, false);
-- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName);
-- AssertLogRelRCReturn(vrc, false);
-- if (!a_pszExt)
-- {
-- vrc = RTStrCat(szPath, sizeof(szPath), ".rel");
-- AssertLogRelRCReturn(vrc, false);
-- }
-- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX);
-- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode))
-- {
-- if (a_pfNative)
-- *a_pfNative = false;
-- *a_pStrFound = szPath;
-- return true;
-- }
--
-- /* x86/module.rel */
-- vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), RTBldCfgTargetArch());
-- AssertLogRelRCReturn(vrc, false);
-- vrc = RTPathAppend(szPath, sizeof(szPath), a_pszName);
-- AssertLogRelRCReturn(vrc, false);
-- if (!a_pszExt)
-- {
-- vrc = RTStrCat(szPath, sizeof(szPath), ".rel");
-- AssertLogRelRCReturn(vrc, false);
-- }
-- vrc = RTPathQueryInfo(szPath, a_pObjInfo, RTFSOBJATTRADD_UNIX);
-- if (RT_SUCCESS(vrc) && RTFS_IS_FILE(a_pObjInfo->Attr.fMode))
-- {
-- if (a_pfNative)
-- *a_pfNative = false;
-- *a_pStrFound = szPath;
-- return true;
-- }
--
-- return false;
--}
--
--/**
-- * Compares two file system object info structures.
-- *
-- * @returns true if equal, false if not.
-- * @param pObjInfo1 The first.
-- * @param pObjInfo2 The second.
-- * @todo IPRT should do this, really.
-- */
--/* static */ bool ExtPack::objinfoIsEqual(PCRTFSOBJINFO pObjInfo1, PCRTFSOBJINFO pObjInfo2)
--{
-- if (!RTTimeSpecIsEqual(&pObjInfo1->ModificationTime, &pObjInfo2->ModificationTime))
-- return false;
-- if (!RTTimeSpecIsEqual(&pObjInfo1->ChangeTime, &pObjInfo2->ChangeTime))
-- return false;
-- if (!RTTimeSpecIsEqual(&pObjInfo1->BirthTime, &pObjInfo2->BirthTime))
-- return false;
-- if (pObjInfo1->cbObject != pObjInfo2->cbObject)
-- return false;
-- if (pObjInfo1->Attr.fMode != pObjInfo2->Attr.fMode)
-- return false;
-- if (pObjInfo1->Attr.enmAdditional == pObjInfo2->Attr.enmAdditional)
-- {
-- switch (pObjInfo1->Attr.enmAdditional)
-- {
-- case RTFSOBJATTRADD_UNIX:
-- if (pObjInfo1->Attr.u.Unix.uid != pObjInfo2->Attr.u.Unix.uid)
-- return false;
-- if (pObjInfo1->Attr.u.Unix.gid != pObjInfo2->Attr.u.Unix.gid)
-- return false;
-- if (pObjInfo1->Attr.u.Unix.INodeIdDevice != pObjInfo2->Attr.u.Unix.INodeIdDevice)
-- return false;
-- if (pObjInfo1->Attr.u.Unix.INodeId != pObjInfo2->Attr.u.Unix.INodeId)
-- return false;
-- if (pObjInfo1->Attr.u.Unix.GenerationId != pObjInfo2->Attr.u.Unix.GenerationId)
-- return false;
-- break;
-- default:
-- break;
-- }
-- }
-- return true;
--}
--
--
--/**
-- * @interface_method_impl{VBOXEXTPACKHLP,pfnFindModule}
-- */
--/*static*/ DECLCALLBACK(int)
--ExtPack::hlpFindModule(PCVBOXEXTPACKHLP pHlp, const char *pszName, const char *pszExt, VBOXEXTPACKMODKIND enmKind,
-- char *pszFound, size_t cbFound, bool *pfNative)
--{
-- /*
-- * Validate the input and get our bearings.
-- */
-- AssertPtrReturn(pszName, VERR_INVALID_POINTER);
-- AssertPtrNullReturn(pszExt, VERR_INVALID_POINTER);
-- AssertPtrReturn(pszFound, VERR_INVALID_POINTER);
-- AssertPtrNullReturn(pfNative, VERR_INVALID_POINTER);
-- AssertReturn(enmKind > VBOXEXTPACKMODKIND_INVALID && enmKind < VBOXEXTPACKMODKIND_END, VERR_INVALID_PARAMETER);
--
-- AssertPtrReturn(pHlp, VERR_INVALID_POINTER);
-- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER);
-- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp);
-- AssertPtrReturn(m, VERR_INVALID_POINTER);
-- ExtPack *pThis = m->pThis;
-- AssertPtrReturn(pThis, VERR_INVALID_POINTER);
--
-- /*
-- * This is just a wrapper around findModule.
-- */
-- Utf8Str strFound;
-- if (pThis->findModule(pszName, pszExt, enmKind, &strFound, pfNative, NULL))
-- return RTStrCopy(pszFound, cbFound, strFound.c_str());
-- return VERR_FILE_NOT_FOUND;
--}
--
--/*static*/ DECLCALLBACK(int)
--ExtPack::hlpGetFilePath(PCVBOXEXTPACKHLP pHlp, const char *pszFilename, char *pszPath, size_t cbPath)
--{
-- /*
-- * Validate the input and get our bearings.
-- */
-- AssertPtrReturn(pszFilename, VERR_INVALID_POINTER);
-- AssertPtrReturn(pszPath, VERR_INVALID_POINTER);
-- AssertReturn(cbPath > 0, VERR_BUFFER_OVERFLOW);
--
-- AssertPtrReturn(pHlp, VERR_INVALID_POINTER);
-- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER);
-- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp);
-- AssertPtrReturn(m, VERR_INVALID_POINTER);
-- ExtPack *pThis = m->pThis;
-- AssertPtrReturn(pThis, VERR_INVALID_POINTER);
--
-- /*
-- * This is a simple RTPathJoin, no checking if things exists or anything.
-- */
-- int vrc = RTPathJoin(pszPath, cbPath, pThis->m->strExtPackPath.c_str(), pszFilename);
-- if (RT_FAILURE(vrc))
-- RT_BZERO(pszPath, cbPath);
-- return vrc;
--}
--
--/*static*/ DECLCALLBACK(VBOXEXTPACKCTX)
--ExtPack::hlpGetContext(PCVBOXEXTPACKHLP pHlp)
--{
-- /*
-- * Validate the input and get our bearings.
-- */
-- AssertPtrReturn(pHlp, VBOXEXTPACKCTX_INVALID);
-- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VBOXEXTPACKCTX_INVALID);
-- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp);
-- AssertPtrReturn(m, VBOXEXTPACKCTX_INVALID);
-- ExtPack *pThis = m->pThis;
-- AssertPtrReturn(pThis, VBOXEXTPACKCTX_INVALID);
--
-- return pThis->m->enmContext;
--}
--
--/*static*/ DECLCALLBACK(int)
--ExtPack::hlpReservedN(PCVBOXEXTPACKHLP pHlp)
--{
-- /*
-- * Validate the input and get our bearings.
-- */
-- AssertPtrReturn(pHlp, VERR_INVALID_POINTER);
-- AssertReturn(pHlp->u32Version == VBOXEXTPACKHLP_VERSION, VERR_INVALID_POINTER);
-- ExtPack::Data *m = RT_FROM_CPP_MEMBER(pHlp, Data, Hlp);
-- AssertPtrReturn(m, VERR_INVALID_POINTER);
-- ExtPack *pThis = m->pThis;
-- AssertPtrReturn(pThis, VERR_INVALID_POINTER);
--
-- return VERR_NOT_IMPLEMENTED;
--}
--
--
--
--
--
--STDMETHODIMP ExtPack::COMGETTER(Name)(BSTR *a_pbstrName)
--{
-- CheckComArgOutPointerValid(a_pbstrName);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strName);
-- str.cloneTo(a_pbstrName);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(Description)(BSTR *a_pbstrDescription)
--{
-- CheckComArgOutPointerValid(a_pbstrDescription);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strDescription);
-- str.cloneTo(a_pbstrDescription);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(Version)(BSTR *a_pbstrVersion)
--{
-- CheckComArgOutPointerValid(a_pbstrVersion);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- /* HACK ALERT: This is for easing backporting to 4.1. The edition stuff
-- will be changed into a separate */
-- if (m->Desc.strEdition.isEmpty())
-- {
-- Bstr str(m->Desc.strVersion);
-- str.cloneTo(a_pbstrVersion);
-- }
-- else
-- {
-- RTCString strHack(m->Desc.strVersion);
-- strHack.append('-');
-- strHack.append(m->Desc.strEdition);
--
-- Bstr str(strHack);
-- str.cloneTo(a_pbstrVersion);
-- }
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(Revision)(ULONG *a_puRevision)
--{
-- CheckComArgOutPointerValid(a_puRevision);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_puRevision = m->Desc.uRevision;
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(VRDEModule)(BSTR *a_pbstrVrdeModule)
--{
-- CheckComArgOutPointerValid(a_pbstrVrdeModule);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr str(m->Desc.strVrdeModule);
-- str.cloneTo(a_pbstrVrdeModule);
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(PlugIns)(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns))
--{
-- /** @todo implement plug-ins. */
--#ifdef VBOX_WITH_XPCOM
-- NOREF(a_paPlugIns);
-- NOREF(a_paPlugInsSize);
--#endif
-- ReturnComNotImplemented();
--}
--
--STDMETHODIMP ExtPack::COMGETTER(Usable)(BOOL *a_pfUsable)
--{
-- CheckComArgOutPointerValid(a_pfUsable);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_pfUsable = m->fUsable;
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(WhyUnusable)(BSTR *a_pbstrWhy)
--{
-- CheckComArgOutPointerValid(a_pbstrWhy);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- m->strWhyUnusable.cloneTo(a_pbstrWhy);
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(ShowLicense)(BOOL *a_pfShowIt)
--{
-- CheckComArgOutPointerValid(a_pfShowIt);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- *a_pfShowIt = m->Desc.fShowLicense;
-- return hrc;
--}
--
--STDMETHODIMP ExtPack::COMGETTER(License)(BSTR *a_pbstrHtmlLicense)
--{
-- Bstr bstrHtml("html");
-- return QueryLicense(Bstr::Empty.raw(), Bstr::Empty.raw(), bstrHtml.raw(), a_pbstrHtmlLicense);
--}
--
--STDMETHODIMP ExtPack::QueryLicense(IN_BSTR a_bstrPreferredLocale, IN_BSTR a_bstrPreferredLanguage, IN_BSTR a_bstrFormat,
-- BSTR *a_pbstrLicense)
--{
-- /*
-- * Validate input.
-- */
-- CheckComArgOutPointerValid(a_pbstrLicense);
-- CheckComArgNotNull(a_bstrPreferredLocale);
-- CheckComArgNotNull(a_bstrPreferredLanguage);
-- CheckComArgNotNull(a_bstrFormat);
--
-- Utf8Str strPreferredLocale(a_bstrPreferredLocale);
-- if (strPreferredLocale.length() != 2 && strPreferredLocale.length() != 0)
-- return setError(E_FAIL, tr("The preferred locale is a two character string or empty."));
--
-- Utf8Str strPreferredLanguage(a_bstrPreferredLanguage);
-- if (strPreferredLanguage.length() != 2 && strPreferredLanguage.length() != 0)
-- return setError(E_FAIL, tr("The preferred lanuage is a two character string or empty."));
--
-- Utf8Str strFormat(a_bstrFormat);
-- if ( !strFormat.equals("html")
-- && !strFormat.equals("rtf")
-- && !strFormat.equals("txt"))
-- return setError(E_FAIL, tr("The license format can only have the values 'html', 'rtf' and 'txt'."));
--
-- /*
-- * Combine the options to form a file name before locking down anything.
-- */
-- char szName[sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX "-de_DE.html") + 2];
-- if (strPreferredLocale.isNotEmpty() && strPreferredLanguage.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s_%s.%s",
-- strPreferredLocale.c_str(), strPreferredLanguage.c_str(), strFormat.c_str());
-- else if (strPreferredLocale.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-%s.%s", strPreferredLocale.c_str(), strFormat.c_str());
-- else if (strPreferredLanguage.isNotEmpty())
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX "-_%s.%s", strPreferredLocale.c_str(), strFormat.c_str());
-- else
-- RTStrPrintf(szName, sizeof(szName), VBOX_EXTPACK_LICENSE_NAME_PREFIX ".%s", strFormat.c_str());
--
-- /*
-- * Effectuate the query.
-- */
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS); /* paranoia */
--
-- if (!m->fUsable)
-- hrc = setError(E_FAIL, tr("%s"), m->strWhyUnusable.c_str());
-- else
-- {
-- char szPath[RTPATH_MAX];
-- int vrc = RTPathJoin(szPath, sizeof(szPath), m->strExtPackPath.c_str(), szName);
-- if (RT_SUCCESS(vrc))
-- {
-- void *pvFile;
-- size_t cbFile;
-- vrc = RTFileReadAllEx(szPath, 0, RTFOFF_MAX, RTFILE_RDALL_O_DENY_READ, &pvFile, &cbFile);
-- if (RT_SUCCESS(vrc))
-- {
-- Bstr bstrLicense((const char *)pvFile, cbFile);
-- if (bstrLicense.isNotEmpty())
-- {
-- bstrLicense.detachTo(a_pbstrLicense);
-- hrc = S_OK;
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("The license file '%s' is empty or contains invalid UTF-8 encoding"),
-- szPath);
-- RTFileReadAllFree(pvFile, cbFile);
-- }
-- else if (vrc == VERR_FILE_NOT_FOUND || vrc == VERR_PATH_NOT_FOUND)
-- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("The license file '%s' was not found in extension pack '%s'"),
-- szName, m->Desc.strName.c_str());
-- else
-- hrc = setError(VBOX_E_FILE_ERROR, tr("Failed to open the license file '%s': %Rrc"), szPath, vrc);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTPathJoin failed: %Rrc"), vrc);
-- }
-- }
-- return hrc;
--}
--
--
--STDMETHODIMP ExtPack::QueryObject(IN_BSTR a_bstrObjectId, IUnknown **a_ppUnknown)
--{
-- com::Guid ObjectId;
-- CheckComArgGuid(a_bstrObjectId, ObjectId);
-- CheckComArgOutPointerValid(a_ppUnknown);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- if ( m->pReg
-- && m->pReg->pfnQueryObject)
-- {
-- void *pvUnknown = m->pReg->pfnQueryObject(m->pReg, ObjectId.raw());
-- if (pvUnknown)
-- *a_ppUnknown = (IUnknown *)pvUnknown;
-- else
-- hrc = E_NOINTERFACE;
-- }
-- else
-- hrc = E_NOINTERFACE;
-- }
-- return hrc;
--}
--
--
--
--
--DEFINE_EMPTY_CTOR_DTOR(ExtPackManager)
--
--/**
-- * Called by ComObjPtr::createObject when creating the object.
-- *
-- * Just initialize the basic object state, do the rest in init().
-- *
-- * @returns S_OK.
-- */
--HRESULT ExtPackManager::FinalConstruct()
--{
-- m = NULL;
-- return S_OK;
--}
--
--/**
-- * Initializes the extension pack manager.
-- *
-- * @returns COM status code.
-- * @param a_pVirtualBox Pointer to the VirtualBox object.
-- * @param a_enmContext The context we're in.
-- */
--HRESULT ExtPackManager::initExtPackManager(VirtualBox *a_pVirtualBox, VBOXEXTPACKCTX a_enmContext)
--{
-- AutoInitSpan autoInitSpan(this);
-- AssertReturn(autoInitSpan.isOk(), E_FAIL);
--
-- /*
-- * Figure some stuff out before creating the instance data.
-- */
-- char szBaseDir[RTPATH_MAX];
-- int rc = RTPathAppPrivateArchTop(szBaseDir, sizeof(szBaseDir));
-- AssertLogRelRCReturn(rc, E_FAIL);
-- rc = RTPathAppend(szBaseDir, sizeof(szBaseDir), VBOX_EXTPACK_INSTALL_DIR);
-- AssertLogRelRCReturn(rc, E_FAIL);
--
-- char szCertificatDir[RTPATH_MAX];
-- rc = RTPathAppPrivateNoArch(szCertificatDir, sizeof(szCertificatDir));
-- AssertLogRelRCReturn(rc, E_FAIL);
-- rc = RTPathAppend(szCertificatDir, sizeof(szCertificatDir), VBOX_EXTPACK_CERT_DIR);
-- AssertLogRelRCReturn(rc, E_FAIL);
--
-- /*
-- * Allocate and initialize the instance data.
-- */
-- m = new Data;
-- m->strBaseDir = szBaseDir;
-- m->strCertificatDirPath = szCertificatDir;
-- m->pVirtualBox = a_pVirtualBox;
-- m->enmContext = a_enmContext;
--
-- /*
-- * Slurp in VBoxVMM which is used by VBoxPuelMain.
-- */
--#if !defined(RT_OS_WINDOWS) && !defined(RT_OS_DARWIN)
-- if (a_enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON)
-- {
-- int vrc = SUPR3HardenedLdrLoadAppPriv("VBoxVMM", &m->hVBoxVMM, RTLDRLOAD_FLAGS_GLOBAL, NULL);
-- if (RT_FAILURE(vrc))
-- m->hVBoxVMM = NIL_RTLDRMOD;
-- /* cleanup in ::uninit()? */
-- }
--#endif
--
-- /*
-- * Go looking for extensions. The RTDirOpen may fail if nothing has been
-- * installed yet, or if root is paranoid and has revoked our access to them.
-- *
-- * We ASSUME that there are no files, directories or stuff in the directory
-- * that exceed the max name length in RTDIRENTRYEX.
-- */
-- HRESULT hrc = S_OK;
-- PRTDIR pDir;
-- int vrc = RTDirOpen(&pDir, szBaseDir);
-- if (RT_SUCCESS(vrc))
-- {
-- for (;;)
-- {
-- RTDIRENTRYEX Entry;
-- vrc = RTDirReadEx(pDir, &Entry, NULL /*pcbDirEntry*/, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK);
-- if (RT_FAILURE(vrc))
-- {
-- AssertLogRelMsg(vrc == VERR_NO_MORE_FILES, ("%Rrc\n", vrc));
-- break;
-- }
-- if ( RTFS_IS_DIRECTORY(Entry.Info.Attr.fMode)
-- && strcmp(Entry.szName, ".") != 0
-- && strcmp(Entry.szName, "..") != 0
-- && VBoxExtPackIsValidMangledName(Entry.szName) )
-- {
-- /*
-- * All directories are extensions, the shall be nothing but
-- * extensions in this subdirectory.
-- */
-- char szExtPackDir[RTPATH_MAX];
-- vrc = RTPathJoin(szExtPackDir, sizeof(szExtPackDir), m->strBaseDir.c_str(), Entry.szName);
-- AssertLogRelRC(vrc);
-- if (RT_SUCCESS(vrc))
-- {
-- RTCString *pstrName = VBoxExtPackUnmangleName(Entry.szName, RTSTR_MAX);
-- AssertLogRel(pstrName);
-- if (pstrName)
-- {
-- ComObjPtr<ExtPack> NewExtPack;
-- HRESULT hrc2 = NewExtPack.createObject();
-- if (SUCCEEDED(hrc2))
-- hrc2 = NewExtPack->initWithDir(a_enmContext, pstrName->c_str(), szExtPackDir);
-- delete pstrName;
-- if (SUCCEEDED(hrc2))
-- m->llInstalledExtPacks.push_back(NewExtPack);
-- else if (SUCCEEDED(rc))
-- hrc = hrc2;
-- }
-- else
-- hrc = E_UNEXPECTED;
-- }
-- else
-- hrc = E_UNEXPECTED;
-- }
-- }
-- RTDirClose(pDir);
-- }
-- /* else: ignore, the directory probably does not exist or something. */
--
-- if (SUCCEEDED(hrc))
-- autoInitSpan.setSucceeded();
-- return hrc;
--}
--
--/**
-- * COM cruft.
-- */
--void ExtPackManager::FinalRelease()
--{
-- uninit();
--}
--
--/**
-- * Do the actual cleanup.
-- */
--void ExtPackManager::uninit()
--{
-- /* Enclose the state transition Ready->InUninit->NotReady */
-- AutoUninitSpan autoUninitSpan(this);
-- if (!autoUninitSpan.uninitDone() && m != NULL)
-- {
-- delete m;
-- m = NULL;
-- }
--}
--
--
--STDMETHODIMP ExtPackManager::COMGETTER(InstalledExtPacks)(ComSafeArrayOut(IExtPack *, a_paExtPacks))
--{
-- CheckComArgOutSafeArrayPointerValid(a_paExtPacks);
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- SafeIfaceArray<IExtPack> SaExtPacks(m->llInstalledExtPacks);
-- SaExtPacks.detachTo(ComSafeArrayOutArg(a_paExtPacks));
-- }
--
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::Find(IN_BSTR a_bstrName, IExtPack **a_pExtPack)
--{
-- CheckComArgNotNull(a_bstrName);
-- CheckComArgOutPointerValid(a_pExtPack);
-- Utf8Str strName(a_bstrName);
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- ComPtr<ExtPack> ptrExtPack = findExtPack(strName.c_str());
-- if (!ptrExtPack.isNull())
-- ptrExtPack.queryInterfaceTo(a_pExtPack);
-- else
-- hrc = VBOX_E_OBJECT_NOT_FOUND;
-- }
--
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::OpenExtPackFile(IN_BSTR a_bstrTarballAndDigest, IExtPackFile **a_ppExtPackFile)
--{
-- CheckComArgNotNull(a_bstrTarballAndDigest);
-- CheckComArgOutPointerValid(a_ppExtPackFile);
-- AssertReturn(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON, E_UNEXPECTED);
--
-- /* The API can optionally take a ::SHA-256=<hex-digest> attribute at the
-- end of the file name. This is just a temporary measure for
-- backporting, in 4.2 we'll add another parameter to the method. */
-- Utf8Str strTarball;
-- Utf8Str strDigest;
-- Utf8Str strTarballAndDigest(a_bstrTarballAndDigest);
-- size_t offSha256 = strTarballAndDigest.find("::SHA-256=");
-- if (offSha256 == Utf8Str::npos)
-- strTarball = strTarballAndDigest;
-- else
-- {
-- strTarball = strTarballAndDigest.substr(0, offSha256);
-- strDigest = strTarballAndDigest.substr(offSha256 + sizeof("::SHA-256=") - 1);
-- }
--
-- ComObjPtr<ExtPackFile> NewExtPackFile;
-- HRESULT hrc = NewExtPackFile.createObject();
-- if (SUCCEEDED(hrc))
-- hrc = NewExtPackFile->initWithFile(strTarball.c_str(), strDigest.c_str(), this, m->pVirtualBox);
-- if (SUCCEEDED(hrc))
-- NewExtPackFile.queryInterfaceTo(a_ppExtPackFile);
--
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::Uninstall(IN_BSTR a_bstrName, BOOL a_fForcedRemoval, IN_BSTR a_bstrDisplayInfo,
-- IProgress **a_ppProgress)
--{
-- CheckComArgNotNull(a_bstrName);
-- if (a_ppProgress)
-- *a_ppProgress = NULL;
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- PEXTPACKUNINSTALLJOB pJob = NULL;
-- try
-- {
-- pJob = new EXTPACKUNINSTALLJOB;
-- pJob->ptrExtPackMgr = this;
-- pJob->strName = a_bstrName;
-- pJob->fForcedRemoval = a_fForcedRemoval != FALSE;
-- pJob->strDisplayInfo = a_bstrDisplayInfo;
-- hrc = pJob->ptrProgress.createObject();
-- if (SUCCEEDED(hrc))
-- {
-- Bstr bstrDescription = tr("Uninstalling extension pack");
-- hrc = pJob->ptrProgress->init(
--#ifndef VBOX_COM_INPROC
-- m->pVirtualBox,
--#endif
-- static_cast<IExtPackManager *>(this),
-- bstrDescription.raw(),
-- FALSE /*aCancelable*/,
-- NULL /*aId*/);
-- }
-- if (SUCCEEDED(hrc))
-- {
-- ComPtr<Progress> ptrProgress = pJob->ptrProgress;
-- int vrc = RTThreadCreate(NULL /*phThread*/, ExtPackManager::doUninstallThreadProc, pJob, 0,
-- RTTHREADTYPE_DEFAULT, 0 /*fFlags*/, "ExtPackUninst");
-- if (RT_SUCCESS(vrc))
-- {
-- pJob = NULL; /* the thread deletes it */
-- ptrProgress.queryInterfaceTo(a_ppProgress);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("RTThreadCreate failed with %Rrc"), vrc);
-- }
-- }
-- catch (std::bad_alloc)
-- {
-- hrc = E_OUTOFMEMORY;
-- }
-- if (pJob)
-- delete pJob;
-- }
--
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::Cleanup(void)
--{
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- /*
-- * Run the set-uid-to-root binary that performs the cleanup.
-- *
-- * Take the write lock to prevent conflicts with other calls to this
-- * VBoxSVC instance.
-- */
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- hrc = runSetUidToRootHelper(NULL,
-- "cleanup",
-- "--base-dir", m->strBaseDir.c_str(),
-- (const char *)NULL);
-- }
--
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::QueryAllPlugInsForFrontend(IN_BSTR a_bstrFrontend, ComSafeArrayOut(BSTR, a_pabstrPlugInModules))
--{
-- CheckComArgNotNull(a_bstrFrontend);
-- Utf8Str strName(a_bstrFrontend);
-- CheckComArgOutSafeArrayPointerValid(a_pabstrPlugInModules);
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- com::SafeArray<BSTR> saPaths((size_t)0);
-- /** @todo implement plug-ins */
-- saPaths.detachTo(ComSafeArrayOutArg(a_pabstrPlugInModules));
-- }
-- return hrc;
--}
--
--STDMETHODIMP ExtPackManager::IsExtPackUsable(IN_BSTR a_bstrExtPack, BOOL *aUsable)
--{
-- CheckComArgNotNull(a_bstrExtPack);
-- Utf8Str strExtPack(a_bstrExtPack);
-- *aUsable = isExtPackUsable(strExtPack.c_str());
-- return S_OK;
--}
--
--/**
-- * Finds the success indicator string in the stderr output ofr hte helper app.
-- *
-- * @returns Pointer to the indicator.
-- * @param psz The stderr output string. Can be NULL.
-- * @param cch The size of the string.
-- */
--static char *findSuccessIndicator(char *psz, size_t cch)
--{
-- static const char s_szSuccessInd[] = "rcExit=RTEXITCODE_SUCCESS";
-- Assert(!cch || strlen(psz) == cch);
-- if (cch < sizeof(s_szSuccessInd) - 1)
-- return NULL;
-- char *pszInd = &psz[cch - sizeof(s_szSuccessInd) + 1];
-- if (strcmp(s_szSuccessInd, pszInd))
-- return NULL;
-- return pszInd;
--}
--
--/**
-- * Runs the helper application that does the privileged operations.
-- *
-- * @returns S_OK or a failure status with error information set.
-- * @param a_pstrDisplayInfo Platform specific display info hacks.
-- * @param a_pszCommand The command to execute.
-- * @param ... The argument strings that goes along with the
-- * command. Maximum is about 16. Terminated by a
-- * NULL.
-- */
--HRESULT ExtPackManager::runSetUidToRootHelper(Utf8Str const *a_pstrDisplayInfo, const char *a_pszCommand, ...)
--{
-- /*
-- * Calculate the path to the helper application.
-- */
-- char szExecName[RTPATH_MAX];
-- int vrc = RTPathAppPrivateArch(szExecName, sizeof(szExecName));
-- AssertLogRelRCReturn(vrc, E_UNEXPECTED);
--
-- vrc = RTPathAppend(szExecName, sizeof(szExecName), VBOX_EXTPACK_HELPER_NAME);
-- AssertLogRelRCReturn(vrc, E_UNEXPECTED);
--
-- /*
-- * Convert the variable argument list to a RTProcCreate argument vector.
-- */
-- const char *apszArgs[20];
-- unsigned cArgs = 0;
--
-- LogRel(("ExtPack: Executing '%s'", szExecName));
-- apszArgs[cArgs++] = &szExecName[0];
--
-- if ( a_pstrDisplayInfo
-- && a_pstrDisplayInfo->isNotEmpty())
-- {
-- LogRel((" '--display-info-hack' '%s'", a_pstrDisplayInfo->c_str()));
-- apszArgs[cArgs++] = "--display-info-hack";
-- apszArgs[cArgs++] = a_pstrDisplayInfo->c_str();
-- }
--
-- LogRel(("'%s'", a_pszCommand));
-- apszArgs[cArgs++] = a_pszCommand;
--
-- va_list va;
-- va_start(va, a_pszCommand);
-- const char *pszLastArg;
-- for (;;)
-- {
-- AssertReturn(cArgs < RT_ELEMENTS(apszArgs) - 1, E_UNEXPECTED);
-- pszLastArg = va_arg(va, const char *);
-- if (!pszLastArg)
-- break;
-- LogRel((" '%s'", pszLastArg));
-- apszArgs[cArgs++] = pszLastArg;
-- };
-- va_end(va);
--
-- LogRel(("\n"));
-- apszArgs[cArgs] = NULL;
--
-- /*
-- * Create a PIPE which we attach to stderr so that we can read the error
-- * message on failure and report it back to the caller.
-- */
-- RTPIPE hPipeR;
-- RTHANDLE hStdErrPipe;
-- hStdErrPipe.enmType = RTHANDLETYPE_PIPE;
-- vrc = RTPipeCreate(&hPipeR, &hStdErrPipe.u.hPipe, RTPIPE_C_INHERIT_WRITE);
-- AssertLogRelRCReturn(vrc, E_UNEXPECTED);
--
-- /*
-- * Spawn the process.
-- */
-- HRESULT hrc;
-- RTPROCESS hProcess;
-- vrc = RTProcCreateEx(szExecName,
-- apszArgs,
-- RTENV_DEFAULT,
-- 0 /*fFlags*/,
-- NULL /*phStdIn*/,
-- NULL /*phStdOut*/,
-- &hStdErrPipe,
-- NULL /*pszAsUser*/,
-- NULL /*pszPassword*/,
-- &hProcess);
-- if (RT_SUCCESS(vrc))
-- {
-- vrc = RTPipeClose(hStdErrPipe.u.hPipe);
-- hStdErrPipe.u.hPipe = NIL_RTPIPE;
--
-- /*
-- * Read the pipe output until the process completes.
-- */
-- RTPROCSTATUS ProcStatus = { -42, RTPROCEXITREASON_ABEND };
-- size_t cbStdErrBuf = 0;
-- size_t offStdErrBuf = 0;
-- char *pszStdErrBuf = NULL;
-- do
-- {
-- /*
-- * Service the pipe. Block waiting for output or the pipe breaking
-- * when the process terminates.
-- */
-- if (hPipeR != NIL_RTPIPE)
-- {
-- char achBuf[1024];
-- size_t cbRead;
-- vrc = RTPipeReadBlocking(hPipeR, achBuf, sizeof(achBuf), &cbRead);
-- if (RT_SUCCESS(vrc))
-- {
-- /* grow the buffer? */
-- size_t cbBufReq = offStdErrBuf + cbRead + 1;
-- if ( cbBufReq > cbStdErrBuf
-- && cbBufReq < _256K)
-- {
-- size_t cbNew = RT_ALIGN_Z(cbBufReq, 16); // 1024
-- void *pvNew = RTMemRealloc(pszStdErrBuf, cbNew);
-- if (pvNew)
-- {
-- pszStdErrBuf = (char *)pvNew;
-- cbStdErrBuf = cbNew;
-- }
-- }
--
-- /* append if we've got room. */
-- if (cbBufReq <= cbStdErrBuf)
-- {
-- memcpy(&pszStdErrBuf[offStdErrBuf], achBuf, cbRead);
-- offStdErrBuf = offStdErrBuf + cbRead;
-- pszStdErrBuf[offStdErrBuf] = '\0';
-- }
-- }
-- else
-- {
-- AssertLogRelMsg(vrc == VERR_BROKEN_PIPE, ("%Rrc\n", vrc));
-- RTPipeClose(hPipeR);
-- hPipeR = NIL_RTPIPE;
-- }
-- }
--
-- /*
-- * Service the process. Block if we have no pipe.
-- */
-- if (hProcess != NIL_RTPROCESS)
-- {
-- vrc = RTProcWait(hProcess,
-- hPipeR == NIL_RTPIPE ? RTPROCWAIT_FLAGS_BLOCK : RTPROCWAIT_FLAGS_NOBLOCK,
-- &ProcStatus);
-- if (RT_SUCCESS(vrc))
-- hProcess = NIL_RTPROCESS;
-- else
-- AssertLogRelMsgStmt(vrc == VERR_PROCESS_RUNNING, ("%Rrc\n", vrc), hProcess = NIL_RTPROCESS);
-- }
-- } while ( hPipeR != NIL_RTPIPE
-- || hProcess != NIL_RTPROCESS);
--
-- LogRel(("ExtPack: enmReason=%d iStatus=%d stderr='%s'\n",
-- ProcStatus.enmReason, ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : ""));
--
-- /*
-- * Look for rcExit=RTEXITCODE_SUCCESS at the end of the error output,
-- * cut it as it is only there to attest the success.
-- */
-- if (offStdErrBuf > 0)
-- {
-- RTStrStripR(pszStdErrBuf);
-- offStdErrBuf = strlen(pszStdErrBuf);
-- }
--
-- char *pszSuccessInd = findSuccessIndicator(pszStdErrBuf, offStdErrBuf);
-- if (pszSuccessInd)
-- {
-- *pszSuccessInd = '\0';
-- offStdErrBuf = pszSuccessInd - pszStdErrBuf;
-- }
-- else if ( ProcStatus.enmReason == RTPROCEXITREASON_NORMAL
-- && ProcStatus.iStatus == 0)
-- ProcStatus.iStatus = offStdErrBuf ? 667 : 666;
--
-- /*
-- * Compose the status code and, on failure, error message.
-- */
-- if ( ProcStatus.enmReason == RTPROCEXITREASON_NORMAL
-- && ProcStatus.iStatus == 0)
-- hrc = S_OK;
-- else if (ProcStatus.enmReason == RTPROCEXITREASON_NORMAL)
-- {
-- AssertMsg(ProcStatus.iStatus != 0, ("%s\n", pszStdErrBuf));
-- hrc = setError(E_FAIL, tr("The installer failed with exit code %d: %s"),
-- ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : "");
-- }
-- else if (ProcStatus.enmReason == RTPROCEXITREASON_SIGNAL)
-- hrc = setError(E_UNEXPECTED, tr("The installer was killed by signal #d (stderr: %s)"),
-- ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : "");
-- else if (ProcStatus.enmReason == RTPROCEXITREASON_ABEND)
-- hrc = setError(E_UNEXPECTED, tr("The installer aborted abnormally (stderr: %s)"),
-- offStdErrBuf ? pszStdErrBuf : "");
-- else
-- hrc = setError(E_UNEXPECTED, tr("internal error: enmReason=%d iStatus=%d stderr='%s'"),
-- ProcStatus.enmReason, ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : "");
--
-- RTMemFree(pszStdErrBuf);
-- }
-- else
-- hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to launch the helper application '%s' (%Rrc)"), szExecName, vrc);
--
-- RTPipeClose(hPipeR);
-- RTPipeClose(hStdErrPipe.u.hPipe);
--
-- return hrc;
--}
--
--/**
-- * Finds an installed extension pack.
-- *
-- * @returns Pointer to the extension pack if found, NULL if not. (No reference
-- * counting problem here since the caller must be holding the lock.)
-- * @param a_pszName The name of the extension pack.
-- */
--ExtPack *ExtPackManager::findExtPack(const char *a_pszName)
--{
-- size_t cchName = strlen(a_pszName);
--
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- it++)
-- {
-- ExtPack::Data *pExtPackData = (*it)->m;
-- if ( pExtPackData
-- && pExtPackData->Desc.strName.length() == cchName
-- && pExtPackData->Desc.strName.equalsIgnoreCase(a_pszName))
-- return (*it);
-- }
-- return NULL;
--}
--
--/**
-- * Removes an installed extension pack from the internal list.
-- *
-- * The package is expected to exist!
-- *
-- * @param a_pszName The name of the extension pack.
-- */
--void ExtPackManager::removeExtPack(const char *a_pszName)
--{
-- size_t cchName = strlen(a_pszName);
--
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- it++)
-- {
-- ExtPack::Data *pExtPackData = (*it)->m;
-- if ( pExtPackData
-- && pExtPackData->Desc.strName.length() == cchName
-- && pExtPackData->Desc.strName.equalsIgnoreCase(a_pszName))
-- {
-- m->llInstalledExtPacks.erase(it);
-- return;
-- }
-- }
-- AssertMsgFailed(("%s\n", a_pszName));
--}
--
--/**
-- * Refreshes the specified extension pack.
-- *
-- * This may remove the extension pack from the list, so any non-smart pointers
-- * to the extension pack object may become invalid.
-- *
-- * @returns S_OK and *a_ppExtPack on success, COM status code and error
-- * message on failure. Note that *a_ppExtPack can be NULL.
-- *
-- * @param a_pszName The extension to update..
-- * @param a_fUnusableIsError If @c true, report an unusable extension pack
-- * as an error.
-- * @param a_ppExtPack Where to store the pointer to the extension
-- * pack of it is still around after the refresh.
-- * This is optional.
-- *
-- * @remarks Caller holds the extension manager lock.
-- * @remarks Only called in VBoxSVC.
-- */
--HRESULT ExtPackManager::refreshExtPack(const char *a_pszName, bool a_fUnusableIsError, ExtPack **a_ppExtPack)
--{
-- Assert(m->pVirtualBox != NULL); /* Only called from VBoxSVC. */
--
-- HRESULT hrc;
-- ExtPack *pExtPack = findExtPack(a_pszName);
-- if (pExtPack)
-- {
-- /*
-- * Refresh existing object.
-- */
-- bool fCanDelete;
-- hrc = pExtPack->refresh(&fCanDelete);
-- if (SUCCEEDED(hrc))
-- {
-- if (fCanDelete)
-- {
-- removeExtPack(a_pszName);
-- pExtPack = NULL;
-- }
-- }
-- }
-- else
-- {
-- /*
-- * Do this check here, otherwise VBoxExtPackCalcDir() will fail with a strange
-- * error.
-- */
-- bool fValid = VBoxExtPackIsValidName(a_pszName);
-- if (!fValid)
-- return setError(E_FAIL, "Invalid extension pack name specified");
--
-- /*
-- * Does the dir exist? Make some special effort to deal with case
-- * sensitivie file systems (a_pszName is case insensitive and mangled).
-- */
-- char szDir[RTPATH_MAX];
-- int vrc = VBoxExtPackCalcDir(szDir, sizeof(szDir), m->strBaseDir.c_str(), a_pszName);
-- AssertLogRelRCReturn(vrc, E_FAIL);
--
-- RTDIRENTRYEX Entry;
-- RTFSOBJINFO ObjInfo;
-- vrc = RTPathQueryInfoEx(szDir, &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK);
-- bool fExists = RT_SUCCESS(vrc) && RTFS_IS_DIRECTORY(ObjInfo.Attr.fMode);
-- if (!fExists)
-- {
-- PRTDIR pDir;
-- vrc = RTDirOpen(&pDir, m->strBaseDir.c_str());
-- if (RT_SUCCESS(vrc))
-- {
-- const char *pszMangledName = RTPathFilename(szDir);
-- for (;;)
-- {
-- vrc = RTDirReadEx(pDir, &Entry, NULL /*pcbDirEntry*/, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK);
-- if (RT_FAILURE(vrc))
-- {
-- AssertLogRelMsg(vrc == VERR_NO_MORE_FILES, ("%Rrc\n", vrc));
-- break;
-- }
-- if ( RTFS_IS_DIRECTORY(Entry.Info.Attr.fMode)
-- && !RTStrICmp(Entry.szName, pszMangledName))
-- {
-- /*
-- * The installed extension pack has a uses different case.
-- * Update the name and directory variables.
-- */
-- vrc = RTPathJoin(szDir, sizeof(szDir), m->strBaseDir.c_str(), Entry.szName); /* not really necessary */
-- AssertLogRelRCReturnStmt(vrc, RTDirClose(pDir), E_UNEXPECTED);
-- a_pszName = Entry.szName;
-- fExists = true;
-- break;
-- }
-- }
-- RTDirClose(pDir);
-- }
-- }
-- if (fExists)
-- {
-- /*
-- * We've got something, create a new extension pack object for it.
-- */
-- ComObjPtr<ExtPack> ptrNewExtPack;
-- hrc = ptrNewExtPack.createObject();
-- if (SUCCEEDED(hrc))
-- hrc = ptrNewExtPack->initWithDir(m->enmContext, a_pszName, szDir);
-- if (SUCCEEDED(hrc))
-- {
-- m->llInstalledExtPacks.push_back(ptrNewExtPack);
-- if (ptrNewExtPack->m->fUsable)
-- LogRel(("ExtPackManager: Found extension pack '%s'.\n", a_pszName));
-- else
-- LogRel(("ExtPackManager: Found bad extension pack '%s': %s\n",
-- a_pszName, ptrNewExtPack->m->strWhyUnusable.c_str() ));
-- pExtPack = ptrNewExtPack;
-- }
-- }
-- else
-- hrc = S_OK;
-- }
--
-- /*
-- * Report error if not usable, if that is desired.
-- */
-- if ( SUCCEEDED(hrc)
-- && pExtPack
-- && a_fUnusableIsError
-- && !pExtPack->m->fUsable)
-- hrc = setError(E_FAIL, "%s", pExtPack->m->strWhyUnusable.c_str());
--
-- if (a_ppExtPack)
-- *a_ppExtPack = pExtPack;
-- return hrc;
--}
--
--/**
-- * Thread wrapper around doInstall.
-- *
-- * @returns VINF_SUCCESS (ignored)
-- * @param hThread The thread handle (ignored).
-- * @param pvJob The job structure.
-- */
--/*static*/ DECLCALLBACK(int) ExtPackManager::doInstallThreadProc(RTTHREAD hThread, void *pvJob)
--{
-- PEXTPACKINSTALLJOB pJob = (PEXTPACKINSTALLJOB)pvJob;
-- HRESULT hrc = pJob->ptrExtPackMgr->doInstall(pJob->ptrExtPackFile, pJob->fReplace, &pJob->strDisplayInfo);
-- pJob->ptrProgress->notifyComplete(hrc);
-- delete pJob;
--
-- NOREF(hThread);
-- return VINF_SUCCESS;
--}
--
--/**
-- * Worker for IExtPackFile::Install.
-- *
-- * Called on a worker thread via doInstallThreadProc.
-- *
-- * @returns COM status code.
-- * @param a_pExtPackFile The extension pack file, caller checks that
-- * it's usable.
-- * @param a_fReplace Whether to replace any existing extpack or just
-- * fail.
-- * @param a_pstrDisplayInfo Host specific display information hacks.
-- * @param a_ppProgress Where to return a progress object some day. Can
-- * be NULL.
-- */
--HRESULT ExtPackManager::doInstall(ExtPackFile *a_pExtPackFile, bool a_fReplace, Utf8Str const *a_pstrDisplayInfo)
--{
-- AssertReturn(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON, E_UNEXPECTED);
-- RTCString const * const pStrName = &a_pExtPackFile->m->Desc.strName;
-- RTCString const * const pStrTarball = &a_pExtPackFile->m->strExtPackFile;
-- RTCString const * const pStrTarballDigest = &a_pExtPackFile->m->strDigest;
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- /*
-- * Refresh the data we have on the extension pack as it
-- * may be made stale by direct meddling or some other user.
-- */
-- ExtPack *pExtPack;
-- hrc = refreshExtPack(pStrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack);
-- if (SUCCEEDED(hrc))
-- {
-- if (pExtPack && a_fReplace)
-- hrc = pExtPack->callUninstallHookAndClose(m->pVirtualBox, false /*a_ForcedRemoval*/);
-- else if (pExtPack)
-- hrc = setError(E_FAIL,
-- tr("Extension pack '%s' is already installed."
-- " In case of a reinstallation, please uninstall it first"),
-- pStrName->c_str());
-- }
-- if (SUCCEEDED(hrc))
-- {
-- /*
-- * Run the privileged helper binary that performs the actual
-- * installation. Then create an object for the packet (we do this
-- * even on failure, to be on the safe side).
-- */
-- hrc = runSetUidToRootHelper(a_pstrDisplayInfo,
-- "install",
-- "--base-dir", m->strBaseDir.c_str(),
-- "--cert-dir", m->strCertificatDirPath.c_str(),
-- "--name", pStrName->c_str(),
-- "--tarball", pStrTarball->c_str(),
-- "--sha-256", pStrTarballDigest->c_str(),
-- pExtPack ? "--replace" : (const char *)NULL,
-- (const char *)NULL);
-- if (SUCCEEDED(hrc))
-- {
-- hrc = refreshExtPack(pStrName->c_str(), true /*a_fUnusableIsError*/, &pExtPack);
-- if (SUCCEEDED(hrc) && pExtPack)
-- {
-- RTERRINFOSTATIC ErrInfo;
-- RTErrInfoInitStatic(&ErrInfo);
-- pExtPack->callInstalledHook(m->pVirtualBox, &autoLock, &ErrInfo.Core);
-- if (RT_SUCCESS(ErrInfo.Core.rc))
-- LogRel(("ExtPackManager: Successfully installed extension pack '%s'.\n", pStrName->c_str()));
-- else
-- {
-- LogRel(("ExtPackManager: Installated hook for '%s' failed: %Rrc - %s\n",
-- pStrName->c_str(), ErrInfo.Core.rc, ErrInfo.Core.pszMsg));
--
-- /*
-- * Uninstall the extpack if the error indicates that.
-- */
-- if (ErrInfo.Core.rc == VERR_EXTPACK_UNSUPPORTED_HOST_UNINSTALL)
-- runSetUidToRootHelper(a_pstrDisplayInfo,
-- "uninstall",
-- "--base-dir", m->strBaseDir.c_str(),
-- "--name", pStrName->c_str(),
-- "--forced",
-- (const char *)NULL);
-- hrc = setError(E_FAIL, tr("The installation hook failed: %Rrc - %s"),
-- ErrInfo.Core.rc, ErrInfo.Core.pszMsg);
-- }
-- }
-- else if (SUCCEEDED(hrc))
-- hrc = setError(E_FAIL, tr("Installing extension pack '%s' failed under mysterious circumstances"),
-- pStrName->c_str());
-- }
-- else
-- {
-- ErrorInfoKeeper Eik;
-- refreshExtPack(pStrName->c_str(), false /*a_fUnusableIsError*/, NULL);
-- }
-- }
--
-- /*
-- * Do VirtualBoxReady callbacks now for any freshly installed
-- * extension pack (old ones will not be called).
-- */
-- if (m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON)
-- {
-- autoLock.release();
-- callAllVirtualBoxReadyHooks();
-- }
-- }
--
-- return hrc;
--}
--
--/**
-- * Thread wrapper around doUninstall.
-- *
-- * @returns VINF_SUCCESS (ignored)
-- * @param hThread The thread handle (ignored).
-- * @param pvJob The job structure.
-- */
--/*static*/ DECLCALLBACK(int) ExtPackManager::doUninstallThreadProc(RTTHREAD hThread, void *pvJob)
--{
-- PEXTPACKUNINSTALLJOB pJob = (PEXTPACKUNINSTALLJOB)pvJob;
-- HRESULT hrc = pJob->ptrExtPackMgr->doUninstall(&pJob->strName, pJob->fForcedRemoval, &pJob->strDisplayInfo);
-- pJob->ptrProgress->notifyComplete(hrc);
-- delete pJob;
--
-- NOREF(hThread);
-- return VINF_SUCCESS;
--}
--
--/**
-- * Worker for IExtPackManager::Uninstall.
-- *
-- * Called on a worker thread via doUninstallThreadProc.
-- *
-- * @returns COM status code.
-- * @param a_pstrName The name of the extension pack to uninstall.
-- * @param a_fForcedRemoval Whether to be skip and ignore certain bits of
-- * the extpack feedback. To deal with misbehaving
-- * extension pack hooks.
-- * @param a_pstrDisplayInfo Host specific display information hacks.
-- */
--HRESULT ExtPackManager::doUninstall(Utf8Str const *a_pstrName, bool a_fForcedRemoval, Utf8Str const *a_pstrDisplayInfo)
--{
-- Assert(m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON);
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- /*
-- * Refresh the data we have on the extension pack as it may be made
-- * stale by direct meddling or some other user.
-- */
-- ExtPack *pExtPack;
-- hrc = refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack);
-- if (SUCCEEDED(hrc))
-- {
-- if (!pExtPack)
-- {
-- LogRel(("ExtPackManager: Extension pack '%s' is not installed, so nothing to uninstall.\n", a_pstrName->c_str()));
-- hrc = S_OK; /* nothing to uninstall */
-- }
-- else
-- {
-- /*
-- * Call the uninstall hook and unload the main dll.
-- */
-- hrc = pExtPack->callUninstallHookAndClose(m->pVirtualBox, a_fForcedRemoval);
-- if (SUCCEEDED(hrc))
-- {
-- /*
-- * Run the set-uid-to-root binary that performs the
-- * uninstallation. Then refresh the object.
-- *
-- * This refresh is theorically subject to races, but it's of
-- * the don't-do-that variety.
-- */
-- const char *pszForcedOpt = a_fForcedRemoval ? "--forced" : NULL;
-- hrc = runSetUidToRootHelper(a_pstrDisplayInfo,
-- "uninstall",
-- "--base-dir", m->strBaseDir.c_str(),
-- "--name", a_pstrName->c_str(),
-- pszForcedOpt, /* Last as it may be NULL. */
-- (const char *)NULL);
-- if (SUCCEEDED(hrc))
-- {
-- hrc = refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, &pExtPack);
-- if (SUCCEEDED(hrc))
-- {
-- if (!pExtPack)
-- LogRel(("ExtPackManager: Successfully uninstalled extension pack '%s'.\n", a_pstrName->c_str()));
-- else
-- hrc = setError(E_FAIL,
-- tr("Uninstall extension pack '%s' failed under mysterious circumstances"),
-- a_pstrName->c_str());
-- }
-- }
-- else
-- {
-- ErrorInfoKeeper Eik;
-- refreshExtPack(a_pstrName->c_str(), false /*a_fUnusableIsError*/, NULL);
-- }
-- }
-- }
-- }
--
-- /*
-- * Do VirtualBoxReady callbacks now for any freshly installed
-- * extension pack (old ones will not be called).
-- */
-- if (m->enmContext == VBOXEXTPACKCTX_PER_USER_DAEMON)
-- {
-- autoLock.release();
-- callAllVirtualBoxReadyHooks();
-- }
-- }
--
-- return hrc;
--}
--
--
--/**
-- * Calls the pfnVirtualBoxReady hook for all working extension packs.
-- *
-- * @remarks The caller must not hold any locks.
-- */
--void ExtPackManager::callAllVirtualBoxReadyHooks(void)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return;
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this;
--
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- /* advancing below */)
-- {
-- if ((*it)->callVirtualBoxReadyHook(m->pVirtualBox, &autoLock))
-- it = m->llInstalledExtPacks.begin();
-- else
-- it++;
-- }
--}
--
--/**
-- * Calls the pfnConsoleReady hook for all working extension packs.
-- *
-- * @param a_pConsole The console interface.
-- * @remarks The caller must not hold any locks.
-- */
--void ExtPackManager::callAllConsoleReadyHooks(IConsole *a_pConsole)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return;
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this;
--
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- /* advancing below */)
-- {
-- if ((*it)->callConsoleReadyHook(a_pConsole, &autoLock))
-- it = m->llInstalledExtPacks.begin();
-- else
-- it++;
-- }
--}
--
--/**
-- * Calls the pfnVMCreated hook for all working extension packs.
-- *
-- * @param a_pMachine The machine interface of the new VM.
-- */
--void ExtPackManager::callAllVmCreatedHooks(IMachine *a_pMachine)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return;
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */
-- ExtPackList llExtPacks = m->llInstalledExtPacks;
--
-- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++)
-- (*it)->callVmCreatedHook(m->pVirtualBox, a_pMachine, &autoLock);
--}
--
--/**
-- * Calls the pfnVMConfigureVMM hook for all working extension packs.
-- *
-- * @returns VBox status code. Stops on the first failure, expecting the caller
-- * to signal this to the caller of the CFGM constructor.
-- * @param a_pConsole The console interface for the VM.
-- * @param a_pVM The VM handle.
-- */
--int ExtPackManager::callAllVmConfigureVmmHooks(IConsole *a_pConsole, PVM a_pVM)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return Global::vboxStatusCodeFromCOM(hrc);
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */
-- ExtPackList llExtPacks = m->llInstalledExtPacks;
--
-- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++)
-- {
-- int vrc;
-- (*it)->callVmConfigureVmmHook(a_pConsole, a_pVM, &autoLock, &vrc);
-- if (RT_FAILURE(vrc))
-- return vrc;
-- }
--
-- return VINF_SUCCESS;
--}
--
--/**
-- * Calls the pfnVMPowerOn hook for all working extension packs.
-- *
-- * @returns VBox status code. Stops on the first failure, expecting the caller
-- * to not power on the VM.
-- * @param a_pConsole The console interface for the VM.
-- * @param a_pVM The VM handle.
-- */
--int ExtPackManager::callAllVmPowerOnHooks(IConsole *a_pConsole, PVM a_pVM)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return Global::vboxStatusCodeFromCOM(hrc);
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */
-- ExtPackList llExtPacks = m->llInstalledExtPacks;
--
-- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++)
-- {
-- int vrc;
-- (*it)->callVmPowerOnHook(a_pConsole, a_pVM, &autoLock, &vrc);
-- if (RT_FAILURE(vrc))
-- return vrc;
-- }
--
-- return VINF_SUCCESS;
--}
--
--/**
-- * Calls the pfnVMPowerOff hook for all working extension packs.
-- *
-- * @param a_pConsole The console interface for the VM.
-- * @param a_pVM The VM handle. Can be NULL.
-- */
--void ExtPackManager::callAllVmPowerOffHooks(IConsole *a_pConsole, PVM a_pVM)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return;
-- AutoWriteLock autoLock(this COMMA_LOCKVAL_SRC_POS);
-- ComPtr<ExtPackManager> ptrSelfRef = this; /* paranoia */
-- ExtPackList llExtPacks = m->llInstalledExtPacks;
--
-- for (ExtPackList::iterator it = llExtPacks.begin(); it != llExtPacks.end(); it++)
-- (*it)->callVmPowerOffHook(a_pConsole, a_pVM, &autoLock);
--}
--
--
--/**
-- * Checks that the specified extension pack contains a VRDE module and that it
-- * is shipshape.
-- *
-- * @returns S_OK if ok, appropriate failure status code with details.
-- * @param a_pstrExtPack The name of the extension pack.
-- */
--HRESULT ExtPackManager::checkVrdeExtPack(Utf8Str const *a_pstrExtPack)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- ExtPack *pExtPack = findExtPack(a_pstrExtPack->c_str());
-- if (pExtPack)
-- hrc = pExtPack->checkVrde();
-- else
-- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("No extension pack by the name '%s' was found"), a_pstrExtPack->c_str());
-- }
--
-- return hrc;
--}
--
--/**
-- * Gets the full path to the VRDE library of the specified extension pack.
-- *
-- * This will do extacly the same as checkVrdeExtPack and then resolve the
-- * library path.
-- *
-- * @returns S_OK if a path is returned, COM error status and message return if
-- * not.
-- * @param a_pstrExtPack The extension pack.
-- * @param a_pstrVrdeLibrary Where to return the path.
-- */
--int ExtPackManager::getVrdeLibraryPathForExtPack(Utf8Str const *a_pstrExtPack, Utf8Str *a_pstrVrdeLibrary)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- ExtPack *pExtPack = findExtPack(a_pstrExtPack->c_str());
-- if (pExtPack)
-- hrc = pExtPack->getVrdpLibraryName(a_pstrVrdeLibrary);
-- else
-- hrc = setError(VBOX_E_OBJECT_NOT_FOUND, tr("No extension pack by the name '%s' was found"), a_pstrExtPack->c_str());
-- }
--
-- return hrc;
--}
--
--/**
-- * Gets the name of the default VRDE extension pack.
-- *
-- * @returns S_OK or some COM error status on red tape failure.
-- * @param a_pstrExtPack Where to return the extension pack name. Returns
-- * empty if no extension pack wishes to be the default
-- * VRDP provider.
-- */
--HRESULT ExtPackManager::getDefaultVrdeExtPack(Utf8Str *a_pstrExtPack)
--{
-- a_pstrExtPack->setNull();
--
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (SUCCEEDED(hrc))
-- {
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- it++)
-- {
-- if ((*it)->wantsToBeDefaultVrde())
-- {
-- *a_pstrExtPack = (*it)->m->Desc.strName;
-- break;
-- }
-- }
-- }
-- return hrc;
--}
--
--/**
-- * Checks if an extension pack is (present and) usable.
-- *
-- * @returns @c true if it is, otherwise @c false.
-- * @param a_pszExtPack The name of the extension pack.
-- */
--bool ExtPackManager::isExtPackUsable(const char *a_pszExtPack)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return false;
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- ExtPack *pExtPack = findExtPack(a_pszExtPack);
-- return pExtPack != NULL
-- && pExtPack->m->fUsable;
--}
--
--/**
-- * Dumps all extension packs to the release log.
-- */
--void ExtPackManager::dumpAllToReleaseLog(void)
--{
-- AutoCaller autoCaller(this);
-- HRESULT hrc = autoCaller.rc();
-- if (FAILED(hrc))
-- return;
-- AutoReadLock autoLock(this COMMA_LOCKVAL_SRC_POS);
--
-- LogRel(("Installed Extension Packs:\n"));
-- for (ExtPackList::iterator it = m->llInstalledExtPacks.begin();
-- it != m->llInstalledExtPacks.end();
-- it++)
-- {
-- ExtPack::Data *pExtPackData = (*it)->m;
-- if (pExtPackData)
-- {
-- if (pExtPackData->fUsable)
-- LogRel((" %s (Version: %s r%u%s%s; VRDE Module: %s)\n",
-- pExtPackData->Desc.strName.c_str(),
-- pExtPackData->Desc.strVersion.c_str(),
-- pExtPackData->Desc.uRevision,
-- pExtPackData->Desc.strEdition.isEmpty() ? "" : " ",
-- pExtPackData->Desc.strEdition.c_str(),
-- pExtPackData->Desc.strVrdeModule.c_str() ));
-- else
-- LogRel((" %s (Version: %s r%u%s%s; VRDE Module: %s unusable because of '%s')\n",
-- pExtPackData->Desc.strName.c_str(),
-- pExtPackData->Desc.strVersion.c_str(),
-- pExtPackData->Desc.uRevision,
-- pExtPackData->Desc.strEdition.isEmpty() ? "" : " ",
-- pExtPackData->Desc.strEdition.c_str(),
-- pExtPackData->Desc.strVrdeModule.c_str(),
-- pExtPackData->strWhyUnusable.c_str() ));
-- }
-- else
-- LogRel((" pExtPackData is NULL\n"));
-- }
--
-- if (!m->llInstalledExtPacks.size())
-- LogRel((" None installed!\n"));
--}
--
--/* vi: set tabstop=4 shiftwidth=4 expandtab: */
---- VirtualBox-4.1.18.orig/src/VBox/Main/src-all/ExtPackUtil.cpp 2012-06-20 10:17:34.000000000 -0300
-+++ /dev/null 2012-07-24 14:48:18.638572110 -0300
-@@ -1,1385 +0,0 @@
--/* $Id: ExtPackUtil.cpp $ */
--/** @file
-- * VirtualBox Main - Extension Pack Utilities and definitions, VBoxC, VBoxSVC, ++.
-- */
--
--/*
-- * Copyright (C) 2010-2012 Oracle Corporation
-- *
-- * This file is part of VirtualBox Open Source Edition (OSE), as
-- * available from http://www.virtualbox.org. This file is free software;
-- * you can redistribute it and/or modify it under the terms of the GNU
-- * General Public License (GPL) as published by the Free Software
-- * Foundation, in version 2 as it comes in the "COPYING" file of the
-- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-- */
--
--
--/*******************************************************************************
--* Header Files *
--*******************************************************************************/
--#include "../include/ExtPackUtil.h"
--
--#include <iprt/ctype.h>
--#include <iprt/dir.h>
--#include <iprt/file.h>
--#include <iprt/manifest.h>
--#include <iprt/param.h>
--#include <iprt/path.h>
--#include <iprt/sha.h>
--#include <iprt/string.h>
--#include <iprt/vfs.h>
--#include <iprt/tar.h>
--#include <iprt/zip.h>
--#include <iprt/cpp/xml.h>
--
--#include <VBox/log.h>
--
--
--/**
-- * Worker for VBoxExtPackLoadDesc that loads the plug-in descriptors.
-- *
-- * @returns Same as VBoxExtPackLoadDesc.
-- * @param pVBoxExtPackElm
-- * @param pcPlugIns Where to return the number of plug-ins in the
-- * array.
-- * @param paPlugIns Where to return the plug-in descriptor array.
-- * (RTMemFree it even on failure)
-- */
--static RTCString *
--vboxExtPackLoadPlugInDescs(const xml::ElementNode *pVBoxExtPackElm,
-- uint32_t *pcPlugIns, PVBOXEXTPACKPLUGINDESC *paPlugIns)
--{
-- *pcPlugIns = 0;
-- *paPlugIns = NULL;
--
-- /** @todo plug-ins */
-- NOREF(pVBoxExtPackElm);
--
-- return NULL;
--}
--
--/**
-- * Clears the extension pack descriptor.
-- *
-- * @param a_pExtPackDesc The descriptor to clear.
-- */
--static void vboxExtPackClearDesc(PVBOXEXTPACKDESC a_pExtPackDesc)
--{
-- a_pExtPackDesc->strName.setNull();
-- a_pExtPackDesc->strDescription.setNull();
-- a_pExtPackDesc->strVersion.setNull();
-- a_pExtPackDesc->strEdition.setNull();
-- a_pExtPackDesc->uRevision = 0;
-- a_pExtPackDesc->strMainModule.setNull();
-- a_pExtPackDesc->strVrdeModule.setNull();
-- a_pExtPackDesc->cPlugIns = 0;
-- a_pExtPackDesc->paPlugIns = NULL;
-- a_pExtPackDesc->fShowLicense = false;
--}
--
--/**
-- * Initializes an extension pack descriptor so that it's safe to call free on
-- * it whatever happens later on.
-- *
-- * @param a_pExtPackDesc The descirptor to initialize.
-- */
--void VBoxExtPackInitDesc(PVBOXEXTPACKDESC a_pExtPackDesc)
--{
-- vboxExtPackClearDesc(a_pExtPackDesc);
--}
--
--
--/**
-- * Load the extension pack descriptor from an XML document.
-- *
-- * @returns NULL on success, pointer to an error message on failure (caller
-- * deletes it).
-- * @param a_pDoc Pointer to the the XML document.
-- * @param a_pExtPackDesc Where to store the extension pack descriptor.
-- */
--static RTCString *vboxExtPackLoadDescFromDoc(xml::Document *a_pDoc, PVBOXEXTPACKDESC a_pExtPackDesc)
--{
-- /*
-- * Get the main element and check its version.
-- */
-- const xml::ElementNode *pVBoxExtPackElm = a_pDoc->getRootElement();
-- if ( !pVBoxExtPackElm
-- || strcmp(pVBoxExtPackElm->getName(), "VirtualBoxExtensionPack") != 0)
-- return new RTCString("No VirtualBoxExtensionPack element");
--
-- RTCString strFormatVersion;
-- if (!pVBoxExtPackElm->getAttributeValue("version", strFormatVersion))
-- return new RTCString("Missing format version");
-- if (!strFormatVersion.equals("1.0"))
-- return &(new RTCString("Unsupported format version: "))->append(strFormatVersion);
--
-- /*
-- * Read and validate mandatory bits.
-- */
-- const xml::ElementNode *pNameElm = pVBoxExtPackElm->findChildElement("Name");
-- if (!pNameElm)
-- return new RTCString("The 'Name' element is missing");
-- const char *pszName = pNameElm->getValue();
-- if (!VBoxExtPackIsValidName(pszName))
-- return &(new RTCString("Invalid name: "))->append(pszName);
--
-- const xml::ElementNode *pDescElm = pVBoxExtPackElm->findChildElement("Description");
-- if (!pDescElm)
-- return new RTCString("The 'Description' element is missing");
-- const char *pszDesc = pDescElm->getValue();
-- if (!pszDesc || *pszDesc == '\0')
-- return new RTCString("The 'Description' element is empty");
-- if (strpbrk(pszDesc, "\n\r\t\v\b") != NULL)
-- return new RTCString("The 'Description' must not contain control characters");
--
-- const xml::ElementNode *pVersionElm = pVBoxExtPackElm->findChildElement("Version");
-- if (!pVersionElm)
-- return new RTCString("The 'Version' element is missing");
-- const char *pszVersion = pVersionElm->getValue();
-- if (!pszVersion || *pszVersion == '\0')
-- return new RTCString("The 'Version' element is empty");
-- if (!VBoxExtPackIsValidVersionString(pszVersion))
-- return &(new RTCString("Invalid version string: "))->append(pszVersion);
--
-- uint32_t uRevision;
-- if (!pVersionElm->getAttributeValue("revision", uRevision))
-- uRevision = 0;
--
-- const char *pszEdition;
-- if (!pVersionElm->getAttributeValue("edition", pszEdition))
-- pszEdition = "";
-- if (!VBoxExtPackIsValidEditionString(pszEdition))
-- return &(new RTCString("Invalid edition string: "))->append(pszEdition);
--
-- const xml::ElementNode *pMainModuleElm = pVBoxExtPackElm->findChildElement("MainModule");
-- if (!pMainModuleElm)
-- return new RTCString("The 'MainModule' element is missing");
-- const char *pszMainModule = pMainModuleElm->getValue();
-- if (!pszMainModule || *pszMainModule == '\0')
-- return new RTCString("The 'MainModule' element is empty");
-- if (!VBoxExtPackIsValidModuleString(pszMainModule))
-- return &(new RTCString("Invalid main module string: "))->append(pszMainModule);
--
-- /*
-- * The VRDE module, optional.
-- * Accept both none and empty as tokens of no VRDE module.
-- */
-- const char *pszVrdeModule = NULL;
-- const xml::ElementNode *pVrdeModuleElm = pVBoxExtPackElm->findChildElement("VRDEModule");
-- if (pVrdeModuleElm)
-- {
-- pszVrdeModule = pVrdeModuleElm->getValue();
-- if (!pszVrdeModule || *pszVrdeModule == '\0')
-- pszVrdeModule = NULL;
-- else if (!VBoxExtPackIsValidModuleString(pszVrdeModule))
-- return &(new RTCString("Invalid VRDE module string: "))->append(pszVrdeModule);
-- }
--
-- /*
-- * Whether to show the license, optional. (presense is enough here)
-- */
-- const xml::ElementNode *pShowLicenseElm = pVBoxExtPackElm->findChildElement("ShowLicense");
-- bool fShowLicense = pShowLicenseElm != NULL;
--
-- /*
-- * Parse plug-in descriptions (last because of the manual memory management).
-- */
-- uint32_t cPlugIns = 0;
-- PVBOXEXTPACKPLUGINDESC paPlugIns = NULL;
-- RTCString *pstrRet = vboxExtPackLoadPlugInDescs(pVBoxExtPackElm, &cPlugIns, &paPlugIns);
-- if (pstrRet)
-- {
-- RTMemFree(paPlugIns);
-- return pstrRet;
-- }
--
-- /*
-- * Everything seems fine, fill in the return values and return successfully.
-- */
-- a_pExtPackDesc->strName = pszName;
-- a_pExtPackDesc->strDescription = pszDesc;
-- a_pExtPackDesc->strVersion = pszVersion;
-- a_pExtPackDesc->strEdition = pszEdition;
-- a_pExtPackDesc->uRevision = uRevision;
-- a_pExtPackDesc->strMainModule = pszMainModule;
-- a_pExtPackDesc->strVrdeModule = pszVrdeModule;
-- a_pExtPackDesc->cPlugIns = cPlugIns;
-- a_pExtPackDesc->paPlugIns = paPlugIns;
-- a_pExtPackDesc->fShowLicense = fShowLicense;
--
-- return NULL;
--}
--
--/**
-- * Reads the extension pack descriptor.
-- *
-- * @returns NULL on success, pointer to an error message on failure (caller
-- * deletes it).
-- * @param a_pszDir The directory containing the description file.
-- * @param a_pExtPackDesc Where to store the extension pack descriptor.
-- * @param a_pObjInfo Where to store the object info for the file (unix
-- * attribs). Optional.
-- */
--RTCString *VBoxExtPackLoadDesc(const char *a_pszDir, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo)
--{
-- vboxExtPackClearDesc(a_pExtPackDesc);
--
-- /*
-- * Validate, open and parse the XML file.
-- */
-- char szFilePath[RTPATH_MAX];
-- int vrc = RTPathJoin(szFilePath, sizeof(szFilePath), a_pszDir, VBOX_EXTPACK_DESCRIPTION_NAME);
-- if (RT_FAILURE(vrc))
-- return new RTCString("RTPathJoin failed with %Rrc", vrc);
--
-- RTFSOBJINFO ObjInfo;
-- vrc = RTPathQueryInfoEx(szFilePath, &ObjInfo, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK);
-- if (RT_FAILURE(vrc))
-- return &(new RTCString())->printf("RTPathQueryInfoEx failed with %Rrc", vrc);
-- if (a_pObjInfo)
-- *a_pObjInfo = ObjInfo;
-- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode))
-- {
-- if (RTFS_IS_SYMLINK(ObjInfo.Attr.fMode))
-- return new RTCString("The XML file is symlinked, that is not allowed");
-- return &(new RTCString)->printf("The XML file is not a file (fMode=%#x)", ObjInfo.Attr.fMode);
-- }
--
-- xml::Document Doc;
-- {
-- xml::XmlFileParser Parser;
-- try
-- {
-- Parser.read(szFilePath, Doc);
-- }
-- catch (xml::XmlError Err)
-- {
-- return new RTCString(Err.what());
-- }
-- }
--
-- /*
-- * Hand the xml doc over to the common code.
-- */
-- return vboxExtPackLoadDescFromDoc(&Doc, a_pExtPackDesc);
--}
--
--/**
-- * Reads the extension pack descriptor.
-- *
-- * @returns NULL on success, pointer to an error message on failure (caller
-- * deletes it).
-- * @param a_pszDir The directory containing the description file.
-- * @param a_pExtPackDesc Where to store the extension pack descriptor.
-- * @param a_pObjInfo Where to store the object info for the file (unix
-- * attribs). Optional.
-- */
--RTCString *VBoxExtPackLoadDescFromVfsFile(RTVFSFILE hVfsFile, PVBOXEXTPACKDESC a_pExtPackDesc, PRTFSOBJINFO a_pObjInfo)
--{
-- vboxExtPackClearDesc(a_pExtPackDesc);
--
-- /*
-- * Query the object info.
-- */
-- RTFSOBJINFO ObjInfo;
-- int rc = RTVfsFileQueryInfo(hVfsFile, &ObjInfo, RTFSOBJATTRADD_UNIX);
-- if (RT_FAILURE(rc))
-- return &(new RTCString)->printf("RTVfsFileQueryInfo failed: %Rrc", rc);
-- if (a_pObjInfo)
-- *a_pObjInfo = ObjInfo;
--
-- /*
-- * The simple approach, read the whole thing into memory and pass this to
-- * the XML parser.
-- */
--
-- /* Check the file size. */
-- if (ObjInfo.cbObject > _1M || ObjInfo.cbObject < 0)
-- return &(new RTCString)->printf("The XML file is too large (%'RU64 bytes)", ObjInfo.cbObject);
-- size_t const cbFile = (size_t)ObjInfo.cbObject;
--
-- /* Rewind to the start of the file. */
-- rc = RTVfsFileSeek(hVfsFile, 0, RTFILE_SEEK_BEGIN, NULL);
-- if (RT_FAILURE(rc))
-- return &(new RTCString)->printf("RTVfsFileSeek(,0,BEGIN) failed: %Rrc", rc);
--
-- /* Allocate memory and read the file content into it. */
-- void *pvFile = RTMemTmpAlloc(cbFile);
-- if (!pvFile)
-- return &(new RTCString)->printf("RTMemTmpAlloc(%zu) failed", cbFile);
--
-- RTCString *pstrErr = NULL;
-- rc = RTVfsFileRead(hVfsFile, pvFile, cbFile, NULL);
-- if (RT_FAILURE(rc))
-- pstrErr = &(new RTCString)->printf("RTVfsFileRead failed: %Rrc", rc);
--
-- /*
-- * Parse the file.
-- */
-- xml::Document Doc;
-- if (RT_SUCCESS(rc))
-- {
-- xml::XmlMemParser Parser;
-- RTCString strFileName = VBOX_EXTPACK_DESCRIPTION_NAME;
-- try
-- {
-- Parser.read(pvFile, cbFile, strFileName, Doc);
-- }
-- catch (xml::XmlError Err)
-- {
-- pstrErr = new RTCString(Err.what());
-- rc = VERR_PARSE_ERROR;
-- }
-- }
-- RTMemTmpFree(pvFile);
--
-- /*
-- * Hand the xml doc over to the common code.
-- */
-- if (RT_SUCCESS(rc))
-- pstrErr = vboxExtPackLoadDescFromDoc(&Doc, a_pExtPackDesc);
--
-- return pstrErr;
--}
--
--/**
-- * Frees all resources associated with a extension pack descriptor.
-- *
-- * @param a_pExtPackDesc The extension pack descriptor which members
-- * should be freed.
-- */
--void VBoxExtPackFreeDesc(PVBOXEXTPACKDESC a_pExtPackDesc)
--{
-- if (!a_pExtPackDesc)
-- return;
--
-- a_pExtPackDesc->strName.setNull();
-- a_pExtPackDesc->strDescription.setNull();
-- a_pExtPackDesc->strVersion.setNull();
-- a_pExtPackDesc->strEdition.setNull();
-- a_pExtPackDesc->uRevision = 0;
-- a_pExtPackDesc->strMainModule.setNull();
-- a_pExtPackDesc->strVrdeModule.setNull();
-- a_pExtPackDesc->cPlugIns = 0;
-- RTMemFree(a_pExtPackDesc->paPlugIns);
-- a_pExtPackDesc->paPlugIns = NULL;
-- a_pExtPackDesc->fShowLicense = false;
--}
--
--/**
-- * Extract the extension pack name from the tarball path.
-- *
-- * @returns String containing the name on success, the caller must delete it.
-- * NULL if no valid name was found or if we ran out of memory.
-- * @param pszTarball The path to the tarball.
-- */
--RTCString *VBoxExtPackExtractNameFromTarballPath(const char *pszTarball)
--{
-- /*
-- * Skip ahead to the filename part and count the number of characters
-- * that matches the criteria for a mangled extension pack name.
-- */
-- const char *pszSrc = RTPathFilename(pszTarball);
-- if (!pszSrc)
-- return NULL;
--
-- size_t off = 0;
-- while (RT_C_IS_ALNUM(pszSrc[off]) || pszSrc[off] == '_')
-- off++;
--
-- /*
-- * Check min and max name limits.
-- */
-- if ( off > VBOX_EXTPACK_NAME_MAX_LEN
-- || off < VBOX_EXTPACK_NAME_MIN_LEN)
-- return NULL;
--
-- /*
-- * Return the unmangled name.
-- */
-- return VBoxExtPackUnmangleName(pszSrc, off);
--}
--
--/**
-- * Validates the extension pack name.
-- *
-- * @returns true if valid, false if not.
-- * @param pszName The name to validate.
-- * @sa VBoxExtPackExtractNameFromTarballPath
-- */
--bool VBoxExtPackIsValidName(const char *pszName)
--{
-- if (!pszName)
-- return false;
--
-- /*
-- * Check the characters making up the name, only english alphabet
-- * characters, decimal digits and spaces are allowed.
-- */
-- size_t off = 0;
-- while (pszName[off])
-- {
-- if (!RT_C_IS_ALNUM(pszName[off]) && pszName[off] != ' ')
-- return false;
-- off++;
-- }
--
-- /*
-- * Check min and max name limits.
-- */
-- if ( off > VBOX_EXTPACK_NAME_MAX_LEN
-- || off < VBOX_EXTPACK_NAME_MIN_LEN)
-- return false;
--
-- return true;
--}
--
--/**
-- * Checks if an alledged manged extension pack name.
-- *
-- * @returns true if valid, false if not.
-- * @param pszMangledName The mangled name to validate.
-- * @param cchMax The max number of chars to test.
-- * @sa VBoxExtPackMangleName
-- */
--bool VBoxExtPackIsValidMangledName(const char *pszMangledName, size_t cchMax /*= RTSTR_MAX*/)
--{
-- if (!pszMangledName)
-- return false;
--
-- /*
-- * Check the characters making up the name, only english alphabet
-- * characters, decimal digits and underscores (=space) are allowed.
-- */
-- size_t off = 0;
-- while (off < cchMax && pszMangledName[off])
-- {
-- if (!RT_C_IS_ALNUM(pszMangledName[off]) && pszMangledName[off] != '_')
-- return false;
-- off++;
-- }
--
-- /*
-- * Check min and max name limits.
-- */
-- if ( off > VBOX_EXTPACK_NAME_MAX_LEN
-- || off < VBOX_EXTPACK_NAME_MIN_LEN)
-- return false;
--
-- return true;
--}
--
--/**
-- * Mangle an extension pack name so it can be used by a directory or file name.
-- *
-- * @returns String containing the mangled name on success, the caller must
-- * delete it. NULL on failure.
-- * @param pszName The unmangled name.
-- * @sa VBoxExtPackUnmangleName, VBoxExtPackIsValidMangledName
-- */
--RTCString *VBoxExtPackMangleName(const char *pszName)
--{
-- AssertReturn(VBoxExtPackIsValidName(pszName), NULL);
--
-- char szTmp[VBOX_EXTPACK_NAME_MAX_LEN + 1];
-- size_t off = 0;
-- char ch;
-- while ((ch = pszName[off]) != '\0')
-- {
-- if (ch == ' ')
-- ch = '_';
-- szTmp[off++] = ch;
-- }
-- szTmp[off] = '\0';
-- Assert(VBoxExtPackIsValidMangledName(szTmp));
--
-- return new RTCString(szTmp, off);
--}
--
--/**
-- * Unmangle an extension pack name (reverses VBoxExtPackMangleName).
-- *
-- * @returns String containing the mangled name on success, the caller must
-- * delete it. NULL on failure.
-- * @param pszMangledName The mangled name.
-- * @param cchMax The max name length. RTSTR_MAX is fine.
-- * @sa VBoxExtPackMangleName, VBoxExtPackIsValidMangledName
-- */
--RTCString *VBoxExtPackUnmangleName(const char *pszMangledName, size_t cchMax)
--{
-- AssertReturn(VBoxExtPackIsValidMangledName(pszMangledName, cchMax), NULL);
--
-- char szTmp[VBOX_EXTPACK_NAME_MAX_LEN + 1];
-- size_t off = 0;
-- char ch;
-- while ( off < cchMax
-- && (ch = pszMangledName[off]) != '\0')
-- {
-- if (ch == '_')
-- ch = ' ';
-- else
-- AssertReturn(RT_C_IS_ALNUM(ch) || ch == ' ', NULL);
-- szTmp[off++] = ch;
-- }
-- szTmp[off] = '\0';
-- AssertReturn(VBoxExtPackIsValidName(szTmp), NULL);
--
-- return new RTCString(szTmp, off);
--}
--
--/**
-- * Constructs the extension pack directory path.
-- *
-- * A combination of RTPathJoin and VBoxExtPackMangleName.
-- *
-- * @returns IPRT status code like RTPathJoin.
-- * @param pszExtPackDir Where to return the directory path.
-- * @param cbExtPackDir The size of the return buffer.
-- * @param pszParentDir The parent directory (".../Extensions").
-- * @param pszName The extension pack name, unmangled.
-- */
--int VBoxExtPackCalcDir(char *pszExtPackDir, size_t cbExtPackDir, const char *pszParentDir, const char *pszName)
--{
-- AssertReturn(VBoxExtPackIsValidName(pszName), VERR_INTERNAL_ERROR_5);
--
-- RTCString *pstrMangledName = VBoxExtPackMangleName(pszName);
-- if (!pstrMangledName)
-- return VERR_INTERNAL_ERROR_4;
--
-- int vrc = RTPathJoin(pszExtPackDir, cbExtPackDir, pszParentDir, pstrMangledName->c_str());
-- delete pstrMangledName;
--
-- return vrc;
--}
--
--
--/**
-- * Validates the extension pack version string.
-- *
-- * @returns true if valid, false if not.
-- * @param pszVersion The version string to validate.
-- */
--bool VBoxExtPackIsValidVersionString(const char *pszVersion)
--{
-- if (!pszVersion || *pszVersion == '\0')
-- return false;
--
-- /* 1.x.y.z... */
-- for (;;)
-- {
-- if (!RT_C_IS_DIGIT(*pszVersion))
-- return false;
-- do
-- pszVersion++;
-- while (RT_C_IS_DIGIT(*pszVersion));
-- if (*pszVersion != '.')
-- break;
-- pszVersion++;
-- }
--
-- /* upper case string + numbers indicating the build type */
-- if (*pszVersion == '-' || *pszVersion == '_')
-- {
-- /** @todo Should probably restrict this to known build types (alpha,
-- * beta, rc, ++). */
-- do
-- pszVersion++;
-- while ( RT_C_IS_DIGIT(*pszVersion)
-- || RT_C_IS_UPPER(*pszVersion)
-- || *pszVersion == '-'
-- || *pszVersion == '_');
-- }
--
-- return *pszVersion == '\0';
--}
--
--/**
-- * Validates the extension pack edition string.
-- *
-- * @returns true if valid, false if not.
-- * @param pszEdition The edition string to validate.
-- */
--bool VBoxExtPackIsValidEditionString(const char *pszEdition)
--{
-- if (*pszEdition)
-- {
-- if (!RT_C_IS_UPPER(*pszEdition))
-- return false;
--
-- do
-- pszEdition++;
-- while ( RT_C_IS_UPPER(*pszEdition)
-- || RT_C_IS_DIGIT(*pszEdition)
-- || *pszEdition == '-'
-- || *pszEdition == '_');
-- }
-- return *pszEdition == '\0';
--}
--
--/**
-- * Validates an extension pack module string.
-- *
-- * @returns true if valid, false if not.
-- * @param pszModule The module string to validate.
-- */
--bool VBoxExtPackIsValidModuleString(const char *pszModule)
--{
-- if (!pszModule || *pszModule == '\0')
-- return false;
--
-- /* Restricted charset, no extensions (dots). */
-- while ( RT_C_IS_ALNUM(*pszModule)
-- || *pszModule == '-'
-- || *pszModule == '_')
-- pszModule++;
--
-- return *pszModule == '\0';
--}
--
--/**
-- * RTStrPrintfv wrapper.
-- *
-- * @returns @a rc
-- * @param rc The status code to return.
-- * @param pszError The error buffer.
-- * @param cbError The size of the buffer.
-- * @param pszFormat The error message format string.
-- * @param ... Format arguments.
-- */
--static int vboxExtPackReturnError(int rc, char *pszError, size_t cbError, const char *pszFormat, ...)
--{
-- va_list va;
-- va_start(va, pszFormat);
-- RTStrPrintfV(pszError, cbError, pszFormat, va);
-- va_end(va);
-- return rc;
--}
--
--/**
-- * RTStrPrintfv wrapper.
-- *
-- * @param pszError The error buffer.
-- * @param cbError The size of the buffer.
-- * @param pszFormat The error message format string.
-- * @param ... Format arguments.
-- */
--static void vboxExtPackSetError(char *pszError, size_t cbError, const char *pszFormat, ...)
--{
-- va_list va;
-- va_start(va, pszFormat);
-- RTStrPrintfV(pszError, cbError, pszFormat, va);
-- va_end(va);
--}
--
--/**
-- * Verifies the manifest and its signature.
-- *
-- * @returns VBox status code, failures with message.
-- * @param hManifestFile The xml from the extension pack.
-- * @param pszExtPackName The expected extension pack name. This can be
-- * NULL, in which we don't have any expectations.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--static int vboxExtPackVerifyXml(RTVFSFILE hXmlFile, const char *pszExtPackName, char *pszError, size_t cbError)
--{
-- /*
-- * Load the XML.
-- */
-- VBOXEXTPACKDESC ExtPackDesc;
-- RTCString *pstrErr = VBoxExtPackLoadDescFromVfsFile(hXmlFile, &ExtPackDesc, NULL);
-- if (pstrErr)
-- {
-- RTStrCopy(pszError, cbError, pstrErr->c_str());
-- delete pstrErr;
-- return VERR_PARSE_ERROR;
-- }
--
-- /*
-- * Check the name.
-- */
-- /** @todo drop this restriction after the old install interface is
-- * dropped. */
-- int rc = VINF_SUCCESS;
-- if ( pszExtPackName
-- && !ExtPackDesc.strName.equalsIgnoreCase(pszExtPackName))
-- rc = vboxExtPackReturnError(VERR_NOT_EQUAL, pszError, cbError,
-- "The name of the downloaded file and the name stored inside the extension pack does not match"
-- " (xml='%s' file='%s')", ExtPackDesc.strName.c_str(), pszExtPackName);
-- return rc;
--}
--
--/**
-- * Verifies the manifest and its signature.
-- *
-- * @returns VBox status code, failures with message.
-- * @param hOurManifest The manifest we compiled.
-- * @param hManifestFile The manifest file in the extension pack.
-- * @param hSignatureFile The manifest signature file.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--static int vboxExtPackVerifyManifestAndSignature(RTMANIFEST hOurManifest, RTVFSFILE hManifestFile, RTVFSFILE hSignatureFile,
-- char *pszError, size_t cbError)
--{
-- /*
-- * Read the manifest from the extension pack.
-- */
-- int rc = RTVfsFileSeek(hManifestFile, 0, RTFILE_SEEK_BEGIN, NULL);
-- if (RT_FAILURE(rc))
-- return vboxExtPackReturnError(rc, pszError, cbError, "RTVfsFileSeek failed: %Rrc", rc);
--
-- RTMANIFEST hTheirManifest;
-- rc = RTManifestCreate(0 /*fFlags*/, &hTheirManifest);
-- if (RT_FAILURE(rc))
-- return vboxExtPackReturnError(rc, pszError, cbError, "RTManifestCreate failed: %Rrc", rc);
--
-- RTVFSIOSTREAM hVfsIos = RTVfsFileToIoStream(hManifestFile);
-- rc = RTManifestReadStandard(hTheirManifest, hVfsIos);
-- RTVfsIoStrmRelease(hVfsIos);
-- if (RT_SUCCESS(rc))
-- {
-- /*
-- * Compare the manifests.
-- */
-- static const char *s_apszIgnoreEntries[] =
-- {
-- VBOX_EXTPACK_MANIFEST_NAME,
-- VBOX_EXTPACK_SIGNATURE_NAME,
-- "./" VBOX_EXTPACK_MANIFEST_NAME,
-- "./" VBOX_EXTPACK_SIGNATURE_NAME,
-- NULL
-- };
-- char szError[RTPATH_MAX];
-- rc = RTManifestEqualsEx(hOurManifest, hTheirManifest, &s_apszIgnoreEntries[0], NULL,
-- RTMANIFEST_EQUALS_IGN_MISSING_ATTRS /*fFlags*/,
-- szError, sizeof(szError));
-- if (RT_SUCCESS(rc))
-- {
-- /*
-- * Validate the manifest file signature.
-- */
-- /** @todo implement signature stuff */
-- NOREF(hSignatureFile);
--
-- }
-- else if (rc == VERR_NOT_EQUAL && szError[0])
-- vboxExtPackSetError(pszError, cbError, "Manifest mismatch: %s", szError);
-- else
-- vboxExtPackSetError(pszError, cbError, "RTManifestEqualsEx failed: %Rrc", rc);
--#if 0
-- RTVFSIOSTREAM hVfsIosStdOut = NIL_RTVFSIOSTREAM;
-- RTVfsIoStrmFromStdHandle(RTHANDLESTD_OUTPUT, RTFILE_O_WRITE, true, &hVfsIosStdOut);
-- RTVfsIoStrmWrite(hVfsIosStdOut, "Our:\n", sizeof("Our:\n") - 1, true, NULL);
-- RTManifestWriteStandard(hOurManifest, hVfsIosStdOut);
-- RTVfsIoStrmWrite(hVfsIosStdOut, "Their:\n", sizeof("Their:\n") - 1, true, NULL);
-- RTManifestWriteStandard(hTheirManifest, hVfsIosStdOut);
--#endif
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "Error parsing '%s': %Rrc", VBOX_EXTPACK_MANIFEST_NAME, rc);
--
-- RTManifestRelease(hTheirManifest);
-- return rc;
--}
--
--
--/**
-- * Verifies the file digest (if specified) and returns the SHA-256 of the file.
-- *
-- * @returns
-- * @param hFileManifest Manifest containing a SHA-256 digest of the file
-- * that was calculated as the file was processed.
-- * @param pszFileDigest SHA-256 digest of the file.
-- * @param pStrDigest Where to return the SHA-256 digest. Optional.
-- * @param pszError Where to write an error message on failure.
-- * @param cbError The size of the @a pszError buffer.
-- */
--static int vboxExtPackVerifyFileDigest(RTMANIFEST hFileManifest, const char *pszFileDigest,
-- RTCString *pStrDigest, char *pszError, size_t cbError)
--{
-- /*
-- * Extract the SHA-256 entry for the extpack file.
-- */
-- char szCalculatedDigest[RTSHA256_DIGEST_LEN + 1];
-- int rc = RTManifestEntryQueryAttr(hFileManifest, "extpack", NULL /*no name*/, RTMANIFEST_ATTR_SHA256,
-- szCalculatedDigest, sizeof(szCalculatedDigest), NULL);
-- if (RT_SUCCESS(rc))
-- {
-- /*
-- * Convert the two strings to binary form before comparing.
-- * We convert the calculated hash even if we don't have anything to
-- * compare with, just to validate it.
-- */
-- uint8_t abCalculatedHash[RTSHA256_HASH_SIZE];
-- rc = RTSha256FromString(szCalculatedDigest, abCalculatedHash);
-- if (RT_SUCCESS(rc))
-- {
-- if ( pszFileDigest
-- && *pszFileDigest != '\0')
-- {
-- uint8_t abFileHash[RTSHA256_HASH_SIZE];
-- rc = RTSha256FromString(pszFileDigest, abFileHash);
-- if (RT_SUCCESS(rc))
-- {
-- if (memcmp(abFileHash, abCalculatedHash, sizeof(abFileHash)))
-- {
-- vboxExtPackSetError(pszError, cbError, "The extension pack file has changed (SHA-256 mismatch)");
-- rc = VERR_NOT_EQUAL;
-- }
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "Bad SHA-256 '%s': %Rrc", szCalculatedDigest, rc);
-- }
--
-- /*
-- * Set the output hash on success.
-- */
-- if (pStrDigest && RT_SUCCESS(rc))
-- {
-- try
-- {
-- *pStrDigest = szCalculatedDigest;
-- }
-- catch (std::bad_alloc)
-- {
-- rc = VERR_NO_MEMORY;
-- }
-- }
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "Bad SHA-256 '%s': %Rrc", szCalculatedDigest, rc);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTManifestEntryGetAttr: %Rrc", rc);
-- return rc;
--}
--
--
--
--/**
-- * Validates a standard file.
-- *
-- * Generally all files are
-- *
-- * @returns VBox status code, failure message in @a pszError.
-- * @param pszAdjName The adjusted member name.
-- * @param enmType The VFS object type.
-- * @param phVfsObj The pointer to the VFS object handle variable.
-- * This is both input and output.
-- * @param phVfsFile Where to store the handle to the memorized
-- * file. This is NULL for license files.
-- * @param pszError Where to write an error message on failure.
-- * @param cbError The size of the @a pszError buffer.
-- */
--static int VBoxExtPackValidateStandardFile(const char *pszAdjName, RTVFSOBJTYPE enmType,
-- PRTVFSOBJ phVfsObj, PRTVFSFILE phVfsFile, char *pszError, size_t cbError)
--{
-- int rc;
--
-- /*
-- * Make sure it's a file and that it isn't too large.
-- */
-- if (phVfsFile && *phVfsFile != NIL_RTVFSFILE)
-- rc = vboxExtPackReturnError(VERR_DUPLICATE, pszError, cbError,
-- "There can only be one '%s'", pszAdjName);
-- else if (enmType != RTVFSOBJTYPE_IO_STREAM && enmType != RTVFSOBJTYPE_FILE)
-- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError,
-- "Standard member '%s' is not a file", pszAdjName);
-- else
-- {
-- RTFSOBJINFO ObjInfo;
-- rc = RTVfsObjQueryInfo(*phVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING);
-- if (RT_SUCCESS(rc))
-- {
-- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode))
-- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError,
-- "Standard member '%s' is not a file", pszAdjName);
-- else if (ObjInfo.cbObject >= _1M)
-- rc = vboxExtPackReturnError(VERR_OUT_OF_RANGE, pszError, cbError,
-- "Standard member '%s' is too large: %'RU64 bytes (max 1 MB)",
-- pszAdjName, (uint64_t)ObjInfo.cbObject);
-- else
-- {
-- /*
-- * Make an in memory copy of the stream and check that the file
-- * is UTF-8 clean.
-- */
-- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(*phVfsObj);
-- RTVFSFILE hVfsFile;
-- rc = RTVfsMemorizeIoStreamAsFile(hVfsIos, RTFILE_O_READ, &hVfsFile);
-- if (RT_SUCCESS(rc))
-- {
-- rc = RTVfsIoStrmValidateUtf8Encoding(hVfsIos,
-- RTVFS_VALIDATE_UTF8_BY_RTC_3629 | RTVFS_VALIDATE_UTF8_NO_NULL,
-- NULL);
-- if (RT_SUCCESS(rc))
-- {
-- /*
-- * Replace *phVfsObj with the memorized file.
-- */
-- rc = RTVfsFileSeek(hVfsFile, 0, RTFILE_SEEK_BEGIN, NULL);
-- if (RT_SUCCESS(rc))
-- {
-- RTVfsObjRelease(*phVfsObj);
-- *phVfsObj = RTVfsObjFromFile(hVfsFile);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTVfsFileSeek failed on '%s': %Rrc", pszAdjName, rc);
-- }
--
-- if (phVfsFile && RT_SUCCESS(rc))
-- *phVfsFile = hVfsFile;
-- else
-- RTVfsFileRelease(hVfsFile);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTVfsMemorizeIoStreamAsFile failed on '%s': %Rrc", pszAdjName, rc);
-- RTVfsIoStrmRelease(hVfsIos);
-- }
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszAdjName, rc);
-- }
-- return rc;
--}
--
--
--/**
-- * Validates a name in an extension pack.
-- *
-- * We restrict the charset to try make sure the extension pack can be unpacked
-- * on all file systems.
-- *
-- * @returns VBox status code, failures with message.
-- * @param pszName The name to validate.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--static int vboxExtPackValidateMemberName(const char *pszName, char *pszError, size_t cbError)
--{
-- if (RTPathStartsWithRoot(pszName))
-- return vboxExtPackReturnError(VERR_PATH_IS_NOT_RELATIVE, pszError, cbError, "'%s': starts with root spec", pszName);
--
-- const char *pszErr = NULL;
-- const char *psz = pszName;
-- int ch;
-- while ((ch = *psz) != '\0')
-- {
-- /* Character set restrictions. */
-- if (ch < 0 || ch >= 128)
-- {
-- pszErr = "Only 7-bit ASCII allowed";
-- break;
-- }
-- if (ch <= 31 || ch == 127)
-- {
-- pszErr = "No control characters are not allowed";
-- break;
-- }
-- if (ch == '\\')
-- {
-- pszErr = "Only backward slashes are not allowed";
-- break;
-- }
-- if (strchr("'\":;*?|[]<>(){}", ch))
-- {
-- pszErr = "The characters ', \", :, ;, *, ?, |, [, ], <, >, (, ), { and } are not allowed";
-- break;
-- }
--
-- /* Take the simple way out and ban all ".." sequences. */
-- if ( ch == '.'
-- && psz[1] == '.')
-- {
-- pszErr = "Double dot sequence are not allowed";
-- break;
-- }
--
-- /* Keep the tree shallow or the hardening checks will fail. */
-- if (psz - pszName > VBOX_EXTPACK_MAX_MEMBER_NAME_LENGTH)
-- {
-- pszErr = "Too long";
-- break;
-- }
--
-- /* advance */
-- psz++;
-- }
--
-- if (pszErr)
-- return vboxExtPackReturnError(VERR_INVALID_NAME, pszError, cbError,
-- "Bad member name '%s' (pos %zu): %s", pszName, (size_t)(psz - pszName), pszErr);
-- return RTEXITCODE_SUCCESS;
--}
--
--
--/**
-- * Validates a file in an extension pack.
-- *
-- * @returns VBox status code, failures with message.
-- * @param pszName The name of the file.
-- * @param hVfsObj The VFS object.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--static int vboxExtPackValidateMemberFile(const char *pszName, RTVFSOBJ hVfsObj, char *pszError, size_t cbError)
--{
-- int rc = vboxExtPackValidateMemberName(pszName, pszError, cbError);
-- if (RT_SUCCESS(rc))
-- {
-- RTFSOBJINFO ObjInfo;
-- rc = RTVfsObjQueryInfo(hVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING);
-- if (RT_SUCCESS(rc))
-- {
-- if (ObjInfo.cbObject >= 9*_1G64)
-- rc = vboxExtPackReturnError(VERR_OUT_OF_RANGE, pszError, cbError,
-- "'%s': too large (%'RU64 bytes)",
-- pszName, (uint64_t)ObjInfo.cbObject);
-- if (!RTFS_IS_FILE(ObjInfo.Attr.fMode))
-- rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError,
-- "The alleged file '%s' has a mode mask stating otherwise (%RTfmode)",
-- pszName, ObjInfo.Attr.fMode);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszName, rc);
-- }
-- return rc;
--}
--
--
--/**
-- * Validates a directory in an extension pack.
-- *
-- * @returns VBox status code, failures with message.
-- * @param pszName The name of the directory.
-- * @param hVfsObj The VFS object.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--static int vboxExtPackValidateMemberDir(const char *pszName, RTVFSOBJ hVfsObj, char *pszError, size_t cbError)
--{
-- int rc = vboxExtPackValidateMemberName(pszName, pszError, cbError);
-- if (RT_SUCCESS(rc))
-- {
-- RTFSOBJINFO ObjInfo;
-- rc = RTVfsObjQueryInfo(hVfsObj, &ObjInfo, RTFSOBJATTRADD_NOTHING);
-- if (RT_SUCCESS(rc))
-- {
-- if (!RTFS_IS_DIRECTORY(ObjInfo.Attr.fMode))
-- rc = vboxExtPackReturnError(VERR_NOT_A_DIRECTORY, pszError, cbError,
-- "The alleged directory '%s' has a mode mask saying differently (%RTfmode)",
-- pszName, ObjInfo.Attr.fMode);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszName, rc);
-- }
-- return rc;
--}
--
--/**
-- * Validates a member of an extension pack.
-- *
-- * @returns VBox status code, failures with message.
-- * @param pszName The name of the directory.
-- * @param enmType The object type.
-- * @param hVfsObj The VFS object.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- */
--int VBoxExtPackValidateMember(const char *pszName, RTVFSOBJTYPE enmType, RTVFSOBJ hVfsObj, char *pszError, size_t cbError)
--{
-- Assert(cbError > 0);
-- *pszError = '\0';
--
-- int rc;
-- if ( enmType == RTVFSOBJTYPE_FILE
-- || enmType == RTVFSOBJTYPE_IO_STREAM)
-- rc = vboxExtPackValidateMemberFile(pszName, hVfsObj, pszError, cbError);
-- else if ( enmType == RTVFSOBJTYPE_DIR
-- || enmType == RTVFSOBJTYPE_BASE)
-- rc = vboxExtPackValidateMemberDir(pszName, hVfsObj, pszError, cbError);
-- else
-- rc = vboxExtPackReturnError(VERR_UNEXPECTED_FS_OBJ_TYPE, pszError, cbError,
-- "'%s' is not a file or directory (enmType=%d)", pszName, enmType);
-- return rc;
--}
--
--
--/**
-- * Rewinds the tarball file handle and creates a gunzip | tar chain that
-- * results in a filesystem stream.
-- *
-- * @returns VBox status code, failures with message.
-- * @param hTarballFile The handle to the tarball file.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- * @param phTarFss Where to return the filesystem stream handle.
-- * @param phFileManifest Where to return a manifest where the tarball is
-- * gettting hashed. The entry will be called
-- * "extpack" and be ready when the file system
-- * stream is at an end. Optional.
-- */
--int VBoxExtPackOpenTarFss(RTFILE hTarballFile, char *pszError, size_t cbError, PRTVFSFSSTREAM phTarFss, PRTMANIFEST phFileManifest)
--{
-- Assert(cbError > 0);
-- *pszError = '\0';
-- *phTarFss = NIL_RTVFSFSSTREAM;
--
-- /*
-- * Rewind the file and set up a VFS chain for it.
-- */
-- int rc = RTFileSeek(hTarballFile, 0, RTFILE_SEEK_BEGIN, NULL);
-- if (RT_FAILURE(rc))
-- return vboxExtPackReturnError(rc, pszError, cbError, "Failed seeking to the start of the tarball: %Rrc", rc);
--
-- RTVFSIOSTREAM hTarballIos;
-- rc = RTVfsIoStrmFromRTFile(hTarballFile, RTFILE_O_READ | RTFILE_O_DENY_WRITE | RTFILE_O_OPEN, true /*fLeaveOpen*/,
-- &hTarballIos);
-- if (RT_FAILURE(rc))
-- return vboxExtPackReturnError(rc, pszError, cbError, "RTVfsIoStrmFromRTFile failed: %Rrc", rc);
--
-- RTMANIFEST hFileManifest = NIL_RTMANIFEST;
-- rc = RTManifestCreate(0 /*fFlags*/, &hFileManifest);
-- if (RT_SUCCESS(rc))
-- {
-- RTVFSIOSTREAM hPtIos;
-- rc = RTManifestEntryAddPassthruIoStream(hFileManifest, hTarballIos, "extpack", RTMANIFEST_ATTR_SHA256, true /*read*/, &hPtIos);
-- if (RT_SUCCESS(rc))
-- {
-- RTVFSIOSTREAM hGunzipIos;
-- rc = RTZipGzipDecompressIoStream(hPtIos, 0 /*fFlags*/, &hGunzipIos);
-- if (RT_SUCCESS(rc))
-- {
-- RTVFSFSSTREAM hTarFss;
-- rc = RTZipTarFsStreamFromIoStream(hGunzipIos, 0 /*fFlags*/, &hTarFss);
-- if (RT_SUCCESS(rc))
-- {
-- RTVfsIoStrmRelease(hPtIos);
-- RTVfsIoStrmRelease(hGunzipIos);
-- RTVfsIoStrmRelease(hTarballIos);
-- *phTarFss = hTarFss;
-- if (phFileManifest)
-- *phFileManifest = hFileManifest;
-- else
-- RTManifestRelease(hFileManifest);
-- return VINF_SUCCESS;
-- }
--
-- vboxExtPackSetError(pszError, cbError, "RTZipTarFsStreamFromIoStream failed: %Rrc", rc);
-- RTVfsIoStrmRelease(hGunzipIos);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTZipGzipDecompressIoStream failed: %Rrc", rc);
-- RTVfsIoStrmRelease(hPtIos);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTManifestEntryAddPassthruIoStream failed: %Rrc", rc);
-- RTManifestRelease(hFileManifest);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTManifestCreate failed: %Rrc", rc);
--
-- RTVfsIoStrmRelease(hTarballIos);
-- return rc;
--}
--
--
--/**
-- * Validates the extension pack tarball prior to unpacking.
-- *
-- * Operations performed:
-- * - Mandatory files.
-- * - Manifest check.
-- * - Manifest seal check.
-- * - XML check, match name.
-- *
-- * @returns VBox status code, failures with message.
-- * @param hTarballFile The handle to open the @a pszTarball file.
-- * @param pszExtPackName The name of the extension pack name. NULL if
-- * the name is not fixed.
-- * @param pszTarball The name of the tarball in case we have to
-- * complain about something.
-- * @param pszTarballDigest The SHA-256 digest of the tarball. Empty string
-- * if no digest available.
-- * @param pszError Where to store an error message on failure.
-- * @param cbError The size of the buffer @a pszError points to.
-- * @param phValidManifest Where to optionally return the handle to fully
-- * validated the manifest for the extension pack.
-- * This includes all files.
-- * @param phXmlFile Where to optionally return the memorized XML
-- * file.
-- * @param pStrDigest Where to return the digest of the file.
-- * Optional.
-- */
--int VBoxExtPackValidateTarball(RTFILE hTarballFile, const char *pszExtPackName,
-- const char *pszTarball, const char *pszTarballDigest,
-- char *pszError, size_t cbError,
-- PRTMANIFEST phValidManifest, PRTVFSFILE phXmlFile, RTCString *pStrDigest)
--{
-- /*
-- * Clear return values.
-- */
-- if (phValidManifest)
-- *phValidManifest = NIL_RTMANIFEST;
-- if (phXmlFile)
-- *phXmlFile = NIL_RTVFSFILE;
-- Assert(cbError > 1);
-- *pszError = '\0';
-- NOREF(pszTarball);
--
-- /*
-- * Open the tar.gz filesystem stream and set up an manifest in-memory file.
-- */
-- RTMANIFEST hFileManifest;
-- RTVFSFSSTREAM hTarFss;
-- int rc = VBoxExtPackOpenTarFss(hTarballFile, pszError, cbError, &hTarFss, &hFileManifest);
-- if (RT_FAILURE(rc))
-- return rc;
--
-- RTMANIFEST hOurManifest;
-- rc = RTManifestCreate(0 /*fFlags*/, &hOurManifest);
-- if (RT_SUCCESS(rc))
-- {
-- /*
-- * Process the tarball (would be nice to move this to a function).
-- */
-- RTVFSFILE hXmlFile = NIL_RTVFSFILE;
-- RTVFSFILE hManifestFile = NIL_RTVFSFILE;
-- RTVFSFILE hSignatureFile = NIL_RTVFSFILE;
-- for (;;)
-- {
-- /*
-- * Get the next stream object.
-- */
-- char *pszName;
-- RTVFSOBJ hVfsObj;
-- RTVFSOBJTYPE enmType;
-- rc = RTVfsFsStrmNext(hTarFss, &pszName, &enmType, &hVfsObj);
-- if (RT_FAILURE(rc))
-- {
-- if (rc != VERR_EOF)
-- vboxExtPackSetError(pszError, cbError, "RTVfsFsStrmNext failed: %Rrc", rc);
-- else
-- rc = VINF_SUCCESS;
-- break;
-- }
-- const char *pszAdjName = pszName[0] == '.' && pszName[1] == '/' ? &pszName[2] : pszName;
--
-- /*
-- * Check the type & name validity, performing special tests on
-- * standard extension pack member files.
-- *
-- * N.B. We will always reach the end of the loop before breaking on
-- * failure - cleanup reasons.
-- */
-- rc = VBoxExtPackValidateMember(pszName, enmType, hVfsObj, pszError, cbError);
-- if (RT_SUCCESS(rc))
-- {
-- PRTVFSFILE phVfsFile = NULL;
-- if (!strcmp(pszAdjName, VBOX_EXTPACK_DESCRIPTION_NAME))
-- phVfsFile = &hXmlFile;
-- else if (!strcmp(pszAdjName, VBOX_EXTPACK_MANIFEST_NAME))
-- phVfsFile = &hManifestFile;
-- else if (!strcmp(pszAdjName, VBOX_EXTPACK_SIGNATURE_NAME))
-- phVfsFile = &hSignatureFile;
-- else if (!strncmp(pszAdjName, VBOX_EXTPACK_LICENSE_NAME_PREFIX, sizeof(VBOX_EXTPACK_LICENSE_NAME_PREFIX) - 1))
-- rc = VBoxExtPackValidateStandardFile(pszAdjName, enmType, &hVfsObj, NULL, pszError, cbError);
-- if (phVfsFile)
-- rc = VBoxExtPackValidateStandardFile(pszAdjName, enmType, &hVfsObj, phVfsFile, pszError, cbError);
-- }
--
-- /*
-- * Add any I/O stream to the manifest
-- */
-- if ( RT_SUCCESS(rc)
-- && ( enmType == RTVFSOBJTYPE_FILE
-- || enmType == RTVFSOBJTYPE_IO_STREAM))
-- {
-- RTVFSIOSTREAM hVfsIos = RTVfsObjToIoStream(hVfsObj);
-- rc = RTManifestEntryAddIoStream(hOurManifest, hVfsIos, pszAdjName, RTMANIFEST_ATTR_SIZE | RTMANIFEST_ATTR_SHA256);
-- if (RT_FAILURE(rc))
-- vboxExtPackSetError(pszError, cbError, "RTManifestEntryAddIoStream failed on '%s': %Rrc", pszAdjName, rc);
-- RTVfsIoStrmRelease(hVfsIos);
-- }
--
-- /*
-- * Clean up and break out on failure.
-- */
-- RTVfsObjRelease(hVfsObj);
-- RTStrFree(pszName);
-- if (RT_FAILURE(rc))
-- break;
-- }
--
-- /*
-- * Check the integrity of the tarball file.
-- */
-- if (RT_SUCCESS(rc))
-- {
-- RTVfsFsStrmRelease(hTarFss);
-- hTarFss = NIL_RTVFSFSSTREAM;
-- rc = vboxExtPackVerifyFileDigest(hFileManifest, pszTarballDigest, pStrDigest, pszError, cbError);
-- }
--
-- /*
-- * If we've successfully processed the tarball, verify that the
-- * mandatory files are present.
-- */
-- if (RT_SUCCESS(rc))
-- {
-- if (hXmlFile == NIL_RTVFSFILE)
-- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_DESCRIPTION_NAME);
-- if (hManifestFile == NIL_RTVFSFILE)
-- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_MANIFEST_NAME);
-- if (hSignatureFile == NIL_RTVFSFILE)
-- rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing", VBOX_EXTPACK_SIGNATURE_NAME);
-- }
--
-- /*
-- * Check the manifest and it's signature.
-- */
-- if (RT_SUCCESS(rc))
-- rc = vboxExtPackVerifyManifestAndSignature(hOurManifest, hManifestFile, hSignatureFile, pszError, cbError);
--
-- /*
-- * Check the XML.
-- */
-- if (RT_SUCCESS(rc))
-- rc = vboxExtPackVerifyXml(hXmlFile, pszExtPackName, pszError, cbError);
--
-- /*
-- * Returns objects.
-- */
-- if (RT_SUCCESS(rc))
-- {
-- if (phValidManifest)
-- {
-- RTManifestRetain(hOurManifest);
-- *phValidManifest = hOurManifest;
-- }
-- if (phXmlFile)
-- {
-- RTVfsFileRetain(hXmlFile);
-- *phXmlFile = hXmlFile;
-- }
-- }
--
-- /*
-- * Release our object references.
-- */
-- RTManifestRelease(hOurManifest);
-- RTVfsFileRelease(hXmlFile);
-- RTVfsFileRelease(hManifestFile);
-- RTVfsFileRelease(hSignatureFile);
-- }
-- else
-- vboxExtPackSetError(pszError, cbError, "RTManifestCreate failed: %Rrc", rc);
-- RTVfsFsStrmRelease(hTarFss);
-- RTManifestRelease(hFileManifest);
--
-- return rc;
--}
--
---- VirtualBox-4.1.18.orig/include/Makefile.kmk 2012-06-20 10:07:49.000000000 -0300
-+++ VirtualBox-4.1.18/include/Makefile.kmk 2012-07-24 21:11:57.007068865 -0300
-@@ -51,7 +51,6 @@
- VBox/vd-cache-plugin.h \
- VBox/vmm/uvm.h \
- VBox/vscsi.h \
-- $(wildcard VBox/ExtPack/*.h ) \
- iprt/alloca.h \
- iprt/tcp.h \
- iprt/localipc.h \
---- VirtualBox-4.1.18.orig/src/Makefile.kmk 2012-06-20 10:07:57.000000000 -0300
-+++ VirtualBox-4.1.18/src/Makefile.kmk 2012-07-24 22:51:10.206996034 -0300
-@@ -26,14 +26,6 @@
- include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk
- include $(PATH_SUB_CURRENT)/libs/Makefile.kmk
-
--else if defined(VBOX_ONLY_EXTPACKS)
-- include $(PATH_SUB_CURRENT)/bldprogs/Makefile.kmk
-- include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk
-- include $(PATH_SUB_CURRENT)/libs/Makefile.kmk
-- ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
-- include $(PATH_SUB_CURRENT)/recompiler/Makefile.kmk
-- endif
--
- else if defined(VBOX_ONLY_TESTSUITE)
- include $(PATH_SUB_CURRENT)/libs/Makefile.kmk
- include $(PATH_SUB_CURRENT)/VBox/Makefile.kmk
---- VirtualBox-4.1.18.orig/src/VBox/Makefile.kmk 2012-07-24 21:19:55.565641784 -0300
-+++ VirtualBox-4.1.18/src/VBox/Makefile.kmk 2012-07-24 22:12:55.429156962 -0300
-@@ -33,19 +33,6 @@
- include $(PATH_SUB_CURRENT)/HostDrivers/Makefile.kmk
- include $(PATH_SUB_CURRENT)/Frontends/Makefile.kmk
-
--else ifdef VBOX_ONLY_EXTPACKS
-- include $(PATH_SUB_CURRENT)/Runtime/Makefile.kmk
-- include $(PATH_SUB_CURRENT)/Devices/Makefile.kmk
-- include $(PATH_SUB_CURRENT)/HostDrivers/Makefile.kmk
-- include $(PATH_SUB_CURRENT)/ExtPacks/Makefile.kmk
-- ifdef VBOX_WITH_VRDP
-- include $(PATH_SUB_CURRENT)/RDP/Makefile.kmk
-- endif
-- include $(PATH_SUB_CURRENT)/VMM/Makefile.kmk
-- ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
-- include $(PATH_SUB_CURRENT)/Disassembler/Makefile.kmk
-- endif
--
- else ifdef VBOX_ONLY_SDK
- include $(PATH_SUB_CURRENT)/Main/Makefile.kmk
- ifdef VBOX_WITH_VRDP
-@@ -92,9 +79,6 @@
- if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
- include $(PATH_SUB_CURRENT)/NetworkServices/Makefile.kmk
- endif
-- ifndef VBOX_OSE
-- include $(PATH_SUB_CURRENT)/ExtPacks/Makefile.kmk
-- endif
- ifdef VBOX_WITH_INSTALLER
- include $(PATH_SUB_CURRENT)/Installer/Makefile.kmk # Keep this last.
- endif
---- VirtualBox-4.1.18/src/libs/Makefile.kmk.orig 2012-07-24 21:23:26.938013023 -0300
-+++ VirtualBox-4.1.18/src/libs/Makefile.kmk 2012-07-24 21:43:42.557911752 -0300
-@@ -48,13 +48,6 @@
- include $(PATH_SUB_CURRENT)/kStuff/Makefile.kmk
- endif
-
--# OpenSSL.
--if !defined(VBOX_ONLY_SDK) \
-- && ( "$(SDK_VBOX_OPENSSL_INCS)" == "$(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS)" \
-- || defined(VBOX_WITH_EXTPACK_PUEL_BUILD))
-- include $(PATH_SUB_CURRENT)/openssl-0.9.8t/Makefile.kmk
--endif
--
- # libjpeg for VRDP video redirection
- if defined(VBOX_WITH_VRDP) && defined(VBOX_WITH_VRDP_VIDEO_CHANNEL)
- include $(PATH_SUB_CURRENT)/jpeg-8a/Makefile.kmk
---- VirtualBox-4.1.18.orig/src/VBox/Devices/Makefile.kmk 2012-07-24 23:06:45.916276235 -0300
-+++ VirtualBox-4.1.18/src/VBox/Devices/Makefile.kmk 2012-07-24 23:17:00.202963228 -0300
-@@ -21,9 +21,7 @@
-
- # Include sub-makefiles.
- include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
--if defined(VBOX_WITH_INTEL_PXE) || defined(VBOX_ONLY_EXTPACKS)
-- include $(PATH_SUB_CURRENT)/PC/PXE/Makefile.kmk
--else if defined(VBOX_WITH_PXE_ROM) && !defined(VBOX_WITHOUT_ETHERBOOT)
-+if defined(VBOX_WITH_PXE_ROM) && !defined(VBOX_WITHOUT_ETHERBOOT)
- include $(PATH_SUB_CURRENT)/PC/Etherboot-src/Makefile.kmk
- endif
- if !defined(VBOX_ONLY_EXTPACKS) # Goes on almost to the end of the file.
-@@ -57,9 +55,6 @@
- ifdef VBOX_WITH_USB
- VBoxDDU_DEFS += VBOX_WITH_USB IN_USBLIB
- VBoxDDU_SDKS.win = WINPSDK W2K3DDK
-- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-- VBoxDDU_DEFS += VBOX_WITH_EHCI_IMPL
-- endif
- ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
- VBoxDDU_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN
- endif
-@@ -122,9 +117,6 @@
- VBoxDD_DEFS = VBOX_ACPI
- ifdef VBOX_WITH_USB
- VBoxDD_DEFS += VBOX_WITH_USB
-- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-- VBoxDD_DEFS += VBOX_WITH_EHCI_IMPL
-- endif
- endif
- ifdef VBOX_WITH_VUSB
- VBoxDD_DEFS += VBOX_WITH_VUSB
-@@ -446,11 +438,6 @@
- endif
- ifdef VBOX_WITH_USB
- DevicesR3_DEFS += VBOX_WITH_USB
-- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-- DevicesR3_DEFS += VBOX_WITH_EHCI_IMPL
-- DevicesR3_SOURCES += \
-- USB/DevEHCI.cpp
-- endif
- endif
- if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
- DevicesR3_DEFS += VBOX_WITH_PCI_PASSTHROUGH_IMPL
-@@ -607,11 +594,6 @@
-
- ifdef VBOX_WITH_USB
- VBoxDDGC_DEFS += VBOX_WITH_USB
-- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-- VBoxDDGC_DEFS += VBOX_WITH_EHCI_IMPL
-- VBoxDDGC_SOURCES += \
-- USB/DevEHCI.cpp
-- endif
- endif
-
- ifdef VBOX_WITH_VIDEOHWACCEL
-@@ -711,11 +693,6 @@
- endif
- ifdef VBOX_WITH_USB
- VBoxDDR0_DEFS += VBOX_WITH_USB
-- if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-- VBoxDDR0_DEFS += VBOX_WITH_EHCI_IMPL
-- VBoxDDR0_SOURCES += \
-- USB/DevEHCI.cpp
-- endif
- endif
-
- if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
-@@ -1204,49 +1181,5 @@
-
- endif # !VBOX_ONLY_EXTPACKS
-
--if defined(VBOX_WITH_EXTPACK_PUEL) && defined(VBOX_WITH_EXTPACK_PUEL_BUILD)
-- #
-- # The EHCI (USB 2.0) Extension Pack Modules.
-- #
-- if defined(VBOX_WITH_USB)
-- DLLS += VBoxEhciR3
-- VBoxEhciR3_TEMPLATE = VBoxR3ExtPackPuel
-- VBoxEhciR3_SOURCES = USB/DevEHCI.cpp
--
-- SYSMODS += VBoxEhciR0
-- VBoxEhciR0_TEMPLATE = VBoxR0ExtPackPuel
-- VBoxEhciR0_SOURCES = USB/DevEHCI.cpp
--
-- ifdef VBOX_WITH_RAW_MODE
-- SYSMODS += VBoxEhciRC
-- VBoxEhciRC_TEMPLATE = VBoxRcExtPackPuel
-- VBoxEhciRC_SOURCES = USB/DevEHCI.cpp
-- endif
-- endif
--
-- if defined(VBOX_WITH_PCI_PASSTHROUGH)
-- DLLS += VBoxPciRawR3
-- VBoxPciRawR3_TEMPLATE = VBoxR3ExtPackPuel
-- VBoxPciRawR3_SOURCES = Bus/DevPciRaw.cpp
--
-- DLLS += VBoxPciRawDrv
-- VBoxPciRawDrv_TEMPLATE = VBoxR3ExtPackPuel
-- VBoxPciRawDrv_SOURCES = Bus/DrvPciRaw.cpp
--
-- SYSMODS += VBoxPciRawR0
-- VBoxPciRawR0_TEMPLATE = VBoxR0ExtPackPuel
-- VBoxPciRawR0_SOURCES = Bus/DevPciRaw.cpp
--
-- Bus/DevPciRaw.cpp_INCS = Bus
-- endif
--
-- #
-- # The Intel PXE rom.
-- #
-- INSTALLS += VBoxExtPackPuelInsRoms
-- VBoxExtPackPuelInsRoms_TEMPLATE = VBoxInsExtPackPuel
-- VBoxExtPackPuelInsRoms_SOURCES = PC/PXE/PXE-Intel.rom=>PXE-Intel.rom
--endif # VBOX_WITH_EXTPACK_PUEL
--
- include $(KBUILD_PATH)/subfooter.kmk
-
---- VirtualBox-4.1.18.orig/src/VBox/Main/Makefile.kmk 2012-07-24 23:38:25.304126039 -0300
-+++ VirtualBox-4.1.18/src/VBox/Main/Makefile.kmk 2012-07-24 23:38:25.350789964 -0300
-@@ -230,14 +230,12 @@
- $(if $(VBOX_USB_WITH_SYSFS),VBOX_USB_WITH_SYSFS,) \
- $(if $(VBOX_USB_WITH_INOTIFY),VBOX_USB_WITH_INOTIFY,) \
- $(if $(VBOX_WITH_LIVE_MIGRATION),VBOX_WITH_LIVE_MIGRATION,) \
-- $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \
- $(if $(VBOX_WITH_VUSB),VBOX_WITH_VUSB,) \
- $(if $(VBOX_WITH_S3),VBOX_WITH_S3,) \
- $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,)
- ifdef VBOX_WITH_USB
- VBoxSVC_DEFS += \
- VBOX_WITH_USB \
-- $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI,) \
- $(if $(VBOX_WITH_NEW_USB_CODE_ON_DARWIN),VBOX_WITH_NEW_USB_CODE_ON_DARWIN,)
- endif
- VBoxSVC_DEFS.win += VBOX_COM_OUTOFPROC_MODULE
-@@ -290,7 +288,6 @@
- src-all/SharedFolderImpl.cpp \
- src-all/VirtualBoxBase.cpp \
- src-all/VirtualBoxErrorInfoImpl.cpp \
-- $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \
- src-server/ApplianceImpl.cpp \
- src-server/ApplianceImplExport.cpp \
- src-server/ApplianceImplImport.cpp \
-@@ -543,8 +540,6 @@
- $(if $(VBOX_WITH_HGSMI),VBOX_WITH_HGSMI,) \
- $(if $(VBOX_WITH_VIDEOHWACCEL),VBOX_WITH_VIDEOHWACCEL,) \
- $(if $(VBOX_WITH_USB),VBOX_WITH_USB,) \
-- $(if-expr defined(VBOX_WITH_EHCI) && defined(VBOX_WITH_USB),VBOX_WITH_EHCI,) \
-- $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \
- $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,)
-
- VBoxC_DEFS.darwin.x86 = VBOX_WITH_2X_4GB_ADDR_SPACE
-@@ -602,7 +597,6 @@
- src-all/SharedFolderImpl.cpp \
- src-all/VirtualBoxBase.cpp \
- src-all/VirtualBoxErrorInfoImpl.cpp \
-- $(if $(VBOX_WITH_EXTPACK),src-all/ExtPackManagerImpl.cpp src-all/ExtPackUtil.cpp,) \
- $(if $(VBOX_WITH_USB_VIDEO),src-client/UsbWebcamInterface.cpp,) \
- $(if $(VBOX_WITH_USB_CARDREADER),src-client/UsbCardReader.cpp,) \
- src-client/AdditionsFacilityImpl.cpp \
-@@ -711,22 +705,6 @@
- endif # !win
-
-
--#
--# The VBoxExtPackHelperApp.
--#
--ifdef VBOX_WITH_EXTPACK
-- PROGRAMS += VBoxExtPackHelperApp
-- VBoxExtPackHelperApp_TEMPLATE = VBoxR3SetUidToRoot
-- VBoxExtPackHelperApp_LDFLAGS.darwin = -framework Security
-- VBoxExtPackHelperApp_LDFLAGS.win = /SUBSYSTEM:windows
-- VBoxExtPackHelperApp_SOURCES = \
-- src-helper-apps/VBoxExtPackHelperApp.cpp \
-- src-all/ExtPackUtil.cpp
-- VBoxExtPackHelperApp_LIBS = \
-- $(LIB_RUNTIME)
--endif # VBOX_WITH_EXTPACK
--
--
- endif # !VBOX_ONLY_SDK (the ifndef is far above)
-
-
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/Makefile.kmk 2012-07-24 23:25:04.575825175 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/Makefile.kmk 2012-07-24 23:25:04.619156084 -0300
-@@ -888,7 +888,6 @@
- $(VBOX_MACOSX_ICON_FILE)=>Resources/virtualbox.icns \
- $(VBOX_BRAND_GUI_VBOX_64PX_PNG)=>Resources/virtualbox.png \
- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vbox.icns=>Resources/virtualbox-vbox.icns \
-- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vbox-extpack.icns=>Resources/virtualbox-vbox-extpack.icns \
- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ovf.icns=>Resources/virtualbox-ovf.icns \
- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ova.icns=>Resources/virtualbox-ova.icns \
- $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vdi.icns=>Resources/virtualbox-vdi.icns \
---- VirtualBox-4.1.18.orig/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-24 23:28:17.985011038 -0300
-+++ VirtualBox-4.1.18/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc 2012-07-24 23:28:18.051673913 -0300
-@@ -167,18 +167,6 @@
- <file alias="status_check_32px.png">images/status_check_32px.png</file>
- <file alias="status_error_16px.png">images/status_error_16px.png</file>
- <file alias="status_error_32px.png">images/status_error_32px.png</file>
-- <file alias="extension_pack_16px.png">images/extension_pack_16px.png</file>
-- <file alias="extension_pack_disabled_16px.png">images/extension_pack_disabled_16px.png</file>
-- <file alias="extension_pack_32px.png">images/extension_pack_32px.png</file>
-- <file alias="extension_pack_disabled_32px.png">images/extension_pack_disabled_32px.png</file>
-- <file alias="extension_pack_install_16px.png">images/extension_pack_install_16px.png</file>
-- <file alias="extension_pack_install_disabled_16px.png">images/extension_pack_install_disabled_16px.png</file>
-- <file alias="extension_pack_install_32px.png">images/extension_pack_install_32px.png</file>
-- <file alias="extension_pack_install_disabled_32px.png">images/extension_pack_install_disabled_32px.png</file>
-- <file alias="extension_pack_uninstall_16px.png">images/extension_pack_uninstall_16px.png</file>
-- <file alias="extension_pack_uninstall_disabled_16px.png">images/extension_pack_uninstall_disabled_16px.png</file>
-- <file alias="extension_pack_uninstall_32px.png">images/extension_pack_uninstall_32px.png</file>
-- <file alias="extension_pack_uninstall_disabled_32px.png">images/extension_pack_uninstall_disabled_32px.png</file>
- <file alias="proxy_16px.png">images/proxy_16px.png</file>
- <file alias="proxy_disabled_16px.png">images/proxy_disabled_16px.png</file>
- <file alias="proxy_32px.png">images/proxy_32px.png</file>
---- VirtualBox-4.1.18.orig/src/VBox/Installer/linux/Makefile.kmk 2012-07-25 00:32:00.780012664 -0300
-+++ VirtualBox-4.1.18/src/VBox/Installer/linux/Makefile.kmk 2012-07-25 00:32:00.806677728 -0300
-@@ -170,11 +170,6 @@
- VBox.sh \
- VBox.png
-
--ifdef VBOX_WITH_EXTPACK
-- VBOX_LNX_STRIP_BIN += \
-- VBoxExtPackHelperApp
--endif
--
- # Qt4 GUI
- ifdef VBOX_WITH_QTGUI
- include $(PATH_ROOT)/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk
-@@ -286,7 +281,7 @@
-
- VBOX_MIME_ICONS = \
- $(addprefix $(PATH_ROOT)/src/VBox/Resources/other/,\
-- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \
-+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \
- $(foreach s,16 20 24 32 48 64 72 96 128 256,\
- virtualbox-$(f)-$(s)px.png=>$(s)x$(s)/virtualbox-$(f).png)))
-
---- VirtualBox-4.1.18.orig/src/VBox/Installer/win/Makefile.kmk 2012-07-25 00:34:52.253398525 -0300
-+++ VirtualBox-4.1.18/src/VBox/Installer/win/Makefile.kmk 2012-07-25 00:34:52.300062531 -0300
-@@ -435,7 +435,6 @@
- -E 'VBOX_WITH_DEBUGGER_GUI=$(if-expr defined(VBOX_WITH_DEBUGGER_GUI) && defined(VBOX_WITH_QTGUI),yes,no)' \
- -E 'VBOX_WITH_DOCS_PACKING=$(if $(VBOX_WITH_DOCS_PACKING),yes,no)' \
- -E 'VBOX_WITH_EFIFW_PACKING=$(if $(VBOX_WITH_EFIFW_PACKING),yes,no)' \
-- -E 'VBOX_WITH_EXTPACK=$(if $(VBOX_WITH_EXTPACK),yes,no)' \
- -E 'VBOX_WITH_GUEST_CONTROL=$(if $(VBOX_WITH_GUEST_CONTROL),yes,no)' \
- -E 'VBOX_WITH_GUEST_PROPS=$(if $(VBOX_WITH_GUEST_PROPS),yes,no)' \
- -E 'VBOX_WITH_NETFLT=$(if $(VBOX_WITH_NETFLT),yes,no)' \
---- VirtualBox-4.1.18.orig/src/VBox/Installer/darwin/Makefile.kmk 2012-07-25 00:36:55.929571374 -0300
-+++ VirtualBox-4.1.18/src/VBox/Installer/darwin/Makefile.kmk 2012-07-25 00:36:55.959569630 -0300
-@@ -629,7 +629,6 @@
- MacOS/VirtualBoxVM \
- MacOS/VBoxNetAdpCtl \
- MacOS/VBoxNetDHCP \
-- MacOS/VBoxExtPackHelperApp \
- MacOS/VBoxBalloonCtrl
- ifdef VBOX_WITH_WEBSERVICES
- VBOX_DI_VBAPP_PROGS += \
-@@ -659,7 +658,6 @@
- Resources/virtualbox.icns \
- Resources/virtualbox.png \
- Resources/virtualbox-vbox.icns \
-- Resources/virtualbox-vbox-extpack.icns \
- Resources/virtualbox-ovf.icns \
- Resources/virtualbox-ova.icns \
- Resources/virtualbox-vdi.icns \
---- VirtualBox-4.1.18/src/VBox/Installer/solaris/Makefile.kmk.orig 2012-07-25 00:38:48.476398293 -0300
-+++ VirtualBox-4.1.18/src/VBox/Installer/solaris/Makefile.kmk 2012-07-25 00:38:48.516396159 -0300
-@@ -185,12 +185,12 @@
-
- VBOX_MIME_ICONS = \
- $(addprefix $(PATH_ROOT)/src/VBox/Resources/other/,\
-- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \
-+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \
- $(foreach s,16 20 24 32 48 64 72 96 128 256,\
- virtualbox-$(f)-$(s)px.png=>$(s)x$(s)/mimetypes/virtualbox-$(f).png)))
-
- SOLARIS_COMMON_ICONS = \
-- $(foreach f,ova ovf vbox vbox-extpack vdi vmdk vhd hdd, \
-+ $(foreach f,ova ovf vbox vdi vmdk vhd hdd, \
- $(foreach s,16 20 24 32 48 64 72 96 128 256,\
- $(s)x$(s)/mimetypes/virtualbox-$(f).png))
-
-@@ -210,7 +210,6 @@
- $(if $(VBOX_WITH_VBOXSDL),VBoxSDL,) \
- $(if $(VBOX_WITH_NETADP),VBoxNetAdpCtl,) \
- VBoxNetDHCP \
-- $(if $(VBOX_WITH_EXTPACK),VBoxExtPackHelperApp,) \
- VBoxSVC \
- $(if $(VBOX_WITH_CROGL),VBoxTestOGL,) \
- VBoxXPCOMIPCD \
---- VirtualBox-4.1.18.orig/src/VBox/Runtime/Makefile.kmk 2012-07-25 00:40:58.745522450 -0300
-+++ VirtualBox-4.1.18/src/VBox/Runtime/Makefile.kmk 2012-07-25 00:40:58.782186960 -0300
-@@ -53,15 +53,6 @@
- #
- LIBRARIES += RuntimeR3 RuntimeBldProg
-
--else ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
-- #
-- # Build docs only - need just regular R3 runtime.
-- #
-- LIBRARIES += RuntimeBldProg
-- LIBRARIES.solaris += RuntimeR0Stub
-- LIBRARIES.win += RuntimeR0Stub RuntimeRCStub
-- include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
--
- else # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_TESTSUITE && !VBOX_ONLY_DOCS
-
- #
diff --git a/libre/virtualbox-libre-modules/linux34.patch b/libre/virtualbox-libre-modules/linux34.patch
deleted file mode 100644
index 05ec78557..000000000
--- a/libre/virtualbox-libre-modules/linux34.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur VirtualBox-4.1.14.orig/Config.kmk VirtualBox-4.1.14/Config.kmk
---- VirtualBox-4.1.14.orig/Config.kmk 2012-04-26 16:56:21.000000000 +0000
-+++ VirtualBox-4.1.14/Config.kmk 2012-05-21 14:35:22.348398884 +0000
-@@ -2856,7 +2856,7 @@
- TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow \
- -fno-reorder-blocks -ffreestanding -fno-asynchronous-unwind-tables -funit-at-a-time \
- -Wno-sign-compare -Wdeclaration-after-statement
--TEMPLATE_VBOXR0DRV_CXXFLAGS = $(filter-out -Wstrict-prototypes -Wno-pointer-sign -ffreestanding -Wdeclaration-after-statement -Werror-implicit-function-declaration,$(TEMPLATE_VBOXR0DRV_CFLAGS) $(TEMPLATE_VBOXR0DRV_CFLAGS.$(KBUILD_TARGET_ARCH))) -fno-exceptions -fno-rtti
-+TEMPLATE_VBOXR0DRV_CXXFLAGS = $(filter-out -Wstrict-prototypes -Wno-pointer-sign -ffreestanding -Wdeclaration-after-statement -Werror-implicit-function-declaration,$(TEMPLATE_VBOXR0DRV_CFLAGS) $(TEMPLATE_VBOXR0DRV_CFLAGS.$(KBUILD_TARGET_ARCH))) -fno-exceptions -fno-rtti -fpermissive
- ifndef VBOX_LINUX_VERSION_2_4
- # 2.6
- TEMPLATE_VBOXR0DRV_SYSSUFF = .ko
diff --git a/libre/virtualbox-libre-modules/os_blag.png b/libre/virtualbox-libre-modules/os_blag.png
deleted file mode 100644
index 61995ca10..000000000
--- a/libre/virtualbox-libre-modules/os_blag.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_blag_64.png b/libre/virtualbox-libre-modules/os_blag_64.png
deleted file mode 100644
index aa4463a97..000000000
--- a/libre/virtualbox-libre-modules/os_blag_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_dragora.png b/libre/virtualbox-libre-modules/os_dragora.png
deleted file mode 100644
index d1df45880..000000000
--- a/libre/virtualbox-libre-modules/os_dragora.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_dragora_64.png b/libre/virtualbox-libre-modules/os_dragora_64.png
deleted file mode 100644
index 64bcecf20..000000000
--- a/libre/virtualbox-libre-modules/os_dragora_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_dynebolic.png b/libre/virtualbox-libre-modules/os_dynebolic.png
deleted file mode 100644
index 67b07d4c0..000000000
--- a/libre/virtualbox-libre-modules/os_dynebolic.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_gnewsense.png b/libre/virtualbox-libre-modules/os_gnewsense.png
deleted file mode 100644
index 76d9e38b3..000000000
--- a/libre/virtualbox-libre-modules/os_gnewsense.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_gnewsense_64.png b/libre/virtualbox-libre-modules/os_gnewsense_64.png
deleted file mode 100644
index 8859c34e8..000000000
--- a/libre/virtualbox-libre-modules/os_gnewsense_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_gnu.png b/libre/virtualbox-libre-modules/os_gnu.png
deleted file mode 100644
index 26c4550f9..000000000
--- a/libre/virtualbox-libre-modules/os_gnu.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_gnu_64.png b/libre/virtualbox-libre-modules/os_gnu_64.png
deleted file mode 100644
index 4161634e9..000000000
--- a/libre/virtualbox-libre-modules/os_gnu_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_gnuhurd.png b/libre/virtualbox-libre-modules/os_gnuhurd.png
deleted file mode 100644
index 26c4550f9..000000000
--- a/libre/virtualbox-libre-modules/os_gnuhurd.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_gnulinux.png b/libre/virtualbox-libre-modules/os_gnulinux.png
deleted file mode 100644
index 26c4550f9..000000000
--- a/libre/virtualbox-libre-modules/os_gnulinux.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_gnulinux_64.png b/libre/virtualbox-libre-modules/os_gnulinux_64.png
deleted file mode 100644
index 4161634e9..000000000
--- a/libre/virtualbox-libre-modules/os_gnulinux_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_musix.png b/libre/virtualbox-libre-modules/os_musix.png
deleted file mode 100644
index fb7b94577..000000000
--- a/libre/virtualbox-libre-modules/os_musix.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_musix_64.png b/libre/virtualbox-libre-modules/os_musix_64.png
deleted file mode 100644
index a1bbbbf3a..000000000
--- a/libre/virtualbox-libre-modules/os_musix_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_os64base.png b/libre/virtualbox-libre-modules/os_os64base.png
deleted file mode 100644
index 7aec20314..000000000
--- a/libre/virtualbox-libre-modules/os_os64base.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_os64base.xcf b/libre/virtualbox-libre-modules/os_os64base.xcf
deleted file mode 100644
index d8e28e35e..000000000
--- a/libre/virtualbox-libre-modules/os_os64base.xcf
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_osbase.png b/libre/virtualbox-libre-modules/os_osbase.png
deleted file mode 100644
index 00f197fca..000000000
--- a/libre/virtualbox-libre-modules/os_osbase.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_osbase.xcf b/libre/virtualbox-libre-modules/os_osbase.xcf
deleted file mode 100644
index c4463c857..000000000
--- a/libre/virtualbox-libre-modules/os_osbase.xcf
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_parabola.png b/libre/virtualbox-libre-modules/os_parabola.png
deleted file mode 100644
index 757abc484..000000000
--- a/libre/virtualbox-libre-modules/os_parabola.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_parabola_64.png b/libre/virtualbox-libre-modules/os_parabola_64.png
deleted file mode 100644
index 5ac7c2767..000000000
--- a/libre/virtualbox-libre-modules/os_parabola_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_trisquel.png b/libre/virtualbox-libre-modules/os_trisquel.png
deleted file mode 100644
index c6f0d3d7a..000000000
--- a/libre/virtualbox-libre-modules/os_trisquel.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_trisquel_64.png b/libre/virtualbox-libre-modules/os_trisquel_64.png
deleted file mode 100644
index ebca3dd43..000000000
--- a/libre/virtualbox-libre-modules/os_trisquel_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_ututo.png b/libre/virtualbox-libre-modules/os_ututo.png
deleted file mode 100644
index e1dffb575..000000000
--- a/libre/virtualbox-libre-modules/os_ututo.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_ututo_64.png b/libre/virtualbox-libre-modules/os_ututo_64.png
deleted file mode 100644
index 158468e0a..000000000
--- a/libre/virtualbox-libre-modules/os_ututo_64.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/os_venenux.png b/libre/virtualbox-libre-modules/os_venenux.png
deleted file mode 100644
index 5e0c1585d..000000000
--- a/libre/virtualbox-libre-modules/os_venenux.png
+++ /dev/null
Binary files differ
diff --git a/libre/virtualbox-libre-modules/virtualbox-libre-modules.install b/libre/virtualbox-libre-modules/virtualbox-libre-modules.install
deleted file mode 100644
index 8605cf20a..000000000
--- a/libre/virtualbox-libre-modules/virtualbox-libre-modules.install
+++ /dev/null
@@ -1,19 +0,0 @@
-post_install() {
-cat << EOF
-===> You must load vboxdrv module before starting VirtualBox:
-===> # modprobe vboxdrv
-EOF
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_upgrade() {
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
- echo 'In order to use the new version, reload all virtualbox modules manually.'
-}
-
-post_remove() {
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
diff --git a/libre/virtualbox-libre-modules/virtualbox-libre-parabola-modules.install b/libre/virtualbox-libre-modules/virtualbox-libre-parabola-modules.install
deleted file mode 100644
index c3419c991..000000000
--- a/libre/virtualbox-libre-modules/virtualbox-libre-parabola-modules.install
+++ /dev/null
@@ -1,17 +0,0 @@
-post_install() {
-cat << EOF
-===> You may want to load vboxguest, vboxsf and vboxvideo
-EOF
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_upgrade() {
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_remove() {
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
diff --git a/libre/virtualbox-libre/.directory b/libre/virtualbox-libre/.directory
deleted file mode 100644
index 502696f2f..000000000
--- a/libre/virtualbox-libre/.directory
+++ /dev/null
@@ -1,4 +0,0 @@
-[Dolphin]
-Timestamp=2012,8,8,14,52,43
-Version=3
-ViewMode=2
diff --git a/libre/virtualbox-libre/003-remove_qt_fa_IR.patch b/libre/virtualbox-libre/003-remove_qt_fa_IR.patch
deleted file mode 100644
index 58e6235d5..000000000
--- a/libre/virtualbox-libre/003-remove_qt_fa_IR.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-# seblu 10/2012 - fucking farci removing patch
-
---- a/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk 2012-10-18 16:22:52.000000000 +0200
-+++ b/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk 2012-10-19 03:03:52.640867388 +0200
-@@ -23,7 +23,6 @@
- de \
- en \
- es \
-- fa_IR \
- hu \
- it \
- ja \
-
---- a/src/VBox/Frontends/VirtualBox/VBoxUI.pro 2012-10-18 16:22:47.000000000 +0200
-+++ b/src/VBox/Frontends/VirtualBox/VBoxUI.pro 2012-10-20 02:48:37.525765901 +0200
-@@ -63,7 +63,6 @@
- nls/VirtualBox_es.ts \
- nls/VirtualBox_eu.ts \
- nls/VirtualBox_fi.ts \
-- nls/VirtualBox_fa_IR.ts \
- nls/VirtualBox_fr.ts \
- nls/VirtualBox_gl_ES.ts \
- nls/VirtualBox_hu.ts \
diff --git a/libre/virtualbox-libre/change_default_driver_dir.patch b/libre/virtualbox-libre/change_default_driver_dir.patch
deleted file mode 100644
index d8531499d..000000000
--- a/libre/virtualbox-libre/change_default_driver_dir.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -Nur VirtualBox-4.1.0_OSE.orig/src/VBox/Additions/common/crOpenGL/fakedri_drv.c VirtualBox-4.1.0_OSE/src/VBox/Additions/common/crOpenGL/fakedri_drv.c
---- VirtualBox-4.1.0_OSE.orig/src/VBox/Additions/common/crOpenGL/fakedri_drv.c 2011-07-19 15:11:37.903456612 +0000
-+++ VirtualBox-4.1.0_OSE/src/VBox/Additions/common/crOpenGL/fakedri_drv.c 2011-07-19 15:12:41.024021274 +0000
-@@ -36,13 +36,8 @@
- //#define DEBUG_DRI_CALLS
-
- //@todo this could be different...
--#ifdef RT_ARCH_AMD64
--# define DRI_DEFAULT_DRIVER_DIR "/usr/lib64/dri:/usr/lib/dri:/usr/lib/x86_64-linux-gnu/dri"
-+# define DRI_DEFAULT_DRIVER_DIR "/usr/lib/xorg/modules/dri"
- # define DRI_XORG_DRV_DIR "/usr/lib/xorg/modules/drivers/"
--#else
--# define DRI_DEFAULT_DRIVER_DIR "/usr/lib/dri:/usr/lib/i386-linux-gnu/dri"
--# define DRI_XORG_DRV_DIR "/usr/lib/xorg/modules/drivers/"
--#endif
-
- #ifdef DEBUG_DRI_CALLS
- #define SWDRI_SHOWNAME(pext, func) \
diff --git a/libre/virtualbox-libre/gsoap.patch b/libre/virtualbox-libre/gsoap.patch
deleted file mode 100644
index c49caa720..000000000
--- a/libre/virtualbox-libre/gsoap.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.orig 2012-03-14 08:40:02.447527213 +0000
-+++ configure 2012-03-14 09:05:01.535432453 +0000
-@@ -1959,7 +1959,7 @@
- else
- cnf_append "VBOX_GSOAP_CXX_SOURCES" ""
- fi
-- cnf_append "VBOX_GSOAP_CXX_LIBS" "libgsoap++"
-+ cnf_append "VBOX_GSOAP_CXX_LIBS" "libgsoapssl++ libz"
- log_success "found"
- else
- log_failure "stlvector.h not found -- disabling webservice"
diff --git a/libre/virtualbox-libre/ipv6_vnc.patch b/libre/virtualbox-libre/ipv6_vnc.patch
deleted file mode 100644
index 8f50aba1c..000000000
--- a/libre/virtualbox-libre/ipv6_vnc.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -aur vanilla/VirtualBox-4.1.18/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp changed/VirtualBox-4.1.18/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp
---- vanilla/VirtualBox-4.1.18/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp 2012-06-20 15:15:53.000000000 +0200
-+++ changed/VirtualBox-4.1.18/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp 2012-07-16 16:24:22.448349886 +0200
-@@ -88,8 +88,16 @@
-
- vncServer = rfbGetScreen(0, NULL, mWidth, mHeight, 8, 3, 1);
- vncServer->screenData = (void*)this;
-+#ifdef LIBVNCSERVER_IPv6
-+ if (mVncPort) {
-+ vncServer->port = mVncPort;
-+ vncServer->ipv6port = mVncPort;
-+ }
-+#else
- if (mVncPort)
- vncServer->port = mVncPort;
-+#endif
-+
- char *pszDesktopName;
- rc = RTStrAPrintf(&pszDesktopName, "%s - VirtualBox", pszName);
- if (rc >= 0)
diff --git a/libre/virtualbox-libre/vbox-service.conf b/libre/virtualbox-libre/vbox-service.conf
deleted file mode 100644
index 9d4ec629f..000000000
--- a/libre/virtualbox-libre/vbox-service.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-# VBoxService -h
-VBOX_SERVICE_OPTION=""
diff --git a/libre/virtualbox-libre/vbox-service.rc b/libre/virtualbox-libre/vbox-service.rc
deleted file mode 100644
index 96233f66d..000000000
--- a/libre/virtualbox-libre/vbox-service.rc
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/conf.d/vbox-service
-
-name=VBoxService
-PID=$(pidof -o %PPID $name)
-
-case "$1" in
- start)
- stat_busy "Starting $name service"
- [[ -z "$PID" ]] && ${name} $VBOX_SERVICE_OPTION &>/dev/null \
- && { add_daemon vbox-service; stat_done; } \
- || { stat_fail; exit 1; }
- ;;
- stop)
- stat_busy "Stopping $name service"
- [[ -n "$PID" ]] && kill $PID &>/dev/null \
- && { rm_daemon vbox-service; stat_done; } \
- || { stat_fail; exit 1; }
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- status)
- stat_busy "Checking $name status";
- ck_status vbox-service
- ;;
- *)
- echo "usage: $0 {start|stop|restart|status}"
- exit 1
-esac
-
-exit 0
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/virtualbox-libre/vboxbuild b/libre/virtualbox-libre/vboxbuild
deleted file mode 100644
index 27519950f..000000000
--- a/libre/virtualbox-libre/vboxbuild
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/bash
-
-. /etc/vbox/vbox.cfg
-
-MODLIST=()
-LOG="/var/log/vbox-install.log"
->| "$LOG"
-
-stat_busy() {
- printf '==> %s ... ' "$1"
-}
-
-stat_done() {
- echo 'done'
-}
-
-stat_fail() {
- echo 'failed'
-}
-
-if [[ $INSTALL_DIR ]]; then
- VBOXMANAGE=$INSTALL_DIR/VBoxManage
- BUILDVBOXDRV=$INSTALL_DIR/src/vboxdrv/build_in_tmp
- BUILDVBOXNETFLT=$INSTALL_DIR/src/vboxnetflt/build_in_tmp
- BUILDVBOXNETADP=$INSTALL_DIR/src/vboxnetadp/build_in_tmp
- BUILDVBOXPCI=$INSTALL_DIR/src/vboxpci/build_in_tmp
-else
- echo "error: missing vbox.cfg"
- exit 1
-fi
-
-if [[ -f /proc/modules ]]; then
- IFS=$'\n' read -r -d '' -a MODLIST < \
- <(grep -oE '^vbox(pci|netflt|netadp|drv)' /proc/modules)
-fi
-
-if (( ${#MODLIST[*]} )); then
- stat_busy "Unloading VirtualBox kernel libre modules"
- modprobe -ar "${MODLIST[@]}" && stat_done || stat_fail
-fi
-
-for kdir in /usr/lib/modules/[2-3]*; do
- if [[ ! -d $kdir/kernel ]]; then
- # found a stale kernel
- mods=("$kdir/extramodules"{drv,netadp,netflt,pci}.ko*)
- if (( ${#mods[@]} )); then
- stat_busy "Removing all old VirtualBox kernel libre modules"
- if rm -f "${mods[@]}" &&
- rmdir -p --ignore-fail-on-non-empty "$kdir/extramodules" 2>/dev/null; then
- stat_done
- else
- stat_fail
- fi
- fi
- fi
-done
-
-# default to the currently running kernel
-if (( ! $# )); then
- set -- $(uname -r)
-fi
-
-for kernver; do
- export KERN_DIR=/usr/lib/modules/$kernver/build
- export MODULE_DIR=/usr/lib/modules/$kernver/extramodules
- if [[ ! -d $KERN_DIR ]]; then
- printf "error: \`%s' does not appear to be a valid kernel libre build directory.\n" \
- "$KERN_DIR"
- continue
- fi
-
- stat_busy "Recompiling VirtualBox kernel libre modules ($kernver)"
- if ! $BUILDVBOXDRV \
- --save-module-symvers /tmp/vboxdrv-Module.symvers \
- --no-print-directory install >> $LOG 2>&1; then
- echo "Look at $LOG to find out what went wrong"
- stat_fail
- fi
- for build in BUILDVBOX{NETFLT,NETADP,PCI}; do
- if ! ${!build} \
- --use-module-symvers /tmp/vboxdrv-Module.symvers \
- --no-print-directory install >> $LOG 2>&1; then
- echo "Look at $LOG to find out what went wrong"
- stat_fail
- fi
- done
- gzip -f9 "$MODULE_DIR"/*.ko
- depmod "$kernver"
- stat_done
-done
-
-if (( ${#MODLIST[*]} )); then
- stat_busy "Reloading VirtualBox kernel libre modules"
- modprobe -a "${MODLIST[@]}" && stat_done || stat_fail
-fi
diff --git a/libre/virtualbox-libre/vboxdrv-reference.patch b/libre/virtualbox-libre/vboxdrv-reference.patch
deleted file mode 100644
index 51fd6361c..000000000
--- a/libre/virtualbox-libre/vboxdrv-reference.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-diff -Nur VirtualBox-4.1.6_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp VirtualBox-4.1.6_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp
---- VirtualBox-4.1.6_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp 2011-11-04 17:22:13.636083176 +0000
-+++ VirtualBox-4.1.6_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp 2011-11-04 17:48:58.915541368 +0000
-@@ -67,38 +67,34 @@
-
- /* XXX Temporarily. Don't rely on the user to hack the Makefile himself! */
- QString g_QStrHintLinuxNoMemory = QApplication::tr(
-- "This error means that the kernel driver was either not able to "
-+ "This error means that the kernel libre driver was either not able to "
- "allocate enough memory or that some mapping operation failed."
- );
-
- QString g_QStrHintLinuxNoDriver = QApplication::tr(
-- "The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or "
-+ "The VirtualBox Linux-libre kernel driver (vboxdrv) is either not loaded or "
- "there is a permission problem with /dev/vboxdrv. Please reinstall the kernel "
-- "module by executing<br/><br/>"
-- " <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>"
-- "as root. If it is available in your distribution, you should install the "
-- "DKMS package first. This package keeps track of Linux kernel changes and "
-- "recompiles the vboxdrv kernel module if necessary."
-+ "libre module by executing<br/><br/>"
-+ " <font color=blue>'pacman -S virtualbox-libre-host-modules'</font><br/><br/>"
-+ "as root. If you don't use our stock kernel libre, install virtualbox-libre-host-source and "
-+ "execute dkms autoinstall ."
- );
-
- QString g_QStrHintOtherWrongDriverVersion = QApplication::tr(
-- "The VirtualBox kernel modules do not match this version of "
-+ "The VirtualBox kernel libre modules do not match this version of "
- "VirtualBox. The installation of VirtualBox was apparently not "
- "successful. Please try completely uninstalling and reinstalling "
- "VirtualBox."
- );
-
- QString g_QStrHintLinuxWrongDriverVersion = QApplication::tr(
-- "The VirtualBox kernel modules do not match this version of "
-- "VirtualBox. The installation of VirtualBox was apparently not "
-- "successful. Executing<br/><br/>"
-- " <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>"
-- "may correct this. Make sure that you do not mix the "
-- "OSE version and the PUEL version of VirtualBox."
-+ "The VirtualBox kernel libre modules do not match this version of "
-+ "VirtualBox. Reload the modules or if you don't use our stock kernel libre execute<br/><br/> "
-+ " <font color=blue>'dkms autoinstall'</font><br/><br/>"
- );
-
- QString g_QStrHintOtherNoDriver = QApplication::tr(
-- "Make sure the kernel module has been loaded successfully."
-+ "Make sure the kernel libre module has been loaded successfully."
- );
-
- /* I hope this isn't (C), (TM) or (R) Microsoft support ;-) */
-@@ -590,7 +586,7 @@
- case VERR_VM_DRIVER_NOT_INSTALLED:
- case VERR_VM_DRIVER_LOAD_ERROR:
- msgText += QApplication::tr (
-- "<b>Cannot access the kernel driver!</b><br/><br/>");
-+ "<b>Cannot access the kernel libre driver!</b><br/><br/>");
- # ifdef RT_OS_LINUX
- msgText += g_QStrHintLinuxNoDriver;
- # else
-@@ -603,7 +599,7 @@
- break;
- # endif
- case VERR_VM_DRIVER_NOT_ACCESSIBLE:
-- msgText += QApplication::tr ("Kernel driver not accessible");
-+ msgText += QApplication::tr ("Kernel libre driver not accessible");
- break;
- case VERR_VM_DRIVER_VERSION_MISMATCH:
- # ifdef RT_OS_LINUX
-diff -Nur VirtualBox-4.1.6_OSE.orig/src/VBox/Installer/linux/VBox.sh VirtualBox-4.1.6_OSE/src/VBox/Installer/linux/VBox.sh
---- VirtualBox-4.1.6_OSE.orig/src/VBox/Installer/linux/VBox.sh 2011-11-04 17:22:13.549415814 +0000
-+++ VirtualBox-4.1.6_OSE/src/VBox/Installer/linux/VBox.sh 2011-11-04 17:56:50.735874087 +0000
-@@ -30,19 +30,20 @@
- SHUTDOWN="true"
- elif ! lsmod|grep -q vboxdrv; then
- cat << EOF
--WARNING: The vboxdrv kernel module is not loaded. Either there is no module
-- available for the current kernel (`uname -r`) or it failed to
-- load. Please recompile the kernel module and install it by
-+WARNING: The vboxdrv kernel libre module is not loaded. Either there is no module
-+ available for the current kernel libre (`uname -r`) or it failed to
-+ load. Please reinstall the kernel libre module virtualbox-libre-host-modules or
-+ if you don't use our stock kernel libre compile the modules with
-
-- sudo /etc/init.d/vboxdrv setup
-+ sudo dkms autoinstall
-
- You will not be able to start VMs until this problem is fixed.
- EOF
- elif [ ! -c /dev/vboxdrv ]; then
- cat << EOF
--WARNING: The character device /dev/vboxdrv does not exist. Try
-+WARNING: The character device /dev/vboxdrv does not exist. Try to load the module
-
-- sudo /etc/init.d/vboxdrv restart
-+ sudo modprobe vboxdrv
-
- and if that is not successful, try to re-install the package.
-
-@@ -52,9 +53,8 @@
-
- if [ -f /etc/vbox/module_not_compiled ]; then
- cat << EOF
--WARNING: The compilation of the vboxdrv.ko kernel module failed during the
-+WARNING: The compilation of the vboxdrv.ko kernel libre module failed during the
- installation for some reason. Starting a VM will not be possible.
-- Please consult the User Manual for build instructions.
- EOF
- fi
- \ No newline at end of file
diff --git a/libre/virtualbox-libre/virtualbox-libre-ext-vnc.install b/libre/virtualbox-libre/virtualbox-libre-ext-vnc.install
deleted file mode 100644
index 828a16a1d..000000000
--- a/libre/virtualbox-libre/virtualbox-libre-ext-vnc.install
+++ /dev/null
@@ -1,25 +0,0 @@
-#/bin/sh
-
-# arg 1: the new package version
-post_install() {
- VBoxManage extpack install "/usr/share/virtualbox/extensions/VNC-${1%%-*}.vbox-extpack" >/dev/null
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-pre_upgrade() {
- pre_remove "$2"
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- post_install "$1"
-}
-
-# arg 1: the old package version
-pre_remove() {
- VBoxManage extpack uninstall 'VNC' >/dev/null
-}
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/virtualbox-libre/virtualbox-libre-guest-additions.install b/libre/virtualbox-libre/virtualbox-libre-guest-additions.install
deleted file mode 100755
index 38bbe807d..000000000
--- a/libre/virtualbox-libre/virtualbox-libre-guest-additions.install
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-# arg 1: the new package version
-post_install() {
- getent group vboxsf > /dev/null || groupadd -g 109 vboxsf
- true
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- post_install "$1"
- # rename /etc/rc.d/vboxservice
- if [ "`vercmp $2 4.1.18-3`" -lt 0 ]; then
- cat << EOF
-==> rc.d vbox-service script was renamed to vboxservice.
-EOF
- fi
- # fix gid of vboxsf
- if [ "`vercmp $2 4.1.18-4`" -lt 0 ]; then
- groupmod -g 109 vboxsf
- fi
- true
-}
-
-# arg 1: the old package version
-post_remove() {
- groupdel vboxsf >/dev/null 2>&1 || true
-}
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/virtualbox-libre/virtualbox-libre-guest-source.install b/libre/virtualbox-libre/virtualbox-libre-guest-source.install
deleted file mode 100755
index 2d62eae43..000000000
--- a/libre/virtualbox-libre/virtualbox-libre-guest-source.install
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-# arg 1: the new package version
-post_install() {
- dkms add vboxguest/${1%-*}
- cat << EOF
-==> To build and install your modules run dkms install vboxguest/${1%-*}
-==> To do this automatically at startup you can add dkms in your DAEMONS
-EOF
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-pre_upgrade() {
- pre_remove "$2"
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- post_install "$1"
-}
-
-# arg 1: the old package version
-pre_remove() {
- # Remove modules using dkms
- [ -n "${1%-*}" ] && dkms remove vboxguest/${1%-*} --all >/dev/null || true
-}
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/virtualbox-libre/virtualbox-libre-host-source.install b/libre/virtualbox-libre/virtualbox-libre-host-source.install
deleted file mode 100755
index 8028cb7e0..000000000
--- a/libre/virtualbox-libre/virtualbox-libre-host-source.install
+++ /dev/null
@@ -1,30 +0,0 @@
-#/bin/sh
-
-# arg 1: the new package version
-post_install() {
- dkms add vboxhost/${1%-*}
- cat << EOF
-==> To build and install your modules run dkms install vboxhost/${1%-*}
-==> To do this automatically at startup you can add dkms in your DAEMONS
-EOF
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-pre_upgrade() {
- pre_remove "$2"
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- post_install "$1"
-}
-
-# arg 1: the old package version
-pre_remove() {
- # Remove modules using dkms
- [ -n "${1%-*}" ] && dkms remove vboxhost/${1%-*} --all >/dev/null || true
-}
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/virtualbox-libre/virtualbox-libre-parabola-additions.install b/libre/virtualbox-libre/virtualbox-libre-parabola-additions.install
deleted file mode 100644
index 38bbe807d..000000000
--- a/libre/virtualbox-libre/virtualbox-libre-parabola-additions.install
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-# arg 1: the new package version
-post_install() {
- getent group vboxsf > /dev/null || groupadd -g 109 vboxsf
- true
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- post_install "$1"
- # rename /etc/rc.d/vboxservice
- if [ "`vercmp $2 4.1.18-3`" -lt 0 ]; then
- cat << EOF
-==> rc.d vbox-service script was renamed to vboxservice.
-EOF
- fi
- # fix gid of vboxsf
- if [ "`vercmp $2 4.1.18-4`" -lt 0 ]; then
- groupmod -g 109 vboxsf
- fi
- true
-}
-
-# arg 1: the old package version
-post_remove() {
- groupdel vboxsf >/dev/null 2>&1 || true
-}
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/virtualbox-libre/virtualbox-libre-parabola-source.install b/libre/virtualbox-libre/virtualbox-libre-parabola-source.install
deleted file mode 100644
index 966fb5681..000000000
--- a/libre/virtualbox-libre/virtualbox-libre-parabola-source.install
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-# arg 1: the new package version
-post_install() {
- cat << EOF
-==> To build and install your modules run dkms install vboxguest/${1%-*}
-==> To do this automatically at startup you can add dkms in your DAEMONS
-EOF
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-pre_upgrade() {
- pre_remove "$2"
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- post_install "$1"
-}
-
-# arg 1: the old package version
-pre_remove() {
- # Remove modules using dkms
- [ -n "${1%-*}" ] && dkms remove vboxguest/${1%-*} --all >/dev/null || true
-}
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/virtualbox-libre/virtualbox-libre-source.install b/libre/virtualbox-libre/virtualbox-libre-source.install
deleted file mode 100644
index 6a3994c8d..000000000
--- a/libre/virtualbox-libre/virtualbox-libre-source.install
+++ /dev/null
@@ -1,29 +0,0 @@
-#/bin/sh
-
-# arg 1: the new package version
-post_install() {
- cat << EOF
-==> To build and install your modules run dkms install vboxhost/${1%-*}
-==> To do this automatically at startup you can add dkms in your DAEMONS
-EOF
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-pre_upgrade() {
- pre_remove "$2"
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- post_install "$1"
-}
-
-# arg 1: the old package version
-pre_remove() {
- # Remove modules using dkms
- [ -n "${1%-*}" ] && dkms remove vboxhost/${1%-*} --all >/dev/null || true
-}
-
-# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/virtualbox-libre/virtualbox-source.install b/libre/virtualbox-libre/virtualbox-source.install
deleted file mode 100644
index 24d90b1c2..000000000
--- a/libre/virtualbox-libre/virtualbox-source.install
+++ /dev/null
@@ -1,12 +0,0 @@
-post_install() {
-/bin/cat << EOF
-===> To compile the modules do /usr/bin/vboxbuild
-EOF
-
-}
-
-post_upgrade() {
-/bin/cat << EOF
-===> To recompile the modules do /usr/bin/vboxbuild
-EOF
-}
diff --git a/libre/virtualbox-libre/virtualbox.install b/libre/virtualbox-libre/virtualbox.install
deleted file mode 100644
index 29646e973..000000000
--- a/libre/virtualbox-libre/virtualbox.install
+++ /dev/null
@@ -1,34 +0,0 @@
-utils() {
- if [ -x usr/bin/update-mime-database ]; then
- update-mime-database usr/share/mime > /dev/null 2>&1
- fi
-
- if [ -x usr/bin/xdg-icon-resource ]; then
- xdg-icon-resource forceupdate --theme hicolor > /dev/null 2>&1
- fi
-
- if [ -x usr/bin/update-desktop-database ]; then
- usr/bin/update-desktop-database -q
- fi
-}
-
-post_install() {
- getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers
- utils
-}
-
-post_upgrade() {
- getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers
- utils
- if [ "$(vercmp $2 4.1.6-1)" -lt 0 ]; then
-/bin/cat << EOF
-===> Starting with virtualbox version 4.1.6-1, kernel modules handling is done by virtualbox-modules.
-===> Use virtualbox-source package if you don't use our stock linux-libre package.
-EOF
- fi
-}
-
-post_remove() {
- groupdel vboxusers >/dev/null 2>&1 || true
- utils
-}
diff --git a/libre/virtualbox-modules-lts/60-vboxguest.rules b/libre/virtualbox-modules-lts/60-vboxguest.rules
deleted file mode 100644
index 6285f7249..000000000
--- a/libre/virtualbox-modules-lts/60-vboxguest.rules
+++ /dev/null
@@ -1,2 +0,0 @@
-ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
-ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
diff --git a/libre/virtualbox-modules-lts/LocalConfig.kmk b/libre/virtualbox-modules-lts/LocalConfig.kmk
deleted file mode 100644
index af79f90cd..000000000
--- a/libre/virtualbox-modules-lts/LocalConfig.kmk
+++ /dev/null
@@ -1,19 +0,0 @@
-VBOX_WITH_ADDITION_DRIVERS =
-VBOX_WITH_INSTALLER = 1
-VBOX_WITH_LINUX_ADDITIONS = 1
-VBOX_WITH_X11_ADDITIONS =
-VBOX_WITH_TESTCASES =
-VBOX_WITH_TESTSUITE =
-VBOX_WITH_ORIGIN :=
-VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
-VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
-VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
-VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
-VBOX_PATH_APP_DOCS := /usr/share/virtualbox
-VBOX_WITH_REGISTRATION_REQUEST =
-VBOX_WITH_UPDATE_REQUEST =
-VBOX_WITH_VNC := 1
-VBOX_BLD_PYTHON = python2
-VBOX_JAVA_HOME = /usr/lib/jvm/java-6-openjdk
-VBOX_GCC_WERR =
-VBOX_GCC_WARN =
diff --git a/libre/virtualbox-modules-lts/PKGBUILD b/libre/virtualbox-modules-lts/PKGBUILD
deleted file mode 100644
index da8583e87..000000000
--- a/libre/virtualbox-modules-lts/PKGBUILD
+++ /dev/null
@@ -1,101 +0,0 @@
-# $Id$
-# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
-# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
-# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
-# Maintainer (Parabola): Jorge López <jorginho@lavabit.com>
-
-pkgbase=virtualbox-modules-lts
-pkgname=('virtualbox-modules-lts' 'virtualbox-parabola-modules-lts')
-pkgver=4.1.18
-pkgrel=2
-arch=('i686' 'x86_64')
-url='http://virtualbox.org'
-license=('GPL')
-makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-libre-lts' 'linux-libre-lts-headers')
-[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
-source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
- LocalConfig.kmk 60-vboxguest.rules)
-md5sums=('38db0a87cba659b484af868b0c2bd3ac'
- '4c88bd122677a35f68abd76eb01b378b'
- 'ed1341881437455d9735875ddf455fbe')
-
-_extramodules=extramodules-3.0-LIBRE-LTS
-_kernver=$(pacman -Q linux-libre-lts | awk '{ printf "%s-LIBRE-LTS", $2; exit }')
-
-export KERN_DIR=/usr/lib/modules/${_kernver}/build
-export KERN_INCL=/usr/src/linux-${_kernver}/include/
-
-build() {
- cd "$srcdir/VirtualBox-${pkgver}"
-
- cp "$srcdir/LocalConfig.kmk" .
-
- ./configure \
- --with-linux=/usr/src/linux-${_kernver} \
- --disable-java \
- --disable-docs \
- --disable-xpcom \
- --disable-python \
- --disable-sdl-ttf \
- --disable-alsa \
- --disable-pulse \
- --disable-dbus \
- --disable-opengl \
- --build-headless \
- --nofatal
- source ./env.sh
- kmk all
-
- make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
- make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
-}
-
-package_virtualbox-parabola-modules-lts(){
- pkgdesc="Additions only for Parabola guests (long-term supported kernel modules)"
- license=('GPL')
- install=virtualbox-parabola-modules-lts.install
- depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1')
- replaces=('virtualbox-archlinux-modules-lts')
- conflicts=('virtualbox-archlinux-modules-lts')
- provides=("virtualbox-parabola-modules=$pkgver" "virtualbox-archlinux-modules=$pkgver" "virtualbox-archlinux-modules-lts=$pkgver")
-
- source "$srcdir/VirtualBox-${pkgver}/env.sh"
-
- cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
-
- for module in vboxguest.ko vboxsf.ko vboxvideo.ko; do
- install -D -m644 ${module} \
- "$pkgdir/usr/lib/modules/${_extramodules}/${module}"
- done
-
- install -D -m 0644 "$srcdir/60-vboxguest.rules" \
- "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules"
-
- find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
-}
-
-package_virtualbox-modules-lts(){
- pkgdesc="Long-term supported kernel modules for VirtualBox"
- license=('GPL')
- install=virtualbox-modules-lts.install
- depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1')
- provides=("virtualbox-modules=$pkgver")
-
- source "$srcdir/VirtualBox-${pkgver}/env.sh"
-
- cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
-
- install -D -m644 vboxdrv.ko \
- "$pkgdir/usr/lib/modules/${_extramodules}/vboxdrv.ko"
-
- install -D -m644 vboxnetadp.ko \
- "$pkgdir/usr/lib/modules/${_extramodules}/vboxnetadp.ko"
-
- install -D -m644 vboxnetflt.ko \
- "$pkgdir/usr/lib/modules/${_extramodules}/vboxnetflt.ko"
-
- install -D -m644 vboxpci.ko \
- "$pkgdir/usr/lib/modules/${_extramodules}/vboxpci.ko"
-
- find "${pkgdir}" -name '*.ko' -exec gzip -9 {} +
-}
diff --git a/libre/virtualbox-modules-lts/virtualbox-modules-lts.install b/libre/virtualbox-modules-lts/virtualbox-modules-lts.install
deleted file mode 100644
index 5387563a6..000000000
--- a/libre/virtualbox-modules-lts/virtualbox-modules-lts.install
+++ /dev/null
@@ -1,18 +0,0 @@
-EXTRAMODULES='extramodules-3.0-LIBRE-LTS'
-
-post_install() {
-/bin/cat << EOF
-===> You must load vboxdrv module before starting VirtualBox:
-===> # modprobe vboxdrv
-EOF
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_upgrade() {
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
- echo 'In order to use the new version, reload all virtualbox modules manually.'
-}
-
-post_remove() {
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
diff --git a/libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install b/libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install
deleted file mode 100644
index 54a052390..000000000
--- a/libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install
+++ /dev/null
@@ -1,16 +0,0 @@
-EXTRAMODULES='extramodules-3.0-LIBRE-LTS'
-
-post_install() {
-cat << EOF
-===> You may want to load vboxguest, vboxsf and vboxvideo
-EOF
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_upgrade() {
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_remove() {
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
diff --git a/libre/virtualbox-modules/.directory b/libre/virtualbox-modules/.directory
deleted file mode 100644
index 7486c78f1..000000000
--- a/libre/virtualbox-modules/.directory
+++ /dev/null
@@ -1,2 +0,0 @@
-[Dolphin]
-Timestamp=2012,3,20,12,36,27
diff --git a/libre/virtualbox-modules/60-vboxguest.rules b/libre/virtualbox-modules/60-vboxguest.rules
deleted file mode 100644
index 6285f7249..000000000
--- a/libre/virtualbox-modules/60-vboxguest.rules
+++ /dev/null
@@ -1,2 +0,0 @@
-ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
-ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
diff --git a/libre/virtualbox-modules/LocalConfig.kmk b/libre/virtualbox-modules/LocalConfig.kmk
deleted file mode 100644
index af79f90cd..000000000
--- a/libre/virtualbox-modules/LocalConfig.kmk
+++ /dev/null
@@ -1,19 +0,0 @@
-VBOX_WITH_ADDITION_DRIVERS =
-VBOX_WITH_INSTALLER = 1
-VBOX_WITH_LINUX_ADDITIONS = 1
-VBOX_WITH_X11_ADDITIONS =
-VBOX_WITH_TESTCASES =
-VBOX_WITH_TESTSUITE =
-VBOX_WITH_ORIGIN :=
-VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
-VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
-VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
-VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
-VBOX_PATH_APP_DOCS := /usr/share/virtualbox
-VBOX_WITH_REGISTRATION_REQUEST =
-VBOX_WITH_UPDATE_REQUEST =
-VBOX_WITH_VNC := 1
-VBOX_BLD_PYTHON = python2
-VBOX_JAVA_HOME = /usr/lib/jvm/java-6-openjdk
-VBOX_GCC_WERR =
-VBOX_GCC_WARN =
diff --git a/libre/virtualbox-modules/PKGBUILD b/libre/virtualbox-modules/PKGBUILD
deleted file mode 100644
index 5e0feec6d..000000000
--- a/libre/virtualbox-modules/PKGBUILD
+++ /dev/null
@@ -1,104 +0,0 @@
-# $Id$
-#Maintainer: Ionut Biru <ibiru@archlinux.org>
-#Maintainer (Parabola): Jorge López <jorginho@lavabit.com>
-#Contributor (Parabola): André Silva <emulatorman@lavabit.com>
-
-pkgbase=virtualbox-modules
-pkgname=('virtualbox-modules' 'virtualbox-parabola-modules')
-pkgver=4.1.18
-pkgrel=5
-arch=('i686' 'x86_64')
-url='http://virtualbox.org'
-license=('GPL')
-makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-libre-headers')
-[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
-source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
- LocalConfig.kmk 60-vboxguest.rules)
-md5sums=('38db0a87cba659b484af868b0c2bd3ac'
- '4c88bd122677a35f68abd76eb01b378b'
- 'ed1341881437455d9735875ddf455fbe')
-
-_extramodules=extramodules-3.5-LIBRE
-_kernver="$(cat /usr/lib/modules/${_extramodules}/version || true)"
-
-export KERN_DIR=/usr/lib/modules/${_kernver}/build
-export KERN_INCL=/usr/src/linux-${_kernver}/include/
-
-build() {
- cd "$srcdir/VirtualBox-${pkgver}"
-
- cp "$srcdir/LocalConfig.kmk" .
-
- ./configure \
- --with-linux=/usr/src/linux-${_kernver} \
- --disable-java \
- --disable-docs \
- --disable-xpcom \
- --disable-python \
- --disable-sdl-ttf \
- --disable-alsa \
- --disable-pulse \
- --disable-dbus \
- --disable-opengl \
- --build-headless \
- --nofatal
- source ./env.sh
- kmk all
-
- make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
- make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
-}
-
-package_virtualbox-parabola-modules(){
- pkgdesc="Additions only for Parabola guests (kernel modules)"
- license=('GPL')
- install=virtualbox-parabola-modules.install
- depends=('linux-libre>=3.5' 'linux-libre<3.6')
- replaces=('virtualbox-archlinux-modules')
- conflicts=('virtualbox-archlinux-modules')
- provides=("virtualbox-archlinux-modules=$pkgver")
-
- source "$srcdir/VirtualBox-${pkgver}/env.sh"
-
- cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
-
- for module in vboxguest.ko vboxsf.ko vboxvideo.ko; do
- install -D -m644 ${module} \
- "$pkgdir/lib/modules/${_extramodules}/${module}"
- done
-
- install -D -m 0644 "$srcdir/60-vboxguest.rules" \
- "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules"
-
- find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
-
- sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "$startdir/virtualbox-parabola-modules.install"
-}
-
-package_virtualbox-modules(){
- pkgdesc="Kernel modules for VirtualBox"
- license=('GPL')
- install=virtualbox-modules.install
- depends=('linux-libre>=3.5' 'linux-libre<3.6')
-
- source "$srcdir/VirtualBox-${pkgver}/env.sh"
-
-
- cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
-
- install -D -m644 vboxdrv.ko \
- "$pkgdir/usr/lib/modules/${_extramodules}/vboxdrv.ko"
-
- install -D -m644 vboxnetadp.ko \
- "$pkgdir/usr/lib/modules/${_extramodules}/vboxnetadp.ko"
-
- install -D -m644 vboxnetflt.ko \
- "$pkgdir/usr/lib/modules/${_extramodules}/vboxnetflt.ko"
-
- install -D -m644 vboxpci.ko \
- "$pkgdir/usr/lib/modules/${_extramodules}/vboxpci.ko"
-
- find "${pkgdir}" -name '*.ko' -exec gzip -9 {} +
-
- sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "$startdir/virtualbox-modules.install"
-}
diff --git a/libre/virtualbox-modules/linux34.patch b/libre/virtualbox-modules/linux34.patch
deleted file mode 100644
index 05ec78557..000000000
--- a/libre/virtualbox-modules/linux34.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur VirtualBox-4.1.14.orig/Config.kmk VirtualBox-4.1.14/Config.kmk
---- VirtualBox-4.1.14.orig/Config.kmk 2012-04-26 16:56:21.000000000 +0000
-+++ VirtualBox-4.1.14/Config.kmk 2012-05-21 14:35:22.348398884 +0000
-@@ -2856,7 +2856,7 @@
- TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow \
- -fno-reorder-blocks -ffreestanding -fno-asynchronous-unwind-tables -funit-at-a-time \
- -Wno-sign-compare -Wdeclaration-after-statement
--TEMPLATE_VBOXR0DRV_CXXFLAGS = $(filter-out -Wstrict-prototypes -Wno-pointer-sign -ffreestanding -Wdeclaration-after-statement -Werror-implicit-function-declaration,$(TEMPLATE_VBOXR0DRV_CFLAGS) $(TEMPLATE_VBOXR0DRV_CFLAGS.$(KBUILD_TARGET_ARCH))) -fno-exceptions -fno-rtti
-+TEMPLATE_VBOXR0DRV_CXXFLAGS = $(filter-out -Wstrict-prototypes -Wno-pointer-sign -ffreestanding -Wdeclaration-after-statement -Werror-implicit-function-declaration,$(TEMPLATE_VBOXR0DRV_CFLAGS) $(TEMPLATE_VBOXR0DRV_CFLAGS.$(KBUILD_TARGET_ARCH))) -fno-exceptions -fno-rtti -fpermissive
- ifndef VBOX_LINUX_VERSION_2_4
- # 2.6
- TEMPLATE_VBOXR0DRV_SYSSUFF = .ko
diff --git a/libre/virtualbox-modules/virtualbox-modules.install b/libre/virtualbox-modules/virtualbox-modules.install
deleted file mode 100644
index 3f2a12a3f..000000000
--- a/libre/virtualbox-modules/virtualbox-modules.install
+++ /dev/null
@@ -1,19 +0,0 @@
-post_install() {
-/bin/cat << EOF
-===> You must load vboxdrv module before starting VirtualBox:
-===> # modprobe vboxdrv
-EOF
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_upgrade() {
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
- echo 'In order to use the new version, reload all virtualbox modules manually.'
-}
-
-post_remove() {
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
diff --git a/libre/virtualbox-modules/virtualbox-parabola-modules.install b/libre/virtualbox-modules/virtualbox-parabola-modules.install
deleted file mode 100644
index c3419c991..000000000
--- a/libre/virtualbox-modules/virtualbox-parabola-modules.install
+++ /dev/null
@@ -1,17 +0,0 @@
-post_install() {
-cat << EOF
-===> You may want to load vboxguest, vboxsf and vboxvideo
-EOF
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_upgrade() {
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
-
-post_remove() {
- EXTRAMODULES='extramodules-3.5-LIBRE'
- depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
-}
diff --git a/libre/xulrunner-libre/gcc47.patch b/libre/xulrunner-libre/gcc47.patch
deleted file mode 100644
index 5cea6769d..000000000
--- a/libre/xulrunner-libre/gcc47.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-
-# HG changeset patch
-# User Martin Stránský <stransky@redhat.com>
-# Date 1328886461 -3600
-# Node ID 87a5ed480992788832387ba91a77c69fbe9fe349
-# Parent 67017dd3b7f6650e6bcd5b6f545e0309e8de7049
-Bug 725655 - gcc 4.7 build failures (missing headers). r=benjamin
-
-diff --git a/ipc/chromium/src/base/file_util_linux.cc b/ipc/chromium/src/base/file_util_linux.cc
---- a/ipc/chromium/src/base/file_util_linux.cc
-+++ b/ipc/chromium/src/base/file_util_linux.cc
-@@ -1,15 +1,18 @@
- // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
- #include "base/file_util.h"
-
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include <string>
- #include <vector>
-
- #include "base/eintr_wrapper.h"
- #include "base/file_path.h"
- #include "base/string_util.h"
-
-diff --git a/ipc/chromium/src/base/message_pump_libevent.cc b/ipc/chromium/src/base/message_pump_libevent.cc
---- a/ipc/chromium/src/base/message_pump_libevent.cc
-+++ b/ipc/chromium/src/base/message_pump_libevent.cc
-@@ -1,16 +1,19 @@
- // Copyright (c) 2008 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
- #include "base/message_pump_libevent.h"
-
- #include <errno.h>
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include "eintr_wrapper.h"
- #include "base/logging.h"
- #include "base/scoped_nsautorelease_pool.h"
- #include "base/scoped_ptr.h"
- #include "base/time.h"
- #include "third_party/libevent/event.h"
-
-diff --git a/ipc/chromium/src/base/time_posix.cc b/ipc/chromium/src/base/time_posix.cc
---- a/ipc/chromium/src/base/time_posix.cc
-+++ b/ipc/chromium/src/base/time_posix.cc
-@@ -8,16 +8,19 @@
- #include <mach/mach_time.h>
- #endif
- #include <sys/time.h>
- #ifdef ANDROID
- #include <time64.h>
- #else
- #include <time.h>
- #endif
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include <limits>
-
- #include "base/basictypes.h"
- #include "base/logging.h"
-
- namespace base {
-
-