You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							155 lines
						
					
					
						
							3.9 KiB
						
					
					
				
			
		
		
	
	
							155 lines
						
					
					
						
							3.9 KiB
						
					
					
				| #!/bin/bash -e
 | |
| 
 | |
| # some fancy colors
 | |
| if [ $(tty -s) ]; then
 | |
|     RED=$(tput setaf 1)
 | |
|     BRIGHT=$(tput bold)
 | |
|     NORMAL=$(tput sgr0)
 | |
| else
 | |
|     RED=
 | |
|     BRIGHT=
 | |
|     NORMAL=
 | |
| fi
 | |
| 
 | |
| if [ -z "$FLAVOR" ]; then
 | |
|   FLAVOR="live"
 | |
|   echo "Using default flavor: $FLAVOR"
 | |
| else
 | |
|   echo "Using flavor: $FLAVOR"
 | |
| fi
 | |
| 
 | |
| # repository URL
 | |
| PUREOS_REPO="http://repo.puri.sm/pureos"
 | |
| 
 | |
| # current architecture
 | |
| arch=$(dpkg --print-architecture)
 | |
| 
 | |
| # options
 | |
| lb_opts=""
 | |
| dist="green"
 | |
| dist_version="8.0"
 | |
| dist_reltag=""
 | |
| 
 | |
| VERSION_PRETTY=$dist_version
 | |
| 
 | |
| # live-build doesn't work if --parent-debian-distribution is unknown of
 | |
| # debian-cd => we have to put a symlink so that it deals with Tanglu like jessie/sid
 | |
| if [ ! -e "/usr/share/live/build/data/debian-cd/$dist" ]; then
 | |
|   if [ -w /usr/share/live/build/data/debian-cd ]; then
 | |
|     ln -sf sid "/usr/share/live/build/data/debian-cd/$dist"
 | |
|   else
 | |
|     echo "ERROR: Run this first:"
 | |
|     echo "ln -sf sid /usr/share/live/build/data/debian-cd/$dist"
 | |
|     exit 1
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| # Debian-installer config
 | |
| debian_installer_opts="--debian-installer-gui true --debian-installer-distribution $dist"
 | |
| 
 | |
| case "$arch" in
 | |
|   amd64)
 | |
|     debian_installer_opts="$debian_installer_opts --debian-installer live"
 | |
|   ;;
 | |
|   i386)
 | |
|     debian_installer_opts="$debian_installer_opts --debian-installer live --linux-flavours 686-pae"
 | |
|   ;;
 | |
|   *)
 | |
|     echo "WARNING: configuration not tested on arch $arch" >&2
 | |
|   ;;
 | |
| esac
 | |
| # add installer opts to lb config call
 | |
| lb_opts="$lb_opts $debian_installer_opts"
 | |
| 
 | |
| # create some directories which we will need later
 | |
| mkdir -p config/package-lists
 | |
| mkdir -p config/includes.chroot
 | |
| 
 | |
| lb_opts="$lb_opts --security false --updates false"
 | |
| 
 | |
| # FIXME: should be fixed in the live-build autodetection
 | |
| case "$arch" in
 | |
|   amd64)
 | |
|     kernel_flavour="amd64"
 | |
|   ;;
 | |
|   i386)
 | |
|     kernel_flavour="686-pae"
 | |
|   ;;
 | |
|   *)
 | |
|     echo "WARNING: configuration not tested on arch $arch" >&2
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| case "$FLAVOR" in
 | |
|   "live"|"LIVE")
 | |
|     FLAVOR=live
 | |
|     FLAVOR_PRETTY=Live
 | |
|     # create package config
 | |
| cat > config/package-lists/desktop.list.chroot <<EOF
 | |
| pureos-desktop
 | |
| linux-image-$kernel_flavour
 | |
| calamares
 | |
| grub-pc
 | |
| EOF
 | |
| 
 | |
|   rm -f config/hooks/normal/004-setup-oem.hook.chroot
 | |
|   rm -rf config/includes.chroot
 | |
| 
 | |
|   rm -rf config/bootloaders/isolinux
 | |
|   cp -r config/bootloaders/isolinux.live/ config/bootloaders/isolinux
 | |
|   cp -f config/bootloaders/live.cfg.in config/bootloaders/isolinux/
 | |
|   ;;
 | |
| 
 | |
|   "oem")
 | |
|     FLAVOR=oem
 | |
|     FLAVOR_PRETTY=OEM
 | |
|     # create package config
 | |
| cat > config/package-lists/desktop.list.chroot <<EOF
 | |
| pureos-minimal
 | |
| linux-image-$kernel_flavour
 | |
| grub-pc
 | |
| parted
 | |
| python3-parted
 | |
| EOF
 | |
| 
 | |
|   rm -f config/hooks/normal/004-setup-oem.hook.chroot
 | |
|   cp config/hooks.oem/004-setup-oem.hook.chroot config/hooks/normal/
 | |
|   rm -rf config/includes.chroot
 | |
|   cp -r config/includes.chroot.oem config/includes.chroot
 | |
| 
 | |
|   rm -rf config/bootloaders/isolinux/
 | |
|   cp -r config/bootloaders/isolinux.oem config/bootloaders/isolinux
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| # Configure bootloader
 | |
| sed -e s/@VERSION@/"$VERSION_PRETTY"/g config/bootloaders/splash.svg.in > config/bootloaders/splash.svg
 | |
| mv -f config/bootloaders/splash.svg config/bootloaders/isolinux/
 | |
| 
 | |
| IMAGE_FILENAME=pureos-$dist_version-$FLAVOR
 | |
| 
 | |
| lb config noauto \
 | |
|     --distribution "$dist" \
 | |
|     --binary-images iso-hybrid \
 | |
|     --archive-areas "main" \
 | |
|     --mirror-bootstrap $PUREOS_REPO \
 | |
|     --mirror-binary $PUREOS_REPO \
 | |
|     --mirror-debian-installer $PUREOS_REPO \
 | |
|     --parent-mirror-bootstrap $PUREOS_REPO \
 | |
|     --parent-mirror-binary $PUREOS_REPO \
 | |
|     --parent-mirror-debian-installer $PUREOS_REPO \
 | |
|     --apt-source-archives false \
 | |
|     --keyring-packages pureos-archive-keyring \
 | |
|     --bootloader syslinux \
 | |
|     --firmware-binary true \
 | |
|     --firmware-chroot true \
 | |
|     --initsystem systemd \
 | |
|     --iso-application "PureOS GNU/Linux" \
 | |
|     --iso-publisher "Purism" \
 | |
|     --iso-volume "PureOS $dist_version $FLAVOR_PRETTY" \
 | |
|     --image-name $IMAGE_FILENAME \
 | |
|     --linux-flavours $kernel_flavour \
 | |
|     --debootstrap-options --keyring=/usr/share/keyrings/pureos-archive-keyring.gpg \
 | |
|     $lb_opts \
 | |
|     "${@}"
 |