From f8407b5f7bcee62fb4ae02bdc06420ea9863f868 Mon Sep 17 00:00:00 2001 From: gary-wzl77 Date: Sat, 25 Feb 2017 15:02:47 +0800 Subject: [PATCH] Enable tinyproxy packaging as a snap. This PR enable tinyproxy to package as a snap. Also added conditional for snap packaging by testing "--enable-snap". The reason here for '--enable-snap' is that all services run as root thanks to confinement in snap world and regarding system call(setuid, setgid) will trigger apparmor "DENIED" error when running tinyproxy snap in confined mode. Please refer to syslog here http://paste.ubuntu.com/24063282/. --- README.md | 32 ++ configure.ac | 10 + snap/setup/gui/icon.png | Bin 0 -> 16238 bytes snap/snapcraft.yaml | 50 +++ .../tinyproxy/conf/tinyproxy.conf.template | 330 ++++++++++++++++++ snap/src/tinyproxy/script/run-tinyproxy | 17 + snap/src/tinyproxy/script/settings | 24 ++ src/main.c | 2 + 8 files changed, 465 insertions(+) create mode 100755 snap/setup/gui/icon.png create mode 100644 snap/snapcraft.yaml create mode 100644 snap/src/tinyproxy/conf/tinyproxy.conf.template create mode 100755 snap/src/tinyproxy/script/run-tinyproxy create mode 100755 snap/src/tinyproxy/script/settings diff --git a/README.md b/README.md index 2cb8d59..ba22c6e 100644 --- a/README.md +++ b/README.md @@ -65,9 +65,41 @@ Enable reverse proxying. - `--with-stathost=HOST`: Set the default name of the stats host. +- `--enable-snap`: +Enable snap packaging and running tinyproxy in snap world. + For more information about the build system, read the INSTALL file that is generated by `autogen.sh` and comes with the release tar ball. +## Snap + +If you would like to build tinyproxy as a snap package, please make sure +you have snapd and snapcraft packages installed firstly. + +``` +sudo apt-get install snapd snapcraft +sudo snap install core +``` + +Then run the following command to create a snap package. + +``` +cd snap && snapcraft +``` + +After it's done, you can simply run the following command to install it +locally. + +``` +sudo snap install --dangerous tinyproxy-snap_[VER]_[ARCH].snap +``` + +Also you can install tinyproxy from the store by running the following +command. + +``` +sudo snap install tinyproxy +``` ## Support diff --git a/configure.ac b/configure.ac index 3990c2f..4248160 100644 --- a/configure.ac +++ b/configure.ac @@ -131,6 +131,16 @@ if test x"$transparent_enabled" = x"yes"; then AC_DEFINE(TRANSPARENT_PROXY) fi +dnl Include support for packaging and running tinyproxy in snap world. +AH_TEMPLATE([SNAP_SUPPORT], + [Include support for snap package.]) +TP_ARG_ENABLE(snap, + [Enable snap packaging (default is NO)], + no) +if test x"$snap_enabled" = x"yes"; then + AC_DEFINE(SNAP_SUPPORT) +fi + # This is required to build test programs below AC_PROG_CC diff --git a/snap/setup/gui/icon.png b/snap/setup/gui/icon.png new file mode 100755 index 0000000000000000000000000000000000000000..ce87640184a4d74b4e8e4c2b2ea626ba31b98940 GIT binary patch literal 16238 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 ${SNAP_DATA}/etc/tinyproxy.conf.ori && sed -e "s|\${SNAP}|$SNAP|" ${SNAP_DATA}/etc/tinyproxy.conf.ori > ${SNAP_DATA}/etc/tinyproxy.conf + +#waiting custom_config file is generated. +#That's sth hooks feature neeeds. +while [ ! -f "$SNAP_DATA/custom_config" ]; do + sleep 1 + echo "waiting for custom config file generated." +done + +source ${SNAP}/bin/settings + +tinyproxy -d -c ${SNAP_DATA}/etc/tinyproxy.conf diff --git a/snap/src/tinyproxy/script/settings b/snap/src/tinyproxy/script/settings new file mode 100755 index 0000000..9f0b93b --- /dev/null +++ b/snap/src/tinyproxy/script/settings @@ -0,0 +1,24 @@ +#!/bin/bash + +source $SNAP_DATA/custom_config + +tinyproxy_conf="${SNAP_DATA}/etc/tinyproxy.conf" + +params=("Port" "MaxClients" "StartServers") +line_number=(23 176 192) +length=${#params[@]} + +#sed -i in-place option is not available by default on some other distro. +modify() { + sed -u "$1" "$2" > "$2".bak && mv "$2".bak "$2" +} + +for ((i = 0; i < $length; i++)) +do + if [ ! -z "${!params[i]}" ]; then + echo "customized config: ${params[i]}=${!params[i]}" + modify "${line_number[i]}d" $tinyproxy_conf + #space sensitive + modify "${line_number[i]}i${params[i]} ${!params[i]}" $tinyproxy_conf + fi +done diff --git a/src/main.c b/src/main.c index ae2a3a8..7f81f3e 100644 --- a/src/main.c +++ b/src/main.c @@ -436,12 +436,14 @@ main (int argc, char **argv) exit (EX_OSERR); } +#ifndef SNAP_SUPPORT /* Switch to a different user if we're running as root */ if (geteuid () == 0) change_user (argv[0]); else log_message (LOG_WARNING, "Not running as root, so not changing UID/GID."); +#endif /* Create log file after we drop privileges */ if (setup_logging ()) {