Here is another patch proposal to make syntax check handle parameters required to compile the VCL (vcl_dir, etc.) without creating a startup variable for each parameter.
It just adds a COMPILE_OPTS that is merged in DAEMON_OPTS to start Varnish but is used alone in the syntax check. Gauthier >From d1567a956d53a489aa4ace66ce0b1c1ef745570b Mon Sep 17 00:00:00 2001 From: Gauthier Delacroix <[email protected]> Date: Thu, 25 Jun 2015 15:06:08 +0200 Subject: [PATCH] Add COMPILE_OPTS in startup scripts to make syntax check check handle compilation parameters --- redhat/varnish.initrc | 6 ++++-- redhat/varnish.params | 8 ++++++++ redhat/varnish.service | 3 ++- redhat/varnish.sysconfig | 11 ++++++++++- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/redhat/varnish.initrc b/redhat/varnish.initrc index 117e334..0bde074 100755 --- a/redhat/varnish.initrc +++ b/redhat/varnish.initrc @@ -126,9 +126,11 @@ rh_status_q() { configtest() { if [ -f "$VARNISH_VCL_CONF" ]; then - $exec -f "$VARNISH_VCL_CONF" -C -n /tmp > /dev/null && echo "Syntax ok" + $exec -f "$VARNISH_VCL_CONF" -C -n /tmp $COMPILE_OPTS > /dev/null \ + && echo "Syntax ok" else - echo "VARNISH_VCL_CONF is unset or does not point to a file" + echo "VARNISH_VCL_CONF is unset or does not point to a file" + echo "Also check that COMPILE_OPTS is set depending on the VCL config" fi } diff --git a/redhat/varnish.params b/redhat/varnish.params index 27a14dd..970d088 100644 --- a/redhat/varnish.params +++ b/redhat/varnish.params @@ -31,5 +31,13 @@ VARNISH_TTL=120 VARNISH_USER=varnish VARNISH_GROUP=varnish +# Startup options required to compile the configuration. +# The following run-time parameters must be defined here, if needed: +# cc_command, group_cc, vcc_allow_inline_c, vcc_err_unref, vcc_unsafe_path, +# vcl_dir, vmod_dir +# Defining them in DAEMON_OPTS may result in a syntax check failure. +# See the man page varnishd(1). +#COMPILE_OPTS="-p vcl_dir=/etc/varnish -p vcc_err_unref=on" + # Other options, see the man page varnishd(1) #DAEMON_OPTS="-p thread_pool_min=5 -p thread_pool_max=500 -p thread_pool_timeout=300" diff --git a/redhat/varnish.service b/redhat/varnish.service index a4f3355..a08db58 100644 --- a/redhat/varnish.service +++ b/redhat/varnish.service @@ -27,7 +27,7 @@ EnvironmentFile=/etc/varnish/varnish.params Type=forking PIDFile=/var/run/varnish.pid PrivateTmp=true -ExecStartPre=/usr/sbin/varnishd -C -f $VARNISH_VCL_CONF +ExecStartPre=/usr/sbin/varnishd -C -f $VARNISH_VCL_CONF $COMPILE_OPTS ExecStart=/usr/sbin/varnishd \ -P /var/run/varnish.pid \ -f $VARNISH_VCL_CONF \ @@ -38,6 +38,7 @@ ExecStart=/usr/sbin/varnishd \ -g $VARNISH_GROUP \ -S $VARNISH_SECRET_FILE \ -s $VARNISH_STORAGE \ + $COMPILE_OPTS \ $DAEMON_OPTS ExecReload=/usr/sbin/varnish_reload_vcl diff --git a/redhat/varnish.sysconfig b/redhat/varnish.sysconfig index 6aa2354..0e376ff 100644 --- a/redhat/varnish.sysconfig +++ b/redhat/varnish.sysconfig @@ -91,6 +91,14 @@ VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}" # # Default TTL used when the backend does not specify one VARNISH_TTL=120 # +# Startup options required to compile the configuration. +# The following run-time parameters must be defined here, if needed: +# cc_command, group_cc, vcc_allow_inline_c, vcc_err_unref, vcc_unsafe_path, +# vcl_dir, vmod_dir +# Defining them in DAEMON_OPTS may result in a syntax check failure. +# See the man page varnishd(1). +#COMPILE_OPTS="-p vcl_dir=/etc/varnish -p vcc_err_unref=on" +# # # DAEMON_OPTS is used by the init script. If you add or remove options, make # # sure you update this section, too. DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \ @@ -102,7 +110,8 @@ DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \ -p thread_pool_timeout=${VARNISH_THREAD_TIMEOUT} \ -u varnish -g varnish \ -S ${VARNISH_SECRET_FILE} \ - -s ${VARNISH_STORAGE}" + -s ${VARNISH_STORAGE}" \ + ${COMPILE_OPTS} # -- 1.8.3.msysgit.0 _______________________________________________ varnish-dev mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev
