All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] Rootfs without busybox in it
@ 2010-03-19 16:52 Marcin Juszkiewicz
  2010-03-19 17:00 ` Marcin Juszkiewicz
  2010-03-22  8:33 ` Martyn Welch
  0 siblings, 2 replies; 3+ messages in thread
From: Marcin Juszkiewicz @ 2010-03-19 16:52 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1876 bytes --]


Hi

As part of my work for BugLabs company I am working on creating root 
filesystem which does not rely on BusyBox for 90% of commands but rather use 
normal versions of them.

I have something what boots and more or less works but found few issues for 
which I want to get some discussion.

1. 'ifupdown' package needed changes:

- removal of 'networking' initscript
- removal of 'interfaces' definition
- shipping /etc/network/run/ directory

first two are present in 'netbase' and are usually more optimised for OE 
targets, last one is required for keeping information about state of 
interfaces

2. lack of '/bin/sh' makes device not bootable

One solution is to use 'update-alternatives' script for handling that. But 
this is 'egg & chicken' problem because 'u-a' is shell script. So far my 
temporary solution is creation of 'bash-sh' package which symlinks '/bin/bash' 
in post install script and in pre remove symlinks it to busybox. It is not 
ideal but I needed something to get it working.

3. lack of '/etc/init.d/hwclock.sh'

We provide it with BusyBox package, Debian has own one in util-linux(-ng) 
package. I am planning to strip Debian one from log functions and test it.

4. lack of 'start-stop-daemon'

So far I am using one from 'dpkg' but not extracted it to separate package.

5. 'adduser' is from 'tinylogin'

We can not use Debian one because it is written in Perl. 'useradd' comes from 
'shadow' package. There are few versions of 'adduser' command in contrib/ 
directory of shadow sources - 'adduser.sh' one looks simplest.

Tinylogin should be dropped in OE anyway in favour of BusyBox (but that's 
other story).

Will write more when will remind them.

Regards, 
-- 
JID:      hrw@jabber.org
Website:  http://marcin.juszkiewicz.com.pl/
LinkedIn: http://www.linkedin.com/in/marcinjuszkiewicz

[-- Attachment #2: 0001-ifupdown-do-not-ship-files-present-in-netbase.patch --]
[-- Type: text/x-patch, Size: 2163 bytes --]

From b8664428e4c7c60795d0682397376dd91983add2 Mon Sep 17 00:00:00 2001
From: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
Date: Thu, 18 Mar 2010 16:12:03 +0100
Subject: [PATCH] ifupdown: do not ship files present in netbase

There are two files which are also present in netbase:

- /etc/init.d/networking
- /etc/network/interfaces

netbase versions are more suited for OE targets

Also ship /etc/network/run/ dir for iface state

Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
---
 recipes/ifupdown/ifupdown_0.6.8.bb |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/recipes/ifupdown/ifupdown_0.6.8.bb b/recipes/ifupdown/ifupdown_0.6.8.bb
index 53ccb5f..0092e22 100644
--- a/recipes/ifupdown/ifupdown_0.6.8.bb
+++ b/recipes/ifupdown/ifupdown_0.6.8.bb
@@ -3,15 +3,14 @@ This package provides the tools ifup and ifdown which may be used to \
 configure (or, respectively, deconfigure) network interfaces, based on \
 the file /etc/network/interfaces."
 LICENSE = "GPL"
+PR = "r1.1"
 
 SECTION = "base"
 
 SRC_URI = "${DEBIAN_MIRROR}/main/i/ifupdown/ifupdown_${PV}.tar.gz \
            file://busybox.patch;patch=1 \
            file://udhcpc.patch;patch=1 \
-           file://zeroconf.patch;patch=1 \
-           file://init \
-           file://interfaces"
+           file://zeroconf.patch;patch=1 "
 
 EXTRA_OEMAKE = ""
 
@@ -21,16 +20,13 @@ do_compile () {
 }
 
 do_install () {
-	install -d ${D}${sysconfdir}/init.d \
-		   ${D}${sysconfdir}/network \
-		   ${D}${mandir}/man8 \
+	install -d ${D}${mandir}/man8 \
 		   ${D}${mandir}/man5 \
-		   ${D}${base_sbindir}
+		   ${D}${base_sbindir} \
+		   ${D}${sysconfdir}/network/run
+
 	install -m 0755 ifup ${D}${base_sbindir}/
 	ln ${D}${base_sbindir}/ifup ${D}${base_sbindir}/ifdown
-	install -m 0644 ${WORKDIR}/init ${D}${sysconfdir}/init.d/networking
-	install -m 0644 ${WORKDIR}/interfaces ${D}${sysconfdir}/network/interfaces
 	install -m 0644 ifup.8 ${D}${mandir}/man8
-	install -m 0644 interfaces.5 ${D}${mandir}/man5
 	cd ${D}${mandir}/man8 && ln -s ifup.8 ifdown.8
 }
-- 
1.7.0


[-- Attachment #3: bash.inc.patch --]
[-- Type: text/x-patch, Size: 585 bytes --]

diff --git a/recipes/bash/bash.inc b/recipes/bash/bash.inc
index 4eba689..a6ef610 100644
--- a/recipes/bash/bash.inc
+++ b/recipes/bash/bash.inc
@@ -33,3 +33,16 @@ pkg_postinst () {
 	grep -q "bin/bash" $D${sysconfdir}/shells || echo /bin/bash >> $D${sysconfdir}/shells
 	grep -q "bin/sh" $D${sysconfdir}/shells || echo /bin/sh >> $D${sysconfdir}/shells
 }
+
+PACKAGES += "bash-sh"
+RDEPENDS_bash-sh = "bash"
+
+ALLOW_EMPTY_bash-sh = "1"
+
+pkg_postinst_bash-sh() {
+    cd $D/bin && ln -sf bash sh
+}
+
+pkg_postrm_bash-sh() {
+    ln -sf /bin/busybox /bin/sh
+}

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [RFC] Rootfs without busybox in it
  2010-03-19 16:52 [RFC] Rootfs without busybox in it Marcin Juszkiewicz
@ 2010-03-19 17:00 ` Marcin Juszkiewicz
  2010-03-22  8:33 ` Martyn Welch
  1 sibling, 0 replies; 3+ messages in thread
From: Marcin Juszkiewicz @ 2010-03-19 17:00 UTC (permalink / raw)
  To: openembedded-devel

Dnia piątek, 19 marca 2010 o 17:52:12 Marcin Juszkiewicz napisał(a):
> 5. 'adduser' is from 'tinylogin'
> 
> We can not use Debian one because it is written in Perl. 'useradd' comes
> from  'shadow' package. There are few versions of 'adduser' command in
> contrib/ directory of shadow sources - 'adduser.sh' one looks simplest.

Or we can follow Fedora way: "ln -sf useradd adduser"

Regards, 
-- 
JID:      hrw@jabber.org
Website:  http://marcin.juszkiewicz.com.pl/
LinkedIn: http://www.linkedin.com/in/marcinjuszkiewicz





^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC] Rootfs without busybox in it
  2010-03-19 16:52 [RFC] Rootfs without busybox in it Marcin Juszkiewicz
  2010-03-19 17:00 ` Marcin Juszkiewicz
@ 2010-03-22  8:33 ` Martyn Welch
  1 sibling, 0 replies; 3+ messages in thread
From: Martyn Welch @ 2010-03-22  8:33 UTC (permalink / raw)
  To: openembedded-devel

Marcin Juszkiewicz wrote:
> Hi
>
> As part of my work for BugLabs company I am working on creating root 
> filesystem which does not rely on BusyBox for 90% of commands but rather use 
> normal versions of them.
>   

I have a patch series that completely removes the need for busybox we
have been working on that I have been trying to get in shape to post on
this list . It's definitely not quite right yet, however it works. I'll
post it to the mailing list.

Martyn

> I have something what boots and more or less works but found few issues for 
> which I want to get some discussion.
>
> 1. 'ifupdown' package needed changes:
>
> - removal of 'networking' initscript
> - removal of 'interfaces' definition
> - shipping /etc/network/run/ directory
>
> first two are present in 'netbase' and are usually more optimised for OE 
> targets, last one is required for keeping information about state of 
> interfaces
>
> 2. lack of '/bin/sh' makes device not bootable
>
> One solution is to use 'update-alternatives' script for handling that. But 
> this is 'egg & chicken' problem because 'u-a' is shell script. So far my 
> temporary solution is creation of 'bash-sh' package which symlinks '/bin/bash' 
> in post install script and in pre remove symlinks it to busybox. It is not 
> ideal but I needed something to get it working.
>
> 3. lack of '/etc/init.d/hwclock.sh'
>
> We provide it with BusyBox package, Debian has own one in util-linux(-ng) 
> package. I am planning to strip Debian one from log functions and test it.
>
> 4. lack of 'start-stop-daemon'
>
> So far I am using one from 'dpkg' but not extracted it to separate package.
>
> 5. 'adduser' is from 'tinylogin'
>
> We can not use Debian one because it is written in Perl. 'useradd' comes from 
> 'shadow' package. There are few versions of 'adduser' command in contrib/ 
> directory of shadow sources - 'adduser.sh' one looks simplest.
>
> Tinylogin should be dropped in OE anyway in favour of BusyBox (but that's 
> other story).
>
> Will write more when will remind them.
>
> Regards, 
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel


-- 
Martyn Welch (Principal Software Engineer)   |   Registered in England and
GE Intelligent Platforms                     |   Wales (3828642) at 100
T +44(0)127322748                            |   Barbirolli Square, Manchester,
E martyn.welch@ge.com                        |   M2 3AB  VAT:GB 927559189




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-03-22  8:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-19 16:52 [RFC] Rootfs without busybox in it Marcin Juszkiewicz
2010-03-19 17:00 ` Marcin Juszkiewicz
2010-03-22  8:33 ` Martyn Welch

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.