Fix endianness bug in load_psm.cpp, ported from audacious.
authorMichael Hanselmann <hansmi@gentoo.org>
Sun, 24 Dec 2006 21:49:18 +0000 (21:49 +0000)
committerMichael Hanselmann <hansmi@gentoo.org>
Sun, 24 Dec 2006 21:49:18 +0000 (21:49 +0000)
Package-Manager: portage-2.1.1-r2

media-libs/libmodplug/ChangeLog
media-libs/libmodplug/Manifest
media-libs/libmodplug/files/digest-libmodplug-0.8.4-r2 [new file with mode: 0644]
media-libs/libmodplug/files/libmodplug-0.8.4-endian.patch [new file with mode: 0644]
media-libs/libmodplug/libmodplug-0.8.4-r2.ebuild [new file with mode: 0644]

index e58ce3886c226a755b552f9f6329baec581ea87f..a041c9935bc16df2c8bef6da2e3aa93f8a9ec965 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for media-libs/libmodplug
 # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/libmodplug/ChangeLog,v 1.28 2006/12/23 00:56:34 chainsaw Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/libmodplug/ChangeLog,v 1.29 2006/12/24 21:49:18 hansmi Exp $
+
+*libmodplug-0.8.4-r2 (24 Dec 2006)
+
+  24 Dec 2006; Michael Hanselmann <hansmi@gentoo.org>
+  +files/libmodplug-0.8.4-endian.patch, +libmodplug-0.8.4-r2.ebuild:
+  Fix endianness bug in load_psm.cpp, ported from audacious.
 
 *libmodplug-0.8.4-r1 (23 Dec 2006)
 
index a377de115c7e6ce3df17cc724dd2bc446d807d73..4ddfd9e767c431dfdc293d7f52d3dc7547423e14 100644 (file)
@@ -1,6 +1,3 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
 AUX libmodplug-0.7-amd64.patch 1580 RMD160 75793a88b2d4113e8872c79da028ba2f7d98f569 SHA1 661f62ed0c1ff5848cab9cb3a663c0d285741163 SHA256 931534f2420722e51ddf136f8f84d3a7ef0d6b065fddd9cc8c244a06e0373e5e
 MD5 a8b506be2f9429c8b4ac508b04213432 files/libmodplug-0.7-amd64.patch 1580
 RMD160 75793a88b2d4113e8872c79da028ba2f7d98f569 files/libmodplug-0.7-amd64.patch 1580
@@ -13,6 +10,10 @@ AUX libmodplug-0.8-CVE-2006-4192.patch 1449 RMD160 659c804f64394078c72d6c1359d7d
 MD5 b04c926ad142751512df8b7869f4117e files/libmodplug-0.8-CVE-2006-4192.patch 1449
 RMD160 659c804f64394078c72d6c1359d7d32559e741a3 files/libmodplug-0.8-CVE-2006-4192.patch 1449
 SHA256 4068347f14f85220910abbf7eacb1a9ccb9540d3c8495e62b19618d54fdd4a9c files/libmodplug-0.8-CVE-2006-4192.patch 1449
+AUX libmodplug-0.8.4-endian.patch 2098 RMD160 93d36295c448b2c02859316177fda22c3e518d9e SHA1 a151248d892a6838bdcf3a825558954a0c54abc9 SHA256 c1298400afd5fbc9dd3a5a1e4c271868da740deb5cbacceb583bc2162e2d81a1
+MD5 857a2c0815336951992674c1479dd878 files/libmodplug-0.8.4-endian.patch 2098
+RMD160 93d36295c448b2c02859316177fda22c3e518d9e files/libmodplug-0.8.4-endian.patch 2098
+SHA256 c1298400afd5fbc9dd3a5a1e4c271868da740deb5cbacceb583bc2162e2d81a1 files/libmodplug-0.8.4-endian.patch 2098
 AUX libmodplug-0.8.4-ppc64-64ul.patch 447 RMD160 52c72d40eab1a8d597436784f805005d14ef8a0a SHA1 32d2eafab7e1fd21ecfe37415ade16f435568f84 SHA256 6dea70ca1fe23d0baba85230f0f8d96cdab2b66470a8244a5749f2042d14d888
 MD5 aad3a50516646962de4710903249477f files/libmodplug-0.8.4-ppc64-64ul.patch 447
 RMD160 52c72d40eab1a8d597436784f805005d14ef8a0a files/libmodplug-0.8.4-ppc64-64ul.patch 447
@@ -36,6 +37,10 @@ EBUILD libmodplug-0.8.4-r1.ebuild 1350 RMD160 e296b27a7863b121f5f5f567cc35822154
 MD5 f2a6d672feb0b24940816fa834ed08d0 libmodplug-0.8.4-r1.ebuild 1350
 RMD160 e296b27a7863b121f5f5f567cc35822154a40c7c libmodplug-0.8.4-r1.ebuild 1350
 SHA256 ea113afeac957d31d861f3f316e46e928f1eedc95facc56ea5c23b3f60063844 libmodplug-0.8.4-r1.ebuild 1350
+EBUILD libmodplug-0.8.4-r2.ebuild 1395 RMD160 844f558fbff6845962550a62231de77b1bd48b46 SHA1 3dac5dda31ea26efd90446bedfa36702f652d50a SHA256 5576083981a51e2bad0b28640c2ac09faa589f5f1ebfb0af9ab97ecdcc132ca8
+MD5 4b5f19580c87e5353ef0ff00ef630dd7 libmodplug-0.8.4-r2.ebuild 1395
+RMD160 844f558fbff6845962550a62231de77b1bd48b46 libmodplug-0.8.4-r2.ebuild 1395
+SHA256 5576083981a51e2bad0b28640c2ac09faa589f5f1ebfb0af9ab97ecdcc132ca8 libmodplug-0.8.4-r2.ebuild 1395
 EBUILD libmodplug-0.8.4.ebuild 1297 RMD160 ddc1416b024e91cc16fedce242fcdd383c675b4b SHA1 15857b960f73d7a06893283b93e7e91635db5a12 SHA256 40e289bbc114ce41c1dcf87d6e712a1394e563c361fc9d9440ccaa3f67904eea
 MD5 84a8271d92312d1cde047f72cdc44ceb libmodplug-0.8.4.ebuild 1297
 RMD160 ddc1416b024e91cc16fedce242fcdd383c675b4b libmodplug-0.8.4.ebuild 1297
@@ -44,10 +49,10 @@ EBUILD libmodplug-0.8.ebuild 943 RMD160 2207ba72e5d134f834ef34314aa5248a9a52c0d5
 MD5 289acc8c999cd9e7bc48d863955c2c33 libmodplug-0.8.ebuild 943
 RMD160 2207ba72e5d134f834ef34314aa5248a9a52c0d5 libmodplug-0.8.ebuild 943
 SHA256 120536049558699bb253181769e580ca094cde2febc84eb19cad0dcb003e32e4 libmodplug-0.8.ebuild 943
-MISC ChangeLog 3593 RMD160 758f0e15201dc113864755811580c00c81aaa405 SHA1 5a487bd6d0f62654562e57ecc5ceb63c25135353 SHA256 abdda01e89fa57f5fc1f9619d0dc633a5c739a4e3c52104eb6c0f87fa6c344c6
-MD5 eef896366f7833b45f08546831cf4609 ChangeLog 3593
-RMD160 758f0e15201dc113864755811580c00c81aaa405 ChangeLog 3593
-SHA256 abdda01e89fa57f5fc1f9619d0dc633a5c739a4e3c52104eb6c0f87fa6c344c6 ChangeLog 3593
+MISC ChangeLog 3812 RMD160 9283ea0a82a1fbc3f25aae3fcd892d48c99fe9aa SHA1 e4278b766194a8a55e34b1b0289748a4615ac8de SHA256 132e0edd6488e10636efec9367ae3444ca8cb9a6546e88a68a20206182da9de9
+MD5 d0292a5cecf2a51d5f29b8559966370c ChangeLog 3812
+RMD160 9283ea0a82a1fbc3f25aae3fcd892d48c99fe9aa ChangeLog 3812
+SHA256 132e0edd6488e10636efec9367ae3444ca8cb9a6546e88a68a20206182da9de9 ChangeLog 3812
 MISC metadata.xml 158 RMD160 6842e2189a50bd8a98e84802c38180ac1421c00e SHA1 703cea5a2109d41f7c87993c1f01d418a4c85174 SHA256 dfb5b47e6836db39fb187301dfcff1c2605e91d13d21db160806a563d8c75f9b
 MD5 a1eaeb2ae801daeb712c90c060e922dc metadata.xml 158
 RMD160 6842e2189a50bd8a98e84802c38180ac1421c00e metadata.xml 158
@@ -67,10 +72,6 @@ SHA256 d27c62e06c98df68316b1e39b248ab990913d3f4779676ca9818b1c24bba5d81 files/di
 MD5 1be334fdc8d38eea67d6928c162ac041 files/digest-libmodplug-0.8.4-r1 250
 RMD160 a2ef5b2e60e99cc7c597d0a5850d706bde0ca871 files/digest-libmodplug-0.8.4-r1 250
 SHA256 d27c62e06c98df68316b1e39b248ab990913d3f4779676ca9818b1c24bba5d81 files/digest-libmodplug-0.8.4-r1 250
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.6-ecc01.6 (GNU/Linux)
-
-iD8DBQFFjH68p5vW4rUFj5oRAoleAJ97nju+uGqGxNF+uFVPje7wygH82gCgoKm2
-MnvrJiYb8PKds6RSC5DOrco=
-=xy0/
------END PGP SIGNATURE-----
+MD5 1be334fdc8d38eea67d6928c162ac041 files/digest-libmodplug-0.8.4-r2 250
+RMD160 a2ef5b2e60e99cc7c597d0a5850d706bde0ca871 files/digest-libmodplug-0.8.4-r2 250
+SHA256 d27c62e06c98df68316b1e39b248ab990913d3f4779676ca9818b1c24bba5d81 files/digest-libmodplug-0.8.4-r2 250
diff --git a/media-libs/libmodplug/files/digest-libmodplug-0.8.4-r2 b/media-libs/libmodplug/files/digest-libmodplug-0.8.4-r2
new file mode 100644 (file)
index 0000000..590a3cc
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 091bd1168a524a4f36fc61f95209e7e4 libmodplug-0.8.4.tar.gz 510758
+RMD160 0c4c179ebc32bf88cecb162c391e91a5d36ad834 libmodplug-0.8.4.tar.gz 510758
+SHA256 84890249b3ecf12ef040b9121b6238248fc8da0fee948661d70375049e5131ee libmodplug-0.8.4.tar.gz 510758
diff --git a/media-libs/libmodplug/files/libmodplug-0.8.4-endian.patch b/media-libs/libmodplug/files/libmodplug-0.8.4-endian.patch
new file mode 100644 (file)
index 0000000..5b748d9
--- /dev/null
@@ -0,0 +1,63 @@
+--- src/load_psm.cpp   2006/10/29 08:04:52     272
++++ src/load_psm.cpp   2006/12/23 22:46:28     870
+@@ -85,6 +85,10 @@
+       BYTE samplemap[MAX_SAMPLES];
+       UINT nPatterns;
++      pfh->id = bswapLE32(pfh->id);
++      pfh->len = bswapLE32(pfh->len);
++      pfh->listid = bswapLE32(pfh->listid);
++
+       // Chunk0: "PSM ",filesize,"FILE"
+       if (dwMemLength < 256) return FALSE;
+       if (pfh->id == PSM_ID_OLD)
+@@ -109,6 +113,11 @@
+       while (dwMemPos+8 < dwMemLength)
+       {
+               PSMCHUNK *pchunk = (PSMCHUNK *)(lpStream+dwMemPos);
++
++              pchunk->id = bswapLE32(pchunk->id);
++              pchunk->len = bswapLE32(pchunk->len);
++              pchunk->listid = bswapLE32(pchunk->listid);
++
+               if ((pchunk->len >= dwMemLength - 8) || (dwMemPos + pchunk->len + 8 > dwMemLength)) break;
+               dwMemPos += 8;
+               PUCHAR pdata = (PUCHAR)(lpStream+dwMemPos);
+@@ -142,6 +151,13 @@
+                               m_nSamples++;
+                               MODINSTRUMENT *pins = &Ins[m_nSamples];
+                               PSMSAMPLE *psmp = (PSMSAMPLE *)pdata;
++
++                              psmp->smpid = bswapLE32(psmp->smpid);
++                              psmp->length = bswapLE32(psmp->length);
++                              psmp->loopstart = bswapLE32(psmp->loopstart); 
++                              psmp->loopend = bswapLE32(psmp->loopend);
++                              psmp->samplerate = bswapLE32(psmp->samplerate);
++
+                               smpnames[m_nSamples] = psmp->smpid;
+                               memcpy(m_szNames[m_nSamples], psmp->samplename, 31);
+                               m_szNames[m_nSamples][31] = 0;
+@@ -193,6 +209,11 @@
+               while (dwMemPos + 8 < dwSongEnd)
+               {
+                       PSMCHUNK *pchunk = (PSMCHUNK *)(lpStream+dwMemPos);
++
++                      pchunk->id = bswapLE32(pchunk->id);
++                      pchunk->len = bswapLE32(pchunk->len);
++                      pchunk->listid = bswapLE32(pchunk->listid);
++
+                       dwMemPos += 8;
+                       if ((pchunk->len > dwSongEnd) || (dwMemPos + pchunk->len > dwSongEnd)) break;
+                       PUCHAR pdata = (PUCHAR)(lpStream+dwMemPos);
+@@ -251,6 +272,11 @@
+       for (UINT nPat=0; nPat<nPatterns; nPat++)
+       {
+               PSMPATTERN *pPsmPat = (PSMPATTERN *)(lpStream+patptrs[nPat]+8);
++
++              pPsmPat->size = bswapLE32(pPsmPat->size);
++              pPsmPat->name = bswapLE32(pPsmPat->name);
++              pPsmPat->rows = bswapLE16(pPsmPat->rows);
++
+               ULONG len = *(DWORD *)(lpStream+patptrs[nPat]+4) - 12;
+               UINT nRows = pPsmPat->rows;
+               if (len > pPsmPat->size) len = pPsmPat->size;
diff --git a/media-libs/libmodplug/libmodplug-0.8.4-r2.ebuild b/media-libs/libmodplug/libmodplug-0.8.4-r2.ebuild
new file mode 100644 (file)
index 0000000..4909e59
--- /dev/null
@@ -0,0 +1,47 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/libmodplug/libmodplug-0.8.4-r2.ebuild,v 1.1 2006/12/24 21:49:18 hansmi Exp $
+
+WANT_AUTOCONF="latest"
+WANT_AUTOMAKE="latest"
+
+inherit eutils autotools
+
+DESCRIPTION="Library for playing MOD-like music files"
+SRC_URI="mirror://sourceforge/modplug-xmms/${P}.tar.gz"
+HOMEPAGE="http://modplug-xmms.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+#-sparc: 1.0 - Bus Error on play
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh -sparc ~x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-util/pkgconfig"
+
+src_unpack() {
+       unpack ${A}
+       cd "${S}"
+       epatch "${FILESDIR}/${PN}-0.7-amd64.patch"
+       epatch "${FILESDIR}/${PN}-0.8.4-timidity-patches.patch"
+       epatch "${FILESDIR}/${PN}-0.8.4-ppc64-64ul.patch"
+       epatch "${FILESDIR}/${PN}-0.8.4-endian.patch"
+
+       sed -i -e 's:-ffast-math::' "${S}/configure.in"
+
+       eautoreconf
+}
+
+src_install() {
+       make DESTDIR="${D}" install || die
+       dodoc AUTHORS ChangeLog README TODO
+}
+
+pkg_postinst() {
+       elog "Since version 0.8.4 onward, libmodplug supports MIDI playback."
+       elog "unfortunately to work correctly, this needs timidity patches,"
+       elog "but the code does not support the needed 'source' directive to"
+       elog "work with the patches currently in portage. For this reason it"
+       elog "will not work as intended yet."
+}