Beryllium

From VyOS Wiki
Jump to: navigation, search

Beryllium is slated to be the fourth VyOS release. The version number isn't set yet. Send thoughts on the version number to the mailing list.

Description

Port of VyOS to run on a Debian Jessie (8) base.

Features will be ported as-is and no major new functionality added.

New: git branch 'current'

Tentatively this work is code named beryllium, however work is committed to the current branch in each module.

Starting now, we're adopting a new standard for git branching:

The default branch that contains the most recent VyOS code is called 'current' rather than 'master'. We know it's confusing, but it's not easy to fix. In a nutshell, the code we inherited from Vyatta Core had its master branch so out of sync with everything it was beyond any repair. Vyatta developers used to create a new branch not when a release is ready for code freeze, but rather before starting to work on a new release. This is hard to change in existing code, so this is just the way it is, for now.
All new code goes to the 'current' branch. When it's time for a code freeze, a new branch is created for the release, and new code from 'current' is backported to the release branch as needed.

Outline of work

Work to port VyOS to Jessie:

  1. A new image build system called vyos-build (status: under heavy development)
    1. 64-bit build status: works & starts up a real vyos machine using Kim's branch
    2. 32-bit build status: being hacked by User:Trickv
  2. Upgrading the kernel package (status: 4.4.0 on vyos current)
  3. Review each package and make sure it compiles cleanly
    1. Switch any packages (ddclient? wpa? etc) to use upstream versions if sensible
  4. Fix bugs until it boots
  5. Build AWS AMIs inline with vyos-build: https://github.com/trickv/vyos-build/tree/vm
  6. Test everything and fix bugs
    1. Serverspec: https://github.com/primeroz/serverspec_vyos_testing
    2. Put it in jenkins

Areas to review closely

  1. Anything to do with the switch to systemd
    1. serial consoles don't work (hack: https://lists.debian.org/debian-user/2015/09/msg00040.html)
    2. systemd is trying to start lighttpd (systemctl | grep lighttpd)
  2. add the console-data package? So physical consoles other than en_US can run loadkeys in a pinch.
  3. inittab usage:
vagrant@debian-jessie:~/vyos-build$ ack --ignore-dir=packages/vyos-kernel inittab
data/live-build-config/hooks/05-event_tty.chroot
31:if [ -r etc/inittab ] && [ -c dev/ttyS0 ] && grep -q '^#T0:.*getty.*ttyS0' etc/inittab ; then
33:    sed -i '/^#T0:/s|^#.*$|T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100|' etc/inittab

packages/vyatta-cfg-system/templates/system/options/ctrl-alt-del-action/node.def
16:      /etc/inittab"
19:      /etc/inittab"
22:      /etc/inittab"
25:  # Reload /etc/inittab for change to take effect

packages/vyatta-cfg-system/debian/vyatta-cfg-system.postinst.in
190:sed -i -e '/^ca/s/\/sbin\/shutdown .*$/\/bin\/echo "Ctrl\-Alt\-Del disabled."/' /etc/inittab

packages/vyatta-cfg-system/debian/changelog
301:  * vyatta-cfg-system: changes to update_inittab for xen console access
2434:  * Mark the Vyatta specific section of inittab
2808:  * Need to be root to write /etc/inittab

packages/vyatta-cfg-system/scripts/system/vyatta_update_console.pl
19:# Update console configuration in /etc/inittab and grub
47:my $INITTAB = "/etc/inittab";
48:my $TMPTAB  = "/tmp/inittab.$$";
50:sub update_inittab {
51:    open(my $inittab, '<', $INITTAB)
57:    # Clone original inittab but remove all references to serial lines
59:    print {$tmp} grep {!/^T|^# Vyatta|^h/} <$inittab>;
60:    close $inittab;
97:        # This is same as telinit q - it tells init to re-examine inittab
138:update_inittab;

packages/vyatta-cfg-system/scripts/install-system
1437:    # Comment out serial port entry and add Xen console entry to inittab.
1438:    inittab=$rootfsdir/etc/inittab
1439:    sed -i -e 's/^T0/#T0/' $inittab
1440:    echo "" >> $inittab
1441:    echo "h0:12345:respawn:/sbin/getty 38400 hvc0" >> $inittab

packages/vyatta-cfg/debian/changelog
1807:  * Have init reread inittab after config