summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeiji Costantini <strites@gmail.com>2013-12-30 02:14:01 +0100
committerKeiji Costantini <strites@gmail.com>2013-12-30 02:14:01 +0100
commit947cfb57229fa355556103bc50778b54a8bde7a0 (patch)
tree7fba3d2ec890afa4462a61e2f09aaed442a245c4 /media-sound
parentAvahi bump (diff)
downloadkde-sunset-947cfb57229fa355556103bc50778b54a8bde7a0.tar.gz
kde-sunset-947cfb57229fa355556103bc50778b54a8bde7a0.tar.bz2
kde-sunset-947cfb57229fa355556103bc50778b54a8bde7a0.zip
Amarok fixes to compile with gcc 4.7 and a (somewhat) recent environment
Diffstat (limited to 'media-sound')
-rw-r--r--media-sound/amarok/Manifest32
-rw-r--r--media-sound/amarok/amarok-1.4.10_p20090130-r6.ebuild129
-rw-r--r--media-sound/amarok/files/amarok-gcc-4.6.patch22
-rw-r--r--media-sound/amarok/files/amarok-helix-constchar.patch11
-rw-r--r--media-sound/amarok/files/amarok-libmp4v2-3.patch330
5 files changed, 510 insertions, 14 deletions
diff --git a/media-sound/amarok/Manifest b/media-sound/amarok/Manifest
index 735f40d4..5fe73697 100644
--- a/media-sound/amarok/Manifest
+++ b/media-sound/amarok/Manifest
@@ -1,14 +1,18 @@
-AUX amarok-1.4.10-fix-autoconf-2.64.patch 429 RMD160 1b230d304ec6d014a94efa89fdc96fca78c6b22d SHA1 b9cc160a16eee01b729a4b5bc10a78f656ed0149 SHA256 9302c6f8003b0f9b61f2b4fcb91141e2de5790eb84ed8a82c87a7f3152b1d366
-AUX amarok-1.4.10-gcc-4.3.patch 271 RMD160 facfb2796b871f3b3a5cb0c5e2268386950b3801 SHA1 c86f458ba6ae8d5b78a047852f9f2699e6da2908 SHA256 b96e976276f5c87265ecdb62b596f6f2e91c921130b833b0e395f2b50c9fa9cc
-AUX amarok-1.4.10-gcc44.patch 4085 RMD160 bda16ee1d016cd158654b3f80faa413eaa7a6543 SHA1 f5c7eeea6ff80d6e634465517face69f3f344516 SHA256 b94338af91e5a108c39b100162f38bfe53d6c94fb9ed4c175f09de68df1c1989
-AUX amarok-1.4.10-xinelib-1.2.patch 430 RMD160 03f0ad01d4693e2b24dbb7f30472696e84640392 SHA1 ea9fd5a8d9f1fa4eea12c08140940e0d0a2f36a7 SHA256 52db7bf0795cffba7f7f48d66332431f2b72312ed77c808b6dc2788f2bb1d8d3
-AUX amarok-1.4.9.1-libmtp-0.3.0-API.patch 1912 RMD160 475852fde4ad1e27cc093d9435a4b525492e0156 SHA1 b211ad82d9abc49dd3a51260ba597cfaa78d9f6b SHA256 87583a40c4e13eae7a5364dc5b98dd83885c216e662c05c4de7c1de9739f6d9c
-AUX amarok-libmp4v2-2.patch 1317 RMD160 f2af142c7acca5d2f558d121fa4cd0ded2ea044c SHA1 14ab94f14e5be19f7ea5c6b83fdde768a1e5bcc1 SHA256 9a83dfdab7f393a802ec6394bf314736c7866391fb496b256c028bc81f86ce5c
-AUX amarok-libmp4v2.patch 2882 RMD160 f0786378bf963e8d10db49631bb0981facd9ed90 SHA1 a60289d7c852056c27ad2d03dc09b0500f428ac3 SHA256 df4c71a25381470411ac2223ec978989e1f3fa7e784de6a0b9e1cb53eed65e06
-DIST amarok-1.4.10-post20090130.diff.tar.bz2 4050 RMD160 e1b871213d7658081ffd396a1a208f97c3f10752 SHA1 8aa7492e91529ce1e01f3d2ee8183b7d7da7cb83 SHA256 64924546008abf88f7f776b27afe3de539defcd212c79c62c6abd90a7174dbe0
-DIST amarok-1.4.10.tar.bz2 12812583 RMD160 f86c71dd0459e0cf1ff586cd6de240ca6501cf62 SHA1 cb0bebe99c6f4dc1b01601f2f3aee3a86da08fbd SHA256 4b28f86e81447b94d33c35aa0cff65d59d85da74fde2a86c5c7862c048509c9b
-EBUILD amarok-1.4.10_p20090130-r3.ebuild 3201 RMD160 d54328dc1fb6e856929bc1f194f0fbff435e8436 SHA1 1be5481ca89fac187f08590acd129e96f9c704d8 SHA256 fc6436d89ee602766d34134df912795f6439ab2a7ec594de63d1bb685b1b66e8
-EBUILD amarok-1.4.10_p20090130-r4.ebuild 3253 RMD160 b87793d8aa77c6fcf150f6781ff4f030d0b64408 SHA1 98ad6d9cf789365b46b4ff3c2a11c4293f1c92d8 SHA256 e95a603eb1424827a667f57e81ae9ac9b264f0df5bca13249219ec73537739f1
-EBUILD amarok-1.4.10_p20090130-r5.ebuild 3299 RMD160 7b188dd304bd19dc4f173ccb13fd392734691bc1 SHA1 2cf06944d56c879d5a55787174343264589b10d9 SHA256 6b62ad1ace1fd57790a85b771e045b65028f028371a6057ac4e2fa7f03ac03b5
-MISC ChangeLog 56430 RMD160 96965184cfc6dd5b791e7b12ad8448c6e275fdee SHA1 a54422b32f1faeacdda81cde18b07d31ca6aef00 SHA256 a12a94b26e9e23f83aeb6c4f8b297f881b73a3b668c68e76e2c36ffed32505ef
-MISC metadata.xml 2160 RMD160 60852f091cb201337c8322cad498466cd63fee1d SHA1 15af0f24c3490806e06700d05bf5341779b2b26b SHA256 49e722b9b2a370e01b0efc327486bc3e02446e0c2b4b8047dffad765a1992357
+AUX amarok-1.4.10-fix-autoconf-2.64.patch 429 SHA256 9302c6f8003b0f9b61f2b4fcb91141e2de5790eb84ed8a82c87a7f3152b1d366 SHA512 fa16eca898619611eee9a1e88a35f86db54ac87802ebbd1503e4000c5afc16a5fb368d4ce6c7af7eeac9f56c4855bacfe49329cff1bc67ab237f98697d5e8915 WHIRLPOOL 3ea6322c98f7658fc4d36dc8fbe0950afac376a20c8b0a5d757792d6982b33714764eb519651314c29874bb29b9bf9b9e8dfed12e966c186b584b0955661f90a
+AUX amarok-1.4.10-gcc-4.3.patch 271 SHA256 b96e976276f5c87265ecdb62b596f6f2e91c921130b833b0e395f2b50c9fa9cc SHA512 6cab09abe9e07b05ed559914bf836eed1b4c96d495dc4415a94b3dc9186b10a23a1f8dfdb18124f6c769e8c9d01156da60ac61dd8f05b238b901d1d34383a315 WHIRLPOOL 0f7e58b54cb42391b16414285dbc2a5cee2939b6855a48a64690bbf5195f4ebdc0995fbe973a82625baa7fe1979ac77378918cc476ea410cfc0109028ea81060
+AUX amarok-1.4.10-gcc44.patch 4085 SHA256 b94338af91e5a108c39b100162f38bfe53d6c94fb9ed4c175f09de68df1c1989 SHA512 b1cccbdc16eb5473c4c6415f9f7f2ba4873668060da9014871b9e2dc5d2682c8afc70890018c1d5b32a5fcbce14913d06cc2bc834e6bf1a83a40ee78a24a1230 WHIRLPOOL ee52f6e2b2ba951c0b2c3ad35164490d79f66755561b16adc560992f4ce9b86366e1a666b4c23ce793a260fefa0bf4d664c6dfe205ae2919a9261c27af5d3f73
+AUX amarok-1.4.10-xinelib-1.2.patch 430 SHA256 52db7bf0795cffba7f7f48d66332431f2b72312ed77c808b6dc2788f2bb1d8d3 SHA512 197a8a06eb06181bdf27a364edf51b853b279699d594bc8923bad20af5a80d16366b26d3678ec0de3822d0c3c675d66af3f8f24b99c16e0a1b91d543c7a75236 WHIRLPOOL 45c3d612ebf87bbcb25fb648e319b5aad12ccdcfd1ba37c1ff38787a27c444e9acb4749a37423096f66b07aa2637475e62fe0e23445fd1d45138e1612b0e655a
+AUX amarok-1.4.9.1-libmtp-0.3.0-API.patch 1912 SHA256 87583a40c4e13eae7a5364dc5b98dd83885c216e662c05c4de7c1de9739f6d9c SHA512 8f07e9f6fa2254f4fc37221913d1110fc35816325b59e2f539540159cbd79265576590b21a0dd075ddf9eeb0deb17353108553b070f6d0deebca59ea0d0d2c1c WHIRLPOOL ec3e07a663ae3bf58264fa80f6b80bfa6c4e40cf8bdee2ee43bf146aa8608b74142a233d244859a3632dfb7549855158050279068c8d399775e53e77e8d3c501
+AUX amarok-gcc-4.6.patch 718 SHA256 abcdd3183f2108b4787a231697d2814a454de729031c043a532005ff6112c7eb SHA512 7baff6d359f4e9109300db1aaadc272433a92f2f1fa5d9144f556a901ab4a47dde166f70c74583a9e53c9419c6142d47c1d60e13f3a042821ffa00f93e058b06 WHIRLPOOL d2e05ad7e591926e05be8cf7a402c37ff7c7bf78d08698f25472438ea7f2901e6fd75a62c5775901ba48d079cc8b2dbf82c98d45590af45458967e25bdf730ca
+AUX amarok-helix-constchar.patch 410 SHA256 84fb811a3d9dfbe3a27c50b49d6eaa44585e31c47187ea9f902c9e790a7b186f SHA512 02f2ede8a1573b6bfe0ee440317247cb81d245f80f3cda08761f0b9a187b3e236dd33f91fbe25e554d33e25d1ab8b0efaccf7b8a812ff9add779f2da8024c17d WHIRLPOOL ed4d21d7c23b46a7342f429f11391fb3aee8acaac9a13faca05e548bf4609e331dc526d1e0ad8e1a44620b128394aaafe35a4a6abc3bf0efe03a23cc8efadf84
+AUX amarok-libmp4v2-2.patch 1317 SHA256 9a83dfdab7f393a802ec6394bf314736c7866391fb496b256c028bc81f86ce5c SHA512 dc5a95f6a09cb92c7fb4f0c4afeb6d34781a7b6bf822fa853c6637152c66e53bad91688608652bbf536fb13af1e2a0994dc1f72179fe1faf1592e19d8b6f82a3 WHIRLPOOL ad3ed2b8dc0185d9561b49c66b78edfabfa0119eec938473293b618b3d1fe0cbe0244abcc247e910d0c3e2aeb398ceb533fea1b37441cbae2aeb322f43930b6c
+AUX amarok-libmp4v2-3.patch 10397 SHA256 b0af49e1f584464fabaadae2f898716ee1b1a65956f910d8b2bac8d464c51d6e SHA512 0a68bbfe4fff94f006237b7d0f7e85d79c570370aa3848cb8dcb12ffebc9bce196bc36a68368329a8295893305672d1c8fd17bd499a668f0706320f9d87d1feb WHIRLPOOL 579388607a95d3ce06eb60852566633fedc0758bb5ab621ddb96cfad3651f5c489614904aa754534689486372e9d86ea6e2fd338e2176145c5e24625ea3d433f
+AUX amarok-libmp4v2.patch 2882 SHA256 df4c71a25381470411ac2223ec978989e1f3fa7e784de6a0b9e1cb53eed65e06 SHA512 811a073444564f7e9ef9827533dc316b0ba61e0abe8dbb9f65bf1a5f5160239bd18b3c03198dc79ba2fa0b7af92ac7b6a6cd3888aacc3210ce9d72310d76cef4 WHIRLPOOL 0c35e6e57c911265b29d4e1329b1d900905ca208c1f3457c92c56585075b022a300c29e1f710d086e4aaf752f0bb2e716883bde1f59f6475b994f0f00b870261
+DIST amarok-1.4.10-post20090130.diff.tar.bz2 4050 SHA256 64924546008abf88f7f776b27afe3de539defcd212c79c62c6abd90a7174dbe0 SHA512 19a5e5cea28fdf312363f03a28fd3ab14eb101f4ad90bdc6fc009ce4be7e7b17dd845b1a357b435f329b06d61f1689c31684afae7545af123af9afc33447b88a WHIRLPOOL 2ef5dcbd52319f0f515435cbce783e2608a97948810ff4f47268f6e6eb104adf75854097ec3748551605ed5954f0784025cf0bbe3e039784558ac7b1e15bc504
+DIST amarok-1.4.10.tar.bz2 12812583 SHA256 4b28f86e81447b94d33c35aa0cff65d59d85da74fde2a86c5c7862c048509c9b SHA512 96ff4ad7f4348954b31b4e01405d29ca53bc4d44adc15d9e71383bc9e3dad99640d72dea4ce8576b1df3edc3836abcf8846eab2a7bb417629b51e7d903d46f59 WHIRLPOOL d7fed8a29c36ecc6cdba7ed2300ce8ca04496673e59cdd843278d1e9426ea07542e25c4def1c4820da2c27a887438958b210a0a786c94ba68771e827080c83b8
+EBUILD amarok-1.4.10_p20090130-r3.ebuild 3201 SHA256 fc6436d89ee602766d34134df912795f6439ab2a7ec594de63d1bb685b1b66e8 SHA512 a955634fdebf37387dd57de8419e62f20a0c0b73417074eff6bc2b28e88f91780482270d53fb5b77a34e0ace7ba35a9080ebae010fb2ac7b3b00373543359fa9 WHIRLPOOL 669e5f4a8faf71505357efcb37a2bd393ab8ee13847fd2f8f383ef8310ee6ad66c636770da270b59838a4f22916e02b3675000c952547b5e0543a9604502906c
+EBUILD amarok-1.4.10_p20090130-r4.ebuild 3253 SHA256 e95a603eb1424827a667f57e81ae9ac9b264f0df5bca13249219ec73537739f1 SHA512 72bb0065c9fe5b984f84dd0df6a2c78232630aca5b5b6c426b87546b1964c516bf1b0d5ebd2a76bf351a2d6eddda71f6d1ff8db24997c5d182729863b101534b WHIRLPOOL 578859b135802e6ad1064deaef525220c6efe8f2374593b9e25075076a6c42dc9890573ee8f2a734ecfcf2c61316c2299b080814e26f7e585f6a987b26246998
+EBUILD amarok-1.4.10_p20090130-r5.ebuild 3299 SHA256 6b62ad1ace1fd57790a85b771e045b65028f028371a6057ac4e2fa7f03ac03b5 SHA512 d4cfc57e57cad8a0e719ad4f3de5148363cc380e562e050b2b28641dc2f6e53ce97781440da2d30f8796b035b6df392a2dd10395c4db99fb9219bcf48b611179 WHIRLPOOL 0d9aabc481e3f6e6bda481668252cc0ce75aca0b5aca6556f890bb55660a276402de37553200aa51e714a745ad380107db7e8435e4791b406833803042320b8d
+EBUILD amarok-1.4.10_p20090130-r6.ebuild 3450 SHA256 71d2df57d5d8ce62bfd79fc8188cb73f035c13648279ef93c3357e8251f4436f SHA512 c25689e3ef94ffbd30321ac744064b1535fdf8ea1466657c706703e272d88e8ad8b2aafa1bd21bfdc654f14eaca040163c7f092f280f89d05c3b731e434cbddb WHIRLPOOL 3b50a7abe42d13d0b555d6e0ce741855c50a4112d791cc188623a31e23b271d30092c45874bcf8c5824f98a0edc8c62cf28e4385df51eae0eb5f8bf04dd23f69
+MISC ChangeLog 56430 SHA256 a12a94b26e9e23f83aeb6c4f8b297f881b73a3b668c68e76e2c36ffed32505ef SHA512 d525285451976f2b63552ee2d3b0a446d7c09f46900592725cdf4abde1e626261e7279c091139dfe11279a3efb22af9a51176d525f3bcd0179f54144139da72a WHIRLPOOL 882a5ad6a496f0308bc8930e2ec31870834fdf9bc4c2c1711690fb168638a8dc0160c8f04117080015b63cc82b4ed047cf962dc14b09efbcbcd047d898dc7f72
+MISC metadata.xml 2160 SHA256 49e722b9b2a370e01b0efc327486bc3e02446e0c2b4b8047dffad765a1992357 SHA512 9b7c4099bc0ada1a945018b10e248f13959b5483dc31659e72531cd91fce39c7234e561129602ea21449e34e3889e414907e61ea77dc7fc8a692e836476cf3ef WHIRLPOOL e35d227c97dd10dfa969ba9c84db8a1a4eb7469d3e8061dc41cf470a939aa3091777d6f098b6934f203c312555b18af999e64f7f634c288260f3f4c01295af89
diff --git a/media-sound/amarok/amarok-1.4.10_p20090130-r6.ebuild b/media-sound/amarok/amarok-1.4.10_p20090130-r6.ebuild
new file mode 100644
index 00000000..2f17e2a9
--- /dev/null
+++ b/media-sound/amarok/amarok-1.4.10_p20090130-r6.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/amarok/amarok-1.4.10_p20090130-r3.ebuild,v 1.8 2009/11/07 00:39:24 ssuominen Exp $
+
+EAPI="2"
+
+ARTS_REQUIRED="never"
+
+LANGS="af ar az be bg bn br ca cs cy da de el en_GB eo es et eu fa fi
+fr ga gl he hi hu id is it ja km ko ku lo lt mk ms nb nds ne nl nn pa
+pl pt pt_BR ro ru rw se sk sl sq sr sr@Latn ss sv ta tg th tr uk uz
+zh_CN zh_TW"
+
+LANGS_DOC="da de es et fr it nl pl pt pt_BR ru sv"
+
+USE_KEG_PACKAGING="1"
+
+inherit kde
+
+PKG_SUFFIX=""
+
+MY_P="${P/_*/}"
+S="${WORKDIR}/${MY_P}"
+
+SRC_URI="mirror://kde/stable/amarok/${PV/_*/}/src/${MY_P}.tar.bz2
+ mirror://kde-sunset/amarok-1.4.10-post20090130.diff.tar.bz2"
+
+DESCRIPTION="Advanced audio player based on KDE framework."
+HOMEPAGE="http://amarok.kde.org/"
+
+LICENSE="GPL-2"
+
+SLOT="3.5"
+KEYWORDS="amd64 ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE="mp4 mysql +amazon opengl postgres
+visualization ipod ifp real njb mtp musicbrainz daap
+python"
+# kde: enables compilation of the konqueror sidebar plugin
+
+# Blocking previous amarok-1.4:0 versions
+RDEPEND="
+ !<media-sound/amarok-1.4.10_p20090130-r2
+ =dev-lang/ruby-1.8*
+ >=media-libs/taglib-1.4
+ >=media-libs/xine-lib-1.1.2_pre20060328-r8
+ ifp? ( media-libs/libifp )
+ ipod? ( >=media-libs/libgpod-0.5.2 )
+ mp4? ( media-libs/libmp4v2 )
+ mtp? ( >=media-libs/libmtp-0.3.0 )
+ musicbrainz? ( media-libs/tunepimp )
+ mysql? ( >=virtual/mysql-4.0 )
+ njb? ( >=media-libs/libnjb-2.2.4 )
+ opengl? ( virtual/opengl )
+ postgres? ( dev-db/postgresql-base )
+ real? (
+ media-libs/alsa-lib
+ media-video/realplayer
+ )
+ visualization? (
+ media-libs/libsdl
+ =media-plugins/libvisual-plugins-0.4*
+ )
+"
+
+DEPEND="${RDEPEND}"
+
+RDEPEND="${RDEPEND}
+ app-arch/unzip
+ daap? ( www-servers/mongrel )
+ python? ( dev-python/PyQt )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.4.9.1-libmtp-0.3.0-API.patch"
+ "${FILESDIR}/${PN}-1.4.10-gcc-4.3.patch"
+ "${FILESDIR}/${PN}-1.4.10-gcc44.patch"
+ "${FILESDIR}/${PN}-gcc-4.6.patch"
+ "${FILESDIR}/${PN}-libmp4v2.patch"
+ "${FILESDIR}/${PN}-libmp4v2-2.patch"
+ "${FILESDIR}/${PN}-libmp4v2-3.patch"
+ "${FILESDIR}/${PN}-1.4.10-fix-autoconf-2.64.patch"
+ "${FILESDIR}/${PN}-qt3-4.7.patch"
+ "${WORKDIR}/${PN}-1.4.10-post20090130.diff"
+ "${WORKDIR}/${PN}-1.4.10-desktop-entry.diff"
+ "${FILESDIR}/${PN}-1.4.10-xinelib-1.2.patch"
+ "${FILESDIR}/${PN}-helix-constchar.patch"
+)
+
+need-kde 3.5
+
+src_configure() {
+ # Extra, unsupported engines are forcefully disabled.
+ local myconf="
+ $(use_enable amazon)
+ $(use_enable mysql)
+ $(use_enable postgres postgresql)
+ $(use_with daap)
+ $(use_with ifp)
+ $(use_with ipod libgpod)
+ $(use_with mp4 mp4v2)
+ $(use_with mtp libmtp)
+ $(use_with musicbrainz)
+ $(use_with njb libnjb)
+ $(use_with opengl)
+ $(use_with real helix)
+ $(use_with visualization libvisual)
+ --with-xine
+ --without-nmm
+ "
+
+ kde_src_configure
+}
+
+src_install() {
+ kde_src_install
+
+ # As much as I respect Ian, I'd rather leave Amarok to use mongrel
+ # from Portage, for security and policy reasons.
+ rm -rf "${D}${KDEDIR}"/share/apps/amarok/ruby_lib/rbconfig \
+ "${D}${KDEDIR}"/share/apps/amarok/ruby_lib/mongrel* \
+ "${D}${KDEDIR}"/share/apps/amarok/ruby_lib/rubygems* \
+ "${D}${KDEDIR}"/share/apps/amarok/ruby_lib/gem* \
+ "${D}${KDEDIR}"/$(get_libdir)/ruby_lib
+
+ if ! use python; then
+ rm -r "${D}${KDEDIR}"/share/apps/amarok/scripts/webcontrol \
+ || die "Unable to remove webcontrol."
+ fi
+}
diff --git a/media-sound/amarok/files/amarok-gcc-4.6.patch b/media-sound/amarok/files/amarok-gcc-4.6.patch
new file mode 100644
index 00000000..ccd73c9c
--- /dev/null
+++ b/media-sound/amarok/files/amarok-gcc-4.6.patch
@@ -0,0 +1,22 @@
+diff -urN amarok-1.4.10.orig/amarok/src/actionclasses.cpp amarok-1.4.10/amarok/src/actionclasses.cpp
+--- amarok-1.4.10.orig/amarok/src/actionclasses.cpp 2008-08-14 01:21:51.000000000 +0400
++++ amarok-1.4.10/amarok/src/actionclasses.cpp 2011-06-12 16:47:59.273750623 +0400
+@@ -30,6 +30,8 @@
+ #include <ktoolbarbutton.h>
+ #include <kurl.h>
+
++extern KAboutData aboutData;
++
+ namespace Amarok
+ {
+ bool repeatNone() { return AmarokConfig::repeat() == AmarokConfig::EnumRepeat::Off; }
+@@ -171,8 +173,6 @@
+ KPopupMenu*
+ Menu::helpMenu( QWidget *parent ) //STATIC
+ {
+- extern KAboutData aboutData;
+-
+ if ( s_helpMenu == 0 )
+ s_helpMenu = new KHelpMenu( parent, &aboutData, Amarok::actionCollection() );
+
+
diff --git a/media-sound/amarok/files/amarok-helix-constchar.patch b/media-sound/amarok/files/amarok-helix-constchar.patch
new file mode 100644
index 00000000..0118fad1
--- /dev/null
+++ b/media-sound/amarok/files/amarok-helix-constchar.patch
@@ -0,0 +1,11 @@
+--- amarok-1.4.10/amarok/src/engine/helix/helix-sp/helix-sp.cpp
++++ amarok-1.4.10/amarok/src/engine/helix/helix-sp/helix-sp.cpp
+@@ -1509,7 +1509,7 @@
+ delete [] ppctrl[playerIndex]->pszURL;
+
+ // see if the file is already in the form of a url
+- char *tmp = strstr(file, "://");
++ const char *tmp = strstr(file, "://");
+ if (!tmp)
+ {
+ char pszURLOrig[MAXPATHLEN];
diff --git a/media-sound/amarok/files/amarok-libmp4v2-3.patch b/media-sound/amarok/files/amarok-libmp4v2-3.patch
new file mode 100644
index 00000000..552974a0
--- /dev/null
+++ b/media-sound/amarok/files/amarok-libmp4v2-3.patch
@@ -0,0 +1,330 @@
+--- a/amarok/configure.in.in
++++ a/amarok/configure.in.in
+@@ -995,15 +995,28 @@ if test "$have_mp4v2" != "no"; then
+ ac_cppflags_save=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I."
+ AC_CHECK_HEADERS(systems.h)
+- AC_CHECK_HEADERS([mp4v2/mp4v2.h], [have_mp4_h=yes], [],
++ AC_CHECK_HEADERS([mp4v2/mp4v2.h], [have_mp4v2_h=yes], [],
+ [#ifdef HAVE_SYSTEMS_H
+ # include <systems.h>
+ #endif
+ ])
++ if test "$have_mp4v2_h" = "yes"; then
++ AC_DEFINE(HAVE_MP4V2_H, 1, [have mp4v2 h])
++ else
++ AC_CHECK_HEADERS([mp4.h], [have_mp4_h=yes], [],
++ [#ifdef HAVE_SYSTEMS_H
++ # include <systems.h>
++ #endif
++ ])
++ if test "$have_mp4_h" = "yes"; then
++ AC_DEFINE(HAVE_MP4_H, 1, [have mp4 h])
++ have_mp4v2_h=yes
++ fi
++ fi
+
+ AC_CHECK_LIB( mp4v2, MP4Read, have_mp4v2=yes, have_mp4v2=no )
+
+- if test "$have_mp4v2" = "yes" -a "$have_mp4_h" = "yes"; then
++ if test "$have_mp4v2" = "yes" -a "$have_mp4v2_h" = "yes"; then
+ AC_DEFINE(HAVE_MP4V2, 1, [have mp4v2])
+ MP4V2_INCLUDES="-I$mp4v2_dir/include"
+ MP4V2_LIBS="-L$mp4v2_dir/lib -lmp4v2"
+--- a/amarok/src/metadata/mp4/mp4file.cpp
++++ a/amarok/src/metadata/mp4/mp4file.cpp
+@@ -23,6 +23,8 @@ email : aumuell@reserv.at
+ * MA 02110-1301 USA *
+ ***************************************************************************/
+
++#include <config.h>
++
+ #include "mp4file.h"
+
+ #include "mp4tag.h"
+@@ -34,7 +36,11 @@ email : aumuell@reserv.at
+ #include <stdlib.h>
+ #include <sys/types.h>
+
++#ifdef HAVE_MP4V2_H
++#define USE_ITMF_TAGS
++#else
+ #define MP4V2_HAS_WRITE_BUG 1
++#endif
+
+ namespace TagLib {
+ ////////////////////////////////////////////////////////////////////////////////
+@@ -102,6 +108,11 @@ bool MP4::File::save()
+ return false;
+ }
+
++#ifdef USE_ITMF_TAGS
++ const MP4Tags* filetags = MP4TagsAlloc();
++ MP4TagsFetch(filetags, handle);
++#endif
++
+ #ifdef MP4V2_HAS_WRITE_BUG
+ /* according to gtkpod we have to delete all meta data before modifying it,
+ save the stuff we would not touch */
+@@ -117,7 +128,14 @@ bool MP4::File::save()
+ #endif
+
+
+-
++#ifdef USE_ITMF_TAGS
++ MP4TagsSetName(filetags, mp4tag->title().isNull() ? "" : mp4tag->title().toCString(true));
++ MP4TagsSetArtist(filetags, mp4tag->artist().isNull() ? "" : mp4tag->artist().toCString(true));
++ MP4TagsSetAlbum(filetags, mp4tag->album().isNull() ? "" : mp4tag->album().toCString(true));
++ MP4TagsSetComments(filetags, mp4tag->comment().isNull() ? "" : mp4tag->comment().toCString(true));
++ MP4TagsSetGenre(filetags, mp4tag->genre().isNull() ? "" : mp4tag->genre().toCString(true));
++ MP4TagsSetComposer(filetags, mp4tag->composer().isNull() ? "" : mp4tag->composer().toCString(true));
++#else
+ #define setmeta(val, tag) \
+ if(mp4tag->val().isNull()) { \
+ /*MP4DeleteMetadata##tag(handle);*/ \
+@@ -125,27 +143,65 @@ bool MP4::File::save()
+ } else { \
+ MP4SetMetadata##tag(handle, mp4tag->val().toCString(true)); \
+ }
+-
+ setmeta(title, Name);
+ setmeta(artist, Artist);
+ setmeta(album, Album);
+ setmeta(comment, Comment);
+ setmeta(genre, Genre);
++ setmeta(composer, Writer);
++#endif
+
+ char buf[100] = "";
+ if(mp4tag->year())
+ snprintf(buf, sizeof(buf), "%u", mp4tag->year());
++#ifdef USE_ITMF_TAGS
++ MP4TagsSetReleaseDate(filetags, buf);
++#else
+ MP4SetMetadataYear(handle, buf);
++#endif
+ u_int16_t t1, t2;
++
++#ifdef USE_ITMF_TAGS
++ MP4TagTrack track = *filetags->track;
++ track.index = t1;
++ MP4TagsSetTrack(filetags, &track);
++#else
+ MP4GetMetadataTrack(handle, &t1, &t2);
+ MP4SetMetadataTrack(handle, mp4tag->track(), t2);
+- if(mp4tag->bpm() != 0)
++#endif
++ if(mp4tag->bpm() != 0) {
++#ifdef USE_ITMF_TAGS
++ u_int16_t tempo = mp4tag->bpm();
++ MP4TagsSetTempo(filetags, &tempo);
++#else
+ MP4SetMetadataTempo(handle, mp4tag->bpm());
++#endif
++ }
+ if(mp4tag->compilation() != MP4::Tag::Undefined) {
++#ifdef USE_ITMF_TAGS
++ u_int8_t compilation = mp4tag->compilation();
++ MP4TagsSetCompilation(filetags, &compilation);
++#else
+ MP4SetMetadataCompilation(handle, mp4tag->compilation());
++#endif
+ }
+
++#ifdef USE_ITMF_TAGS
++ if(mp4tag->cover().size()) {
++ MP4TagArtwork art;
++ art.size = mp4tag->cover().size();
++ art.data = mp4tag->cover().size() ? const_cast<u_int8_t *>( reinterpret_cast<const u_int8_t *>( mp4tag->cover().data() ) ) : 0;
++ art.type = MP4_ART_UNDEFINED; // delegate typing to libmp4v2
++ if(filetags->artworkCount > 0) {
++ MP4TagsSetArtwork(filetags, 0, &art);
++ }
++ else {
++ MP4TagsAddArtwork(filetags, &art);
++ }
++ }
++#else
+ MP4SetMetadataCoverArt(handle, mp4tag->cover().size() ? const_cast<u_int8_t *>( reinterpret_cast<const u_int8_t *>( mp4tag->cover().data() ) ) : 0, mp4tag->cover().size());
++#endif
+
+ #ifdef MP4V2_HAS_WRITE_BUG
+ // set the saved data again
+@@ -159,6 +215,10 @@ bool MP4::File::save()
+ }
+ #endif
+
++#ifdef USE_ITMF_TAGS
++ MP4TagsStore(filetags, handle);
++ MP4TagsFree(filetags);
++#endif
+ MP4Close(handle);
+
+ mp4file = MP4Read(name());
+--- a/amarok/src/metadata/mp4/mp4properties.h
++++ a/amarok/src/metadata/mp4/mp4properties.h
+@@ -22,13 +22,20 @@ email : andrew.leadbetter@gmail.com
+ #ifndef TAGLIB_MP4PROPERTIES_H
+ #define TAGLIB_MP4PROPERTIES_H
+
++#include <config.h>
++
+ #include <audioproperties.h>
+ #include <tstring.h>
+-#include <mp4v2/mp4v2.h>
++#ifdef HAVE_MP4V2_H
++# include <mp4v2/mp4v2.h>
++#endif
++#ifdef HAVE_MP4_H
++# include <mp4.h>
+ // mp4.h drags in mp4_config.h that defines these
+ // get rid of them so they don't conflict with our config.h
+ #undef VERSION
+ #undef PACKAGE
++#endif
+
+ namespace TagLib {
+
+--- a/amarok/src/metadata/mp4/mp4tag.cpp
++++ a/amarok/src/metadata/mp4/mp4tag.cpp
+@@ -20,6 +20,8 @@ email : andrew.leadbetter@gmail.com
+ * MA 02110-1301 USA *
+ ***************************************************************************/
+
++#include <config.h>
++
+ #include "mp4tag.h"
+
+ #include <tag.h>
+@@ -29,6 +31,10 @@ email : andrew.leadbetter@gmail.com
+ #include <stdlib.h>
+ #include <sys/types.h>
+
++#ifdef HAVE_MP4V2_H
++#define USE_ITMF_TAGS
++#endif
++
+ using namespace TagLib;
+
+ MP4::Tag::Tag() : TagLib::Tag::Tag() {
+@@ -67,21 +73,66 @@ void MP4::Tag::duplicate(const Tag *source, Tag *target, bool overwrite) {
+ // Duplicate standard information
+ Tag::duplicate(source, target, overwrite);
+
+- if (overwrite || target->compilation() == Undefined && source->compilation() != Undefined)
++ if ((overwrite || target->compilation() == Undefined) && (source->compilation() != Undefined)) {
+ target->setCompilation(source->compilation());
++ }
+
+- if (overwrite || target->cover().size() == 0)
++ if (overwrite || target->cover().size() == 0) {
+ target->setCover(source->cover());
++ }
+ }
+
+ void MP4::Tag::readTags( MP4FileHandle mp4file )
+ {
+ // Now parse tag.
++#ifdef USE_ITMF_TAGS
++ const MP4Tags* filetags = MP4TagsAlloc();
++ MP4TagsFetch(filetags, mp4file);
++
++ if(filetags->name != NULL) {
++ m_title = String(filetags->name, String::UTF8);
++ }
++ if(filetags->artist != NULL) {
++ m_artist = String(filetags->artist, String::UTF8);
++ }
++ if(filetags->comments != NULL) {
++ m_comment = String(filetags->comments, String::UTF8);
++ }
++ if(filetags->releaseDate != NULL) {
++ m_year = strtol(filetags->releaseDate, NULL, 0);
++ }
++ if(filetags->album != NULL) {
++ m_album = String(filetags->album, String::UTF8);
++ }
++ if(filetags->track != NULL) {
++ m_track = filetags->track->index;
++ }
++ if(filetags->disk != NULL) {
++ m_disk = filetags->disk->index;
++ }
++ if(filetags->tempo != NULL) {
++ m_bpm = *filetags->tempo;
++ }
++ if(filetags->compilation != NULL) {
++ m_compilation = *filetags->compilation;
++ }
++ if(filetags->genre != NULL) {
++ m_genre = String(filetags->genre, String::UTF8);
++ }
++ if(filetags->composer != NULL) {
++ m_composer = String(filetags->composer, String::UTF8);
++ }
++ if(filetags->artworkCount > 0) {
++ m_image.setData(reinterpret_cast<const char *>( filetags->artwork[0].data ), filetags->artwork[0].size);
++ }
++ MP4TagsFree(filetags);
++#else
+ char *value;
+ uint8_t boolvalue;
+ uint16_t numvalue, numvalue2;
+ uint8_t *image;
+ uint32_t imageSize;
++
+ if (MP4GetMetadataName(mp4file, &value) && value != NULL) {
+ m_title = String(value, String::UTF8);
+ free(value);
+@@ -128,4 +179,5 @@ void MP4::Tag::readTags( MP4FileHandle mp4file )
+ m_image.setData(reinterpret_cast<const char *>( image ), imageSize);
+ free(image);
+ }
++#endif
+ }
+--- a/amarok/src/metadata/mp4/mp4tag.h
++++ a/amarok/src/metadata/mp4/mp4tag.h
+@@ -21,9 +21,16 @@ email : andrew.leadbetter@gmail.com
+ #ifndef TAGLIB_MP4TAG_H
+ #define TAGLIB_MP4TAG_H
+
++#include <config.h>
++
+ #include <tag.h>
+ #include "mp4file.h"
+-#include <mp4v2/mp4v2.h>
++#ifdef HAVE_MP4V2_H
++# include <mp4v2/mp4v2.h>
++#endif
++#ifdef HAVE_MP4_H
++# include <mp4.h>
++#endif
+
+ namespace TagLib {
+
+--- a/amarok/src/metadata/mp4/taglib_mp4filetyperesolver.cpp
++++ a/amarok/src/metadata/mp4/taglib_mp4filetyperesolver.cpp
+@@ -36,7 +36,11 @@ TagLib::File *MP4FileTypeResolver::createFile(const char *fileName,
+ || !strcasecmp(ext, ".mp4")
+ || !strcasecmp(ext, ".m4v") || !strcasecmp(ext, ".mp4v")))
+ {
+- MP4FileHandle h = MP4Read(fileName, 0);
++#if defined(MP4V2_PROJECT_version_hex) && MP4V2_PROJECT_version_hex >= 0x00020000
++ MP4FileHandle h = ::MP4Read(fileName);
++#else
++ MP4FileHandle h = ::MP4Read(fileName, 0);
++#endif
+ if(MP4_INVALID_FILE_HANDLE == h)
+ {
+ return 0;
+--- a/config.h.in
++++ a/config.h.in
+@@ -106,6 +106,9 @@
+ /* have mp4v2 */
+ #undef HAVE_MP4V2
+
++/* Define to 1 if you have the <mp4v2/mp4v2.h> header file. */
++#undef HAVE_MP4V2_H
++
+ /* Define to 1 if you have the <mp4.h> header file. */
+ #undef HAVE_MP4_H