@@ -91,18 +91,18 @@ __HaikuPackages="gcc_syslibs"
9191__HaikuPackages+=" gcc_syslibs_devel"
9292__HaikuPackages+=" gmp"
9393__HaikuPackages+=" gmp_devel"
94- __HaikuPackages+=" icu66 "
95- __HaikuPackages+=" icu66_devel "
94+ __HaikuPackages+=" icu[0-9]+ "
95+ __HaikuPackages+=" icu[0-9]*_devel "
9696__HaikuPackages+=" krb5"
9797__HaikuPackages+=" krb5_devel"
9898__HaikuPackages+=" libiconv"
9999__HaikuPackages+=" libiconv_devel"
100- __HaikuPackages+=" llvm12_libunwind "
101- __HaikuPackages+=" llvm12_libunwind_devel "
100+ __HaikuPackages+=" llvm[0-9]*_libunwind "
101+ __HaikuPackages+=" llvm[0-9]*_libunwind_devel "
102102__HaikuPackages+=" mpfr"
103103__HaikuPackages+=" mpfr_devel"
104- __HaikuPackages+=" openssl "
105- __HaikuPackages+=" openssl_devel "
104+ __HaikuPackages+=" openssl3 "
105+ __HaikuPackages+=" openssl3_devel "
106106__HaikuPackages+=" zlib"
107107__HaikuPackages+=" zlib_devel"
108108
@@ -496,7 +496,7 @@ if [[ "$__CodeName" == "alpine" ]]; then
496496 arch=" $( uname -m) "
497497
498498 ensureDownloadTool
499-
499+
500500 if [[ " $__hasWget " == 1 ]]; then
501501 wget -P " $__ApkToolsDir " " https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic/v$__ApkToolsVersion /$arch /apk.static"
502502 else
@@ -681,7 +681,7 @@ elif [[ "$__CodeName" == "haiku" ]]; then
681681
682682 ensureDownloadTool
683683
684- echo " Downloading Haiku package tool "
684+ echo " Downloading Haiku package tools "
685685 git clone https://github.com/haiku/haiku-toolchains-ubuntu --depth 1 " $__RootfsDir /tmp/script"
686686 if [[ " $__hasWget " == 1 ]]; then
687687 wget -O " $__RootfsDir /tmp/download/hosttools.zip" " $( " $__RootfsDir /tmp/script/fetch.sh" --hosttools) "
@@ -691,34 +691,42 @@ elif [[ "$__CodeName" == "haiku" ]]; then
691691
692692 unzip -o " $__RootfsDir /tmp/download/hosttools.zip" -d " $__RootfsDir /tmp/bin"
693693
694- DepotBaseUrl=" https://depot.haiku-os.org/__api/v2/pkg/get-pkg"
695- HpkgBaseUrl=" https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch /current"
694+ HaikuBaseUrl=" https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch /current"
695+ HaikuPortsBaseUrl=" https://eu.hpkg.haiku-os.org/haikuports/master/$__HaikuArch /current"
696+
697+ echo " Downloading HaikuPorts package repository index..."
698+ if [[ " $__hasWget " == 1 ]]; then
699+ wget -P " $__RootfsDir /tmp/download" " $HaikuPortsBaseUrl /repo"
700+ else
701+ curl -SLO --create-dirs --output-dir " $__RootfsDir /tmp/download" " $HaikuPortsBaseUrl /repo"
702+ fi
696703
697- # Download Haiku packages
698704 echo " Downloading Haiku packages"
699705 read -ra array <<< " $__HaikuPackages"
700706 for package in " ${array[@]} " ; do
701707 echo " Downloading $package ..."
702- # API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60
703- # The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598
708+ hpkgFilename=" $( LD_LIBRARY_PATH=" $__RootfsDir /tmp/bin" " $__RootfsDir /tmp/bin/package_repo" list -f " $__RootfsDir /tmp/download/repo" |
709+ grep -E " ${package} -" | sort -V | tail -n 1 | xargs) "
710+ if [ -z " $hpkgFilename " ]; then
711+ >&2 echo " ERROR: package $package missing."
712+ exit 1
713+ fi
714+ echo " Resolved filename: $hpkgFilename ..."
715+ hpkgDownloadUrl=" $HaikuPortsBaseUrl /packages/$hpkgFilename "
704716 if [[ " $__hasWget " == 1 ]]; then
705- hpkgDownloadUrl=" $( wget -qO- --post-data ' {"name":"' " $package " ' ","repositorySourceCode":"haikuports_' $__HaikuArch ' ","versionType":"LATEST","naturalLanguageCode":"en"}' \
706- --header ' Content-Type:application/json' " $DepotBaseUrl " | jq -r ' .result.versions[].hpkgDownloadURL' ) "
707717 wget -P " $__RootfsDir /tmp/download" " $hpkgDownloadUrl "
708718 else
709- hpkgDownloadUrl=" $( curl -sSL -XPOST --data ' {"name":"' " $package " ' ","repositorySourceCode":"haikuports_' $__HaikuArch ' ","versionType":"LATEST","naturalLanguageCode":"en"}' \
710- --header ' Content-Type:application/json' " $DepotBaseUrl " | jq -r ' .result.versions[].hpkgDownloadURL' ) "
711719 curl -SLO --create-dirs --output-dir " $__RootfsDir /tmp/download" " $hpkgDownloadUrl "
712720 fi
713721 done
714722 for package in haiku haiku_devel; do
715723 echo " Downloading $package ..."
716724 if [[ " $__hasWget " == 1 ]]; then
717- hpkgVersion=" $( wget -qO- " $HpkgBaseUrl " | sed -n ' s/^.*version: "\([^"]*\)".*$/\1/p' ) "
718- wget -P " $__RootfsDir /tmp/download" " $HpkgBaseUrl /packages/$package -$hpkgVersion -1-$__HaikuArch .hpkg"
725+ hpkgVersion=" $( wget -qO- " $HaikuBaseUrl " | sed -n ' s/^.*version: "\([^"]*\)".*$/\1/p' ) "
726+ wget -P " $__RootfsDir /tmp/download" " $HaikuBaseUrl /packages/$package -$hpkgVersion -1-$__HaikuArch .hpkg"
719727 else
720- hpkgVersion=" $( curl -sSL " $HpkgBaseUrl " | sed -n ' s/^.*version: "\([^"]*\)".*$/\1/p' ) "
721- curl -SLO --create-dirs --output-dir " $__RootfsDir /tmp/download" " $HpkgBaseUrl /packages/$package -$hpkgVersion -1-$__HaikuArch .hpkg"
728+ hpkgVersion=" $( curl -sSL " $HaikuBaseUrl " | sed -n ' s/^.*version: "\([^"]*\)".*$/\1/p' ) "
729+ curl -SLO --create-dirs --output-dir " $__RootfsDir /tmp/download" " $HaikuBaseUrl /packages/$package -$hpkgVersion -1-$__HaikuArch .hpkg"
722730 fi
723731 done
724732
0 commit comments