diff options
author | Michał Masłowski <mtjm@mtjm.eu> | 2013-02-10 11:32:41 +0100 |
---|---|---|
committer | Michał Masłowski <mtjm@mtjm.eu> | 2013-02-10 11:32:41 +0100 |
commit | bdf817c3549ba377334deb1161de703579670d62 (patch) | |
tree | c1b80c05c917cda2619e267049978f971bdad169 /libre | |
parent | df609724f30aaccfb05d9fb73f68e7a37118f2f8 (diff) | |
parent | 1bb2648cde916ac27d3dd75d7b64a4ddc89787b7 (diff) |
Merge branch 'master' of ssh://parabolagnulinux.org:1863/home/parabola/abslibre-pre-mips64el
Conflicts:
community/cdemu-client/PKGBUILD
community/dcron/PKGBUILD
community/freevo/PKGBUILD
community/gmerlin-avdecoder/PKGBUILD
community/hacburn/PKGBUILD
community/htmldoc/PKGBUILD
community/ibus-table/PKGBUILD
community/iksemel/PKGBUILD
community/isomaster/PKGBUILD
community/libmatio/PKGBUILD
community/libtlen/PKGBUILD
community/luarocks/PKGBUILD
community/lxde-common/PKGBUILD
community/multipath-tools/PKGBUILD
community/nvclock/PKGBUILD
community/pam-krb5/PKGBUILD
community/pidgin-musictracker/PKGBUILD
community/pkgfile/PKGBUILD
community/pkgtools/PKGBUILD
community/print-manager/PKGBUILD
community/python-pyro/PKGBUILD
community/python-pyxmpp/PKGBUILD
community/python2-simplejson/PKGBUILD
community/rsnapshot/PKGBUILD
community/setconf/PKGBUILD
community/tagpy/PKGBUILD
community/terminator/PKGBUILD
community/udunits/PKGBUILD
community/vlock/PKGBUILD
community/winefish/PKGBUILD
core/nss-myhostname/PKGBUILD
extra/avfs/PKGBUILD
extra/bmp-musepack/PKGBUILD
extra/bmp-wma/PKGBUILD
extra/bochs/PKGBUILD
extra/botan/PKGBUILD
extra/cdargs/PKGBUILD
extra/cx_freeze/PKGBUILD
extra/dcfldd/PKGBUILD
extra/devilspie/PKGBUILD
extra/emelfm2/PKGBUILD
extra/evilwm/PKGBUILD
extra/fssos-nsvs/PKGBUILD
extra/gimp-dbp/PKGBUILD
extra/gimp-gap/PKGBUILD
extra/gimp-ufraw/PKGBUILD
extra/gmpc/PKGBUILD
extra/gtkpod/PKGBUILD
extra/hercules/PKGBUILD
extra/herqq/PKGBUILD
extra/hydrogen/PKGBUILD
extra/kdegames/PKGBUILD
extra/kradio/PKGBUILD
extra/kshutdown/PKGBUILD
extra/libmusicbrainz4/PKGBUILD
extra/mahjong/PKGBUILD
extra/mcrypt/PKGBUILD
extra/monica/PKGBUILD
extra/mpck/PKGBUILD
extra/mrtg/PKGBUILD
extra/nicotine/PKGBUILD
extra/normalize/PKGBUILD
extra/oprofile/PKGBUILD
extra/perl-event/PKGBUILD
extra/perl-unicode-string/PKGBUILD
extra/pidgin-encryption/PKGBUILD
extra/proftpd/PKGBUILD
extra/pymad/PKGBUILD
extra/qiv/PKGBUILD
extra/quodlibet/PKGBUILD
extra/ratpoison/PKGBUILD
extra/rox/PKGBUILD
extra/scrot/PKGBUILD
extra/stardict/PKGBUILD
extra/terminal/PKGBUILD
extra/usbview/PKGBUILD
extra/xdelta/PKGBUILD
extra/xdelta3/PKGBUILD
extra/xorg-xlsfonts/PKGBUILD
extra/zile/PKGBUILD
mozilla-testing/iceweasel-libre/mozconfig
mozilla-testing/iceweasel-libre/vendor.js
social/tokyocabinet/PKGBUILD
~fauno/notmuch/PKGBUILD
~mtjm/thinkfan/PKGBUILD
~mtjm/zbar/PKGBUILD
Diffstat (limited to 'libre')
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, - ¤t_partition, ¤t_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, - ¤t_partition, ¤t_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 Binary files differdeleted file mode 100644 index 819e785c6..000000000 --- a/libre/hplip-libre/.hplip.install.swp +++ /dev/null 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&a=commitdiff&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&a=commitdiff&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&search={searchTerms}"> -</os:Url><os:Url type="application/x-suggestions+json" method="GET" template="https://wiki.parabolagnulinux.org/api.php?action=opensearch&search={searchTerms}&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}&maximumRecords=10&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 Binary files differdeleted file mode 100644 index 799769335..000000000 --- a/libre/mplayer-vaapi-libre/mplayer.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 61995ca10..000000000 --- a/libre/virtualbox-libre-modules-lts/os_blag.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_blag_64.png b/libre/virtualbox-libre-modules-lts/os_blag_64.png Binary files differdeleted file mode 100644 index aa4463a97..000000000 --- a/libre/virtualbox-libre-modules-lts/os_blag_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_dragora.png b/libre/virtualbox-libre-modules-lts/os_dragora.png Binary files differdeleted file mode 100644 index d1df45880..000000000 --- a/libre/virtualbox-libre-modules-lts/os_dragora.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_dragora_64.png b/libre/virtualbox-libre-modules-lts/os_dragora_64.png Binary files differdeleted file mode 100644 index 64bcecf20..000000000 --- a/libre/virtualbox-libre-modules-lts/os_dragora_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_dynebolic.png b/libre/virtualbox-libre-modules-lts/os_dynebolic.png Binary files differdeleted file mode 100644 index 67b07d4c0..000000000 --- a/libre/virtualbox-libre-modules-lts/os_dynebolic.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnewsense.png b/libre/virtualbox-libre-modules-lts/os_gnewsense.png Binary files differdeleted file mode 100644 index 76d9e38b3..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnewsense.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnewsense_64.png b/libre/virtualbox-libre-modules-lts/os_gnewsense_64.png Binary files differdeleted file mode 100644 index 8859c34e8..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnewsense_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnu.png b/libre/virtualbox-libre-modules-lts/os_gnu.png Binary files differdeleted file mode 100644 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnu.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnu_64.png b/libre/virtualbox-libre-modules-lts/os_gnu_64.png Binary files differdeleted file mode 100644 index 4161634e9..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnu_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnuhurd.png b/libre/virtualbox-libre-modules-lts/os_gnuhurd.png Binary files differdeleted file mode 100644 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnuhurd.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnulinux.png b/libre/virtualbox-libre-modules-lts/os_gnulinux.png Binary files differdeleted file mode 100644 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnulinux.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_gnulinux_64.png b/libre/virtualbox-libre-modules-lts/os_gnulinux_64.png Binary files differdeleted file mode 100644 index 4161634e9..000000000 --- a/libre/virtualbox-libre-modules-lts/os_gnulinux_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_musix.png b/libre/virtualbox-libre-modules-lts/os_musix.png Binary files differdeleted file mode 100644 index fb7b94577..000000000 --- a/libre/virtualbox-libre-modules-lts/os_musix.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_musix_64.png b/libre/virtualbox-libre-modules-lts/os_musix_64.png Binary files differdeleted file mode 100644 index a1bbbbf3a..000000000 --- a/libre/virtualbox-libre-modules-lts/os_musix_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_os64base.png b/libre/virtualbox-libre-modules-lts/os_os64base.png Binary files differdeleted file mode 100644 index 7aec20314..000000000 --- a/libre/virtualbox-libre-modules-lts/os_os64base.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_os64base.xcf b/libre/virtualbox-libre-modules-lts/os_os64base.xcf Binary files differdeleted file mode 100644 index d8e28e35e..000000000 --- a/libre/virtualbox-libre-modules-lts/os_os64base.xcf +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_osbase.png b/libre/virtualbox-libre-modules-lts/os_osbase.png Binary files differdeleted file mode 100644 index 00f197fca..000000000 --- a/libre/virtualbox-libre-modules-lts/os_osbase.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_osbase.xcf b/libre/virtualbox-libre-modules-lts/os_osbase.xcf Binary files differdeleted file mode 100644 index c4463c857..000000000 --- a/libre/virtualbox-libre-modules-lts/os_osbase.xcf +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_parabola.png b/libre/virtualbox-libre-modules-lts/os_parabola.png Binary files differdeleted file mode 100644 index 757abc484..000000000 --- a/libre/virtualbox-libre-modules-lts/os_parabola.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_parabola_64.png b/libre/virtualbox-libre-modules-lts/os_parabola_64.png Binary files differdeleted file mode 100644 index 5ac7c2767..000000000 --- a/libre/virtualbox-libre-modules-lts/os_parabola_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_trisquel.png b/libre/virtualbox-libre-modules-lts/os_trisquel.png Binary files differdeleted file mode 100644 index c6f0d3d7a..000000000 --- a/libre/virtualbox-libre-modules-lts/os_trisquel.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_trisquel_64.png b/libre/virtualbox-libre-modules-lts/os_trisquel_64.png Binary files differdeleted file mode 100644 index ebca3dd43..000000000 --- a/libre/virtualbox-libre-modules-lts/os_trisquel_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_ututo.png b/libre/virtualbox-libre-modules-lts/os_ututo.png Binary files differdeleted file mode 100644 index e1dffb575..000000000 --- a/libre/virtualbox-libre-modules-lts/os_ututo.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_ututo_64.png b/libre/virtualbox-libre-modules-lts/os_ututo_64.png Binary files differdeleted file mode 100644 index 158468e0a..000000000 --- a/libre/virtualbox-libre-modules-lts/os_ututo_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules-lts/os_venenux.png b/libre/virtualbox-libre-modules-lts/os_venenux.png Binary files differdeleted file mode 100644 index 5e0c1585d..000000000 --- a/libre/virtualbox-libre-modules-lts/os_venenux.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 61995ca10..000000000 --- a/libre/virtualbox-libre-modules/os_blag.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_blag_64.png b/libre/virtualbox-libre-modules/os_blag_64.png Binary files differdeleted file mode 100644 index aa4463a97..000000000 --- a/libre/virtualbox-libre-modules/os_blag_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_dragora.png b/libre/virtualbox-libre-modules/os_dragora.png Binary files differdeleted file mode 100644 index d1df45880..000000000 --- a/libre/virtualbox-libre-modules/os_dragora.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_dragora_64.png b/libre/virtualbox-libre-modules/os_dragora_64.png Binary files differdeleted file mode 100644 index 64bcecf20..000000000 --- a/libre/virtualbox-libre-modules/os_dragora_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_dynebolic.png b/libre/virtualbox-libre-modules/os_dynebolic.png Binary files differdeleted file mode 100644 index 67b07d4c0..000000000 --- a/libre/virtualbox-libre-modules/os_dynebolic.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnewsense.png b/libre/virtualbox-libre-modules/os_gnewsense.png Binary files differdeleted file mode 100644 index 76d9e38b3..000000000 --- a/libre/virtualbox-libre-modules/os_gnewsense.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnewsense_64.png b/libre/virtualbox-libre-modules/os_gnewsense_64.png Binary files differdeleted file mode 100644 index 8859c34e8..000000000 --- a/libre/virtualbox-libre-modules/os_gnewsense_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnu.png b/libre/virtualbox-libre-modules/os_gnu.png Binary files differdeleted file mode 100644 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules/os_gnu.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnu_64.png b/libre/virtualbox-libre-modules/os_gnu_64.png Binary files differdeleted file mode 100644 index 4161634e9..000000000 --- a/libre/virtualbox-libre-modules/os_gnu_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnuhurd.png b/libre/virtualbox-libre-modules/os_gnuhurd.png Binary files differdeleted file mode 100644 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules/os_gnuhurd.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnulinux.png b/libre/virtualbox-libre-modules/os_gnulinux.png Binary files differdeleted file mode 100644 index 26c4550f9..000000000 --- a/libre/virtualbox-libre-modules/os_gnulinux.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_gnulinux_64.png b/libre/virtualbox-libre-modules/os_gnulinux_64.png Binary files differdeleted file mode 100644 index 4161634e9..000000000 --- a/libre/virtualbox-libre-modules/os_gnulinux_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_musix.png b/libre/virtualbox-libre-modules/os_musix.png Binary files differdeleted file mode 100644 index fb7b94577..000000000 --- a/libre/virtualbox-libre-modules/os_musix.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_musix_64.png b/libre/virtualbox-libre-modules/os_musix_64.png Binary files differdeleted file mode 100644 index a1bbbbf3a..000000000 --- a/libre/virtualbox-libre-modules/os_musix_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_os64base.png b/libre/virtualbox-libre-modules/os_os64base.png Binary files differdeleted file mode 100644 index 7aec20314..000000000 --- a/libre/virtualbox-libre-modules/os_os64base.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_os64base.xcf b/libre/virtualbox-libre-modules/os_os64base.xcf Binary files differdeleted file mode 100644 index d8e28e35e..000000000 --- a/libre/virtualbox-libre-modules/os_os64base.xcf +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_osbase.png b/libre/virtualbox-libre-modules/os_osbase.png Binary files differdeleted file mode 100644 index 00f197fca..000000000 --- a/libre/virtualbox-libre-modules/os_osbase.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_osbase.xcf b/libre/virtualbox-libre-modules/os_osbase.xcf Binary files differdeleted file mode 100644 index c4463c857..000000000 --- a/libre/virtualbox-libre-modules/os_osbase.xcf +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_parabola.png b/libre/virtualbox-libre-modules/os_parabola.png Binary files differdeleted file mode 100644 index 757abc484..000000000 --- a/libre/virtualbox-libre-modules/os_parabola.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_parabola_64.png b/libre/virtualbox-libre-modules/os_parabola_64.png Binary files differdeleted file mode 100644 index 5ac7c2767..000000000 --- a/libre/virtualbox-libre-modules/os_parabola_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_trisquel.png b/libre/virtualbox-libre-modules/os_trisquel.png Binary files differdeleted file mode 100644 index c6f0d3d7a..000000000 --- a/libre/virtualbox-libre-modules/os_trisquel.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_trisquel_64.png b/libre/virtualbox-libre-modules/os_trisquel_64.png Binary files differdeleted file mode 100644 index ebca3dd43..000000000 --- a/libre/virtualbox-libre-modules/os_trisquel_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_ututo.png b/libre/virtualbox-libre-modules/os_ututo.png Binary files differdeleted file mode 100644 index e1dffb575..000000000 --- a/libre/virtualbox-libre-modules/os_ututo.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_ututo_64.png b/libre/virtualbox-libre-modules/os_ututo_64.png Binary files differdeleted file mode 100644 index 158468e0a..000000000 --- a/libre/virtualbox-libre-modules/os_ututo_64.png +++ /dev/null diff --git a/libre/virtualbox-libre-modules/os_venenux.png b/libre/virtualbox-libre-modules/os_venenux.png Binary files differdeleted file mode 100644 index 5e0c1585d..000000000 --- a/libre/virtualbox-libre-modules/os_venenux.png +++ /dev/null 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 { - - |