From f7d07e298c819a81eab965efbdbf53a2ce67fc0e Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Tue, 6 Mar 2018 23:39:47 +0100
Subject: [PATCH] Use Arch Linux' device access groups

  cdrom   → optical
  dialout → uucp
  tape    → storage
---
 meson.build                      |  6 +++---
 meson_options.txt                | 12 ++++++------
 rules.d/50-udev-default.rules.in | 14 +++++++-------
 sysusers.d/basic.conf.in         |  6 +++---
 4 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/meson.build b/meson.build
index 32e5413a62..f781e06fed 100644
--- a/meson.build
+++ b/meson.build
@@ -796,19 +796,19 @@ conf.set_quoted('NOBODY_GROUP_NAME', nobody_group)
 static_ugids = []
 foreach option : ['adm-gid',
                   'audio-gid',
-                  'cdrom-gid',
-                  'dialout-gid',
                   'disk-gid',
                   'input-gid',
                   'kmem-gid',
                   'kvm-gid',
                   'lp-gid',
+                  'optical-gid',
                   'render-gid',
                   'sgx-gid',
-                  'tape-gid',
+                  'storage-gid',
                   'tty-gid',
                   'users-gid',
                   'utmp-gid',
+                  'uucp-gid',
                   'video-gid',
                   'wheel-gid',
                   'systemd-journal-gid',
diff --git a/meson_options.txt b/meson_options.txt
index 5048de755d..676e5e2e0d 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -235,10 +235,6 @@ option('adm-gid', type : 'integer', value : '-1',
        description : 'soft-static allocation for the "adm" group')
 option('audio-gid', type : 'integer', value : '-1',
        description : 'soft-static allocation for the "audio" group')
-option('cdrom-gid', type : 'integer', value : '-1',
-       description : 'soft-static allocation for the "cdrom" group')
-option('dialout-gid', type : 'integer', value : '-1',
-       description : 'soft-static allocation for the "dialout" group')
 option('disk-gid', type : 'integer', value : '-1',
        description : 'soft-static allocation for the "disk" group')
 option('input-gid', type : 'integer', value : '-1',
@@ -249,18 +245,22 @@ option('kvm-gid', type : 'integer', value : '-1',
        description : 'soft-static allocation for the "kvm" group')
 option('lp-gid', type : 'integer', value : '-1',
        description : 'soft-static allocation for the "lp" group')
+option('optical-gid', type : 'integer', value : '-1',
+       description : 'soft-static allocation for the "optical" group')
 option('render-gid', type : 'integer', value : '-1',
        description : 'soft-static allocation for the "render" group')
 option('sgx-gid', type : 'integer', value : '-1',
        description : 'soft-static allocation for the "sgx" group')
-option('tape-gid', type : 'integer', value : '-1',
-       description : 'soft-static allocation for the "tape" group')
+option('storage-gid', type : 'integer', value : '-1',
+       description : 'soft-static allocation for the "storage" group')
 option('tty-gid', type : 'integer', value : 5,
        description : 'the numeric GID of the "tty" group')
 option('users-gid', type : 'integer', value : '-1',
        description : 'soft-static allocation for the "users" group')
 option('utmp-gid', type : 'integer', value : '-1',
        description : 'soft-static allocation for the "utmp" group')
+option('uucp-gid', type : 'integer', value : '-1',
+       description : 'soft-static allocation for the "uucp" group')
 option('video-gid', type : 'integer', value : '-1',
        description : 'soft-static allocation for the "video" group')
 option('wheel-gid', type : 'integer', value : '-1',
diff --git a/rules.d/50-udev-default.rules.in b/rules.d/50-udev-default.rules.in
index 18a3cf46bf..f3c440fd89 100644
--- a/rules.d/50-udev-default.rules.in
+++ b/rules.d/50-udev-default.rules.in
@@ -22,7 +22,7 @@ SUBSYSTEM=="tty", KERNEL=="sclp_line[0-9]*", GROUP="tty", MODE="0620"
 SUBSYSTEM=="tty", KERNEL=="ttysclp[0-9]*", GROUP="tty", MODE="0620"
 SUBSYSTEM=="tty", KERNEL=="3270/tty[0-9]*", GROUP="tty", MODE="0620"
 SUBSYSTEM=="vc", KERNEL=="vcs*|vcsa*", GROUP="tty"
-KERNEL=="tty[A-Z]*[0-9]|ttymxc[0-9]*|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
+KERNEL=="tty[A-Z]*[0-9]|ttymxc[0-9]*|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="uucp"
 
 SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"
 
@@ -67,13 +67,13 @@ KERNEL=="irlpt[0-9]*", GROUP="lp"
 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701??:*", GROUP="lp"
 
 SUBSYSTEM=="block", GROUP="disk"
-SUBSYSTEM=="block", KERNEL=="sr[0-9]*", GROUP="cdrom"
-SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="cdrom"
-KERNEL=="sch[0-9]*", GROUP="cdrom"
-KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
-KERNEL=="pktcdvd", GROUP="cdrom"
+SUBSYSTEM=="block", KERNEL=="sr[0-9]*", GROUP="optical"
+SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="optical"
+KERNEL=="sch[0-9]*", GROUP="optical"
+KERNEL=="pktcdvd[0-9]*", GROUP="optical"
+KERNEL=="pktcdvd", GROUP="optical"
 
-SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="tape"
+SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="storage"
 SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="0", GROUP="disk"
 KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk"
 KERNEL=="loop-control", GROUP="disk", OPTIONS+="static_node=loop-control"
diff --git a/sysusers.d/basic.conf.in b/sysusers.d/basic.conf.in
index 8cc1a7cad2..21bb6d8948 100644
--- a/sysusers.d/basic.conf.in
+++ b/sysusers.d/basic.conf.in
@@ -22,17 +22,17 @@ g utmp    {{UTMP_GID   }}     -            -
 
 # Physical and virtual hardware access groups
 g audio   {{AUDIO_GID  }}     -            -
-g cdrom   {{CDROM_GID  }}     -            -
-g dialout {{DIALOUT_GID}}     -            -
 g disk    {{DISK_GID   }}     -            -
 g input   {{INPUT_GID  }}     -            -
 g kmem    {{KMEM_GID   }}     -            -
 g kvm     {{KVM_GID    }}     -            -
 g lp      {{LP_GID     }}     -            -
+g optical {{OPTICAL_GID}}     -            -
 g render  {{RENDER_GID }}     -            -
 g sgx     {{SGX_GID    }}     -            -
-g tape    {{TAPE_GID   }}     -            -
+g storage {{STORAGE_GID}}     -            -
 g tty     {{TTY_GID    }}     -            -
+g uucp    {{UUCP_GID   }}     -            -
 g video   {{VIDEO_GID  }}     -            -
 
 # Default group for normal users
From 14de5ced41edc9fa8e380330c03adc89ef257fbc Mon Sep 17 00:00:00 2001
From: Christian Hesse <mail@eworm.de>
Date: Mon, 27 Dec 2021 23:32:42 +0100
Subject: [PATCH] generate tmpfiles.d/legacy.conf
---
 tmpfiles.d/legacy.conf.in | 3 ---
 tmpfiles.d/meson.build    | 2 +-
 2 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/tmpfiles.d/legacy.conf.in b/tmpfiles.d/legacy.conf.in
index 4f2c0d7c43..62e2ae0986 100644
--- a/tmpfiles.d/legacy.conf.in
+++ b/tmpfiles.d/legacy.conf.in
@@ -12,9 +12,6 @@
 
 d /run/lock 0755 root root -
 L /var/lock - - - - ../run/lock
-{% if CREATE_LOG_DIRS %}
-L /var/log/README - - - - ../..{{DOC_DIR}}/README.logs
-{% endif %}
 
 # /run/lock/subsys is used for serializing SysV service execution, and
 # hence without use on SysV-less systems.
diff --git a/tmpfiles.d/meson.build b/tmpfiles.d/meson.build
index b8d3919025..000bd0bd22 100644
--- a/tmpfiles.d/meson.build
+++ b/tmpfiles.d/meson.build
@@ -27,7 +27,7 @@ foreach pair : files
 endforeach
 
 in_files = [['etc.conf',                      ''],
-            ['legacy.conf',                   'HAVE_SYSV_COMPAT'],
+            ['legacy.conf',                   ''],
             ['static-nodes-permissions.conf', ''],
             ['systemd.conf',                  ''],
             ['var.conf',                      ''],
