summaryrefslogtreecommitdiff
path: root/libre
diff options
context:
space:
mode:
Diffstat (limited to 'libre')
-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/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/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/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/kdelibs-libre/fix-application-crashes.patch49
-rw-r--r--libre/kdeutils-ark-libre/rePKGBUILD26
-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/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/psutils-libre/.directory2
-rw-r--r--libre/sdl-libre/no-riva-accel.patch24
-rw-r--r--libre/sdl-libre/riva_mmio.patch554
-rw-r--r--libre/texlive-core-libre/.directory5
-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/xulrunner-libre/gcc47.patch77
190 files changed, 93 insertions, 42836 deletions
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/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/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/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 91f1e0ca7..b08c813dd 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
[ "$CARCH" == "mips64el" ] && { _debver=13.0.1; _debrel=2; }
_debrepo=http://ftp.debian.org/debian/pool/main/
@@ -23,7 +23,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
@@ -55,8 +55,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/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/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/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/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/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/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/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/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 {
-
-