├── README.md ├── data ├── 7.6 │ ├── centos_rpm_sourcerpm-2018-09-12.txt │ ├── comparison-XS7.5-XS7.6.txt │ └── download-centos-2018-09-12.log ├── 8.0 │ ├── comparison-XS7.6-CH8.0.txt │ ├── packages_provenance.csv │ └── yum-builddep.log ├── 8.1 │ ├── comparison-CH8.0-CH8.1.txt │ ├── packages_provenance.csv │ └── yum-builddep.log ├── 8.2 │ ├── comparison-CH8.1-CH8.2.txt │ ├── comparison-CH8.2-CH8.2.1-SRPMs.txt │ ├── comparison-CH8.2-CH8.2.1.txt │ └── packages_provenance.csv ├── 8.3 │ ├── comparison-CH8.2.1-CH8.3preview-RPMs.txt │ ├── comparison-CH8.2.1-CH8.3preview-SRPMs.txt │ └── packages_provenance.csv ├── centos_rpm_sourcerpm-2019-02-11.txt ├── epel_rpm_sourcerpm-2019-02-11.txt ├── epel_rpm_sourcerpm-2019-05-06.txt ├── epel_rpm_sourcerpm-2021-03-18.txt ├── epel_rpm_sourcerpm-2021-05-03.txt └── epel_rpm_sourcerpm-2021-08-09.txt ├── iso ├── 7.4 │ ├── .treeinfo │ ├── README.md │ ├── boot │ │ └── isolinux │ │ │ ├── pg_help │ │ │ ├── pg_main │ │ │ └── splash.lss │ └── groups.xml ├── 7.5 │ ├── .treeinfo │ ├── EULA │ ├── LICENSES │ ├── README.md │ ├── boot │ │ └── isolinux │ │ │ ├── pg_help │ │ │ ├── pg_main │ │ │ └── splash.lss │ ├── groups-XS.xml │ ├── groups.xml │ └── install │ │ └── EULA ├── 7.6 │ ├── .treeinfo │ ├── EULA │ ├── LICENSES │ ├── README.md │ ├── boot │ │ └── isolinux │ │ │ ├── pg_help │ │ │ ├── pg_main │ │ │ └── splash.lss │ ├── groups-XS.xml │ ├── groups.xml │ └── install │ │ └── EULA ├── 8.0 │ ├── .treeinfo │ ├── EULA │ ├── LICENSES │ ├── README.md │ ├── boot │ │ └── isolinux │ │ │ ├── pg_help │ │ │ ├── pg_main │ │ │ └── splash.lss │ ├── groups-XS.xml │ ├── groups.xml │ └── install │ │ └── EULA ├── 8.1 │ ├── .treeinfo │ ├── README.md │ ├── boot │ │ └── isolinux │ │ │ ├── pg_help │ │ │ ├── pg_main │ │ │ └── splash.lss │ └── groups-XS.xml ├── 8.2.1 │ ├── .treeinfo │ └── boot │ │ └── isolinux │ │ ├── pg_help │ │ ├── pg_main │ │ └── splash.lss ├── 8.2 │ ├── .treeinfo │ ├── README.md │ ├── boot │ │ └── isolinux │ │ │ ├── pg_help │ │ │ ├── pg_main │ │ │ └── splash.lss │ └── groups-XS.xml └── 8.3 │ ├── .treeinfo │ ├── boot │ └── isolinux │ │ ├── pg_help │ │ ├── pg_main │ │ └── splash.lss │ └── comps-XS.xml ├── misc ├── assets │ ├── logo-glossy-small.png │ ├── stretch-goals-ks-campaign.png │ └── xcp-ng-hiw.png ├── ks_pledges.md ├── ks_project_description.md └── ks_script.md ├── pyproject.toml ├── scripts ├── .gitignore ├── compare_packages.py ├── create_rpm_git_repo.py ├── diff_rpms.sh ├── download_centos.py ├── gen-iso.sh ├── import_srpm.py ├── iso-remaster │ ├── README.md │ ├── iso-remaster.sh │ └── samples │ │ ├── patch-installimg.sh │ │ └── patch-iso.sh ├── koji │ ├── README.md │ ├── create_user_target.py │ ├── koji_build.py │ ├── koji_garbage_collector.sh │ ├── koji_import_rpms.py │ ├── mock-chroot-cleanup │ ├── requirements.txt │ ├── sync_repo_from_koji.py │ ├── untag_lone_builds.py │ └── update_vendor_tags.py ├── manage-isos.sh ├── pkg_in_pipe │ ├── .gitignore │ ├── Dockerfile │ ├── README.md │ └── pkg_in_pipe.py ├── retire_rpm_git_repo.py ├── rpm_owners │ ├── clean.py │ ├── packages.json │ └── set_github_code_owners.py ├── rpmwatcher │ ├── README.md │ ├── docker_commands.txt │ ├── rpmwatcher_extract_deps.py │ ├── rpmwatcher_extract_roles.py │ ├── rpmwatcher_format_reports.py │ ├── rpmwatcher_update.py │ ├── run.sh │ └── sync_repos.sh └── setup_offline_xcpng_repos └── setup.cfg /README.md: -------------------------------------------------------------------------------- 1 |

XCP-ng

2 |

Turnkey Open Source Virtualization Platform

3 | 4 | ![](https://repository-images.githubusercontent.com/115137464/d31efd36-b148-4d9b-a2a3-fea9663fedf7) 5 | 6 | XCP-ng: the user-friendly, high-performance virtualization solution, developed collaboratively for unrestricted features and open-source accessibility. 7 | 8 | ## ⚡️ Quick start 9 | 10 | Download [the ISO here](https://mirrors.xcp-ng.org/isos/8.2/xcp-ng-8.2.1.iso?https=1), and [install it](https://xcp-ng.org/#easy-to-install) on your own hardware. 11 | 12 | ## 📚 Documentation 13 | 14 | The official documentation is available at https://docs.xcp-ng.org 15 | 16 | ## 🚀 Features 17 | 18 | - **Powerful virtualization platform**: run, snapshot, live migrate & grow any kind of workload/Operating system on top of XCP-ng, even containers! 19 | - **Turnkey:** no complicated setup, XCP-ng is a true appliance with everything pre-configured and ready to run your VMs! 20 | - **Security:** based on the Xen hypervisor technology, XCP-ng is one of the most secure virtualization platform on the market, both technologically and with a really [serious security workflow](https://docs.xcp-ng.org/project/security). 21 | - **Manageable at scale:** there's many integrated ways to manage your XCP-ng host, both locally and remotely with a CLI, GUI and API. [Xen Orchestra](https://vates.tech/xen-orchestra/) is the de facto administration & backup platform for it. 22 | - **Fully Open Source:** no paywalls or complicated licenses, all the features are free 23 | - **Pro supported:** want to run in production? XCP-ng is part of the [Vates VMS](https://vates.tech/) stack that got you covered from the virtualization platform to the administration & backup tools. 24 | 25 | ## 📸 Screenshots 26 | 27 | ![](https://vates.tech/assets/img/misc/XOLite_Pool_dashboard_mockup_dashes_light_2.png.avif) 28 | 29 | ![](https://xen-orchestra.com/blog/content/images/size/w1600/2023/05/Desktop---Pool-dashboard---Default.png) 30 | 31 | ## 🧑‍🚀 Community 32 | 33 | XCP-ng has a living community that you can join on our [forum](https://xcp-ng.org/forum/). 34 | 35 | The project is open to [contributions](https://docs.xcp-ng.org/project/contributing/), [bug reports](https://github.com/xcp-ng/xcp/wiki/How-to-report-bugs) and you can also [host a mirror](https://github.com/xcp-ng/xcp/wiki/Mirrors) for XCP-ng. 36 | -------------------------------------------------------------------------------- /iso/7.4/.treeinfo: -------------------------------------------------------------------------------- 1 | [platform] 2 | name = XCP 3 | version = 2.5.0 4 | 5 | [branding] 6 | name = XCP-ng 7 | version = 7.4.0 8 | 9 | [build] 10 | number = release/jura/master/100 11 | 12 | [keys] 13 | key1 = RPM-GPG-KEY-XS-7-LCM 14 | key2 = RPM-GPG-KEY-XS-7 15 | key3 = RPM-GPG-KEY-Platform-V1 16 | 17 | -------------------------------------------------------------------------------- /iso/7.4/README.md: -------------------------------------------------------------------------------- 1 | ## How to build XCP-ng ISO 2 | 3 | ### Splash image and other 4 | 5 | In your ISO folder, you need to create a `boot/isolinux` and add: 6 | 7 | * `pg_help` 8 | * `pg_main` 9 | * `splash.lss` (see below) 10 | 11 | In the root SO folder: 12 | 13 | * `.treeinfo` 14 | 15 | To generate the splash image (`boot/isolinux/splash.lss`), you need: 16 | 17 | * a 640x240 banner 18 | * In Gimp: Image/mode/index colors/14 (=16 including B&W) 19 | * export in gif format, ie `splash.gif` 20 | * `giftopnm < splash.gif > splash.ppm` 21 | * `ppmtolss16 < splash.ppm > splash.lss` 22 | 23 | > Note: in Fedora/CentOS/RH like, those packages are needed to create the splash image: 24 | 25 | * `syslinux-perl` 26 | * `netpbm-progs` 27 | 28 | ### Create repodata 29 | 30 | Go into the future ISO folder, and run `createrepo` using the `groups.xml` in this repo: 31 | 32 | 33 | ``` 34 | # createrepo . -o . -g ../groups.xml 35 | ``` 36 | 37 | ### install.img modification 38 | 39 | 1. `bzip2 -d install.img` 40 | 2. `mkdir tmp && cd tmp && cpio -id < ../install.img.out` 41 | 3. Edit your files 42 | 4. As root (because of some read-protected files such as etc/gshadow-): `find . | cpio --create --format='newc' > /tmp/newinstall` 43 | 5. `bzip2 /tmp/newinstall` 44 | 6. `mv /tmp/newinstall /tmp/install.img` 45 | 7. Replace it into the ISO 46 | 47 | ### ISO generation 48 | 49 | You need `genisoimage` program. 50 | 51 | Usage: 52 | 53 | ``` 54 | # cd isofolder/ 55 | # genisoimage -o ../xcpng.iso -v -r -J -V "XCP-ng 7.4" -c boot/isolinux/boot.cat -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/efiboot.img -no-emul-boot . 56 | ``` 57 | 58 | This will create a `xcpng.iso` file into your parent directory. 59 | 60 | To get the ISO bootable on USB: 61 | 62 | ``` 63 | # isohybrid --uefi xcpng.iso 64 | ``` 65 | ### Write the ISO to a USB key 66 | 67 | ``` 68 | # dd if=xcpng.iso of=/dev/sdX bs=4M status=progress oflag=direct && sync 69 | ``` 70 | 71 | ### Misc 72 | 73 | To get modify a package description without "rebuilding" it completely, you can use `rpmrebuild -e -p your.rpm` 74 | -------------------------------------------------------------------------------- /iso/7.4/boot/isolinux/pg_help: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | - To install or upgrade without a serial console, type 8 | 0eno-serial 05. 9 | - To install or upgrade in safe mode, type 0esafe 05. 10 | - To install or upgrade to a multipathed root disk, type 0emultipath 05. 11 | - To boot into a shell prompt, type 0eshell 05. 12 | (This is an advanced option and should be used with care and as 13 | directed by a Technical Support Representative.) 14 | - To perform a memory test, type 0ememtest 05. 15 | 16 | 0f[F1-Standard] [F2-Advanced]05 17 | -------------------------------------------------------------------------------- /iso/7.4/boot/isolinux/pg_main: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 0f[F1-Standard] [F2-Advanced]05 15 | -------------------------------------------------------------------------------- /iso/7.4/boot/isolinux/splash.lss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcp-ng/xcp/9d1eb1511205ae0f54e09257a9a413c449180543/iso/7.4/boot/isolinux/splash.lss -------------------------------------------------------------------------------- /iso/7.4/groups.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | xenserver_base 6 | false 7 | false 8 | XenServer base system 9 | 10 | 11 | QCS-CLI 12 | QConvergeConsoleCLI-Citrix 13 | aic94xx-firmware 14 | bash-completion 15 | blktap 16 | bzip2 17 | cifs-utils 18 | compat-db47 19 | compat-libstdc++-33 20 | control-slice 21 | conversion-plugin 22 | cronie-noanacron 23 | dlm 24 | dracut-network 25 | e2fsprogs 26 | efibootmgr 27 | elxocmcore 28 | expect 29 | fcoe-utils 30 | fontconfig 31 | gdisk 32 | gfs2-utils 33 | gnu-free-sans-fonts 34 | gnupg 35 | gpumon 36 | grub-efi 37 | grub 38 | guest-templates-json-data-linux 39 | guest-templates-json-data-other 40 | guest-templates-json-data-windows 41 | host-upgrade-plugin 42 | interface-rename 43 | ipmitool 44 | ipset 45 | irqbalance 46 | iscsi-initiator-utils 47 | kbd 48 | kexec-tools 49 | linux-firmware 50 | linux-guest-loader-data 51 | linux-guest-loader 52 | livepatch-utils 53 | lsof 54 | makedumpfile 55 | mcelog 56 | mdadm 57 | memtest86+ 58 | microcode_ctl 59 | module-init-tools 60 | nano 61 | net-snmp 62 | nfs-utils 63 | ntp 64 | ocaml-xenops-tools 65 | openssh-clients 66 | openssh-server 67 | openssl-perl 68 | openvswitch 69 | oprofile 70 | parted 71 | pbis-open 72 | plymouth-graphics-libs 73 | plymouth-plugin-script 74 | plymouth 75 | pmtools 76 | policycoreutils 77 | portmap 78 | pyserial 79 | python-fasteners 80 | redhat-lsb-core 81 | redhat-lsb-submod-security 82 | rootfiles 83 | rrd2csv 84 | rrdd-plugins 85 | rsync 86 | rsyslog 87 | samba-client 88 | samba-winbind-clients 89 | screen 90 | sharutils 91 | sm-cli 92 | sm-rawhba 93 | sm 94 | smartmontools 95 | squeezed 96 | strace 97 | stunnel_xs 98 | sudo 99 | sysfsutils 100 | sysstat 101 | system-config-firewall-tui 102 | systemtap-runtime 103 | tcpdump 104 | telnet 105 | unzip 106 | usbutils 107 | vconfig 108 | vcputune 109 | vendor-drivers 110 | vendor-update-keys 111 | vgpu 112 | vhd-tool 113 | vhostmd 114 | vncsnapshot 115 | vncterm 116 | wget 117 | wsproxy 118 | xapi-nbd 119 | xapi-storage-script 120 | xapi-storage 121 | xapi-tests 122 | xcp-networkd 123 | xcp-rrdd 124 | xdelta 125 | xen-crashdump-analyser 126 | xen-device-model 127 | xengt-modules 128 | xenopsd-xc 129 | xenopsd-xenlight 130 | xenserver-dracut 131 | xenserver-firstboot 132 | xenserver-hwdata 133 | xenserver-status-report 134 | xenserver-transfer-vm 135 | xha 136 | xsconsole 137 | yum 138 | zip 139 | 140 | 141 | 142 | 143 | xenserver_dom0 144 | false 145 | true 146 | XenServer Dom0 147 | 148 | 149 | xenserver_base 150 | 151 | 152 | bugtool-conn-tests 153 | guest-templates-json-data-xenapp 154 | xcp-featured 155 | xcp-python-libs-xenserver 156 | xencenter 157 | xcp-ng-plymouth-theme 158 | xenserver-pv-tools 159 | xenserver-release-config 160 | xenserver-release 161 | 162 | 163 | 164 | -------------------------------------------------------------------------------- /iso/7.5/.treeinfo: -------------------------------------------------------------------------------- 1 | [platform] 2 | name = XCP 3 | version = 2.6.0 4 | 5 | [branding] 6 | name = XCP-ng 7 | version = 7.5.0 8 | 9 | [build] 10 | number = release/kolkata/master/29 11 | 12 | [keys] 13 | key1 = RPM-GPG-KEY-XS-7-LCM 14 | key2 = RPM-GPG-KEY-XS-7 15 | key3 = RPM-GPG-KEY-Platform-V1 16 | 17 | -------------------------------------------------------------------------------- /iso/7.5/EULA: -------------------------------------------------------------------------------- 1 | The programs included with the XCP-ng system are free software. To know more about licenses of all programs, please read each COPYING file in the /usr/share/doc/* folders. 2 | 3 | XCP-ng comes with no warranty, to the extent permitted by applicable law. 4 | 5 | For more info on XCP-ng, please check https://xcp-ng.org 6 | Professional support for production environment is available on https://xcp-ng.com 7 | 8 | -------------------------------------------------------------------------------- /iso/7.5/README.md: -------------------------------------------------------------------------------- 1 | ## How to build XCP-ng ISO 2 | 3 | ### Splash image and other 4 | 5 | In your ISO folder, you need to create a `boot/isolinux` and add: 6 | 7 | * `pg_help` 8 | * `pg_main` 9 | * `splash.lss` (see below) 10 | 11 | In the root SO folder: 12 | 13 | * `.treeinfo` 14 | 15 | To generate the splash image (`boot/isolinux/splash.lss`), you need: 16 | 17 | * a 640x240 banner 18 | * In Gimp: Image/mode/index colors/14 (=16 including B&W) 19 | * export in gif format, ie `splash.gif` 20 | * `giftopnm < splash.gif > splash.ppm` 21 | * `ppmtolss16 < splash.ppm > splash.lss` 22 | 23 | > Note: in Fedora/CentOS/RH like, those packages are needed to create the splash image: 24 | 25 | * `syslinux-perl` 26 | * `netpbm-progs` 27 | 28 | ### Create repodata 29 | 30 | Go into the future ISO folder, and run `createrepo` using the `groups.xml` in this repo: 31 | 32 | 33 | ``` 34 | # createrepo . -o . -g ../groups.xml 35 | ``` 36 | 37 | ### install.img modification 38 | 39 | 1. `bzip2 -d install.img` 40 | 2. `mkdir tmp && cd tmp && cpio -id < ../install.img.out` 41 | 3. Edit your files 42 | 4. As root (because of some read-protected files such as etc/gshadow-): `find . | cpio --create --format='newc' > /tmp/newinstall` 43 | 5. `bzip2 /tmp/newinstall` 44 | 6. `mv /tmp/newinstall /tmp/install.img` 45 | 7. Replace it into the ISO 46 | 47 | ### ISO generation 48 | 49 | You need `genisoimage` program. 50 | 51 | Usage: 52 | 53 | ``` 54 | # cd isofolder/ 55 | # genisoimage -o ../xcpng.iso -v -r -J -V "XCP-ng 7.4" -c boot/isolinux/boot.cat -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/efiboot.img -no-emul-boot . 56 | ``` 57 | 58 | This will create a `xcpng.iso` file into your parent directory. 59 | 60 | To get the ISO bootable on USB: 61 | 62 | ``` 63 | # isohybrid --uefi xcpng.iso 64 | ``` 65 | ### Write the ISO to a USB key 66 | 67 | ``` 68 | # dd if=xcpng.iso of=/dev/sdX bs=4M status=progress oflag=direct && sync 69 | ``` 70 | 71 | ### Misc 72 | 73 | To get modify a package description without "rebuilding" it completely, you can use `rpmrebuild -e -p your.rpm` 74 | -------------------------------------------------------------------------------- /iso/7.5/boot/isolinux/pg_help: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | - To install or upgrade without a serial console, type 8 | 0eno-serial 05. 9 | - To install or upgrade in safe mode, type 0esafe 05. 10 | - To install or upgrade to a multipathed root disk, type 0emultipath 05. 11 | - To boot into a shell prompt, type 0eshell 05. 12 | (This is an advanced option and should be used with care and as 13 | directed by a Technical Support Representative.) 14 | - To perform a memory test, type 0ememtest 05. 15 | 16 | 0f[F1-Standard] [F2-Advanced]05 17 | -------------------------------------------------------------------------------- /iso/7.5/boot/isolinux/pg_main: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 0f[F1-Standard] [F2-Advanced]05 15 | -------------------------------------------------------------------------------- /iso/7.5/boot/isolinux/splash.lss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcp-ng/xcp/9d1eb1511205ae0f54e09257a9a413c449180543/iso/7.5/boot/isolinux/splash.lss -------------------------------------------------------------------------------- /iso/7.5/groups-XS.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | xenserver_base 6 | false 7 | false 8 | XenServer base system 9 | 10 | 11 | QCS-CLI 12 | QConvergeConsoleCLI-Citrix 13 | aic94xx-firmware 14 | bash-completion 15 | blktap 16 | bzip2 17 | cifs-utils 18 | compat-db47 19 | compat-libstdc++-33 20 | control-slice 21 | conversion-plugin 22 | cronie-noanacron 23 | dlm 24 | dracut-network 25 | e2fsprogs 26 | efibootmgr 27 | elxocmcore 28 | expect 29 | fcoe-utils 30 | fontconfig 31 | gdisk 32 | gfs2-utils 33 | gnu-free-sans-fonts 34 | gnupg 35 | gpumon 36 | grub-efi 37 | grub 38 | guest-templates-json-data-linux 39 | guest-templates-json-data-other 40 | guest-templates-json-data-windows 41 | host-upgrade-plugin 42 | interface-rename 43 | ipmitool 44 | ipset 45 | irqbalance 46 | iscsi-initiator-utils 47 | kbd 48 | kexec-tools 49 | linux-firmware 50 | linux-guest-loader-data 51 | linux-guest-loader 52 | livepatch-utils 53 | lsof 54 | makedumpfile 55 | mcelog 56 | mdadm 57 | memtest86+ 58 | microcode_ctl 59 | module-init-tools 60 | nano 61 | net-snmp 62 | nfs-utils 63 | ntp 64 | ocaml-xenops-tools 65 | openssh-clients 66 | openssh-server 67 | openssl-perl 68 | openvswitch 69 | oprofile 70 | parted 71 | pbis-open 72 | plymouth-graphics-libs 73 | plymouth-plugin-script 74 | plymouth 75 | pmtools 76 | policycoreutils 77 | portmap 78 | pyserial 79 | python-fasteners 80 | redhat-lsb-core 81 | redhat-lsb-submod-security 82 | rootfiles 83 | rrd2csv 84 | rrdd-plugins 85 | rsync 86 | rsyslog 87 | samba-client 88 | samba-winbind-clients 89 | screen 90 | sharutils 91 | sm-cli 92 | sm-rawhba 93 | sm 94 | smartmontools 95 | squeezed 96 | strace 97 | stunnel_xs 98 | sudo 99 | sysfsutils 100 | sysstat 101 | system-config-firewall-tui 102 | systemtap-runtime 103 | tcpdump 104 | telnet 105 | unzip 106 | usbutils 107 | vconfig 108 | vcputune 109 | vendor-drivers 110 | vendor-update-keys 111 | vgpu 112 | vhd-tool 113 | vhostmd 114 | vncsnapshot 115 | vncterm 116 | wget 117 | wsproxy 118 | xapi-nbd 119 | xapi-storage-script 120 | xapi-storage 121 | xapi-tests 122 | xcp-networkd 123 | xcp-rrdd 124 | xdelta 125 | xen-crashdump-analyser 126 | xen-device-model 127 | xengt-modules 128 | xenopsd-xc 129 | xenopsd-xenlight 130 | xenserver-dracut 131 | xenserver-firstboot 132 | xenserver-hwdata 133 | xenserver-status-report 134 | xenserver-transfer-vm 135 | xha 136 | xsconsole 137 | yum 138 | zip 139 | 140 | 141 | 142 | 143 | xenserver_dom0 144 | false 145 | true 146 | XenServer Dom0 147 | 148 | 149 | xenserver_base 150 | 151 | 152 | bugtool-conn-tests 153 | guest-templates-json-data-xenapp 154 | update-XS75 155 | v6d-citrix 156 | xcp-python-libs-xenserver 157 | xencenter 158 | xenserver-plymouth-theme 159 | xenserver-pv-tools 160 | xenserver-release-config 161 | xenserver-release 162 | 163 | 164 | 165 | -------------------------------------------------------------------------------- /iso/7.5/install/EULA: -------------------------------------------------------------------------------- 1 | XCP-ng installer 2 | 3 | The programs included with the XCP-ng system are free software. To know more about licenses of all programs, please read each COPYING file in the /usr/share/doc/* folders. 4 | 5 | XCP-ng comes with no warranty, to the extent permitted by applicable law. 6 | 7 | For more info on XCP-ng, please check https://xcp-ng.org 8 | Professional support for production environment is available on https://xcp-ng.com 9 | -------------------------------------------------------------------------------- /iso/7.6/.treeinfo: -------------------------------------------------------------------------------- 1 | [platform] 2 | name = XCP 3 | version = 2.7.0 4 | 5 | [branding] 6 | name = XCP-ng 7 | version = 7.6.0 8 | 9 | [build] 10 | number = release/lima/master/8 11 | 12 | [keys] 13 | key1 = RPM-GPG-KEY-XS-7-LCM 14 | key2 = RPM-GPG-KEY-XS-7 15 | key3 = RPM-GPG-KEY-Platform-V1 16 | 17 | -------------------------------------------------------------------------------- /iso/7.6/EULA: -------------------------------------------------------------------------------- 1 | The programs included with the XCP-ng system are free software. To know more about licenses of all programs, please read each COPYING file in the /usr/share/doc/* folders. 2 | 3 | XCP-ng comes with no warranty, to the extent permitted by applicable law. 4 | 5 | For more info on XCP-ng, please check https://xcp-ng.org 6 | Professional support for production environment is available on https://xcp-ng.com 7 | 8 | -------------------------------------------------------------------------------- /iso/7.6/README.md: -------------------------------------------------------------------------------- 1 | ## How to build XCP-ng ISO 2 | 3 | ### Splash image and other 4 | 5 | In your ISO folder, you need to create a `boot/isolinux` and add: 6 | 7 | * `pg_help` 8 | * `pg_main` 9 | * `splash.lss` (see below) 10 | 11 | In the root SO folder: 12 | 13 | * `.treeinfo` 14 | 15 | To generate the splash image (`boot/isolinux/splash.lss`), you need: 16 | 17 | * a 640x240 banner 18 | * In Gimp: Image/mode/index colors/14 (=16 including B&W) 19 | * export in gif format, ie `splash.gif` 20 | * `giftopnm < splash.gif > splash.ppm` 21 | * `ppmtolss16 < splash.ppm > splash.lss` 22 | 23 | > Note: in Fedora/CentOS/RH like, those packages are needed to create the splash image: 24 | 25 | * `syslinux-perl` 26 | * `netpbm-progs` 27 | 28 | ### Create repodata 29 | 30 | Go into the future ISO folder, and run `createrepo` using the `groups.xml` in this repo: 31 | 32 | 33 | ``` 34 | # createrepo . -o . -g ../groups.xml 35 | ``` 36 | 37 | ### install.img modification 38 | 39 | 1. `bzip2 -d install.img` 40 | 2. `mkdir tmp && cd tmp && cpio -id < ../install.img.out` 41 | 3. Edit your files 42 | 4. As root (because of some read-protected files such as etc/gshadow-): `find . | cpio --create --format='newc' > /tmp/newinstall` 43 | 5. `bzip2 /tmp/newinstall` 44 | 6. `mv /tmp/newinstall /tmp/install.img` 45 | 7. Replace it into the ISO 46 | 47 | ### ISO generation 48 | 49 | You need `genisoimage` program. 50 | 51 | Usage: 52 | 53 | ``` 54 | # cd isofolder/ 55 | # genisoimage -o ../xcpng.iso -v -r -J -V "XCP-ng 7.4" -c boot/isolinux/boot.cat -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/efiboot.img -no-emul-boot . 56 | ``` 57 | 58 | This will create a `xcpng.iso` file into your parent directory. 59 | 60 | To get the ISO bootable on USB: 61 | 62 | ``` 63 | # isohybrid --uefi xcpng.iso 64 | ``` 65 | ### Write the ISO to a USB key 66 | 67 | ``` 68 | # dd if=xcpng.iso of=/dev/sdX bs=4M status=progress oflag=direct && sync 69 | ``` 70 | 71 | ### Misc 72 | 73 | To get modify a package description without "rebuilding" it completely, you can use `rpmrebuild -e -p your.rpm` 74 | -------------------------------------------------------------------------------- /iso/7.6/boot/isolinux/pg_help: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | - To install or upgrade without a serial console, type 8 | 0eno-serial 05. 9 | - To install or upgrade in safe mode, type 0esafe 05. 10 | - To install or upgrade to a multipathed root disk, type 0emultipath 05. 11 | - To boot into a shell prompt, type 0eshell 05. 12 | (This is an advanced option and should be used with care and as 13 | directed by a Technical Support Representative.) 14 | - To perform a memory test, type 0ememtest 05. 15 | 16 | 0f[F1-Standard] [F2-Advanced]05 17 | -------------------------------------------------------------------------------- /iso/7.6/boot/isolinux/pg_main: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 0f[F1-Standard] [F2-Advanced]05 15 | -------------------------------------------------------------------------------- /iso/7.6/boot/isolinux/splash.lss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcp-ng/xcp/9d1eb1511205ae0f54e09257a9a413c449180543/iso/7.6/boot/isolinux/splash.lss -------------------------------------------------------------------------------- /iso/7.6/groups-XS.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | xenserver_base 6 | false 7 | false 8 | XenServer base system 9 | 10 | 11 | QCS-CLI 12 | QConvergeConsoleCLI-Citrix 13 | aic94xx-firmware 14 | bash-completion 15 | blktap 16 | bzip2 17 | cifs-utils 18 | compat-db47 19 | compat-libstdc++-33 20 | control-slice 21 | conversion-plugin 22 | cronie-noanacron 23 | dlm 24 | dracut-network 25 | e2fsprogs 26 | efibootmgr 27 | elxocmcore 28 | expect 29 | fcoe-utils 30 | fontconfig 31 | gdisk 32 | gfs2-utils 33 | gnu-free-sans-fonts 34 | gnupg 35 | gpumon 36 | grub-efi 37 | grub 38 | guest-templates-json-data-linux 39 | guest-templates-json-data-other 40 | guest-templates-json-data-windows 41 | host-upgrade-plugin 42 | interface-rename 43 | ipmitool 44 | ipset 45 | irqbalance 46 | iscsi-initiator-utils 47 | kbd 48 | kexec-tools 49 | linux-firmware 50 | linux-guest-loader-data 51 | linux-guest-loader 52 | livepatch-utils 53 | lsof 54 | makedumpfile 55 | mcelog 56 | mdadm 57 | memtest86+ 58 | microcode_ctl 59 | module-init-tools 60 | nano 61 | net-snmp 62 | nfs-utils 63 | ntp 64 | ocaml-xenops-tools 65 | openssh-clients 66 | openssh-server 67 | openssl-perl 68 | openvswitch 69 | oprofile 70 | parted 71 | pbis-open 72 | plymouth-graphics-libs 73 | plymouth-plugin-script 74 | plymouth 75 | pmtools 76 | policycoreutils 77 | portmap 78 | pyserial 79 | python-fasteners 80 | redhat-lsb-core 81 | redhat-lsb-submod-security 82 | rootfiles 83 | rrd2csv 84 | rrdd-plugins 85 | rsync 86 | rsyslog 87 | samba-client 88 | samba-winbind-clients 89 | screen 90 | sharutils 91 | sm-cli 92 | sm-rawhba 93 | sm 94 | smartmontools 95 | squeezed 96 | strace 97 | stunnel_xs 98 | sudo 99 | sysfsutils 100 | sysstat 101 | system-config-firewall-tui 102 | systemtap-runtime 103 | tcpdump 104 | telnet 105 | unzip 106 | usbutils 107 | vconfig 108 | vcputune 109 | vendor-drivers 110 | vendor-update-keys 111 | vgpu 112 | vhd-tool 113 | vhostmd 114 | vncsnapshot 115 | vncterm 116 | wget 117 | wsproxy 118 | xapi-nbd 119 | xapi-storage-script 120 | xapi-storage 121 | xapi-tests 122 | xcp-networkd 123 | xcp-rrdd 124 | xdelta 125 | xen-crashdump-analyser 126 | xen-device-model 127 | xengt-modules 128 | xenopsd-xc 129 | xenopsd-xenlight 130 | xenserver-dracut 131 | xenserver-firstboot 132 | xenserver-hwdata 133 | xenserver-status-report 134 | xenserver-transfer-vm 135 | xha 136 | xsconsole 137 | yum 138 | zip 139 | 140 | 141 | 142 | 143 | xenserver_dom0 144 | false 145 | true 146 | XenServer Dom0 147 | 148 | 149 | xenserver_base 150 | 151 | 152 | bugtool-conn-tests 153 | guest-templates-json-data-xenapp 154 | update-XS76 155 | v6d-citrix 156 | xencenter 157 | xenserver-plymouth-theme 158 | xenserver-pv-tools 159 | xenserver-release-config 160 | xenserver-release 161 | 162 | 163 | 164 | -------------------------------------------------------------------------------- /iso/7.6/groups.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | xenserver_base 6 | false 7 | false 8 | XenServer base system 9 | 10 | 11 | aic94xx-firmware 12 | bash-completion 13 | blktap 14 | bzip2 15 | cifs-utils 16 | compat-db47 17 | compat-libstdc++-33 18 | control-slice 19 | conversion-plugin 20 | cronie-noanacron 21 | dlm 22 | dracut-network 23 | e2fsprogs 24 | efibootmgr 25 | expect 26 | fcoe-utils 27 | fontconfig 28 | gdisk 29 | gfs2-utils 30 | gnu-free-sans-fonts 31 | gnupg 32 | gpumon 33 | grub-efi 34 | grub 35 | guest-templates-json-data-linux 36 | guest-templates-json-data-other 37 | guest-templates-json-data-windows 38 | host-upgrade-plugin 39 | interface-rename 40 | ipmitool 41 | ipset 42 | irqbalance 43 | iscsi-initiator-utils 44 | kbd 45 | kexec-tools 46 | linux-firmware 47 | linux-guest-loader-data 48 | linux-guest-loader 49 | lsof 50 | makedumpfile 51 | mcelog 52 | mdadm 53 | memtest86+ 54 | microcode_ctl 55 | module-init-tools 56 | nano 57 | net-snmp 58 | nfs-utils 59 | ntp 60 | ocaml-xenops-tools 61 | openssh-clients 62 | openssh-server 63 | openssl-perl 64 | openvswitch 65 | oprofile 66 | parted 67 | pbis-open 68 | plymouth-graphics-libs 69 | plymouth-plugin-script 70 | plymouth 71 | pmtools 72 | policycoreutils 73 | portmap 74 | pyserial 75 | python-fasteners 76 | redhat-lsb-core 77 | redhat-lsb-submod-security 78 | rootfiles 79 | rrd2csv 80 | rrdd-plugins 81 | rsync 82 | rsyslog 83 | samba-client 84 | samba-winbind-clients 85 | screen 86 | sharutils 87 | sm-cli 88 | sm-rawhba 89 | sm 90 | smartmontools 91 | squeezed 92 | strace 93 | stunnel_xs 94 | sudo 95 | sysfsutils 96 | sysstat 97 | system-config-firewall-tui 98 | systemtap-runtime 99 | tcpdump 100 | telnet 101 | unzip 102 | usbutils 103 | vconfig 104 | vcputune 105 | vendor-drivers 106 | vendor-update-keys 107 | vhd-tool 108 | vhostmd 109 | vncsnapshot 110 | vncterm 111 | wget 112 | wsproxy 113 | xapi-nbd 114 | xapi-storage-script 115 | xapi-storage 116 | xapi-tests 117 | xcp-networkd 118 | xcp-ng-updater 119 | xcp-rrdd 120 | xdelta 121 | xen-crashdump-analyser 122 | xen-device-model 123 | xengt-modules 124 | xenopsd-xc 125 | xenopsd-xenlight 126 | xenserver-dracut 127 | xenserver-firstboot 128 | xenserver-hwdata 129 | xenserver-status-report 130 | xenserver-transfer-vm 131 | xha 132 | xsconsole 133 | yum 134 | zip 135 | 136 | 137 | 138 | 139 | xenserver_dom0 140 | false 141 | true 142 | XenServer Dom0 143 | 144 | 145 | xenserver_base 146 | 147 | 148 | bugtool-conn-tests 149 | guest-templates-json-data-xenapp 150 | xcp-featured 151 | xcp-ng-center 152 | xcp-ng-plymouth-theme 153 | xcp-ng-pv-tools 154 | xcp-ng-release-config 155 | xcp-ng-release 156 | xcp-ng-deps 157 | 158 | 159 | 160 | -------------------------------------------------------------------------------- /iso/7.6/install/EULA: -------------------------------------------------------------------------------- 1 | XCP-ng installer 2 | 3 | The programs included with the XCP-ng system are free software. To know more about licenses of all programs, please read each COPYING file in the /usr/share/doc/* folders. 4 | 5 | XCP-ng comes with no warranty, to the extent permitted by applicable law. 6 | 7 | For more info on XCP-ng, please check https://xcp-ng.org 8 | Professional support for production environment is available on https://xcp-ng.com 9 | -------------------------------------------------------------------------------- /iso/8.0/.treeinfo: -------------------------------------------------------------------------------- 1 | [platform] 2 | name = XCP 3 | version = 3.0.0 4 | 5 | [branding] 6 | name = XCP-ng 7 | version = 8.0.0 8 | 9 | [build] 10 | number = release/naples/master/45 11 | 12 | [keys] 13 | key1 = RPM-GPG-KEY-CH-8-LCM 14 | key2 = RPM-GPG-KEY-CH-8 15 | key3 = RPM-GPG-KEY-Platform-V1 16 | 17 | [general] 18 | name = XCP-ng-8.0 19 | family = XCP-ng 20 | timestamp = {{timestamp}} 21 | variant = 22 | version = 8.0 23 | packagedir = 24 | arch = x86_64 25 | 26 | [images-x86_64] 27 | kernel = boot/pxelinux/mboot.c32 28 | initrd = boot/vmlinuz 29 | boot.iso = boot/xen.gz 30 | 31 | [images-xen] 32 | kernel = boot/pxelinux/mboot.c32 33 | initrd = boot/vmlinuz 34 | 35 | -------------------------------------------------------------------------------- /iso/8.0/EULA: -------------------------------------------------------------------------------- 1 | The programs included with the XCP-ng system are free software. To know more about licenses of all programs, please read each COPYING file in the /usr/share/doc/* folders. 2 | 3 | XCP-ng comes with no warranty, to the extent permitted by applicable law. 4 | 5 | For more info on XCP-ng, please check https://xcp-ng.org 6 | Professional support for production environment is available on https://xcp-ng.com 7 | 8 | -------------------------------------------------------------------------------- /iso/8.0/README.md: -------------------------------------------------------------------------------- 1 | ## How to build XCP-ng ISO 2 | 3 | Note: some parts of this file are not up to date anymore, but it still contains 4 | valuable information so it is kept for now. 5 | 6 | ### Splash image and other 7 | 8 | In your ISO folder, you need to create a `boot/isolinux` and add: 9 | 10 | * `pg_help` 11 | * `pg_main` 12 | * `splash.lss` (see below) 13 | 14 | In the root SO folder: 15 | 16 | * `.treeinfo` 17 | 18 | To generate the splash image (`boot/isolinux/splash.lss`), you need: 19 | 20 | * a 640x240 banner 21 | * In Gimp: Image/mode/index colors/14 (=16 including B&W) 22 | * export in gif format, ie `splash.gif` 23 | * `giftopnm < splash.gif > splash.ppm` 24 | * `ppmtolss16 < splash.ppm > splash.lss` 25 | 26 | > Note: in Fedora/CentOS/RH like, those packages are needed to create the splash image: 27 | 28 | * `syslinux-perl` 29 | * `netpbm-progs` 30 | 31 | ### Create repodata 32 | 33 | Go into the future ISO folder, and run `createrepo` using the `groups.xml` in this repo: 34 | 35 | 36 | ``` 37 | # createrepo . -o . -g ../groups.xml 38 | ``` 39 | 40 | ### install.img modification 41 | 42 | 1. `bzip2 -d install.img` 43 | 2. `mkdir tmp && cd tmp && cpio -id < ../install.img.out` 44 | 3. Edit your files 45 | 4. As root (because of some read-protected files such as etc/gshadow-): `find . | cpio --create --format='newc' > /tmp/newinstall` 46 | 5. `bzip2 /tmp/newinstall` 47 | 6. `mv /tmp/newinstall /tmp/install.img` 48 | 7. Replace it into the ISO 49 | 50 | ### ISO generation 51 | 52 | You need `genisoimage` program. 53 | 54 | Usage: 55 | 56 | ``` 57 | # cd isofolder/ 58 | # genisoimage -o ../xcpng.iso -v -r -J -V "XCP-ng 7.4" -c boot/isolinux/boot.cat -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/efiboot.img -no-emul-boot . 59 | ``` 60 | 61 | This will create a `xcpng.iso` file into your parent directory. 62 | 63 | To get the ISO bootable on USB: 64 | 65 | ``` 66 | # isohybrid --uefi xcpng.iso 67 | ``` 68 | ### Write the ISO to a USB key 69 | 70 | ``` 71 | # dd if=xcpng.iso of=/dev/sdX bs=4M status=progress oflag=direct && sync 72 | ``` 73 | 74 | ### Misc 75 | 76 | To get modify a package description without "rebuilding" it completely, you can use `rpmrebuild -e -p your.rpm` 77 | -------------------------------------------------------------------------------- /iso/8.0/boot/isolinux/pg_help: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | - To install or upgrade without a serial console, type 8 | 0eno-serial 05. 9 | - To install or upgrade in safe mode, type 0esafe 05. 10 | - To install or upgrade to a multipathed root disk, type 0emultipath 05. 11 | - To boot into a shell prompt, type 0eshell 05. 12 | (This is an advanced option and should be used with care and as 13 | directed by a Technical Support Representative.) 14 | - To perform a memory test, type 0ememtest 05. 15 | 16 | 0f[F1-Standard] [F2-Advanced]05 17 | -------------------------------------------------------------------------------- /iso/8.0/boot/isolinux/pg_main: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 0f[F1-Standard] [F2-Advanced]05 15 | -------------------------------------------------------------------------------- /iso/8.0/boot/isolinux/splash.lss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcp-ng/xcp/9d1eb1511205ae0f54e09257a9a413c449180543/iso/8.0/boot/isolinux/splash.lss -------------------------------------------------------------------------------- /iso/8.0/groups-XS.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | xenserver_base 6 | false 7 | false 8 | XenServer base system 9 | 10 | 11 | QCS-CLI 12 | QConvergeConsoleCLI-Citrix 13 | aic94xx-firmware 14 | bash-completion 15 | blktap 16 | bzip2 17 | cifs-utils 18 | citrix-crypto-module 19 | compat-db47 20 | compat-libstdc++-33 21 | control-slice 22 | conversion-plugin 23 | cronie-noanacron 24 | dlm 25 | dracut-network 26 | e2fsprogs 27 | efibootmgr 28 | elxocmcore 29 | expect 30 | fcoe-utils 31 | fontconfig 32 | gdisk 33 | gfs2-utils 34 | gnu-free-sans-fonts 35 | gnupg 36 | gpumon 37 | grub-efi 38 | grub 39 | guest-templates-json-data-linux 40 | guest-templates-json-data-other 41 | guest-templates-json-data-windows 42 | host-upgrade-plugin 43 | interface-rename 44 | ipmitool 45 | ipset 46 | iptables 47 | irqbalance 48 | iscsi-initiator-utils 49 | kbd 50 | kexec-tools 51 | linux-firmware 52 | linux-guest-loader-data 53 | linux-guest-loader 54 | livepatch-utils 55 | lsof 56 | makedumpfile 57 | mcelog 58 | mdadm 59 | memtest86+ 60 | microcode_ctl 61 | module-init-tools 62 | nano 63 | net-snmp 64 | nfs-utils 65 | ntp 66 | ocaml-xenops-tools 67 | openssh-clients 68 | openssh-server 69 | openssl-perl 70 | openvswitch 71 | oprofile 72 | parted 73 | pbis-open 74 | plymouth-graphics-libs 75 | plymouth-plugin-script 76 | plymouth 77 | pmtools 78 | policycoreutils 79 | portmap 80 | pyserial 81 | python-fasteners 82 | redhat-lsb-core 83 | redhat-lsb-submod-security 84 | rootfiles 85 | rrd2csv 86 | rrdd-plugins 87 | rsync 88 | rsyslog 89 | samba-client 90 | samba-winbind-clients 91 | screen 92 | sharutils 93 | sm-cli 94 | sm-rawhba 95 | sm 96 | smartmontools 97 | squeezed 98 | strace 99 | stunnel_xs 100 | sudo 101 | sysfsutils 102 | sysstat 103 | system-config-firewall-tui 104 | systemtap-runtime 105 | tcpdump 106 | telnet 107 | unzip 108 | usbutils 109 | varstored-tools 110 | varstored 111 | vconfig 112 | vcputune 113 | vendor-drivers 114 | vendor-update-keys 115 | vgpu 116 | vhd-tool 117 | vhostmd 118 | vncsnapshot 119 | vncterm 120 | wget 121 | wsproxy 122 | xapi-nbd 123 | xapi-storage-script 124 | xapi-storage 125 | xapi-tests 126 | xcp-networkd 127 | xcp-rrdd 128 | xdelta 129 | xen-crashdump-analyser 130 | xenopsd-xc 131 | xenserver-dracut 132 | xenserver-firstboot 133 | xenserver-hwdata 134 | xenserver-status-report 135 | xenserver-transfer-vm 136 | xha 137 | xsconsole 138 | yum 139 | zip 140 | 141 | 142 | 143 | 144 | xenserver_dom0 145 | false 146 | true 147 | XenServer Dom0 148 | 149 | 150 | xenserver_base 151 | 152 | 153 | bugtool-conn-tests 154 | guest-templates-json-data-xenapp 155 | v6d-citrix 156 | xenserver-plymouth-theme 157 | xenserver-pv-tools 158 | xenserver-release-config 159 | xenserver-release 160 | 161 | 162 | 163 | -------------------------------------------------------------------------------- /iso/8.0/groups.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | xenserver_base 6 | false 7 | false 8 | XenServer base system 9 | 10 | 11 | aic94xx-firmware 12 | bash-completion 13 | blktap 14 | bzip2 15 | cifs-utils 16 | compat-db47 17 | compat-libstdc++-33 18 | control-slice 19 | conversion-plugin 20 | cronie-noanacron 21 | dlm 22 | dracut-network 23 | e2fsprogs 24 | efibootmgr 25 | expect 26 | fcoe-utils 27 | fontconfig 28 | gdisk 29 | gfs2-utils 30 | gnu-free-sans-fonts 31 | gnupg 32 | gpumon 33 | grub-efi 34 | grub 35 | guest-templates-json-data-linux 36 | guest-templates-json-data-other 37 | guest-templates-json-data-windows 38 | host-upgrade-plugin 39 | interface-rename 40 | ipmitool 41 | ipset 42 | iptables 43 | irqbalance 44 | iscsi-initiator-utils 45 | kbd 46 | kexec-tools 47 | linux-firmware 48 | linux-guest-loader-data 49 | linux-guest-loader 50 | lsof 51 | makedumpfile 52 | mcelog 53 | mdadm 54 | memtest86+ 55 | microcode_ctl 56 | module-init-tools 57 | nano 58 | net-snmp 59 | nfs-utils 60 | ntp 61 | ocaml-xenops-tools 62 | openssh-clients 63 | openssh-server 64 | openssl-perl 65 | openvswitch 66 | oprofile 67 | parted 68 | pbis-open 69 | plymouth-graphics-libs 70 | plymouth-plugin-script 71 | plymouth 72 | pmtools 73 | policycoreutils 74 | portmap 75 | pyserial 76 | python-fasteners 77 | redhat-lsb-core 78 | redhat-lsb-submod-security 79 | rootfiles 80 | rrd2csv 81 | rrdd-plugins 82 | rsync 83 | rsyslog 84 | samba-client 85 | samba-winbind-clients 86 | screen 87 | sharutils 88 | sm-cli 89 | sm-rawhba 90 | sm 91 | smartmontools 92 | squeezed 93 | strace 94 | stunnel_xs 95 | sudo 96 | sysfsutils 97 | sysstat 98 | system-config-firewall-tui 99 | systemtap-runtime 100 | tcpdump 101 | telnet 102 | unzip 103 | usbutils 104 | varstored-tools 105 | varstored 106 | vconfig 107 | vcputune 108 | vendor-drivers 109 | vendor-update-keys 110 | vhd-tool 111 | vhostmd 112 | vncsnapshot 113 | vncterm 114 | wget 115 | wsproxy 116 | xapi-nbd 117 | xapi-storage-script 118 | xapi-storage 119 | xapi-tests 120 | xcp-networkd 121 | xcp-ng-xapi-plugins 122 | xcp-rrdd 123 | xdelta 124 | xen-crashdump-analyser 125 | xenopsd-xc 126 | xenserver-dracut 127 | xenserver-firstboot 128 | xenserver-hwdata 129 | xenserver-status-report 130 | xenserver-transfer-vm 131 | xha 132 | xsconsole 133 | yum 134 | zip 135 | 136 | 137 | 138 | 139 | xenserver_dom0 140 | false 141 | true 142 | XenServer Dom0 143 | 144 | 145 | xenserver_base 146 | 147 | 148 | bugtool-conn-tests 149 | guest-templates-json-data-xenapp 150 | xcp-featured 151 | xcp-ng-plymouth-theme 152 | xcp-ng-pv-tools 153 | xcp-ng-release-config 154 | xcp-ng-release 155 | xcp-ng-deps 156 | 157 | 158 | 159 | -------------------------------------------------------------------------------- /iso/8.0/install/EULA: -------------------------------------------------------------------------------- 1 | XCP-ng installer 2 | 3 | The programs included with the XCP-ng system are free software. To know more about licenses of all programs, please read each COPYING file in the /usr/share/doc/* folders. 4 | 5 | XCP-ng comes with no warranty, to the extent permitted by applicable law. 6 | 7 | For more info on XCP-ng, please check https://xcp-ng.org 8 | Professional support for production environment is available on https://xcp-ng.com 9 | -------------------------------------------------------------------------------- /iso/8.1/.treeinfo: -------------------------------------------------------------------------------- 1 | [platform] 2 | name = XCP 3 | version = 3.1.0 4 | 5 | [branding] 6 | name = XCP-ng 7 | version = 8.1.0 8 | 9 | [build] 10 | number = release/quebec/master/17 11 | 12 | [keys] 13 | key1 = RPM-GPG-KEY-CH-8-LCM 14 | key2 = RPM-GPG-KEY-CH-8 15 | key3 = RPM-GPG-KEY-Platform-V1 16 | 17 | [general] 18 | name = XCP-ng-8.1 19 | family = XCP-ng 20 | timestamp = {{timestamp}} 21 | variant = 22 | version = 8.1 23 | packagedir = 24 | arch = x86_64 25 | 26 | [images-x86_64] 27 | kernel = boot/pxelinux/mboot.c32 28 | initrd = boot/vmlinuz 29 | boot.iso = boot/xen.gz 30 | 31 | [images-xen] 32 | kernel = boot/pxelinux/mboot.c32 33 | initrd = boot/vmlinuz 34 | 35 | -------------------------------------------------------------------------------- /iso/8.1/README.md: -------------------------------------------------------------------------------- 1 | ## How to build XCP-ng ISO 2 | 3 | Note: some parts of this file are not up to date anymore, but it still contains 4 | valuable information so it is kept for now. 5 | 6 | ### Splash image and other 7 | 8 | In your ISO folder, you need to create a `boot/isolinux` and add: 9 | 10 | * `pg_help` 11 | * `pg_main` 12 | * `splash.lss` (see below) 13 | 14 | In the root SO folder: 15 | 16 | * `.treeinfo` 17 | 18 | To generate the splash image (`boot/isolinux/splash.lss`), you need: 19 | 20 | * a 640x240 banner 21 | * In Gimp: Image/mode/index colors/14 (=16 including B&W) 22 | * export in gif format, ie `splash.gif` 23 | * `giftopnm < splash.gif > splash.ppm` 24 | * `ppmtolss16 < splash.ppm > splash.lss` 25 | 26 | > Note: in Fedora/CentOS/RH like, those packages are needed to create the splash image: 27 | 28 | * `syslinux-perl` 29 | * `netpbm-progs` 30 | 31 | ### Create repodata 32 | 33 | Go into the future ISO folder, and run `createrepo` using the `groups.xml` in this repo: 34 | 35 | 36 | ``` 37 | # createrepo . -o . -g ../groups.xml 38 | ``` 39 | 40 | ### install.img modification 41 | 42 | 1. `bzip2 -d install.img` 43 | 2. `mkdir tmp && cd tmp && cpio -id < ../install.img.out` 44 | 3. Edit your files 45 | 4. As root (because of some read-protected files such as etc/gshadow-): `find . | cpio --create --format='newc' > /tmp/newinstall` 46 | 5. `bzip2 /tmp/newinstall` 47 | 6. `mv /tmp/newinstall /tmp/install.img` 48 | 7. Replace it into the ISO 49 | 50 | ### ISO generation 51 | 52 | You need `genisoimage` program. 53 | 54 | Usage: 55 | 56 | ``` 57 | # cd isofolder/ 58 | # genisoimage -o ../xcpng.iso -v -r -J -V "XCP-ng 7.4" -c boot/isolinux/boot.cat -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/efiboot.img -no-emul-boot . 59 | ``` 60 | 61 | This will create a `xcpng.iso` file into your parent directory. 62 | 63 | To get the ISO bootable on USB: 64 | 65 | ``` 66 | # isohybrid --uefi xcpng.iso 67 | ``` 68 | ### Write the ISO to a USB key 69 | 70 | ``` 71 | # dd if=xcpng.iso of=/dev/sdX bs=4M status=progress oflag=direct && sync 72 | ``` 73 | 74 | ### Misc 75 | 76 | To get modify a package description without "rebuilding" it completely, you can use `rpmrebuild -e -p your.rpm` 77 | -------------------------------------------------------------------------------- /iso/8.1/boot/isolinux/pg_help: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | - To install or upgrade with 2G RAM max, type 0einstall-2G 05. 8 | - To install or upgrade using our alternate kernel, type 0einstall-alt 05. 9 | - To install or upgrade without a serial console, type 0eno-serial 05. 10 | - To install or upgrade in safe mode, type 0esafe 05. 11 | - To install or upgrade to a multipathed root disk, type 0emultipath 05. 12 | - To boot into a shell prompt, type 0eshell 05. 13 | - To perform a memory test, type 0ememtest 05. 14 | 15 | 0f[F1-Standard] [F2-Advanced]05 16 | -------------------------------------------------------------------------------- /iso/8.1/boot/isolinux/pg_main: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | (Press F2 for other options) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 0f[F1-Standard] [F2-Advanced]05 15 | -------------------------------------------------------------------------------- /iso/8.1/boot/isolinux/splash.lss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcp-ng/xcp/9d1eb1511205ae0f54e09257a9a413c449180543/iso/8.1/boot/isolinux/splash.lss -------------------------------------------------------------------------------- /iso/8.1/groups-XS.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | xenserver_base 6 | false 7 | false 8 | XenServer base system 9 | 10 | 11 | QCS-CLI 12 | QConvergeConsoleCLI-Citrix 13 | aic94xx-firmware 14 | bash-completion 15 | blktap 16 | bzip2 17 | chrony 18 | cifs-utils 19 | citrix-crypto-module 20 | compat-db47 21 | compat-libstdc++-33 22 | control-slice 23 | cronie-noanacron 24 | dlm 25 | dracut-network 26 | e2fsprogs 27 | efibootmgr 28 | elxocmcore 29 | expect 30 | fcoe-utils 31 | fontconfig 32 | gdisk 33 | gfs2-utils 34 | gnu-free-sans-fonts 35 | gnupg 36 | gpumon 37 | grub-efi 38 | grub 39 | guest-templates-json-data-linux 40 | guest-templates-json-data-other 41 | guest-templates-json-data-windows 42 | host-upgrade-plugin 43 | interface-rename 44 | ipmitool 45 | ipset 46 | iptables 47 | irqbalance 48 | iscsi-initiator-utils 49 | kbd 50 | kexec-tools 51 | linux-firmware 52 | linux-guest-loader-data 53 | linux-guest-loader 54 | livepatch-utils 55 | lsof 56 | makedumpfile 57 | mcelog 58 | mdadm 59 | memtest86+ 60 | microcode_ctl 61 | module-init-tools 62 | nano 63 | net-snmp 64 | nfs-utils 65 | ocaml-xenops-tools 66 | openssh-clients 67 | openssh-server 68 | openssl-perl 69 | openvswitch 70 | oprofile 71 | parted 72 | pbis-open 73 | plymouth-graphics-libs 74 | plymouth-plugin-script 75 | plymouth 76 | pmtools 77 | policycoreutils 78 | portmap 79 | pyserial 80 | python-fasteners 81 | redhat-lsb-core 82 | redhat-lsb-submod-security 83 | rootfiles 84 | rrd2csv 85 | rrdd-plugins 86 | rsync 87 | rsyslog 88 | samba-client 89 | samba-winbind-clients 90 | screen 91 | sharutils 92 | sm-cli 93 | sm-rawhba 94 | sm 95 | smartmontools 96 | squeezed 97 | strace 98 | stunnel_xs 99 | sudo 100 | sysfsutils 101 | sysstat 102 | system-config-firewall-tui 103 | systemtap-runtime 104 | tcpdump 105 | telnet 106 | unzip 107 | usbutils 108 | varstored-tools 109 | varstored 110 | vconfig 111 | vcputune 112 | vendor-drivers 113 | vendor-update-keys 114 | vgpu 115 | vhd-tool 116 | vhostmd 117 | vncsnapshot 118 | vncterm 119 | wget 120 | wsproxy 121 | xapi-nbd 122 | xapi-storage-script 123 | xapi-storage 124 | xapi-tests 125 | xcp-networkd 126 | xcp-rrdd 127 | xdelta 128 | xen-crashdump-analyser 129 | xenopsd-xc 130 | xenserver-dracut 131 | xenserver-firstboot 132 | xenserver-hwdata 133 | xenserver-status-report 134 | xenserver-transfer-vm 135 | xha 136 | xs-obsolete-packages 137 | xsconsole 138 | yum 139 | zip 140 | 141 | 142 | 143 | 144 | xenserver_dom0 145 | false 146 | true 147 | XenServer Dom0 148 | 149 | 150 | xenserver_base 151 | 152 | 153 | bugtool-conn-tests 154 | guest-templates-json-data-xenapp 155 | update-CH81 156 | v6d-citrix 157 | xenserver-plymouth-theme 158 | xenserver-pv-tools 159 | xenserver-release-config 160 | xenserver-release 161 | 162 | 163 | 164 | -------------------------------------------------------------------------------- /iso/8.2.1/.treeinfo: -------------------------------------------------------------------------------- 1 | [platform] 2 | name = XCP 3 | version = 3.2.1 4 | 5 | [branding] 6 | name = XCP-ng 7 | version = 8.2.1 8 | 9 | [build] 10 | number = release/yangtze/master/58 11 | 12 | [keys] 13 | key1 = RPM-GPG-KEY-CH-8 14 | key2 = RPM-GPG-KEY-CH-8-LCM 15 | key3 = RPM-GPG-KEY-Platform-V1 16 | 17 | [general] 18 | name = XCP-ng-8.2.1 19 | family = XCP-ng 20 | timestamp = {{timestamp}} 21 | variant = 22 | version = 8.2.1 23 | packagedir = 24 | arch = x86_64 25 | 26 | [images-x86_64] 27 | kernel = boot/pxelinux/mboot.c32 28 | initrd = boot/vmlinuz 29 | boot.iso = boot/xen.gz 30 | 31 | [images-xen] 32 | kernel = boot/pxelinux/mboot.c32 33 | initrd = boot/vmlinuz 34 | 35 | -------------------------------------------------------------------------------- /iso/8.2.1/boot/isolinux/pg_help: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | - To install or upgrade using our alternate kernel, type 0einstall-alt 05. 8 | - To install or upgrade without a serial console, type 0eno-serial 05. 9 | - To install or upgrade in safe mode, type 0esafe 05. 10 | - To install or upgrade to a multipathed root disk, type 0emultipath 05. 11 | - To boot into a shell prompt, type 0eshell 05. 12 | - To perform a memory test, type 0ememtest 05. 13 | - To open a boot menu and/or edit boot entries, type 0emenu 05. 14 | 15 | 0f[F1-Standard] [F2-Advanced]05 16 | -------------------------------------------------------------------------------- /iso/8.2.1/boot/isolinux/pg_main: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | (Press F2 for other options) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 0f[F1-Standard] [F2-Advanced]05 15 | -------------------------------------------------------------------------------- /iso/8.2.1/boot/isolinux/splash.lss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcp-ng/xcp/9d1eb1511205ae0f54e09257a9a413c449180543/iso/8.2.1/boot/isolinux/splash.lss -------------------------------------------------------------------------------- /iso/8.2/.treeinfo: -------------------------------------------------------------------------------- 1 | [platform] 2 | name = XCP 3 | version = 3.2.0 4 | 5 | [branding] 6 | name = XCP-ng 7 | version = 8.2.0 8 | 9 | [build] 10 | number = release/stockholm/master/7 11 | 12 | [keys] 13 | key1 = RPM-GPG-KEY-CH-8-LCM 14 | key2 = RPM-GPG-KEY-CH-8 15 | key3 = RPM-GPG-KEY-Platform-V1 16 | 17 | [general] 18 | name = XCP-ng-8.2 19 | family = XCP-ng 20 | timestamp = {{timestamp}} 21 | variant = 22 | version = 8.2 23 | packagedir = 24 | arch = x86_64 25 | 26 | [images-x86_64] 27 | kernel = boot/pxelinux/mboot.c32 28 | initrd = boot/vmlinuz 29 | boot.iso = boot/xen.gz 30 | 31 | [images-xen] 32 | kernel = boot/pxelinux/mboot.c32 33 | initrd = boot/vmlinuz 34 | 35 | -------------------------------------------------------------------------------- /iso/8.2/README.md: -------------------------------------------------------------------------------- 1 | ## How to build XCP-ng ISO 2 | 3 | Note: some parts of this file are not up to date anymore, but it still contains 4 | valuable information so it is kept for now. 5 | 6 | ### Splash image and other 7 | 8 | In your ISO folder, you need to create a `boot/isolinux` and add: 9 | 10 | * `pg_help` 11 | * `pg_main` 12 | * `splash.lss` (see below) 13 | 14 | In the root SO folder: 15 | 16 | * `.treeinfo` 17 | 18 | To generate the splash image (`boot/isolinux/splash.lss`), you need: 19 | 20 | * a 640x240 banner 21 | * In Gimp: Image/mode/index colors/14 (=16 including B&W) 22 | * export in gif format, ie `splash.gif` 23 | * `giftopnm < splash.gif > splash.ppm` 24 | * `ppmtolss16 < splash.ppm > splash.lss` 25 | 26 | > Note: in Fedora/CentOS/RH like, those packages are needed to create the splash image: 27 | 28 | * `syslinux-perl` 29 | * `netpbm-progs` 30 | 31 | ### Create repodata 32 | 33 | Go into the future ISO folder, and run `createrepo` using the `groups.xml` in this repo: 34 | 35 | 36 | ``` 37 | # createrepo . -o . -g ../groups.xml 38 | ``` 39 | 40 | ### install.img modification 41 | 42 | 1. `bzip2 -d install.img` 43 | 2. `mkdir tmp && cd tmp && cpio -id < ../install.img.out` 44 | 3. Edit your files 45 | 4. As root (because of some read-protected files such as etc/gshadow-): `find . | cpio --create --format='newc' > /tmp/newinstall` 46 | 5. `bzip2 /tmp/newinstall` 47 | 6. `mv /tmp/newinstall /tmp/install.img` 48 | 7. Replace it into the ISO 49 | 50 | ### ISO generation 51 | 52 | You need `genisoimage` program. 53 | 54 | Usage: 55 | 56 | ``` 57 | # cd isofolder/ 58 | # genisoimage -o ../xcpng.iso -v -r -J -V "XCP-ng 7.4" -c boot/isolinux/boot.cat -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/efiboot.img -no-emul-boot . 59 | ``` 60 | 61 | This will create a `xcpng.iso` file into your parent directory. 62 | 63 | To get the ISO bootable on USB: 64 | 65 | ``` 66 | # isohybrid --uefi xcpng.iso 67 | ``` 68 | ### Write the ISO to a USB key 69 | 70 | ``` 71 | # dd if=xcpng.iso of=/dev/sdX bs=4M status=progress oflag=direct && sync 72 | ``` 73 | 74 | ### Misc 75 | 76 | To get modify a package description without "rebuilding" it completely, you can use `rpmrebuild -e -p your.rpm` 77 | -------------------------------------------------------------------------------- /iso/8.2/boot/isolinux/pg_help: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | - To install or upgrade using our alternate kernel, type 0einstall-alt 05. 8 | - To install or upgrade without a serial console, type 0eno-serial 05. 9 | - To install or upgrade in safe mode, type 0esafe 05. 10 | - To install or upgrade to a multipathed root disk, type 0emultipath 05. 11 | - To boot into a shell prompt, type 0eshell 05. 12 | - To perform a memory test, type 0ememtest 05. 13 | - To open a boot menu and/or edit boot entries, type 0emenu 05. 14 | 15 | 0f[F1-Standard] [F2-Advanced]05 16 | -------------------------------------------------------------------------------- /iso/8.2/boot/isolinux/pg_main: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | (Press F2 for other options) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 0f[F1-Standard] [F2-Advanced]05 15 | -------------------------------------------------------------------------------- /iso/8.2/boot/isolinux/splash.lss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcp-ng/xcp/9d1eb1511205ae0f54e09257a9a413c449180543/iso/8.2/boot/isolinux/splash.lss -------------------------------------------------------------------------------- /iso/8.2/groups-XS.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | xenserver_base 6 | false 7 | false 8 | XenServer base system 9 | 10 | 11 | QCS-CLI 12 | QConvergeConsoleCLI-Citrix 13 | aic94xx-firmware 14 | bash-completion 15 | blktap 16 | bzip2 17 | chrony 18 | cifs-utils 19 | citrix-crypto-module 20 | compat-db47 21 | compat-libstdc++-33 22 | control-slice 23 | cronie-noanacron 24 | dlm 25 | dracut-network 26 | e2fsprogs 27 | efibootmgr 28 | elxocmcore 29 | expect 30 | fcoe-utils 31 | fontconfig 32 | gdisk 33 | gfs2-utils 34 | gnu-free-sans-fonts 35 | gnupg2 36 | gpumon 37 | grub-efi 38 | grub 39 | guest-templates-json-data-linux 40 | guest-templates-json-data-other 41 | guest-templates-json-data-windows 42 | hbaapiwrapper 43 | host-upgrade-plugin 44 | interface-rename 45 | ipmitool 46 | ipset 47 | iptables 48 | irqbalance 49 | iscsi-initiator-utils 50 | kbd 51 | kexec-tools 52 | libhbalinux 53 | libverto-tevent 54 | linux-firmware 55 | linux-guest-loader-data 56 | linux-guest-loader 57 | livepatch-utils 58 | lsof 59 | makedumpfile 60 | mcelog 61 | mdadm 62 | memtest86+ 63 | microcode_ctl 64 | module-init-tools 65 | nano 66 | net-snmp 67 | nfs-utils 68 | openssh-clients 69 | openssh-server 70 | openssl-perl 71 | openvswitch 72 | oprofile 73 | parted 74 | pbis-open 75 | plymouth-graphics-libs 76 | plymouth-plugin-script 77 | plymouth 78 | pmtools 79 | policycoreutils 80 | portmap 81 | pyserial 82 | python-fasteners 83 | redhat-lsb-core 84 | redhat-lsb-submod-security 85 | rootfiles 86 | rrd2csv 87 | rrdd-plugins 88 | rsync 89 | rsyslog 90 | samba-client 91 | samba-winbind-clients 92 | screen 93 | security-tools 94 | sharutils 95 | sm-cli 96 | sm-rawhba 97 | sm 98 | smartmontools 99 | squeezed 100 | strace 101 | stunnel 102 | sudo 103 | sysfsutils 104 | sysstat 105 | system-config-firewall-tui 106 | systemtap-runtime 107 | tcpdump 108 | telnet 109 | unzip 110 | usbutils 111 | varstored-tools 112 | varstored 113 | vconfig 114 | vcputune 115 | vendor-drivers 116 | vendor-update-keys 117 | vgpu 118 | vhd-tool 119 | vhostmd 120 | vncsnapshot 121 | vncterm 122 | wget 123 | wsproxy 124 | xapi-nbd 125 | xapi-storage-script 126 | xapi-storage 127 | xapi-tests 128 | xapi-xe 129 | xcp-networkd 130 | xcp-rrdd 131 | xdelta 132 | xen-crashdump-analyser 133 | xenopsd-cli 134 | xenopsd-xc 135 | xenserver-dracut 136 | xenserver-hwdata 137 | xenserver-status-report 138 | xenserver-transfer-vm 139 | xha 140 | xs-obsolete-packages 141 | xsconsole 142 | yum 143 | zip 144 | update-CH82 145 | 146 | 147 | 148 | 149 | xenserver_dom0 150 | false 151 | true 152 | XenServer Dom0 153 | 154 | 155 | xenserver_base 156 | 157 | 158 | bugtool-conn-tests 159 | v6d-citrix 160 | xenserver-plymouth-theme 161 | xenserver-release-config 162 | xenserver-release 163 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /iso/8.3/.treeinfo: -------------------------------------------------------------------------------- 1 | [system-v1] 2 | platform_name = XCP 3 | platform_version = 3.3.0 4 | product_name = XCP-ng 5 | product_version = 8.3.0 6 | 7 | [build] 8 | number = cloud 9 | [keys] 10 | key1 = RPM-GPG-KEY-xcpng 11 | 12 | [general] 13 | name = XCP-ng-8.3.0 14 | family = XCP-ng 15 | timestamp = {{timestamp}} 16 | variant = 17 | version = 8.3.0 18 | packagedir = 19 | arch = x86_64 20 | 21 | [images-x86_64] 22 | kernel = boot/pxelinux/mboot.c32 23 | initrd = boot/vmlinuz 24 | boot.iso = boot/xen.gz 25 | 26 | [images-xen] 27 | kernel = boot/pxelinux/mboot.c32 28 | initrd = boot/vmlinuz 29 | 30 | -------------------------------------------------------------------------------- /iso/8.3/boot/isolinux/pg_help: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | - To install or upgrade using our alternate kernel, type 0einstall-alt 05. 8 | - To install or upgrade without a serial console, type 0eno-serial 05. 9 | - To install or upgrade in safe mode, type 0esafe 05. 10 | - To install or upgrade to a multipathed root disk, type 0emultipath 05. 11 | - To boot into a shell prompt, type 0eshell 05. 12 | - To perform a memory test, type 0ememtest 05. 13 | - To open a boot menu and/or edit boot entries, type 0emenu 05. 14 | 15 | 0f[F1-Standard] [F2-Advanced]05 16 | -------------------------------------------------------------------------------- /iso/8.3/boot/isolinux/pg_main: -------------------------------------------------------------------------------- 1 | 2 | splash.lss 3 | 4 | 05Welcome to XCP-ng. 5 | 6 | - To install or upgrade press the 0e05 key. 7 | (Press F2 for other options) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 0f[F1-Standard] [F2-Advanced]05 15 | -------------------------------------------------------------------------------- /iso/8.3/boot/isolinux/splash.lss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcp-ng/xcp/9d1eb1511205ae0f54e09257a9a413c449180543/iso/8.3/boot/isolinux/splash.lss -------------------------------------------------------------------------------- /iso/8.3/comps-XS.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | xenserver_base 8 | xenserver_base 9 | None 10 | false 11 | true 12 | 13 | aic94xx-firmware 14 | avago-megaraid-sas 15 | avago-mpt3sas 16 | bash-completion 17 | blktap 18 | broadcom-bnxt-en 19 | bzip2 20 | chelsio-cxgb4 21 | chrony 22 | cifs-utils 23 | cisco-enic 24 | cisco-fnic 25 | citrix-crypto-module 26 | compat-db47 27 | compat-libstdc++-33 28 | control-slice 29 | cronie-noanacron 30 | dlm 31 | dracut-network 32 | e2fsprogs 33 | efibootmgr 34 | emulex-lpfc 35 | expect 36 | fcoe-utils 37 | fontconfig 38 | gdisk 39 | gfs2-utils 40 | gnu-free-sans-fonts 41 | gnupg2 42 | gpumon 43 | grub 44 | grub-efi 45 | guest-templates-json-data-linux 46 | guest-templates-json-data-other 47 | guest-templates-json-data-windows 48 | hcp_nss 49 | host-upgrade-plugin 50 | intel-e1000e 51 | intel-fm10k 52 | intel-i40e 53 | intel-ice 54 | intel-igb 55 | intel-ixgbe 56 | interface-rename 57 | ipmitool 58 | ipset 59 | iptables 60 | irqbalance 61 | iscsi-initiator-utils 62 | kbd 63 | kexec-tools 64 | libhbalinux 65 | libverto-tevent 66 | linux-firmware 67 | linux-guest-loader 68 | linux-guest-loader-data 69 | lsof 70 | makedumpfile 71 | mcelog 72 | mdadm 73 | mellanox-mlnxen 74 | memtest86+ 75 | microcode_ctl 76 | microsemi-smartpqi 77 | module-init-tools 78 | nano 79 | net-snmp 80 | nfs-utils 81 | openssh-clients 82 | openssh-server 83 | openssl-perl 84 | openvswitch 85 | oprofile 86 | parted 87 | pbis-open 88 | plymouth 89 | plymouth-graphics-libs 90 | plymouth-plugin-script 91 | pmtools 92 | policycoreutils 93 | portmap 94 | pvsproxy 95 | pyserial 96 | python-fasteners 97 | qlogic-fastlinq 98 | qlogic-netxtreme2 99 | qlogic-qla2xxx 100 | redhat-lsb-core 101 | redhat-lsb-submod-security 102 | rootfiles 103 | rrdd-plugins 104 | rsync 105 | rsyslog 106 | samba-client 107 | samba-winbind-clients 108 | screen 109 | security-tools 110 | sharutils 111 | sm 112 | sm-cli 113 | smartmontools 114 | squeezed 115 | strace 116 | stunnel 117 | sudo 118 | sysfsutils 119 | sysstat 120 | system-config-firewall-tui 121 | systemtap-runtime 122 | tcpdump 123 | telnet 124 | unzip 125 | usbutils 126 | varstored 127 | varstored-tools 128 | vconfig 129 | vcputune 130 | vendor-drivers 131 | vendor-update-keys 132 | vgpu 133 | vhd-tool 134 | vncsnapshot 135 | vncterm 136 | wget 137 | wsproxy 138 | xapi-nbd 139 | xapi-storage 140 | xapi-storage-script 141 | xapi-tests 142 | xapi-xe 143 | xcp-networkd 144 | xcp-rrdd 145 | xdelta 146 | xen-crashdump-analyser 147 | xenopsd-cli 148 | xenopsd-xc 149 | xenserver-dracut 150 | xenserver-hwdata 151 | xenserver-status-report 152 | xenserver-transfer-vm 153 | xha 154 | xs-obsolete-packages 155 | xsconsole 156 | yum 157 | zip 158 | 159 | 160 | 161 | xenserver_dom0 162 | xenserver_dom0 163 | None 164 | false 165 | true 166 | 167 | bugtool-conn-tests 168 | v6d-citrix 169 | xenserver-plymouth-theme 170 | xenserver-pv-tools 171 | xenserver-release 172 | xenserver-release-config 173 | 174 | 175 | 176 | -------------------------------------------------------------------------------- /misc/assets/logo-glossy-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcp-ng/xcp/9d1eb1511205ae0f54e09257a9a413c449180543/misc/assets/logo-glossy-small.png -------------------------------------------------------------------------------- /misc/assets/stretch-goals-ks-campaign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcp-ng/xcp/9d1eb1511205ae0f54e09257a9a413c449180543/misc/assets/stretch-goals-ks-campaign.png -------------------------------------------------------------------------------- /misc/assets/xcp-ng-hiw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcp-ng/xcp/9d1eb1511205ae0f54e09257a9a413c449180543/misc/assets/xcp-ng-hiw.png -------------------------------------------------------------------------------- /misc/ks_pledges.md: -------------------------------------------------------------------------------- 1 | # Pledges and sponsors 2 | 3 | Here the list of pledges level (for people) and sponsors (for companies) -------------------------------------------------------------------------------- /misc/ks_project_description.md: -------------------------------------------------------------------------------- 1 | # Project description 2 | 3 | ## XCP new generation: free/libre and 100% community backed XenServer 4 | 5 | ### What is it? 6 | 7 | Currently, XenServer is a turnkey virtualization plat-form, distributed as a distribtion (based on CentOS). It comes with a feature rich toolstack, called XAPI. Vast majority of XenServer code is Open Source. 8 | 9 | **But since XenServer 7.3, Citrix removed a lot of features from it. The goal of XCP-ng is to make a fully community backed version of XenServer, without any feature restrictions.** 10 | 11 | The other goal is to also create a real ecosystem, not depending of one company only. More sponsors = healthier project! 12 | 13 | ### How the money will be used? 14 | 15 | The money will be **managed transparently** (ie publicly), on the [XCP meta-repo](https://github.com/xcp-ng/xcp). Priorities are to **bootstrap the project quickly**, and produce documentation to let everyone able to build it. In order to do that, here is how the money will be used, in priority to: 16 | 17 | 1. compensate people time directly contributing (with XenServer/XAPI/CentOS experience) 18 | 2. pay for various project hosting fees 19 | 3. communicate around it 20 | 21 | ### Where We Are Now? 22 | 23 | The first proof-of-concept is [already working](https://xcp-ng.github.io/news/2018/01/22/xcp-ng-on-tracks.html), so it's technically doable. The next step is to achieve *Phase I*. 24 | 25 | #### Phase I 26 | 27 | Initial release of XCP-ng, based on latest XenServer sources. Simple yet functional release, with: 28 | 29 | * a manually crafted XCP-ng ISO 30 | * a RPM repo 31 | 32 | #### Phase II 33 | 34 | Automation + documentation for building XCP-ng packages, creating the ISO and/or the RPM repo. Also: 35 | 36 | * turn a CentOS into XCP-ng via RPM repo 37 | * turn a XenServer to XCP-ng via ISO upgrade 38 | 39 | #### Phase III 40 | 41 | Community code inserted into XCP-ng project, like: 42 | 43 | * bundled Gluster support 44 | * Software RAID during install 45 | * ZFS driver 46 | * better compression 47 | * etc. 48 | 49 | ### People and companies behind XCP-ng 50 | 51 | #### Companies 52 | 53 | * Vates (Xen Orchestra editor) 54 | * Zentific 55 | * Your company if you sponsor it! 56 | 57 | #### People 58 | 59 | * Olivier (Xen Orchestra project founder) 60 | * John Else (contractor, former XAPI dev) 61 | * Nick Couchman 62 | * Jon Sands 63 | * Mike Hidalgo 64 | 65 | ### Risks and challenges 66 | 67 | With a software development project like this (involving various pieces of existing code), the biggest risk and challenge is inevitably shipping on time. 68 | 69 | To combat delays, we'll be setting regular milestones and work with people with previous developer experience on XenServer, XAPI and CentOS. 70 | 71 | This biggest challenge will be to deliver simple upgrade path from XenServer and also give a seamless experience to go from a CentOS to XCP-ng (via RPM repository). 72 | 73 | ### FAQ 74 | 75 | * Will it be "compatible" with XenCenter? 76 | 77 | In short: yes. We aim to have a codebase that's close to XenServer. We can't be 100% sure about Citrix products on top of XenServer (if they check product name), but API will be 100% compatible. For example, Xen Orchestra will work on top of XCP-ng. 78 | 79 | * Will `xe` CLI still works? 80 | 81 | Absolutely. `xe` won't be changed. 82 | 83 | * Is it possible to upgrade an existing XenServer to XCP-ng? 84 | 85 | That's one of the project's goal, indeed. We want to provide a simple upgrade path to let people "update" their infrastructure without high migration costs. 86 | 87 | * Will I enjoy all features for free? 88 | 89 | All features available from the sources of XenServer will be free. No more pool size limitation, or VDI live migration restrictions. 90 | 91 | * Is there any pro support coming? 92 | 93 | It's a bit early to say. Pro support or not, XCP-ng will stay a community project anyway. No one will "steal" it for it's own agenda. 94 | 95 | * Why "XCP-ng" name? 96 | 97 | Because in the past, XCP (aka "Xen Cloud Project") had the similar objective. However, the project was stalled because only Citrix was behind it. Nobody want to do the same mistake: it's up to you to be a sponsor or a contributor! -------------------------------------------------------------------------------- /misc/ks_script.md: -------------------------------------------------------------------------------- 1 | # Script for KS video 2 | 3 | ## Written text 4 | 5 | - *Slide 1* - Building XenServer from the sources with XCP-ng 6 | - *Slide 2* - Xen Cloud Project - New generation will offer an alternative to Citrix XenServer 7 | - *Slide 3* - Since XenServer 7.3 removed a lot of free features --- we needed a community solution again 8 | - *Slide 4* - Main goal? --- Enjoy the power of XenServer, with a real community backed solution 9 | - *Slide 5* - Help you to scale your IT infrastructure easily 10 | - *Slide 6* - Allow you to focus on what matters --- Innovation and modernization 11 | - *Slide 7* - Join our community now! --- Support us on kickstarter --- `campaign link` 12 | 13 | ## Audio text 14 | 15 | - *Slide 1* - Building XenServer from the sources with XCP-ng 16 | - *Slide 2* - Xen Cloud Project is an alternative to Citrix XenServer 17 | - *Slide 3* - Since XenServer 7.3 removed a lot of free features --- We needed a community solution again 18 | - *Slide 4* - What is the main goal? --- Enjoy the power of XenServer, with a real community backed solution, not dependant from a company 19 | - *Slide 5* - And help you to scale your IT infrastructure easily 20 | - *Slide 6* - To allow you to focus on what really matters: innovation and modernization 21 | - *Slide 7* - Join our community now! --- Support us on kickstarter 22 | 23 | ## Video draft 24 | 25 | https://www.youtube.com/watch?v=FboAVU7YvgY&feature=youtu.be 26 | 27 | // Potential animations: https://videohive.net/category/after-effects-project-files/product-promo -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.pydocstyle] 2 | ignore = "D100,D101,D102,D103,D104,D105,D106,D107,D203,D210,D212,D401,D403" 3 | 4 | 5 | [tool.ruff] 6 | preview = true 7 | line-length = 120 8 | 9 | [tool.ruff.format] 10 | quote-style = "preserve" 11 | 12 | [tool.ruff.lint] 13 | select = ["F", "I", "SLF", "SIM"] 14 | -------------------------------------------------------------------------------- /scripts/.gitignore: -------------------------------------------------------------------------------- 1 | github.txt 2 | -------------------------------------------------------------------------------- /scripts/compare_packages.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | from collections import OrderedDict 3 | import argparse 4 | import os 5 | import glob 6 | import subprocess 7 | from datetime import datetime 8 | 9 | def list_rpms(directory): 10 | rpms = OrderedDict() 11 | for filepath in sorted(glob.glob(os.path.join(directory, '*.rpm'))): 12 | info = subprocess.check_output(['rpm', '-qp', filepath, '--qf', 13 | "%{name},,%{license},,%{vendor},,%{buildhost},," 14 | "%{buildtime},,%{evr},,%{sourcerpm},,%{summary}"]) 15 | info = info.decode('utf-8') 16 | info = info.split(',,') 17 | rpms[info[0]] = { 18 | 'filepath': filepath, 19 | 'filename': os.path.basename(filepath), 20 | 'license': info[1], 21 | 'vendor': info[2], 22 | 'buildhost': info[3], 23 | 'buildtime': datetime.fromtimestamp(float(info[4])), 24 | 'evr': info[5], 25 | 'sourcerpm': info[6], 26 | 'summary': info[7] 27 | } 28 | return rpms 29 | 30 | def main(): 31 | parser = argparse.ArgumentParser(description='Compares two sets of RPM packages') 32 | parser.add_argument('dir1', help='first directory') 33 | parser.add_argument('dir2', help='second directory') 34 | args = parser.parse_args() 35 | 36 | DEVNULL = open(os.devnull, 'w') 37 | 38 | dir1 = os.path.abspath(args.dir1) 39 | dir2 = os.path.abspath(args.dir2) 40 | 41 | # list RPMs 42 | rpms1 = list_rpms(dir1) 43 | rpms2 = list_rpms(dir2) 44 | 45 | for name, info in rpms1.items(): 46 | if name not in rpms2: 47 | info['removed'] = True 48 | rpms2[name] = info 49 | 50 | rpms2 = OrderedDict(sorted(rpms2.items(), key=lambda t: t[0])) 51 | 52 | vendors = set([info['vendor'] for info in rpms1.values()]) 53 | vendors |= set([info['vendor'] for info in rpms2.values()]) 54 | 55 | for vendor in sorted(list(vendors)): 56 | print("\n\n-------------------- Vendor: %s ------------------------\n" % vendor) 57 | for name, info in rpms2.items(): 58 | if info['vendor'] != vendor: 59 | continue 60 | if name not in rpms1: 61 | print("*** %s added" % info['filename']) 62 | print("Summary: %s" % info['summary']) 63 | print("SRPM: %s" % info['sourcerpm']) 64 | print("License: %s" % info['license']) 65 | print(subprocess.check_output(['rpm', '-qlp', info['filepath']]).decode('utf-8')) 66 | elif info.get('removed', False): 67 | print("*** %s removed" % info['filename']) 68 | if info['vendor'] not in ['CentOS', 'Fedora Project']: 69 | print("Summary: %s" % info['summary']) 70 | print("SRPM: %s" % info['sourcerpm']) 71 | print("License: %s" % info['license']) 72 | print(subprocess.check_output(['rpm', '-qlp', info['filepath']]).decode('utf-8')) 73 | else: 74 | previous = rpms1[name]['filename'] 75 | if info['evr'] == rpms1[name]['evr']: 76 | # version unchanged, check diff 77 | ret = subprocess.call(['diff', '-q', rpms1[name]['filepath'], info['filepath']], 78 | stdout=DEVNULL, stderr=subprocess.STDOUT) 79 | if (ret != 0): 80 | status = "%s EVR unchanged, new file differs" % previous 81 | else: 82 | status = "%s EVR unchanged, new file identical" % previous 83 | print("*** %s" % status) 84 | else: 85 | status = "%s => %s" % (previous, info['filename']) 86 | print("*** %s" % status) 87 | if info['summary'] != rpms1[name]['summary']: 88 | print("Summary (previous): %s" % rpms1[name]['summary']) 89 | print("Summary: %s" % info['summary']) 90 | if info['license'] != rpms1[name]['license']: 91 | print("License (previous): %s" % rpms1[name]['license']) 92 | print("SRPM: %s" % info['sourcerpm']) 93 | print("License: %s" % info['license']) 94 | 95 | print(subprocess.check_output("rpmdiff -iT %s %s 2>&1 || echo" % (rpms1[name]['filepath'], info['filepath']), 96 | shell=True).decode('utf-8'), 97 | end='') 98 | 99 | if __name__ == "__main__": 100 | main() 101 | -------------------------------------------------------------------------------- /scripts/create_rpm_git_repo.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | from __future__ import print_function 3 | 4 | import argparse 5 | import os 6 | import re 7 | import subprocess 8 | import sys 9 | 10 | from github import Github 11 | 12 | TEAMS = { 13 | "Hypervisor & Kernel": ['hk', 'hypervisor'], 14 | "OS Platform & Release": ['opr', 'platform'], 15 | 'Security': ['security'], 16 | 'Storage': ['storage'], 17 | 'XAPI & Network': ['xn', 'network', 'xapi'], 18 | } 19 | 20 | TEAM_CHOICES = list(TEAMS.keys()) + [n for ns in TEAMS.values() for n in ns] 21 | TEAM_ALIASES = dict([(alias, team) for team, aliases in TEAMS.items() for alias in aliases] 22 | + [(team, team) for team in TEAMS]) 23 | 24 | 25 | def to_gh_team(maintainer: str): 26 | return '@xcp-ng-rpms/' + re.sub(r'\W+', '-', maintainer.lower()) 27 | 28 | 29 | def main(): 30 | parser = argparse.ArgumentParser(description='Creates a git repository in current directory for RPM spec file and' 31 | ' sources') 32 | parser.add_argument('name', help='name of repository') 33 | parser.add_argument('--local', 34 | help='do not create github repository', 35 | action='store_true') 36 | parser.add_argument('-m', '--maintainer', choices=TEAM_CHOICES, help='Configure code owners to this team') 37 | parser.add_argument('token_file', 38 | help='file containing github authentication token', 39 | nargs='?', 40 | default=os.path.join(os.path.dirname(os.path.realpath(__file__)), 'github.txt')) 41 | args = parser.parse_args() 42 | 43 | if args.maintainer is None: 44 | print('error: please assign a team with --maintainer', file=sys.stderr) 45 | exit(1) 46 | maintainer = TEAM_ALIASES[args.maintainer] 47 | 48 | if not args.local: 49 | # authenticate to Github 50 | if os.access(args.token_file, os.R_OK): 51 | with open(args.token_file) as f: 52 | token = f.read().strip() 53 | elif 'GITHUB_TOKEN' in os.environ: 54 | token = os.environ['GITHUB_TOKEN'] 55 | else: 56 | print('error: please provide a github access token', file=sys.stderr) 57 | exit(1) 58 | g = Github(token) 59 | 60 | # create repository 61 | org = g.get_organization('xcp-ng-rpms') 62 | org.create_repo(args.name, "RPM sources for %s" % args.name) 63 | 64 | # initial commit to master 65 | gitignore = """BUILD 66 | BUILDROOT 67 | RPMS 68 | SRPMS 69 | """ 70 | readme = """RPM sources for the %s package in XCP-ng (https://xcp-ng.org/). 71 | 72 | Make sure to have `git-lfs` installed before cloning. It is used for handling source archives separately. 73 | 74 | Branches: 75 | * `master` contains sources for the next `x.y` release of XCP-ng. 76 | * `x.y` (e.g. `7.5`) contains sources for the `x.y` release of XCP-ng, with their bugfix and/or security updates. 77 | * `XS-x.y` (e.g. `XS-7.5`), when they exist, contain sources from the `x.y` release of XenServer, with trademarked 78 | or copyrighted material stripped if needed. 79 | 80 | Built RPMs and source RPMs are available on https://updates.xcp-ng.org. 81 | """ % args.name 82 | if args.local: 83 | subprocess.check_call(['git', 'init', '-b', 'master', args.name]) 84 | subprocess.check_call(['git', '-C', args.name, 85 | 'remote', 'add', 'origin', 86 | 'https://github.com/xcp-ng-rpms/%s.git' % args.name]) 87 | else: 88 | subprocess.check_call(['git', 'clone', 'https://github.com/xcp-ng-rpms/%s.git' % args.name]) 89 | os.chdir(args.name) 90 | if "git@github.com" not in subprocess.check_output( 91 | ['git', 'remote', 'get-url', '--push', 'origin'], 92 | universal_newlines=True): 93 | # only set if pushInsteadOf was not configured 94 | subprocess.check_call(['git', 'remote', 'set-url', '--push', 'origin', 95 | 'git@github.com:xcp-ng-rpms/%s.git' % args.name]) 96 | with open('.gitignore', 'w') as f: 97 | f.write(gitignore) 98 | subprocess.check_call(['git', 'add', '.gitignore']) 99 | with open('README.md', 'w') as f: 100 | f.write(readme) 101 | subprocess.check_call(['git', 'add', 'README.md']) 102 | # create the CODEOWNERS file 103 | content = f"* {to_gh_team(maintainer)}\n" 104 | # make sure the platform team is owner of all the repositories 105 | if maintainer != TEAM_ALIASES['platform']: 106 | content += f"* {to_gh_team(TEAM_ALIASES['platform'])}\n" 107 | os.mkdir('.github') 108 | with open('.github/CODEOWNERS', 'w') as f: 109 | f.write(content) 110 | subprocess.check_call(['git', 'add', '.github']) 111 | subprocess.check_call(['git', 'add', 'README.md']) 112 | subprocess.check_call(['git', 'lfs', 'install']) 113 | subprocess.check_call(['git', 'lfs', 'track', '*.gz']) 114 | subprocess.check_call(['git', 'lfs', 'track', '*.bz2']) 115 | subprocess.check_call(['git', 'lfs', 'track', '*.xz']) 116 | subprocess.check_call(['git', 'lfs', 'track', '*.zip']) 117 | subprocess.check_call(['git', 'lfs', 'track', '*.tar']) 118 | subprocess.check_call(['git', 'lfs', 'track', '*.tgz']) 119 | subprocess.check_call(['git', 'lfs', 'track', '*.tbz']) 120 | subprocess.check_call(['git', 'add', '.gitattributes']) 121 | subprocess.check_call(['git', 'commit', '-s', '-m', 'Initial commit']) 122 | if not args.local: 123 | subprocess.check_call(['git', 'push']) 124 | 125 | if __name__ == "__main__": 126 | main() 127 | -------------------------------------------------------------------------------- /scripts/diff_rpms.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Compares 2 RPMs 3 | set -e 4 | 5 | if [ -z $2 ] 6 | then 7 | echo "Usage: $0 RPM1 RPM2" 8 | exit 9 | fi 10 | 11 | rpm1=$(realpath $1) 12 | rpm2=$(realpath $2) 13 | 14 | TMPDIR=$(mktemp -d) 15 | pushd "$TMPDIR" 16 | 17 | mkdir rpm1 18 | cd rpm1 19 | rpm2cpio $rpm1 | cpio -idm 20 | rpm -qp $rpm1 --scripts > scripts.txt 21 | rpm -qp --qf "Name : %{name} 22 | License : %{license} 23 | URL : %{url} 24 | Summary : %{summary} 25 | Description : %{description} 26 | " $rpm1 > info.txt 27 | cd .. 28 | 29 | mkdir rpm2 30 | cd rpm2 31 | rpm2cpio $rpm2 | cpio -idm 32 | rpm -qp $rpm2 --scripts > scripts.txt 33 | rpm -qp --qf "Name : %{name} 34 | License : %{license} 35 | URL : %{url} 36 | Summary : %{summary} 37 | Description : %{description} 38 | " $rpm2 > info.txt 39 | cd .. 40 | 41 | meld rpm1 rpm2 42 | 43 | popd 44 | 45 | \rm -rv "$TMPDIR" -------------------------------------------------------------------------------- /scripts/download_centos.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import argparse 3 | import os 4 | import sys 5 | import glob 6 | import subprocess 7 | import csv 8 | import shutil 9 | 10 | def build_url(path): 11 | if path.startswith('7/'): 12 | return "http://mirror.centos.org/centos/" + path 13 | else: 14 | return "http://vault.centos.org/" + path 15 | 16 | def download_rpm(rpm, downloaddir, vendor, local_centos, local_epel): 17 | if vendor == "CentOS": 18 | if local_centos is not None: 19 | shutil.copy2(os.path.join(local_centos, rpm), downloaddir) 20 | print("%s: copied from %s" % (rpm, local_centos)) 21 | return 22 | else: 23 | for version in ['7.2.1511', '7.3.1611', '7.4.1708', '7.5.1804', '7']: 24 | for repodir in ['os', 'updates']: 25 | url = build_url('%s/%s/x86_64/Packages/%s' % (version, repodir, rpm)) 26 | try: 27 | subprocess.check_call(['wget', '-q', '-O', os.path.join(downloaddir, rpm), url]) 28 | print("%s: fetched from %s" % (rpm, url)) 29 | return 30 | except: 31 | pass 32 | if vendor == "Fedora Project": 33 | if local_epel is not None: 34 | shutil.copy2(os.path.join(local_epel, rpm), downloaddir) 35 | print("%s: copied from %s" % (rpm, local_epel)) 36 | return 37 | else: 38 | url = 'http://mirror.in2p3.fr/pub/epel/7/x86_64/Packages/%s/%s' % (rpm[0], rpm) 39 | try: 40 | subprocess.check_call(['wget', '-q', '-O', os.path.join(downloaddir, rpm), url]) 41 | print("%s: fetched from %s" % (rpm, url)) 42 | return 43 | except: 44 | pass 45 | 46 | print("%s: NOT FOUND" % rpm) 47 | sys.exit(1) 48 | 49 | def main(): 50 | parser = argparse.ArgumentParser(description='Looks for missing RPMs based on their SRPMs and downloads if it can') 51 | parser.add_argument('rpmdir', help='directory that contains the RPMs') 52 | parser.add_argument('srpmdir', help='directory that contains the source RPMs') 53 | parser.add_argument('centos_rpms_and_srpms', 54 | help='file that contains a list of x86_64 and noarch packages with their source RPM') 55 | parser.add_argument('downloaddir', help='where to download the missing RPMs to') 56 | parser.add_argument('--local-centos', help='path to a local directory containing all the CentOS RPMs') 57 | parser.add_argument('--local-epel', help='path to a local directory containing all the EPEL RPMs') 58 | args = parser.parse_args() 59 | 60 | DEVNULL = open(os.devnull, 'w') 61 | 62 | rpmdir = os.path.abspath(args.rpmdir) 63 | srpmdir = os.path.abspath(args.srpmdir) 64 | downloaddir = os.path.abspath(args.downloaddir) 65 | if not os.path.isdir(downloaddir): 66 | os.makedirs(downloaddir) 67 | 68 | local_centos = None 69 | local_epel = None 70 | if args.local_centos: 71 | local_centos=os.path.abspath(args.local_centos) 72 | if args.local_epel: 73 | local_epel=os.path.abspath(args.local_epel) 74 | 75 | srpms_to_rpms = {} 76 | with open(args.centos_rpms_and_srpms, 'r') as csvfile: 77 | for row in csv.reader(csvfile, delimiter=','): 78 | if row[1] not in srpms_to_rpms: 79 | srpms_to_rpms[row[1]] = [] 80 | srpms_to_rpms[row[1]].append(row[0]) 81 | 82 | srpms = {} 83 | for filepath in sorted(glob.glob(os.path.join(srpmdir, '*.src.rpm'))): 84 | filename = os.path.basename(filepath) 85 | 86 | vendor = subprocess.check_output(['rpm', '-qp', filepath, '--qf', '%{vendor}'], stderr=DEVNULL).decode('utf-8') 87 | if vendor not in ("CentOS", "Fedora Project"): 88 | print("Skipping %s due to unknown vendor %s" % (filename, vendor)) 89 | continue 90 | 91 | print("\n*** %s" % filename) 92 | if filename not in srpms_to_rpms: 93 | print("Warning: SRPM not found in reference file") 94 | else: 95 | for rpm in srpms_to_rpms[filename]: 96 | if os.path.exists(os.path.join(rpmdir, rpm)): 97 | print("%s: OK" % rpm) 98 | else: 99 | if os.path.exists(os.path.join(downloaddir, rpm)): 100 | print("%s: already downloaded" % rpm) 101 | else: 102 | download_rpm(rpm, downloaddir, vendor, local_centos, local_epel) 103 | 104 | if __name__ == "__main__": 105 | main() 106 | -------------------------------------------------------------------------------- /scripts/gen-iso.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ueE 4 | 5 | usage() 6 | { 7 | echo "----------------------------------------------------------------------------------------" 8 | echo "- The purpose of this script is to be executed inside the container of our development environment to generate ISO files for XCP-ng." 9 | echo "- Usage: $0 " 10 | echo "- All options are mandatory." 11 | echo "- VERSION of XCP-ng: 8.2 or 8.3" 12 | echo "- REPOSITORY: update, testing, ci, ..." 13 | echo "- Example: $0 8.3 testing" 14 | echo "----------------------------------------------------------------------------------------" 15 | } 16 | 17 | if [ $# -lt 2 ]; then 18 | echo "Missing argument(s)" 19 | echo 20 | usage 21 | exit 1 22 | fi 23 | 24 | VERSION="$1" 25 | 26 | if [ "$VERSION" != "8.3" ] && [ "$VERSION" != "8.2" ]; then 27 | echo "Unsupported version. Please choose between 8.2 and 8.3." 28 | exit 29 | fi 30 | 31 | REPOSITORY="$2" 32 | 33 | THEDATE=$(date +%Y%m%d) 34 | 35 | set -x 36 | 37 | NAMEIMG="install-${VERSION}-${REPOSITORY}.img" 38 | NAMEISO="xcp-ng-${VERSION}-${REPOSITORY}-nightly-${THEDATE}.iso" 39 | NAMEISONI="xcp-ng-${VERSION}-${REPOSITORY}-netinstall-nightly-${THEDATE}.iso" 40 | 41 | MNTVOL="XCP-ng ${VERSION} ${REPOSITORY} ${THEDATE}" 42 | 43 | sudo yum install -y genisoimage syslinux grub-tools createrepo_c libfaketime 44 | 45 | cd /data 46 | 47 | sudo ./scripts/create-installimg.sh --srcurl "https://updates.xcp-ng.org/8/${VERSION}" -o "${NAMEIMG}" "${VERSION}":"${REPOSITORY}" 48 | 49 | ./scripts/create-iso.sh --netinstall --srcurl "https://updates.xcp-ng.org/8/${VERSION}" -V "${MNTVOL}" -o "${NAMEISONI}" "${VERSION}":"${REPOSITORY}" "${NAMEIMG}" 50 | 51 | ./scripts/create-iso.sh --srcurl "https://updates.xcp-ng.org/8/${VERSION}" -V "${MNTVOL}" -o "${NAMEISO}" "${VERSION}":"${REPOSITORY}" "${NAMEIMG}" 52 | -------------------------------------------------------------------------------- /scripts/import_srpm.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import argparse 3 | import logging 4 | import os 5 | import subprocess 6 | 7 | def call_process(args): 8 | logging.debug("$ %s", args) 9 | subprocess.check_call(args) 10 | 11 | def main(): 12 | parser = argparse.ArgumentParser(description='Imports the contents of a source RPM into a git repository') 13 | parser.add_argument('source_rpm', help='local path to source RPM') 14 | parser.add_argument('repository', help='local path to the repository') 15 | parser.add_argument('parent_branch', help='git parent branch from which to branch') 16 | parser.add_argument('branch', help='destination branch') 17 | parser.add_argument('tag', nargs='?', help='tag') 18 | parser.add_argument('-v', '--verbose', action='count', default=0) 19 | parser.add_argument('-p', '--push', action='store_true', help='pull and push') 20 | parser.add_argument('-m', '--master', action='store_true', help='merge to master afterwards') 21 | args = parser.parse_args() 22 | 23 | if args.verbose > 2: 24 | args.verbose = 2 25 | loglevel = {0: logging.WARNING, 26 | 1: logging.INFO, 27 | 2: logging.DEBUG, 28 | }[args.verbose] 29 | logging.basicConfig(format='[%(levelname)s] %(message)s', level=loglevel) 30 | 31 | # check that the source RPM file exists 32 | if not os.path.isfile(args.source_rpm): 33 | parser.error("File %s does not exist." % args.source_rpm) 34 | if not args.source_rpm.endswith('.src.rpm'): 35 | parser.error("File %s does not appear to be a source RPM." % args.source_rpm) 36 | source_rpm_abs = os.path.abspath(args.source_rpm) 37 | 38 | # enter repository directory 39 | if not os.path.isdir(args.repository): 40 | parser.error("Repository directory %s does not exist." % args.repository) 41 | os.chdir(args.repository) 42 | 43 | # check that the working copy is clean 44 | try: 45 | call_process(['git', 'diff-index', '--quiet', 'HEAD', '--']) 46 | print("Working copy is clean.") 47 | except: 48 | raise 49 | parser.error("Git repository seems to have local modifications.") 50 | 51 | # check that there are no untracked files 52 | if len(subprocess.check_output(['git', 'ls-files', '--others', '--exclude-standard'])): 53 | parser.error("There are untracked files.") 54 | 55 | print(" checking out parent ref...") 56 | 57 | if args.push: 58 | call_process(['git', 'fetch']) 59 | call_process(['git', 'checkout', args.parent_branch]) 60 | if args.push: 61 | call_process(['git', 'pull']) 62 | 63 | print(" removing everything from SOURCES and SPECS...") 64 | 65 | if os.path.isdir('SOURCES') and len(os.listdir('SOURCES')) > 0: 66 | call_process(['git', 'rm', 'SOURCES/*', '-r']) 67 | if os.path.isdir('SOURCES') and len(os.listdir('SOURCES')) > 0: 68 | parser.error("Files remaining in SOURCES/ after removing the tracked ones. ") 69 | parser.error("Delete them (including hidden files), reset --hard.") 70 | os.mkdir('SOURCES') 71 | 72 | if os.path.isdir('SPECS'): 73 | call_process(['git', 'rm', 'SPECS/*', '-r']) 74 | os.mkdir('SPECS') 75 | 76 | print(" extracting SRPM...") 77 | 78 | os.chdir('SOURCES') 79 | os.system('rpm2cpio "%s" | cpio -idmv' % source_rpm_abs) 80 | os.chdir('..') 81 | os.system('mv SOURCES/*.spec SPECS/') 82 | 83 | print(" removing trademarked or copyrighted files...") 84 | 85 | sources = os.listdir('SOURCES') 86 | deletemsg = "File deleted from the original sources for trademark-related or copyright-related legal reasons.\n" 87 | deleted = [] 88 | for f in ['Citrix_Logo_Black.png', 'COPYING.CitrixCommercial']: 89 | if f in sources: 90 | os.unlink(os.path.join('SOURCES', f)) 91 | open(os.path.join('SOURCES', "%s.deleted-by-XCP-ng.txt" % f), 'w').write(deletemsg) 92 | deleted.append(f) 93 | 94 | if subprocess.call(['git', 'rev-parse', '--quiet', '--verify', args.branch]) != 0: 95 | call_process(['git', 'checkout', '-b', args.branch]) 96 | else: 97 | call_process(['git', 'checkout', args.branch]) 98 | call_process(['git', 'add', '--all']) 99 | 100 | print(" committing...") 101 | has_changes = False 102 | try: 103 | call_process(['git', 'diff-index', '--quiet', 'HEAD', '--']) 104 | except: 105 | has_changes = True 106 | 107 | if not has_changes: 108 | print("\nWorking copy has no modifications. Nothing to commit. No changes from previous release?\n") 109 | else: 110 | msg = 'Import %s' % os.path.basename(args.source_rpm) 111 | if deleted: 112 | msg += "\n\nFiles deleted for legal reasons:\n - " + '\n - '.join(deleted) 113 | call_process(['git', 'commit', '-s', '-m', msg]) 114 | 115 | # tag 116 | if args.tag is not None: 117 | call_process(['git', 'tag', args.tag]) 118 | 119 | # push to remote 120 | if args.push: 121 | call_process(['git', 'push', '--set-upstream', 'origin', args.branch]) 122 | if args.tag is not None: 123 | call_process(['git', 'push', 'origin', args.tag]) 124 | 125 | print(" switching to master before leaving...") 126 | 127 | call_process(['git', 'checkout', 'master']) 128 | 129 | # merge to master if needed 130 | if args.push and args.master: 131 | print(" merging to master...") 132 | call_process(['git', 'push', 'origin', '%s:master' % args.branch]) 133 | call_process(['git', 'pull']) 134 | 135 | 136 | if __name__ == "__main__": 137 | main() 138 | -------------------------------------------------------------------------------- /scripts/iso-remaster/README.md: -------------------------------------------------------------------------------- 1 | # ISO remastering script for XCP-ng and XenServer 2 | 3 | This script allows to produce a customized installation ISO, using 4 | "patcher" scripts to automate the task. 5 | 6 | Two levels of customization are provided: 7 | 8 | * `--iso-patcher` lets you provide a script that will act on the 9 | unpacked ISO contents (after which the ISO will be rebuilt from the 10 | modified contents) 11 | * `--install-patcher` will similarly unpack the `install.img` (ramdisk 12 | root filesystem) and lets you provide a script acting on his 13 | contents, from which a new `install.img` will be produced and 14 | included in the repacked ISO 15 | 16 | Example usages are provided in `scripts/iso-remaster/samples/` 17 | 18 | ## Prerequisites 19 | 20 | A few tools are required to run, the script will tell you if you miss 21 | some, but you may want to install those first. Depending on your OS 22 | you may use something like: 23 | 24 | ``` 25 | apt-get install fakeroot genisoimage syslinux-utils p7zip-full bzip2 26 | ``` 27 | 28 | el8 and newer: 29 | ``` 30 | dnf install --enablerepo=epel fakeroot genisoimage syslinux p7zip-plugins bzip2 31 | ``` 32 | 33 | el7: 34 | ``` 35 | yum install --enablerepo=epel fakeroot genisoimage syslinux cdrkit-isotools p7zip-plugins bzip2 36 | ``` 37 | -------------------------------------------------------------------------------- /scripts/iso-remaster/iso-remaster.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | set -eE 3 | set -o pipefail 4 | 5 | # TODO: 6 | # - new mode using `udiskctl loop-setup` instead of `fuseiso` 7 | # - maybe find workaround for iso-patcher to work in fuse mode 8 | # despite https://github.com/containers/fuse-overlayfs/issues/377 9 | 10 | die() { 11 | echo >&2 12 | echo >&2 "ERROR: $*" 13 | echo >&2 14 | exit 1 15 | } 16 | 17 | usage() { 18 | cat <] 20 | 21 | Options: 22 | --mode Force specified operation mode (default: use best available) 23 | fuse : more resource-friendly, needs fuseiso and fuse-overlayfs 24 | copy : more portable, needs more disk space, wears disk more 25 | --install-patcher, -l