From: Hauke Mehrtens Date: Sat, 3 May 2014 11:29:26 +0000 (+0000) Subject: xupnpd: Update to latest version, switch to procd and add parameter for root directory X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=f87301ba9b7be1e1c869bd59511274035a3c8ba7;p=openwrt%2Fsvn-archive%2Farchive.git xupnpd: Update to latest version, switch to procd and add parameter for root directory Update to latest version, switch to procd and add parameter for root directory. Signed-off-by: Álvaro Fernández Rojas SVN-Revision: 40674 --- diff --git a/multimedia/xupnpd/Makefile b/multimedia/xupnpd/Makefile index 3d3f015420..2ec40a9b34 100644 --- a/multimedia/xupnpd/Makefile +++ b/multimedia/xupnpd/Makefile @@ -8,9 +8,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xupnpd -PKG_REV:=387 +PKG_REV:=398 PKG_VERSION:=$(PKG_REV) -PKG_RELEASE:=5 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=svn PKG_SOURCE_VERSION:=$(PKG_REV) diff --git a/multimedia/xupnpd/files/xupnpd.init b/multimedia/xupnpd/files/xupnpd.init index eddd0f4974..29c458a9a4 100644 --- a/multimedia/xupnpd/files/xupnpd.init +++ b/multimedia/xupnpd/files/xupnpd.init @@ -1,23 +1,15 @@ #!/bin/sh /etc/rc.common -# Copyright (C) 2013 OpenWrt.org +# Copyright (C) 2013-2014 OpenWrt.org -START=99 -STOP=99 +START=50 +USE_PROCD=1 -SERVICE_DAEMONIZE=1 -SERVICE_WRITE_PID=1 +start_service() { + procd_open_instance -XUPNPDROOTDIR=/usr/share/xupnpd -XUPNPD=/usr/bin/xupnpd + procd_set_param command /usr/bin/xupnpd + procd_append_param command -d /usr/share/xupnpd -start() { - service_start $XUPNPD -} - -stop() { - service_stop $XUPNPD -} - -reload() { - service_reload $XUPNPD + procd_set_param respawn + procd_close_instance } diff --git a/multimedia/xupnpd/patches/101-root_dir_param.patch b/multimedia/xupnpd/patches/101-root_dir_param.patch new file mode 100644 index 0000000000..68ea3e82e2 --- /dev/null +++ b/multimedia/xupnpd/patches/101-root_dir_param.patch @@ -0,0 +1,83 @@ +--- a/main.cpp ++++ b/main.cpp +@@ -4,11 +4,14 @@ + * https://tsdemuxer.googlecode.com/svn/trunk/xupnpd + */ + ++#include + #include + #include + #include + #include + #include ++#include ++#include + #include "luacompat.h" + #include "luaxlib.h" + #include "luaxcore.h" +@@ -16,35 +19,36 @@ + + int main(int argc,char** argv) + { +- const char* p=strrchr(argv[0],'/'); +- +- int rc; +- +- if(p) +- { +- char location[512]; +- int n=p-argv[0]; +- if(n>=sizeof(location)) +- n=sizeof(location)-1; +- strncpy(location,argv[0],n); +- location[n]=0; +- +- rc=chdir(location); +- +- argv[0]=(char*)p+1; +- } +- +- const char* root=getenv("XUPNPDROOTDIR"); +- if(root && *root) +- rc=chdir(root); +- +- { +- FILE* fp=fopen("xupnpd.lua","r"); +- if(fp) +- fclose(fp); +- else +- rc=chdir("/usr/share/xupnpd/"); +- } ++ int c; ++ char *xupnpd_root = "/usr/share/xupnpd/"; ++ struct stat s; ++ ++ opterr = 0; ++ while ((c = getopt (argc, argv, "d:")) != -1) { ++ switch (c) { ++ case 'd': ++ xupnpd_root = optarg; ++ break; ++ case '?': ++ if (optopt == 'd') ++ fprintf(stderr, "Option -%c requires an argument.\n", optopt); ++ else if (isprint(optopt)) ++ fprintf(stderr, "Unknown option \"-%c\".\n", optopt); ++ else ++ fprintf(stderr, "Unknown option\n"); ++ return 1; ++ default: ++ abort(); ++ } ++ } ++ ++ if(stat(xupnpd_root, &s) != -1 && S_ISDIR(s.st_mode)) { ++ c = chdir(xupnpd_root); ++ } ++ else { ++ fprintf(stderr, "Directory %s doesn't exist.\n", xupnpd_root); ++ return 1; ++ } + + lua_State* L=lua_open(); + if(L)