Skip to contentSkip to conversation

Three miscellaneous patches

PATCH New Peter Kjellerstedt 1 participant 4 messages Jul 19, 2018

lore
Share & tools
lore
#3 lore raw

PATCH 3/3 base-files: profile: Avoid using "command" to determine if programs exist

In reply to Peter Kjellerstedt

Since the existence of "command" in itself is not guaranteed, using it to determine if other executables exist is moot. Instead just run the executables and let the shell determine if they exist. By piping stderr to /dev/null we avoid unnecessary warnings in case they do not exist.

---
 meta/recipes-core/base-files/base-files/profile | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)
meta/recipes-core/base-files/base-files/profile +10 -8
index a062028226..e14cb2d878 100644
@@ -20,14 +20,16 @@ if [ -d /etc/profile.d ]; then
 	unset i
 fi
 
-if command -v resize >/dev/null && command -v tty >/dev/null; then
-	# Make sure we are on a serial console (i.e. the device used starts with
-	# /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which
-	# tries do use ssh
-	case $(tty) in
-		/dev/tty[A-z]*) resize >/dev/null;;
-	esac
-fi
+# Make sure we are on a serial console (i.e. the device used starts with
+# /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which tries do
+# use ssh
+case $(tty 2>/dev/null) in
+	# The first invocation of resize verifies that it exists, the second
+	# does the actual resizing. This is due to that resize uses stderr to
+	# determine the size of the tty, which does not work if it is redirected
+	# to /dev/null.
+	/dev/tty[A-z]*) resize >/dev/null 2>&1 && resize >/dev/null;;
+esac
 
 export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
 
Signature · 1 line
2.12.0
#1 lore raw

PATCH 1/3 iptables: Split the iptables modules into separate packages

In reply to Peter Kjellerstedt

By splitting the iptables modules into separate packages it is possible to pick and choose the modules to install and thereby reduce the total size of the installed modules.

Backwards compatibility is maintained by adding a recommendation of iptables-modules, which is a meta package that depends on all the generated packages.

---
 meta/recipes-extended/iptables/iptables_1.6.2.bb | 43 +++++++++++++++++-------
 1 file changed, 30 insertions(+), 13 deletions(-)
meta/recipes-extended/iptables/iptables_1.6.2.bb +30 -13
index 38a83d2b32..e00824f763 100644
@@ -7,17 +7,6 @@ LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263\
                     file://iptables/iptables.c;beginline=13;endline=25;md5=c5cffd09974558cf27d0f763df2a12dc"
 
-RRECOMMENDS_${PN} = "kernel-module-x-tables \
-                     kernel-module-ip-tables \
-                     kernel-module-iptable-filter \
-                     kernel-module-iptable-nat \
-                     kernel-module-nf-defrag-ipv4 \
-                     kernel-module-nf-conntrack \
-                     kernel-module-nf-conntrack-ipv4 \
-                     kernel-module-nf-nat \
-                     kernel-module-ipt-masquerade"
-FILES_${PN} =+ "${libdir}/xtables/ ${datadir}/xtables"
-
 SRC_URI = "http://netfilter.org/projects/iptables/files/iptables-${PV}.tar.bz2 \
            file://0001-configure-Add-option-to-enable-disable-libnfnetlink.patch \
            file://0002-configure.ac-only-check-conntrack-when-libnfnetlink-enabled.patch \
@@ -28,8 +17,8 @@ SRC_URI[sha256sum] = "55d02dfa46263343a401f297d44190f2a3e5113c8933946f094ed40237
 
 inherit autotools pkgconfig
 
-EXTRA_OECONF = "--with-kernel=${STAGING_INCDIR} \
-               "
+EXTRA_OECONF = "--with-kernel=${STAGING_INCDIR}"
+
 PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
 
 PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
@@ -45,3 +34,31 @@ do_configure_prepend() {
 	# Keep ax_check_linker_flags.m4 which belongs to autoconf-archive.
 	rm -f libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4
 }
+
+PACKAGES += "${PN}-modules"
+PACKAGES_DYNAMIC += "^${PN}-module-.*"
+
+python populate_packages_prepend() {
+    modules = do_split_packages(d, '${libdir}/xtables', 'lib(.*)\.so$', '${PN}-module-%s', '${PN} module %s', extra_depends='')
+    if modules:
+        metapkg = d.getVar('PN') + '-modules'
+        d.appendVar('RDEPENDS_' + metapkg, ' ' + ' '.join(modules))
+}
+
+FILES_${PN} += "${datadir}/xtables"
+
+ALLOW_EMPTY_${PN}-modules = "1"
+
+RDEPENDS_${PN} = "${PN}-module-xt-standard"
+RRECOMMENDS_${PN} = " \
+    ${PN}-modules \
+    kernel-module-x-tables \
+    kernel-module-ip-tables \
+    kernel-module-iptable-filter \
+    kernel-module-iptable-nat \
+    kernel-module-nf-defrag-ipv4 \
+    kernel-module-nf-conntrack \
+    kernel-module-nf-conntrack-ipv4 \
+    kernel-module-nf-nat \
+    kernel-module-ipt-masquerade \
+"
Signature · 1 line
2.12.0
#0 lore raw

cover Three miscellaneous patches

These are three miscellaneous patches that I have sent earlier, but which somehow seems to have fallen between the cracks. The original patches should still apply, but I thought it easier to just resend them.

//Peter

The following changes since commit b0f2f690a3513e4c9fa30fee1b8d7ac2d7140657:

systemd-boot: upgrade to 239 (2018-07-18 10:18:42 +0100)

are available in the git repository at:

git://push.yoctoproject.org/poky-contrib pkj/misc-patches

Peter Kjellerstedt (3):
iptables: Split the iptables modules into separate packages
logrotate: Improve configurability of the installed systemd service
files
base-files: profile: Avoid using "command" to determine if programs
exist

 meta/recipes-core/base-files/base-files/profile    | 18 +++++----
 meta/recipes-extended/iptables/iptables_1.6.2.bb   | 43 +++++++++++++++-------
 .../recipes-extended/logrotate/logrotate_3.14.0.bb | 20 +++++++---
 3 files changed, 55 insertions(+), 26 deletions(-)
Signature · 1 line
2.12.0
#2 lore raw

PATCH 2/3 logrotate: Improve configurability of the installed systemd service files

This makes it possible to add extra options to the logrotate application (via ${LOGROTATE_OPTIONS}), and it allows the Persistent option in logrotate.timer to be configured via ${LOGROTATE_SYSTEMD_TIMER_PERSISTENT}.

It also changes the sed expressions to allow for ${LOGROTATE_SYSTEMD_TIMER_BASIS} to contain commas without having to prefix them with backslahes, e.g.:
LOGROTATE_SYSTEMD_TIMER_BASIS = "*-*-* *:00,30:00"

---
 meta/recipes-extended/logrotate/logrotate_3.14.0.bb | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)
meta/recipes-extended/logrotate/logrotate_3.14.0.bb +15 -5
index d48539f84f..ccc68ad3ac 100644
@@ -34,9 +34,9 @@ PACKAGECONFIG[acl] = ",,acl"
 PACKAGECONFIG[selinux] = ",,libselinux"
 
 CONFFILES_${PN} += "${localstatedir}/lib/logrotate.status \
-		    ${sysconfdir}/logrotate.conf \
-		    ${sysconfdir}/logrotate.d/btmp \
-		    ${sysconfdir}/logrotate.d/wtmp"
+                    ${sysconfdir}/logrotate.conf \
+                    ${sysconfdir}/logrotate.d/btmp \
+                    ${sysconfdir}/logrotate.d/wtmp"
 
 # If RPM_OPT_FLAGS is unset, it adds -g itself rather than obeying our
 # optimization variables, so use it rather than EXTRA_CFLAGS.
@@ -62,8 +62,11 @@ SYSTEMD_SERVICE_${PN} = "\
     ${BPN}.timer \
 "
 
+LOGROTATE_OPTIONS ?= ""
+
 LOGROTATE_SYSTEMD_TIMER_BASIS ?= "daily"
 LOGROTATE_SYSTEMD_TIMER_ACCURACY ?= "12h"
+LOGROTATE_SYSTEMD_TIMER_PERSISTENT ?= "true"
 
 do_install(){
     oe_runmake install DESTDIR=${D} PREFIX=${D} MANDIR=${mandir}
@@ -78,8 +81,15 @@ do_install(){
         install -d ${D}${systemd_system_unitdir}
         install -m 0644 ${S}/examples/logrotate.service ${D}${systemd_system_unitdir}/logrotate.service
         install -m 0644 ${S}/examples/logrotate.timer ${D}${systemd_system_unitdir}/logrotate.timer
-        sed -i -e 's,OnCalendar=.*$,OnCalendar=${LOGROTATE_SYSTEMD_TIMER_BASIS},g' ${D}${systemd_system_unitdir}/logrotate.timer
-        sed -i -e 's,AccuracySec=.*$,AccuracySec=${LOGROTATE_SYSTEMD_TIMER_ACCURACY},g' ${D}${systemd_system_unitdir}/logrotate.timer
+        [ -z "${LOGROTATE_OPTIONS}" ] ||
+            sed -ri \
+                -e 's|(ExecStart=.*/logrotate.*)$|\1 ${LOGROTATE_OPTIONS}|g' \
+                ${D}${systemd_system_unitdir}/logrotate.service
+        sed -ri \
+            -e 's|(OnCalendar=).*$|\1${LOGROTATE_SYSTEMD_TIMER_BASIS}|g' \
+            -e 's|(AccuracySec=).*$|\1${LOGROTATE_SYSTEMD_TIMER_ACCURACY}|g' \
+            -e 's|(Persistent=).*$|\1${LOGROTATE_SYSTEMD_TIMER_PERSISTENT}|g' \
+            ${D}${systemd_system_unitdir}/logrotate.timer
     fi
 
     if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
Signature · 1 line
2.12.0