mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-29 22:26:31 +00:00
igd2-for-linux: new package
This is The Linux UPnP Internet Gateway Device 2. It is modified from the original Linux UPnP Internet Gateway Device [http://linux-igd.sourceforge.net/] according to UPnP InternetGatewayDevice:2 specifications. It implements the UPnP Internet Gateway Device version 2 specification (IGDv2) and allows UPnP aware clients, such as MSN Messenger, Azureus or Miranda to work properly from behind a NAT firewall. Please edit /etc/upnpd.conf before using upnpd! https://github.com/ffontaine/igd2-for-linux Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
bcc6b36169
commit
5823088298
@ -1453,6 +1453,7 @@ menu "Networking applications"
|
|||||||
source "package/ifplugd/Config.in"
|
source "package/ifplugd/Config.in"
|
||||||
source "package/iftop/Config.in"
|
source "package/iftop/Config.in"
|
||||||
source "package/ifupdown/Config.in"
|
source "package/ifupdown/Config.in"
|
||||||
|
source "package/igd2-for-linux/Config.in"
|
||||||
source "package/igh-ethercat/Config.in"
|
source "package/igh-ethercat/Config.in"
|
||||||
source "package/igmpproxy/Config.in"
|
source "package/igmpproxy/Config.in"
|
||||||
source "package/inadyn/Config.in"
|
source "package/inadyn/Config.in"
|
||||||
|
25
package/igd2-for-linux/Config.in
Normal file
25
package/igd2-for-linux/Config.in
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
config BR2_PACKAGE_IGD2_FOR_LINUX
|
||||||
|
bool "igd2-for-linux"
|
||||||
|
depends on BR2_USE_MMU # fork()
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||||
|
depends on BR2_USE_WCHAR
|
||||||
|
select BR2_PACKAGE_IPTABLES # runtime
|
||||||
|
select BR2_PACKAGE_LIBUPNP
|
||||||
|
help
|
||||||
|
This is The Linux UPnP Internet Gateway Device 2. It is
|
||||||
|
modified from the original Linux UPnP Internet Gateway Device
|
||||||
|
[http://linux-igd.sourceforge.net/] according to UPnP
|
||||||
|
InternetGatewayDevice:2 specifications.
|
||||||
|
|
||||||
|
It implements the UPnP Internet Gateway Device version 2
|
||||||
|
specification (IGDv2) and allows UPnP aware clients, such as
|
||||||
|
MSN Messenger, Azureus or Miranda to work properly from behind
|
||||||
|
a NAT firewall.
|
||||||
|
|
||||||
|
Please edit /etc/upnpd.conf before using upnpd!
|
||||||
|
|
||||||
|
https://github.com/ffontaine/igd2-for-linux
|
||||||
|
|
||||||
|
comment "igd2-for-linux needs a toolchain w/ threads, wchar"
|
||||||
|
depends on BR2_USE_MMU
|
||||||
|
depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
|
67
package/igd2-for-linux/S99upnpd
Normal file
67
package/igd2-for-linux/S99upnpd
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
NAME=upnpd
|
||||||
|
PIDFILE=/var/run/$NAME.pid
|
||||||
|
DAEMON=/usr/sbin/$NAME
|
||||||
|
CFGFILE=/etc/default/$NAME
|
||||||
|
|
||||||
|
LAN=eth0
|
||||||
|
WAN=eth0
|
||||||
|
|
||||||
|
# For the UPnP library to function correctly, networking must be configured
|
||||||
|
# properly for multicasting as described in
|
||||||
|
# https://sourceforge.net/p/pupnp/code/ci/master/tree/README.
|
||||||
|
# Without this addition, device advertisements and control point searches will
|
||||||
|
# not function.
|
||||||
|
# However, the route has to be configured once for all UPnP applications
|
||||||
|
# (igd2-for-linux, ushare, ...) so do not manage UPnP route by default
|
||||||
|
MANAGE_UPNP_MULTICAST_ROUTE_ON_LAN=0
|
||||||
|
|
||||||
|
# Read configuration variable file if it is present
|
||||||
|
if [ -f $CFGFILE ]; then
|
||||||
|
. $CFGFILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
DAEMON_ARGS="-f $WAN $LAN"
|
||||||
|
|
||||||
|
start() {
|
||||||
|
if [ $MANAGE_UPNP_MULTICAST_ROUTE_ON_LAN != 0 ]; then
|
||||||
|
printf "Add UPnP multicast route on $LAN\n"
|
||||||
|
route add -net 239.0.0.0 netmask 255.0.0.0 $LAN
|
||||||
|
fi
|
||||||
|
printf "Starting $NAME: "
|
||||||
|
start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON -- $DAEMON_ARGS
|
||||||
|
[ $? = 0 ] && echo "OK" || echo "FAIL"
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
printf "Stopping $NAME: "
|
||||||
|
start-stop-daemon -K -q -p $PIDFILE
|
||||||
|
[ $? = 0 ] && echo "OK" || echo "FAIL"
|
||||||
|
if [ $MANAGE_UPNP_MULTICAST_ROUTE_ON_LAN != 0 ]; then
|
||||||
|
printf "Remove UPnP multicast route on $LAN\n"
|
||||||
|
route del -net 239.0.0.0 netmask 255.0.0.0 $LAN
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
restart|reload)
|
||||||
|
restart
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop|restart|reload}"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit $?
|
2
package/igd2-for-linux/igd2-for-linux.hash
Normal file
2
package/igd2-for-linux/igd2-for-linux.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Locally computed:
|
||||||
|
sha256 a8edc4c14aa104dcffa79d1f3057b8b9c5cef0f8f43901f61e306120a4efe01f igd2-for-linux-v1.1.tar.gz
|
48
package/igd2-for-linux/igd2-for-linux.mk
Normal file
48
package/igd2-for-linux/igd2-for-linux.mk
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# igd2-for-linux
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
IGD2_FOR_LINUX_VERSION = v1.1
|
||||||
|
IGD2_FOR_LINUX_SITE = $(call github,ffontaine,igd2-for-linux,$(IGD2_FOR_LINUX_VERSION))
|
||||||
|
|
||||||
|
IGD2_FOR_LINUX_LICENSE = GPLv2
|
||||||
|
IGD2_FOR_LINUX_LICENSE_FILES = linuxigd2/doc/LICENSE
|
||||||
|
|
||||||
|
IGD2_FOR_LINUX_DEPENDENCIES = libupnp
|
||||||
|
|
||||||
|
IGD2_FOR_LINUX_BUILD_DIR = $(@D)/linuxigd2
|
||||||
|
IGD2_FOR_LINUX_CONF_DIR = $(IGD2_FOR_LINUX_BUILD_DIR)/configs
|
||||||
|
|
||||||
|
define IGD2_FOR_LINUX_BUILD_CMDS
|
||||||
|
$(TARGET_MAKE_ENV) $(MAKE) -C $(IGD2_FOR_LINUX_BUILD_DIR) \
|
||||||
|
$(TARGET_CONFIGURE_OPTS) \
|
||||||
|
LIBUPNP_PREFIX="$(STAGING_DIR)/usr" \
|
||||||
|
all
|
||||||
|
endef
|
||||||
|
|
||||||
|
define IGD2_FOR_LINUX_INSTALL_TARGET_CMDS
|
||||||
|
$(INSTALL) -D -m 0755 $(IGD2_FOR_LINUX_BUILD_DIR)/bin/upnpd \
|
||||||
|
$(TARGET_DIR)/usr/sbin/upnpd
|
||||||
|
$(INSTALL) -D -m 0644 $(IGD2_FOR_LINUX_CONF_DIR)/upnpd.conf \
|
||||||
|
$(TARGET_DIR)/etc/upnpd.conf
|
||||||
|
mkdir -p $(TARGET_DIR)/etc/linuxigd/
|
||||||
|
cp -dpfr $(IGD2_FOR_LINUX_CONF_DIR)/*.{xml,png} \
|
||||||
|
$(TARGET_DIR)/etc/linuxigd/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define IGD2_FOR_LINUX_INSTALL_INIT_SYSV
|
||||||
|
$(INSTALL) -D -m 0755 package/igd2-for-linux/S99upnpd \
|
||||||
|
$(TARGET_DIR)/etc/init.d/S99upnpd
|
||||||
|
endef
|
||||||
|
|
||||||
|
define IGD2_FOR_LINUX_INSTALL_INIT_SYSTEMD
|
||||||
|
$(INSTALL) -D -m 0644 package/igd2-for-linux/upnpd.service \
|
||||||
|
$(TARGET_DIR)/usr/lib/systemd/system/upnpd.service
|
||||||
|
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
|
||||||
|
ln -sf ../../../../usr/lib/systemd/system/upnpd.service \
|
||||||
|
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/upnpd.service
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(generic-package))
|
22
package/igd2-for-linux/upnpd.service
Normal file
22
package/igd2-for-linux/upnpd.service
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=UPnP Internet Gateway Device version 2 daemon
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment="LAN=eth0"
|
||||||
|
Environment="WAN=eth0"
|
||||||
|
EnvironmentFile=/etc/default/upnpd
|
||||||
|
# For the UPnP library to function correctly, networking must be configured
|
||||||
|
# properly for multicasting as described in
|
||||||
|
# https://sourceforge.net/p/pupnp/code/ci/master/tree/README.
|
||||||
|
# Without this addition, device advertisements and control point searches will
|
||||||
|
# not function.
|
||||||
|
# However, the route has to be configured once for all UPnP applications
|
||||||
|
# (igd2-for-linux, ushare, ...) so do not manage UPnP route by default
|
||||||
|
#ExecStartPre=/sbin/route add -net 239.0.0.0 netmask 255.0.0.0 $LAN
|
||||||
|
#ExecStopPost=/sbin/route del -net 239.0.0.0 netmask 255.0.0.0 $LAN
|
||||||
|
ExecStart=/usr/sbin/upnpd -f $WAN $LAN
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
x
Reference in New Issue
Block a user