diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /media-sound/peercast |
reinit the tree, so we can have metadata
Diffstat (limited to 'media-sound/peercast')
-rw-r--r-- | media-sound/peercast/Manifest | 10 | ||||
-rw-r--r-- | media-sound/peercast/files/peercast-0.1216-amd64.patch | 13 | ||||
-rw-r--r-- | media-sound/peercast/files/peercast-0.1216-makefile.patch | 26 | ||||
-rw-r--r-- | media-sound/peercast/files/peercast-0.1218-CVE-2008-2040.patch | 122 | ||||
-rw-r--r-- | media-sound/peercast/files/peercast-0.1218-glibc-2.10.patch | 109 | ||||
-rw-r--r-- | media-sound/peercast/files/peercast.initd | 27 | ||||
-rw-r--r-- | media-sound/peercast/metadata.xml | 8 | ||||
-rw-r--r-- | media-sound/peercast/peercast-0.1218-r2.ebuild | 52 |
8 files changed, 367 insertions, 0 deletions
diff --git a/media-sound/peercast/Manifest b/media-sound/peercast/Manifest new file mode 100644 index 000000000000..8f8da86a1db0 --- /dev/null +++ b/media-sound/peercast/Manifest @@ -0,0 +1,10 @@ +AUX peercast-0.1216-amd64.patch 339 SHA256 f9bcbfb554ae111a64134cfaac97374efc03fb633c62038154b16ddb605b7e8e SHA512 f179688ff12147d5eb3b411d75f05cca4d66384f132daf1d2d937a02c5362b34952f162a585828fd00691a79192d880c35ebff985b4e06439700077941d4d673 WHIRLPOOL 2d4746b99fb621f03d8245764e83293315043883e3168c3e5e877f61f923f6c9f1975f1ac2f24aabdd30d8dc951fbd81a773a5f0dd24fa92449de395133b5eee +AUX peercast-0.1216-makefile.patch 961 SHA256 bcbc8b92b01d6720734cf4d3deca3c7f8fa7925b80ef49259066f2d2b670cc51 SHA512 693cb4594dd35d6103b5e3c6bd52e60620a3b7f3acb1a0f09e84a46a851302009fc623817620c679f6a2d470a0117cfbdc72dd3f98b0109c61ed91f9d7463276 WHIRLPOOL cc85f264708e94e56b5d0b448fc3f2666f29a1198c841b51bfd51a6bbdee83508fac7e412c1f2331cfc15b2ea5726c511d9daec32d2ff32a34fc0b8abc5a1438 +AUX peercast-0.1218-CVE-2008-2040.patch 4545 SHA256 f1455846673d28b2f35e62f672b548ef5f1303664482e98fde459e31e78144d9 SHA512 c0e3e1acae5f666fa7d7023f705a543dfd46f20144d4c6073bf80fbdb80a9f1f09e4aa1299c4c2f8a8149182098cb4036a9a7c8bd29cb7a4116956fb73aeb7a8 WHIRLPOOL fe94f0b6773e47a2fa3ec2b7d6adc3fe86c2b026798495e12b90b4b43b9f44209438680eac5ceed9809a58cb31b48f6bda422f74430ba11fc443b23f461c9d97 +AUX peercast-0.1218-glibc-2.10.patch 3332 SHA256 7ab7bb5eedbc7d136ef331c7020b9ede0dad1a51ecd0f58dc81692938aa312a9 SHA512 26fa888300a4e4f9934bf3bfbeaad35cf05ff677b7e417fbb0e1ca0163af5091b883264de151c46f9acf01f70ec5cf6f0faba886462d0593e05dbb314fbda27b WHIRLPOOL 6184b21f4995b62b0d4e1fb54c72876f31b8fe61a6959b1dcbe0d8b47a42f3ff3a9bea6f39d6a41408345e29ec4b7bc9399e86b93d72fcc6bde8a8710455be25 +AUX peercast.initd 591 SHA256 8b74cc603e2862e2f2888b684eb98bceeb2d20ffb7892e7dfe9f9ac50d89f224 SHA512 85352d87c40d468f324e179078b30412a96c0fac39f012f74c32a6509c3066729145b5df27da06eb1bce80306eb62800d0f6b0d8307021e3cadd67158760e1f2 WHIRLPOOL 4128be6e8b431588368598f4d49aee8804a4a20df2539ac8753c8a837557b39cb10fe4fd928bd0c8bf96411fba8618ea754e50abdd8157d00ba29ebd1b0bfcb4 +DIST peercast-0.1218-src.tgz 557909 SHA256 d480e3bc5a23c2e7612c05503852888126210e7159d07e9c36bf5e3716569036 SHA512 b9233fd12b8f2e7a89faa1df0e61a4cdeddede23fb56b03ff0d92614a6b43300fe683636d92ca97f200e1b066c2eda79d8d7e56597d81fe2f3766ccd6e199253 WHIRLPOOL 107b437979ad4a3aaa0bcf2fb18ed86e2696596703850e1a05c6b393779962e75a1fee6c1bd0d29946c4db89a4f09e157586bae1378fadb57d7a0e97f3c8dc3b +EBUILD peercast-0.1218-r2.ebuild 1187 SHA256 3a1d99f6a96e7d9914a768b0f5bb82dfc2b44c09ea71e9e044f10d529d8bc9c0 SHA512 781c5b00566e0a411436788fce2de9a97ffea25597f80a4e282caf1feb23e73d89c694b5f8d360590efd10d323e82904c659625fe70ba00205a2e6d8fa7066af WHIRLPOOL 3f0f91917730b1108c91aec0498b34adfd32b2859c3f0928cd3298f95738af5df5b4e00711562985d770d591af7e4c150f0c702f2763bcaed70cfe5c17aafa31 +MISC ChangeLog 2884 SHA256 60949b68e08c0484207bc1d306c567ed6fc7a79866b01f56fe38509e9be5912d SHA512 fe1609b7c26c394780630910f32f3429b3180df6ccb985a696457e206e0e49e2f22d75ca0967336fcebe0be054d7c8401cf7210f493da5fc37a2029b1e970655 WHIRLPOOL 2f2f86727f153ae76fbb43fa4802cdf0a2a5334092793a5c03f1fe3f7bd2cad2376b1b126f33951e08c3703afa6b0f368645cfa4a93b4289f47aae22a38504fc +MISC ChangeLog-2015 4099 SHA256 1b3462c5d3b511decd58f76113dca835c0fa8350851304ad6bc08791d9d0be39 SHA512 c91a0c8d1faa3747fb466c96a1c364fd9f56098580cd3561e7fc0fe106a6ac3bae6790467aab6a1aae8a50f000f940d99961aa8f0a732083bb9dc2859db91ffd WHIRLPOOL e0e0e39c07fa4e0790032b9e60a7be2bafa56ce74a3fd1045b8633787987a0ae94b3c4f7335ac6722245bfc0a33fe58fb85f7c344e8fc91f48cb2d876a15213e +MISC metadata.xml 249 SHA256 a591aa91a9c413e7f7e24fd25b924ce2dfef686da8b4ce38bebb088ebfdba9db SHA512 9a100fb26586365eda99724330a03a512f4d0be18d39c3a195ba02c2fc841edeee99d22512acf5a058a3b978d3a74f4d963a5aff9aa343b6cb4086cdfefe6343 WHIRLPOOL ae5b0c583f3a07ed1ccf651b5b9c8d6c8c637fba2d505fc4b028ea60239fc0a84e37a169b5114f879712ae74f7f41960a2cc6b59e67cacc7f964b105b5fb8723 diff --git a/media-sound/peercast/files/peercast-0.1216-amd64.patch b/media-sound/peercast/files/peercast-0.1216-amd64.patch new file mode 100644 index 000000000000..95144730d580 --- /dev/null +++ b/media-sound/peercast/files/peercast-0.1216-amd64.patch @@ -0,0 +1,13 @@ +Index: work/core/common/sys.h +=================================================================== +--- work.orig/core/common/sys.h ++++ work/core/common/sys.h +@@ -322,7 +322,7 @@ public: + #define _BIG_ENDIAN 1 + #endif +
+-typedef long long int64_t; ++#include <stdint.h> + + typedef int (*THREAD_FUNC)(ThreadInfo *); + #define THREAD_PROC int diff --git a/media-sound/peercast/files/peercast-0.1216-makefile.patch b/media-sound/peercast/files/peercast-0.1216-makefile.patch new file mode 100644 index 000000000000..e54c4ae622de --- /dev/null +++ b/media-sound/peercast/files/peercast-0.1216-makefile.patch @@ -0,0 +1,26 @@ +Index: work/ui/linux/makefile +=================================================================== +--- work.orig/ui/linux/makefile ++++ work/ui/linux/makefile +@@ -79,10 +79,10 @@ clean: + rm -f $(LINUXOBJ) $(COREOBJ) $(TARGET) ${LIBOBJSTATIC} ${LIBOBJSHARED} $(COREOBJSTATIC) + + %.o: %.cpp +- $(CC) $(INCLUDES) $(CPPFLAGS) -fPIC -c $< -o $@ ++ $(CC) $(CXXFLAGS) $(INCLUDES) $(CPPFLAGS) -fPIC -c $< -o $@ + + %.a: %.cpp +- $(CC) $(INCLUDES) $(CPPFLAGS) -c $< -o $@ ++ $(CC) $(CXXFLAGS) $(INCLUDES) $(CPPFLAGS) -c $< -o $@ + + DEPENDFILE = makedepend + +@@ -92,7 +92,7 @@ depend: + $(CC) $(INCLUDES) $(CPPFLAGS) -MD $(CORESOURCE) $(LINUXSOURCE) >> $(DEPENDFILE) + + peercast-so: $(COREOBJSTATIC) $(COREOBJ) $(LINUXOBJ) +- $(LD) $(LDSOFLAGS),$(LIBSONAME) -o ${LIBOBJSHARED} $(COREOBJ) -lc ++ $(LD) $(LDFLAGS) $(LDSOFLAGS),$(LIBSONAME) -o ${LIBOBJSHARED} $(COREOBJ) -lc + $(LD) $(LDFLAGS) -o $@ $(LINUXOBJ) $(LIBOBJSHARED) -ldl + ${AR} rcs $(LIBOBJSTATIC) $(COREOBJSTATIC) + diff --git a/media-sound/peercast/files/peercast-0.1218-CVE-2008-2040.patch b/media-sound/peercast/files/peercast-0.1218-CVE-2008-2040.patch new file mode 100644 index 000000000000..23037ac82b74 --- /dev/null +++ b/media-sound/peercast/files/peercast-0.1218-CVE-2008-2040.patch @@ -0,0 +1,122 @@ +diff -Nurad peercast-0.1218+svn20080104/core/common/channel.cpp peercast-0.1218+svn20080104.new/core/common/channel.cpp +--- peercast-0.1218+svn20080104/core/common/channel.cpp 2008-04-01 13:59:52.000000000 +0200 ++++ peercast-0.1218+svn20080104.new/core/common/channel.cpp 2008-04-30 17:45:28.000000000 +0200 +@@ -440,7 +440,7 @@ + if (http.isHeader(PCX_HS_POS))
+ streamPos = atoi(arg);
+ else
+- Servent::readICYHeader(http, info, NULL);
++ Servent::readICYHeader(http, info, NULL, 0);
+
+ LOG_CHANNEL("Channel fetch: %s",http.cmdLine);
+ }
+diff -Nurad peercast-0.1218+svn20080104/core/common/http.cpp peercast-0.1218+svn20080104.new/core/common/http.cpp +--- peercast-0.1218+svn20080104/core/common/http.cpp 2008-04-01 13:59:52.000000000 +0200 ++++ peercast-0.1218+svn20080104.new/core/common/http.cpp 2008-04-30 17:45:28.000000000 +0200 +@@ -102,7 +102,7 @@ + return 0; + } + //----------------------------------------- +-void HTTP::getAuthUserPass(char *user, char *pass) ++void HTTP::getAuthUserPass(char *user, char *pass, size_t ulen, size_t plen) + { + if (arg) + { +@@ -119,10 +119,14 @@ + if (s) + { + *s = 0; +- if (user) +- strcpy(user,str.cstr()); +- if (pass) +- strcpy(pass,s+1); ++ if (user){ ++ strncpy(user,str.cstr(), ulen); ++ user[ulen - 1] = 0; ++ } ++ if (pass){ ++ strncpy(pass,s+1, plen); ++ pass[plen - 1] = 0; ++ } + } + } + } +diff -Nurad peercast-0.1218+svn20080104/core/common/http.h peercast-0.1218+svn20080104.new/core/common/http.h +--- peercast-0.1218+svn20080104/core/common/http.h 2008-04-01 13:59:52.000000000 +0200 ++++ peercast-0.1218+svn20080104.new/core/common/http.h 2008-04-30 17:45:28.000000000 +0200 +@@ -176,7 +176,7 @@ + char *getArgStr(); + int getArgInt(); + +- void getAuthUserPass(char *, char *); ++ void getAuthUserPass(char *, char *, size_t, size_t); + + char cmdLine[8192],*arg; + +diff -Nurad peercast-0.1218+svn20080104/core/common/servent.h peercast-0.1218+svn20080104.new/core/common/servent.h +--- peercast-0.1218+svn20080104/core/common/servent.h 2008-04-01 13:59:52.000000000 +0200 ++++ peercast-0.1218+svn20080104.new/core/common/servent.h 2008-04-30 17:45:28.000000000 +0200 +@@ -206,7 +206,7 @@ + void sendPCPChannel();
+ void checkPCPComms(Channel *, AtomStream &);
+ +- static void readICYHeader(HTTP &, ChanInfo &, char *); ++ static void readICYHeader(HTTP &, ChanInfo &, char *, size_t); + bool canStream(Channel *); + + bool isConnected() {return status == S_CONNECTED;}
+diff -Nurad peercast-0.1218+svn20080104/core/common/servhs.cpp peercast-0.1218+svn20080104.new/core/common/servhs.cpp +--- peercast-0.1218+svn20080104/core/common/servhs.cpp 2008-04-01 13:59:52.000000000 +0200 ++++ peercast-0.1218+svn20080104.new/core/common/servhs.cpp 2008-04-30 17:45:28.000000000 +0200 +@@ -587,7 +587,7 @@ + {
+ case ServMgr::AUTH_HTTPBASIC:
+ if (http.isHeader("Authorization"))
+- http.getAuthUserPass(user,pass);
++ http.getAuthUserPass(user,pass, sizeof(user), sizeof(pass));
+ break;
+ case ServMgr::AUTH_COOKIE:
+ if (http.isHeader("Cookie"))
+@@ -1405,7 +1405,7 @@ +
+ } + // ----------------------------------- +-void Servent::readICYHeader(HTTP &http, ChanInfo &info, char *pwd) ++void Servent::readICYHeader(HTTP &http, ChanInfo &info, char *pwd, size_t plen) + { + char *arg = http.getArgStr(); + if (!arg) return; +@@ -1429,8 +1429,10 @@ + info.desc.set(arg,String::T_ASCII);
+ info.desc.convertTo(String::T_UNICODE);
+ +- }else if (http.isHeader("Authorization")) +- http.getAuthUserPass(NULL,pwd); ++ }else if (http.isHeader("Authorization")){ ++ if(pwd) ++ http.getAuthUserPass(NULL,pwd, 0, plen); ++ } + else if (http.isHeader(PCX_HS_CHANNELID)) + info.id.fromStr(arg);
+ else if (http.isHeader("ice-password")) +@@ -1501,7 +1503,7 @@ + while (http.nextHeader()) + { + LOG_DEBUG("ICY %s",http.cmdLine); +- readICYHeader(http,info,loginPassword.cstr()); ++ readICYHeader(http,info,loginPassword.cstr(), String::MAX_LEN); + } + + +diff -Nurad peercast-0.1218+svn20080104/core/common/url.cpp peercast-0.1218+svn20080104.new/core/common/url.cpp +--- peercast-0.1218+svn20080104/core/common/url.cpp 2008-04-01 13:59:52.000000000 +0200 ++++ peercast-0.1218+svn20080104.new/core/common/url.cpp 2008-04-30 17:45:28.000000000 +0200 +@@ -171,7 +171,7 @@ + LOG_CHANNEL("Fetch HTTP: %s",http.cmdLine); + + ChanInfo tmpInfo = ch->info; +- Servent::readICYHeader(http,ch->info,NULL); ++ Servent::readICYHeader(http,ch->info,NULL, 0); + + if (!tmpInfo.name.isEmpty()) + ch->info.name = tmpInfo.name; diff --git a/media-sound/peercast/files/peercast-0.1218-glibc-2.10.patch b/media-sound/peercast/files/peercast-0.1218-glibc-2.10.patch new file mode 100644 index 000000000000..3f290578dd50 --- /dev/null +++ b/media-sound/peercast/files/peercast-0.1218-glibc-2.10.patch @@ -0,0 +1,109 @@ +Index: work/core/common/common.h +=================================================================== +--- work.orig/core/common/common.h ++++ work/core/common/common.h +@@ -274,7 +274,7 @@ inline int strToID(char *str) + } + + // ----------------------------------- +-char *getCGIarg(const char *str, const char *arg); ++const char *getCGIarg(const char *str, const char *arg); + bool cmpCGIarg(char *str, char *arg, char *value); + bool hasCGIarg(char *str, char *arg); + +Index: work/core/common/html.cpp +=================================================================== +--- work.orig/core/common/html.cpp ++++ work/core/common/html.cpp +@@ -103,7 +103,7 @@ void HTML::writeVariable(Stream &s,const + r = true;
+ }else if (varName.startsWith("loop.hit."))
+ {
+- char *idstr = getCGIarg(tmplArgs,"id=");
++ const char *idstr = getCGIarg(tmplArgs,"id=");
+ if (idstr)
+ {
+ GnuID id;
+@@ -136,7 +136,7 @@ void HTML::writeVariable(Stream &s,const + {
+ if (varName.startsWith("page.channel."))
+ {
+- char *idstr = getCGIarg(tmplArgs,"id=");
++ const char *idstr = getCGIarg(tmplArgs,"id=");
+ if (idstr)
+ {
+ GnuID id;
+@@ -150,7 +150,7 @@ void HTML::writeVariable(Stream &s,const +
+ String v = varName+5;
+ v.append('=');
+- char *a = getCGIarg(tmplArgs,v);
++ const char *a = getCGIarg(tmplArgs,v);
+ if (a)
+ {
+ s.writeString(a);
+Index: work/core/common/sys.cpp +=================================================================== +--- work.orig/core/common/sys.cpp ++++ work/core/common/sys.cpp +@@ -740,12 +740,12 @@ void LogBuffer::write(const char *str, T + } + + // ----------------------------------- +-char *getCGIarg(const char *str, const char *arg) ++const char *getCGIarg(const char *str, const char *arg) + { + if (!str) + return NULL; + +- char *s = strstr(str,arg); ++ const char *s = strstr(str,arg); + + if (!s) + return NULL; +Index: work/core/common/servhs.cpp +=================================================================== +--- work.orig/core/common/servhs.cpp ++++ work/core/common/servhs.cpp +@@ -150,10 +150,10 @@ void Servent::handshakeHTTP(HTTP &http, + if (!isAllowed(ALLOW_BROADCAST)) + throw HTTPException(HTTP_SC_UNAVAILABLE,503);
+ +- char *pwdArg = getCGIarg(fn,"pass="); +- char *songArg = getCGIarg(fn,"song="); +- char *mountArg = getCGIarg(fn,"mount="); +- char *urlArg = getCGIarg(fn,"url="); ++ const char *pwdArg = getCGIarg(fn,"pass="); ++ const char *songArg = getCGIarg(fn,"song="); ++ const char *mountArg = getCGIarg(fn,"mount="); ++ const char *urlArg = getCGIarg(fn,"url="); + + if (pwdArg && songArg) + { +@@ -560,7 +560,7 @@ bool Servent::handshakeAuth(HTTP &http,c + char user[64],pass[64];
+ user[0] = pass[0] = 0;
+
+- char *pwd = getCGIarg(args, "pass=");
++ const char *pwd = getCGIarg(args, "pass=");
+
+ if ((pwd) && strlen(servMgr->password))
+ {
+@@ -671,7 +671,7 @@ void Servent::handshakeCMD(char *cmd) + { + if (cmpCGIarg(cmd,"cmd=","redirect")) + { +- char *j = getCGIarg(cmd,"url="); ++ const char *j = getCGIarg(cmd,"url="); + if (j) + { + termArgs(cmd); +@@ -1079,7 +1079,7 @@ void Servent::handshakeCMD(char *cmd) + index++; + } + +- char *findArg = getCGIarg(cmd,"keywords="); ++ const char *findArg = getCGIarg(cmd,"keywords="); + + if (hasCGIarg(cmd,"relay")) + { diff --git a/media-sound/peercast/files/peercast.initd b/media-sound/peercast/files/peercast.initd new file mode 100644 index 000000000000..9739b4a31381 --- /dev/null +++ b/media-sound/peercast/files/peercast.initd @@ -0,0 +1,27 @@ +#!/sbin/openrc-run +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +pidfile=/var/run/peercast.pid + +depend() { + need net +} + +start() { + ebegin "Starting peercast daemon" + start-stop-daemon --start --quiet --background \ + --make-pidfile --pidfile ${pidfile} \ + --chuid nobody:audio \ + --exec /usr/sbin/peercast -- \ + -i /usr/share/peercast/peercast.ini \ + -l /var/log/peercast.log \ + -P /usr/share/peercast + eend $? +} + +stop() { + ebegin "Stopping peercast daemon" + start-stop-daemon --stop --quiet --pidfile ${pidfile} + eend $? +} diff --git a/media-sound/peercast/metadata.xml b/media-sound/peercast/metadata.xml new file mode 100644 index 000000000000..c870d0eef0ab --- /dev/null +++ b/media-sound/peercast/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>sound@gentoo.org</email> + <name>Gentoo Sound project</name> +</maintainer> +</pkgmetadata> diff --git a/media-sound/peercast/peercast-0.1218-r2.ebuild b/media-sound/peercast/peercast-0.1218-r2.ebuild new file mode 100644 index 000000000000..105d18390306 --- /dev/null +++ b/media-sound/peercast/peercast-0.1218-r2.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=2 +inherit eutils flag-o-matic toolchain-funcs + +DESCRIPTION="A client and server for Peercast P2P-radio network" +HOMEPAGE="http://www.peercast.org" +SRC_URI="http://www.peercast.org/src/${P}-src.tgz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +RDEPEND="" +DEPEND="" + +S=${WORKDIR} + +src_prepare() { + epatch "${FILESDIR}"/${P}-CVE-2008-2040.patch \ + "${FILESDIR}"/${PN}-0.1216-makefile.patch \ + "${FILESDIR}"/${PN}-0.1216-amd64.patch \ + "${FILESDIR}"/${P}-glibc-2.10.patch +} + +src_compile() { + append-ldflags -pthread + + cd ui/linux + emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" \ + AR="$(tc-getAR)" LDFLAGS="${LDFLAGS}" \ + LD="$(tc-getCXX)" || die "emake failed" +} + +src_install() { + dosbin ui/linux/peercast + + insinto /usr/share/peercast + doins -r ui/html + + newinitd "${FILESDIR}"/${PN}.initd ${PN} +} + +pkg_postinst() { + elog "Start Peercast with '/etc/init.d/peercast start' and point your" + elog "webbrowser to 'http://localhost:7144' to start using Peercast." + elog + elog "You can also run 'rc-update add peercast default' to make Peercast" + elog "start at boot." +} |