소스 검색

Merge pull request #418 from netbootxyz/development

RC 1.9.9
Antony Messerli 5 년 전
부모
커밋
a15f591cd0

+ 12 - 2
.travis.yml

@@ -11,6 +11,16 @@ env:
 
 jobs:
   include:
+    - stage: test
+      if: type = pull_request
+      language: python
+      install:
+        - pip install ansible ansible-lint
+        - ansible-lint --version
+      script:
+        - ansible-playbook -i inventory site.yml --syntax-check
+        - ansible-lint -v roles/netbootxyz
+
     - stage: development
       if: branch = development AND type != pull_request
       script:
@@ -31,13 +41,11 @@ jobs:
       after_deploy:
         - ./script/message dev-push
 
-
     - stage: pull-request
       if: type = pull_request
       script:
         - ./script/build_release pr
 
-
     - stage: release-candidate
       if: branch = RC AND type != pull_request
       before_install:
@@ -74,6 +82,7 @@ jobs:
           skip_cleanup: true
           on:
             branch: RC
+
     - stage: rc-github
       if: branch = RC AND type != pull_request
       before_install:
@@ -131,6 +140,7 @@ jobs:
           skip_cleanup: true
           on:
             branch: master
+
     - stage: release-github
       if: branch = master AND type != pull_request
       before_install:

+ 2 - 9
endpoints.yml

@@ -35,13 +35,6 @@ endpoints:
     - vmlinuz
     os: debian
     version: 9
-  manjaro-18.x-live-kernel:
-    path: /manjaro-core-18.x/releases/download/5.3.8-25c643fa/
-    files:
-    - initrd
-    - vmlinuz
-    os: manjaro
-    version: 18.x
   debian-10-default-squash:
     path: /debian-squash/releases/download/10.2.0-600c59c0/
     files:
@@ -455,7 +448,7 @@ endpoints:
     flavor: Cinnamon
     kernel: ubuntu-18.04-live-kernel
   zorin-15-gnome-squash:
-    path: /ubuntu-squash/releases/download/15-171ddffc/
+    path: /ubuntu-squash/releases/download/15-ad033efa/
     files:
     - filesystem.squashfs
     os: zorin
@@ -463,7 +456,7 @@ endpoints:
     flavor: GNOME
     kernel: ubuntu-18.04-live-kernel
   zorin-15-xfce-squash:
-    path: /ubuntu-squash/releases/download/15-24926a26/
+    path: /ubuntu-squash/releases/download/15-f5884501/
     files:
     - filesystem.squashfs
     os: zorin

+ 62 - 23
roles/netbootxyz/defaults/main.yml

@@ -3,7 +3,7 @@
 ### site configuration ###
 site_name: netboot.xyz
 boot_domain: boot.netboot.xyz
-boot_version: 1.04
+boot_version: "2.x"
 boot_timeout: 300000
 time_server: "0.pool.ntp.org"
 
@@ -32,6 +32,7 @@ generate_menus: true
 
 # generates signatures for source files
 generate_checksums: true
+checksums_filename: "{{ site_name }}-sha256-checksums.txt"
 
 # bootloader options
 generate_disks: true
@@ -84,15 +85,15 @@ releases:
     enabled: true
     menu: "linux"
     versions:
-      - name: "2019.10.01"
-        code_name: "2019.10.01"
+      - name: "2019.12.01"
+        code_name: "2019.12.01"
   blackarch:
     name: "BlackArch"
     enabled: true
     menu: "security"
     versions:
-      - name: "2019.06.01"
-        code_name: "2019.06.01"
+      - name: "2019.09.01"
+        code_name: "2019.09.01"
   centos:
     name: "CentOS"
     mirror: "http://mirror.centos.org"
@@ -110,11 +111,11 @@ releases:
     name: "Fedora CoreOS"
     mirror: "https://builds.coreos.fedoraproject.org"
     base_dir: "prod/streams/testing/builds"
-    enabled: true
+    enabled: false
     menu: "linux"    
     versions:
-      - name: "30"
-        code_name: "beta"
+      - name: "31"
+        code_name: "31.20191127.1"
   debian:
     name: "Debian"      
     mirror: "http://deb.debian.org"
@@ -128,10 +129,6 @@ releases:
           code_name: "buster"
         - name: "9.0 (stretch)"
           code_name: "stretch"
-        - name: "8.0 (jessie)"
-          code_name: "jessie"
-        - name: "7.0 (jessie)"
-          code_name: "wheezy"
       testing:
         - name: "bullseye (testing)"
           code_name: "bullseye"
@@ -141,7 +138,7 @@ releases:
     name: "Devuan"
     mirror: "http://auto.mirror.devuan.org"
     base_dir: "devuan"
-    enabled: true
+    enabled: false
     menu: "linux"
     versions:
       stable:
@@ -177,8 +174,6 @@ releases:
         code_name: "beta"
       - name: "Alpha Channel"
         code_name: "alpha"
-      - name: "Edge Channel"
-        code_name: "edge"
   freebsd:
     name: "FreeBSD"
     enabled: false
@@ -225,8 +220,8 @@ releases:
     menu: "linux"
     enabled: true
     versions:
-      - name: "2.21 Core 126"
-        code_name: "2.21-core126"
+      - name: "2.23 Core 138"
+        code_name: "2.23-core138"
   kali:
     name: "Kali Linux"
     mirror: "http://http.kali.org"
@@ -266,8 +261,6 @@ releases:
         code_name: "19.09"
       - name: "Nixos 19.03"
         code_name: "19.03"
-      - name: "Nixox Unstable"
-        code_name: "unstable"
   openbsd:
     name: "OpenBSD"
     mirror: "http://ftp.openbsd.org"
@@ -361,8 +354,6 @@ releases:
         code_name: "Core"
       - name: "TinyCore [ISO]"
         code_name: "TinyCore"
-      - name: "CorePlus [ISO]"
-        code_name: "CorePlus"
   ubuntu:
     name: "Ubuntu"
     mirror: "http://archive.ubuntu.com"
@@ -401,8 +392,8 @@ utilities:
     enabled: true
     menu: "pcbios"
     type: "memdisk"
-    version: "2.6.2-15"
-    util_path: "http://master.dl.sourceforge.net/project/clonezilla/clonezilla_live_stable/2.6.2-15/clonezilla-live-2.6.2-15-amd64.iso"
+    version: "2.6.4-10"
+    util_path: "http://master.dl.sourceforge.net/project/clonezilla/clonezilla_live_stable/2.6.4-10/clonezilla-live-2.6.4-10-amd64.iso"
   dban:
     name: "DBAN"
     enabled: true
@@ -438,3 +429,51 @@ utilities:
     type: "memdisk"
     version: "538"
     util_path: "http://mirror.sysadminguide.net/ubcd/ubcd538.iso"
+
+bootloaders:
+  legacy:
+    - type: "ISO"
+      ipxe_bin: "ipxe.iso"
+      output_bin: ".iso"
+      desc: "Used for CD/DVD, Virtual CDs, DRAC/iLO, VMware, Virtual Box"
+    - type: "USB"
+      ipxe_bin: "ipxe.usb"
+      output_bin: ".usb"
+      desc: "Used for creation of USB Keys"
+    - type: "Kernel"
+      ipxe_bin: "ipxe.lkrn"
+      output_bin: ".lkrn"
+      desc: "Used for booting from GRUB/EXTLINUX"
+    - type: "Floppy"
+      ipxe_bin: "ipxe.dsk"
+      output_bin: ".dsk"
+      desc: "Virtual floppy disk for DRAC/iLO, VMware, Virtual Box, etc"
+    - type: "DHCP"
+      ipxe_bin: "ipxe.kpxe"
+      output_bin: ".kpxe"
+      desc: "DHCP boot image file, uses built-in iPXE NIC drivers"
+    - type: "DHCP-undionly"
+      ipxe_bin: "undionly.kpxe"
+      output_bin: "-undionly.kpxe"
+      desc: "DHCP boot image file, use if you have NIC issues"
+  uefi:
+    - type: "ISO"
+      ipxe_bin: "ipxe-efi.eiso"
+      output_bin: "-efi.iso"
+      desc: "EFI BIOS, works in Virtual Box EFI mode"
+    - type: "USB"
+      ipxe_bin: "ipxe-efi.usb"
+      output_bin: "-efi.usb"
+      desc: "Used for booting from GRUB/EXTLINUX"
+    - type: "DHCP"
+      ipxe_bin: "ipxe.efi"
+      output_bin: ".efi"
+      desc: "DHCP EFI boot image file, uses built-in iPXE NIC drivers"
+    - type: "DHCP-snp"
+      ipxe_bin: "snp.efi"
+      output_bin: "-snp.efi"
+      desc: "EFI w/ Simple Network Protocol, attempts to boot all net devices"
+    - type: "DHCP-snponly"
+      ipxe_bin: "snponly.efi"
+      output_bin: "-snponly.efi"
+      desc: "EFI w/ Simple Network Protocol, only boots from device chained from"

+ 2 - 2
roles/netbootxyz/tasks/generate_checksums.yml

@@ -1,6 +1,6 @@
 ---
   - name: Register a listing of all created iPXE bootloaders
-    command: ls -I checksums.txt {{ netbootxyz_root }}/ipxe/
+    command: ls -I {{ checksums_filename }} {{ netbootxyz_root }}/ipxe/
     register: netboot_disks
     tags:
       - skip_ansible_lint
@@ -24,7 +24,7 @@
   - name: Generate ipxe disk checksums
     template:
       src: checksums.txt.j2
-      dest: "{{ netbootxyz_root }}/ipxe/checksums.txt"
+      dest: "{{ netbootxyz_root }}/ipxe/{{ checksums_filename }}"
 
   - name: Generate netboot.xyz index template
     template:

+ 0 - 0
roles/netbootxyz/tasks/generate_disks


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

@@ -8,4 +8,4 @@
 
   - include: generate_disks_efi.yml
     when:
-    - generate_disks_efi | default(true) | bool
+    - generate_disks_efi | default(true) | bool

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

@@ -26,7 +26,11 @@
   - name: Compile iPXE bootloader for EFI
     shell: |
       make clean
-      make EMBED={{ bootloader_filename }} TRUST={{ trust_files }} bin-x86_64-efi/ipxe.efi
+      make EMBED={{ bootloader_filename }} \
+           TRUST={{ trust_files }} \
+           bin-x86_64-efi/ipxe.efi \
+           bin-x86_64-efi/snp.efi \
+           bin-x86_64-efi/snponly.efi
     args:
       chdir: "{{ ipxe_source_dir }}/src"
     tags:
@@ -66,5 +70,7 @@
       remote_src: True
     with_items:
       - { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi" }
+      - { 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" }

+ 52 - 5
roles/netbootxyz/templates/index.html.j2

@@ -1,8 +1,14 @@
 <!DOCTYPE html>
 <html lang="en">
   <head>
-    <title>{{ site_name }} BootLoaders</title>
+    <title>{{ site_name }} BootLoaders - Powered by netboot.xyz</title>
   </head>
+  <style>
+    table, th, td {
+    padding: 5px;
+    border: 1px solid black; 
+    }
+  </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 />
@@ -11,9 +17,50 @@
   <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 />
+  <p>
+  Version: {{ boot_version }}<br>
+  Powered by <a href=https://netboot.xyz>netboot.xyz</a>
+  </p>
+  <p>Legacy (PCBIOS) iPXE Bootloaders</p>
+  <table style="width:100%">
+    <!-- table header -->
+    <tr>
+       <th> Type </th>
+       <th> Bootloader </th>
+       <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> {{ item.desc }} </td>
+    </tr>
+    {% endfor %}
+    {% endfor %}
+  </table>
+
+  <p>UEFI iPXE Bootloaders</p>
+
+  <table style="width:100%">
+    <!-- table header -->
+    <tr>
+       <th> Type </th>
+       <th> Bootloader </th>
+       <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> {{ item.desc }} </td>
+    </tr>
+    {% endfor %}
+    {% endfor %}
+  </table>
   </div>
-  {% for item in netboot_disks.stdout_lines %}
-  <a href="ipxe/{{ item }}">{{ item }}</a><br>
-  {% endfor %}
   </body>
-</html>
+</html>

+ 10 - 0
roles/netbootxyz/templates/menu/alpinelinux.ipxe.j2

@@ -24,6 +24,7 @@ set base-url ${alpinelinux_mirror}
 set dir ${alpinelinux_base_dir}/${alpine_version}/releases/${bootarch}/netboot
 set repo-url ${alpinelinux_mirror}/${alpinelinux_base_dir}/${alpine_version}/main
 imgfree
+iseq ${alpine_version} edge && goto edge_boot ||
 kernel ${base-url}/${dir}/vmlinuz-vanilla ${ipparam} alpine_repo=${repo-url} modules=loop,squashfs modloop=${base-url}/${dir}/modloop-vanilla quiet nomodeset
 initrd ${base-url}/${dir}/initramfs-vanilla
 echo
@@ -39,6 +40,15 @@ echo Signatures verified!
 echo
 :skip_sigs
 boot
+
+:edge_boot
+kernel ${base-url}/${dir}/vmlinuz-lts ${ipparam} alpine_repo=${repo-url} modules=loop,squashfs modloop=${base-url}/${dir}/modloop-lts quiet nomodeset
+initrd ${base-url}/${dir}/initramfs-lts
+echo
+echo MD5sums:
+md5sum vmlinuz-lts initramfs-lts
+boot
+
 goto alpine_exit
 
 :alpine_exit

+ 2 - 11
roles/netbootxyz/templates/menu/archlinux.ipxe.j2

@@ -5,7 +5,7 @@
 
 isset ${dhcp-server} || goto static_ip
 set ipparam BOOTIF=${netX/mac} ip=dhcp
-set real_archlinux_mirror http://${archlinux_mirror}
+set real_archlinux_mirror ${archlinux_mirror}
 goto goto_menu
 
 :static_ip
@@ -21,7 +21,7 @@ goto ${menu} ||
 :archlinux
 set os {{ releases.archlinux.name }}
 clear arch_version
-menu ${os} - ${arch} - Image Sig Checks: [${img_sigs_enabled}]
+menu ${os} - ${arch}
 item --gap Latest Releases
 {% for item in releases.archlinux.versions %}
 item {{ item.code_name }} ${space} ${os} {{ item.name }}
@@ -38,15 +38,6 @@ initrd http://${archlinux_mirror}/${dir}/x86_64/archiso.img
 echo
 echo MD5sums:
 md5sum vmlinuz archiso.img
-iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs
-:verify_sigs
-echo
-echo Checking signatures...
-imgverify vmlinuz ${sigs}${dir}/x86_64/vmlinuz.sig || goto error
-imgverify archiso.img ${sigs}${dir}/x86_64/archiso.img.sig || goto error
-echo Signatures verified!
-echo
-:skip_sigs
 boot
 goto archlinux_exit
 

+ 1 - 1
roles/netbootxyz/templates/menu/centos.ipxe.j2

@@ -19,7 +19,7 @@ isset ${osversion} || choose osversion || goto linux_menu
 echo ${cls}
 set dir ${centos_base_dir}/${osversion}/BaseOS/${arch}/os
 iseq ${osversion} 7.7.1908 && set dir ${centos_base_dir}/${osversion}/os/${arch} ||
-set repo ${centos_mirror}/${centos_base_dir}
+set repo ${centos_mirror}/${dir}
 goto boottype
 
 :boottype

+ 7 - 9
roles/netbootxyz/templates/menu/coreos.ipxe.j2

@@ -2,6 +2,7 @@
 
 # Fedora CoreOS (Preview)
 # https://getfedora.org/coreos/
+# https://github.com/coreos/coreos-installer/blob/master/README.md#installing-from-pxe
 
 goto ${menu}
 
@@ -16,19 +17,16 @@ item {{ item.code_name }} ${space} ${os} {{ item.name }}
 {% endfor %}
 item install_dev ${space} Set install device: ${install_device}
 item ignition_config ${space} Set ignition config url: ${ignition_url}
-choose --default ${menu} menu || goto coreos_exit
+choose --default ${core_version} core_version || goto coreos_exit
 echo ${cls}
-goto ${menu} ||
+goto core_boot ||
 goto coreos_exit
 
-:stable
-:beta
-:alpha
-set release ${menu}
+:core_boot
 set base_url ${coreos_mirror}/${coreos_base_dir}
-set build_version 30.20191014.0
-kernel ${base_url}/${build_version}/x86_64/fedora-coreos-${build_version}-installer-kernel nomodeset rd.neednet=1 coreos.inst=yes coreos.inst.install_dev=${install_device} coreos.inst.ignition_url=${ignition_url} ${console} coreos.inst.image_url=${base_url}/${build_version}/x86_64/fedora-coreos-${build_version}-metal.raw.xz initrd=fedora-coreos-${build_version}-installer-initramfs.img
-initrd ${base_url}/${build_version}/x86_64/fedora-coreos-${build_version}-installer-initramfs.img
+set build_version ${core_version}
+kernel ${base_url}/${build_version}/x86_64/fedora-coreos-${build_version}-installer-kernel-x86_64 nomodeset rd.neednet=1 coreos.inst.install_dev=${install_device} coreos.inst.ignition_url=${ignition_url} ${console} coreos.inst.stream=testing initrd=fedora-coreos-${build_version}-installer-initramfs.x86_64.img
+initrd ${base_url}/${build_version}/x86_64/fedora-coreos-${build_version}-installer-initramfs.x86_64.img
 boot
 goto coreos_exit
 

+ 0 - 3
roles/netbootxyz/templates/menu/fedora.ipxe.j2

@@ -27,13 +27,10 @@ goto product_sku
 menu ${os} ${arch} sku type
 item Everything ${ova} Everything
 item Server ${ova} Server
-item Workstation ${ova} Workstation
-item Atomic ${ova} Atomic
 iseq ${arch} x86_64 && item Silverblue ${ova} Silverblue ||
 isset ${sku_type} || choose sku_type || goto fedora
 set dir ${fedora_base_dir}/releases/${osversion}/${sku_type}/${arch}/os
 iseq ${osversion} rawhide && set dir ${fedora_base_dir}/development/${osversion}/${sku_type}/${arch}/os ||
-iseq ${sku_type} Atomic && iseq ${osversion} 29 && set dir fedora-alt/atomic/stable/Fedora-Atomic-29-20181025.1/AtomicHost/x86_64/os ||
 set ova ${ova} ${sku_type}
 echo ${cls}
 goto boottype

+ 1 - 2
roles/netbootxyz/templates/menu/linux.ipxe.j2

@@ -5,13 +5,12 @@ goto ${menu} ||
 :linux_menu
 menu Linux Installers - Current Arch [ ${arch} ]
 iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
-item --gap Popular Linux Operating Systems:
+item --gap Linux Distros:
 {% for key, value in releases.items() | sort(attribute='1.name') %}
 {% if value.enabled is defined and value.menu == "linux" and value.enabled | bool %}
 item {{ key }} ${space} {{ value.name }}
 {% endif %}
 {% endfor %}
-item --gap All Others:
 choose menu || goto linux_exit
 echo ${cls}
 goto ${menu} ||

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

@@ -11,6 +11,7 @@ item bionic ${space} ${os} Bionic
 item buster ${space} ${os} Buster
 item eoan ${space} ${os} Eoan
 choose live_version || goto live_exit
+goto ${live_version}
 
 :bionic
 set squash_url ${live_endpoint}{{ endpoints["voyager-bionic-squash"].path }}filesystem.squashfs

+ 10 - 2
roles/netbootxyz/templates/menu/menu.ipxe.j2

@@ -8,8 +8,9 @@ set cls:hex 1b:5b:4a  # ANSI clear screen sequence - "^[[J"
 set cls ${cls:string}
 :ignore_cls
 
+{% if 'x' in boot_version %}
 :version_check
-set latest_version 1.04
+set latest_version {{ boot_version }}
 echo ${cls}
 iseq ${version} ${latest_version} && goto version_up2date ||
 echo
@@ -23,6 +24,7 @@ echo
 echo Attempting to chain to latest version...
 chain --autofree http://${boot_domain}/ipxe/${ipxe_disk} ||
 :version_up2date
+{% endif %}
 
 isset ${arch} && goto skip_arch_detect ||
 cpuid --ext 29 && set arch x86_64 || set arch i386
@@ -52,6 +54,7 @@ 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
 {% if sigs_menu | bool %}
 item --gap Signature Checks:
@@ -107,10 +110,15 @@ 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
+goto main_menu
+
 :custom-github
 chain https://raw.githubusercontent.com/${github_user}/netboot.xyz-custom/master/custom.ipxe || goto error
 goto main_menu
 
 :custom-user
 chain custom/custom.ipxe
-goto main_menu
+goto main_menu

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

@@ -0,0 +1,45 @@
+#!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

+ 16 - 5
script/build_release

@@ -1,19 +1,28 @@
 #!/bin/bash
-
 set -e
 
 TYPE=$1
+HARD_RELEASE="2.x"
+HARD_RC="2.x-RC"
+LIVE_URL="staging.boot.netboot.xyz"
 
 # Set boot domain
 if [[ "${TYPE}" == "dev" ]]; then
   BOOT_DOMAIN="s3.amazonaws.com/${BUCKET_DEV}/${TRAVIS_COMMIT}"
+  BOOT_VERSION="Development"
 elif [[ "${TYPE}" == "pr" ]]; then
   BOOT_DOMAIN="test.com"
+  BOOT_VERSION="test"
 elif [[ "${TYPE}" == "rc" ]]; then
-  BOOT_DOMAIN="staging.boot.netboot.xyz/$(cat version.txt)-RC"
+  BOOT_VERSION=$(cat version.txt)-RC
+  BOOT_DOMAIN="${LIVE_URL}/${BOOT_VERSION}"
 elif [[ "${TYPE}" == "release" ]]; then
-  BOOT_DOMAIN="staging.boot.netboot.xyz/$(cat version.txt)"
+  BOOT_VERSION=$(cat version.txt)
+  BOOT_DOMAIN="${LIVE_URL}/${BOOT_VERSION}"
 fi
+sed -i \
+  "/^#boot_version/c\boot_version: \"${BOOT_VERSION}\"" \
+  user_overrides.yml
 sed -i \
   "/^#boot_domain/c\boot_domain: ${BOOT_DOMAIN}" \
   user_overrides.yml
@@ -39,14 +48,16 @@ if [[ "${TYPE}" == "release" ]] || [[ "${TYPE}" == "rc" ]]; then
   rm -Rf buildout/
   if [[ "${TYPE}" == "release" ]]; then
     sed -i \
-      "/^boot_domain/c\boot_domain: staging.boot.netboot.xyz" \
+      -e "/^boot_version/c\boot_version: \"${HARD_RELEASE}\"" \
+      -e "/^boot_domain/c\boot_domain: ${LIVE_URL}" \
       user_overrides.yml
     docker build -t localbuild -f Dockerfile-build .
     docker run --rm -it -v $(pwd):/buildout localbuild
   fi
   if [[ "${TYPE}" == "rc" ]]; then
     sed -i \
-      "/^boot_domain/c\boot_domain: staging.boot.netboot.xyz/rc" \
+      -e "/^boot_version/c\boot_version: \"${HARD_RC}\"" \
+      -e "/^boot_domain/c\boot_domain: ${LIVE_URL}/rc" \
       user_overrides.yml
     docker build -t localbuild -f Dockerfile-build .
     docker run --rm -it -v $(pwd):/buildout localbuild

+ 9 - 0
script/netbootxyz-overrides.yml

@@ -0,0 +1,9 @@
+---
+sigs_menu: true
+sigs_enabled: true
+img_sigs_enabled: false
+bootloader_multiple: true
+bootloader_disks:
+  - "netboot.xyz"
+  - "netboot.xyz-packet"
+generate_signatures: true

+ 1 - 1
user_overrides.yml

@@ -12,7 +12,7 @@ generate_checksums: true
 #boot_domain: boot.mysitename.com
 
 # set boot version
-#boot_version: 1.00
+#boot_version: "2.x"
 
 #bootloader_tftp_enabled: false
 #bootloader_https_enabled: true

+ 1 - 1
version.txt

@@ -1 +1 @@
-1.9.8
+1.9.9