From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- dev-java/java-service-wrapper/Manifest | 8 ++ .../java-service-wrapper-3.5.25-as-needed.patch | 156 +++++++++++++++++++++ ...ce-wrapper-3.5.25-gentoo-wrapper-defaults.patch | 25 ++++ .../java-service-wrapper-3.5.25-testsuite.patch | 12 ++ .../java-service-wrapper-3.5.25-r1.ebuild | 71 ++++++++++ dev-java/java-service-wrapper/metadata.xml | 20 +++ 6 files changed, 292 insertions(+) create mode 100644 dev-java/java-service-wrapper/Manifest create mode 100644 dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-as-needed.patch create mode 100644 dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-gentoo-wrapper-defaults.patch create mode 100644 dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-testsuite.patch create mode 100644 dev-java/java-service-wrapper/java-service-wrapper-3.5.25-r1.ebuild create mode 100644 dev-java/java-service-wrapper/metadata.xml (limited to 'dev-java/java-service-wrapper') diff --git a/dev-java/java-service-wrapper/Manifest b/dev-java/java-service-wrapper/Manifest new file mode 100644 index 000000000000..59bfc6142eb5 --- /dev/null +++ b/dev-java/java-service-wrapper/Manifest @@ -0,0 +1,8 @@ +AUX java-service-wrapper-3.5.25-as-needed.patch 6957 SHA256 c514b890282fb001ce6dc1f798bd88dbfe451c0b76e19e2b99e2cdbe7171820f SHA512 f45dcda4ff87b98cf60d3db5bbd98b6f0dfced2d784076d49f0e29997b25f9f3eefe8b7d3410ff2df3e8cff11910a226996763982193d44b5c99aa03ade8aaef WHIRLPOOL 348f9e64a6dace8b1cd0239a8f4097726e8371bcbcf2c96ddbe0cb1d19214a07e749600dd781417b886353014770bce7121c3908bd59980027a6caa649c71823 +AUX java-service-wrapper-3.5.25-gentoo-wrapper-defaults.patch 1256 SHA256 adc441746cba1baf9be6720952433cceb0ec10496a58f62521044eac9694161d SHA512 907f07bcf3debd45d07639ea8b60c21be1190cb7939b28c05eaebdd8713e818402d8da9722be09a7d20fb5598a44d0682bb32a6897b97ef7faf2bd74ca9f8824 WHIRLPOOL b6faa9159ac339f69a42cb14263c5af618b46fd641a6c4da20a8b131590505cb0a02858fd6388d948477953d9f862999a24c3bebfb72cbc6722926f62f5a3c58 +AUX java-service-wrapper-3.5.25-testsuite.patch 463 SHA256 b16e77e333be50a4e0fdc77934bec886b8ba141c6a4ae1d95d49a269ac5272f1 SHA512 c058363d17e0594ccce355183358d016acf8ec06dd88ff3dc3b360d143cd56fd1a70b5d7d9f5bf774451ea0eed5a78752c8b3fcc32422a1a97d52eb43e057e91 WHIRLPOOL 6336dc876b6ccd6f4918f1b233c940443311cb7dfb4866a2eb2caff0e5b5b2a8876669b88de48a18aefb06de1140f6e975b4369f94e34aedf8c3755122a8be9f +DIST wrapper_3.5.25_src.tar.gz 556678 SHA256 3cbecb7f2101eda82125e3649e3245fc1e7b4b4d6501b479990ea8b18ac6450b SHA512 4ce8ab5dc7acc4d78e7b902a61bb1e3785b5455f81438aa61a877107647e88ade595075ff0b8d5db0ff2b33bb94d70c2b1331561d6d282e497998eea9494c6f4 WHIRLPOOL d6bcf8aa40525e80e7bfeb927b690cd818c69da276a0d6cfd2b6a37afb88cb0b826485fc25cb76fa89d7c6227e49735f31361641f966944caba5ee2cec44bec0 +EBUILD java-service-wrapper-3.5.25-r1.ebuild 1476 SHA256 94ef566710b7ad21547ba13ce99968424ef909ec8815665f8382eb3f40a542d5 SHA512 ed5b5d2fdb8de0f97e617dc387fd42ea9e310841bb45dc5c17b38057743ed91a6b862b83aaaaaded5d5a4a85ba67ca30fbc1364c55f8c94428f51bb33122d10e WHIRLPOOL 54cd0983d7b69248cc932556f7aaee389618d4b979197e5d70afd42746d22fd2d0036c5c9b60ce80695eb8ae224f17c6bddc74ada8a3c9ebe5ed8f4afe4db338 +MISC ChangeLog 4955 SHA256 d1d00553bc74c2b19a22280aadaee91036ef076b207268ac1a2945a990d09621 SHA512 7ad42bc7fb362fdf126b13ea357ccd852245d10acde669cc735a7fac6bb2f7523b6b49bda2bb716fccba0a0b7dfb1ff8b1ab91807c54722528dd3efae61e3c7b WHIRLPOOL 91201f305a84ec7cec03f5292fc1530278bf669463a9deb7dc4c3a533bf2359357071bfa3d41de797fa594b3bfd66edaca8538ed175d966c4119a00ea6ca41f1 +MISC ChangeLog-2015 3671 SHA256 80561e0b2a7d78f39e275748dfec553a3f071ba6d4e524585b65c2935bd4b9cc SHA512 ad0a6076e6c9e4589f7ed65eded329b9342821f16a1547353ef60a6681f2e70ddb17652a7b2aaf9ebbd8a5c9dfaad7cc569d3b93498789f7aee951726a24d51b WHIRLPOOL f6cda5b1ced477ebf64f074c832108640d1d4ac35e2f22e701ceb22c994e413a6ecc8b030d6b7ecb7174b7a5ddac9731a021714507c209600bcff05529adf2c9 +MISC metadata.xml 660 SHA256 b728d2a0e2bb3b369e08185a793bcecd091fb3abf678bcee55e5fb081433f46d SHA512 d8b4d0f62b3c484d128b9a087dab64dcfe11583eb6c6f380607cb9536cbe1854701b60bbaa11377c6fd326b4d01d5b2011a96e4c4402639b2de038f092b6b2cb WHIRLPOOL e7c664c14e333fe9e857aba6a5c12475a7ca907223eeb8d2f7207bc1fbae5dbf928fa02292b8e066b9b69faa8a9662d713378eccfa885dd0b9e50d11371b7330 diff --git a/dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-as-needed.patch b/dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-as-needed.patch new file mode 100644 index 000000000000..d956ff0b0043 --- /dev/null +++ b/dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-as-needed.patch @@ -0,0 +1,156 @@ + +--- src/c/Makefile-linux-armel-32.make.old 2014-07-21 10:48:31.000000000 +0200 ++++ src/c/Makefile-linux-armel-32.make 2014-07-21 10:50:11.000000000 +0200 +@@ -33,14 +33,14 @@ + if test ! -d .deps; then mkdir .deps; fi + + wrapper: $(wrapper_SOURCE) +- $(COMPILE) -pthread $(wrapper_SOURCE) -lm -o $(BIN)/wrapper ++ $(COMPILE) $(CFLAGS) $(LDFLAGS) -pthread $(wrapper_SOURCE) -lm -o $(BIN)/wrapper + + libwrapper.so: $(libwrapper_so_OBJECTS) +- ${COMPILE} -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so ++ ${COMPILE} $(LDFLAGS) -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so + + %.o: %.c +- @echo '$(COMPILE) -c $<'; \ +- $(COMPILE) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< ++ @echo '$(COMPILE) $(CFLAGS) -c $<'; \ ++ $(COMPILE) $(CFLAGS) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ +--- src/c/Makefile-linux-armhf-32.make.old 2014-07-21 10:48:31.000000000 +0200 ++++ src/c/Makefile-linux-armhf-32.make 2014-07-21 10:51:05.000000000 +0200 +@@ -33,14 +33,14 @@ + if test ! -d .deps; then mkdir .deps; fi + + wrapper: $(wrapper_SOURCE) +- $(COMPILE) -pthread $(wrapper_SOURCE) -lm -o $(BIN)/wrapper ++ $(COMPILE) $(CFLAGS) $(LDFLAGS) -pthread $(wrapper_SOURCE) -lm -o $(BIN)/wrapper + + libwrapper.so: $(libwrapper_so_OBJECTS) +- ${COMPILE} -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so ++ ${COMPILE} $(LDFLAGS) -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so + + %.o: %.c +- @echo '$(COMPILE) -c $<'; \ +- $(COMPILE) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< ++ @echo '$(COMPILE) $(CFLAGS) -c $<'; \ ++ $(COMPILE) $(CFLAGS) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ +--- src/c/Makefile-linux-ia-64.make.old 2014-07-21 10:48:31.000000000 +0200 ++++ src/c/Makefile-linux-ia-64.make 2014-07-21 10:51:37.000000000 +0200 +@@ -33,14 +33,14 @@ + if test ! -d .deps; then mkdir .deps; fi + + wrapper: $(wrapper_SOURCE) +- $(COMPILE) -lm -pthread $(wrapper_SOURCE) -o $(BIN)/wrapper ++ $(COMPILE) $(CFLAGS) $(LDFLAGS) -lm -pthread $(wrapper_SOURCE) -o $(BIN)/wrapper + + libwrapper.so: $(libwrapper_so_OBJECTS) +- ${COMPILE} -lm -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so ++ ${COMPILE} $(LDFLAGS) -lm -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so + + %.o: %.c +- @echo '$(COMPILE) -c $<'; \ +- $(COMPILE) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< ++ @echo '$(COMPILE) $(CFLAGS) -c $<'; \ ++ $(COMPILE) $(CFLAGS) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ +--- src/c/Makefile-linux-ppc-32.make.old 2014-07-21 10:48:31.000000000 +0200 ++++ src/c/Makefile-linux-ppc-32.make 2014-07-21 10:52:05.000000000 +0200 +@@ -33,14 +33,14 @@ + if test ! -d .deps; then mkdir .deps; fi + + wrapper: $(wrapper_SOURCE) +- $(COMPILE) -lm -pthread $(wrapper_SOURCE) -o $(BIN)/wrapper ++ $(COMPILE) $(CFLAGS) $(LDFLAGS) -lm -pthread $(wrapper_SOURCE) -o $(BIN)/wrapper + + libwrapper.so: $(libwrapper_so_OBJECTS) +- ${COMPILE} -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so ++ ${COMPILE} $(LDFLAGS) -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so + + %.o: %.c +- @echo '$(COMPILE) -c $<'; \ +- $(COMPILE) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< ++ @echo '$(COMPILE) $(CFLAGS) -c $<'; \ ++ $(COMPILE) $(CFLAGS) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ +--- src/c/Makefile-linux-ppc-64.make.old 2014-07-21 10:48:31.000000000 +0200 ++++ src/c/Makefile-linux-ppc-64.make 2014-07-21 10:52:45.000000000 +0200 +@@ -33,14 +33,14 @@ + if test ! -d .deps; then mkdir .deps; fi + + wrapper: $(wrapper_SOURCE) +- $(COMPILE) -lm -pthread $(wrapper_SOURCE) -o $(BIN)/wrapper ++ $(COMPILE) $(CFLAGS) $(LDFLAGS) -lm -pthread $(wrapper_SOURCE) -o $(BIN)/wrapper + + libwrapper.so: $(libwrapper_so_OBJECTS) +- ${COMPILE} -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so ++ ${COMPILE} $(LDFLAGS) -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so + + %.o: %.c +- @echo '$(COMPILE) -c $<'; \ +- $(COMPILE) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< ++ @echo '$(COMPILE) $(CFLAGS) -c $<'; \ ++ $(COMPILE) $(CFLAGS) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ +--- src/c/Makefile-linux-x86-32.make.old 2014-07-21 10:48:31.000000000 +0200 ++++ src/c/Makefile-linux-x86-32.make 2014-07-21 10:53:39.000000000 +0200 +@@ -36,17 +36,17 @@ + if test ! -d .deps; then mkdir .deps; fi + + wrapper: $(wrapper_SOURCE) +- $(COMPILE) -pthread $(wrapper_SOURCE) -lm -o $(BIN)/wrapper ++ $(COMPILE) $(CFLAGS) $(LDFLAGS) -pthread $(wrapper_SOURCE) -lm -o $(BIN)/wrapper + + testsuite: $(testsuite_SOURCE) +- $(COMPILE) -DCUNIT $(testsuite_SOURCE) -lm -pthread -L/usr/local/lib -lncurses -lcunit -o $(TEST)/testsuite ++ $(COMPILE) $(CFLAGS) $(LDFLAGS) -DCUNIT $(testsuite_SOURCE) -lm -pthread -L/usr/local/lib -lncurses -lcunit -o $(TEST)/testsuite + + libwrapper.so: $(libwrapper_so_OBJECTS) +- ${COMPILE} -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so ++ ${COMPILE} $(LDFLAGS) -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so + + %.o: %.c +- @echo '$(COMPILE) -c $<'; \ +- $(COMPILE) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< ++ @echo '$(COMPILE) $(CFLAGS) -c $<'; \ ++ $(COMPILE) $(CFLAGS) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ +--- src/c/Makefile-linux-x86-64.make.old 2014-07-21 10:48:31.000000000 +0200 ++++ src/c/Makefile-linux-x86-64.make 2014-07-21 10:54:16.000000000 +0200 +@@ -36,17 +36,17 @@ + if test ! -d .deps; then mkdir .deps; fi + + wrapper: $(wrapper_SOURCE) +- $(COMPILE) -pthread $(wrapper_SOURCE) -lm -o $(BIN)/wrapper ++ $(COMPILE) $(CFLAGS) $(LDFLAGS) -pthread $(wrapper_SOURCE) -lm -o $(BIN)/wrapper + + testsuite: $(testsuite_SOURCE) +- $(COMPILE) -DCUNIT $(testsuite_SOURCE) -lm -pthread -L/usr/local/lib -lncurses -lcunit -o $(TEST)/testsuite ++ $(COMPILE) $(CFLAGS) $(LDFLAGS) -DCUNIT $(testsuite_SOURCE) -lm -pthread -L/usr/local/lib -lncurses -lcunit -o $(TEST)/testsuite + + libwrapper.so: $(libwrapper_so_OBJECTS) +- ${COMPILE} -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so ++ ${COMPILE} $(LDFLAGS) -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so + + %.o: %.c +- @echo '$(COMPILE) -c $<'; \ +- $(COMPILE) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< ++ @echo '$(COMPILE) $(CFLAGS) -c $<'; \ ++ $(COMPILE) $(CFLAGS) $(DEFS) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ diff --git a/dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-gentoo-wrapper-defaults.patch b/dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-gentoo-wrapper-defaults.patch new file mode 100644 index 000000000000..34e94bb77ed6 --- /dev/null +++ b/dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-gentoo-wrapper-defaults.patch @@ -0,0 +1,25 @@ +|Original version of this patch by Ralph Sennhauser +|Updated version for 3.5.25 by tomboy64 +| +|Added in 3.5.4, make false default for Gentoo +| +|* Add a new wrapper.java.command.resolve property to control whether or not the +| Wrapper tries to resolve any symbolic links in the Java command, specified +| with the wrapper.java.command property. Historically, it has always done so, +| but some jvm started applications like run-java-tool on Gentoo will fail if +| it is run directly as they have a check to make sure it is launched via a +| symbolic link. +| + +--- src/c/wrapper.c.old 2014-07-21 09:12:55.000000000 +0200 ++++ src/c/wrapper.c 2014-07-21 09:13:22.000000000 +0200 +@@ -4908,7 +4908,7 @@ + if (!path) { + log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN, TEXT("The configured wrapper.java.command could not be found, attempting to launch anyway: %s"), *para); + } else { +- replacePath = getBooleanProperty(properties, TEXT("wrapper.java.command.resolve"), TRUE); ++ replacePath = getBooleanProperty(properties, TEXT("wrapper.java.command.resolve"), FALSE); + if (replacePath == TRUE) { + free(*para); + *para = malloc((_tcslen(path) + 1) * sizeof(TCHAR)); + diff --git a/dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-testsuite.patch b/dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-testsuite.patch new file mode 100644 index 000000000000..d279cdf0f4ea --- /dev/null +++ b/dev-java/java-service-wrapper/files/java-service-wrapper-3.5.25-testsuite.patch @@ -0,0 +1,12 @@ +diff -u -r wrapper_3.5.25_src.orig/src/c/Makefile-linux-x86-64.make wrapper_3.5.25_src/src/c/Makefile-linux-x86-64.make +--- wrapper_3.5.25_src.orig/src/c/Makefile-linux-x86-64.make 2014-09-06 00:06:05.730644375 +0200 ++++ wrapper_3.5.25_src/src/c/Makefile-linux-x86-64.make 2014-09-06 00:06:51.130013387 +0200 +@@ -23,7 +23,7 @@ + LIB = ../../lib + TEST = ../../test + +-all: init wrapper libwrapper.so testsuite ++all: init wrapper libwrapper.so + + clean: + rm -f *.o diff --git a/dev-java/java-service-wrapper/java-service-wrapper-3.5.25-r1.ebuild b/dev-java/java-service-wrapper/java-service-wrapper-3.5.25-r1.ebuild new file mode 100644 index 000000000000..bb42be142af4 --- /dev/null +++ b/dev-java/java-service-wrapper/java-service-wrapper-3.5.25-r1.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +WANT_ANT_TASKS="ant-nodeps" +JAVA_PKG_IUSE="doc source test" + +inherit eutils java-pkg-2 java-ant-2 + +MY_PN="wrapper" +MY_P="${MY_PN}_${PV}_src" +DESCRIPTION="A wrapper that makes it possible to install a Java Application as daemon" +HOMEPAGE="http://wrapper.tanukisoftware.org/" +SRC_URI="http://${MY_PN}.tanukisoftware.org/download/${PV}/${MY_P}.tar.gz" + +LICENSE="tanuki-community" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +RDEPEND=" + >=virtual/jre-1.4" +DEPEND=" + >=virtual/jdk-1.4 + test? ( + dev-java/ant-junit + )" + +S="${WORKDIR}/${MY_P}" + +JAVA_ANT_REWRITE_CLASSPATH="true" + +PATCHES=( + "${FILESDIR}"/${P}-as-needed.patch + "${FILESDIR}"/${P}-gentoo-wrapper-defaults.patch + "${FILESDIR}"/${P}-testsuite.patch +) + +java_prepare() { + epatch "${PATCHES[@]}" + + cp "${S}/src/c/Makefile-linux-armel-32.make" "${S}/src/c/Makefile-linux-arm-32.make" +} + +src_compile() { + tc-export CC + BITS="32" + use amd64 && BITS="64" + eant -Dbits=${BITS} jar compile-c + if use doc; then + ejavadoc -d api -sourcepath src/java/ -subpackages org \ + || die "javadoc failed" + fi +} + +src_test() { + ANT_TASKS="ant-junit ant-nodeps" eant -Dbits="${BITS}" test +} + +src_install() { + java-pkg_dojar lib/wrapper.jar + java-pkg_doso lib/libwrapper.so + + dobin bin/wrapper + dodoc README*.txt || die + dodoc doc/revisions.txt || die + + use doc && java-pkg_dojavadoc api + use source && java-pkg_dosrc src/java/* +} diff --git a/dev-java/java-service-wrapper/metadata.xml b/dev-java/java-service-wrapper/metadata.xml new file mode 100644 index 000000000000..b273b002325c --- /dev/null +++ b/dev-java/java-service-wrapper/metadata.xml @@ -0,0 +1,20 @@ + + + + + java@gentoo.org + Java + + + The Java Service Wrapper is an application which has evolved out of a desire + to solve a number of problems common to many Java applications: + + * Run as a Windows Service or Unix Daemon + * Application Reliability + * Standard, Out of the Box Scripting + * On Demand Restarts + * Flexible Configuration + * Ease Application Installations + * Logging + + -- cgit v1.2.3