summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.dir-locals.el4
-rw-r--r--Makefile39
-rw-r--r--meson.build28
-rw-r--r--meson_options.txt1
-rw-r--r--skel/contexts/customizable_types (renamed from gentoo/contexts/customizable_types)0
-rw-r--r--skel/contexts/dbus_contexts (renamed from gentoo/contexts/dbus_contexts)0
-rw-r--r--skel/contexts/default_context (renamed from gentoo/contexts/default_context)0
-rw-r--r--skel/contexts/default_type (renamed from gentoo/contexts/default_type)0
-rw-r--r--skel/contexts/failsafe_context (renamed from gentoo/contexts/failsafe_context)0
-rw-r--r--skel/contexts/files/file_contexts.subs_dist (renamed from gentoo/contexts/files/file_contexts.subs_dist)0
-rw-r--r--skel/contexts/files/media (renamed from gentoo/contexts/files/media)0
-rw-r--r--skel/contexts/removable_context (renamed from gentoo/contexts/removable_context)0
-rw-r--r--skel/seusers (renamed from gentoo/seusers)0
-rw-r--r--src/anoninode/meson.build8
-rw-r--r--src/dev/meson.build5
-rw-r--r--src/dev/nodedev/meson.build65
-rw-r--r--src/dev/stordev/meson.build17
-rw-r--r--src/dev/termdev/meson.build4
-rw-r--r--src/dev/termdev/ptytermdev/loginptytermdev/meson.build2
-rw-r--r--src/dev/termdev/ptytermdev/meson.build3
-rw-r--r--src/dev/termdev/serialtermdev/loginserialtermdev/meson.build2
-rw-r--r--src/dev/termdev/serialtermdev/meson.build12
-rw-r--r--src/file/datafile/meson.build2
-rw-r--r--src/file/homefile/meson.build3
-rw-r--r--src/file/homefile/user/meson.build2
-rw-r--r--src/file/hugetlbfsfile/meson.build2
-rw-r--r--src/file/meson.build27
-rw-r--r--src/file/misc/meson.build7
-rw-r--r--src/file/mqueuefsfile/meson.build2
-rw-r--r--src/file/runfile/meson.build2
-rw-r--r--src/file/tmpfile/meson.build2
-rw-r--r--src/file/tmpfsfile/meson.build2
-rw-r--r--src/file/varfile/meson.build9
-rw-r--r--src/file/varfile/spoolfile/meson.build2
-rw-r--r--src/fs/meson.build4
-rw-r--r--src/fs/noseclabelfs/meson.build28
-rw-r--r--src/fs/seclabelfs/meson.build19
-rw-r--r--src/meson.build22
-rw-r--r--src/misc/av/meson.build17
-rw-r--r--src/misc/constrain/meson.build2
-rw-r--r--src/misc/meson.build16
-rw-r--r--src/misc/xperm/meson.build2
-rw-r--r--src/net/ibnet/meson.build2
-rw-r--r--src/net/meson.build12
-rw-r--r--src/net/portnet/meson.build6
-rw-r--r--src/selinux/booleanfile/meson.build6
-rw-r--r--src/selinux/meson.build3
-rw-r--r--src/sys/meson.build13
-rw-r--r--src/sys/procfile/meson.build73
-rw-r--r--src/sys/procfile/sysctlfile/kernelsysctlfile/meson.build21
-rw-r--r--src/sys/procfile/sysctlfile/meson.build16
-rw-r--r--src/sys/procfile/sysctlfile/netsysctlfile/meson.build9
-rw-r--r--src/sys/procfile/sysctlfile/vmsysctlfile/meson.build2
-rw-r--r--src/sys/sysfile/classsysfile/meson.build2
-rw-r--r--src/sys/sysfile/devicessysfile/meson.build7
-rw-r--r--src/sys/sysfile/fssysfile/meson.build9
-rw-r--r--src/sys/sysfile/kernelsysfile/meson.build2
-rw-r--r--src/sys/sysfile/meson.build18
58 files changed, 524 insertions, 39 deletions
diff --git a/.dir-locals.el b/.dir-locals.el
new file mode 100644
index 0000000..e3b41f8
--- /dev/null
+++ b/.dir-locals.el
@@ -0,0 +1,4 @@
+((meson-mode
+ . ((fmt-executable . "meson")
+ (fmt-args . ("format" "-"))
+ (eval . (add-hook 'before-save-hook 'fmt-current-buffer nil t)))))
diff --git a/Makefile b/Makefile
deleted file mode 100644
index d6dfb65..0000000
--- a/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (C) 2025 John Turner
-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-MODULES = $(shell find src -type f -name '*.cil' -print0 | sort -z | xargs -r0)
-POLVERS = 34
-SELINUXTYPE = dssp5
-
-.PHONY: all clean policy install
-
-all: policy install
-
-policy: policy.$(POLVERS)
-policy.%: $(MODULES)
- secilc -vvv -OM true --policyvers=$* $^
-
-install:
- install -d $(PREFIX)/$(DESTDIR)/etc/selinux/$(SELINUXTYPE)/contexts/files
- install -d $(PREFIX)/$(DESTDIR)/etc/selinux/$(SELINUXTYPE)/contexts/users
- install -d $(PREFIX)/$(DESTDIR)/etc/selinux/$(SELINUXTYPE)/logins
- install -d -m0700 $(PREFIX)/$(DESTDIR)/etc/selinux/$(SELINUXTYPE)/policy
- install -m0600 policy.$(POLVERS) $(PREFIX)/$(DESTDIR)/etc/selinux/$(SELINUXTYPE)/policy/
- cp -rv gentoo/contexts $(PREFIX)/$(DESTDIR)/etc/selinux/$(SELINUXTYPE)/
- cp -v gentoo/seusers $(PREFIX)/$(DESTDIR)/etc/selinux/$(SELINUXTYPE)/
- install -m0600 file_contexts $(PREFIX)/$(DESTDIR)/etc/selinux/$(SELINUXTYPE)/contexts/files
-
-clean:
- rm -f policy.$(POLVERS)
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..7e13378
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,28 @@
+project('spawns-policy', version: '0.0.1')
+
+selinux_data_dir = '/etc/selinux/spawns'
+policy_version = '34'
+secilc = find_program('secilc')
+modules = files()
+
+subdir('src')
+
+file_contexts = custom_target(
+ output: ['file_contexts', f'policy.@policy_version@'],
+ input: modules,
+ command: [secilc, '--optimize', '--mls', 'true', '@INPUT@'],
+ install: true,
+ install_dir: [
+ selinux_data_dir / 'files' / 'contexts',
+ selinux_data_dir / 'policy',
+ ],
+)
+
+install_subdir('skel', install_dir: selinux_data_dir)
+
+if get_option('install_sources')
+ install_data(
+ modules,
+ install_dir: get_option('datadir') / 'selinux' / 'spawns',
+ )
+endif
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..8c2926e
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1 @@
+option('install_sources', type: 'boolean', value: false)
diff --git a/gentoo/contexts/customizable_types b/skel/contexts/customizable_types
index 30f248a..30f248a 100644
--- a/gentoo/contexts/customizable_types
+++ b/skel/contexts/customizable_types
diff --git a/gentoo/contexts/dbus_contexts b/skel/contexts/dbus_contexts
index 116e684..116e684 100644
--- a/gentoo/contexts/dbus_contexts
+++ b/skel/contexts/dbus_contexts
diff --git a/gentoo/contexts/default_context b/skel/contexts/default_context
index 187c5b1..187c5b1 100644
--- a/gentoo/contexts/default_context
+++ b/skel/contexts/default_context
diff --git a/gentoo/contexts/default_type b/skel/contexts/default_type
index c89274a..c89274a 100644
--- a/gentoo/contexts/default_type
+++ b/skel/contexts/default_type
diff --git a/gentoo/contexts/failsafe_context b/skel/contexts/failsafe_context
index 47efb07..47efb07 100644
--- a/gentoo/contexts/failsafe_context
+++ b/skel/contexts/failsafe_context
diff --git a/gentoo/contexts/files/file_contexts.subs_dist b/skel/contexts/files/file_contexts.subs_dist
index 5d8a2cd..5d8a2cd 100644
--- a/gentoo/contexts/files/file_contexts.subs_dist
+++ b/skel/contexts/files/file_contexts.subs_dist
diff --git a/gentoo/contexts/files/media b/skel/contexts/files/media
index 2cb0529..2cb0529 100644
--- a/gentoo/contexts/files/media
+++ b/skel/contexts/files/media
diff --git a/gentoo/contexts/removable_context b/skel/contexts/removable_context
index 52cd558..52cd558 100644
--- a/gentoo/contexts/removable_context
+++ b/skel/contexts/removable_context
diff --git a/gentoo/seusers b/skel/seusers
index 30231e1..30231e1 100644
--- a/gentoo/seusers
+++ b/skel/seusers
diff --git a/src/anoninode/meson.build b/src/anoninode/meson.build
new file mode 100644
index 0000000..017838b
--- /dev/null
+++ b/src/anoninode/meson.build
@@ -0,0 +1,8 @@
+modules += files(
+ 'iouringanoninode.cil',
+ 'kvmgmemanoninode.cil',
+ 'perfeventanoninode.cil',
+ 'secretmemanoninode.cil',
+ 'uffdanoninode.cil',
+)
+
diff --git a/src/dev/meson.build b/src/dev/meson.build
new file mode 100644
index 0000000..d855c1e
--- /dev/null
+++ b/src/dev/meson.build
@@ -0,0 +1,5 @@
+modules += files('nodedev.cil', 'stordev.cil', 'termdev.cil')
+
+subdir('nodedev')
+subdir('stordev')
+subdir('termdev')
diff --git a/src/dev/nodedev/meson.build b/src/dev/nodedev/meson.build
new file mode 100644
index 0000000..6669d0f
--- /dev/null
+++ b/src/dev/nodedev/meson.build
@@ -0,0 +1,65 @@
+modules += files(
+ 'apmnodedev.cil',
+ 'autofsnodedev.cil',
+ 'btrfscontrolnodedev.cil',
+ 'cachefilesnodedev.cil',
+ 'cdcwdmnodedev.cil',
+ 'clocknodedev.cil',
+ 'cpunodedev.cil',
+ 'crashnodedev.cil',
+ 'cusenodedev.cil',
+ 'dmaheapnodedev.cil',
+ 'dmcontrolnodedev.cil',
+ 'drinodedev.cil',
+ 'drmdpauxnodedev.cil',
+ 'eventnodedev.cil',
+ 'fbnodedev.cil',
+ 'gpionodedev.cil',
+ 'hiddevnodedev.cil',
+ 'hidrawnodedev.cil',
+ 'hwrngnodedev.cil',
+ 'i2cnodedev.cil',
+ 'iionodedev.cil',
+ 'infinibandnodedev.cil',
+ 'inputnodedev.cil',
+ 'ipminodedev.cil',
+ 'kfdnodedev.cil',
+ 'kmsgnodedev.cil',
+ 'ksmnodedev.cil',
+ 'kvmnodedev.cil',
+ 'lircnodedev.cil',
+ 'loopcontrolnodedev.cil',
+ 'mcelognodedev.cil',
+ 'meinodedev.cil',
+ 'memnodedev.cil',
+ 'modemnodedev.cil',
+ 'ndctlnodedev.cil',
+ 'nullnodedev.cil',
+ 'nvramnodedev.cil',
+ 'pmunodedev.cil',
+ 'pppnodedev.cil',
+ 'printernodedev.cil',
+ 'ptmxnodedev.cil',
+ 'qosnodedev.cil',
+ 'randomnodedev.cil',
+ 'rfkillnodedev.cil',
+ 'sndnodedev.cil',
+ 'tpmnodedev.cil',
+ 'ttynodedev.cil',
+ 'tuntapnodedev.cil',
+ 'udmabufnodedev.cil',
+ 'uffdnodedev.cil',
+ 'uhidnodedev.cil',
+ 'uinputnodedev.cil',
+ 'uionodedev.cil',
+ 'usbmonnodedev.cil',
+ 'usbnodedev.cil',
+ 'v4lnodedev.cil',
+ 'vfionodedev.cil',
+ 'vgaarbiternodedev.cil',
+ 'vhostnodedev.cil',
+ 'vmcinodedev.cil',
+ 'watchdognodedev.cil',
+ 'zeronodedev.cil',
+)
+
diff --git a/src/dev/stordev/meson.build b/src/dev/stordev/meson.build
new file mode 100644
index 0000000..a971bb6
--- /dev/null
+++ b/src/dev/stordev/meson.build
@@ -0,0 +1,17 @@
+modules += files(
+ 'dmstordev.cil',
+ 'fusestordev.cil',
+ 'hdstordev.cil',
+ 'loopstordev.cil',
+ 'mdstordev.cil',
+ 'mtdstordev.cil',
+ 'nvmestordev.cil',
+ 'rawstordev.cil',
+ 'removablestordev.cil',
+ 'sdstordev.cil',
+ 'sgstordev.cil',
+ 'vdstordev.cil',
+ 'xdstordev.cil',
+ 'zramstordev.cil',
+)
+
diff --git a/src/dev/termdev/meson.build b/src/dev/termdev/meson.build
new file mode 100644
index 0000000..2b104fa
--- /dev/null
+++ b/src/dev/termdev/meson.build
@@ -0,0 +1,4 @@
+modules += files('ptytermdev.cil', 'serialtermdev.cil')
+
+subdir('ptytermdev')
+subdir('serialtermdev')
diff --git a/src/dev/termdev/ptytermdev/loginptytermdev/meson.build b/src/dev/termdev/ptytermdev/loginptytermdev/meson.build
new file mode 100644
index 0000000..feadfc9
--- /dev/null
+++ b/src/dev/termdev/ptytermdev/loginptytermdev/meson.build
@@ -0,0 +1,2 @@
+modules += files('sysloginptytermdev.cil')
+
diff --git a/src/dev/termdev/ptytermdev/meson.build b/src/dev/termdev/ptytermdev/meson.build
new file mode 100644
index 0000000..f5e79b0
--- /dev/null
+++ b/src/dev/termdev/ptytermdev/meson.build
@@ -0,0 +1,3 @@
+modules += files('loginptytermdev.cil')
+
+subdir('loginptytermdev')
diff --git a/src/dev/termdev/serialtermdev/loginserialtermdev/meson.build b/src/dev/termdev/serialtermdev/loginserialtermdev/meson.build
new file mode 100644
index 0000000..64cfec1
--- /dev/null
+++ b/src/dev/termdev/serialtermdev/loginserialtermdev/meson.build
@@ -0,0 +1,2 @@
+modules += files('ttyloginserialtermdev.cil')
+
diff --git a/src/dev/termdev/serialtermdev/meson.build b/src/dev/termdev/serialtermdev/meson.build
new file mode 100644
index 0000000..7c26326
--- /dev/null
+++ b/src/dev/termdev/serialtermdev/meson.build
@@ -0,0 +1,12 @@
+modules += files(
+ 'acmserialtermdev.cil',
+ 'consoleserialtermdev.cil',
+ 'loginserialtermdev.cil',
+ 'msmserialtermdev.cil',
+ 'sysserialtermdev.cil',
+ 'usbserialtermdev.cil',
+ 'vcsserialtermdev.cil',
+ 'vportserialtermdev.cil',
+)
+
+subdir('loginserialtermdev')
diff --git a/src/file/datafile/meson.build b/src/file/datafile/meson.build
new file mode 100644
index 0000000..0ae9bf2
--- /dev/null
+++ b/src/file/datafile/meson.build
@@ -0,0 +1,2 @@
+modules += files('execfile.cil', 'libfile.cil', 'modfile.cil', 'srcfile.cil')
+
diff --git a/src/file/homefile/meson.build b/src/file/homefile/meson.build
new file mode 100644
index 0000000..99c44c9
--- /dev/null
+++ b/src/file/homefile/meson.build
@@ -0,0 +1,3 @@
+modules += files('syshomefile.cil', 'userfile.cil')
+
+subdir('user')
diff --git a/src/file/homefile/user/meson.build b/src/file/homefile/user/meson.build
new file mode 100644
index 0000000..6236def
--- /dev/null
+++ b/src/file/homefile/user/meson.build
@@ -0,0 +1,2 @@
+modules += files('sshfile.cil')
+
diff --git a/src/file/hugetlbfsfile/meson.build b/src/file/hugetlbfsfile/meson.build
new file mode 100644
index 0000000..c782fd0
--- /dev/null
+++ b/src/file/hugetlbfsfile/meson.build
@@ -0,0 +1,2 @@
+modules += files('syshugetlbfsfile.cil')
+
diff --git a/src/file/meson.build b/src/file/meson.build
new file mode 100644
index 0000000..161f52a
--- /dev/null
+++ b/src/file/meson.build
@@ -0,0 +1,27 @@
+modules += files(
+ 'authfile.cil',
+ 'bootfile.cil',
+ 'bootflagfile.cil',
+ 'certfile.cil',
+ 'conffile.cil',
+ 'datafile.cil',
+ 'devfile.cil',
+ 'homefile.cil',
+ 'hugetlbfsfile.cil',
+ 'mqueuefsfile.cil',
+ 'runfile.cil',
+ 'secfile.cil',
+ 'tmpfile.cil',
+ 'tmpfsfile.cil',
+ 'varfile.cil',
+)
+
+subdir('datafile')
+subdir('homefile')
+subdir('hugetlbfsfile')
+subdir('misc')
+subdir('mqueuefsfile')
+subdir('runfile')
+subdir('tmpfile')
+subdir('tmpfsfile')
+subdir('varfile')
diff --git a/src/file/misc/meson.build b/src/file/misc/meson.build
new file mode 100644
index 0000000..fa990a3
--- /dev/null
+++ b/src/file/misc/meson.build
@@ -0,0 +1,7 @@
+modules += files(
+ 'lostfoundfile.cil',
+ 'mediafile.cil',
+ 'rootfile.cil',
+ 'unknownfile.cil',
+)
+
diff --git a/src/file/mqueuefsfile/meson.build b/src/file/mqueuefsfile/meson.build
new file mode 100644
index 0000000..d621150
--- /dev/null
+++ b/src/file/mqueuefsfile/meson.build
@@ -0,0 +1,2 @@
+modules += files('sysmqueuefsfile.cil')
+
diff --git a/src/file/runfile/meson.build b/src/file/runfile/meson.build
new file mode 100644
index 0000000..4f172f8
--- /dev/null
+++ b/src/file/runfile/meson.build
@@ -0,0 +1,2 @@
+modules += files('runlockfile.cil', 'runuserfile.cil')
+
diff --git a/src/file/tmpfile/meson.build b/src/file/tmpfile/meson.build
new file mode 100644
index 0000000..17d76cc
--- /dev/null
+++ b/src/file/tmpfile/meson.build
@@ -0,0 +1,2 @@
+modules += files('systmpfile.cil')
+
diff --git a/src/file/tmpfsfile/meson.build b/src/file/tmpfsfile/meson.build
new file mode 100644
index 0000000..89038ba
--- /dev/null
+++ b/src/file/tmpfsfile/meson.build
@@ -0,0 +1,2 @@
+modules += files('systmpfsfile.cil')
+
diff --git a/src/file/varfile/meson.build b/src/file/varfile/meson.build
new file mode 100644
index 0000000..c3120ff
--- /dev/null
+++ b/src/file/varfile/meson.build
@@ -0,0 +1,9 @@
+modules += files(
+ 'cachefile.cil',
+ 'dbfile.cil',
+ 'logfile.cil',
+ 'spoolfile.cil',
+ 'statefile.cil',
+)
+
+subdir('spoolfile')
diff --git a/src/file/varfile/spoolfile/meson.build b/src/file/varfile/spoolfile/meson.build
new file mode 100644
index 0000000..d30260c
--- /dev/null
+++ b/src/file/varfile/spoolfile/meson.build
@@ -0,0 +1,2 @@
+modules += files('mailspoolfile.cil')
+
diff --git a/src/fs/meson.build b/src/fs/meson.build
new file mode 100644
index 0000000..3a28ded
--- /dev/null
+++ b/src/fs/meson.build
@@ -0,0 +1,4 @@
+modules += files('noseclabelfs.cil', 'seclabelfs.cil')
+
+subdir('noseclabelfs')
+subdir('seclabelfs')
diff --git a/src/fs/noseclabelfs/meson.build b/src/fs/noseclabelfs/meson.build
new file mode 100644
index 0000000..8037c3f
--- /dev/null
+++ b/src/fs/noseclabelfs/meson.build
@@ -0,0 +1,28 @@
+modules += files(
+ 'aionoseclabelfs.cil',
+ 'anoninodenoseclabelfs.cil',
+ 'autonoseclabelfs.cil',
+ 'bdevnoseclabelfs.cil',
+ 'binfmtmiscnoseclabelfs.cil',
+ 'bpfnoseclabelfs.cil',
+ 'cinoseclabelfs.cil',
+ 'confignoseclabelfs.cil',
+ 'cpusetnoseclabelfs.cil',
+ 'dosnoseclabelfs.cil',
+ 'drmnoseclabelfs.cil',
+ 'efivarnoseclabelfs.cil',
+ 'fusenoseclabelfs.cil',
+ 'iso9660noseclabelfs.cil',
+ 'nfsdnoseclabelfs.cil',
+ 'nfsnoseclabelfs.cil',
+ 'nsnoseclabelfs.cil',
+ 'pidnoseclabelfs.cil',
+ 'procnoseclabelfs.cil',
+ 'removablenoseclabelfs.cil',
+ 'resctrlnoseclabelfs.cil',
+ 'rpcpipenoseclabelfs.cil',
+ 'securitynoseclabelfs.cil',
+ 'selinuxnoseclabelfs.cil',
+ 'udfnoseclabelfs.cil',
+)
+
diff --git a/src/fs/seclabelfs/meson.build b/src/fs/seclabelfs/meson.build
new file mode 100644
index 0000000..d6cbf5f
--- /dev/null
+++ b/src/fs/seclabelfs/meson.build
@@ -0,0 +1,19 @@
+modules += files(
+ 'cgroupseclabelfs.cil',
+ 'debugseclabelfs.cil',
+ 'devptsseclabelfs.cil',
+ 'devtmpseclabelfs.cil',
+ 'eventpollseclabelfs.cil',
+ 'hugetlbseclabelfs.cil',
+ 'mqueueseclabelfs.cil',
+ 'nfs4seclabelfs.cil',
+ 'pipeseclabelfs.cil',
+ 'pstoreseclabelfs.cil',
+ 'rootseclabelfs.cil',
+ 'sockseclabelfs.cil',
+ 'sysseclabelfs.cil',
+ 'tmpseclabelfs.cil',
+ 'traceseclabelfs.cil',
+ 'xattrseclabelfs.cil',
+)
+
diff --git a/src/meson.build b/src/meson.build
new file mode 100644
index 0000000..886714c
--- /dev/null
+++ b/src/meson.build
@@ -0,0 +1,22 @@
+modules += files(
+ 'anoninode.cil',
+ 'dev.cil',
+ 'file.cil',
+ 'fs.cil',
+ 'invalid.cil',
+ 'misc.cil',
+ 'net.cil',
+ 'selinux.cil',
+ 'subj.cil',
+ 'sys.cil',
+ 'unlabeled.cil',
+)
+
+subdir('anoninode')
+subdir('dev')
+subdir('file')
+subdir('fs')
+subdir('misc')
+subdir('net')
+subdir('selinux')
+subdir('sys')
diff --git a/src/misc/av/meson.build b/src/misc/av/meson.build
new file mode 100644
index 0000000..7d60b4e
--- /dev/null
+++ b/src/misc/av/meson.build
@@ -0,0 +1,17 @@
+modules += files(
+ 'binderav.cil',
+ 'bpfav.cil',
+ 'capabilityav.cil',
+ 'fdav.cil',
+ 'iouringav.cil',
+ 'ipcav.cil',
+ 'kernelserviceav.cil',
+ 'keyav.cil',
+ 'memprotectav.cil',
+ 'msgav.cil',
+ 'perfeventav.cil',
+ 'socketav.cil',
+ 'systemav.cil',
+ 'usernamespaceav.cil',
+)
+
diff --git a/src/misc/constrain/meson.build b/src/misc/constrain/meson.build
new file mode 100644
index 0000000..6c9c1b3
--- /dev/null
+++ b/src/misc/constrain/meson.build
@@ -0,0 +1,2 @@
+modules += files('ibac.cil', 'mcs.cil', 'rbac.cil', 'rbacsep.cil')
+
diff --git a/src/misc/meson.build b/src/misc/meson.build
new file mode 100644
index 0000000..d652a1d
--- /dev/null
+++ b/src/misc/meson.build
@@ -0,0 +1,16 @@
+modules += files(
+ 'av.cil',
+ 'conf.cil',
+ 'default.cil',
+ 'isid.cil',
+ 'map.cil',
+ 'mls.cil',
+ 'modular.cil',
+ 'obj.cil',
+ 'perm.cil',
+ 'unconfined.cil',
+)
+
+subdir('av')
+subdir('constrain')
+subdir('xperm')
diff --git a/src/misc/xperm/meson.build b/src/misc/xperm/meson.build
new file mode 100644
index 0000000..199e89e
--- /dev/null
+++ b/src/misc/xperm/meson.build
@@ -0,0 +1,2 @@
+modules += files('consolexperm.cil', 'ttyxperm.cil', 'vtxperm.cil')
+
diff --git a/src/net/ibnet/meson.build b/src/net/ibnet/meson.build
new file mode 100644
index 0000000..2165670
--- /dev/null
+++ b/src/net/ibnet/meson.build
@@ -0,0 +1,2 @@
+modules += files('endportibnet.cil', 'pkeyibnet.cil')
+
diff --git a/src/net/meson.build b/src/net/meson.build
new file mode 100644
index 0000000..7026eb1
--- /dev/null
+++ b/src/net/meson.build
@@ -0,0 +1,12 @@
+modules += files(
+ 'ibnet.cil',
+ 'netifnet.cil',
+ 'nodenet.cil',
+ 'packetnet.cil',
+ 'peernet.cil',
+ 'portnet.cil',
+ 'spdnet.cil',
+)
+
+subdir('ibnet')
+subdir('portnet')
diff --git a/src/net/portnet/meson.build b/src/net/portnet/meson.build
new file mode 100644
index 0000000..cf09557
--- /dev/null
+++ b/src/net/portnet/meson.build
@@ -0,0 +1,6 @@
+modules += files(
+ 'ephemeralportnet.cil',
+ 'reservedportnet.cil',
+ 'unreservedportnet.cil',
+)
+
diff --git a/src/selinux/booleanfile/meson.build b/src/selinux/booleanfile/meson.build
new file mode 100644
index 0000000..379fa2f
--- /dev/null
+++ b/src/selinux/booleanfile/meson.build
@@ -0,0 +1,6 @@
+modules += files(
+ 'invalidassociationsbooleanfile.cil',
+ 'invalidpacketsbooleanfile.cil',
+ 'invalidpeersbooleanfile.cil',
+)
+
diff --git a/src/selinux/meson.build b/src/selinux/meson.build
new file mode 100644
index 0000000..96b01cc
--- /dev/null
+++ b/src/selinux/meson.build
@@ -0,0 +1,3 @@
+modules += files('booleanfile.cil')
+
+subdir('booleanfile')
diff --git a/src/sys/meson.build b/src/sys/meson.build
new file mode 100644
index 0000000..0ef638d
--- /dev/null
+++ b/src/sys/meson.build
@@ -0,0 +1,13 @@
+modules += files(
+ 'bpffile.cil',
+ 'cgroupfile.cil',
+ 'debugfile.cil',
+ 'procfile.cil',
+ 'pstorefile.cil',
+ 'securityfile.cil',
+ 'sysfile.cil',
+ 'tracefile.cil',
+)
+
+subdir('procfile')
+subdir('sysfile')
diff --git a/src/sys/procfile/meson.build b/src/sys/procfile/meson.build
new file mode 100644
index 0000000..bd59fb7
--- /dev/null
+++ b/src/sys/procfile/meson.build
@@ -0,0 +1,73 @@
+modules += files(
+ 'acpiprocfile.cil',
+ 'asoundprocfile.cil',
+ 'bootconfigprocfile.cil',
+ 'buddyinfoprocfile.cil',
+ 'busprocfile.cil',
+ 'cgroupsprocfile.cil',
+ 'cmdlineprocfile.cil',
+ 'consolesprocfile.cil',
+ 'cpuinfoprocfile.cil',
+ 'cpuprocfile.cil',
+ 'cryptoprocfile.cil',
+ 'devicesprocfile.cil',
+ 'diskstatsprocfile.cil',
+ 'dmaprocfile.cil',
+ 'driverprocfile.cil',
+ 'dynamicdebugprocfile.cil',
+ 'execdomainsprocfile.cil',
+ 'fbprocfile.cil',
+ 'filesystemsprocfile.cil',
+ 'fsprocfile.cil',
+ 'interruptsprocfile.cil',
+ 'iomemprocfile.cil',
+ 'ioportsprocfile.cil',
+ 'irqprocfile.cil',
+ 'jffs2bbcprocfile.cil',
+ 'kallsymsprocfile.cil',
+ 'kcoreprocfile.cil',
+ 'keysprocfile.cil',
+ 'keyusersprocfile.cil',
+ 'kmsgprocfile.cil',
+ 'kpagecgroupprocfile.cil',
+ 'kpagecountprocfile.cil',
+ 'kpageflagsprocfile.cil',
+ 'latencystatsprocfile.cil',
+ 'loadavgprocfile.cil',
+ 'lockdepchainsprocfile.cil',
+ 'lockdepprocfile.cil',
+ 'lockdepstatsprocfile.cil',
+ 'locksprocfile.cil',
+ 'lockstatprocfile.cil',
+ 'mdstatprocfile.cil',
+ 'meminfoprocfile.cil',
+ 'miscprocfile.cil',
+ 'modulesprocfile.cil',
+ 'mptprocfile.cil',
+ 'mtdprocfile.cil',
+ 'mtrrprocfile.cil',
+ 'netprocfile.cil',
+ 'pagetypeinfoprocfile.cil',
+ 'partitionsprocfile.cil',
+ 'pressureprocfile.cil',
+ 'scheddebugprocfile.cil',
+ 'schedstatprocfile.cil',
+ 'scsiprocfile.cil',
+ 'slabinfoprocfile.cil',
+ 'softirqsprocfile.cil',
+ 'statprocfile.cil',
+ 'swapsprocfile.cil',
+ 'sysctlfile.cil',
+ 'sysctlprocfile.cil',
+ 'sysrqtriggerprocfile.cil',
+ 'sysvipcprocfile.cil',
+ 'timerlistprocfile.cil',
+ 'ttyprocfile.cil',
+ 'uptimeprocfile.cil',
+ 'versionprocfile.cil',
+ 'vmallocprocfile.cil',
+ 'vmstatprocfile.cil',
+ 'zoneinfoprocfile.cil',
+)
+
+subdir('sysctlfile')
diff --git a/src/sys/procfile/sysctlfile/kernelsysctlfile/meson.build b/src/sys/procfile/sysctlfile/kernelsysctlfile/meson.build
new file mode 100644
index 0000000..947a37a
--- /dev/null
+++ b/src/sys/procfile/sysctlfile/kernelsysctlfile/meson.build
@@ -0,0 +1,21 @@
+modules += files(
+ 'caplastcapkernelsysctlfile.cil',
+ 'corepatternkernelsysctlfile.cil',
+ 'corepipelimitkernelsysctlfile.cil',
+ 'firmwareconfigkernelsysctlfile.cil',
+ 'hostnamekernelsysctlfile.cil',
+ 'keyskernelsysctlfile.cil',
+ 'modprobekernelsysctlfile.cil',
+ 'nslastpidkernelsysctlfile.cil',
+ 'osreleasekernelsysctlfile.cil',
+ 'overflowuidkernelsysctlfile.cil',
+ 'pidmaxkernelsysctlfile.cil',
+ 'poweroffcmdkernelsysctlfile.cil',
+ 'ptykernelsysctlfile.cil',
+ 'randomkernelsysctlfile.cil',
+ 'seccompkernelsysctlfile.cil',
+ 'threadsmaxkernelsysctlfile.cil',
+ 'usermodehelperkernelsysctlfile.cil',
+ 'yamakernelsysctlfile.cil',
+)
+
diff --git a/src/sys/procfile/sysctlfile/meson.build b/src/sys/procfile/sysctlfile/meson.build
new file mode 100644
index 0000000..2e1e66f
--- /dev/null
+++ b/src/sys/procfile/sysctlfile/meson.build
@@ -0,0 +1,16 @@
+modules += files(
+ 'abisysctlfile.cil',
+ 'cryptosysctlfile.cil',
+ 'debugsysctlfile.cil',
+ 'devsysctlfile.cil',
+ 'fssysctlfile.cil',
+ 'kernelsysctlfile.cil',
+ 'netsysctlfile.cil',
+ 'sunrpcsysctlfile.cil',
+ 'usersysctlfile.cil',
+ 'vmsysctlfile.cil',
+)
+
+subdir('kernelsysctlfile')
+subdir('netsysctlfile')
+subdir('vmsysctlfile')
diff --git a/src/sys/procfile/sysctlfile/netsysctlfile/meson.build b/src/sys/procfile/sysctlfile/netsysctlfile/meson.build
new file mode 100644
index 0000000..7ee2b98
--- /dev/null
+++ b/src/sys/procfile/sysctlfile/netsysctlfile/meson.build
@@ -0,0 +1,9 @@
+modules += files(
+ 'corenetsysctlfile.cil',
+ 'ipv4netsysctlfile.cil',
+ 'ipv6netsysctlfile.cil',
+ 'mptcpnetsysctlfile.cil',
+ 'netfilternetsysctlfile.cil',
+ 'unixnetsysctlfile.cil',
+)
+
diff --git a/src/sys/procfile/sysctlfile/vmsysctlfile/meson.build b/src/sys/procfile/sysctlfile/vmsysctlfile/meson.build
new file mode 100644
index 0000000..b54001e
--- /dev/null
+++ b/src/sys/procfile/sysctlfile/vmsysctlfile/meson.build
@@ -0,0 +1,2 @@
+modules += files('overcommitmemoryvmsysctlfile.cil')
+
diff --git a/src/sys/sysfile/classsysfile/meson.build b/src/sys/sysfile/classsysfile/meson.build
new file mode 100644
index 0000000..ff484ab
--- /dev/null
+++ b/src/sys/sysfile/classsysfile/meson.build
@@ -0,0 +1,2 @@
+modules += files('zramcontrolclasssysfile.cil')
+
diff --git a/src/sys/sysfile/devicessysfile/meson.build b/src/sys/sysfile/devicessysfile/meson.build
new file mode 100644
index 0000000..4427f14
--- /dev/null
+++ b/src/sys/sysfile/devicessysfile/meson.build
@@ -0,0 +1,7 @@
+modules += files(
+ 'cpudevicessysfile.cil',
+ 'memorydevicessysfile.cil',
+ 'nodedevicessysfile.cil',
+ 'zramdevicessysfile.cil',
+)
+
diff --git a/src/sys/sysfile/fssysfile/meson.build b/src/sys/sysfile/fssysfile/meson.build
new file mode 100644
index 0000000..4d46b71
--- /dev/null
+++ b/src/sys/sysfile/fssysfile/meson.build
@@ -0,0 +1,9 @@
+modules += files(
+ 'bcachefssysfile.cil',
+ 'btrfssysfile.cil',
+ 'ext4fssysfile.cil',
+ 'f2fssysfile.cil',
+ 'fusefssysfile.cil',
+ 'xfssysfile.cil',
+)
+
diff --git a/src/sys/sysfile/kernelsysfile/meson.build b/src/sys/sysfile/kernelsysfile/meson.build
new file mode 100644
index 0000000..8352b9a
--- /dev/null
+++ b/src/sys/sysfile/kernelsysfile/meson.build
@@ -0,0 +1,2 @@
+modules += files('ksmkernelsysfile.cil')
+
diff --git a/src/sys/sysfile/meson.build b/src/sys/sysfile/meson.build
new file mode 100644
index 0000000..4972800
--- /dev/null
+++ b/src/sys/sysfile/meson.build
@@ -0,0 +1,18 @@
+modules += files(
+ 'blocksysfile.cil',
+ 'bussysfile.cil',
+ 'classsysfile.cil',
+ 'devicessysfile.cil',
+ 'devsysfile.cil',
+ 'firmwaresysfile.cil',
+ 'fssysfile.cil',
+ 'hypervisorsysfile.cil',
+ 'kernelsysfile.cil',
+ 'modulesysfile.cil',
+ 'powersysfile.cil',
+)
+
+subdir('classsysfile')
+subdir('devicessysfile')
+subdir('fssysfile')
+subdir('kernelsysfile')