Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:StefanBruens:branches:openSUSE:Factory:ARM
JeOS
pre_checkin.sh
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pre_checkin.sh of Package JeOS
#!/bin/bash set -e CPP=cpp if [ -e /usr/bin/cpp-4.6 ]; then # SLES11 has cpp4.3 as default which generates spurious blank lines CPP=cpp-4.6 fi headversion=$(date -d "$(head -n 2 JeOS.changes | tail -n 1 | cut -d- -f1 )" -u +%Y.%m.%d) # Used to check which board are Tumbleweed only (mainly due to arm-trusted-firmware being in TW only) is_tumbleweed=1 ## armv6 images armv6_gfx_images="" armv6_jeos_images="rootfs raspberrypi1" ## armv7 GFX images armv7_gfx_images="rootfs" # Allwinner armv7_gfx_images="$armv7_gfx_images sinovoipbpim2plus" armv7_gfx_images="$armv7_gfx_images sinovoipbpim2zero" # Broadcom armv7_gfx_images="$armv7_gfx_images raspberrypi2" # Nvidia armv7_gfx_images="$armv7_gfx_images paz00" # NXP armv7_gfx_images="$armv7_gfx_images cuboxi sabrelite" # Samsung armv7_gfx_images="$armv7_gfx_images arndale chromebook" # Texas Instruments armv7_gfx_images="$armv7_gfx_images " ## armv7 JeOS only images armv7_jeos_images="$armv7_gfx_images" # Allwinner armv7_jeos_images="$armv7_jeos_images a13olinuxino a20olinuxinolime a20olinuxinomicro bananapi cubieboard cubieboard2 cubietruck nanopineo nanopineoair olinuxinolime olinuxinolime2" # Calxeda armv7_jeos_images="$armv7_jeos_images midway-pxe" # Intel armv7_jeos_images="$armv7_jeos_images socfpgade0nanosoc" # NXP armv7_jeos_images="$armv7_jeos_images loco udooneo" # Marvell armv7_jeos_images="$armv7_jeos_images clearfog cubox" # MediaTek armv7_jeos_images="$armv7_jeos_images bananapiR2" # Rockchip if [[ $is_tumbleweed == 1 ]]; then armv7_jeos_images="$armv7_jeos_images fireflyrk3288 tinker" fi # Samsung armv7_jeos_images="$armv7_jeos_images odroid odroidxu3" # Texas Instruments armv7_jeos_images="$armv7_jeos_images beagle beaglebone panda" # Zynq armv7_jeos_images="$armv7_jeos_images zturn" # Generic EFI images armv7_jeos_images="$armv7_jeos_images efi-pxe" ## aarch64 GFX images aarch64_gfx_images="rootfs efi" # Allwinner aarch64_gfx_images="$aarch64_gfx_images pinephone" # Broadcom aarch64_gfx_images="$aarch64_gfx_images raspberrypi" # Hisilicon aarch64_gfx_images="$aarch64_gfx_images hikey" # Rockchip if [[ $is_tumbleweed == 1 ]]; then aarch64_gfx_images="$aarch64_gfx_images pinebookpro" fi ## aarch64 JeOS only images aarch64_jeos_images="$aarch64_gfx_images efi-pxe efi-vmx m400-pxe" # Allwinner if [[ $is_tumbleweed == 1 ]]; then aarch64_jeos_images="$aarch64_jeos_images pine64" fi # Amlogic aarch64_jeos_images="$aarch64_jeos_images nanopik2 odroidc2 odroidc4" # Hisilicon aarch64_jeos_images="$aarch64_jeos_images hikey960" # Rockchip if [[ $is_tumbleweed == 1 ]]; then aarch64_jeos_images="$aarch64_jeos_images rock64 rockpi4 rockpin10 rockpro64" fi # Xilinx aarch64_jeos_images="$aarch64_jeos_images ultra96 zynqmp" ## aarch64 devel images aarch64_devel_images="efi" ## x86_64 images x86_64_gfx_images="rootfs efi" x86_64_jeos_images="$x86_64_gfx_images efi-pxe" x86_64_devel_images="efi" ## riscv64 images riscv64_gfx_images="rootfs efi" riscv64_jeos_images="$riscv64_gfx_images efi-pxe" riscv64_jeos_images="$riscv64_jeos_images hifiveunleashed" riscv64_devel_images="efi" echo "<multibuild>" > _multibuild full_image_list="" if [[ $is_tumbleweed == 1 ]]; then arch_list="armv6 armv7 aarch64 x86_64 riscv64" else # armv6 and x86_64 disabled for Leap 15.3+ arch_list="armv7 aarch64 riscv64" fi for arch in $arch_list; do image_list="" for img in jeos gfx devel; do eval ${img}_images=\"\$${arch}_${img}_images\" done for machinetype in $jeos_images; do image_list="$image_list JeOS-$machinetype" done for machinetype in $devel_images; do image_list="$image_list JeOS-$machinetype-devel" done for machinetype in $gfx_images; do image_list="$image_list E20-$machinetype" image_list="$image_list LXQT-$machinetype" image_list="$image_list XFCE-$machinetype" image_list="$image_list X11-$machinetype" image_list="$image_list KDE-$machinetype" image_list="$image_list GNOME-$machinetype" if [[ $machinetype == *pinephone ]]; then # PHOSH image only for the pinephone image_list="$image_list PHOSH-$machinetype PLAMO-$machinetype" fi done echo "Arch: $arch - image_list: $image_list" for i in $image_list; do if [[ $i == XFCE-* ]]; then image_type=TYPE_XFCE image_type_string="XFCE" flavor="${i/XFCE-/}" elif [[ $i == E20-* ]]; then image_type=TYPE_E20 image_type_string="E20" flavor="${i/E20-/}" elif [[ $i == LXQT-* ]]; then image_type=TYPE_LXQT image_type_string="LXQT" flavor="${i/LXQT-/}" elif [[ $i == JeOS-* ]]; then image_type=TYPE_JEOS image_type_string="JeOS" flavor="${i/JeOS-/}" elif [[ $i == X11-* ]]; then image_type=TYPE_X11 image_type_string="X11" flavor="${i/X11-/}" elif [[ $i == KDE-* ]]; then image_type=TYPE_KDE image_type_string="KDE" flavor="${i/KDE-/}" elif [[ $i == GNOME-* ]]; then image_type=TYPE_GNOME image_type_string="GNOME" flavor="${i/GNOME-/}" elif [[ $i == PHOSH-* ]]; then image_type=TYPE_PHOSH image_type_string="PHOSH" flavor="${i/PHOSH-/}" elif [[ $i == PLAMO-* ]]; then image_type=TYPE_PLAMO image_type_string="PLAMO" flavor="${i/PLAMO-/}" else echo "Unknown image type: $i" exit 1 fi pxe= if [[ $i == *-pxe ]]; then flavor="${flavor/-pxe/}" pxe=1 fi vmx= if [[ $i == *-vmx ]]; then flavor="${flavor/-vmx/}" vmx=1 fi with_devel= if [[ $i == *-devel ]]; then flavor="${flavor/-devel/}" image_type_string+="-devel" with_devel=1 fi # special cases: JeOS-rootfs is called "JeOS" as package and add .armv6 to armv6 rootfs if [ "$arch" = "armv7" ]; then # No suffix for armv7 suffix="" else suffix=".$arch" fi if [ "$i" = "JeOS-rootfs" ]; then i="JeOS"$suffix elif [[ "$i" == *"-rootfs"* ]]; then i=$i$suffix elif [ "$flavor" == "efi" ] || [ "$flavor" == "raspberrypi" ]; then i=$i$suffix fi full_image_list="$full_image_list $i" # Determine if we're a contrib package CONTRIB_REPO= while read image contrib; do if [ "$flavor" = "$image" ]; then CONTRIB_REPO="$contrib" fi done < contribs # create kiwi description image_type_info="-DIMAGE_TYPE=$image_type -DIMAGE_TYPE_STRING=$image_type_string -DIS_ARCH_$arch=1 -DCHANGED=$headversion" [ "$pxe" ] && image_type_info="$image_type_info -DUSE_PXE" [ "$vmx" ] && image_type_info="$image_type_info -DUSE_VMX" [ "$with_devel" ] && image_type_info="$image_type_info -DUSE_DEVEL_PACKAGES" t=$(mktemp) echo "Formatting $i" flavor_type=$flavor if [ ! "$CONTRIB_REPO" ]; then $CPP $image_type_info -DIS_FLAVOR_$flavor=1 -DFLAVOR_TYPE=$flavor_type -P Images.kiwi.in -o $t else # contribs are Tumbleweed only if [[ $is_tumbleweed == 1 ]]; then $CPP $image_type_info -DIS_FLAVOR_$flavor=1 -DFLAVOR_TYPE=$flavor_type -DCONTRIB_REPO -P Images.kiwi.in -o $t else echo "Skip $flavor_type as it is from contrib" fi fi if [ -s $t ]; then # replace defines that cpp would ignore sed -i "s/FLAVOR_TYPE/$flavor_type/g;s/IMAGE_TYPE/$image_type/g;s/IMAGE_TYPE_STRING/$image_type_string/g;s/ARCH/$arch/g;s/KERNEL_CMDLINE_DEFAULT/loglevel=3 splash=silent plymouth.enable=0/g" $t # this will abort if there's an error (see set -e) xmllint --format $t --output $i.kiwi || break rm -f $t fi # get BOOTKERNEL var bootkernel=$(grep '<package name="kernel-' $i.kiwi | grep "bootinclude" | sed 's/.*kernel-//;s/".*$//') # Add all non-contrib builds to the package build list if [ ! "$CONTRIB_REPO" ]; then if [[ "$arch" == "armv7" ]] && [[ "$i" == "GNOME-"* ]] && [[ "$i" != "GNOME-rootfs"* ]] && [[ "$i" != "GNOME-efi"* ]]; then # GNOME is very slow but GNOME images may help to debug problems found on openQA, # so do not build images in Factory:ARM, but allow local build echo "Skipping armv7 GNOME image in mutlibuild: $i" else if [[ "$arch" == "armv7" ]] && [[ "$i" == "KDE-"* ]] && [[ "$i" != "KDE-rootfs"* ]] && [[ "$i" != "KDE-efi"* ]]; then # KDE is slow but KDE images may help to debug problems found on openQA, # so do not build images in Factory:ARM, but allow local build echo "Skipping armv7 KDE images in mutlibuild: $i" else echo "<package>$i</package>" >> _multibuild fi fi fi # Create uboot-setup-*.tgz if [ "$flavor" != "rootfs" ]; then # Check if editbootconfig var is used or not if ! [ "" = "$(grep 'editbootconfig' $i.kiwi)" ]; then use_editbootconfig=1 else # Clear vars (may be set in previous loop) use_editbootconfig= fi # create uboot scripts sed "s/FLAVOR/$flavor_type/g;s/TARGET/firstboot/g;s/BOOTKERNEL/$bootkernel/g;s/IS_FIRSTBOOT//g;" uboot-image-install.in > uboot-image-$flavor_type-install if [ "$use_editbootconfig" ]; then sed "s/FLAVOR/$flavor_type/g;s/TARGET/firstboot/g;s/BOOTKERNEL/$bootkernel/g;s/IS_FIRSTBOOT//g;" uboot-image-setup.in > uboot-image-$flavor_type-setup fi rm -rf x y mkdir -p x/kiwi-hooks # kiwi 7.x sed "s/FLAVOR/$flavor/g;s/TARGET/boot/g;s/BOOTKERNEL/$bootkernel/g;s/IS_FIRSTBOOT/1/g;" installUBoot.sh > x/kiwi-hooks/installUBoot.sh if [ "$use_editbootconfig" ]; then sed "s/FLAVOR/$flavor/g;s/TARGET/boot/g;s/BOOTKERNEL/$bootkernel/g;s/IS_FIRSTBOOT/1/g;" uboot-image-setup.in > x/kiwi-hooks/setupUBoot.sh fi # kiwi 8.x sed "s/FLAVOR/$flavor/g;s/TARGET/boot/g;s/BOOTKERNEL/$bootkernel/g;s/IS_FIRSTBOOT/1/g;" installUBoot.sh > x/kiwi-hooks/postInstallBootLoader.sh if [ "$use_editbootconfig" ]; then sed "s/FLAVOR/$flavor/g;s/TARGET/boot/g;s/BOOTKERNEL/$bootkernel/g;s/IS_FIRSTBOOT/1/g;" uboot-image-setup.in > x/kiwi-hooks/postSetupBootLoader.sh fi # kiwi 7.x/8.x sed "s/FLAVOR/$flavor/g;s/TARGET/boot/g;s/BOOTKERNEL/$bootkernel/g;s/IS_FIRSTBOOT/1/g;" uboot-image-install.in > x/kiwi-hooks/preCallInit.sh chmod +x x/kiwi-hooks/* TGZ=uboot-setup-$flavor_type.tgz # Check if uboot-setup-*.tgz is used or not (needed for non dracut 1st boot) if grep -q "<archive name=\"uboot-setup-" $i.kiwi; then # compare to the old tar ball if [ -f $TGZ ]; then mkdir -p y tar -xzf $TGZ -C y if ! diff -br x y > /dev/null; then tar -czf $TGZ --owner root --group root -C x kiwi-hooks fi rm -rf x y else tar -czf $TGZ --owner root --group root -C x kiwi-hooks rm -rf x fi else # Clean-up rm -rf x y if [ -f $TGZ ]; then rm $TGZ fi fi fi # Create contrib-repo-*.tgz if [ "$flavor" != "rootfs" ]; then rm -rf x y mkdir -p x/kiwi-hooks # add contrib repo name if [ "$CONTRIB_REPO" ]; then echo "$CONTRIB_REPO" > x/kiwi-hooks/contrib_repo fi TGZ=contrib-repo-$flavor_type.tgz # Check if contrib-repo-*.tgz is used or not (needed for contribs) if grep -q "<archive name=\"contrib-repo-" $i.kiwi; then # compare to the old tar ball if [ -f $TGZ ]; then mkdir -p y tar -xzf $TGZ -C y if ! diff -br x y > /dev/null; then tar -czf $TGZ --owner root --group root -C x kiwi-hooks fi rm -rf x y else tar -czf $TGZ --owner root --group root -C x kiwi-hooks rm -rf x fi else # Clean-up rm -rf x y if [ -f $TGZ ]; then rm $TGZ fi fi fi done done echo "</multibuild>" >> _multibuild # Update _constraints to relax constraints for JeOS* echo "Updating _constraints" echo '<?xml version="1.0"?> <constraints> <hardware> <physicalmemory> <size unit="M">2000</size> </physicalmemory> <disk> <size unit="G">20</size> </disk> </hardware> <overwrite> <conditions>' > _constraints for i in $full_image_list; do if [[ $i == JeOS-* ]]; then echo " <package>JeOS:$i</package>" >> _constraints fi done echo ' </conditions> <hardware> <disk> <size unit="M">7200</size> </disk> </hardware> </overwrite> </constraints>' >> _constraints
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor