Merge lp:~tom-gall/linaro-seeds/fix752843-linaro.natty into lp:linaro-seeds/natty

Proposed by Tom Gall
Status: Merged
Merged at revision: 65
Proposed branch: lp:~tom-gall/linaro-seeds/fix752843-linaro.natty
Merge into: lp:linaro-seeds/natty
Diff against target: 103 lines (+89/-0)
2 files modified
STRUCTURE (+1/-0)
linaro-nano (+88/-0)
To merge this branch: bzr merge lp:~tom-gall/linaro-seeds/fix752843-linaro.natty
Reviewer Review Type Date Requested Status
Linaro Maintainers Pending
Review via email: mp+57384@code.launchpad.net

Description of the change

Break off the nano seed from headless. Compact the seed such that it is not tied to other seeds and strip out as many unneeded packages as possible so it represents a very minimal core set of functionality.

To post a comment you must log in.
Revision history for this message
Steve Langasek (vorlon) wrote :

I don't understand the choices that are made here for slimming down the 'required' package set.

 - grep, gzip, hostname, mount, and passwd are dropped. With the exception of 'passwd', these are Essential: yes packages, meaning they may be used by any Ubuntu package without declaring a dependency. How was the determination made to cut these packages (and not others)?

 - if we were enabling busybox instead, then it would make sense to drop most of these, and others besides (e.g., coreutils), but I don't see busybox added anywhere. Should it be?

- * isc-dhcp-client # LaMontJones

Why remove isc-dhcp-client but not the rest of the network stack? (or at least netcat and ntpdate, I would think?) Is it useful to have ifupdown on here without dhcp-client?

+ * mountall #needed by upstart
+ * initscripts #needed by upstart

I don't think it should be necessary to seed these separately then; doesn't upstart pull them in automatically as dependencies?

Revision history for this message
Tom Gall (tom-gall) wrote :

Remember this is step one. Yes there is a busybox package (it's in my ppa) that does replace some of the essential packages, however that is not required to get a substantial start on slimming down the nano image and doing so does require a set of changes to live-build that we've discussed. As discussed I'd like to get this first step in and then get to what could be potentially more controversially changes.

That said, this seed started as a conglomeration of the various base seeds. Once assembled, various packages were then removed. You want to keep that in mind.

Remember that the image when built will contain the full set of Essential packages regardless if they are listed in the seed.

If this change can go forward, step2 is the busybox package when sets up the ability to replace several essential packages.

Revision history for this message
Steve Langasek (vorlon) wrote :

> Remember that the image when built will contain the full set of
> Essential packages regardless if they are listed in the seed.

Oh, this isn't obvious to me. What forces them to be included, and do you have a plan for how to get them excluded later?

I still think you should avoid seeding mountall and initscripts directly, and would like to know your thoughts on the network stack question.

Sorry if this strikes you as nitpicky. If you are satisfied with the correctness of your changes, you have access to commit them directly. :) But since you've asked for review, I'm giving you my honest assessment - I don't think it makes sense to unseed the dhcp client without also looking at what other network-related packages it makes sense to ship, and would like to see changesets that reflect a logical examination of that question rather than picking off those packages that individually give us the biggest size savings but leave us with an incoherent set of packages with no explainable selection criteria.

64. By Tom Gall

add isc-dhcp-client back in, will go to busybox version eventually

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'STRUCTURE'
2--- STRUCTURE 2011-02-28 23:49:46 +0000
3+++ STRUCTURE 2011-05-01 02:50:44 +0000
4@@ -1,5 +1,6 @@
5 include platform.natty
6 linaro-headless: minimal
7+linaro-nano:
8 linaro-development: linaro-headless
9 linaro-x11-base: linaro-headless
10 linaro-netbook-efl: linaro-x11-base
11
12=== added file 'linaro-nano'
13--- linaro-nano 1970-01-01 00:00:00 +0000
14+++ linaro-nano 2011-05-01 02:50:44 +0000
15@@ -0,0 +1,88 @@
16+Task-Per-Derivative: 1
17+Task-Section: user
18+Task-Description: Linaro Nano, a very tiny system
19+Task-Extended-Description: This task provides the Linaro Nano profile
20+Task-Metapackage: linaro-nano
21+Task-Key: linaro-nano
22+Task-Name: linaro-nano
23+Task-Seeds:
24+
25+ * Feature: no-follow-recommends
26+
27+
28+Linaro Nano profile started as a fork of ubuntu's minimal and has been slimed down.
29+
30+Note that some packages that form the core of an Ubuntu-based system are in the required seed, from which this seed inherits. The minimal seed describes those packages at Priority: important.
31+
32+Recommends are followed when processing this seed even though debootstrap doesn't do that. This may occasionally produce confusing results; however, it should be correct at release time, since the results of processing the seed are synced to Priority: important overrides.
33+
34+== From required ==
35+
36+ * base-files
37+ * base-passwd # ColinWatson
38+ * bash
39+ * bsdutils # LaMontJones
40+ * coreutils
41+ * debianutils
42+ * diffutils
43+ * dpkg
44+ * e2fsprogs
45+ * findutils
46+ * login
47+ * ncurses-base
48+ * ncurses-bin
49+ * perl-base
50+ * python-minimal
51+ * tar # LaMontJones
52+ * util-linux # LaMontJones
53+
54+Our init system:
55+
56+ * upstart
57+ * mountall #needed by upstart
58+ * initscripts #needed by upstart
59+
60+In some sense, debconf isn't truly required, but it makes our life a lot easier to have it installed in the first pass.
61+
62+ * debconf
63+
64+Other packages necessary to get started:
65+
66+ * dash # Much faster default shell
67+ * makedev
68+ * mawk
69+ * procps
70+
71+== Comfortable Unix System ==
72+
73+Programs and packages necessary for both the proper functionality of the system and that any user would expect to find on a modern Unix-like system.
74+
75+ * apt
76+ * apt-utils
77+ * console-setup # https://blueprints.launchpad.net/ubuntu/+spec/sane-installer-keyboard
78+ * kbd
79+ * gnupg # introduce security from the very base
80+ * initramfs-tools # needed for the Ubuntu kernel
81+ * module-init-tools # required for kernel 2.6
82+ * netbase
83+ * rsyslog
84+ * sudo # LaMontJones
85+ * ubuntu-keyring # for authenticated package downloads
86+ * udev
87+ * whiptail # for debconf's Dialog frontend
88+
89+== Networking ==
90+
91+These provide various networking services, all should be configured in a client-only state with the server de-activated unless the user requires it.
92+
93+ * iproute
94+ * ifupdown
95+ * net-tools
96+ * ntpdate # FabioMassimoDiNitto
97+ * isc-dhcp-client
98+ * iputils-ping
99+ * netcat-openbsd # FabioMassimoDiNitto
100+
101+== Linaro ==
102+
103+ * linaro-overlay-minimal # ships branding and auto login serial/console feature

Subscribers

People subscribed via source and target branches

to all changes: