[oe] [patch] micro: eliminate some further bloat

Phil Blundell philb at gnu.org
Fri Jun 5 12:59:58 UTC 2009


Almost the entire contents of the base-files package is unnecessary in a
micro-type environment, some of it (e.g. /usr/games) laughably so.  The
standard fstab is only really useful for mounting /proc, and it turns
out that a single-line patch to sysvinit allows this to be dispensed
with as well.

p.

--

diff --git a/recipes/base-files/base-files_3.0.14.bb b/recipes/base-files/base-files_3.0.14.bb
index cc475f3..98dd00d 100644
--- a/recipes/base-files/base-files_3.0.14.bb
+++ b/recipes/base-files/base-files_3.0.14.bb
@@ -1,7 +1,7 @@
 DESCRIPTION = "Miscellaneous files for the base system."
 SECTION = "base"
 PRIORITY = "required"
-PR = "r86"
+PR = "r87"
 LICENSE = "GPL"
 
 SRC_URI = " \
@@ -45,6 +45,14 @@ dirs755 = "/bin /boot /dev ${sysconfdir} ${sysconfdir}/default \
 	   /mnt /media /media/card /media/cf /media/net /media/ram \
 	   /media/union /media/realroot /media/hdd \
 	   /media/mmc1"
+
+dirs755_micro = "/dev /proc ${sysconfdir}"
+dirs2775_micro = ""
+dirs1777_micro = "/tmp"
+
+media = "card cf net ram"
+media_micro = ""
+
 volatiles = "cache run log lock tmp"
 conffiles = "${sysconfdir}/debian_version ${sysconfdir}/host.conf \
 	     ${sysconfdir}/inputrc ${sysconfdir}/issue /${sysconfdir}/issue.net \
@@ -71,9 +79,11 @@ do_install () {
 		install -m 2755 -d ${D}$d
 	done
 	for d in ${volatiles}; do
-		ln -sf volatile/$d ${D}/${localstatedir}/$d
+                if [ -d ${D}${localstatedir}/volatile/$d ]; then
+                        ln -sf volatile/$d ${D}/${localstatedir}/$d
+                fi
 	done
-	for d in card cf net ram; do
+	for d in ${media}; do
 		ln -sf /media/$d ${D}/mnt/$d
 	done
 
@@ -83,40 +93,42 @@ do_install () {
 		echo ${hostname} > ${D}${sysconfdir}/hostname
 	fi
 
-        install -m 644 ${WORKDIR}/issue*  ${D}${sysconfdir}  
-
-        if [ -n "${DISTRO_NAME}" ]; then
-		echo -n "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue
-		echo -n "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net
-		if [ -n "${DISTRO_VERSION}" ]; then
-			echo -n "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue
-			echo -n "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue.net
-		fi
-		echo "\n \l" >> ${D}${sysconfdir}/issue
-		echo >> ${D}${sysconfdir}/issue
-		echo "%h"    >> ${D}${sysconfdir}/issue.net
-		echo >> ${D}${sysconfdir}/issue.net
-	else
- 	       install -m 0644 ${WORKDIR}/issue ${D}${sysconfdir}/issue
- 	       install -m 0644 ${WORKDIR}/issue.net ${D}${sysconfdir}/issue.net
- 	fi
-
-	install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab
-	install -m 0644 ${WORKDIR}/filesystems ${D}${sysconfdir}/filesystems
-	install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
-	install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
-	install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
-	install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
-	install -m 0644 ${WORKDIR}/inputrc ${D}${sysconfdir}/inputrc
-	install -m 0644 ${WORKDIR}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf
-	install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf
-	install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd
-
-	for license in BSD GPL-2 LGPL-2 LGPL-2.1 Artistic GPL-3 LGPL-3 GFDL-1.2; do
-		install -m 0644 ${WORKDIR}/licenses/$license ${D}${datadir}/common-licenses/
-	done
+        if [ "${DISTRO}" != "micro" ]; then
+                install -m 644 ${WORKDIR}/issue*  ${D}${sysconfdir}  
+
+                if [ -n "${DISTRO_NAME}" ]; then
+        		echo -n "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue
+        		echo -n "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net
+        		if [ -n "${DISTRO_VERSION}" ]; then
+        			echo -n "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue
+        			echo -n "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue.net
+        		fi
+        		echo "\n \l" >> ${D}${sysconfdir}/issue
+        		echo >> ${D}${sysconfdir}/issue
+        		echo "%h"    >> ${D}${sysconfdir}/issue.net
+        		echo >> ${D}${sysconfdir}/issue.net
+        	else
+ 	                install -m 0644 ${WORKDIR}/issue ${D}${sysconfdir}/issue
+                        install -m 0644 ${WORKDIR}/issue.net ${D}${sysconfdir}/issue.net
+                fi
+
+                install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab
+        	install -m 0644 ${WORKDIR}/filesystems ${D}${sysconfdir}/filesystems
+        	install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
+        	install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
+        	install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
+        	install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
+        	install -m 0644 ${WORKDIR}/inputrc ${D}${sysconfdir}/inputrc
+        	install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd
+        	for license in BSD GPL-2 LGPL-2 LGPL-2.1 Artistic GPL-3 LGPL-3 GFDL-1.2; do
+	        	install -m 0644 ${WORKDIR}/licenses/$license ${D}${datadir}/common-licenses/
+        	done
+
+	        ln -sf /proc/mounts ${D}${sysconfdir}/mtab
+        	install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf
+        fi
 
-	ln -sf /proc/mounts ${D}${sysconfdir}/mtab
+	install -m 0644 ${WORKDIR}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf
 }
 
 
@@ -156,6 +168,7 @@ PACKAGE_ARCH_rt3000 = "rt3000"
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 CONFFILES_${PN} = "${sysconfdir}/fstab ${sysconfdir}/hostname"
+CONFFILES_${PN}_micro = ""
 CONFFILES_${PN}_nylon = "${sysconfdir}/resolv.conf ${sysconfdir}/fstab ${sysconfdir}/hostname"
 CONFFILES_${PN}_slugos = "${sysconfdir}/resolv.conf ${sysconfdir}/fstab ${sysconfdir}/hostname"
 
diff --git a/recipes/sysvinit/sysvinit/rcS b/recipes/sysvinit/sysvinit/rcS
index e7a7e61..e1c8b57 100755
--- a/recipes/sysvinit/sysvinit/rcS
+++ b/recipes/sysvinit/sysvinit/rcS
@@ -14,7 +14,7 @@ export PATH runlevel prevlevel
 
 #	Make sure proc is mounted
 #
-[ -d "/proc/1" ] || mount /proc
+[ -d "/proc/1" ] || mount proc /proc -t proc
 
 #
 #	See if system needs to be setup. This is ONLY meant to
diff --git a/recipes/sysvinit/sysvinit_2.86.bb b/recipes/sysvinit/sysvinit_2.86.bb
index e65391a..cc7b913 100644
--- a/recipes/sysvinit/sysvinit_2.86.bb
+++ b/recipes/sysvinit/sysvinit_2.86.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "System-V like init."
 SECTION = "base"
 LICENSE = "GPL"
 HOMEPAGE = "http://freshmeat.net/projects/sysvinit/"
-PR = "r53"
+PR = "r54"
 
 # USE_VT and SERIAL_CONSOLE are generally defined by the MACHINE .conf.
 # Set PACKAGE_ARCH appropriately.






More information about the Openembedded-devel mailing list