[master] 25c33dbc4 vmodtool: New --noinst option for vmod_debug

Nils Goroll nils.goroll at uplex.de
Mon Mar 24 14:33:07 UTC 2025


commit 25c33dbc4aa5ce7c8de14bdf37367d64f2db0bfa
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Fri Mar 21 14:20:10 2025 +0100

    vmodtool: New --noinst option for vmod_debug
    
    The problem with vmod_debug is that we don't want to distribute it, but
    the automake boilerplate unilaterally adds all VMODs to $(vmoddir). This
    results in the installation of libvmod_debug.so but not vmod_debug.vcc
    and the responsibility of not redistributing libvmod_debug.so to our
    downstream maintainers.
    
    A new --noinst option cuts down the amount of circumventions we have for
    vmod_debug and ensures that vmod_debug does not accidentally land in
    packages.

diff --git a/lib/libvcc/vmodtool.py b/lib/libvcc/vmodtool.py
index 308e53dae..12fde6947 100755
--- a/lib/libvcc/vmodtool.py
+++ b/lib/libvcc/vmodtool.py
@@ -52,11 +52,8 @@ import time
 AMBOILERPLATE = '''\
 ## Generated by vmodtool.py --boilerplate.
 
-vmod_XXX_vcc ?= $(srcdir)/VCC
-
-vmod_vcc_files += $(vmod_XXX_vcc)
-
-vmod_LTLIBRARIES += libvmod_XXX.la
+LIBDIR_LTLIBRARIES += libvmod_XXX.la
+dist_VCCDIR_DATA += $(srcdir)/VCC
 
 libvmod_XXX_la_SOURCES = \\
 \tSRC
@@ -1089,7 +1086,14 @@ class vcc():
         src.sort()
         fn = "automake_boilerplate_" + self.modname + ".am"
         fo = self.openfile(fn)
+        libdir = "vmod"
+        vccdir = "vcc"
+        if opts.noinst:
+            libdir = "noinst"
+            vccdir = "noinst"
         fo.write(AMBOILERPLATE.replace("XXX", self.modname)
+                 .replace("LIBDIR", libdir)
+                 .replace("VCCDIR", vccdir)
                  .replace("VCC", vcc)
                  .replace("PFX", self.pfx)
                  .replace("SRC", " \\\n\t".join(src)))
@@ -1341,6 +1345,9 @@ if __name__ == "__main__":
                        help="Create automake_boilerplate.am")
     oparser.add_option('-N', '--strict', action='store_true', default=False,
                        help="Be strict when parsing the input file")
+    oparser.add_option('-n', '--noinst', action='store_true',
+                       default=False,
+                       help="Do not install files in automake_boilerplate.am")
     oparser.add_option('-o', '--output', metavar="prefix", default='vcc_if',
                        help='Output file prefix (default: "vcc_if")')
     oparser.add_option('-w', '--rstdir', metavar="directory", default='.',
diff --git a/vmod/Makefile.am b/vmod/Makefile.am
index 0449eaf4b..7608c0b50 100644
--- a/vmod/Makefile.am
+++ b/vmod/Makefile.am
@@ -24,10 +24,9 @@ vccdir=$(datarootdir)/$(PACKAGE)/vcc
 
 # Prepare variables populated by includes
 vmod_LTLIBRARIES =
-vmod_vcc_files =
-
-# Prevent vmod_debug.vcc installation upfront
-vmod_debug_vcc =
+noinst_LTLIBRARIES =
+dist_vcc_DATA =
+dist_noinst_DATA =
 
 include $(srcdir)/automake_boilerplate_blob.am
 include $(srcdir)/automake_boilerplate_h2.am
@@ -54,9 +53,5 @@ BUILT_SOURCES = $(VSC_GEN)
 # Allow Vmod_wrong*_Data to be exported
 vmod_debug_symbols_regex = 'Vmod_.*_Data'
 
-# not --strict
-vmodtoolargs_debug = --boilerplate -o vcc_debug_if
-
-dist_noinst_DATA = $(srcdir)/vmod_debug.vcc
-
-dist_vcc_DATA = $(vmod_vcc_files)
+# not --strict, not installed
+vmodtoolargs_debug = --boilerplate --noinst -o vcc_debug_if
diff --git a/vmod/automake_boilerplate_blob.am b/vmod/automake_boilerplate_blob.am
index 1d732af00..173fffa30 100644
--- a/vmod/automake_boilerplate_blob.am
+++ b/vmod/automake_boilerplate_blob.am
@@ -1,10 +1,7 @@
 ## Generated by vmodtool.py --boilerplate.
 
-vmod_blob_vcc ?= $(srcdir)/vmod_blob.vcc
-
-vmod_vcc_files += $(vmod_blob_vcc)
-
 vmod_LTLIBRARIES += libvmod_blob.la
+dist_vcc_DATA += $(srcdir)/vmod_blob.vcc
 
 libvmod_blob_la_SOURCES = \
 	vmod_blob.c \
diff --git a/vmod/automake_boilerplate_cookie.am b/vmod/automake_boilerplate_cookie.am
index 156bb4a72..bb0c4d9c6 100644
--- a/vmod/automake_boilerplate_cookie.am
+++ b/vmod/automake_boilerplate_cookie.am
@@ -1,10 +1,7 @@
 ## Generated by vmodtool.py --boilerplate.
 
-vmod_cookie_vcc ?= $(srcdir)/vmod_cookie.vcc
-
-vmod_vcc_files += $(vmod_cookie_vcc)
-
 vmod_LTLIBRARIES += libvmod_cookie.la
+dist_vcc_DATA += $(srcdir)/vmod_cookie.vcc
 
 libvmod_cookie_la_SOURCES = \
 	vmod_cookie.c
diff --git a/vmod/automake_boilerplate_debug.am b/vmod/automake_boilerplate_debug.am
index 0021d59e7..441d13ad5 100644
--- a/vmod/automake_boilerplate_debug.am
+++ b/vmod/automake_boilerplate_debug.am
@@ -1,10 +1,7 @@
 ## Generated by vmodtool.py --boilerplate.
 
-vmod_debug_vcc ?= $(srcdir)/vmod_debug.vcc
-
-vmod_vcc_files += $(vmod_debug_vcc)
-
-vmod_LTLIBRARIES += libvmod_debug.la
+noinst_LTLIBRARIES += libvmod_debug.la
+dist_noinst_DATA += $(srcdir)/vmod_debug.vcc
 
 libvmod_debug_la_SOURCES = \
 	vmod_debug.c \
diff --git a/vmod/automake_boilerplate_directors.am b/vmod/automake_boilerplate_directors.am
index a2e5a6ce4..e65d3886f 100644
--- a/vmod/automake_boilerplate_directors.am
+++ b/vmod/automake_boilerplate_directors.am
@@ -1,10 +1,7 @@
 ## Generated by vmodtool.py --boilerplate.
 
-vmod_directors_vcc ?= $(srcdir)/vmod_directors.vcc
-
-vmod_vcc_files += $(vmod_directors_vcc)
-
 vmod_LTLIBRARIES += libvmod_directors.la
+dist_vcc_DATA += $(srcdir)/vmod_directors.vcc
 
 libvmod_directors_la_SOURCES = \
 	vmod_directors.c \
diff --git a/vmod/automake_boilerplate_h2.am b/vmod/automake_boilerplate_h2.am
index 30fa5e2b9..66b62e794 100644
--- a/vmod/automake_boilerplate_h2.am
+++ b/vmod/automake_boilerplate_h2.am
@@ -1,10 +1,7 @@
 ## Generated by vmodtool.py --boilerplate.
 
-vmod_h2_vcc ?= $(srcdir)/vmod_h2.vcc
-
-vmod_vcc_files += $(vmod_h2_vcc)
-
 vmod_LTLIBRARIES += libvmod_h2.la
+dist_vcc_DATA += $(srcdir)/vmod_h2.vcc
 
 libvmod_h2_la_SOURCES = \
 	vmod_h2.c
diff --git a/vmod/automake_boilerplate_proxy.am b/vmod/automake_boilerplate_proxy.am
index 480d82b83..181b3d3b5 100644
--- a/vmod/automake_boilerplate_proxy.am
+++ b/vmod/automake_boilerplate_proxy.am
@@ -1,10 +1,7 @@
 ## Generated by vmodtool.py --boilerplate.
 
-vmod_proxy_vcc ?= $(srcdir)/vmod_proxy.vcc
-
-vmod_vcc_files += $(vmod_proxy_vcc)
-
 vmod_LTLIBRARIES += libvmod_proxy.la
+dist_vcc_DATA += $(srcdir)/vmod_proxy.vcc
 
 libvmod_proxy_la_SOURCES = \
 	vmod_proxy.c
diff --git a/vmod/automake_boilerplate_purge.am b/vmod/automake_boilerplate_purge.am
index 00656497e..fc7813ad3 100644
--- a/vmod/automake_boilerplate_purge.am
+++ b/vmod/automake_boilerplate_purge.am
@@ -1,10 +1,7 @@
 ## Generated by vmodtool.py --boilerplate.
 
-vmod_purge_vcc ?= $(srcdir)/vmod_purge.vcc
-
-vmod_vcc_files += $(vmod_purge_vcc)
-
 vmod_LTLIBRARIES += libvmod_purge.la
+dist_vcc_DATA += $(srcdir)/vmod_purge.vcc
 
 libvmod_purge_la_SOURCES = \
 	vmod_purge.c
diff --git a/vmod/automake_boilerplate_std.am b/vmod/automake_boilerplate_std.am
index 738e97d9b..3933bf0f7 100644
--- a/vmod/automake_boilerplate_std.am
+++ b/vmod/automake_boilerplate_std.am
@@ -1,10 +1,7 @@
 ## Generated by vmodtool.py --boilerplate.
 
-vmod_std_vcc ?= $(srcdir)/vmod_std.vcc
-
-vmod_vcc_files += $(vmod_std_vcc)
-
 vmod_LTLIBRARIES += libvmod_std.la
+dist_vcc_DATA += $(srcdir)/vmod_std.vcc
 
 libvmod_std_la_SOURCES = \
 	vmod_std.c \
diff --git a/vmod/automake_boilerplate_unix.am b/vmod/automake_boilerplate_unix.am
index ab5e982f7..b65c724c2 100644
--- a/vmod/automake_boilerplate_unix.am
+++ b/vmod/automake_boilerplate_unix.am
@@ -1,10 +1,7 @@
 ## Generated by vmodtool.py --boilerplate.
 
-vmod_unix_vcc ?= $(srcdir)/vmod_unix.vcc
-
-vmod_vcc_files += $(vmod_unix_vcc)
-
 vmod_LTLIBRARIES += libvmod_unix.la
+dist_vcc_DATA += $(srcdir)/vmod_unix.vcc
 
 libvmod_unix_la_SOURCES = \
 	vmod_unix.c \
diff --git a/vmod/automake_boilerplate_vtc.am b/vmod/automake_boilerplate_vtc.am
index 0a2bd1228..7b7b401c8 100644
--- a/vmod/automake_boilerplate_vtc.am
+++ b/vmod/automake_boilerplate_vtc.am
@@ -1,10 +1,7 @@
 ## Generated by vmodtool.py --boilerplate.
 
-vmod_vtc_vcc ?= $(srcdir)/vmod_vtc.vcc
-
-vmod_vcc_files += $(vmod_vtc_vcc)
-
 vmod_LTLIBRARIES += libvmod_vtc.la
+dist_vcc_DATA += $(srcdir)/vmod_vtc.vcc
 
 libvmod_vtc_la_SOURCES = \
 	vmod_vtc.c


More information about the varnish-commit mailing list