mirror of
https://github.com/netbootxyz/netboot.xyz.git
synced 2026-01-23 10:35:32 +00:00
Compare commits
No commits in common. "development" and "2.0.86-RC" have entirely different histories.
developmen
...
2.0.86-RC
31 changed files with 624 additions and 732 deletions
|
|
@ -6,4 +6,3 @@ skip_list:
|
|||
- no-changed-when # Commands should not change things if nothing needs doing.
|
||||
- risky-shell-pipe # Shells that use pipes should set the pipefail option.
|
||||
- literal-compare # Don't compare to literal True/False.
|
||||
- var-naming[no-role-prefix] # Internal variables don't need role prefix.
|
||||
|
|
|
|||
36
.github/workflows/claude.yml
vendored
36
.github/workflows/claude.yml
vendored
|
|
@ -1,36 +0,0 @@
|
|||
name: Claude PR Assistant
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
pull_request_review_comment:
|
||||
types: [created]
|
||||
issues:
|
||||
types: [opened, assigned]
|
||||
pull_request_review:
|
||||
types: [submitted]
|
||||
|
||||
jobs:
|
||||
claude-code-action:
|
||||
if: |
|
||||
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
|
||||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
|
||||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
|
||||
(github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
issues: read
|
||||
id-token: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Run Claude PR Action
|
||||
uses: anthropics/claude-code-action@beta
|
||||
with:
|
||||
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
timeout_minutes: "60"
|
||||
4
.github/workflows/development.yml
vendored
4
.github/workflows/development.yml
vendored
|
|
@ -18,7 +18,7 @@ jobs:
|
|||
id-token: write
|
||||
contents: read
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: development
|
||||
|
||||
|
|
@ -36,7 +36,7 @@ jobs:
|
|||
./script/build_release dev
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v5
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
with:
|
||||
role-to-assume: ${{ secrets.AWS_ROLE_DEV }}
|
||||
aws-region: ${{ secrets.AWS_ACCESS_REGION }}
|
||||
|
|
|
|||
13
.github/workflows/pull-requests.yml
vendored
13
.github/workflows/pull-requests.yml
vendored
|
|
@ -12,17 +12,16 @@ jobs:
|
|||
name: Test Pull Request
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-python@v6
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.14' # renovate: datasource=github-tags depName=python
|
||||
python-version: '3.13'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install ansible==13.2.0 # renovate: datasource=pypi depName=ansible
|
||||
pip install ansible-lint==26.1.0 # renovate: datasource=pypi depName=ansible-lint
|
||||
pip install ansible==10.2.0 ansible-lint==24.7.0
|
||||
|
||||
- name: Syntax Check
|
||||
run: |
|
||||
|
|
@ -36,9 +35,9 @@ jobs:
|
|||
name: Build Pull Request
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-python@v6
|
||||
- uses: actions/setup-python@v5
|
||||
|
||||
- name: Build PR release
|
||||
run: |
|
||||
|
|
|
|||
6
.github/workflows/release-candidate.yml
vendored
6
.github/workflows/release-candidate.yml
vendored
|
|
@ -18,7 +18,7 @@ jobs:
|
|||
id-token: write
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: RC
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ jobs:
|
|||
./script/build_release rc
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v5
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
with:
|
||||
role-to-assume: ${{ secrets.AWS_ROLE_STAGING }}
|
||||
aws-region: ${{ secrets.AWS_ACCESS_REGION }}
|
||||
|
|
@ -66,7 +66,7 @@ jobs:
|
|||
|
||||
- name: Extract release notes
|
||||
id: extract-release-notes
|
||||
uses: ffurrer2/extract-release-notes@v3
|
||||
uses: ffurrer2/extract-release-notes@v2
|
||||
|
||||
- name: Create RC Release and Upload Assets
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
|
|
|
|||
6
.github/workflows/release.yml
vendored
6
.github/workflows/release.yml
vendored
|
|
@ -17,7 +17,7 @@ jobs:
|
|||
id-token: write
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: master
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ jobs:
|
|||
./script/build_release release
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v5
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
with:
|
||||
role-to-assume: ${{ secrets.AWS_ROLE_PROD }}
|
||||
aws-region: ${{ secrets.AWS_ACCESS_REGION }}
|
||||
|
|
@ -61,7 +61,7 @@ jobs:
|
|||
|
||||
- name: Extract release notes
|
||||
id: extract-release-notes
|
||||
uses: ffurrer2/extract-release-notes@v3
|
||||
uses: ffurrer2/extract-release-notes@v2
|
||||
|
||||
- name: Create Release and Upload Assets
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
|
|
|
|||
4
.github/workflows/rolling.yml
vendored
4
.github/workflows/rolling.yml
vendored
|
|
@ -20,7 +20,7 @@ jobs:
|
|||
id-token: write
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: 'master'
|
||||
|
||||
|
|
@ -47,7 +47,7 @@ jobs:
|
|||
./script/build_release rolling
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v5
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
with:
|
||||
role-to-assume: ${{ secrets.AWS_ROLE_ROLLING }}
|
||||
aws-region: ${{ secrets.AWS_ACCESS_REGION }}
|
||||
|
|
|
|||
70
CHANGELOG.md
70
CHANGELOG.md
|
|
@ -3,76 +3,6 @@
|
|||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [2.0.90] - Unreleased
|
||||
|
||||
## [2.0.89] - 2025-11-08
|
||||
|
||||
### Added
|
||||
|
||||
- OpenSUSE 16.0 support with live ISO boot method
|
||||
- Dasharo Tools Suite updated to v2.7.0 and v2.7.1
|
||||
|
||||
### Changed
|
||||
|
||||
- Updated Ansible to v12 for improved build system
|
||||
- Updated ansible-lint to v24.12.2 with compatibility fixes
|
||||
- Various distribution version updates:
|
||||
- Arch Linux updated to 2025.11.01
|
||||
- SmartOS updated to 20251030T000436Z
|
||||
- CoreOS updated to 42.20251012.3.0-stable, 43.20251024.2.0-testing, 43.20251027.1.0-next
|
||||
- IPFire updated to 2.29-core198
|
||||
- Improved dependency tracking in GitHub workflows
|
||||
- Updated GitHub Actions:
|
||||
- actions/checkout to v5
|
||||
- actions/setup-python to v6
|
||||
- aws-actions/configure-aws-credentials to v5
|
||||
|
||||
### Fixed
|
||||
|
||||
- OpenSUSE 16.0 boot configuration now uses live ISO method with proper root= parameter
|
||||
- Ansible-lint configuration updated to skip var-naming rule for internal variables
|
||||
- CI/CD compatibility issues resolved between Ansible and ansible-lint versions
|
||||
- Renovate configuration JSON syntax errors corrected
|
||||
|
||||
## [2.0.88] - 2025-08-09
|
||||
|
||||
### Added
|
||||
|
||||
- CachyOS live distribution with archiso boot configuration
|
||||
- Ubuntu Spins distribution template for Ubuntu flavor variants
|
||||
- Debian 13 (Trixie) net installer
|
||||
- Rocky Linux 10 and AlmaLinux 10
|
||||
- Flatcar Container Linux ARM64 architecture support
|
||||
- Proxmox VE 9.0
|
||||
- Dasharo Tools Suite updated to v2.6.0
|
||||
- SystemRescue archiso_pxe_http initrd support
|
||||
|
||||
### Changed
|
||||
|
||||
- FreeDOS updated to v1.4 with corrected URLs
|
||||
- Various distribution version updates and endpoint refreshes
|
||||
- Improved MAC address handling in TFTP boot configuration
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fedora CoreOS kernel filename format corrected
|
||||
|
||||
### Removed
|
||||
|
||||
- Deepin distribution completely removed from the system
|
||||
|
||||
## [2.0.87] - 2025-05-08
|
||||
|
||||
### Added
|
||||
|
||||
- Fedora Onyx build
|
||||
- Kali arm64 Added
|
||||
|
||||
### Changed
|
||||
|
||||
- Various version updates
|
||||
- Cleanup of older distros from endpoints
|
||||
|
||||
## [2.0.86] - 2025-03-13
|
||||
|
||||
### Added
|
||||
|
|
|
|||
|
|
@ -127,15 +127,15 @@ In addition to being able to host netboot.xyz locally, you can also create your
|
|||
| BlackArch Linux | https://blackarch.org | Yes | Yes |
|
||||
| Bluestar Linux | https://sourceforge.net/projects/bluestarlinux | No | Yes |
|
||||
| Bodhi Linux | https://www.bodhilinux.com | No | Yes |
|
||||
| CachyOS | https://cachyos.org | No | Yes |
|
||||
| CentOS | https://centos.org | Yes | No |
|
||||
| Fedora CoreOS | https://getfedora.org/en/coreos?stream=stable | Yes | No |
|
||||
| Debian | https://debian.org | Yes | Yes|
|
||||
| Deepin | https://www.deepin.org | No | Yes |
|
||||
| Devuan | https://devuan.org | Yes | No |
|
||||
| Elementary OS | https://elementary.io | No | Yes |
|
||||
| EndeavourOS | https://endeavouros.com | No | Yes |
|
||||
| Fatdog64 | https://distro.ibiblio.org/fatdog/web/ | No | Yes |
|
||||
| Fedora | https://fedoraproject.org | Yes | Yes |
|
||||
| Fedora CoreOS | https://getfedora.org/en/coreos?stream=stable | Yes | No |
|
||||
| Feren OS | https://ferenos.weebly.com/ | Yes | No |
|
||||
| Flatcar Container Linux | https://www.flatcar.org | Yes | No |
|
||||
| FreeBSD | https://freebsd.org | Yes, disk image | No |
|
||||
|
|
|
|||
842
endpoints.yml
842
endpoints.yml
File diff suppressed because it is too large
Load diff
|
|
@ -1,14 +1,5 @@
|
|||
{
|
||||
"extends": [
|
||||
"config:recommended"
|
||||
],
|
||||
"regexManagers": [
|
||||
{
|
||||
"fileMatch": ["^\\.github\\/workflows\\/.*\\.ya?ml$"],
|
||||
"matchStrings": [
|
||||
"pip(?:3)?\\s+install(?:\\s+(?:-U|--upgrade))?\\s+(?<depName>[A-Za-z0-9_.+-]+(?:\\[[^\\]]+\\])?)==(?<currentValue>\\d+(?:\\.\\d+)*)"
|
||||
],
|
||||
"datasourceTemplate": "pypi"
|
||||
}
|
||||
"config:base"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -144,8 +144,6 @@ releases:
|
|||
mirror: http://repo.almalinux.org
|
||||
name: AlmaLinux
|
||||
versions:
|
||||
- code_name: 10
|
||||
name: 10 (Latest)
|
||||
- code_name: 9
|
||||
name: 9 (Latest)
|
||||
- code_name: 8
|
||||
|
|
@ -157,8 +155,8 @@ releases:
|
|||
mirror: http://dl-cdn.alpinelinux.org
|
||||
name: Alpine Linux
|
||||
versions:
|
||||
- code_name: v3.23
|
||||
name: '3.23'
|
||||
- code_name: v3.21
|
||||
name: '3.21'
|
||||
- code_name: edge
|
||||
name: Edge (development)
|
||||
archlinux:
|
||||
|
|
@ -168,8 +166,8 @@ releases:
|
|||
mirror: mirrors.kernel.org
|
||||
name: Arch Linux
|
||||
versions:
|
||||
- code_name: 2026.01.01
|
||||
name: 2026.01.01
|
||||
- code_name: 2025.03.01
|
||||
name: 2025.03.01
|
||||
blackarch:
|
||||
enabled: true
|
||||
menu: linux
|
||||
|
|
@ -195,11 +193,11 @@ releases:
|
|||
mirror: https://builds.coreos.fedoraproject.org
|
||||
name: Fedora CoreOS
|
||||
versions:
|
||||
- code_name: 43.20260105.3.0
|
||||
- code_name: 41.20250215.3.0
|
||||
name: stable
|
||||
- code_name: 43.20260119.2.1
|
||||
- code_name: 41.20250302.2.0
|
||||
name: testing
|
||||
- code_name: 43.20260119.1.1
|
||||
- code_name: 41.20250302.1.0
|
||||
name: next
|
||||
debian:
|
||||
archive_mirror: http://archive.debian.org
|
||||
|
|
@ -210,13 +208,15 @@ releases:
|
|||
name: Debian
|
||||
versions:
|
||||
stable:
|
||||
- code_name: trixie
|
||||
name: 13.0 (trixie)
|
||||
- code_name: bookworm
|
||||
name: 12.0 (bookworm)
|
||||
- code_name: bullseye
|
||||
name: 11.0 (bullseye)
|
||||
- code_name: buster
|
||||
name: 10.0 (buster)
|
||||
testing:
|
||||
- code_name: forky
|
||||
name: forky (testing)
|
||||
- code_name: trixie
|
||||
name: trixie (testing)
|
||||
- code_name: sid
|
||||
name: sid (unstable)
|
||||
devuan:
|
||||
|
|
@ -243,10 +243,10 @@ releases:
|
|||
mirror: http://mirrors.kernel.org
|
||||
name: Fedora
|
||||
versions:
|
||||
- code_name: 43
|
||||
name: 43
|
||||
- code_name: 42
|
||||
name: 42
|
||||
- code_name: 41
|
||||
name: 41
|
||||
- code_name: 40
|
||||
name: 40
|
||||
flatcar:
|
||||
enabled: true
|
||||
menu: linux
|
||||
|
|
@ -266,16 +266,16 @@ releases:
|
|||
menu: bsd
|
||||
name: FreeBSD
|
||||
freedos:
|
||||
base_dir: pub/micro/pc-stuff/freedos/files/distributions/1.4
|
||||
base_dir: pub/micro/pc-stuff/freedos/files/distributions/1.3/official
|
||||
enabled: true
|
||||
menu: dos
|
||||
mirror: http://www.ibiblio.org
|
||||
name: FreeDOS
|
||||
versions:
|
||||
- code_name: FD14-FullUSB
|
||||
name: 1.4 Full Installer
|
||||
- code_name: FD14-LiteUSB
|
||||
name: 1.4 Lite Installer
|
||||
- code_name: FD13-FullUSB
|
||||
name: 1.3 Full Installer
|
||||
- code_name: FD13-LiteUSB
|
||||
name: 1.3 Lite Installer
|
||||
gentoo:
|
||||
enabled: true
|
||||
menu: linux
|
||||
|
|
@ -291,8 +291,8 @@ releases:
|
|||
mirror: https://downloads.ipfire.org
|
||||
name: IPFire
|
||||
versions:
|
||||
- code_name: 2.29-core199
|
||||
name: 2.29 Core199
|
||||
- code_name: 2.29-core192
|
||||
name: 2.29 Core192
|
||||
k3os:
|
||||
enabled: true
|
||||
menu: linux
|
||||
|
|
@ -303,20 +303,22 @@ releases:
|
|||
flavors:
|
||||
- key: core
|
||||
name: Core
|
||||
- key: k3sv1.30.11-k3s1
|
||||
name: k3s v1.30.11-k3s1 (Standard)
|
||||
- key: k3sv1.31.7-k3s1
|
||||
name: k3s v1.31.7-k3s1 (Standard)
|
||||
- key: k3sv1.32.3-k3s1
|
||||
name: k3s v1.32.3-k3s1 (Standard)
|
||||
- key: k3sv1.30.8+k3s1
|
||||
name: k3s v1.30.8+k3s1 (Standard)
|
||||
- key: k3sv1.31.4+k3s1
|
||||
name: k3s v1.31.4+k3s1 (Standard)
|
||||
- key: k3sv1.32.1+k3s1
|
||||
name: k3s v1.32.1+k3s1 (Standard)
|
||||
menu: linux
|
||||
mirror: https://github.com/kairos-io/kairos/releases
|
||||
name: Kairos
|
||||
platforms:
|
||||
- key: alpine-3.21
|
||||
name: Alpine Linux 3.21
|
||||
- key: debian-12
|
||||
name: Debian 12
|
||||
- key: alpine-3.19
|
||||
name: Alpine Linux 3.19
|
||||
- key: debian-bookworm
|
||||
name: Debian Bookworm
|
||||
- key: debian-testing
|
||||
name: Debian Testing
|
||||
- key: fedora-40
|
||||
name: Fedora 40
|
||||
- key: opensuse-leap-15.6
|
||||
|
|
@ -325,13 +327,15 @@ releases:
|
|||
name: openSUSE Tumbleweed
|
||||
- key: rockylinux-9
|
||||
name: Rocky Linux 9
|
||||
- key: ubuntu-20.04
|
||||
name: Ubuntu 20.04
|
||||
- key: ubuntu-22.04
|
||||
name: Ubuntu 22.04
|
||||
- key: ubuntu-24.04
|
||||
name: Ubuntu 24.04
|
||||
- key: ubuntu-24.10
|
||||
name: Ubuntu 24.10
|
||||
version: v3.5.3
|
||||
version: v3.3.1
|
||||
kali:
|
||||
base_dir: kali
|
||||
enabled: true
|
||||
|
|
@ -358,10 +362,6 @@ releases:
|
|||
menu: linux
|
||||
name: NixOS
|
||||
versions:
|
||||
- code_name: nixos-25.11
|
||||
name: nixos-25.11
|
||||
- code_name: nixos-25.05
|
||||
name: nixos-25.05
|
||||
- code_name: nixos-24.11
|
||||
name: nixos-24.11
|
||||
- code_name: nixos-24.05
|
||||
|
|
@ -403,18 +403,18 @@ releases:
|
|||
base_dir: pub/OpenBSD
|
||||
enabled: true
|
||||
menu: bsd
|
||||
mirror: http://cdn.openbsd.org
|
||||
mirror: http://ftp.openbsd.org
|
||||
name: OpenBSD
|
||||
versions:
|
||||
- code_name: '7.6'
|
||||
image_ver: '76'
|
||||
name: '7.6'
|
||||
- code_name: '7.5'
|
||||
image_ver: '75'
|
||||
name: '7.5'
|
||||
- code_name: snapshots
|
||||
image_ver: '78'
|
||||
name: 7.8 Latest Snapshot
|
||||
- code_name: '7.8'
|
||||
image_ver: '78'
|
||||
name: '7.8'
|
||||
- code_name: '7.7'
|
||||
image_ver: '77'
|
||||
name: '7.7'
|
||||
image_ver: '76'
|
||||
name: 7.6 Latest Snapshot
|
||||
opensuse:
|
||||
base_dir: distribution/leap
|
||||
enabled: true
|
||||
|
|
@ -422,10 +422,10 @@ releases:
|
|||
mirror: http://download.opensuse.org
|
||||
name: openSUSE
|
||||
versions:
|
||||
- code_name: '16.0'
|
||||
name: openSUSE Leap 16.0
|
||||
- code_name: '15.6'
|
||||
name: openSUSE Leap 15.6
|
||||
- code_name: '15.5'
|
||||
name: openSUSE Leap 15.5
|
||||
- code_name: tumbleweed
|
||||
name: openSUSE tumbleweed
|
||||
oracle:
|
||||
|
|
@ -455,8 +455,6 @@ releases:
|
|||
mirror: http://download.rockylinux.org
|
||||
name: Rocky Linux
|
||||
versions:
|
||||
- code_name: 10
|
||||
name: 10 (Latest)
|
||||
- code_name: 9
|
||||
name: 9 (Latest)
|
||||
- code_name: 8
|
||||
|
|
@ -483,14 +481,14 @@ releases:
|
|||
mirror: https://netboot.smartos.org/os/
|
||||
name: SmartOS
|
||||
versions:
|
||||
- code_name: 20260122T000642Z
|
||||
name: 20260122T000642Z
|
||||
- code_name: 20260108T003758Z
|
||||
name: 20260108T003758Z
|
||||
- code_name: 20251211T000906Z
|
||||
name: 20251211T000906Z
|
||||
- code_name: 20251127T000410Z
|
||||
name: 20251127T000410Z
|
||||
- code_name: 20250306T000316Z
|
||||
name: 20250306T000316Z
|
||||
- code_name: 20250220T074131Z
|
||||
name: 20250220T074131Z
|
||||
- code_name: 20250220T000340Z
|
||||
name: 20250220T000340Z
|
||||
- code_name: 20250206T001102Z
|
||||
name: 20250206T001102Z
|
||||
talos:
|
||||
enabled: true
|
||||
menu: linux
|
||||
|
|
@ -533,13 +531,13 @@ releases:
|
|||
versions:
|
||||
- arch: x86
|
||||
code_name: core
|
||||
initrd: /16.x/x86/release/distribution_files/core.gz
|
||||
kernel: /16.x/x86/release/distribution_files/vmlinuz
|
||||
initrd: /15.x/x86/release/distribution_files/core.gz
|
||||
kernel: /15.x/x86/release/distribution_files/vmlinuz
|
||||
name: Core
|
||||
- arch: x86_64
|
||||
code_name: corepure
|
||||
initrd: /16.x/x86_64/release/distribution_files/corepure64.gz
|
||||
kernel: /16.x/x86_64/release/distribution_files/vmlinuz64
|
||||
initrd: /15.x/x86_64/release/distribution_files/corepure64.gz
|
||||
kernel: /15.x/x86_64/release/distribution_files/vmlinuz64
|
||||
name: CorePure
|
||||
- arch: x86
|
||||
code_name: dcorebionic
|
||||
|
|
@ -639,10 +637,6 @@ releases:
|
|||
mirror: http://archive.ubuntu.com
|
||||
name: Ubuntu
|
||||
versions:
|
||||
- code_name: questing
|
||||
name: 25.10 Questing Quokka
|
||||
- code_name: plucky
|
||||
name: 25.04 Plucky Puffin
|
||||
- code_name: oracular
|
||||
name: 24.10 Oracular Oriole
|
||||
- code_name: noble
|
||||
|
|
@ -737,7 +731,7 @@ utilitiesefi:
|
|||
enabled: true
|
||||
name: Memtest86+ {{ endpoints.memtest86plus.version }}
|
||||
type: memtest
|
||||
util_path: ${live_endpoint}{{ endpoints.memtest86plus.path }}mt86p_x86_64
|
||||
util_path: ${live_endpoint}{{ endpoints.memtest86plus.path }}memtest64.efi
|
||||
version: '{{ endpoints.memtest86plus.version }}'
|
||||
redorescue:
|
||||
enabled: true
|
||||
|
|
@ -797,7 +791,7 @@ utilitiespcbios32:
|
|||
enabled: true
|
||||
name: Memtest86+ {{ endpoints.memtest86plus.version }}
|
||||
type: memtest
|
||||
util_path: ${live_endpoint}{{ endpoints.memtest86plus.path }}mt86p_i586
|
||||
util_path: ${live_endpoint}{{ endpoints.memtest86plus.path }}memtest32.bin
|
||||
version: '{{ endpoints.memtest86plus.version }}'
|
||||
shredos:
|
||||
enabled: true
|
||||
|
|
@ -869,7 +863,7 @@ utilitiespcbios64:
|
|||
enabled: true
|
||||
name: Memtest86+ {{ endpoints.memtest86plus.version }}
|
||||
type: memtest
|
||||
util_path: ${live_endpoint}{{ endpoints.memtest86plus.path }}mt86p_x86_64
|
||||
util_path: ${live_endpoint}{{ endpoints.memtest86plus.path }}memtest64.bin
|
||||
version: '{{ endpoints.memtest86plus.version }}'
|
||||
redorescue:
|
||||
enabled: true
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ set boot_domain {{ boot_domain }}
|
|||
set ipxe_version ${version}
|
||||
set version {{ boot_version }}
|
||||
set conn_type https
|
||||
set tftp-root-path /
|
||||
|
||||
:start
|
||||
echo ${bold}${fg_gre}${site_name} - ${fg_whi}v${version}${boldoff}
|
||||
|
|
@ -46,12 +45,6 @@ isset ${tftp-server} && iseq ${filename} {{ bootloader_filename }}.efi && goto t
|
|||
isset ${tftp-server} && iseq ${filename} {{ bootloader_filename }}-snp.efi && goto tftpmenu ||
|
||||
isset ${tftp-server} && iseq ${filename} {{ bootloader_filename }}-snponly.efi && goto tftpmenu ||
|
||||
isset ${tftp-server} && iseq ${filename} {{ bootloader_filename }}-arm64.efi && goto tftpmenu ||
|
||||
isset ${tftp-server} && iseq ${filename} ${tftp-root-path}{{ bootloader_filename }}.kpxe && goto tftpmenu ||
|
||||
isset ${tftp-server} && iseq ${filename} ${tftp-root-path}{{ bootloader_filename }}-undionly.kpxe && goto tftpmenu ||
|
||||
isset ${tftp-server} && iseq ${filename} ${tftp-root-path}{{ bootloader_filename }}.efi && goto tftpmenu ||
|
||||
isset ${tftp-server} && iseq ${filename} ${tftp-root-path}{{ bootloader_filename }}-snp.efi && goto tftpmenu ||
|
||||
isset ${tftp-server} && iseq ${filename} ${tftp-root-path}{{ bootloader_filename }}-snponly.efi && goto tftpmenu ||
|
||||
isset ${tftp-server} && iseq ${filename} ${tftp-root-path}{{ bootloader_filename }}-arm64.efi && goto tftpmenu ||
|
||||
goto menu
|
||||
|
||||
:failsafe
|
||||
|
|
@ -105,8 +98,7 @@ goto menu || goto failsafe
|
|||
:tftpmenu
|
||||
chain tftp://${tftp-server}/local-vars.ipxe || echo ${VARS_ERR}
|
||||
isset ${hostname} && chain --autofree tftp://${tftp-server}/HOSTNAME-${hostname}.ipxe || echo Custom boot by Hostname not found trying MAC...
|
||||
chain --autofree tftp://${tftp-server}/MAC-${mac:hexraw}.ipxe || echo Custom boot by MAC (hexraw) not found, attempting by MAC (hexhyp)...
|
||||
chain --autofree tftp://${tftp-server}/MAC-${mac:hexhyp}.ipxe || echo Custom boot by MAC (hexhyp) not found, booting default...
|
||||
chain --autofree tftp://${tftp-server}/MAC-${mac:hexraw}.ipxe || echo Custom boot by MAC not found booting default...
|
||||
chain --autofree tftp://${tftp-server}/menu.ipxe || echo ${TFTP_ERR} && goto menu
|
||||
|
||||
:menu
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
# Alpine Linux
|
||||
# https://alpinelinux.org
|
||||
|
||||
isset ${dhcp-server} && set ipparam ip=dhcp || set ipparam ip=${ip}::${gateway}:${netmask}::::${dns}
|
||||
isset ${dhcp-server} && set ipparam ip=dhcp || set ipparam ip=${ip}::${gateway}:${netmask}::eth0:none:${dns}
|
||||
|
||||
goto ${menu}
|
||||
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ set menu_pci 0
|
|||
iseq ${platform} efi && goto efi ||
|
||||
goto architectures_end
|
||||
:efi
|
||||
set menu_bsd 1
|
||||
set menu_bsd 0
|
||||
set menu_freedos 0
|
||||
set menu_unix 0
|
||||
set menu_pci 0
|
||||
|
|
@ -121,7 +121,7 @@ goto clouds_end
|
|||
:metal_arm64
|
||||
set cmdline console=ttyAMA0,115200
|
||||
set ipxe_disk netboot.xyz-metal-arm64-snp.efi
|
||||
set menu_bsd 1
|
||||
set menu_bsd 0
|
||||
set menu_freedos 0
|
||||
set menu_live 0
|
||||
set menu_windows 0
|
||||
|
|
|
|||
|
|
@ -10,12 +10,8 @@ menu BSD Installers - Current Arch [ ${arch} ]
|
|||
item --gap BSD Based Operating Systems
|
||||
{% for key, value in releases.items() | sort(attribute='1.name') %}
|
||||
{% if value.enabled is defined and value.menu == "bsd" and value.enabled | bool %}
|
||||
{% if key == "freebsd" %}
|
||||
iseq ${platform} efi || item {{ key }} ${space} {{ value.name }}
|
||||
{% else %}
|
||||
item {{ key }} ${space} {{ value.name }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
choose menu || goto bsd_exit
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ iseq ${core_version} {{ item.code_name }} && set coreos_channel {{ item.name }}
|
|||
set base_url ${coreos_mirror}/${coreos_base_dir}/${coreos_channel}/builds
|
||||
set build_version ${core_version}
|
||||
imgfree
|
||||
kernel ${base_url}/${build_version}/${os_arch}/fedora-coreos-${build_version}-live-kernel.${os_arch} ip=dhcp rd.neednet=1 coreos.inst.install_dev=${install_device} coreos.inst.ignition_url=${ignition_url} coreos.live.rootfs_url=${base_url}/${build_version}/${os_arch}/fedora-coreos-${build_version}-live-rootfs.${os_arch}.img {{ kernel_params }}
|
||||
kernel ${base_url}/${build_version}/${os_arch}/fedora-coreos-${build_version}-live-kernel-${os_arch} ip=dhcp rd.neednet=1 coreos.inst.install_dev=${install_device} coreos.inst.ignition_url=${ignition_url} coreos.live.rootfs_url=${base_url}/${build_version}/${os_arch}/fedora-coreos-${build_version}-live-rootfs.${os_arch}.img {{ kernel_params }}
|
||||
initrd ${base_url}/${build_version}/${os_arch}/fedora-coreos-${build_version}-live-initramfs.${os_arch}.img
|
||||
boot
|
||||
goto coreos_exit
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@ menu ${os} ${os_arch} sku type
|
|||
item Everything ${ova} Everything
|
||||
item Server ${ova} Server
|
||||
item Kinoite ${ova} Kinoite
|
||||
item Onyx ${ova} Onyx
|
||||
item Silverblue ${ova} Silverblue
|
||||
item Sericea ${ova} Sericea
|
||||
isset ${sku_type} || choose sku_type || goto fedora
|
||||
|
|
|
|||
|
|
@ -11,10 +11,7 @@ goto ${menu}
|
|||
|
||||
:flatcar
|
||||
set os {{ releases.flatcar.name }}
|
||||
set os_arch ${arch}
|
||||
iseq ${os_arch} x86_64 && set os_arch amd64 ||
|
||||
iseq ${os_arch} arm64 && set os_arch arm64 ||
|
||||
menu ${os} - Current Arch [ ${os_arch} ]
|
||||
menu ${os}
|
||||
item --gap ${os}
|
||||
{% for item in releases.flatcar.versions %}
|
||||
item {{ item.code_name }} ${space} ${os} {{ item.name }}
|
||||
|
|
@ -30,7 +27,7 @@ goto flatcar_exit
|
|||
:alpha
|
||||
:edge
|
||||
set release ${menu}
|
||||
set base-url https://flatcar.cdn.cncf.io/${release}/${os_arch}-usr/current
|
||||
set base-url http://${release}.release.flatcar-linux.net/amd64-usr/current
|
||||
kernel ${base-url}/flatcar_production_pxe.vmlinuz ${flatcar_firstboot} ${flatcar_params} flatcar.autologin=tty1 flatcar.autologin=ttyS0 initrd=flatcar_production_pxe_image.cpio.gz ${cmdline}
|
||||
initrd ${base-url}/flatcar_production_pxe_image.cpio.gz
|
||||
boot
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ set os {{ releases.kali.name }}
|
|||
set os_arch ${arch}
|
||||
iseq ${os_arch} x86_64 && set os_arch amd64 ||
|
||||
iseq ${os_arch} i386 && set os_arch i386 ||
|
||||
iseq ${os_arch} arm64 && set os_arch arm64 ||
|
||||
menu ${os} - ${os_arch}
|
||||
{% for item in releases.kali.versions %}
|
||||
item {{ item.code_name }} ${space} ${os} {{ item.name }}
|
||||
|
|
|
|||
|
|
@ -11,9 +11,7 @@ item centos ${space} CentOS
|
|||
item debian ${space} Debian
|
||||
item fedora ${space} Fedora
|
||||
item coreos ${space} Fedora CoreOS
|
||||
item flatcar ${space} Flatcar Container Linux
|
||||
item gentoo ${space} Gentoo
|
||||
item kali ${space} Kali
|
||||
item nixos ${space} NixOS
|
||||
item opensuse ${space} openSUSE
|
||||
item oracle ${space} Oracle Linux
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
#!ipxe
|
||||
|
||||
# CachyOS Operating System
|
||||
# https://cachyos.org
|
||||
|
||||
goto ${menu} ||
|
||||
|
||||
:live_menu
|
||||
set os CachyOS
|
||||
menu ${os}
|
||||
set ipparam BOOTIF=${netX/mac} ip=dhcp net.ifnames=0
|
||||
item --gap ${os} Versions
|
||||
{% for key, value in endpoints.items() | sort %}
|
||||
{% if value.os == "cachyos" %}
|
||||
item {{ value.version }} ${space} ${os} {{ value.version }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
choose live_version || goto live_exit
|
||||
goto ${live_version}
|
||||
|
||||
{% for key, value in endpoints.items() | sort %}
|
||||
{% if value.os == "cachyos" %}
|
||||
:{{ value.version }}
|
||||
set url ${live_endpoint}{{ value.path }}
|
||||
goto boot
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
:boot
|
||||
imgfree
|
||||
kernel ${url}vmlinuz ${ipparam} archiso_http_srv=${url} cow_spacesize=10G copytoram=auto module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes initrd=initrd.magic console=tty1 {{ kernel_params }}
|
||||
initrd ${url}initrd
|
||||
initrd ${url}archiso_pxe_http /hooks/archiso_pxe_http mode=755
|
||||
boot
|
||||
|
||||
:live_exit
|
||||
clear menu
|
||||
exit 0
|
||||
35
roles/netbootxyz/templates/menu/live-deepin.ipxe.j2
Normal file
35
roles/netbootxyz/templates/menu/live-deepin.ipxe.j2
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#!ipxe
|
||||
|
||||
goto ${menu} ||
|
||||
|
||||
:live_menu
|
||||
set os Deepin
|
||||
menu ${os}
|
||||
item --gap ${os} Versions
|
||||
{% for key, value in endpoints.items() | sort %}
|
||||
{% if value.os == "Deepin" %}
|
||||
item {{ value.version }} ${space} ${os} {{ value.version }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
choose live_version || goto live_exit
|
||||
goto ${live_version}
|
||||
|
||||
{% for key, value in endpoints.items() | sort %}
|
||||
{% if value.os == "Deepin" %}
|
||||
:{{ value.version }}
|
||||
set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs
|
||||
set kernel_url ${live_endpoint}{{ value.path }}
|
||||
goto boot
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
:boot
|
||||
imgfree
|
||||
kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} union=overlay {{ kernel_params }}
|
||||
initrd ${kernel_url}initrd
|
||||
boot
|
||||
|
||||
:live_exit
|
||||
clear menu
|
||||
exit 0
|
||||
|
|
@ -8,8 +8,8 @@ item --gap Live Boot Distributions
|
|||
item live-backbox ${space} BackBox
|
||||
item live-bluestar ${space} Bluestar Linux
|
||||
item live-bodhi ${space} Bodhi
|
||||
item live-cachyos ${space} CachyOS
|
||||
item live-debian ${space} Debian
|
||||
item live-deepin ${space} Deepin
|
||||
item live-devuan ${space} Devuan
|
||||
item live-elementary ${space} elementary OS
|
||||
item live-endeavouros ${space} EndeavourOS
|
||||
|
|
@ -39,7 +39,6 @@ item live-sparky ${space} SparkyLinux
|
|||
item live-tails ${space} Tails
|
||||
item tinycore ${space} Tiny Core Linux
|
||||
item live-ubuntu ${space} Ubuntu
|
||||
item ubuntu-spins ${space} Ubuntu Spins
|
||||
item live-vanillaos ${space} Vanilla OS
|
||||
item live-voyager ${space} Voyager
|
||||
item live-zorin ${space} Zorin OS
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ chain ${memdisk} iso raw
|
|||
goto openbsd_menu
|
||||
|
||||
:efi_boot
|
||||
set src ${openbsd_mirror}/${openbsd_base_dir}/${ver}/${os_arch}/miniroot${image_ver}.img
|
||||
set src ${openbsd_mirror}/${openbsd_base_dir}/${ver}/${os_arch}/install${image_ver}.img
|
||||
imgfree
|
||||
sanboot ${src}
|
||||
goto openbsd_menu
|
||||
|
|
|
|||
|
|
@ -69,30 +69,11 @@ choose version || goto opensuse_exit
|
|||
set dir ${opensuse_base_dir}/${version}/repo/oss
|
||||
iseq ${version} tumbleweed && set dir ${version}/repo/oss ||
|
||||
|
||||
# Tumbleweed ARM64 uses ports mirror
|
||||
iseq ${version} tumbleweed && iseq ${os_arch} aarch64 && set dir ports/aarch64/${version}/repo/oss ||
|
||||
|
||||
# Check if version needs live ISO boot method (16.0 and later)
|
||||
iseq ${version} 16.0 && set dir distribution/leap/${version}/repo/oss && set iso_dir distribution/leap/${version}/offline && set use_live_iso true ||
|
||||
|
||||
imgfree
|
||||
set kernel_url boot/${os_arch}/loader
|
||||
iseq ${os_arch} aarch64 && set kernel_url boot/${os_arch} ||
|
||||
|
||||
# Choose boot method based on version
|
||||
isset ${use_live_iso} && goto opensuse_live_boot || goto opensuse_standard_boot
|
||||
|
||||
:opensuse_live_boot
|
||||
kernel ${opensuse_mirror}/${dir}/${kernel_url}/linux root=live:${opensuse_mirror}/${iso_dir}/Leap-${version}-online-installer-${os_arch}.install.iso ${netsetup} ${params} {{ kernel_params }}
|
||||
initrd ${opensuse_mirror}/${dir}/${kernel_url}/initrd
|
||||
goto boot_os
|
||||
|
||||
:opensuse_standard_boot
|
||||
kernel ${opensuse_mirror}/${dir}/${kernel_url}/linux ${netsetup} install=${opensuse_mirror}/${dir} ${params} {{ kernel_params }}
|
||||
initrd ${opensuse_mirror}/${dir}/${kernel_url}/initrd
|
||||
goto boot_os
|
||||
|
||||
:boot_os
|
||||
echo MD5sums:
|
||||
md5sum linux initrd
|
||||
boot
|
||||
|
|
|
|||
|
|
@ -12,33 +12,14 @@ set os_arch ${arch}
|
|||
iseq ${os_arch} x86_64 && set os_arch x86_64 ||
|
||||
iseq ${os_arch} arm64 && set os_arch aarch64 ||
|
||||
item --gap ${os} Versions
|
||||
{% set defined_versions = {} %}
|
||||
{% for key, value in endpoints.items() | sort %}
|
||||
{% if value.os == "oracle" %}
|
||||
{% if value.version not in defined_versions %}
|
||||
{% set _ = defined_versions.update({value.version: []}) %}
|
||||
{% endif %}
|
||||
{% set _ = defined_versions[value.version].append(value.arch) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% for version, archs in defined_versions.items() | sort %}
|
||||
{% if archs | length > 1 %}
|
||||
item {{ version }} ${space} ${os} {{ version }}
|
||||
{% else %}
|
||||
iseq ${os_arch} {{ archs[0] }} && item {{ version }} ${space} ${os} {{ version }} ||
|
||||
item {{ value.version }} ${space} ${os} {{ value.version }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
choose version || goto oracle_exit
|
||||
goto ${version}
|
||||
goto ${version}_${os_arch}
|
||||
|
||||
{% for version, archs in defined_versions.items() | sort %}
|
||||
:{{ version }}
|
||||
{% for arch in archs %}
|
||||
iseq ${os_arch} {{ arch }} && goto {{ version }}_{{ arch }} ||
|
||||
{% endfor %}
|
||||
goto oracle_exit
|
||||
|
||||
{% endfor %}
|
||||
{% for key, value in endpoints.items() | sort %}
|
||||
{% if value.os == "oracle" %}
|
||||
:{{ value.version }}_{{ value.arch }}
|
||||
|
|
|
|||
|
|
@ -23,12 +23,6 @@ item pmg-normal ${space} ${os} Mail Gateway {{ value.version }}
|
|||
item pmg-text ${space} ${os} Mail Gateway {{ value.version }} (Text)
|
||||
item pmg-debug ${space} ${os} Mail Gateway {{ value.version }} (Debug)
|
||||
{% endif %}
|
||||
{% if value.os == "proxmox-datacenter-manager" %}
|
||||
item --gap ${os} Datacenter Manager
|
||||
item pdm-normal ${space} ${os} Datacenter Manager {{ value.version }}
|
||||
item pdm-text ${space} ${os} Datacenter Manager {{ value.version }} (Text)
|
||||
item pdm-debug ${space} ${os} Datacenter Manager {{ value.version }} (Debug)
|
||||
{% endif %}
|
||||
{% if value.os == "proxmox-ve" %}
|
||||
item --gap ${os} VE
|
||||
item pve-normal ${space} ${os} VE {{ value.version }}
|
||||
|
|
@ -39,18 +33,6 @@ item pve-debug ${space} ${os} VE {{ value.version }} (Debug)
|
|||
choose proxmox_choice || goto proxmox_exit
|
||||
goto ${proxmox_choice}
|
||||
|
||||
:pdm-normal
|
||||
set params splash=silent
|
||||
goto boot-pdm
|
||||
|
||||
:pdm-text
|
||||
set params splash=silent proxtui
|
||||
goto boot-pdm
|
||||
|
||||
:pdm-debug
|
||||
set params splash=verbose proxdebug
|
||||
goto boot-pdm
|
||||
|
||||
:pve-normal
|
||||
set params splash=silent
|
||||
goto boot-pve
|
||||
|
|
@ -113,19 +95,6 @@ initrd ${kernel_url}initrd
|
|||
initrd ${kernel_url}proxmox.iso /proxmox.iso
|
||||
boot
|
||||
|
||||
:boot-pdm
|
||||
{% for key, value in endpoints.items() | sort %}
|
||||
{% if value.os == "proxmox-datacenter-manager" %}
|
||||
set kernel_url ${live_endpoint}{{ value.path }}
|
||||
set proxmox_version {{ value.version }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
imgfree
|
||||
kernel ${kernel_url}vmlinuz vga=791 video=vesafb:ywrap,mtrr ramdisk_size=16777216 rw quiet ${params} {{ kernel_params }}
|
||||
initrd ${kernel_url}initrd
|
||||
initrd ${kernel_url}proxmox.iso /proxmox.iso
|
||||
boot
|
||||
|
||||
:boot-pve
|
||||
{% for key, value in endpoints.items() | sort %}
|
||||
{% if value.os == "proxmox-ve" %}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@ goto live_menu
|
|||
imgfree
|
||||
kernel ${url}vmlinuz archisobasedir=sysresccd ${ipparam} archiso_http_srv=${url} ${params} {{ kernel_params }}
|
||||
initrd ${url}initrd
|
||||
initrd ${url}archiso_pxe_http /hooks/archiso_pxe_http mode=755
|
||||
boot
|
||||
|
||||
:live_exit
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
#!ipxe
|
||||
|
||||
goto ${menu} ||
|
||||
|
||||
:live_menu
|
||||
set os Ubuntu Spins
|
||||
menu ${os}
|
||||
item --gap ${os} Versions
|
||||
{% for key, value in endpoints.items() | sort %}
|
||||
{% if value.os == "ubuntu-spins" %}
|
||||
item spins_{{ value.version }} ${space} ${os} {{ value.version }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
choose ubuntu_spins || goto live_exit
|
||||
menu ${os}
|
||||
item --gap ${os} Flavors
|
||||
goto ${ubuntu_spins}
|
||||
|
||||
{% for key, value in endpoints.items() | sort %}
|
||||
{% if value.os == "ubuntu-spins" %}
|
||||
:spins_{{ value.version }}
|
||||
set kernel_url ${live_endpoint}{{ value.path }}
|
||||
goto boot
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
:boot
|
||||
imgfree
|
||||
kernel ${kernel_url}vmlinuz iso-chooser-menu boot=casper ip=dhcp initrd=initrd.magic ${cmdline}
|
||||
initrd ${kernel_url}initrd
|
||||
boot
|
||||
|
||||
:live_exit
|
||||
clear menu
|
||||
exit 0
|
||||
|
|
@ -1 +1 @@
|
|||
2.0.90
|
||||
2.0.86
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue