Просмотр исходного кода

Still needs configuration adjustments, and the webserver admin components

Michael Schloh von Bennewitz 23 лет назад
Родитель
Сommit
585688120d
2 измененных файлов с 78 добавлено и 17 удалено
  1. 61 9
      dss/dss.spec
  2. 17 8
      dss/rc.dss

+ 61 - 9
dss/dss.spec

@@ -23,8 +23,6 @@
 ##  SUCH DAMAGE.
 ##
 
-#   FIXME: rse: JUNK because fails to build and lacks installation procedure
-
 #   package versions
 %define       V_opkg       4.1.3
 %define       V_dss        4_1_3
@@ -35,11 +33,11 @@ Summary:      Darwin Streaming Server
 URL:          http://developer.apple.com/darwin/projects/streaming/
 Vendor:       Apple Computer, Incorporated
 Packager:     The OpenPKG Project
-Distribution: OpenPKG [JUNK]
+Distribution: OpenPKG [EVAL]
 Group:        Video
 License:      APSL
 Version:      %{V_opkg}
-Release:      20030428
+Release:      20030507
 
 #   list of sources
 Source0:      http://www.opensource.apple.com/projects/streaming/source/DSS-%{V_dss}.src.tar.gz
@@ -49,7 +47,7 @@ Source1:      rc.dss
 #   build information
 Prefix:       %{l_prefix}
 BuildRoot:    %{l_buildroot}
-BuildPreReq:  OpenPKG, openpkg >= 20030103, make, gcc, perl
+BuildPreReq:  OpenPKG, openpkg >= 20030103, perl, make, gcc
 PreReq:       OpenPKG, openpkg >= 20030103, perl
 AutoReq:      no
 AutoReqProv:  no
@@ -127,11 +125,11 @@ AutoReqProv:  no
     esac
     export COMPILER_FLAGS CORE_LINK_LIBS SHARED MODULE_LIBS
 
-    #   bukd the program parts (order important)
-    %{l_make} -f Makefile.POSIX
+    #   build the program parts (order important)
     for dir in \
         CommonUtilitiesLib \
         QTFileLib \
+        . \
         APIModules/QTSSDemoAuthorizationModule.bproj \
         APIModules/QTSSRawFileModule.bproj \
         APIModules/QTSSSpamDefenseModule.bproj \
@@ -153,20 +151,74 @@ AutoReqProv:  no
 
 %install
     rm -rf $RPM_BUILD_ROOT
+
+    #   make directory structure
     %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/bin \
+        $RPM_BUILD_ROOT%{l_prefix}/sbin \
         $RPM_BUILD_ROOT%{l_prefix}/etc/dss \
-        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
+        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
+        $RPM_BUILD_ROOT%{l_prefix}/share/dss/movies \
+        $RPM_BUILD_ROOT%{l_prefix}/var/dss/logs
+
+    #   install the server and administrative binaries
+    %{l_shtool} install -s -c -m 755 \
+        DarwinStreamingServer $RPM_BUILD_ROOT%{l_prefix}/sbin/
+    %{l_shtool} install -c -m 755 \
+        -e 's;#!/usr/bin/perl;#!%{l_prefix}/bin/perl;' \
+        WebAdmin/src/streamingadminserver.pl $RPM_BUILD_ROOT%{l_prefix}/sbin/
+
+    #   install miscellaneous binaries
+    %{l_shtool} install -s -c -m 755 \
+        PlaylistBroadcaster.tproj/PlaylistBroadcaster \
+        MP3Broadcaster/MP3Broadcaster \
+        qtpasswd.tproj/qtpasswd \
+        $RPM_BUILD_ROOT%{l_prefix}/bin/
+
+    #   install configuration files
+    %{l_shtool} install -c -m 644 \
+        qtusers \
+        qtgroups \
+        streamingserver.xml \
+        relayconfig.xml-Sample \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/dss/
+    cp -fp $RPM_BUILD_ROOT%{l_prefix}/etc/dss/streamingserver.xml \
+           $RPM_BUILD_ROOT%{l_prefix}/etc/dss/streamingserver.xml-sample
+
+    #   install run commands
     %{l_shtool} install -c -m 755 \
         -e 's;@l_prefix@;%{l_prefix};g' \
         -e 's;@l_susr@;%{l_susr};g' \
         %{SOURCE rc.dss} \
         $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
+
+    #   install sample movies and audio files
+    %{l_shtool} install -c -m 644 \
+        sample.mp3 \
+        sample_100kbit.mov \
+        sample_300kbit.mov \
+        sample_100kbit.mp4 \
+        sample_300kbit.mp4 \
+        $RPM_BUILD_ROOT%{l_prefix}/share/dss/movies/
+
     %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
         %{l_files_std} \
-        '%config %{l_prefix}/etc/dss/*'
+        '%config %{l_prefix}/etc/dss/*' \
+        '%config %attr(600,%{l_susr},%{l_mgrp}) %{l_prefix}/etc/dss/qtusers' \
+        '%config %attr(600,%{l_susr},%{l_mgrp}) %{l_prefix}/etc/dss/qtgroups' \
+        '%config %attr(600,%{l_susr},%{l_mgrp}) %{l_prefix}/etc/dss/streamingserver.xml' \
+        '%config %attr(600,%{l_susr},%{l_mgrp}) %{l_prefix}/etc/dss/relayconfig.xml-Sample'
 
 %files -f files
 
 %clean
     rm -rf $RPM_BUILD_ROOT
 
+%post
+    #   write a default admin username and password to qtusers
+        username='ghandi'; password='guessit'
+        $RPM_INSTALL_PREFIX/bin/qtpasswd -p $password $username
+
+    #   add the new admin username to {l_prefix}/etc/dss/qtgroupsusers
+        echo admin: $username >$RPM_INSTALL_PREFIX/etc/dss/qtgroups
+

+ 17 - 8
dss/rc.dss

@@ -6,15 +6,24 @@
 %config
     dss_enable="yes"
 
-%start -p 100 -u @l_susr@
-    if opServiceEnabled dss; then
-        #   FIXME
-        @l_prefix@/bin/foo
-    fi
+%start -p 220 -u @l_susr@
+    opServiceEnabled dss || exit 0
+    @l_prefix@/sbin/DarwinStreamingServer -d >/dev/null 2>&1 &
+    echo $! >@l_prefix@/var/dss/dss.pid
 
 %stop -p 200 -u @l_susr@
-    if opServiceEnabled dss; then
-        #   FIXME
-        @l_prefix@/bin/foo
+    opServiceEnabled dss || exit 0
+    if [ -f @l_prefix@/var/dss/dss.pid ]; then
+        kill -TERM `cat @l_prefix@/var/dss/dss.pid`
+        rm @l_prefix@/var/dss/dss.pid
+    fi
+
+%restart -p 200 -u @l_susr@
+    opServiceEnabled dss || exit 0
+    if [ -f @l_prefix@/var/dss/dss.pid ]; then
+        kill -TERM `cat @l_prefix@/var/dss/dss.pid`
+        rm @l_prefix@/var/dss/dss.pid
     fi
+    @l_prefix@/sbin/DarwinStreamingServer -d >/dev/null 2>&1 &
+    echo $! >@l_prefix@/var/dss/dss.pid