]> git.webhop.me Git - bs-cst-neutrino-hd.git/commitdiff
use inits for uShare, djmount, crond, udpxy, minidlnad, xupnpd
authorMarkham <markham001@gmx.de>
Sat, 4 Jun 2022 17:48:16 +0000 (19:48 +0200)
committerMarkham <markham001@gmx.de>
Sat, 4 Jun 2022 17:48:16 +0000 (19:48 +0200)
14 files changed:
archive-patches/busybox/crond.init [new file with mode: 0755]
archive-patches/djmount/djmount.init [new file with mode: 0755]
archive-patches/minidlna/minidlnad.init [new file with mode: 0755]
archive-patches/udpxy/0001-udpxy.patch [new file with mode: 0644]
archive-patches/udpxy/0002-fix-build-with-gcc8.patch [new file with mode: 0644]
archive-patches/udpxy/0003-fix-build-with-gcc9.patch [new file with mode: 0644]
archive-patches/udpxy/udpxy.init [new file with mode: 0755]
archive-patches/ushare/ushare.init [new file with mode: 0755]
archive-patches/xupnpd/xupnpd.init [new file with mode: 0755]
make/applications.mk
make/archives.mk
make/extras.mk
make/libraries.mk
make/versions.mk

diff --git a/archive-patches/busybox/crond.init b/archive-patches/busybox/crond.init
new file mode 100755 (executable)
index 0000000..3500ec0
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+case $1 in
+       start)
+               if [ -e /var/etc/.crond ]; then
+                       crond
+               fi
+       ;;
+       stop)
+               if [ -e /var/etc/.crond ]; then
+                       trap "" INT
+                       kill -INT $(pidof crond)
+               fi
+       ;;
+       *)
+               echo "[$BASENAME] Usage: $0 {start|stop}"
+       ;;
+esac
diff --git a/archive-patches/djmount/djmount.init b/archive-patches/djmount/djmount.init
new file mode 100755 (executable)
index 0000000..e14f1eb
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+case $1 in
+       start)  
+               if [ -e /var/etc/.djmount ]; then
+                       modprobe fuse
+                       mkdir -p /media/00upnp
+                       djmount -o iocharset=utf-8 /media/00upnp 2>&1 > /dev/null
+               fi
+       ;;
+       stop)
+               if [ -e /var/etc/.djmount ]; then
+                       fusermount -u /media/00upnp
+               fi
+       ;;
+       restart)
+               if [ -e /var/etc/.djmount ]; then
+                       $0 stop
+                       $0 start
+               fi
+       ;;
+       *)
+               echo "[${BASENAME}] Usage: $0 {start|restart|stop}"
+       ;;
+esac
diff --git a/archive-patches/minidlna/minidlnad.init b/archive-patches/minidlna/minidlnad.init
new file mode 100755 (executable)
index 0000000..9a54683
--- /dev/null
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+timeout=20
+if [ "$2" = "1" ]; then
+       timeout=0
+fi
+
+start() {
+       [ -e /var/etc/.minidlnad ] && { sleep $timeout; minidlnad; } &
+}
+
+stop() {
+       if [ -e /var/etc/.minidlnad ]; then
+               trap "" INT
+               kill -TERM $(pidof minidlnad)
+       fi
+}
+
+case "$1" in
+       start)
+               start
+       ;;
+       stop)
+               stop
+       ;;
+
+       *)
+               echo "[$BASENAME] Usage: $0 {start|stop}"
+       ;;
+esac
diff --git a/archive-patches/udpxy/0001-udpxy.patch b/archive-patches/udpxy/0001-udpxy.patch
new file mode 100644 (file)
index 0000000..51dee52
--- /dev/null
@@ -0,0 +1,63 @@
+--- a/chipmunk/netop.c
++++ b/chipmunk/netop.c
+@@ -53,16 +53,24 @@
+     extern const char IPv4_ALL[];
+-    assert( (port > 0) && sockfd && ipaddr );
++    int socktype = 0;
++    socklen_t socktypelen = sizeof(socktype);
++    int inetd = !getsockopt(0, SOL_SOCKET, SO_TYPE, &socktype, &socktypelen) && socktype == SOCK_STREAM;
++
++    assert( (!inetd || port > 0) && sockfd && ipaddr );
+     (void)IPv4_ALL;
+     TRACE( (void)tmfprintf( g_flog, "Setting up listener for [%s:%d]\n",
+                 ipaddr[0] ? ipaddr : IPv4_ALL, port) );
+     rc = ERR_INTERNAL;
+     do {
++      if (inetd)
++              lsock = 0;
++      else
+         lsock = socket( AF_INET, SOCK_STREAM, 0 );
+         if( -1 == lsock ) break;
++      if (!inetd) {
+         (void) memset( &servaddr, 0, sizeof(servaddr) );
+         servaddr.sin_family = AF_INET;
+         servaddr.sin_port = htons( (short)port );
+@@ -87,6 +95,7 @@
+                     __func__);
+             break;
+         }
++      }
+         #define NONBLOCK 1
+         rc = set_nblock (lsock, NONBLOCK);
+@@ -102,8 +111,10 @@
+             break;
+         }
++      if (!inetd) {
+         rc = bind( lsock, (struct sockaddr*)&servaddr, sizeof(servaddr) );
+         if( 0 != rc ) break;
++      }
+         rc = listen (lsock, (bklog > 0 ? bklog : 1));
+         if( 0 != rc ) break;
+--- a/chipmunk/udpxy.c
++++ b/chipmunk/udpxy.c
+@@ -1391,7 +1391,12 @@
+     openlog( g_udpxy_app, LOG_CONS | LOG_PID, LOG_LOCAL0 );
+     do {
+-        if( (argc < 2) || (port <= 0) || (rc != 0) ) {
++      int socktype = 0;
++      socklen_t socktypelen = sizeof(socktype);
++      int inetd = !getsockopt(0, SOL_SOCKET, SO_TYPE, &socktype, &socktypelen) && socktype == SOCK_STREAM;
++      if (inetd)
++              no_daemon = 1;
++        if( !inetd && ((argc < 2) || (port <= 0) || (rc != 0)) ) {
+             usage( argv[0], stderr );
+             rc = ERR_PARAM; break;
+         }
diff --git a/archive-patches/udpxy/0002-fix-build-with-gcc8.patch b/archive-patches/udpxy/0002-fix-build-with-gcc8.patch
new file mode 100644 (file)
index 0000000..ee6569a
--- /dev/null
@@ -0,0 +1,28 @@
+diff --git a/udpxrec.c b/udpxrec.c
+index c58ceb5..eb186f3 100644
+--- a/chipmunk/udpxrec.c
++++ b/chipmunk/udpxrec.c
+@@ -604,9 +604,9 @@ int udpxrec_main( int argc, char* const argv[] )
+                         }
+                         else {
+                             if( g_recopt.bg_time < now ) {
+-                                (void)strncpy( now_buf, Zasctime(localtime( &now )),
++                                (void)memcpy( now_buf, Zasctime(localtime( &now )),
+                                         sizeof(now_buf) );
+-                                (void)strncpy( sel_buf,
++                                (void)memcpy( sel_buf,
+                                         Zasctime(localtime( &g_recopt.bg_time )),
+                                         sizeof(sel_buf) );
+@@ -634,9 +634,9 @@ int udpxrec_main( int argc, char* const argv[] )
+                         }
+                         else {
+                             if( g_recopt.end_time < now ) {
+-                                (void)strncpy( now_buf, Zasctime(localtime( &now )),
++                                (void)memcpy( now_buf, Zasctime(localtime( &now )),
+                                         sizeof(now_buf) );
+-                                (void)strncpy( sel_buf,
++                                (void)memcpy( sel_buf,
+                                         Zasctime(localtime( &g_recopt.end_time )),
+                                         sizeof(sel_buf) );
diff --git a/archive-patches/udpxy/0003-fix-build-with-gcc9.patch b/archive-patches/udpxy/0003-fix-build-with-gcc9.patch
new file mode 100644 (file)
index 0000000..8a7ff66
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/chipmunk/rparse.c b/chipmunk/rparse.c
+index 8cbdda5..560e50d 100644
+--- a/chipmunk/rparse.c
++++ b/chipmunk/rparse.c
+@@ -175,7 +175,7 @@ parse_udprelay( const char*  opt, size_t optlen,
+     assert( opt && s_addr && s_addrlen && addr && addrlen && port );
+-    (void) strncpy( s, opt, MAX_OPTLEN );
++    (void) snprintf(s, MAX_OPTLEN, "%s", opt);
+     s[ MAX_OPTLEN - 1 ] = '\0';
+     do {
diff --git a/archive-patches/udpxy/udpxy.init b/archive-patches/udpxy/udpxy.init
new file mode 100755 (executable)
index 0000000..3928bf5
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+case $1 in
+       start)
+               if [ -e /var/etc/.udpxy ]; then
+                       udpxy -p 4022
+               fi
+       ;;
+       stop)
+               if [ -e /var/etc/.udpxy ]; then
+                       trap "" INT
+                       kill -INT $(pidof udpxy)
+               fi
+       ;;
+       *)
+               echo "[$BASENAME] Usage: $0 {start|stop}"
+       ;;
+esac
diff --git a/archive-patches/ushare/ushare.init b/archive-patches/ushare/ushare.init
new file mode 100755 (executable)
index 0000000..cb40bf8
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/sh
+set -x
+
+timeout=10
+if [ $2 = 1 ]; then
+       timeout=0
+fi
+echo $timeout
+
+case $1 in
+       start)
+               [ -e /var/etc/.ushare ] && { sleep $timeout; ushare -D -n $(hostname); } &
+       ;;
+       stop)
+               if [ -e /var/etc/.ushare ]; then
+                       trap "" INT
+                       kill -INT $(pidof ushare)
+               fi
+       ;;
+       *)
+               echo "[$BASENAME] Usage: $0 {start|stop}"
+       ;;
+esac
diff --git a/archive-patches/xupnpd/xupnpd.init b/archive-patches/xupnpd/xupnpd.init
new file mode 100755 (executable)
index 0000000..e6a5391
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+timeout=25
+if [ "$2" = "1" ]; then
+       timeout=0
+fi
+
+case $1 in
+       start)
+               [ -e /var/etc/.xupnpd ] && {
+                       rm -rf /tmp/xupnpd-*;
+                       rm -f /tmp/xupnpd.pid;
+                       sleep $timeout;
+                       xupnpd; } &
+
+       ;;
+       stop)
+               if [ -e /var/etc/.xupnpd ]; then
+                       trap "" INT
+                       kill -INT $(pidof xupnpd)
+               fi
+       ;;
+       restart)
+               if [ -e /var/etc/.xupnpd ]; then
+                       $0 stop
+                       $0 start
+               fi
+       ;;
+       *)
+               echo "[$BASENAME] Usage: $0 {start|restart|stop}"
+       ;;
+esac
index 1cf9a311dc41e7ea474d3cd34760221bc8b30134..d5f1758d67a8a418b940885a58f7f81c47201ee3 100755 (executable)
@@ -71,7 +71,11 @@ $(D)/busybox: $(D)/libtirpc $(ARCHIVE)/busybox-$(BUSYBOX_VER).tar.bz2 | $(TARGET
                cp $(PATCHES)/$(BB_CONFIG) .config && \
                $(BUSYBOX_MAKE_ENV) $(MAKE) busybox $(BUSYBOX_MAKE_OPTS) && \
                $(BUSYBOX_MAKE_ENV) $(MAKE) install $(BUSYBOX_MAKE_OPTS)
-       $(TARGET)-strip $(TARGETPREFIX)/bin/busybox
+               $(TARGET)-strip $(TARGETPREFIX)/bin/busybox
+       install -m 755 $(PATCHES)/busybox/crond.init $(TARGETPREFIX)/etc/init.d/crond
+       pushd $(TARGETPREFIX)/etc/init.d
+               ln -sf crond $(TARGETPREFIX)/etc/init.d/S75crond
+               ln -sf crond $(TARGETPREFIX)/etc/init.d/K75crond
        $(REMOVE)/busybox-$(BUSYBOX_VER)
        $(TOUCH)
 
@@ -241,6 +245,23 @@ $(D)/vsftpd: $(ARCHIVE)/vsftpd-$(VSFTPD_VER).tar.gz | $(TARGETPREFIX)
        $(REMOVE)/vsftpd-$(VSFTPD_VER)
        $(TOUCH)
 
+$(D)/minidlna: $(D)/zlib $(D)/sqlite $(D)/libexif $(D)/libjpeg $(D)/libid3tag $(D)/libogg $(D)/libvorbis $(D)/flac $(D)/ffmpeg $(ARCHIVE)/minidlna-$(MINIDLNA_VER).tar.gz | $(TARGETPREFIX)
+       $(START_BUILD)
+       $(UNTAR)/minidlna-$(MINIDLNA_VER).tar.gz
+       set -e; cd $(BUILD_TMP)/minidlna-$(MINIDLNA_VER); \
+               $(PATCH)/minidlna-$(MINIDLNA_VER).patch; \
+               autoreconf -fi; \
+               $(CONFIGURE) \
+                       --prefix=/ \
+               ; \
+               $(MAKE); \
+               $(MAKE) install prefix=/ DESTDIR=$(TARGETPREFIX)
+       install -m 755 $(PATCHES)/minidlna/minidlna.init $(TARGETPREFIX)/etc/init.d/minidlna
+       pushd $(TARGETPREFIX)/etc/init.d
+               ln -sf minidlna $(TARGETPREFIX)/etc/init.d/S75minidlna
+               ln -sf minidlna $(TARGETPREFIX)/etc/init.d/K75minidlna
+       $(REMOVE)/minidlna-$(MINIDLNA_VER)
+       $(TOUCH)
 
 $(D)/strace: $(ARCHIVE)/strace-4.6.tar.xz | $(TARGETPREFIX)
        $(START_BUILD)
@@ -656,7 +677,11 @@ $(D)/djmount: $(D)/libfuse  $(ARCHIVE)/djmount-0.71.tar.gz | $(TARGETPREFIX)
                LIBS="-Wl,--rpath-link -Wl,$(TARGETPREFIX)/lib" \
                ./configure -C prefix=$(TARGETPREFIX) --with-fuse-prefix=$(TARGETPREFIX) --build=$(BUILD) --host=$(TARGET) && \
                $(MAKE) && \
-               $(MAKE) install && \
+               $(MAKE) install;
+       install -m 755 $(PATCHES)/djmount/djmount.init $(TARGETPREFIX)/etc/init.d/djmount
+       pushd $(TARGETPREFIX)/etc/init.d
+               ln -sf djmount $(TARGETPREFIX)/etc/init.d/S75djmount
+               ln -sf djmount $(TARGETPREFIX)/etc/init.d/K75djmount
        $(REMOVE)/djmount-0.71
        $(TOUCH)
 
@@ -692,8 +717,11 @@ $(D)/ushare: $(D)/libupnp $(LIBGETTEXT) $(ARCHIVE)/ushare-$(USHARE_VER).tar.bz2
                cp $(BUILD_TMP)/ushare-$(USHARE_VER)/config.h $(BUILD_TMP)/ushare-$(USHARE_VER)/src/config.h && \
                $(MAKE) && \
                $(MAKE) install && \
-               cp $(BUILD_TMP)/ushare-$(USHARE_VER)/scripts/ushare.conf $(TARGETPREFIX)/etc/ushare.conf
-               rm -f $(TARGETPREFIX)/etc/init.d/ushare
+       install -m 644 $(BUILD_TMP)/ushare-$(USHARE_VER)/scripts/ushare.conf $(TARGETPREFIX)/etc/ushare.conf
+       install -m 755 $(PATCHES)/ushare/ushare.init $(TARGETPREFIX)/etc/init.d/crond
+       pushd $(TARGETPREFIX)/etc/init.d
+               ln -sf ushare $(TARGETPREFIX)/etc/init.d/S75ushare
+               ln -sf ushare $(TARGETPREFIX)/etc/init.d/K75ushare
        $(REMOVE)/ushare-$(USHARE_VER)
        $(TOUCH)
 
@@ -740,16 +768,31 @@ $(D)/xupnpd: $(ARCHIVE)/xupnpd-git-$(XUPNPD_GIT).tar.gz $(D)/udpxy $(D)/lua $(D)
                cp -f $(BUILD_TMP)/xupnpd-git-$(XUPNPD_GIT)/src/*.lua $(TARGETPREFIX)/share/xupnpd/
                mv $(TARGETPREFIX)/share/xupnpd/xupnpd.lua $(TARGETPREFIX)/var/tuxbox/config
                ln -sf /var/tuxbox/config/xupnpd.lua $(TARGETPREFIX)/share/xupnpd/xupnpd.lua
+               install -m 755 $(PATCHES)/minidlna/minidlnad.init $(TARGETPREFIX)/etc/init.d/minidlnad
+       pushd $(TARGETPREFIX)/etc/init.d
+               ln -sf minidlna $(TARGETPREFIX)/etc/init.d/S75minidlna
+               ln -sf minidlna $(TARGETPREFIX)/etc/init.d/K75minidlna
        $(REMOVE)/xupnpd-git-$(XUPNPD_GIT)
        $(TOUCH)
 
-$(D)/udpxy: $(ARCHIVE)/udpxy.1.0.23-7-prod.tar.gz | $(TARGETPREFIX)
-       $(START_BUILD)
-       $(UNTAR)/udpxy.1.0.23-7-prod.tar.gz
-       pushd $(BUILD_TMP)/udpxy-1.0.23-7 && \
-               $(MAKE) CC=$(TARGET)-gcc&& \
-               cp -f $(BUILD_TMP)/udpxy-1.0.23-7/udpxy  $(TARGETPREFIX)/bin/ && \
-       $(REMOVE)/udpxy-1.0.23-7
+UDPXY_PATCH  = 0001-udpxy.patch
+UDPXY_PATCH += 0002-fix-build-with-gcc8.patch
+UDPXY_PATCH += 0003-fix-build-with-gcc9.patch
+
+$(D)/udpxy: $(ARCHIVE)/$(UDPXY_VER).tar.gz | $(TARGETPREFIX)
+       $(START_BUILD)
+       $(REMOVE)/udpxy-$(UDPXY_VER)
+       $(UNTAR)/$(UDPXY_VER).tar.gz
+       pushd $(BUILD_TMP)/udpxy-$(UDPXY_VER); \
+               $(call apply_patches, $(addprefix udpxy/, $(UDPXY_PATCH))); \
+       pushd $(BUILD_TMP)/udpxy-$(UDPXY_VER)/chipmunk && \
+               $(MAKE) NO_UDPXREC=yes CC=$(TARGET)-gcc; \
+               $(MAKE) NO_UDPXREC=yes install DESTDIR=$(TARGETPREFIX) PREFIX= MANPAGE_DIR=./remove;
+       install -m 755 $(PATCHES)/udpxy/udpxy.init $(TARGETPREFIX)/etc/init.d/udpxy
+       pushd $(TARGETPREFIX)/etc/init.d
+               ln -sf udpxy $(TARGETPREFIX)/etc/init.d/S75udpxy
+               ln -sf udpxy $(TARGETPREFIX)/etc/init.d/K75udpxy
+       $(REMOVE)/udpxy-$(UDPXY_VER)
        $(TOUCH)
 
 $(D)/portmap: $(ARCHIVE)/portmap-$(PORTMAP_VER).tgz
index c30178ab6ee3c735e157bead5e21aa012e52e8f5..94b84f589b1543401f8bbfd4bfa588e19adc9e9c 100755 (executable)
@@ -303,8 +303,8 @@ $(ARCHIVE)/libupnp-$(LIBUPNP_VER).tar.bz2:
 $(ARCHIVE)/ushare-$(USHARE_VER).tar.bz2:
        $(WGET) https://sourceforge.net/projects/ushare/files/$(notdir $@)
 
-$(ARCHIVE)/udpxy.1.0.23-7-prod.tar.gz:
-       $(WGET) http://www.fhloston-paradise.de/udpxy.1.0.23-7-prod.tar.gz
+$(ARCHIVE)/$(UDPXY_VER).tar.gz:
+       $(WGET) https://github.com/pcherenkov/udpxy/archive/refs/tags/$(UDPXY_VER).tar.gz
 
 $(ARCHIVE)/inadyn-mt.v.$(INADYN_VER).tar.gz:
        $(WGET) https://sourceforge.net/projects/inadyn-mt/files/inadyn-mt/inadyn-mt.v.$(INADYN_VER)/$(notdir $@)
index 7437a3a39477bcdf76dedbdc581715e9ff050fa1..ff4588669c5fbe9a8854657b20f03ad4f8bfc5b1 100644 (file)
@@ -60,6 +60,10 @@ $(D)/dropbear: $(D)/zlib $(ARCHIVE)/dropbear-$(DROPBEAR_VER).tar.bz2 | $(BUILD_T
                $(MAKE) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 && \
                $(MAKE) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 install DESTDIR=$(BUILD_TMP)/extras
                $(TARGET)-strip $(BUILD_TMP)/extras/var/bin/dropbearmulti
+       install -m 755 $(PATCHES)/dropbear/dropbear.init $(TARGETPREFIX)/etc/init.d/dropbear
+       pushd $(TARGETPREFIX)/etc/init.d
+               ln -sf dropbear $(TARGETPREFIX)/etc/init.d/S60dropbear
+               ln -sf dropbear $(TARGETPREFIX)/etc/init.d/K60dropbear
        $(REMOVE)/extras/.remove
 #      $(REMOVE)/dropbear-$(DROPBEAR_VER)
 #      $(TOUCH)
index ca18eb534862ca72d416cf5b1ca1dbdade06ae9c..e2ff36ff7b1bddfdd3e38701c573d86e2b4c9ea8 100755 (executable)
@@ -842,23 +842,6 @@ $(D)/libogg: $(ARCHIVE)/libogg-$(LIBOGG_VER).tar.gz | $(TARGETPREFIX)
        $(REMOVE)/libogg-$(LIBOGG_VER)
        $(TOUCH)
 
-#
-# minidlna
-#
-$(D)/minidlna: $(D)/zlib $(D)/sqlite $(D)/libexif $(D)/libjpeg $(D)/libid3tag $(D)/libogg $(D)/libvorbis $(D)/flac $(D)/ffmpeg $(ARCHIVE)/minidlna-$(MINIDLNA_VER).tar.gz | $(TARGETPREFIX)
-       $(START_BUILD)
-       $(UNTAR)/minidlna-$(MINIDLNA_VER).tar.gz
-       set -e; cd $(BUILD_TMP)/minidlna-$(MINIDLNA_VER); \
-               $(PATCH)/minidlna-$(MINIDLNA_VER).patch; \
-               autoreconf -fi; \
-               $(CONFIGURE) \
-                       --prefix=/ \
-               ; \
-               $(MAKE); \
-               $(MAKE) install prefix=/ DESTDIR=$(TARGETPREFIX)
-       $(REMOVE)/minidlna-$(MINIDLNA_VER)
-       $(TOUCH)
-
 #
 # libexif
 #
index 44b87588b33f11a89cb6a9b8c5476e22853ceeeb..5eb6af58a0a14b93412a3327ea00d8769654c3dd 100644 (file)
@@ -261,6 +261,9 @@ TZ_VER=2017b
 # u-boot; an universal boot loader
 U-BOOT_VER=2014.04
 
+# udpxy is a UDP-to-HTTP multicast traffic relay daemon: it forwards UDP traffic from a given multicast subscription to the requesting HTTP client.
+UDPXY_VER = 1.0-25.1
+
 # uClibc-ng; a C library for developing embedded Linux systems
 UCLIBC_VER=1.0.41