ports/151724: [path] update www/red5 up to 0.9.1
Alex Deiter
alex.deiter at gmail.com
Mon Oct 25 18:50:10 UTC 2010
>Number: 151724
>Category: ports
>Synopsis: [path] update www/red5 up to 0.9.1
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Mon Oct 25 18:50:09 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator: Alex Deiter
>Release: 8.1-RELEASE
>Organization:
N/A
>Environment:
FreeBSD x4150b.tdc 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:36:49 UTC 2010 root at mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
>Description:
Update www/red5 up to 0.9.1.
Port changes:
- change MASTER_SITES
- change MAINTAINER
- update pkg-descr
- add rc.d script
- add pkg-install script
- add new system user/group: red5 with uid/gid: 931
- tested on 8.1 i386/amd64 with Sun JDK/OpenJDK
>How-To-Repeat:
cd /usr/ports/www/red5 && make install
>Fix:
Patch attached with submission follows:
diff -Nur red5.orig/Makefile red5/Makefile
--- red5.orig/Makefile 2010-02-01 12:52:52.000000000 +0000
+++ red5/Makefile 2010-10-24 22:51:19.000000000 +0000
@@ -6,55 +6,36 @@
#
PORTNAME= red5
-PORTVERSION= 0.7.0
-PORTREVISION= 2
+PORTVERSION= 0.9.1
CATEGORIES= www java
-MASTER_SITES= http://www.nielsenaa.com/red5-installers/ \
- http://www.red5.fr/release/0.7.0/war/
-DISTNAME= Red5War_${PORTVERSION}-java5
+MASTER_SITES= http://www.red5.org/downloads/0_9/
-MAINTAINER= ports at FreeBSD.org
+MAINTAINER= alex.deiter at gmail.com
COMMENT= Red5 is an Open Source flash server
-OPTIONS= TOMCAT4 "Use Tomcat 4.1" OFF \
- TOMCAT5 "Use Tomcat 5.5" OFF \
- TOMCAT6 "Use Tomcat 6.0" ON
-
-WRKSRC= ${WRKDIR}
-USE_ZIP= yes
USE_JAVA= yes
-JAVA_VERSION= 1.5
+JAVA_VERSION= 1.6
NO_BUILD= yes
+USE_RC_SUBR= ${PORTNAME}
+SUB_FILES= pkg-install
+RED5HOME?= ${PREFIX}/lib/${PORTNAME}
+RED5USER?= red5
+RED5GROUP?= red5
+RED5LOGDIR?= /var/log/red5
+SUB_LIST= RED5HOME=${RED5HOME} \
+ RED5USER=${RED5USER} \
+ RED5GROUP=${RED5GROUP} \
+ RED5LOGDIR=${RED5LOGDIR}
-.include <bsd.port.pre.mk>
-
-.if (defined(WITH_TOMCAT4) && defined(WITH_TOMCAT5)) || \
- (defined(WITH_TOMCAT4) && defined(WITH_TOMCAT6)) || \
- (defined(WITH_TOMCAT5) && defined(WITH_TOMCAT6))
-IGNORE= please select only one version of Tomcat
-.endif
-
-.if defined(WITH_TOMCAT4)
-RUN_DEPENDS+= ${LOCALBASE}/apache-tomcat4.1:${PORTSDIR}/www/tomcat41
-WEBAPPDIR= ${PREFIX}/apache-tomcat4.1/webapps
-.elif defined(WITH_TOMCAT5)
-RUN_DEPENDS+= ${LOCALBASE}/tomcat5.5:${PORTSDIR}/www/tomcat55
-WEBAPPDIR= ${PREFIX}/tomcat5.5/webapps
-.elif defined(WITH_TOMCAT6)
-RUN_DEPENDS+= ${LOCALBASE}/apache-tomcat-6.0:${PORTSDIR}/www/tomcat6
-WEBAPPDIR= ${PREFIX}/apache-tomcat-6.0/webapps
-.else
-IGNORE= please select one version of Tomcat
-.endif
-
-PLIST_FILES= ${WEBAPPDIR:S|^${PREFIX}/||}/red5.war
+pre-install:
+ @${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
do-install:
- @${MKDIR} ${WEBAPPDIR}
- @${INSTALL_DATA} ${WRKSRC}/ROOT.war ${WEBAPPDIR}/red5.war
- @${CHOWN} ${WWWOWN}:${WWWGRP} ${WEBAPPDIR}/red5.war
-
-post-install:
- @${CAT} ${PKGMESSAGE}
+ @${MKDIR} ${RED5HOME}
+ @cd ${WRKSRC} && ${COPYTREE_SHARE} "boot.jar red5.jar conf lib webapps" ${RED5HOME}
+ @${INSTALL} -d -g ${RED5GROUP} -o ${RED5USER} ${RED5HOME}/work
+ @${CHOWN} -R ${RED5USER}:${RED5GROUP} ${RED5HOME}/conf ${RED5HOME}/webapps
+ @${FIND} -s -d ${RED5HOME} -type f | ${SED} "s#${PREFIX}/##g" >${TMPPLIST}
+ @${FIND} -s -d ${RED5HOME} -type d | ${SED} "s#${PREFIX}/#@dirrm #g" >>${TMPPLIST}
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff -Nur red5.orig/distinfo red5/distinfo
--- red5.orig/distinfo 2008-03-20 10:00:37.000000000 +0000
+++ red5/distinfo 2010-10-23 13:47:46.000000000 +0000
@@ -1,3 +1,3 @@
-MD5 (Red5War_0.7.0-java5.zip) = 88cd86aff8a50f35e8a4d07cb210bd0d
-SHA256 (Red5War_0.7.0-java5.zip) = 058d2be8ae20d567cf92be1edd02332532f0ca32b56365b8ae5302f086068946
-SIZE (Red5War_0.7.0-java5.zip) = 20335816
+MD5 (red5-0.9.1.tar.gz) = a2eb54ce2a86584c5274db9d0a515475
+SHA256 (red5-0.9.1.tar.gz) = 71290b8b22db8c267752be432126a89e4105809d16c9bfc84d6d1e7f52438efd
+SIZE (red5-0.9.1.tar.gz) = 35466436
diff -Nur red5.orig/files/patch-conf-red5-core.xml red5/files/patch-conf-red5-core.xml
--- red5.orig/files/patch-conf-red5-core.xml 1970-01-01 00:00:00.000000000 +0000
+++ red5/files/patch-conf-red5-core.xml 2010-10-25 15:21:00.000000000 +0000
@@ -0,0 +1,18 @@
+--- conf/red5-core.xml.orig 2010-10-25 15:19:56.000000000 +0000
++++ conf/red5-core.xml 2010-10-25 15:20:17.000000000 +0000
+@@ -115,7 +115,6 @@
+ </bean>
+
+ <!-- RTMPT -->
+-<!--
+ <bean id="rtmpt.server" class="org.red5.server.tomcat.rtmpt.RTMPTLoader" init-method="init" lazy-init="true">
+
+ <property name="webappFolder" value="${red5.root}/webapps" />
+@@ -149,7 +148,6 @@
+ </property>
+
+ </bean>
+--->
+
+ <!-- RTMPS -->
+
diff -Nur red5.orig/files/pkg-install.in red5/files/pkg-install.in
--- red5.orig/files/pkg-install.in 1970-01-01 00:00:00.000000000 +0000
+++ red5/files/pkg-install.in 2010-10-24 22:40:05.000000000 +0000
@@ -0,0 +1,35 @@
+#!/bin/sh
+# $FreeBSD$
+#
+
+if [ "$2" != "PRE-INSTALL" ]; then
+ exit 0
+fi
+
+RED5USER=%%RED5USER%%
+RED5GROUP=%%RED5GROUP%%
+RED5UID=931
+RED5GID=${RED5UID}
+
+if ! pw groupshow "${RED5GROUP}" 2>/dev/null 1>&2; then
+ if pw groupadd ${RED5GROUP} -g ${RED5GID}; then
+ echo "Added group \"${RED5GROUP}\"."
+ else
+ echo "Adding group \"${RED5GROUP}\" failed..."
+ exit 1
+ fi
+fi
+
+if ! pw usershow "${RED5USER}" 2>/dev/null 1>&2; then
+ if pw useradd ${RED5USER} -u ${RED5UID} -g ${RED5GROUP} -h - \
+ -s "/sbin/nologin" -d "/nonexistent" \
+ -c "Red5 Daemon"; \
+ then
+ echo "Added user \"${RED5USER}\"."
+ else
+ echo "Adding user \"${RED5USER}\" failed..."
+ exit 1
+ fi
+fi
+
+exit 0
diff -Nur red5.orig/files/red5.in red5/files/red5.in
--- red5.orig/files/red5.in 1970-01-01 00:00:00.000000000 +0000
+++ red5/files/red5.in 2010-10-25 14:58:10.000000000 +0000
@@ -0,0 +1,188 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: red5
+# REQUIRE: NETWORKING SERVERS
+# BEFORE: DAEMON
+# KEYWORD: shutdown
+
+#
+# Configuration settings for red5
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# red5_enable (bool):
+# Set to "NO" by default.
+# Set it to "YES" to enable red5.
+#
+# red5_user (str):
+# Set to "%%RED5USER%%" by default.
+#
+# red5_group (str):
+# Set to "%%RED5GROUP%%" by default.
+#
+# red5_home (str):
+# Set to "%%RED5HOME%%" by default.
+#
+# red5_log_dir (str):
+# Set to "%%RED5LOGDIR%%" by default.
+#
+# red5_stop_timeout (num):
+# Set to "10" by default.
+#
+# red5_start_opts (str):
+# See below for default value.
+# Java VM args for start red5.
+#
+# red5_stop_opts (str):
+# See below for default value.
+# Java VM args for stop red5.
+#
+# red5_start_class_opts (str):
+# See below for default value.
+# Start class arguments.
+#
+# red5_stop_class_opts (str):
+# See below for default value.
+# Stop class arguments.
+#
+
+. /etc/rc.subr
+
+name="red5"
+rcvar=`set_rcvar`
+pidfile="/var/run/${name}.pid"
+
+load_rc_config $name
+
+: ${red5_enable:="NO"}
+: ${red5_user:="%%RED5USER%%"}
+: ${red5_group:="%%RED5GROUP%%"}
+: ${red5_home:="%%RED5HOME%%"}
+: ${red5_log_dir:="%%RED5LOGDIR%%"}
+: ${red5_stop_timeout:="10"}
+: ${red5_start_opts:="-Xrs -Xms512M -Xmx1024M -Xss128K -XX:NewSize=256m -XX:SurvivorRatio=16 -XX:MinHeapFreeRatio=20 -XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC -Dsun.rmi.dgc.client.gcInterval=990000 -Dsun.rmi.dgc.server.gcInterval=990000 -Djava.net.preferIPv4Stack=true -Xverify:none"}
+: ${red5_stop_opts:="-Djavax.net.ssl.keyStore=${red5_home}/conf/keystore.jmx -Djavax.net.ssl.keyStorePassword=password"}
+: ${red5_start_class_opts:=""}
+: ${red5_stop_class_opts:="9999 red5user changeme"}
+
+red5_chdir="${red5_home}"
+java_command="%%LOCALBASE%%/bin/java"
+red5_start_class="org.red5.server.Bootstrap"
+red5_stop_class="org.red5.server.Shutdown"
+
+red5_opts="-Dpython.home=lib \
+ -Dred5.root=${red5_home} \
+ -Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector \
+ -Dcatalina.useNaming=true \
+ -Djava.security.debug=failure \
+ -cp ${red5_home}/boot.jar:${red5_home}/conf"
+
+red5_stdout_log="${red5_log_dir}/stdout.log"
+red5_stderr_log="${red5_log_dir}/stderr.log"
+log_args=">>${red5_stdout_log} 2>>${red5_stderr_log}"
+
+required_files="${red5_home}/conf/red5.xml"
+
+command="/usr/sbin/daemon"
+command_args="-p ${pidfile} ${java_command} ${red5_start_opts} ${red5_opts} \
+ ${red5_start_class} ${red5_start_class_opts} ${log_args}"
+
+start_precmd="red5_precmd"
+status_cmd="red5_status"
+stop_cmd="red5_stop"
+poll_cmd="red5_poll"
+
+red5_precmd() {
+ mkdir -p ${red5_log_dir}
+ chown ${red5_user}:${red5_group} ${red5_log_dir}
+ touch ${pidfile} ${red5_stdout_log} ${red5_stderr_log}
+ chown ${red5_user}:${red5_group} ${pidfile} \
+ ${red5_stdout_log} ${red5_stderr_log}
+ rm -f ${red5_home}/log
+ ln -s ${red5_log_dir} ${red5_home}/log
+}
+
+red5_stop() {
+ rc_pid=$(red5_check_pidfile $pidfile)
+
+ if [ -z "$rc_pid" ]; then
+ [ -n "$rc_fast" ] && return 0
+ echo "${name} not running? (check $pidfile)."
+ return 1
+ fi
+
+ echo "Stopping ${name}."
+ su -m ${red5_user} -c "sh -c '${java_command} ${red5_stop_opts} \
+ ${red5_opts} ${red5_stop_class} ${red5_stop_class_opts} \
+ ${log_args}'"
+ red5_wait_max_for_pid ${red5_stop_timeout} ${rc_pid}
+ kill -KILL ${rc_pid} 2>/dev/null && echo "Killed."
+ rm -f ${pidfile} ${red5_home}/log
+}
+
+red5_status() {
+ rc_pid=$(red5_check_pidfile $pidfile)
+
+ if [ -z "$rc_pid" ]; then
+ [ -n "$rc_fast" ] && return 0
+ echo "${name} not running? (check $pidfile)."
+ return 1
+ fi
+ echo "${name} is running as pid ${rc_pid}."
+}
+
+red5_poll() {
+ _prefix=
+ while (true) ; do
+ rc_pid=$(red5_check_pidfile $pidfile)
+ [ -z "$rc_pid" ] && break
+ echo -n ${_prefix:-"Waiting for PIDS: "}$rc_pid
+ _prefix=", "
+ sleep 2
+ done
+ if [ -n "$_prefix" ]; then
+ echo "."
+ fi
+}
+
+red5_check_pidfile() {
+ _pidfile=$1
+ if [ -z "$_pidfile" ]; then
+ err 3 'USAGE: red5_check_pidfile pidfile'
+ fi
+ if [ ! -f $_pidfile ]; then
+ debug "pid file ($_pidfile): not readable."
+ return
+ fi
+ read _pid _junk < $_pidfile
+ if [ -z "$_pid" ]; then
+ debug "pid file ($_pidfile): no pid in file."
+ return
+ fi
+ if [ -n "`%%LOCALBASE%%/bin/jps -l | grep -e "^$_pid ${red5_start_class}\$"`" ]; then
+ echo -n $_pid
+ fi
+}
+
+red5_wait_max_for_pid() {
+ _timeout=$1
+ shift
+ _pid=$1
+ _prefix=
+ while [ $_timeout -gt 0 ] ; do
+ echo -n ${_prefix:-"Waiting (max $_timeout secs) for PIDS: "}$_pid
+ _prefix=", "
+ sleep 2
+ kill -0 $_pid 2>/dev/null || break
+ _timeout=$(($_timeout-2))
+ done
+ if [ -n "$_prefix" ]; then
+ echo "."
+ fi
+}
+
+run_rc_command "$1"
diff -Nur red5.orig/pkg-descr red5/pkg-descr
--- red5.orig/pkg-descr 2008-03-20 10:00:37.000000000 +0000
+++ red5/pkg-descr 2010-10-23 13:35:01.000000000 +0000
@@ -1,6 +1,7 @@
-Red5 is an Open Source Flash Server written
+Red5 is an Open Source Flash Server written
in Java that supports streaming Audio/Video
-(FLV and MP3),Recording Client Streams,
-Live Stream Publishing, etc.
+(FLV, MP3, F4V, MP4, AAC and M4A), Recording
+Client Streams, Shared Objects, Live Stream
+Publishing, Remoting, etc.
-WWW: http://www.red5.fr/
+WWW: http://www.red5.org/
diff -Nur red5.orig/pkg-message red5/pkg-message
--- red5.orig/pkg-message 2008-03-20 10:00:37.000000000 +0000
+++ red5/pkg-message 1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-=====================================
-Now start your Tomcat and browse with:
-http://your-server-ip:8180/red5/
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list