@@ -27,6 +27,7 @@ __AlpineArch=armv7
2727__FreeBSDArch=arm
2828__FreeBSDMachineArch=armv7
2929__IllumosArch=arm7
30+ __HaikuArch=arm
3031__QEMUArch=arm
3132__UbuntuArch=armhf
3233__UbuntuRepo=" http://ports.ubuntu.com/"
@@ -85,8 +86,12 @@ __IllumosPackages+=" mit-krb5"
8586__IllumosPackages+=" openssl"
8687__IllumosPackages+=" zlib"
8788
88- __HaikuPackages=" gmp"
89+ __HaikuPackages=" gcc_syslibs"
90+ __HaikuPackages+=" gcc_syslibs_devel"
91+ __HaikuPackages+=" gmp"
8992__HaikuPackages+=" gmp_devel"
93+ __HaikuPackages+=" icu66"
94+ __HaikuPackages+=" icu66_devel"
9095__HaikuPackages+=" krb5"
9196__HaikuPackages+=" krb5_devel"
9297__HaikuPackages+=" libiconv"
@@ -95,6 +100,10 @@ __HaikuPackages+=" llvm12_libunwind"
95100__HaikuPackages+=" llvm12_libunwind_devel"
96101__HaikuPackages+=" mpfr"
97102__HaikuPackages+=" mpfr_devel"
103+ __HaikuPackages+=" openssl"
104+ __HaikuPackages+=" openssl_devel"
105+ __HaikuPackages+=" zlib"
106+ __HaikuPackages+=" zlib_devel"
98107
99108# ML.NET dependencies
100109__UbuntuPackages+=" libomp5"
@@ -210,6 +219,7 @@ while :; do
210219 __FreeBSDArch=amd64
211220 __FreeBSDMachineArch=amd64
212221 __illumosArch=x86_64
222+ __HaikuArch=x86_64
213223 __UbuntuRepo=" http://archive.ubuntu.com/ubuntu/"
214224 ;;
215225 x86)
@@ -330,7 +340,7 @@ while :; do
330340 ;;
331341 freebsd13)
332342 __CodeName=freebsd
333- __FreeBSDBase=" 13.0 -RELEASE"
343+ __FreeBSDBase=" 13.2 -RELEASE"
334344 __FreeBSDABI=" 13"
335345 __SkipUnmount=1
336346 ;;
@@ -340,7 +350,6 @@ while :; do
340350 ;;
341351 haiku)
342352 __CodeName=haiku
343- __BuildArch=x64
344353 __SkipUnmount=1
345354 ;;
346355 --skipunmount)
@@ -559,67 +568,54 @@ elif [[ "$__CodeName" == "illumos" ]]; then
559568elif [[ " $__CodeName " == " haiku" ]]; then
560569 JOBS=${MAXJOBS:= " $( getconf _NPROCESSORS_ONLN) " }
561570
562- echo " Building Haiku sysroot for x86_64 "
571+ echo " Building Haiku sysroot for $__HaikuArch "
563572 mkdir -p " $__RootfsDir /tmp"
564- cd " $__RootfsDir /tmp"
565- git clone -b hrev56235 https://review.haiku-os.org/haiku
566- git clone -b btrev43195 https://review.haiku-os.org/buildtools
567- cd " $__RootfsDir /tmp/buildtools" && git checkout 7487388f5110021d400b9f3b88e1a7f310dc066d
568-
569- # Fetch some unmerged patches
570- cd " $__RootfsDir /tmp/haiku"
571- # # Add development build profile (slimmer than nightly)
572- git fetch origin refs/changes/64/4164/1 && git -c commit.gpgsign=false cherry-pick FETCH_HEAD
573-
574- # Build jam
575- cd " $__RootfsDir /tmp/buildtools/jam"
576- make
577-
578- # Configure cross tools
579- echo " Building cross-compiler"
580- mkdir -p " $__RootfsDir /generated"
581- cd " $__RootfsDir /generated"
582- " $__RootfsDir /tmp/haiku/configure" -j" $JOBS " --sysroot " $__RootfsDir " --cross-tools-source " $__RootfsDir /tmp/buildtools" --build-cross-tools x86_64
583-
584- # Build Haiku packages
585- echo " Building Haiku"
586- echo ' HAIKU_BUILD_PROFILE = "development-raw" ;' > UserProfileConfig
587- " $__RootfsDir /tmp/buildtools/jam/jam0" -j" $JOBS " -q ' <build>package' ' <repository>Haiku'
588-
589- BaseUrl=" https://depot.haiku-os.org/__api/v2/pkg/get-pkg"
590-
591- # Download additional packages
592- echo " Downloading additional required packages"
573+ pushd " $__RootfsDir /tmp"
574+
575+ mkdir " $__RootfsDir /tmp/download"
576+
577+ echo " Downloading Haiku package tool"
578+ git clone https://github.com/haiku/haiku-toolchains-ubuntu --depth 1 $__RootfsDir /tmp/script
579+ wget -O " $__RootfsDir /tmp/download/hosttools.zip" $( $__RootfsDir /tmp/script/fetch.sh --hosttools)
580+ unzip -o " $__RootfsDir /tmp/download/hosttools.zip" -d " $__RootfsDir /tmp/bin"
581+
582+ DepotBaseUrl=" https://depot.haiku-os.org/__api/v2/pkg/get-pkg"
583+ HpkgBaseUrl=" https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch /current"
584+
585+ # Download Haiku packages
586+ echo " Downloading Haiku packages"
593587 read -ra array <<< " $__HaikuPackages"
594588 for package in " ${array[@]} " ; do
595589 echo " Downloading $package ..."
596590 # API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60
597591 # The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598
598- hpkgDownloadUrl=" $( wget -qO- --post-data=' {"name":"' " $package " ' ","repositorySourceCode":"haikuports_x86_64","versionType":"LATEST","naturalLanguageCode":"en"}' \
599- --header=' Content-Type:application/json' " $BaseUrl " | jq -r ' .result.versions[].hpkgDownloadURL' ) "
600- wget -P " $__RootfsDir /generated/download" " $hpkgDownloadUrl "
592+ hpkgDownloadUrl=" $( wget -qO- --post-data=' {"name":"' " $package " ' ","repositorySourceCode":"haikuports_' $__HaikuArch ' ","versionType":"LATEST","naturalLanguageCode":"en"}' \
593+ --header=' Content-Type:application/json' " $DepotBaseUrl " | jq -r ' .result.versions[].hpkgDownloadURL' ) "
594+ wget -P " $__RootfsDir /tmp/download" " $hpkgDownloadUrl "
595+ done
596+ for package in haiku haiku_devel; do
597+ echo " Downloading $package ..."
598+ hpkgVersion=" $( wget -qO- $HpkgBaseUrl | sed -n ' s/^.*version: "\([^"]*\)".*$/\1/p' ) "
599+ wget -P " $__RootfsDir /tmp/download" " $HpkgBaseUrl /packages/$package -$hpkgVersion -1-$__HaikuArch .hpkg"
601600 done
602601
603- # Setup the sysroot
604- echo " Setting up sysroot and extracting needed packages"
602+ # Set up the sysroot
603+ echo " Setting up sysroot and extracting required packages"
605604 mkdir -p " $__RootfsDir /boot/system"
606- for file in " $__RootfsDir /generated/objects/haiku/x86_64/packaging/packages/" * .hpkg; do
607- " $__RootfsDir /generated/objects/linux/x86_64/release/tools/package/package" extract -C " $__RootfsDir /boot/system" " $file "
608- done
609- for file in " $__RootfsDir /generated/download/" * .hpkg; do
610- " $__RootfsDir /generated/objects/linux/x86_64/release/tools/package/package" extract -C " $__RootfsDir /boot/system" " $file "
605+ for file in " $__RootfsDir /tmp/download/" * .hpkg; do
606+ echo " Extracting $file ..."
607+ LD_LIBRARY_PATH=" $__RootfsDir /tmp/bin" " $__RootfsDir /tmp/bin/package" extract -C " $__RootfsDir /boot/system" " $file "
611608 done
612609
610+ # Download buildtools
611+ echo " Downloading Haiku buildtools"
612+ wget -O " $__RootfsDir /tmp/download/buildtools.zip" $( $__RootfsDir /tmp/script/fetch.sh --buildtools --arch=$__HaikuArch )
613+ unzip -o " $__RootfsDir /tmp/download/buildtools.zip" -d " $__RootfsDir "
614+
613615 # Cleaning up temporary files
614616 echo " Cleaning up temporary files"
617+ popd
615618 rm -rf " $__RootfsDir /tmp"
616- for name in " $__RootfsDir /generated/" * ; do
617- if [[ " $name " =~ " cross-tools-" ]]; then
618- : # Keep the cross-compiler
619- else
620- rm -rf " $name "
621- fi
622- done
623619elif [[ -n " $__CodeName " ]]; then
624620
625621 if [[ " $__SkipSigCheck " == " 0" ]]; then
0 commit comments