DebianUbuntuSprint
8626
Comment:
|
11878
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
||<tablestyle="float:right; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Table of Contents'''<<BR>> <<TableOfContents>>|| |
|
Line 6: | Line 8: |
=== Getting to the Building === 27th Floor, Millbank Tower<<BR>> 21-24 Millbank<<BR>> London<<BR>> SW1P 4QP<<BR>> Tel: +44 (0)20 7630 2400<<BR>> * [[http://maps.google.co.uk/maps/ms?f=q&hl=en&ie=UTF8&cd=2&om=1&msa=0&msid=116834975520045313395.000001129e487c9561c11&ll=51.494771,-0.130591&spn=0.011142,0.029182&z=15|Google map to the building]] === Getting Inside === Visitors will need to tell reception in the main lobby that they are visiting Canonical. Once confirmed, you will be asked to sign in and issued a visitor badge, which you must carry with you. |
|
Line 26: | Line 17: |
|| Name || Arrival Date/Time || Arrival Airline/Train# || Departure Date/Time || Departure Airline/Train# || || ColinWatson || || || || || || KelModderman || || || || || || LukClaes || || || || || || MichaelBiebl || || || || || || PetterReinholdtsen || || || || || || RobbieWilliamson || 06/21 9:30am || Virgin Atlantic 10 || 06/26 9:30am || Virgin Atlantic 3 || || ScottRemnant || || || || || || SteveLangasek || || || || || == Accommodation == ~+[[http://www.parkplaza.com/londonuk_riverbank|Park Plaza Riverbank]]+~ === Directions to Park Plaza Riverbank === [[http://maps.google.co.uk/maps/ms?f=q&hl=en&ie=UTF8&cd=2&om=1&msa=0&msid=116834975520045313395.000001129e487c9561c11&ll=51.494771,-0.130591&spn=0.011142,0.029182&z=15| Google Map to Park Plaza Riverbank]] === From London Gatwick (40m) === * From Arrivals, head towards signs for the Train station * Don't be fooled by the Gatwick Express signs, it's not that much faster and is much more expensive. * Take a Southern train to Victoria. (35 min) * Once at Victoria, follow signs for the London Underground. * Take a southbound Victoria Line train heading for "Brixton" (5m) * Leave the underground at Vauxhall, follow directions below === From London Heathrow === * For a door to door ride (the time of day directly effects length of ride) use dot2dot. Reported to have on-board WiFi.<<BR>> They have counters next to the auto rental counters in terminals 1,3,4, &5. At terminal 2 go to the information desk in arrivals<<BR>> Current price as of 29 Oct 2008 was £16 one way Heathrow to downtown London and drop you at the door of the Park Plaza Riverbank or the office. This may be a special price for the month of October, regular price is £20. Discounts if more then one person in group. All pre-booked customers are guaranteed a place and we will have you on your way within 20 minutes* of checking in for your Dot2Dot service, so it might be worth booking on the web site before trip. They will pick up downtown and take you to the airport too.<<BR>> According to the driver available 24 hours a day. [[http://www.dot2.com/Home.aspx|dot2dot]] === From London Heathrow (45m) === * From Arrivals, head towards signs for the London Underground * Take an eastbound Piccadilly Line train heading for "Cockfosters" (30min) * Change at Green Park for a southbound Victoria Line train heading for "Brixton" (5m) * Leave the underground at Vauxhall, follow directions below === From Vauxhall Station === * Walk north along Albert Embankment (5-10 min) * Hotel is on the right hand side of the road. === Places to eat === ||Name ||Address ||Type of Cuisine ||Price ||Hours ||Distance (walking) || || Pizza Express || Millbank Center<<BR>>Tel. 020 7976 6214|| Italian || Average £15 || Mon-Sun 12pm-11pm || 2 min || || The Morpeth Arms || 58 Millbank, <<BR>>Westminster, London SW1P 4RW <<BR>>Tel. 20 78346442 <<BR>>www.youngs.co.uk || Pub Food || Average Price: £10|| Daily 10:30-23:00 <<BR>>Food 11:00 - 22:00|| 10 min || || The English Maid || Albert Embankment London, SE1<<BR>> Docked in front ofPark Plaza Riverbank. <<BR>>Tel: 020 75821066<<BR>> Has free Wi''''''Fi for customers|| Pub Food || lunch dinner Average Price: £10|| Daily 11:00-01:00|| 7 min || || City Cafe || Enter via Thorney St (behind Pizza Express)<<BR>>Tel. 020 7932 4600 || Modern European || 2-course set lunch £10, a la carte dinner more expensive || Mon- Sat 7am-10.30pm / Sun 7am-10pm || 5 min || || Rex Whistler Restaurant at Tate Britain || Tate Britain, Millbank, SW1P 4RG<<BR>>Tel. +44 20 7887 8825 www.tate.org.uk || Modern European || Main courses £15-£20 ||Mon-Sun 10am-5.30pm || 5 min || || Goya || 4 Lupus Street, SW1V 3EB<<BR>>Tel. +44 20 7976 5309 www.goyarestaurant.co.uk|| Spanish || Main courses £10-£16 || Mon-Sat 12pm-12am / Sun 12pm-11.30pm || 8 min || || The Atrium || 4 Millbank, SW1P 3JA<<BR>>Tel. +44 20 7233 0032 www.atriumrestaurant.com|| International || Main Courses £9.95-£19.75 / 2 courses menu £17.95 ||Mon-Fri 12pm-3pm / 6pm-11pm || 8 min || || Quirinale North Court || 1 Great Peter Street SW1P 3LL<<BR>Tel. +44 20 7222 7080 www.quirinale.co.uk || Italian || Main Courses £12.50-£19 || Mon-Fri 12pm - 2.30 pm / 6pm - 10.30pm||8 min || || Queen's Arms || 11 Warwich Way, Pimlico, SW1V 1QT www.thequeensarmspimlico.co.uk || Pub Food || Average Meal £8-£10 ||Mon-Sat 12pm-11pm / Sun 12pm-10.30pm ||8 min || || Kazan || 93-94 Wilton Road, SW1V 1DW<<BR>>Tel. +44 20 7233 7100 www.kazan-restaurant.com|| Turkish || Main courses £9.95-£17 / 2 courses menu £9.99-£14.95 ||Tues-Sat 12pm-10:45pm/ Sun-Mon 12pm-10:30pm ||10 min || || DimT|| 56 – 62 Wilton Road Victoria London, SW1V 1DE<<BR>>Tel. 020 7834 0507 www.restaurant-guide.com/dim-t-victoria.htm || Asian Fusion || Main courses £8-£10 ||Mon-Sun 12pm-11.30pm || 10 min || || Vincent Rooms || Victoria Centre, Vincent Square, SW1P 2PD<<BR>>Tel. +44 20 7802 8391 www.westking.ac.uk|| Modern European || Main courses £7.25-£10.50 / 3 courses menu (incl coffee) £22.50||Mon-Fri 12pm-2pm / 6pm-9pm ||10 min || || Atami || 37 Monck Street, SW1P 2BL<<BR>>Tel. +44 20 7222 2218 www.atamirestaurant.co.uk|| Japanese || Main courses £12.50-£21.50 / Set lunch £8.50-£18 || Mon-Fri 12pm-3pm & 5:30pm-11pm / Sat 5:30pm-11pm ||10 min || || Grumbles || 35 Churton Street, Pimlico, London SW1V 2LT<<BR>>Tel: 020 7834 0149 www.grumblesrestaurant.co.uk|| Bistro || Main courses £8-£16 || Mon-Sat 12pm-10.45pm / Sun 12pm-10.30pm ||10 min || || Coriander ||332 Kennington Lane Vauxhall, London SE11 5HY www.thecoriander.com|| Indian || Main courses £7 ||Mon-Sat 12pm-2.30pm / 5.30pm-11pm / Sun 1pm-11pm || 10 min || || Caramel || 77 Wilton Rd Victoria, London SW1V 1<<BR>>Tel.020 7233 8298 www.london-eating.co.uk/6386.htm|| Turkish || Main courses £20 || Tue-Sat 9am-11pm || 10 min || || Cinnamon Club || The Old Westminster Library 30-32 Great Smith Street, SW1P 3BU <<BR>>Tel. +44 20 7222 2555 www.cinnamonclub.com|| Indian || Main courses £11-£29 / 2 courses set menu £19 / 3 courses set menu £22 ||Mon-Fri 7.30am-9.30am & 12pm-2.30pm & 6pm-10.45pm / Sat 6pm-10.45pm || 15 min || || Bank Westminster || 45 Buckingham Gate, SW1E 6BS<<BR>>Tel. +44 20 7379 9797 www.bankrestaurants.com|| Modern European || Main courses £10.50-£30 || Mon-Fri 12pm-3pm & 5.30pm-10.30pm Sat 5.30pm-10.30pm || 15 min || || Contented Vine || 17 Sussex Street SW1V 4RR<<BR>>Tel. 020 7834 0044 www.contentedvine.com|| Bistro Brasserie || 2 courses set menu £11.50 / 3 courses set menu £14.50 || Mon 5.30pm-10.30pm / Tue-Fri 12pm-3pm & 5pm-10.30pm / Sat-Sun 10am-10pm ||15 min || || Cafe Madeira || # 46A-46B Albert Embankment, Vauxhall, SE1 7TN<<BR>>Tel: 020 7820 1117|| Portuguese || Average £5 || Mon-Sun 6am-9pm ||16 min || || Hot Stuff || 19 Wilcox Rd, London, SW8 2XA<<BR>>Tel: 020 77201480 || Indian || £5-£10 || Mon-Fri 12pm-10pm / Sat 3pm-10pm (booking essential, no parties > 10) || 15-20 min || || Bar Estrela || 111-115 South Lambeth Road, London, SW8 1UZ - 020 7793 1051 || Portuguese Tapas || £5-£10 || Usual || 15-20 min || || Rebato's || 169 South Lambeth Rd, London, SW8 1XW - 020 75828089 || Spanish Tapas || £10-£15 || Mon-Fri 12-2.30pm/5.30-10.45pm / Sat 7-10.45pm || 15-20 min || || South Bank Centre || Southbank Centre, Belvedere Road, SE1 8XX, || Loads to choose || £5-£30 || Mon-Sun 9am-11pm || 20-25 min || ||Mekong || [[http://www.london-eating.co.uk/3643.htm|46 Churton St, London, SW1V 2LP]] <<BR>>Tel: 0871 0757044. Quality varies|| Vietnamese || £15-£20 || ?? || ?? || |
* ColinWatson * [[http://qa.debian.org/developer.php?login=kel%40otaku42.de|KelModderman]] * LukClaes * [[http://www.michaelbiebl.de/|MichaelBiebl]] * [[http://www.hungry.com/~pere/|PetterReinholdtsen]] * RobbieWilliamson * ScottJamesRemnant * SteveLangasek |
Line 97: | Line 27: |
== Post Event Evaluation == * TBD |
* Current boot speed of Ubuntu and Debian * Comparison of bootchart data * Analyze differences * Future plans for Ubuntu and Debian * sysvinit * upstart * Ways Debian and Ubuntu can leverage each others progress * Next Steps? * [[http://debconf9.debconf.org/|DebConf]] * How to continue communication, i.e. mailing list, wiki page, etc? == Notes == === Considerations for Transitioning Debian to Use upstart === * Preconditions for /sbin/init as upstart: * /etc/inittab backwards-compatibility support * should reuse the existing inittab conversion script to spit out jobs to a tmp dir that upstart reads from * inotify watch /etc/inittab, generate event when it changes and hook up an upstart job to run the conversion script * sysv-rc support for upstart jobs (/lib/init/upstart-job) * dh_installupstart * update-rc.d, invoke-rc.d implementation that can DTRT with upstart jobs * a soft migration in Debian will be more easily accepted * could have upstart read /etc/init.d/* as a directory of conf files in a different "format" and parse the LSB headers * LSB expressed interest in this approach * could have a "translator" app, e.g. run-upstart-server, to allow sysvinit to execute /etc/init/*.conf files * What we do with the non-Linux port? * Get upstart working with BSD implement upstart job compat with sysvinit * upstart/sysvinit bi-directional dependency handling === Transition from sysvinit to upstart === [[attachment:whiteboard01.pdf|sysvinit-upstart relationship drawing]] * /lib/init/upstart-job is either: * (sysvinit installed) a helper utility built from upstart source that provides a wrapper for running the named upstart service as if it were an init script * (upstart installed) a helper utility that will warn the user about using /etc/init.d/$JOB and run 'service $JOB start' instead * upstart-job needs an option to spit out the LSB headers to feed them to things like insserv * insserv needs to check, if /etc/init.d/foo is a symlink to /lib/init/upstart-job and in that case call the init script with the right option to get LSB header and not directly parse the file (proposed option name: '/lib/init/upstart-job <service basename> lsb-header') * dh_installupstart to autogenerate an init script symlink shipped in the package * Add dependency on upstart-job to misc:Depends * Generate symlink /etc/init.d/foo -> /lib/init/upstart-job * need to run the dh_installupstart design past joeyh early * upstart-job is provided by a package that provides virtual package (prob. upstart-job), this can be upstart or sysv-compat-upstart depending which version is required * upstart-job must be buildable on all architectures and should be part of the upstart source package. For architectures where upstart currently fails to builds (like kfreebsd/hurd), it should be possible to disable compilation. * /lib/init/upstart-job should have no dependencies on anything in /usr, should be possible to be implemented in shell, but preferably implemented in C for speed reasons. * packages shipping upstart job files must depend on this virtual package (handled by the debhelper script) === /etc/inittab Support === * runs between rcS and rc2 * based on existing migration script * copies from /etc/event.d (... /etc/init?) to /lib/init/rw/event.d and rewrites * adds new files to /lib/init/rw/event.d * upstart reads the latter directory via inotify * need signal that instructs upstart to re-run that script (init q) === Reviewed of Debian Unstable Bootchart === * [[attachment:debian-sid-makefile-concur-2009-06-22.png]] * hwclock & hwclock.sh....why? * why is modprobe slow in the initramfs? * x-session starting about 4 secs after Xorg (gdm bug) * need to install a '''newer''' version of readahead * current readahead has problems which cause boot failure under certain circumstances * using sreadahead would provide an improvement on SSDs * loadcpufreq possibly not needed with some kernel tuning === service Command === * initial implementation available in Ubuntu, implements the traditional start/stop/status commands * bug filed in Debian: [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=534300|#534300]] * the service script should be a common implementation in sysvinit-utils, the common Essential: yes package * one backend implementation for each rc system (sysv-rc, file-rc, insserv, and upstart), via update-rc.d * spec out the interface first, then migrate functionality into the rc system packages * documentation for {{{update-rc.d}}} (policy, manpages) should be explicit that these interfaces are internal to {{{service}}}, and are '''not''' meant for use by maintainer scripts (... nor users) * http://lists.debian.org/debian-devel/2009/04/msg00017.html * enable|disable feature - if provided at update-rc.d layer we need to ensure sysvinit-utils depend on versions of packages which provide update-rc.d with enable|disable feature (Provides?) * uncertainty and doubt whether update-rc.d is correct layer to contain the disable|enable implementations * can reuse existing code within update-rc.d * update-rc.d should not become more appealing to users - it is not intended for them to use. Adding this functionality does just that however ... * need to define new interfaces in policy? ==== service Backend / update-rc.d Extensions Requirements ==== 1. Enable/disable service (user-facing)<<BR>> [2345]/Sxx <-> [2345]/K(100-xx) 2. Remove link (usually 0/6, but not always) (maintainer script)<<BR>> R/[SK]xx -> null 3. Add link, e.g. due to bugs such as copying RH runlevel setup (maintainer script)<<BR>> null -> R/[SK]xx 4. Move link in sequence (maintainer script)<<BR>> R/[SK]xx -> R/[SK]yy (atomic) 5. Move link between runlevels (maintainer script)<<BR>> X/Sxx -> Y/Syy (atomic) ==== update-rc.d Syntax ==== Explored several possibilities for update-rc.d syntax to edit links: general idea is that you have one correct current state, but also some previous valid states which should be considered as package-generated rather than user-configured {{{ update-rc.d service start 80 S . was start 99 2 3 4 5 . if dpkg --compare-versions "$2" lt blah; then PREV='was start 99 2 3 4 5 .' fi update-rc.d start 80 S . $PREV update-rc.d service start 30 2 3 4 5 . if dpkg --compare-versions "$2" lt blah; then update-rc.d service replace start 20 2 3 4 5 . 30 2 3 4 5 . fi }}} * Difficult case is when you have multiple logically-distinct changes; e.g. pcmciautils wants to remove 0 and 6 links (teardown), and, independently, move rcS.d/S40 to rcS.d/S13 (Ubuntu boot ordering) * Petter suggests a `replace` command which can express a change rather than a previous state * Useful to have dh_installinit deal with version check generation, so that no maintainer script code needs to be written by hand ==== Actions Required by service Backend ==== * enable (service should run automatically from now on) * disable (service should not run automatically from now on) * query (output representation of current state of service) * start (start service immediately, regardless of policy) * stop (stop service immediately, regardless of policy) * status (enquire whether service is currently running, as in `/etc/init.d/service status`) * list-services (list all service names) - `/usr/lib/service/backend` as interface name <<BR>> - Petter wants to avoid races between multiple diversions (possible solution: symlink, though this means that everything ends up in update-rc.d which would encourage people to use it; may be partially soluble with good documentation)<<BR>> === Debian sysvinit ToDo List === * revert mtab -> /proc/mounts symlink patch => requires further discussion. It seems to break things currently. (Unstable fixed 2009-06-23) * fsck should run even if on_ac_power #526398 (Unstable fixed 2009-06-23) * devpts in mountvirtfs.sh -> non-udev case? need to check * move startpar to sysvinit-utils (Unstable fixed 2009-06-23) * contact openSuSE boot people to find out if they have plans to move away from sysvinit[?] * cleanup debian/rules, debian/patches/* anyone? * move from dpatch -> quilt, conform with new package format standards (eg. do not patch ./debian/* !) * use a bit of debhelper in debian/rules === Bootchart Package === * Scott has written a new bootchart which is more featureful, we should consider adopting it * currently packaged bootchart is dead upstream * currently packaged bootchart does not collect information from kernel/initramfs phase * split source packages ? ubuntu have bootchart (the collector), bootchart-java (the java chart 'renderer' that is currently in Debian) * contact current bootchart Debian maintainer and let him know about Scott's new work [kel] * need to reliably test and record boot performance on Debian [kel] * Canonical loaned Kel a Dell Mini 9 for this work :) === Dash as /bin/sh === * communicate to users of Debian why using dash as /bin/sh is a good thing. Ubuntu stuff => https://wiki.ubuntu.com/DashAsBinSh * raphael has done much work in Debian to make it possible for squeeze, contact him about his current opinion in regards to making it a default === insserv in Ubuntu to Validate LSB-header-declared Dependencies? === {{{ <cjwatson@sarantium ~>$ /usr/share/insserv/check-initd-order error: Unable to read /etc/rc2.d/S81update-motd at /usr/share/insserv/check-initd-order line 373. LSB header missing in /etc/rcS.d/S07linux-restricted-modules-common Incorrect order checkroot@20 > /etc/rcS.d/S15module-init-tools15 LSB header missing in /etc/rc2.d/S10powernowd.early Incorrect order avahi@50 > /etc/rc2.d/S28libvirt-bin28 LSB header missing in /etc/rc2.d/S30gdm error: Unable to read /etc/rc2.d/S81update-motd at /usr/share/insserv/check-initd-order line 373. LSB header missing in /etc/rc2.d/S81update-motd LSB header missing in /etc/rc2.d/S99acpi-support <cjwatson@sarantium ~>$ /usr/share/insserv/check-initd-order -k LSB header missing in /etc/rc6.d/K01gdm }}} * checkroot/module-init-tools: looks like a bug in module-init-tools saying Should-Start: checkroot * avahi/libvirt-bin: libvirt-bin needs avahi, started at wrong point? Dependency graph: {{{/usr/share/insserv/check-initd-order -g | dot -Tpdf > init.pdf}}} LSB headers but no dependencies: kvm ([[https://bugs.launchpad.net/ubuntu/+source/kvm/+bug/391121|Ubuntu #391121]]), apparmor === Communication Plan === * Send a summary out to ubuntu-devel[robbie] and debian-devel about this meeting and the outcomes * Provide the reasons WHY we care about boot performance [scott] * Highlight the reasons (not just bootspeed) why switching to upstart is a *good* thing (e.g. reliability, coping with an async kernel) * Continue discussions on: * IRC: #pkg-sysvinit@OFTC * Mailing List: initscripts-ng-devel@lists.alioth.debian.org |
What
Debian/Ubuntu Boot Performance Sprint
Where
Canonical's Millbank Office, London, UK
When
Monday & Tuesday, June 22/23, 2009
- 9am - 6pm
Why
Investigate creating a joint Ubuntu-Debian team to look into how both distributions can work together to improve boot performance.
Who
Topics of Discussion
- Current boot speed of Ubuntu and Debian
- Comparison of bootchart data
- Analyze differences
- Future plans for Ubuntu and Debian
- sysvinit
- upstart
- Ways Debian and Ubuntu can leverage each others progress
- Next Steps?
- How to continue communication, i.e. mailing list, wiki page, etc?
Notes
Considerations for Transitioning Debian to Use upstart
- Preconditions for /sbin/init as upstart:
- /etc/inittab backwards-compatibility support
- should reuse the existing inittab conversion script to spit out jobs to a tmp dir that upstart reads from
- inotify watch /etc/inittab, generate event when it changes and hook up an upstart job to run the conversion script
- sysv-rc support for upstart jobs (/lib/init/upstart-job)
- dh_installupstart
- update-rc.d, invoke-rc.d implementation that can DTRT with upstart jobs
- /etc/inittab backwards-compatibility support
- a soft migration in Debian will be more easily accepted
- could have upstart read /etc/init.d/* as a directory of conf files in a different "format" and parse the LSB headers
- LSB expressed interest in this approach
- could have a "translator" app, e.g. run-upstart-server, to allow sysvinit to execute /etc/init/*.conf files
- What we do with the non-Linux port?
- Get upstart working with BSD implement upstart job compat with sysvinit
- upstart/sysvinit bi-directional dependency handling
Transition from sysvinit to upstart
sysvinit-upstart relationship drawing
- /lib/init/upstart-job is either:
- (sysvinit installed) a helper utility built from upstart source that provides a wrapper for running the named upstart service as if it were an init script
- (upstart installed) a helper utility that will warn the user about using /etc/init.d/$JOB and run 'service $JOB start' instead
- upstart-job needs an option to spit out the LSB headers to feed them to things like insserv
insserv needs to check, if /etc/init.d/foo is a symlink to /lib/init/upstart-job and in that case call the init script with the right option to get LSB header and not directly parse the file (proposed option name: '/lib/init/upstart-job <service basename> lsb-header')
- dh_installupstart to autogenerate an init script symlink shipped in the package
- Add dependency on upstart-job to misc:Depends
Generate symlink /etc/init.d/foo -> /lib/init/upstart-job
- need to run the dh_installupstart design past joeyh early
- upstart-job is provided by a package that provides virtual package (prob. upstart-job), this can be upstart or sysv-compat-upstart depending which version is required
- upstart-job must be buildable on all architectures and should be part of the upstart source package. For architectures where upstart currently fails to builds (like kfreebsd/hurd), it should be possible to disable compilation.
- /lib/init/upstart-job should have no dependencies on anything in /usr, should be possible to be implemented in shell, but preferably implemented in C for speed reasons.
- packages shipping upstart job files must depend on this virtual package (handled by the debhelper script)
/etc/inittab Support
- runs between rcS and rc2
- based on existing migration script
- copies from /etc/event.d (... /etc/init?) to /lib/init/rw/event.d and rewrites
- adds new files to /lib/init/rw/event.d
- upstart reads the latter directory via inotify
- need signal that instructs upstart to re-run that script (init q)
Reviewed of Debian Unstable Bootchart
debian-sid-makefile-concur-2009-06-22.png
hwclock & hwclock.sh....why?
- why is modprobe slow in the initramfs?
- x-session starting about 4 secs after Xorg (gdm bug)
need to install a newer version of readahead
- current readahead has problems which cause boot failure under certain circumstances
- using sreadahead would provide an improvement on SSDs
- loadcpufreq possibly not needed with some kernel tuning
service Command
- initial implementation available in Ubuntu, implements the traditional start/stop/status commands
bug filed in Debian: #534300
- the service script should be a common implementation in sysvinit-utils, the common Essential: yes package
- one backend implementation for each rc system (sysv-rc, file-rc, insserv, and upstart), via update-rc.d
- spec out the interface first, then migrate functionality into the rc system packages
documentation for update-rc.d (policy, manpages) should be explicit that these interfaces are internal to service, and are not meant for use by maintainer scripts (... nor users)
- enable|disable feature - if provided at update-rc.d layer we need to ensure sysvinit-utils depend on versions of packages which provide update-rc.d with enable|disable feature (Provides?)
- uncertainty and doubt whether update-rc.d is correct layer to contain the disable|enable implementations
- can reuse existing code within update-rc.d
- update-rc.d should not become more appealing to users - it is not intended for them to use. Adding this functionality does just that however ...
- need to define new interfaces in policy?
service Backend / update-rc.d Extensions Requirements
Enable/disable service (user-facing)
[2345]/Sxx <-> [2345]/K(100-xx)
Remove link (usually 0/6, but not always) (maintainer script)
R/[SK]xx -> null
Add link, e.g. due to bugs such as copying RH runlevel setup (maintainer script)
null -> R/[SK]xx
Move link in sequence (maintainer script)
R/[SK]xx -> R/[SK]yy (atomic)
Move link between runlevels (maintainer script)
X/Sxx -> Y/Syy (atomic)
update-rc.d Syntax
Explored several possibilities for update-rc.d syntax to edit links: general idea is that you have one correct current state, but also some previous valid states which should be considered as package-generated rather than user-configured
update-rc.d service start 80 S . was start 99 2 3 4 5 . if dpkg --compare-versions "$2" lt blah; then PREV='was start 99 2 3 4 5 .' fi update-rc.d start 80 S . $PREV update-rc.d service start 30 2 3 4 5 . if dpkg --compare-versions "$2" lt blah; then update-rc.d service replace start 20 2 3 4 5 . 30 2 3 4 5 . fi
- Difficult case is when you have multiple logically-distinct changes; e.g. pcmciautils wants to remove 0 and 6 links (teardown), and, independently, move rcS.d/S40 to rcS.d/S13 (Ubuntu boot ordering)
Petter suggests a replace command which can express a change rather than a previous state
- Useful to have dh_installinit deal with version check generation, so that no maintainer script code needs to be written by hand
Actions Required by service Backend
- enable (service should run automatically from now on)
- disable (service should not run automatically from now on)
- query (output representation of current state of service)
- start (start service immediately, regardless of policy)
- stop (stop service immediately, regardless of policy)
status (enquire whether service is currently running, as in /etc/init.d/service status)
- list-services (list all service names)
- /usr/lib/service/backend as interface name
- Petter wants to avoid races between multiple diversions (possible solution: symlink, though this means that everything ends up in update-rc.d which would encourage people to use it; may be partially soluble with good documentation)
Debian sysvinit ToDo List
revert mtab -> /proc/mounts symlink patch => requires further discussion. It seems to break things currently. (Unstable fixed 2009-06-23)
- fsck should run even if on_ac_power #526398 (Unstable fixed 2009-06-23)
devpts in mountvirtfs.sh -> non-udev case? need to check
- move startpar to sysvinit-utils (Unstable fixed 2009-06-23)
- contact openSuSE boot people to find out if they have plans to move away from sysvinit[?]
- cleanup debian/rules, debian/patches/* anyone?
move from dpatch -> quilt, conform with new package format standards (eg. do not patch ./debian/* !)
- use a bit of debhelper in debian/rules
Bootchart Package
- Scott has written a new bootchart which is more featureful, we should consider adopting it
- currently packaged bootchart is dead upstream
- currently packaged bootchart does not collect information from kernel/initramfs phase
- split source packages ? ubuntu have bootchart (the collector), bootchart-java (the java chart 'renderer' that is currently in Debian)
- contact current bootchart Debian maintainer and let him know about Scott's new work [kel]
- need to reliably test and record boot performance on Debian [kel]
Canonical loaned Kel a Dell Mini 9 for this work
Dash as /bin/sh
communicate to users of Debian why using dash as /bin/sh is a good thing. Ubuntu stuff => https://wiki.ubuntu.com/DashAsBinSh
- raphael has done much work in Debian to make it possible for squeeze, contact him about his current opinion in regards to making it a default
insserv in Ubuntu to Validate LSB-header-declared Dependencies?
<cjwatson@sarantium ~>$ /usr/share/insserv/check-initd-order error: Unable to read /etc/rc2.d/S81update-motd at /usr/share/insserv/check-initd-order line 373. LSB header missing in /etc/rcS.d/S07linux-restricted-modules-common Incorrect order checkroot@20 > /etc/rcS.d/S15module-init-tools15 LSB header missing in /etc/rc2.d/S10powernowd.early Incorrect order avahi@50 > /etc/rc2.d/S28libvirt-bin28 LSB header missing in /etc/rc2.d/S30gdm error: Unable to read /etc/rc2.d/S81update-motd at /usr/share/insserv/check-initd-order line 373. LSB header missing in /etc/rc2.d/S81update-motd LSB header missing in /etc/rc2.d/S99acpi-support <cjwatson@sarantium ~>$ /usr/share/insserv/check-initd-order -k LSB header missing in /etc/rc6.d/K01gdm
- checkroot/module-init-tools: looks like a bug in module-init-tools saying Should-Start: checkroot
- avahi/libvirt-bin: libvirt-bin needs avahi, started at wrong point?
Dependency graph: /usr/share/insserv/check-initd-order -g | dot -Tpdf > init.pdf
LSB headers but no dependencies: kvm (Ubuntu #391121), apparmor
Communication Plan
- Send a summary out to ubuntu-devel[robbie] and debian-devel about this meeting and the outcomes
- Provide the reasons WHY we care about boot performance [scott]
- Highlight the reasons (not just bootspeed) why switching to upstart is a *good* thing (e.g. reliability, coping with an async kernel)
- Continue discussions on:
- IRC: #pkg-sysvinit@OFTC
Mailing List: initscripts-ng-devel@lists.alioth.debian.org
FoundationsTeam/BootPerformance/DebianUbuntuSprint (last edited 2009-07-08 15:30:01 by e180076113)