Browse Source

Merge pull request #440 from netbootxyz/development

RC 1.9.91
Antony Messerli 5 năm trước cách đây
mục cha
commit
41b9aaf5e6
39 tập tin đã thay đổi với 595 bổ sung168 xóa
  1. 11 11
      .travis.yml
  2. 32 0
      Dockerfile-build.production
  3. 15 13
      README.md
  4. 127 45
      endpoints.yml
  5. 5 1
      roles/netbootxyz/defaults/main.yml
  6. 0 4
      roles/netbootxyz/files/ipxe/local/nap.h.efi
  7. 0 2
      roles/netbootxyz/files/ipxe/local/usb.h.efi
  8. 6 0
      roles/netbootxyz/tasks/generate_checksums.yml
  9. 4 0
      roles/netbootxyz/tasks/generate_disks.yml
  10. 54 0
      roles/netbootxyz/tasks/generate_disks_arm.yml
  11. 11 1
      roles/netbootxyz/tasks/generate_disks_efi.yml
  12. 11 0
      roles/netbootxyz/tasks/generate_disks_legacy.yml
  13. 21 0
      roles/netbootxyz/tasks/generate_menus.yml
  14. 1 1
      roles/netbootxyz/tasks/generate_signatures.yml
  15. 0 3
      roles/netbootxyz/tasks/main.yml
  16. 19 12
      roles/netbootxyz/templates/index.html.j2
  17. 52 0
      roles/netbootxyz/templates/menu/about.ipxe.j2
  18. 6 6
      roles/netbootxyz/templates/menu/boot.cfg.j2
  19. 27 0
      roles/netbootxyz/templates/menu/live-deepin.ipxe
  20. 1 1
      roles/netbootxyz/templates/menu/live-elementary.ipxe.j2
  21. 28 0
      roles/netbootxyz/templates/menu/live-lite.ipxe
  22. 27 0
      roles/netbootxyz/templates/menu/live-neon.ipxe
  23. 27 4
      roles/netbootxyz/templates/menu/live-popos.ipxe.j2
  24. 27 0
      roles/netbootxyz/templates/menu/live-regolith.ipxe
  25. 3 3
      roles/netbootxyz/templates/menu/live-voyager.ipxe.j2
  26. 4 0
      roles/netbootxyz/templates/menu/live.ipxe.j2
  27. 9 5
      roles/netbootxyz/templates/menu/menu.ipxe.j2
  28. 21 0
      roles/netbootxyz/templates/menu/netinfo.ipxe.j2
  29. 0 45
      roles/netbootxyz/templates/menu/news.ipxe.j2
  30. 4 0
      roles/netbootxyz/templates/version.ipxe.j2
  31. 2 0
      roles/netbootxyz/vars/debian.yml
  32. 2 0
      roles/netbootxyz/vars/redhat.yml
  33. 2 0
      roles/netbootxyz/vars/ubuntu.yml
  34. 13 9
      script/build_release
  35. 1 0
      script/message
  36. 12 1
      script/netbootxyz-overrides.yml
  37. 1 0
      script/pre_install
  38. 8 0
      script/retrieve_certs
  39. 1 1
      version.txt

+ 11 - 11
.travis.yml

@@ -1,14 +1,10 @@
 sudo: true
-
 language: bash
-
 services:
   - docker
-
 env:
   global:
     - DEBIAN_FRONTEND="noninteractive"
-
 jobs:
   include:
     - stage: test
@@ -23,6 +19,8 @@ jobs:
 
     - stage: development
       if: branch = development AND type != pull_request
+      before_install:
+        - ./script/retrieve_certs
       script:
         - ./script/build_release dev
       after_failure:
@@ -49,7 +47,7 @@ jobs:
     - stage: release-candidate
       if: branch = RC AND type != pull_request
       before_install:
-        - ./script/pre_install
+        - ./script/retrieve_certs
       script:
         - ./script/build_release rc
       workspaces:
@@ -66,7 +64,7 @@ jobs:
           edge: true
           access_key_id: $AWS_ACCESS_KEY_ID
           secret_access_key: $AWS_SECRET_ACCESS_KEY
-          bucket: $BUCKET_LIVE
+          bucket: $BUCKET_STAGING
           local_dir: s3out-latest
           upload-dir: rc
           skip_cleanup: true
@@ -76,7 +74,7 @@ jobs:
           edge: true
           access_key_id: $AWS_ACCESS_KEY_ID
           secret_access_key: $AWS_SECRET_ACCESS_KEY
-          bucket: $BUCKET_LIVE
+          bucket: $BUCKET_STAGING
           local_dir: s3out
           upload-dir: $RELEASE_TAG
           skip_cleanup: true
@@ -104,11 +102,13 @@ jobs:
             branch: RC
       after_deploy:
         - aws configure set preview.cloudfront true
-        - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_BOOT --paths "rc/*" "rc/ipxe/*"
+        - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_STAGING --paths "rc/*" "rc/ipxe/*"
         - ./script/message rc-push
 
     - stage: release
       if: branch = master AND type != pull_request
+      before_install:
+        - ./script/retrieve_certs
       script:
         - ./script/build_release release
       workspaces:
@@ -125,7 +125,7 @@ jobs:
           edge: true
           access_key_id: $AWS_ACCESS_KEY_ID
           secret_access_key: $AWS_SECRET_ACCESS_KEY
-          bucket: $BUCKET_LIVE
+          bucket: $BUCKET_PROD
           local_dir: s3out-latest
           skip_cleanup: true
           on:
@@ -134,7 +134,7 @@ jobs:
           edge: true
           access_key_id: $AWS_ACCESS_KEY_ID
           secret_access_key: $AWS_SECRET_ACCESS_KEY
-          bucket: $BUCKET_LIVE
+          bucket: $BUCKET_PROD
           local_dir: s3out
           upload-dir: $RELEASE_TAG
           skip_cleanup: true
@@ -161,5 +161,5 @@ jobs:
             branch: master
       after_deploy:
         - aws configure set preview.cloudfront true
-        - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_BOOT --paths "/*" "/ipxe/*"
+        - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_PROD --paths "/*" "/ipxe/*"
         - ./script/message live-push

+ 32 - 0
Dockerfile-build.production

@@ -0,0 +1,32 @@
+FROM ubuntu:bionic as builder
+
+RUN \
+ echo "**** install deps ****" && \
+ apt-get update && \
+ apt-get install -y \
+	ansible \
+	apache2  \
+	build-essential \
+	dosfstools \
+	genisoimage \
+	git \
+	liblzma-dev \
+	python-minimal \
+	python-yaml \
+	syslinux
+
+# repo for build
+COPY . /ansible
+
+RUN \
+ echo "**** running ansible ****" && \
+ cd /ansible && \
+ ansible-playbook -i inventory site.yml --extra-vars "@script/netbootxyz-overrides.yml"
+
+# runtime stage
+FROM alpine:3.10
+
+COPY --from=builder /var/www/html/ /mnt/
+COPY docker-build-root/ /
+
+ENTRYPOINT [ "/dumper.sh" ]

+ 15 - 13
README.md

@@ -1,31 +1,33 @@
-## netboot.xyz - v2 - Under Construction
+## netboot.xyz
 
 [![Build Status](https://travis-ci.com/netbootxyz/netboot.xyz.svg?branch=master)](https://travis-ci.com/netbootxyz/netboot.xyz)
 [![Discord](https://img.shields.io/discord/425186187368595466)](https://discord.gg/An6PA2a)
+[![Release](https://img.shields.io/github/v/release/netbootxyz/netboot.xyz?color=hunter%20green)](https://github.com/netbootxyz/netboot.xyz/releases/latest)
 
 ![netboot.xyz menu](https://netboot.xyz/images/netboot.xyz.gif)
 
 ### Bootloader Downloads
 
-#### EFI Boot Loaders
+#### Legacy (PCBIOS) iPXE Bootloaders
 
 | Type | Bootloader | Description |
 |------|------------|-------------|
-|ISO|[netboot.xyz-efi.iso](https://boot.netboot.xyz/ipxe/netboot.xyz-efi.iso)| Same as ISO (Legacy) but used for EFI BIOS, works in Virtual Box EFI mode |
-|USB|[netboot.xyz-efi.usb](https://boot.netboot.xyz/ipxe/netboot.xyz-efi.usb)| Used for creation of USB Keys|
-|DHCP| [netboot.xyz.efi](https://boot.netboot.xyz/ipxe/netboot.xyz.efi)| DHCP EFI boot image file, uses built-in iPXE NIC drivers|
-|DHCP-snp|[netboot.xyz-snp.efi]() | DHCP EFI boot image file, use if you have NIC issues... need to build|
+|ISO| [netboot.xyz.iso](https://boot.netboot.xyz/ipxe/netboot.xyz.iso)| Used for CD/DVD, Virtual CDs, DRAC/iLO, VMware, Virtual Box |
+|USB| [netboot.xyz.usb](https://boot.netboot.xyz/ipxe/netboot.xyz.usb)| Used for creation of USB Keys|
+|Kernel| [netboot.xyz.lkrn](https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn)|Used for booting from GRUB/EXTLINUX|
+|Floppy| [netboot.xyz.dsk](https://boot.netboot.xyz/ipxe/netboot.xyz.dsk)| Virtual floppy disk for DRAC/iLO, VMware, Virtual Box, etc|
+|DHCP| [netboot.xyz.kpxe](https://boot.netboot.xyz/ipxe/netboot.xyz.kpxe)| DHCP boot image file, uses built-in iPXE NIC drivers|
+|DHCP-undionly| [netboot.xyz-undionly.kpxe](https://boot.netboot.xyz/ipxe/netboot.xyz-undionly.kpxe)| DHCP boot image file, use if you have NIC issues|
 
-#### Legacy Boot Loaders
+#### UEFI iPXE Bootloaders
 
 | Type | Bootloader | Description |
 |------|------------|-------------|
-|ISO| [netboot.xyz.iso](https://boot.netboot.xyz/ipxe/netboot.xyz.iso)| Used for CD/DVD, Virtual CDs like DRAC/iLO, VMware, Virtual Box (Legacy) |
-|Floppy| [netboot.xyz.dsk](https://boot.netboot.xyz/ipxe/netboot.xyz.dsk)| Used for 1.44 MB floppies, Virtual floppies like DRAC/iLO, VMware, Virtual Box|
-|USB| [netboot.xyz.usb](https://boot.netboot.xyz/ipxe/netboot.xyz.usb)| Used for creation of USB Keys|
-|Kernel| [netboot.xyz.lkrn](https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn)| Used for booting from GRUB/EXTLINUX|
-|DHCP| [netboot.xyz.kpxe](https://boot.netboot.xyz/ipxe/netboot.xyz.kpxe)| DHCP boot image file, uses built-in iPXE NIC drivers|
-|DHCP-undionly| [netboot.xyz-undionly.kpxe](https://boot.netboot.xyz/ipxe/netboot.xyz-undionly.kpxe)| DHCP boot image file, use if you have NIC issues|
+|ISO| [netboot.xyz-efi.iso](https://boot.netboot.xyz/ipxe/netboot.xyz-efi.iso)| Used for CD/DVD, Virtual CDs, DRAC/iLO, VMware, Virtual Box |
+|USB| [netboot.xyz-efi.usb](https://boot.netboot.xyz/ipxe/netboot.xyz-efi.usb)| Used for creation of USB Keys|
+|DHCP| [netboot.xyz.efi](https://boot.netboot.xyz/ipxe/netboot.xyz.efi)| DHCP boot image file, uses built-in iPXE NIC drivers|
+|DHCP-snp |	[netboot.xyz-snp.efi](https://boot.netboot.xyz/ipxe/netboot.xyz-snp.efi)| EFI w/ Simple Network Protocol, attempts to boot all net devices|
+|DHCP-snponly | [netboot.xyz-snponly.efi](https://boot.netboot.xyz/ipxe/netboot.xyz-snponly.efi)| EFI w/ Simple Network Protocol, only boots from device chained from|
 
 SHA256 checksums are generated during each build of iPXE and are located [here](https://boot.netboot.xyz/ipxe/netboot.xyz-sha256-checksums.txt).  You can also view the scripts that are embedded into the images [here](https://github.com/netbootxyz/netboot.xyz/tree/master/ipxe/disks).
 

+ 127 - 45
endpoints.yml

@@ -1,28 +1,28 @@
 endpoints:
   ubuntu-19.10-live-kernel:
-    path: /ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/
+    path: /ubuntu-core-19.10/releases/download/19.10-055f9330/
     files:
     - initrd
     - vmlinuz
     os: ubuntu
     version: '19.10'
   ubuntu-18.04-live-kernel:
-    path: /ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/
+    path: /ubuntu-core-18.04/releases/download/18.04.3-a9604c5c/
     files:
     - initrd
     - vmlinuz
     os: ubuntu
     version: '18.04'
   ubuntu-18.04-default-squash:
-    path: /ubuntu-squash/releases/download/18.04.3-9e60a38f/
+    path: /ubuntu-squash/releases/download/18.04.3-ec9c7fcb/
     files:
     - filesystem.squashfs
     os: ubuntu
     version: '18.04'
-    flavor: Unity
+    flavor: GNOME
     kernel: ubuntu-18.04-live-kernel
   debian-10-live-kernel:
-    path: /debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/
+    path: /debian-core-10/releases/download/10.2.0-a6a0d71a/
     files:
     - initrd
     - vmlinuz
@@ -36,7 +36,7 @@ endpoints:
     os: debian
     version: 9
   debian-10-default-squash:
-    path: /debian-squash/releases/download/10.2.0-600c59c0/
+    path: /debian-squash/releases/download/10.2.0-261680b8/
     files:
     - filesystem.squashfs
     os: debian
@@ -141,7 +141,7 @@ endpoints:
     flavor: Budgie
     kernel: ubuntu-19.10-live-kernel
   debian-10-xfce-squash:
-    path: /debian-squash/releases/download/10.2.0-a0eae41d/
+    path: /debian-squash/releases/download/10.2.0-88850720/
     files:
     - filesystem.squashfs
     os: debian
@@ -149,7 +149,7 @@ endpoints:
     flavor: xfce
     kernel: debian-10-live-kernel
   debian-10-gnome-squash:
-    path: /debian-squash/releases/download/10.2.0-787d3b4a/
+    path: /debian-squash/releases/download/10.2.0-7190cd0e/
     files:
     - filesystem.squashfs
     os: debian
@@ -157,7 +157,7 @@ endpoints:
     flavor: gnome
     kernel: debian-10-live-kernel
   debian-10-cinnamon-squash:
-    path: /debian-squash/releases/download/10.2.0-51162b7a/
+    path: /debian-squash/releases/download/10.2.0-aa8809e8/
     files:
     - filesystem.squashfs
     os: debian
@@ -173,7 +173,7 @@ endpoints:
     flavor: kylin
     kernel: ubuntu-19.10-live-kernel
   debian-10-kde-squash:
-    path: /debian-squash/releases/download/10.2.0-88a7a1a3/
+    path: /debian-squash/releases/download/10.2.0-ed31d8ba/
     files:
     - filesystem.squashfs
     os: debian
@@ -181,7 +181,7 @@ endpoints:
     flavor: kde
     kernel: debian-10-live-kernel
   debian-10-lxde-squash:
-    path: /debian-squash/releases/download/10.2.0-30a4aa90/
+    path: /debian-squash/releases/download/10.2.0-857dadd8/
     files:
     - filesystem.squashfs
     os: debian
@@ -189,7 +189,7 @@ endpoints:
     flavor: lxde
     kernel: debian-10-live-kernel
   debian-10-lxqt-squash:
-    path: /debian-squash/releases/download/10.2.0-39d7e341/
+    path: /debian-squash/releases/download/10.2.0-be320467/
     files:
     - filesystem.squashfs
     os: debian
@@ -197,7 +197,7 @@ endpoints:
     flavor: lxqt
     kernel: debian-10-live-kernel
   debian-10-mate-squash:
-    path: /debian-squash/releases/download/10.2.0-466ca031/
+    path: /debian-squash/releases/download/10.2.0-c7211dca/
     files:
     - filesystem.squashfs
     os: debian
@@ -205,12 +205,12 @@ endpoints:
     flavor: mate
     kernel: debian-10-live-kernel
   ubuntu-19.10-default-squash:
-    path: /ubuntu-squash/releases/download/ee829212-575f2ecf/
+    path: /ubuntu-squash/releases/download/ee829212-78d4b89c/
     files:
     - filesystem.squashfs
     os: ubuntu
     version: '19.10'
-    flavor: Unity
+    flavor: GNOME
     kernel: ubuntu-19.10-live-kernel
   fedora-31-gnome:
     path: /fedora-assets/releases/download/1.9-808bb0da/
@@ -318,12 +318,14 @@ endpoints:
     flavor: XFCE
     kernel: manjaro-18.1.0-gui-kernel
   elementaryos-5-default-squash:
-    path: /ubuntu-squash/releases/download/5-14ff2c98/
+    path: /ubuntu-squash/releases/download/5-5d6d224c/
     files:
     - filesystem.squashfs
+    - initrd
+    - vmlinuz
     os: elementary-os
     version: '5'
-    kernel: ubuntu-18.04-live-kernel
+    kernel: elementaryos-5-default-squash
   kali-xfce-squash:
     path: /debian-squash/releases/download/2019.4-00ef2578/
     files:
@@ -349,7 +351,7 @@ endpoints:
     flavor: MATE
     kernel: kali-rolling-live-kernel
   kali-rolling-live-kernel:
-    path: /debian-core-10/releases/download/5.3.9-3kali1-e9b26579/
+    path: /debian-core-10/releases/download/2019.4-e865a2ba/
     files:
     - initrd
     - vmlinuz
@@ -394,19 +396,25 @@ endpoints:
     version: '4.0'
     kernel: tails-4.0-live-kernel
   pop-19.10-default-squash:
-    path: /ubuntu-squash/releases/download/10-317de200/
+    path: /ubuntu-squash/releases/download/10-bdc3fe0a/
     files:
     - filesystem.squashfs
+    - initrd
+    - vmlinuz
     os: pop
     version: '19.10'
-    kernel: ubuntu-19.10-live-kernel
+    kernel: pop-19.10-default-squash
+    flavor: intel-amd
   pop-18.04-default-squash:
-    path: /ubuntu-squash/releases/download/57-b1e9a9cc/
+    path: /ubuntu-squash/releases/download/58-600b3df6/
     files:
     - filesystem.squashfs
+    - initrd
+    - vmlinuz
     os: pop
     version: '18.04'
-    kernel: ubuntu-18.04-live-kernel
+    kernel: pop-18.04-default-squash
+    flavor: intel-amd
   manjaro-18.1.0-architect-kernel:
     path: /manjaro-core-18.x/releases/download/4.19.69-1-MANJARO-6946b4cf/
     files:
@@ -424,15 +432,15 @@ endpoints:
     flavor: gui
     version: 18.1.0
   mint-19-xfce-squash:
-    path: /ubuntu-squash/releases/download/19.2-69724a44/
+    path: /ubuntu-squash/releases/download/19.3-2ab2d1ac/
     files:
     - filesystem.squashfs
     os: mint
     version: '19'
     flavor: xfce
-    kernel: ubuntu-18.04-live-kernel
+    kernel: mint-19-cinnamon-squash
   mint-19-mate-squash:
-    path: /ubuntu-squash/releases/download/19.2-0b1e2ee6/
+    path: /ubuntu-squash/releases/download/19.3-0b1e2ee6/
     files:
     - filesystem.squashfs
     os: mint
@@ -440,82 +448,156 @@ endpoints:
     flavor: MATE
     kernel: ubuntu-18.04-live-kernel
   mint-19-cinnamon-squash:
-    path: /ubuntu-squash/releases/download/19.2-0830904d/
+    path: /ubuntu-squash/releases/download/19.3-07dde199/
     files:
     - filesystem.squashfs
+    - initrd
+    - vmlinuz
     os: mint
     version: '19'
     flavor: Cinnamon
-    kernel: ubuntu-18.04-live-kernel
+    kernel: mint-19-cinnamon-squash
   zorin-15-gnome-squash:
-    path: /ubuntu-squash/releases/download/15-ad033efa/
+    path: /ubuntu-squash/releases/download/15-0d68e4b7/
     files:
     - filesystem.squashfs
+    - initrd
+    - vmlinuz
     os: zorin
     version: '15'
     flavor: GNOME
-    kernel: ubuntu-18.04-live-kernel
+    kernel: zorin-15-gnome-squash
   zorin-15-xfce-squash:
-    path: /ubuntu-squash/releases/download/15-f5884501/
+    path: /ubuntu-squash/releases/download/15-8af7469b/
     files:
     - filesystem.squashfs
     os: zorin
     version: '15'
     flavor: XFCE
-    kernel: ubuntu-18.04-live-kernel
+    kernel: zorin-15-gnome-squash
   peppermint-10-default-squash:
-    path: /ubuntu-squash/releases/download/10-3bce362b/
+    path: /ubuntu-squash/releases/download/20191210-9c6b8ab1/
     files:
     - filesystem.squashfs
+    - initrd
+    - vmlinuz
     os: peppermint
     version: '10'
     flavor: LXDE
-    kernel: ubuntu-18.04-live-kernel
+    kernel: peppermint-10-default-squash
   backbox-6-default-squash:
-    path: /ubuntu-squash/releases/download/6-b44ce5ee/
+    path: /ubuntu-squash/releases/download/6-ff530dc8/
     files:
     - filesystem.squashfs
+    - initrd
+    - vmlinuz
     os: BackBox
     version: '6'
     flavor: default
-    kernel: ubuntu-18.04-live-kernel
+    kernel: backbox-6-default-squash
   q4os-3.9-default-squash:
-    path: /debian-squash/releases/download/3.9-a721c7cc/
+    path: /debian-squash/releases/download/3.9-7c9b0332/
     files:
     - filesystem.squashfs
+    - initrd
+    - vmlinuz
     os: Q4OS
     version: '3.9'
     flavor: trinity
-    kernel: debian-10-live-kernel
+    kernel: q4os-3.9-default-squash
   q4os-3.9-plasma-squash:
-    path: /debian-squash/releases/download/3.9-8b894afb/
+    path: /debian-squash/releases/download/3.9-1a29e21a/
     files:
     - filesystem.squashfs
     os: Q4OS
     version: '3.9'
     flavor: plasma
-    kernel: debian-10-live-kernel
+    kernel: q4os-3.9-default-squash
   voyager-bionic-squash:
-    path: /ubuntu-squash/releases/download/bionic-c535c643/
+    path: /ubuntu-squash/releases/download/bionic-0e8c475e/
     files:
     - filesystem.squashfs
+    - initrd
+    - vmlinuz
     os: Voyager
     version: bionic
     flavor: bionic
-    kernel: ubuntu-18.04-live-kernel
+    kernel: voyager-bionic-squash
   voyager-buster-squash:
-    path: /debian-squash/releases/download/buster-1e606829/
+    path: /debian-squash/releases/download/buster-e9d36b68/
     files:
     - filesystem.squashfs
+    - initrd
+    - vmlinuz
     os: Voyager
     version: buster
     flavor: buster
-    kernel: debian-10-live-kernel
+    kernel: voyager-buster-squash
   voyager-eoan-squash:
-    path: /ubuntu-squash/releases/download/eoan-5a6a8fab/
+    path: /ubuntu-squash/releases/download/eoan-6d5edebf/
     files:
     - filesystem.squashfs
+    - initrd
+    - vmlinuz
     os: Voyager
     version: eoan
     flavor: eoan
-    kernel: ubuntu-19.10-live-kernel
+    kernel: voyager-eoan-squash
+  kde-neon-user:
+    path: /ubuntu-squash/releases/download/20191205-1116-0e301ad7/
+    files:
+    - initrd
+    - vmlinuz
+    - filesystem.squashfs
+    os: neon
+    version: '18.04'
+    flavor: user
+    kernel: kde-neon-user
+  regolith-current:
+    path: /ubuntu-squash/releases/download/1.2-e759dca4/
+    files:
+    - initrd
+    - vmlinuz
+    - filesystem.squashfs
+    os: regolith
+    version: current
+    flavor: ubuntu
+    kernel: regolith-current
+  pop-18.04-nvidia-squash:
+    path: /ubuntu-squash/releases/download/58-316fd7f7/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: pop
+    version: '18.04'
+    flavor: nvidia
+    kernel: pop-18.04-nvidia-squash
+  pop-19.10-nvidia-squash:
+    path: /ubuntu-squash/releases/download/10-3882d464/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: pop
+    version: '19.10'
+    flavor: nvidia
+    kernel: pop-19.10-nvidia-squash
+  linux-lite-4-squash:
+    path: /ubuntu-squash/releases/download/4.6-816de7f4/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: lite
+    version: '4'
+    kernel: linux-lite-4-squash
+  deepin-15-squash:
+    path: /debian-squash/releases/download/15.11-f87a92e4/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: Deepin
+    version: '15'
+    kernel: deepin-15-squash

+ 5 - 1
roles/netbootxyz/defaults/main.yml

@@ -29,6 +29,7 @@ live_endpoint: "https://github.com/netbootxyz"
 
 # generates menus
 generate_menus: true
+generate_version_file: false
 
 # generates signatures for source files
 generate_checksums: true
@@ -36,6 +37,9 @@ checksums_filename: "{{ site_name }}-sha256-checksums.txt"
 
 # bootloader options
 generate_disks: true
+generate_disks_legacy: true
+generate_disks_efi: true
+generate_disks_arm: false
 bootloader_https_enabled: true
 bootloader_http_enabled: true
 bootloader_disks:
@@ -464,7 +468,7 @@ bootloaders:
     - type: "USB"
       ipxe_bin: "ipxe-efi.usb"
       output_bin: "-efi.usb"
-      desc: "Used for booting from GRUB/EXTLINUX"
+      desc: "Used for creation of USB Keys"
     - type: "DHCP"
       ipxe_bin: "ipxe.efi"
       output_bin: ".efi"

+ 0 - 4
roles/netbootxyz/files/ipxe/local/nap.h.efi

@@ -1,4 +0,0 @@
-/* nap.h */
-#undef NAP_EFIX86
-#undef NAP_EFIARM
-#define NAP_NULL

+ 0 - 2
roles/netbootxyz/files/ipxe/local/usb.h.efi

@@ -1,2 +0,0 @@
-/* usb.h */
-#define	USB_EFI	

+ 6 - 0
roles/netbootxyz/tasks/generate_checksums.yml

@@ -26,6 +26,12 @@
       src: checksums.txt.j2
       dest: "{{ netbootxyz_root }}/ipxe/{{ checksums_filename }}"
 
+  - name: Generate site name banner for index
+    shell: toilet -f standard {{ site_name }} --html | grep span
+    register: index_title
+    tags:
+      - skip_ansible_lint
+
   - name: Generate netboot.xyz index template
     template:
       src: index.html.j2

+ 4 - 0
roles/netbootxyz/tasks/generate_disks.yml

@@ -9,3 +9,7 @@
   - include: generate_disks_efi.yml
     when:
     - generate_disks_efi | default(true) | bool
+
+  - include: generate_disks_arm.yml
+    when:
+    - generate_disks_arm | default(false) | bool

+ 54 - 0
roles/netbootxyz/tasks/generate_disks_arm.yml

@@ -0,0 +1,54 @@
+---
+
+    - name: Copy netboot.xyz local EFI iPXE configs
+      copy:
+        src: "ipxe/local/{{ item }}"
+        dest: "{{ ipxe_source_dir }}/src/config/local/{{ item }}"
+      with_items:
+        - colour.h
+        - crypto.h
+
+    - name: Copy netboot.xyz general.h.efi iPXE config
+      copy:
+        src: "ipxe/local/general.h.efi"
+        dest: "{{ ipxe_source_dir }}/src/config/local/general.h"
+
+    - name: Set trust file to ipxe ca
+      set_fact:
+        trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }}"
+      when: not generate_signatures
+
+    - name: Combine trust files if set
+      set_fact:
+        trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }},{{ cert_dir }}/{{ cert_file_filename }}"
+      when: generate_signatures | bool
+
+    # iPXE workaround
+    # http://lists.ipxe.org/pipermail/ipxe-devel/2018-August/006254.html
+    # apply patch to fix arm64 builds on amd64 builds
+    - name: iPXE Workaround for arm
+      shell: sed -i '/WORKAROUND_CFLAGS/d' arch/arm64/Makefile
+      args:
+        chdir: "{{ ipxe_source_dir }}/src"
+      tags:
+      - skip_ansible_lint
+
+    - name: Compile iPXE bootloader for EFI arm64
+      shell: |
+        make clean
+        make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 \
+        EMBED={{ bootloader_filename }} \
+             TRUST={{ trust_files }} \
+             bin-arm64-efi/snp.efi
+      args:
+        chdir: "{{ ipxe_source_dir }}/src"
+      tags:
+      - skip_ansible_lint
+
+    - name: Copy iPXE arm64 EFI builds to http directory
+      copy:
+        src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
+        dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
+        remote_src: True
+      with_items:
+        - { src: "bin-arm64-efi/snp.efi", dest: "{{ bootloader_filename }}-arm64.efi" }

+ 11 - 1
roles/netbootxyz/tasks/generate_disks_efi.yml

@@ -73,4 +73,14 @@
       - { src: "bin-x86_64-efi/snp.efi", dest: "{{ bootloader_filename }}-snp.efi" }
       - { src: "bin-x86_64-efi/snponly.efi", dest: "{{ bootloader_filename }}-snponly.efi" }
       - { src: "ipxe-efi.eiso", dest: "{{ bootloader_filename }}-efi.iso" }
-      - { src: "ipxe-efi.usb", dest: "{{ bootloader_filename }}-efi.usb" }
+      - { src: "ipxe-efi.usb", dest: "{{ bootloader_filename }}-efi.usb" }
+    when: bootloader_filename != "netboot.xyz-packet"
+
+  - name: Copy iPXE EFI builds to http directory for packet
+    copy:
+      src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
+      dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
+      remote_src: True
+    with_items:
+      - { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi" }
+    when: bootloader_filename == "netboot.xyz-packet"

+ 11 - 0
roles/netbootxyz/tasks/generate_disks_legacy.yml

@@ -39,9 +39,20 @@
     - ".lkrn"
     - ".usb"
     - ".kpxe"
+    when: bootloader_filename != "netboot.xyz-packet"
+
+  - name: Copy iPXE files for Legacy BIOS to http directory
+    copy:
+      src: "{{ ipxe_source_dir }}/src/bin/ipxe{{ item }}"
+      dest: "{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}{{ item }}"
+      remote_src: True
+    with_items:
+    - ".kpxe"
+    when: bootloader_filename == "netboot.xyz-packet"
 
   - name: Copy undionly.kpxe for Legacy BIOS to http directory
     copy:
       src: "{{ ipxe_source_dir }}/src/bin/undionly.kpxe"
       dest: "{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}-undionly.kpxe"
       remote_src: True
+    when: bootloader_filename != "netboot.xyz-packet"

+ 21 - 0
roles/netbootxyz/tasks/generate_menus.yml

@@ -24,6 +24,27 @@
       path: "{{ netbootxyz_root }}"
       state: directory
 
+  - name: Get current menu version
+    shell: cat version.txt
+    register: menu_version
+    when:
+      - generate_version_file | bool
+    tags:
+      - skip_ansible_lint
+
+  - name: Set menu version
+    set_fact:
+      upstream_version: "{{ menu_version.stdout }}"
+    when:
+      - generate_version_file | bool
+
+  - name: Generate version.ipxe for upstream
+    template:
+      src: "version.ipxe.j2"
+      dest: "{{ netbootxyz_root }}/version.ipxe"
+    when:
+      - generate_version_file | bool
+
   - name: Generate netboot.xyz source files templates
     template:
       src: "{{ item.src }}"

+ 1 - 1
roles/netbootxyz/tasks/generate_signatures.yml

@@ -15,7 +15,7 @@
   - name: Generate signatures for source files
     shell: |
       openssl cms -sign -binary -noattr -in {{ netbootxyz_root }}/{{ item }} \
-      -signer {{ codesign_cert_location }} -inkey {{ codesign_key_location }} -certfile {{ cert_file_location }} -outform DER \
+      -signer {{ codesign_cert_filename }} -inkey {{ codesign_key_filename }} -certfile {{ cert_file_filename }} -outform DER \
       -out {{ sigs_dir }}/{{ item }}.sig
     args:
       chdir: "{{ cert_dir }}"

+ 0 - 3
roles/netbootxyz/tasks/main.yml

@@ -10,9 +10,6 @@
   - include: generate_signatures.yml
     when:
     - generate_signatures | default(false) | bool
-    - codesign_cert_location is defined
-    - codesign_key_location is defined
-    - cert_file_location is defined
 
   - include: generate_disks.yml
     with_items:

+ 19 - 12
roles/netbootxyz/templates/index.html.j2

@@ -1,3 +1,15 @@
+#!ipxe
+####       {{ boot_domain }} initial loader        ####
+#### see https://netboot.xyz for more information ####
+{% if bootloader_https_enabled | bool %}
+set conn_type https
+chain --autofree https://{{ boot_domain }}/menu.ipxe || echo HTTPS failed... attempting HTTP...
+{% endif %}
+{% if bootloader_http_enabled | bool %}
+set conn_type http
+chain --autofree http://{{ boot_domain }}/menu.ipxe || echo HTTP failed, localbooting...
+{% endif %}
+
 <!DOCTYPE html>
 <html lang="en">
   <head>
@@ -11,12 +23,7 @@
   </style>
   <body>
   <div style="font-family: monospace, fixed; font-weight: bold;">
-  <span style="">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;_&#160;&#160;&#160;_&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;_&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><br />
-  <span style="">&#160;_&#160;__&#160;&#160;&#160;___|&#160;|_|&#160;|__&#160;&#160;&#160;___&#160;&#160;&#160;___&#160;|&#160;|_&#160;&#160;__&#160;&#160;___&#160;&#160;&#160;_&#160;____</span><br />
-  <span style="">|&#160;&#39;_&#160;\&#160;/&#160;_&#160;\&#160;__|&#160;&#39;_&#160;\&#160;/&#160;_&#160;\&#160;/&#160;_&#160;\|&#160;__|&#160;\&#160;\/&#160;/&#160;|&#160;|&#160;|_&#160;&#160;/</span><br />
-  <span style="">|&#160;|&#160;|&#160;|&#160;&#160;__/&#160;|_|&#160;|_)&#160;|&#160;(_)&#160;|&#160;(_)&#160;|&#160;|_&#160;_&#160;&gt;&#160;&#160;&lt;|&#160;|_|&#160;|/&#160;/&#160;</span><br />
-  <span style="">|_|&#160;|_|\___|\__|_.__/&#160;\___/&#160;\___/&#160;\__(_)_/\_\\__,&#160;/___|</span><br />
-  <span style="">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|___/&#160;&#160;&#160;&#160;&#160;</span><br />
+  {{ index_title.stdout }}
   <p>
   Version: {{ boot_version }}<br>
   Powered by <a href=https://netboot.xyz>netboot.xyz</a>
@@ -30,15 +37,13 @@
        <th> Description </th>
     </tr>
     <!-- table rows -->
-    {% for bootloader_name in bootloader_disks %}
     {% for item in bootloaders.legacy %}
     <tr>
        <td> {{ item.type }} </td>
-       <td> <a href="ipxe/{{ bootloader_name }}{{ item.output_bin }}">{{ bootloader_name }}{{ item.output_bin }}</a> </td>
+       <td> <a href="ipxe/{{ site_name }}{{ item.output_bin }}">{{ site_name }}{{ item.output_bin }}</a> </td>
        <td> {{ item.desc }} </td>
     </tr>
     {% endfor %}
-    {% endfor %}
   </table>
 
   <p>UEFI iPXE Bootloaders</p>
@@ -51,16 +56,18 @@
        <th> Description </th>
     </tr>
     <!-- table rows -->
-    {% for bootloader_name in bootloader_disks %}
     {% for item in bootloaders.uefi %}
     <tr>
        <td> {{ item.type }} </td>
-       <td> <a href="ipxe/{{ bootloader_name }}{{ item.output_bin }}">{{ bootloader_name }}{{ item.output_bin }}</a> </td>
+       <td> <a href="ipxe/{{ site_name }}{{ item.output_bin }}">{{ site_name }}{{ item.output_bin }}</a> </td>
        <td> {{ item.desc }} </td>
     </tr>
     {% endfor %}
-    {% endfor %}
   </table>
+
+  <p>Checksums<p>
+
+  <a href="ipxe/{{ site_name }}-sha256-checksums.txt">SHA256 checksums</a>
   </div>
   </body>
 </html>

+ 52 - 0
roles/netbootxyz/templates/menu/about.ipxe.j2

@@ -0,0 +1,52 @@
+#!ipxe
+set esc:hex 1b
+set bold ${esc:string}[1m
+set ital ${esc:string}[3m
+set under ${esc:string}[4m
+set boldoff ${esc:string}[22m
+set italoff ${esc:string}[23m
+set underoff ${esc:string}[24m
+set fs_bla ${esc:string}[30m
+set fg_red ${esc:string}[31m
+set fg_gre ${esc:string}[32m
+set fg_yel ${esc:string}[33m
+set fg_blu ${esc:string}[34m
+set fg_mag ${esc:string}[35m
+set fg_cya ${esc:string}[36m
+set fg_whi ${esc:string}[37m
+
+:netabout
+echo Attempting to retrieve latest upstream version...
+chain https://boot.netboot.xyz/version.ipxe ||
+menu ${fg_cya}${bold}About netboot.xyz (Version: {{ boot_version }})
+item exit ${bold}Exit back to main menu...${boldoff}
+item --gap --  --------------------------------------------------------------------------
+item about ${fg_gre}${bold}Self Hosting and Live Booting - November 29, 2019
+item about ${fg_gre}${bold}Full Article: ${fg_whi}${bold}https://netboot.xyz/blog/
+item about
+item about ${fg_yel}${bold}* Self hosting options using Ansible and Docker (soon)
+item about ${fg_yel}${bold}* Live Boot options now available with more on the way
+item about ${fg_yel}${bold}${space}Allows you to PXE boot into a Live Desktop from Github
+item about ${fg_yel}${bold}* netboot.xyz repo moving to netbootxyz org on github
+item --gap --  --------------------------------------------------------------------------
+item about ${fg_cya}${bold}Follow us on Twitter: ${fg_whi}${bold}@netbootxyz
+item --gap --  --------------------------------------------------------------------------
+item about ${fg_gre}${bold}Join us on Discord: ${fg_whi}${bold}https://discord.gg/An6PA2a
+item --gap --  --------------------------------------------------------------------------
+item about ${fg_gre}${bold}Sponsorship: ${fg_whi}${bold}https://opencollective.com/netbootxyz
+item --gap --  --------------------------------------------------------------------------
+isset ${upstream_version} && goto display_version || goto skip_version
+:display_version
+iseq ${boot_version} ${upstream_version} || item --gap --  ${fg_gre}${bold}Latest netboot.xyz version available: ${fg_whi}${bold}${upstream_version}
+item --gap --  --------------------------------------------------------------------------
+:skip_version
+choose selected || goto exit
+goto ${selected}
+
+:about
+clear menu
+goto netabout
+
+:exit
+clear menu
+exit

+ 6 - 6
roles/netbootxyz/templates/menu/boot.cfg.j2

@@ -10,20 +10,20 @@ set boot_domain {{ boot_domain }}
 # set location of memdisk
 set memdisk {{ memdisk_location }}
 
+# set location of custom netboot.xyz live assets
+set live_endpoint {{ live_endpoint }}
+
 # signature check enabled?
-set sigs_enabled {{ sigs_enabled | default(false) | bool }}
+set sigs_enabled {{ sigs_enabled | default(false) | bool | lower }}
 
 # image signatures check enabled?
-set img_sigs_enabled {{ img_sigs_enabled | default(false) | bool }}
+set img_sigs_enabled {{ img_sigs_enabled | default(false) | bool | lower }}
 
 # set location of signatures for sources
 set sigs {{ sigs_location }}
 
 # set location of latest iPXE
-set ipxe_disk netboot.xyz-undionly.kpxe
-
-# set location of custom netboot.xyz live assets
-set live_endpoint {{ live_endpoint }}
+iseq ${platform} efi && set ipxe_disk netboot.xyz-snponly.efi || set ipxe_disk netboot.xyz-undionly.kpxe
 
 ##################
 # official mirrors

+ 27 - 0
roles/netbootxyz/templates/menu/live-deepin.ipxe

@@ -0,0 +1,27 @@
+#!ipxe
+
+goto ${menu} ||
+
+:live_menu
+set os Deepin
+menu ${os} - Current Arch [ ${arch} ]
+iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
+item --gap ${os} Versions
+item 15 ${space} ${os} 15
+choose live_version || goto live_exit
+goto ${live_version}
+
+:15
+set squash_url ${live_endpoint}{{ endpoints["deepin-15-squash"].path }}filesystem.squashfs
+set kernel_url ${live_endpoint}{{ endpoints["deepin-15-squash"].path }}
+goto live-boot
+
+:15-boot
+imgfree
+kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} union=overlay livecd-installer initrd=initrd
+initrd ${kernel_url}initrd
+boot
+
+:live_exit
+clear menu
+exit 0

+ 1 - 1
roles/netbootxyz/templates/menu/live-elementary.ipxe.j2

@@ -7,7 +7,7 @@ set os elementary OS
 menu ${os} - Current Arch [ ${arch} ]
 iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
 item --gap ${os} Versions
-item elementaryos-5-default-squash ${space} ${os} 5 (Juno)
+item elementaryos-5-default-squash ${space} ${os} 5
 choose live_version || goto live_exit
 goto ${live_version}
 

+ 28 - 0
roles/netbootxyz/templates/menu/live-lite.ipxe

@@ -0,0 +1,28 @@
+#!ipxe
+
+goto ${menu} ||
+
+:live_menu
+set os Linux Lite
+menu ${os} - Current Arch [ ${arch} ]
+item --gap Use the username linuxlite with a blank password
+iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
+item --gap ${os} Versions
+item 4 ${space} ${os} 4
+choose live_version || goto live_exit
+goto ${live_version}
+
+:4
+set squash_url ${live_endpoint}{{ endpoints["linux-lite-4-squash"].path }}filesystem.squashfs
+set kernel_url ${live_endpoint}{{ endpoints["linux-lite-4-squash"].path }}
+goto live-boot
+
+:4-boot
+imgfree
+kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} username=linuxlite userfullname=linuxlite initrd=initrd
+initrd ${kernel_url}initrd
+boot
+
+:live_exit
+clear menu
+exit 0

+ 27 - 0
roles/netbootxyz/templates/menu/live-neon.ipxe

@@ -0,0 +1,27 @@
+#!ipxe
+
+goto ${menu} ||
+
+:live_menu
+set os KDE Neon
+menu ${os} - Current Arch [ ${arch} ]
+iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
+item --gap ${os} Versions
+item user ${space} ${os} User
+choose live_version || goto live_exit
+goto ${live_version}
+
+:user
+set squash_url ${live_endpoint}{{ endpoints["kde-neon-user"].path }}filesystem.squashfs
+set kernel_url ${live_endpoint}{{ endpoints["kde-neon-user"].path }}
+goto live-boot
+
+:user-boot
+imgfree
+kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd.lz
+initrd ${kernel_url}initrd.lz
+boot
+
+:live_exit
+clear menu
+exit 0

+ 27 - 4
roles/netbootxyz/templates/menu/live-popos.ipxe.j2

@@ -3,19 +3,42 @@
 goto ${menu} ||
 
 :live_menu
-set os Pop OS
+set os Pop os Live
 menu ${os} - Current Arch [ ${arch} ]
 iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
 item --gap ${os} Versions
-item 18.04 ${space} ${os} 18.04
-item 19.10 ${space} ${os} 19.10
+item bionic ${space} ${os} 18.04
+item eoan ${space} ${os} 19.10
 choose live_version || goto live_exit
+menu ${os} ${live_version}
+item --gap ${os} Flavors
 goto ${live_version}
 
+:bionic
+{% for key, value in endpoints.items() | sort %}
+{% if value.os == "pop" and 'squash' in key and value.version == "18.04" %}
+item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}}
+{% endif %}
+{% endfor %}
+goto flavor_select
+
+:eoan
+{% for key, value in endpoints.items() | sort %}
+{% if value.os == "pop" and 'squash' in key and value.version == "19.10" %}
+item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}}
+{% endif %}
+{% endfor %}
+goto flavor_select
+
+:flavor_select
+choose flavor || goto live_menu
+echo ${cls}
+goto ${flavor} ||
+
 {% for key, value in endpoints.items() | sort %}
 {% if value.os == "pop" and 'squash' in key %}
 {% set kernel_name = value.kernel %}
-:{{ value.version }}
+:{{ key }}
 set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs
 {% for key, value in endpoints.items() | sort %}
 {% if key == kernel_name %}

+ 27 - 0
roles/netbootxyz/templates/menu/live-regolith.ipxe

@@ -0,0 +1,27 @@
+#!ipxe
+
+goto ${menu} ||
+
+:live_menu
+set os Regolith
+menu ${os} - Current Arch [ ${arch} ]
+iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
+item --gap ${os} Versions
+item current ${space} ${os} Current
+choose live_version || goto live_exit
+goto ${live_version}
+
+:current
+set squash_url ${live_endpoint}{{ endpoints["regolith-current"].path }}filesystem.squashfs
+set kernel_url ${live_endpoint}{{ endpoints["regolith-current"].path }}
+goto current-boot
+
+:current-boot
+imgfree
+kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd
+initrd ${kernel_url}initrd
+boot
+
+:live_exit
+clear menu
+exit 0

+ 3 - 3
roles/netbootxyz/templates/menu/live-voyager.ipxe.j2

@@ -15,7 +15,7 @@ goto ${live_version}
 
 :bionic
 set squash_url ${live_endpoint}{{ endpoints["voyager-bionic-squash"].path }}filesystem.squashfs
-set kernel_url ${live_endpoint}{{ endpoints["ubuntu-18.04-live-kernel"].path }}
+set kernel_url ${live_endpoint}{{ endpoints["voyager-bionic-squash"].path }}
 imgfree
 kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd
 initrd ${kernel_url}initrd
@@ -23,7 +23,7 @@ boot
 
 :buster
 set squash_url ${live_endpoint}{{ endpoints["voyager-buster-squash"].path }}filesystem.squashfs
-set kernel_url ${live_endpoint}{{ endpoints["debian-10-live-kernel"].path }}
+set kernel_url ${live_endpoint}{{ endpoints["voyager-buster-squash"].path }}
 imgfree
 kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd
 initrd ${kernel_url}initrd
@@ -31,7 +31,7 @@ boot
 
 :eoan
 set squash_url ${live_endpoint}{{ endpoints["voyager-eoan-squash"].path }}filesystem.squashfs
-set kernel_url ${live_endpoint}{{ endpoints["ubuntu-19.10-live-kernel"].path }}
+set kernel_url ${live_endpoint}{{ endpoints["voyager-eoan-squash"].path }}
 imgfree
 kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=url url=${squash_url} initrd=initrd
 initrd ${kernel_url}initrd

+ 4 - 0
roles/netbootxyz/templates/menu/live.ipxe.j2

@@ -8,14 +8,18 @@ iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
 item --gap Live Boot Distributions
 item live-backbox ${space} BackBox
 item live-debian ${space} Debian
+item live-deepin ${space} Deepin
 item live-elementary ${space} elementary OS
 item live-fedora ${space} Fedora
 item live-kali ${space} Kali
+item live-neon ${space} KDE Neon
+item live-lite ${space} Linux Lite
 item live-q4os ${space} Q4OS
 item live-manjaro ${space} Manjaro
 item live-mint ${space} Mint
 item live-peppermint ${space} Peppermint
 item live-popos ${space} Pop OS
+item live-regolith ${space} Regolith
 item live-tails ${space} Tails
 item live-ubuntu ${space} Ubuntu
 item live-voyager ${space} Voyager

+ 9 - 5
roles/netbootxyz/templates/menu/menu.ipxe.j2

@@ -54,13 +54,17 @@ iseq ${menu_utils} 1 && item utils-${platform} ${space} Utilities ||
 iseq ${arch} x86_64 && set bits 64 || set bits 32
 item changebits ${space} Architecture: ${arch} (${bits}bit)
 item shell ${space} iPXE shell
-item news ${space} netboot.xyz news
 item netinfo ${space} Network card info
+item about ${space} About netboot.xyz
 {% if sigs_menu | bool %}
 item --gap Signature Checks:
-item sig_check ${space} netboot.xyz [ enabled: ${sigs_enabled} ]
+{% if sigs_enabled | bool %}
+item sig_check ${space} {{ site_name }} [ enabled: ${sigs_enabled} ]
+{% endif %}
+{% if img_sigs_enabled | bool %}
 item img_sigs_check ${space} Images [ enabled: ${img_sigs_enabled} ]
 {% endif %}
+{% endif %}
 {% if custom_github_menus | bool %}
 isset ${github_user} && item --gap Custom Github Menu: ||
 isset ${github_user} && item custom-github ${space} ${github_user}'s Custom Menu ||
@@ -110,9 +114,9 @@ goto main_menu
 iseq ${img_sigs_enabled} true && set img_sigs_enabled false || set img_sigs_enabled true
 goto main_menu
 
-:news
-chain https://boot.netboot.xyz/news.ipxe ||
-chain news.ipxe || goto error
+:about
+chain https://boot.netboot.xyz/about.ipxe ||
+chain about.ipxe || goto error
 goto main_menu
 
 :custom-github

+ 21 - 0
roles/netbootxyz/templates/menu/netinfo.ipxe.j2

@@ -0,0 +1,21 @@
+#!ipxe
+
+menu Network info
+item --gap MAC:
+item mac ${space} ${netX/mac}
+item --gap IP/mask:
+item ip ${space} ${netX/ip}/${netX/netmask}
+item --gap Gateway:
+item gw ${space} ${netX/gateway}
+item --gap Domain:
+item domain ${space} ${netX/domain}
+item --gap DNS:
+item dns ${space} ${netX/dns}
+item --gap DHCP server:
+item dhcpserver ${space} ${netX/dhcp-server}
+item --gap Next-server:
+item nextserver ${space} ${next-server}
+item --gap Filename:
+item filename ${space} ${netX/filename}
+choose empty ||
+exit

+ 0 - 45
roles/netbootxyz/templates/menu/news.ipxe.j2

@@ -1,45 +0,0 @@
-#!ipxe
-set esc:hex 1b
-set bold ${esc:string}[1m
-set ital ${esc:string}[3m
-set under ${esc:string}[4m
-set boldoff ${esc:string}[22m
-set italoff ${esc:string}[23m
-set underoff ${esc:string}[24m
-set fs_bla ${esc:string}[30m
-set fg_red ${esc:string}[31m
-set fg_gre ${esc:string}[32m
-set fg_yel ${esc:string}[33m
-set fg_blu ${esc:string}[34m
-set fg_mag ${esc:string}[35m
-set fg_cya ${esc:string}[36m
-set fg_whi ${esc:string}[37m
-
-:netnews
-menu ${fg_cya}${bold}netboot.xyz updates
-item exit ${bold}Exit back to main menu...${boldoff}
-item --gap --  --------------------------------------------------------------------------
-item news ${fg_gre}${bold}Self Hosting and Live Booting - November 29, 2019
-item news ${fg_gre}${bold}Full Article: ${fg_whi}${bold}https://netboot.xyz/blog/
-item news
-item news ${fg_yel}${bold}* Self hosting options using Ansible and Docker (soon)
-item news ${fg_yel}${bold}* Live Boot options now available with more on the way
-item news ${fg_yel}${bold}${space}Allows you to PXE boot into a Live Desktop from Github
-item news ${fg_yel}${bold}* netboot.xyz repo moving to netbootxyz org on github
-item --gap --  --------------------------------------------------------------------------
-item news ${fg_cya}${bold}Follow us on Twitter: ${fg_whi}${bold}@netbootxyz
-item --gap --  --------------------------------------------------------------------------
-item news ${fg_gre}${bold}Join us on Discord: ${fg_whi}${bold}https://discord.gg/An6PA2a
-item --gap --  --------------------------------------------------------------------------
-item news ${fg_gre}${bold}Sponsorship: ${fg_whi}${bold}https://opencollective.com/netbootxyz
-item --gap --  --------------------------------------------------------------------------
-choose selected || goto exit
-goto ${selected}
-
-:news
-clear menu
-goto netnews
-
-:exit
-clear menu
-exit

+ 4 - 0
roles/netbootxyz/templates/version.ipxe.j2

@@ -0,0 +1,4 @@
+#!ipxe
+{% if upstream_version %}
+set upstream_version {{ upstream_version }}
+{% endif %}

+ 2 - 0
roles/netbootxyz/vars/debian.yml

@@ -4,6 +4,7 @@ netbootxyz_packages:
   - binutils-dev
   - binutils-aarch64-linux-gnu
   - dosfstools
+  - figlet
   - gcc-aarch64-linux-gnu
   - build-essential
   - genisoimage
@@ -12,3 +13,4 @@ netbootxyz_packages:
   - liblzma-dev
   - syslinux
   - syslinux-common
+  - toilet

+ 2 - 0
roles/netbootxyz/vars/redhat.yml

@@ -1,10 +1,12 @@
 ---
 netbootxyz_packages:
   - dosfstools
+  - figlet
   - gcc
   - genisoimage
   - git
   - httpd
   - minizip-devel
   - syslinux
+  - toilet
   - xz-devel

+ 2 - 0
roles/netbootxyz/vars/ubuntu.yml

@@ -4,6 +4,7 @@ netbootxyz_packages:
   - binutils-dev
   - binutils-aarch64-linux-gnu
   - dosfstools
+  - figlet
   - gcc-aarch64-linux-gnu
   - build-essential
   - genisoimage
@@ -12,3 +13,4 @@ netbootxyz_packages:
   - liblzma-dev
   - syslinux
   - syslinux-common
+  - toilet

+ 13 - 9
script/build_release

@@ -4,21 +4,25 @@ set -e
 TYPE=$1
 HARD_RELEASE="2.x"
 HARD_RC="2.x-RC"
-LIVE_URL="staging.boot.netboot.xyz"
+DEV_URL="dev.boot.netboot.xyz"
+STAGING_URL="staging.boot.netboot.xyz"
+PROD_URL="boot.netboot.xyz"
+DOCKER_FILE="Dockerfile-build.production"
 
 # Set boot domain
 if [[ "${TYPE}" == "dev" ]]; then
-  BOOT_DOMAIN="s3.amazonaws.com/${BUCKET_DEV}/${TRAVIS_COMMIT}"
+  BOOT_DOMAIN="s3.amazonaws.com/${DEV_URL}/${TRAVIS_COMMIT}"
   BOOT_VERSION="Development"
 elif [[ "${TYPE}" == "pr" ]]; then
   BOOT_DOMAIN="test.com"
   BOOT_VERSION="test"
+  DOCKER_FILE="Dockerfile-build"
 elif [[ "${TYPE}" == "rc" ]]; then
   BOOT_VERSION=$(cat version.txt)-RC
-  BOOT_DOMAIN="${LIVE_URL}/${BOOT_VERSION}"
+  BOOT_DOMAIN="${STAGING_URL}/${BOOT_VERSION}"
 elif [[ "${TYPE}" == "release" ]]; then
   BOOT_VERSION=$(cat version.txt)
-  BOOT_DOMAIN="${LIVE_URL}/${BOOT_VERSION}"
+  BOOT_DOMAIN="${PROD_URL}/${BOOT_VERSION}"
 fi
 sed -i \
   "/^#boot_version/c\boot_version: \"${BOOT_VERSION}\"" \
@@ -28,7 +32,7 @@ sed -i \
   user_overrides.yml
 
 # Build release
-docker build -t localbuild -f Dockerfile-build .
+docker build -t localbuild -f ${DOCKER_FILE} .
 docker run --rm -it -v $(pwd):/buildout localbuild
 
 # Generate folder outputs
@@ -49,17 +53,17 @@ if [[ "${TYPE}" == "release" ]] || [[ "${TYPE}" == "rc" ]]; then
   if [[ "${TYPE}" == "release" ]]; then
     sed -i \
       -e "/^boot_version/c\boot_version: \"${HARD_RELEASE}\"" \
-      -e "/^boot_domain/c\boot_domain: ${LIVE_URL}" \
+      -e "/^boot_domain/c\boot_domain: ${PROD_URL}" \
       user_overrides.yml
-    docker build -t localbuild -f Dockerfile-build .
+    docker build -t localbuild -f ${DOCKER_FILE} .
     docker run --rm -it -v $(pwd):/buildout localbuild
   fi
   if [[ "${TYPE}" == "rc" ]]; then
     sed -i \
       -e "/^boot_version/c\boot_version: \"${HARD_RC}\"" \
-      -e "/^boot_domain/c\boot_domain: ${LIVE_URL}/rc" \
+      -e "/^boot_domain/c\boot_domain: ${STAGING_URL}/rc" \
       user_overrides.yml
-    docker build -t localbuild -f Dockerfile-build .
+    docker build -t localbuild -f ${DOCKER_FILE} .
     docker run --rm -it -v $(pwd):/buildout localbuild
   fi
   mkdir -p s3out-latest

+ 1 - 0
script/message

@@ -1,4 +1,5 @@
 #!/bin/bash
+set -e
 
 TYPE=$1
 

+ 12 - 1
script/netbootxyz-overrides.yml

@@ -2,8 +2,19 @@
 sigs_menu: true
 sigs_enabled: true
 img_sigs_enabled: false
+generate_disks_arm: true
 bootloader_multiple: true
 bootloader_disks:
   - "netboot.xyz"
   - "netboot.xyz-packet"
-generate_signatures: true
+generate_signatures: true
+generate_disks_arm: true
+sigs_dir: "{{ netbootxyz_root }}/sigs"
+sigs_location: "http://${boot_domain}/sigs/"
+cert_dir: "/ansible/certs"
+ipxe_trust_args: "TRUST={{ ipxe_ca_location }}"
+ipxe_ca_url: http://ca.ipxe.org/ca.crt
+ipxe_ca_filename: ca-ipxe-org.crt
+codesign_cert_filename: codesign.crt
+codesign_key_filename: codesign.key
+cert_file_filename : ca-netboot-xyz.crt

+ 1 - 0
script/pre_install

@@ -1,4 +1,5 @@
 #!/bin/bash
+set -e
 
 # Install aws cli
 sudo pip install awscli tornado

+ 8 - 0
script/retrieve_certs

@@ -0,0 +1,8 @@
+#!/bin/bash
+set -e
+
+# retrieve certs
+git clone https://$GIT_USER:$GIT_AUTH@$GIT_URL certs
+cp certs/certs.tar.enc .
+openssl aes-256-cbc -K $encrypted_9ca5918f08ba_key -iv $encrypted_9ca5918f08ba_iv -in certs.tar.enc -out certs.tar -d
+tar xf certs.tar -C certs

+ 1 - 1
version.txt

@@ -1 +1 @@
-1.9.9
+1.9.91