Merge branch 'upstream'
authorIan Kelling <iank@fsf.org>
Thu, 4 Jul 2019 03:28:46 +0000 (23:28 -0400)
committerIan Kelling <iank@fsf.org>
Thu, 4 Jul 2019 03:28:46 +0000 (23:28 -0400)
Tested with flidas vm.

1  2 
fai/config/basefiles/mk-basefile
fai/config/class/DEBIAN.var
fai/config/hooks/instsoft.DEBIAN
fai/config/package_config/UBUNTU
fai/config/scripts/DEBIAN/30-interface
fai/config/scripts/GRUB_PC/10-setup
fai/config/scripts/LAST/50-misc

Simple merge
Simple merge
index 41191730a3a11a48ad13f07857184ce65dcdc0be,35ac3064f48afe0b4848f917bec04f1353705a8e..34e6ebbfbc92764394109d684c6ffc27c3b2d0ed
@@@ -8,13 -7,12 +8,11 @@@ if [ $FAI_ACTION != "install" -a $FAI_A
  fi
  
  fcopy -Bi /etc/apt/apt.conf.d/force_confdef
 -ainsl -a  /etc/ucf.conf "^conf_force_conffold=YES"
  
- # ian: on flidas this gives an error: update-locale: Error: invalid locale settings:  LANG=en_US.UTF-8
- # # in case the locales are already included inside the base file (Ubuntu)
- # if [ -f $target/usr/sbin/locale-gen ]; then
- #     $ROOTCMD dpkg-reconfigure -fnoninteractive locales
- #     exit
- # fi
+ # in case the locales are already included inside the base file (Ubuntu)
+ if [ -f $target/usr/sbin/locale-gen ]; then
+     exit
+ fi
  
  # if we want to install locales, install them now
  install_packages -l 2>/dev/null | egrep  -q  ' locales|locales '
index 81670da2456755c1bd0e776cb2865fe4bd3eaff8,47e9e73eeeeaa04977e34e5bcb411b9c81bf3ec2..a2de98e5a82f66b6bfdce1da53dc597a06e0e1e8
@@@ -23,15 -9,12 +23,13 @@@ PACKAGES install AMD6
  linux-image-generic
  memtest86+
  
 +# duplicated in DEBIAN
  PACKAGES install GRUB_PC
 -grub-pc
 +grub-pc cryptsetup btrfs-tools mbuffer sudo bridge-utils netcat-openbsd resolvconf lsof
 +
  
 -PACKAGES install
 -ubuntu-minimal
 -ubuntu-server
 +PACKAGES install FLIDAS64 XENIAL64
 +linux-image-generic-hwe-8.0
  
- PACKAGES install XORG
- ubuntu-desktop
- ubuntu-standard
- ubuntu-minimal
+ PACKAGES install GERMAN
+ language-pack-gnome-de
index 72f04a00781407bce1e5fa7b17b9f18787082d8c,34c98e81aa5591b790912bf64a26b1dd84d4f625..5955f7b3b9bdf76efa4ec398f288bac79f398eb1
@@@ -1,8 -1,51 +1,54 @@@
  #! /bin/bash
  
 +# modified from upstream fai example
 +error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code
 +
+ netplan_yaml() {
+     # network configuration using ubuntu's netplan.io
+     local IFNAME="$1"
+     local METHOD="$2"
+     echo     "Generating netplan configuration for $IFNAME ($METHOD)" >&2
+     echo     "# generated by FAI"
+     echo     "network:"
+     echo     "  version: 2"
+     echo     "  renderer: $RENDERER"
+     case "$RENDERER" in
+       networkd)
+         echo     "  ethernets:"
+         echo     "    $IFNAME:"
+         case "$METHOD" in
+           dhcp)
+             echo "      dhcp4: true"
+             ;;
+           static)
+             echo "      addresses: [$CIDR]"
+             echo "      gateway4: $GATEWAYS_1"
+             echo "      nameservers:"
+             echo "        search: [$DOMAIN]"
+             echo "        addresses: [${DNSSRVS// /, }]"
+             ;;
+         esac
+     esac
+ }
+ iface_stanza() {
+     # classic network configuration using /etc/network/interfaces
+     local IFNAME="$1"
+     local METHOD="$2"
+     echo "Generating interface configuration for $IFNAME ($METHOD)" >&2
+     echo "# generated by FAI"
+     echo "auto $IFNAME"
+     echo "iface $IFNAME inet $METHOD"
+     case "$METHOD" in
+       static)
+         echo "    address $IPADDR"
+         echo "    netmask $NETMASK"
+         echo "    broadcast $BROADCAST"
+         echo "    gateway $GATEWAYS"
+         ;;
+     esac
+ }
  newnicnames() {
  
      # determine predictable network names only for stretch and above
  }
  
  if [ -z "$NIC1" ]; then
-     echo "ERROR: \$NIC1 is not defined. Cannot configure /etc/network/interfaces properly."
+     echo "WARNING: \$NIC1 is not defined. Cannot add ethernet to /etc/network/interfaces."
  fi
- newnicnames
  CIDR=$(ip -o -f inet addr show $NIC1 | awk '{print $4}')
- if ifclass DHCPC && [ $FAI_ACTION = "install" -o $FAI_ACTION = "dirinstall" ]; then
+ newnicnames
+ case "$FAI_ACTION" in
+   install|dirinstall)
+     ifclass DHCPC && METHOD=dhcp || METHOD=static
+     ifclass XORG && RENDERER=NetworkManager || RENDERER=networkd
  
-     if ifclass VM; then
+     if [ -d $target/etc/netplan ]; then
+         # Ubuntu >= 17.10 with netplan.io
+         if [ -n "$NIC1" ]; then
+             netplan_yaml $NIC1 $METHOD > $target/etc/netplan/01-${NIC1}.yaml
+         fi
+     elif [ -d $target/etc/network/interfaces.d ]; then
+         # ifupdown >= 0.7.41 (Debian >= 8, Ubuntu >= 14.04)
 -        iface_stanza lo loopback > $target/etc/network/interfaces.d/lo
 -        if [ -n "$NIC1" -a ! -f $target/etc/NetworkManager/NetworkManager.conf ]; then
 -            iface_stanza $NIC1 $METHOD > $target/etc/network/interfaces.d/$NIC1
 -        fi
++      if ifclass VM; then
 +        # note, this condition would apply to the elif below too,
 +        # but I don't specify a static ip in fai, so not bothering
 +        cat > $target/etc/network/interfaces <<-EOF
 +      # generated by FAI
 +      auto lo $NIC1
 +      iface lo inet loopback
 +      iface $NIC1 inet dhcp
 +EOF
-     else
++      else
 +        cat > $target/etc/network/interfaces <<-EOF
 +        # generated by FAI
 +        auto lo br0
 +        iface lo inet loopback
 +        iface $NIC1 inet manual
 +        # make a bridge by default so we can have bridged vms.
 +        # Some example I read had stp on, but i don't need stp,
 +        # and it causes a vm to fail pxe boot, presumably unless
 +        # you add some delay.
 +        # http://wiki.libvirt.org/page/PXE_boot_%28or_dhcp%29_on_guest_failed
 +        iface br0 inet dhcp
 +          bridge_ports $NIC1
 +          bridge_stp off
 +          bridge_maxwait 0
 +EOF
++      fi
+     else
 -        (
 -            iface_stanza lo loopback
 -            iface_stanza $NIC1 $METHOD
 -        ) > $target/etc/network/interfaces
++      (
++        iface_stanza lo loopback
++        iface_stanza $NIC1 $METHOD
++      ) > $target/etc/network/interfaces
      fi
- elif [ $FAI_ACTION = "install" -o $FAI_ACTION = "dirinstall" ]; then
-     [ -n "$CIDR" ] && cat > $target/etc/network/interfaces <<-EOF
-       # generated by FAI
-       auto lo $NIC1
-       iface lo inet loopback
-       iface $NIC1 inet static
-         address $CIDR
-         gateway $GATEWAYS
- EOF
-     [ -n "$NETWORK" ] && echo "localnet $NETWORK" > $target/etc/networks
-     if [ ! -L $target/etc/resolv.conf -a -e /etc/resolv.conf ]; then
-       cp -p /etc/resolv.conf $target/etc
+     if ! ifclass DHCPC ; then
+         [ -n "$NETWORK" ] && echo "localnet $NETWORK" > $target/etc/networks
+         if [ ! -L $target/etc/resolv.conf -a -e /etc/resolv.conf ]; then
+             cp -p /etc/resolv.conf $target/etc
+         fi
      fi
- fi
+     ;;
+ esac
  
  # here fcopy is mostly used, when installing a client for running in a
  # different subnet than during the installation
index 00829e110a7ecc3acff8ab60f789c4a9c3e9481c,55632754b2eab15de9759def493baa7c2d38ae80..a78df0cb408dfa5b8b6b18773bfa7fbc80c7bb4e
@@@ -38,22 -41,11 +43,14 @@@ if [[ $BOOT_DEVICE =~ '/dev/md' ]]; the
        echo Install grub on /dev/$device
        $ROOTCMD grub-install --no-floppy "/dev/$device"
      done
- elif [[ $GROOT =~ 'hostdisk' ]]; then
-     for dev in $BOOT_DEVICE; do
-         $ROOTCMD grub-install --no-floppy --modules=part_msdos $dev
-         if [ $? -eq 0 ]; then
-             echo "Grub installed on hostdisk $BOOT_DEVICE"
-         fi
-     done
  else
 -    $ROOTCMD grub-install --no-floppy "$GROOT"
 -    if [ $? -eq 0 ]; then
 -        echo "Grub installed on $BOOT_DEVICE = $GROOT"
 -    fi
 +    for dev in $BOOT_DEVICE; do
 +        GROOT=$($ROOTCMD grub-probe -tdrive -d $dev)
 +        $ROOTCMD grub-install --no-floppy "$GROOT"
 +        if [ $? -eq 0 ]; then
 +            echo "Grub installed on $dev = $GROOT"
 +        fi
 +    done
  fi
  $ROOTCMD update-grub
  
Simple merge