diff options
author | Keiji Costantini <strites@gmail.com> | 2013-12-30 02:14:01 +0100 |
---|---|---|
committer | Keiji Costantini <strites@gmail.com> | 2013-12-30 02:14:01 +0100 |
commit | 947cfb57229fa355556103bc50778b54a8bde7a0 (patch) | |
tree | 7fba3d2ec890afa4462a61e2f09aaed442a245c4 /media-sound | |
parent | Avahi bump (diff) | |
download | kde-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/Manifest | 32 | ||||
-rw-r--r-- | media-sound/amarok/amarok-1.4.10_p20090130-r6.ebuild | 129 | ||||
-rw-r--r-- | media-sound/amarok/files/amarok-gcc-4.6.patch | 22 | ||||
-rw-r--r-- | media-sound/amarok/files/amarok-helix-constchar.patch | 11 | ||||
-rw-r--r-- | media-sound/amarok/files/amarok-libmp4v2-3.patch | 330 |
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 |