From: Markham Date: Sat, 4 Jun 2022 17:48:16 +0000 (+0200) Subject: use inits for uShare, djmount, crond, udpxy, minidlnad, xupnpd X-Git-Url: https://git.webhop.me/?a=commitdiff_plain;h=f2ffcd7f0ee6cdae1bad894c75cf02ca7ef434b0;p=bs-cst-neutrino-hd.git use inits for uShare, djmount, crond, udpxy, minidlnad, xupnpd --- diff --git a/archive-patches/busybox/crond.init b/archive-patches/busybox/crond.init new file mode 100755 index 0000000..3500ec0 --- /dev/null +++ b/archive-patches/busybox/crond.init @@ -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 index 0000000..e14f1eb --- /dev/null +++ b/archive-patches/djmount/djmount.init @@ -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 index 0000000..9a54683 --- /dev/null +++ b/archive-patches/minidlna/minidlnad.init @@ -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 index 0000000..51dee52 --- /dev/null +++ b/archive-patches/udpxy/0001-udpxy.patch @@ -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 index 0000000..ee6569a --- /dev/null +++ b/archive-patches/udpxy/0002-fix-build-with-gcc8.patch @@ -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 index 0000000..8a7ff66 --- /dev/null +++ b/archive-patches/udpxy/0003-fix-build-with-gcc9.patch @@ -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 index 0000000..3928bf5 --- /dev/null +++ b/archive-patches/udpxy/udpxy.init @@ -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 index 0000000..cb40bf8 --- /dev/null +++ b/archive-patches/ushare/ushare.init @@ -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 index 0000000..e6a5391 --- /dev/null +++ b/archive-patches/xupnpd/xupnpd.init @@ -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 diff --git a/make/applications.mk b/make/applications.mk index 1cf9a31..d5f1758 100755 --- a/make/applications.mk +++ b/make/applications.mk @@ -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 diff --git a/make/archives.mk b/make/archives.mk index c30178a..94b84f5 100755 --- a/make/archives.mk +++ b/make/archives.mk @@ -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 $@) diff --git a/make/extras.mk b/make/extras.mk index 7437a3a..ff45886 100644 --- a/make/extras.mk +++ b/make/extras.mk @@ -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) diff --git a/make/libraries.mk b/make/libraries.mk index ca18eb5..e2ff36f 100755 --- a/make/libraries.mk +++ b/make/libraries.mk @@ -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 # diff --git a/make/versions.mk b/make/versions.mk index 44b8758..5eb6af5 100644 --- a/make/versions.mk +++ b/make/versions.mk @@ -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