Message ID | 1483371929-13907-6-git-send-email-david.bachelart@bbright.com |
---|---|
State | Changes Requested, archived |
Headers | show |
Hello, Thanks for your contribution, and this new iteration. However, there are still a number of issues that need to be resolved before we can apply your patch. See below for the comments. On Mon, 2 Jan 2017 16:45:27 +0100, David Bachelart wrote: > diff --git a/package/sslh/0100-version-messup-with-git.patch b/package/sslh/0100-version-messup-with-git.patch Patches should starts at 0001, and we like them to be generated with "git format-patch" when the upstream project uses Git as its version control system. > new file mode 100644 > index 0000000..f4bc7c9 > --- /dev/null > +++ b/package/sslh/0100-version-messup-with-git.patch > @@ -0,0 +1,47 @@ All patches must have a description and Signed-off-by line, formatted like all git commits. > +diff --git a/genver.sh b/genver.sh > +index 4d6e76a..7e9176f 100755 > +--- a/genver.sh > ++++ b/genver.sh > +@@ -7,7 +7,7 @@ else > + QUIET=0 > + fi > + > +-if ! `(git status | grep -q "On branch") 2> /dev/null`; then > ++#if ! `(git status | grep -q "On branch") 2> /dev/null`; then Please remove code instead of commenting it. However, since sslh seems to be actively developed, we would very much prefer a solution that can be upstreamed. So something like an option we can pass, or another mechanism that allows to disable this "let's determine the version from git" thing. > diff --git a/package/sslh/Config.in b/package/sslh/Config.in > new file mode 100644 > index 0000000..3794175 > --- /dev/null > +++ b/package/sslh/Config.in > @@ -0,0 +1,14 @@ > +config BR2_PACKAGE_SSLH > + bool "sslh" > + depends on BR2_INSTALL_LIBSTDCPP > + # uses fork() > + depends on BR2_USE_MMU > + select BR2_PACKAGE_LIBCONFIG > + help > + Applicative protocol multiplexer > + > + http://www.rutschle.net/tech/sslh.shtml > + > +comment "iperf needs a toolchain w/ C++" I guess this package is sslh, not iperf :) > +start() > +{ > + echo -n "Starting $NAME: " Use printf here instead of echo -n. > + start-stop-daemon -S -q --exec $DAEMON -- $DAEMON_OPTS --pidfile $PIDFILE && echo "OK" || echo "Failed" Please use the same syntax as other init scripts. Look at package/dropbear/S50dropbear for an example. > +stop() > +{ > + echo -n "Stopping $NAME: " > + start-stop-daemon -K -q -x $DAEMON && echo "OK" || echo "Failed" > + rm -f $PIDFILE Removing the pidfile is not really needed. > diff --git a/package/sslh/sslh.default b/package/sslh/sslh.default > new file mode 100644 > index 0000000..2d2a1b1 > --- /dev/null > +++ b/package/sslh/sslh.default > @@ -0,0 +1,14 @@ > +# Default options for sslh initscript > +# sourced by /etc/init.d/sslh There is no such file in Buildroot. > +# Disabled by default, to force yourself > +# to read the configuration: > +# - /usr/share/doc/sslh/README.Debian (quick start) > +# - /usr/share/doc/sslh/README, at "Configuration" section > +# - sslh(8) via "man sslh" for more configuration details. All these references don't really make sense in a Buildroot context. > +# Once configuration ready, you *must* set RUN to yes here > +# and try to start sslh (standalone mode only) > + > +RUN=yes Not used by Buildroot. > + > +DAEMON_OPTS="--user root --listen 0.0.0.0:8090 --ssh 127.0.0.1:22 --http 127.0.0.1:80" In general, we do not provide an default file for /etc/default, the init script is self sufficient. So please put the default value for DAEMON_OPTS into the init script, and simply include /etc/default/sslh afterwards so that it can override the options. > diff --git a/package/sslh/sslh.mk b/package/sslh/sslh.mk > new file mode 100644 > index 0000000..962300f > --- /dev/null > +++ b/package/sslh/sslh.mk > @@ -0,0 +1,29 @@ > +################################################################################ > +# > +# sslh > +# > +################################################################################ > + > +SSLH_VERSION = 1.18 > +SSLH_SITE = http://www.rutschle.net/tech/sslh > +SSLH_SOURCE = sslh-v$(SSLH_VERSION).tar.gz The "v" should be part of SSLH_VERSION, and then SSLH_SOURCE can be removed as it's the default version. > +SSLH_LICENSE = GPL-v2+ Should be GPLv2+. > +SSLH_LICENSE_FILES = COPYING > + > +SSLH_DEPENDENCIES = libconfig > + > +define SSLH_BUILD_CMDS > + $(TARGET_MAKE_ENV) make CC=$(TARGET_CC) -C $(SSLH_DIR) This should be: $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) notice that the indentation is done with one tab, not with spaces. > +endef > + > +define SSLH_INSTALL_TARGET_CMDS > + $(INSTALL) -m 755 -D $(@D)/sslh-fork $(TARGET_DIR)/usr/sbin/sslh > + $(INSTALL) -m 644 -D package/sslh/sslh.default $(TARGET_DIR)/etc/default/sslh The Makefile has an "install" target that seems to do the right thing, you should use it. > +endef > + > +define SSLH_INSTALL_INIT_SYSV > + $(INSTALL) -m 755 -D package/sslh/S35sslh $(TARGET_DIR)/etc/init.d/S35sslh This is OK, except the indentation: should be one tab, not some spaces. Could you address those different issues (I believe they are all quite easy to resolve) and submit an updated version of your patch? Thanks a lot! Thomas
Hi Thomas, Sure, I'll submit a new patch. Thanks David
diff --git a/package/Config.in b/package/Config.in index 59fa851..ea1eb59 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1614,6 +1614,7 @@ endif source "package/spice-protocol/Config.in" source "package/squid/Config.in" source "package/sshpass/Config.in" + source "package/sslh/Config.in" source "package/strongswan/Config.in" source "package/stunnel/Config.in" source "package/tcpdump/Config.in" diff --git a/package/sslh/0100-version-messup-with-git.patch b/package/sslh/0100-version-messup-with-git.patch new file mode 100644 index 0000000..f4bc7c9 --- /dev/null +++ b/package/sslh/0100-version-messup-with-git.patch @@ -0,0 +1,47 @@ +diff --git a/genver.sh b/genver.sh +index 4d6e76a..7e9176f 100755 +--- a/genver.sh ++++ b/genver.sh +@@ -7,7 +7,7 @@ else + QUIET=0 + fi + +-if ! `(git status | grep -q "On branch") 2> /dev/null`; then ++#if ! `(git status | grep -q "On branch") 2> /dev/null`; then + # If we don't have git, we can't work out what + # version this is. It must have been downloaded as a + # zip file. +@@ -23,20 +23,20 @@ if ! `(git status | grep -q "On branch") 2> /dev/null`; then + # release number + release=head-`perl -MPOSIX -e 'print strftime "%Y-%m-%d",localtime((stat "Makefile")[9])'` + fi +-fi +- +-if head=`git rev-parse --verify HEAD 2>/dev/null`; then +- # generate the version info based on the tag +- release=`(git describe --tags || git --describe || git describe --all --long) \ +- 2>/dev/null | tr -d '\n'` ++#fi + +- # Are there uncommitted changes? +- git update-index --refresh --unmerged > /dev/null +- if git diff-index --name-only HEAD | grep -v "^scripts/package" \ +- | read dummy; then +- release="$release-dirty" +- fi +-fi ++#if head=`git rev-parse --verify HEAD 2>/dev/null`; then ++# # generate the version info based on the tag ++# release=`(git describe --tags || git --describe || git describe --all --long) \ ++# 2>/dev/null | tr -d '\n'` ++# ++# # Are there uncommitted changes? ++# git update-index --refresh --unmerged > /dev/null ++# if git diff-index --name-only HEAD | grep -v "^scripts/package" \ ++# | read dummy; then ++# release="$release-dirty" ++# fi ++#fi + + + if [ $QUIET -ne 1 ]; then diff --git a/package/sslh/Config.in b/package/sslh/Config.in new file mode 100644 index 0000000..3794175 --- /dev/null +++ b/package/sslh/Config.in @@ -0,0 +1,14 @@ +config BR2_PACKAGE_SSLH + bool "sslh" + depends on BR2_INSTALL_LIBSTDCPP + # uses fork() + depends on BR2_USE_MMU + select BR2_PACKAGE_LIBCONFIG + help + Applicative protocol multiplexer + + http://www.rutschle.net/tech/sslh.shtml + +comment "iperf needs a toolchain w/ C++" + depends on BR2_USE_MMU + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/package/sslh/S35sslh b/package/sslh/S35sslh new file mode 100644 index 0000000..63a16da --- /dev/null +++ b/package/sslh/S35sslh @@ -0,0 +1,41 @@ +#!/bin/sh +# +# Starts the SSLH server +# + +NAME=sslh +DAEMON=/usr/sbin/$NAME +PIDFILE=/var/run/$NAME.pid + +. /etc/default/sslh + +start() +{ + echo -n "Starting $NAME: " + start-stop-daemon -S -q --exec $DAEMON -- $DAEMON_OPTS --pidfile $PIDFILE && echo "OK" || echo "Failed" +} + +stop() +{ + echo -n "Stopping $NAME: " + start-stop-daemon -K -q -x $DAEMON && echo "OK" || echo "Failed" + rm -f $PIDFILE +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + stop + start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/package/sslh/sslh.default b/package/sslh/sslh.default new file mode 100644 index 0000000..2d2a1b1 --- /dev/null +++ b/package/sslh/sslh.default @@ -0,0 +1,14 @@ +# Default options for sslh initscript +# sourced by /etc/init.d/sslh + +# Disabled by default, to force yourself +# to read the configuration: +# - /usr/share/doc/sslh/README.Debian (quick start) +# - /usr/share/doc/sslh/README, at "Configuration" section +# - sslh(8) via "man sslh" for more configuration details. +# Once configuration ready, you *must* set RUN to yes here +# and try to start sslh (standalone mode only) + +RUN=yes + +DAEMON_OPTS="--user root --listen 0.0.0.0:8090 --ssh 127.0.0.1:22 --http 127.0.0.1:80" diff --git a/package/sslh/sslh.hash b/package/sslh/sslh.hash new file mode 100644 index 0000000..4560b84 --- /dev/null +++ b/package/sslh/sslh.hash @@ -0,0 +1,4 @@ +# Locally computed +md5 0e3568d5d234516c634d4df156473298 sslh-v1.18.tar.gz +sha1 b2e3a4314f62fc8200ecfbadefebe809a84d8099 sslh-v1.18.tar.gz +sha256 1601a5b377dcafc6b47d2fbb8d4d25cceb83053a4adcc5874d501a2d5a7745ad sslh-v1.18.tar.gz diff --git a/package/sslh/sslh.mk b/package/sslh/sslh.mk new file mode 100644 index 0000000..962300f --- /dev/null +++ b/package/sslh/sslh.mk @@ -0,0 +1,29 @@ +################################################################################ +# +# sslh +# +################################################################################ + +SSLH_VERSION = 1.18 +SSLH_SITE = http://www.rutschle.net/tech/sslh +SSLH_SOURCE = sslh-v$(SSLH_VERSION).tar.gz +SSLH_LICENSE = GPL-v2+ +SSLH_LICENSE_FILES = COPYING + +SSLH_DEPENDENCIES = libconfig + +define SSLH_BUILD_CMDS + $(TARGET_MAKE_ENV) make CC=$(TARGET_CC) -C $(SSLH_DIR) +endef + +define SSLH_INSTALL_TARGET_CMDS + $(INSTALL) -m 755 -D $(@D)/sslh-fork $(TARGET_DIR)/usr/sbin/sslh + $(INSTALL) -m 644 -D package/sslh/sslh.default $(TARGET_DIR)/etc/default/sslh +endef + +define SSLH_INSTALL_INIT_SYSV + $(INSTALL) -m 755 -D package/sslh/S35sslh $(TARGET_DIR)/etc/init.d/S35sslh +endef + +$(eval $(generic-package)) +
Signed-off-by: David Bachelart <david.bachelart@bbright.com> --- Changes v1 -> v2: - Fix version in .mk file - Fix source url in .mk file - Fix hash file --- package/Config.in | 1 + package/sslh/0100-version-messup-with-git.patch | 47 +++++++++++++++++++++++++ package/sslh/Config.in | 14 ++++++++ package/sslh/S35sslh | 41 +++++++++++++++++++++ package/sslh/sslh.default | 14 ++++++++ package/sslh/sslh.hash | 4 +++ package/sslh/sslh.mk | 29 +++++++++++++++ 7 files changed, 150 insertions(+) create mode 100644 package/sslh/0100-version-messup-with-git.patch create mode 100644 package/sslh/Config.in create mode 100644 package/sslh/S35sslh create mode 100644 package/sslh/sslh.default create mode 100644 package/sslh/sslh.hash create mode 100644 package/sslh/sslh.mk