<div dir="ltr">Hi,<br><br>My first inclination is to ensure that the ExecStartPre line uses the same parameters as ExecStart.<br><br>So my questions is how do you set vcl_dir? Do you edit varnish.service or varnish.params?<br><br>Wouldn't adding DAEMON_OPTS to ExecStartPre (and configtest) do it?<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 25, 2015 at 3:26 PM, Delacroix, Gauthier <span dir="ltr"><<a href="mailto:Gauthier.Delacroix@coreye.fr" target="_blank">Gauthier.Delacroix@coreye.fr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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.<br>
<br>
It just adds a COMPILE_OPTS that is merged in DAEMON_OPTS to start Varnish but is used alone in the syntax check.<br>
<br>
Gauthier<br>
<br>
>From d1567a956d53a489aa4ace66ce0b1c1ef745570b Mon Sep 17 00:00:00 2001<br>
From: Gauthier Delacroix <<a href="mailto:gauthier.delacroix@coreye.fr">gauthier.delacroix@coreye.fr</a>><br>
Date: Thu, 25 Jun 2015 15:06:08 +0200<br>
Subject: [PATCH] Add COMPILE_OPTS in startup scripts to make syntax check<br>
 check handle compilation parameters<br>
<br>
---<br>
 redhat/varnish.initrc    |  6 ++++--<br>
 redhat/varnish.params    |  8 ++++++++<br>
 redhat/varnish.service   |  3 ++-<br>
 redhat/varnish.sysconfig | 11 ++++++++++-<br>
 4 files changed, 24 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/redhat/varnish.initrc b/redhat/varnish.initrc<br>
index 117e334..0bde074 100755<br>
--- a/redhat/varnish.initrc<br>
+++ b/redhat/varnish.initrc<br>
@@ -126,9 +126,11 @@ rh_status_q() {<br>
<br>
 configtest() {<br>
<span class="">     if [ -f "$VARNISH_VCL_CONF" ]; then<br>
-        $exec -f "$VARNISH_VCL_CONF" -C -n /tmp > /dev/null && echo "Syntax ok"<br>
</span>+        $exec -f "$VARNISH_VCL_CONF" -C -n /tmp $COMPILE_OPTS > /dev/null \<br>
<span class="">+          && echo "Syntax ok"<br>
     else<br>
-       echo "VARNISH_VCL_CONF is  unset or does not point to a file"<br>
+       echo "VARNISH_VCL_CONF is unset or does not point to a file"<br>
</span>+       echo "Also check that COMPILE_OPTS is set depending on the VCL config"<br>
<span class="">     fi<br>
 }<br>
<br>
diff --git a/redhat/varnish.params b/redhat/varnish.params<br>
</span>index 27a14dd..970d088 100644<br>
--- a/redhat/varnish.params<br>
+++ b/redhat/varnish.params<br>
@@ -31,5 +31,13 @@ VARNISH_TTL=120<br>
 VARNISH_USER=varnish<br>
 VARNISH_GROUP=varnish<br>
<br>
+# Startup options required to compile the configuration.<br>
+# The following run-time parameters must be defined here, if needed:<br>
+# cc_command, group_cc, vcc_allow_inline_c, vcc_err_unref, vcc_unsafe_path,<br>
+# vcl_dir, vmod_dir<br>
+# Defining them in DAEMON_OPTS may result in a syntax check failure.<br>
+# See the man page varnishd(1).<br>
+#COMPILE_OPTS="-p vcl_dir=/etc/varnish -p vcc_err_unref=on"<br>
+<br>
 # Other options, see the man page varnishd(1)<br>
 #DAEMON_OPTS="-p thread_pool_min=5 -p thread_pool_max=500 -p thread_pool_timeout=300"<br>
diff --git a/redhat/varnish.service b/redhat/varnish.service<br>
index a4f3355..a08db58 100644<br>
--- a/redhat/varnish.service<br>
+++ b/redhat/varnish.service<br>
@@ -27,7 +27,7 @@ EnvironmentFile=/etc/varnish/varnish.params<br>
<span class=""> Type=forking<br>
 PIDFile=/var/run/varnish.pid<br>
 PrivateTmp=true<br>
-ExecStartPre=/usr/sbin/varnishd -C -f $VARNISH_VCL_CONF<br>
</span>+ExecStartPre=/usr/sbin/varnishd -C -f $VARNISH_VCL_CONF $COMPILE_OPTS<br>
 ExecStart=/usr/sbin/varnishd \<br>
        -P /var/run/varnish.pid \<br>
        -f $VARNISH_VCL_CONF \<br>
@@ -38,6 +38,7 @@ ExecStart=/usr/sbin/varnishd \<br>
<span class="">        -g $VARNISH_GROUP \<br>
        -S $VARNISH_SECRET_FILE \<br>
        -s $VARNISH_STORAGE \<br>
</span>+       $COMPILE_OPTS \<br>
<span class="">        $DAEMON_OPTS<br>
<br>
 ExecReload=/usr/sbin/varnish_reload_vcl<br>
diff --git a/redhat/varnish.sysconfig b/redhat/varnish.sysconfig<br>
</span>index 6aa2354..0e376ff 100644<br>
--- a/redhat/varnish.sysconfig<br>
+++ b/redhat/varnish.sysconfig<br>
@@ -91,6 +91,14 @@ VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"<br>
 # # Default TTL used when the backend does not specify one<br>
 VARNISH_TTL=120<br>
 #<br>
+# Startup options required to compile the configuration.<br>
+# The following run-time parameters must be defined here, if needed:<br>
+# cc_command, group_cc, vcc_allow_inline_c, vcc_err_unref, vcc_unsafe_path,<br>
+# vcl_dir, vmod_dir<br>
+# Defining them in DAEMON_OPTS may result in a syntax check failure.<br>
+# See the man page varnishd(1).<br>
+#COMPILE_OPTS="-p vcl_dir=/etc/varnish -p vcc_err_unref=on"<br>
+#<br>
<span class=""> # # DAEMON_OPTS is used by the init script.  If you add or remove options, make<br>
 # # sure you update this section, too.<br>
 DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \<br>
</span>@@ -102,7 +110,8 @@ DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \<br>
<span class="">              -p thread_pool_timeout=${VARNISH_THREAD_TIMEOUT} \<br>
              -u varnish -g varnish \<br>
              -S ${VARNISH_SECRET_FILE} \<br>
-             -s ${VARNISH_STORAGE}"<br>
+             -s ${VARNISH_STORAGE}" \<br>
</span>+             ${COMPILE_OPTS}<br>
 #<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
1.8.3.msysgit.0<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
_______________________________________________<br>
varnish-dev mailing list<br>
<a href="mailto:varnish-dev@varnish-cache.org">varnish-dev@varnish-cache.org</a><br>
<a href="https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev" rel="noreferrer" target="_blank">https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev</a><br>
</div></div></blockquote></div><br></div>