Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions helpers/build_packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -148,11 +148,11 @@ if [ "$BUILDCONFIGS" = "1" ]; then
else
build_community="localbuild"
fi
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper se -i community-adaptation > /dev/null
sdk-assistant maintain $HABUILD_TARGET zypper se -i community-adaptation > /dev/null
ret=$?
if [ $ret -eq 0 ]; then
if [ "$build_community" == "localbuild-ota" ]; then
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper se -i community-adaptation-localbuild > /dev/null
sdk-assistant maintain $HABUILD_TARGET zypper se -i community-adaptation-localbuild > /dev/null
ret=$?
if [ $ret -eq 104 ]; then
# Do nothing, because either localbuild-ota is already installed
Expand All @@ -176,39 +176,39 @@ if [ "$BUILDCONFIGS" = "1" ]; then
fi
fi
# avoid a SIGSEGV on exit of libhybris client
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH ls /system/build.prop &> /dev/null
sdk-assistant maintain $HABUILD_TARGET ls /system/build.prop &> /dev/null
ret=$?
if [ $ret -ne 0 ]; then
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH bash -c "mkdir -p /system; echo ro.build.version.sdk=99 > /system/build.prop"
sdk-assistant maintain $HABUILD_TARGET bash -c "mkdir -p /system; echo ro.build.version.sdk=99 > /system/build.prop"
fi
buildconfigs
if grep -qsE "^(-|Requires:) droid-config-$DEVICE-bluez5" hybris/droid-configs/patterns/*.inc; then
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper -n $PLUS_LOCAL_REPO install droid-config-$DEVICE-bluez5
sdk-assistant maintain $HABUILD_TARGET zypper -n $PLUS_LOCAL_REPO install droid-config-$DEVICE-bluez5
fi
fi

if [ "$BUILDMW" = "1" ]; then
if ! sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH ssu s 2>/dev/null | grep -q "Device registration status: registered"; then
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH ssu domain sales
if ! sdk-assistant maintain $HABUILD_TARGET ssu s 2>/dev/null | grep -q "Device registration status: registered"; then
sdk-assistant maintain $HABUILD_TARGET ssu domain sales
fi
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH ssu dr sdk
sdk-assistant maintain $HABUILD_TARGET ssu dr sdk

if [ "$BUILDOFFLINE" != "1" ]; then
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper ref
sdk-assistant maintain $HABUILD_TARGET zypper ref
fi

if [ "$FAMILY" == "" ]; then
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper -n $PLUS_LOCAL_REPO install $ALLOW_UNSIGNED_RPM droid-hal-$DEVICE-devel
sdk-assistant maintain $HABUILD_TARGET zypper -n $PLUS_LOCAL_REPO install $ALLOW_UNSIGNED_RPM droid-hal-$DEVICE-devel
else
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper -n $PLUS_LOCAL_REPO install $ALLOW_UNSIGNED_RPM droid-hal-$HABUILD_DEVICE-devel
sdk-assistant maintain $HABUILD_TARGET zypper -n $PLUS_LOCAL_REPO install $ALLOW_UNSIGNED_RPM droid-hal-$HABUILD_DEVICE-devel
fi

if [ "$(sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH ls -A /usr/include/droid-devel/droid-headers/android-version.h 2> /dev/null)" ]; then
if [ "$(sdk-assistant maintain $HABUILD_TARGET ls -A /usr/include/droid-devel/droid-headers/android-version.h 2> /dev/null)" ]; then
android_version_header=/usr/include/droid-devel/droid-headers/android-version.h
else
android_version_header=/usr/$_LIB/droid-devel/droid-headers/android-version.h
fi
android_version_major=$(sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH cat $android_version_header 2>/dev/null |grep "#define.*ANDROID_VERSION_MAJOR" |sed -e "s/#define.*ANDROID_VERSION_MAJOR//g")
android_version_major=$(sdk-assistant maintain $HABUILD_TARGET cat $android_version_header 2>/dev/null |grep "#define.*ANDROID_VERSION_MAJOR" |sed -e "s/#define.*ANDROID_VERSION_MAJOR//g")

manifest_lookup=$ANDROID_ROOT
while true; do
Expand Down Expand Up @@ -290,13 +290,13 @@ if [ "$BUILDMW" = "1" ]; then
-s rpm/geoclue-providers-hybris.spec || die
fi
# build kf5bluezqt-bluez4 if not yet provided by Sailfish OS itself
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper se kf5bluezqt-bluez4 > /dev/null
sdk-assistant maintain $HABUILD_TARGET zypper se kf5bluezqt-bluez4 > /dev/null
ret=$?
if [ $ret -eq 104 ]; then
buildmw -u "https://github.com/sailfishos/kf5bluezqt.git" \
-s rpm/kf5bluezqt-bluez4.spec || die
# pull device's bluez4 configs correctly
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper remove bluez-configs-mer
sdk-assistant maintain $HABUILD_TARGET zypper remove bluez-configs-mer
fi
fi
fi
Expand Down Expand Up @@ -362,7 +362,7 @@ fi
if [ "$BUILDIMAGE" = "1" ]; then
srcks="$ANDROID_ROOT/hybris/droid-configs/installroot/usr/share/kickstarts"
ks="Jolla-@RELEASE@-$DEVICE-@ARCH@.ks"
if sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH ssu s 2>/dev/null | grep -q "Release (rnd): latest (devel)"; then
if sdk-assistant maintain $HABUILD_TARGET ssu s 2>/dev/null | grep -q "Release (rnd): latest (devel)"; then
bleeding_edge_build_by_sailors=1
fi

Expand Down
30 changes: 17 additions & 13 deletions helpers/util.sh
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,14 @@ if [ -z $HABUILD_DEVICE ]; then
fi

mkdir -p $ANDROID_ROOT/hybris/mw
LOCAL_REPO=$ANDROID_ROOT/droid-local-repo/$DEVICE
LOCAL_REPO=$ANDROID_ROOT/droid-local-repo/${FAMILY:-$DEVICE}
mkdir -p $LOCAL_REPO
PLUS_LOCAL_REPO="--plus-repo $LOCAL_REPO"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two lines above it sets LOCAL_REPO=$ANDROID_ROOT/droid-local-repo/$DEVICE so even when using target for common family of boards, middleware RPMs would still need to somehow be made available for each $DEVICE in its local repo (TMTOWTDI).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed the local repo to be shared too.


if [ -z $HABUILD_TARGET ] ; then
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If build target override is used to build for another Sailfish OS version, the MW packages in the droid-local-repo built against another SFOS version should not be pulled into the new target.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we check for that or ask the to take care of this? The SFOS version isn't directly an indicator of breaking changes, it can but it doesn't have too.
Often breaking changes are in this repo or droid-configs and its dependencies.

HABUILD_TARGET=$VENDOR-${FAMILY:-$DEVICE}-$PORT_ARCH
fi

mb2() {
# Changes in this build script are done in the original build target
# which subsequently redefines the device's clean build environment
Expand Down Expand Up @@ -270,30 +274,30 @@ buildmw() {
sed "s/%{?qa_stage_devel:--enable-arm-tracing}/--enable-arm-tracing/g" -i rpm/libhybris.spec
elif [[ "$PKG" == "droid-hal-img-boot"* ]]; then
# Remove existing img-boot
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper -n remove droid-hal-img-boot > /dev/null
sdk-assistant maintain $HABUILD_TARGET zypper -n remove droid-hal-img-boot > /dev/null
# Both cases are possible:
# droid-hal-$DEVICE-* and droid-hal-$HABUILD_DEVICE-*
# The latter is used when HW has variants, e.g.:
# DEVICE=i4113, HABUILD_DEVICE=kirin
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper se -i droid-hal-$HABUILD_DEVICE-kernel-modules > /dev/null
sdk-assistant maintain $HABUILD_TARGET zypper se -i droid-hal-$HABUILD_DEVICE-kernel-modules > /dev/null
ret=$?
if [ $ret -eq 104 ]; then
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper se -i droid-hal-$DEVICE-kernel-modules > /dev/null
sdk-assistant maintain $HABUILD_TARGET zypper se -i droid-hal-$DEVICE-kernel-modules > /dev/null
ret=$?
if [ $ret -eq 104 ]; then
minfo "Installing kernel and modules..."
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper -n $PLUS_LOCAL_REPO install --allow-unsigned-rpm droid-hal-$HABUILD_DEVICE-kernel droid-hal-$HABUILD_DEVICE-kernel-modules &> /dev/null
sdk-assistant maintain $HABUILD_TARGET zypper -n $PLUS_LOCAL_REPO install --allow-unsigned-rpm droid-hal-$HABUILD_DEVICE-kernel droid-hal-$HABUILD_DEVICE-kernel-modules &> /dev/null
ret=$?
if [ $ret -eq 104 ]; then
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper -n $PLUS_LOCAL_REPO install --allow-unsigned-rpm droid-hal-$DEVICE-kernel droid-hal-$DEVICE-kernel-modules >>$LOG 2>&1|| die "can't install kernel or modules"
sdk-assistant maintain $HABUILD_TARGET zypper -n $PLUS_LOCAL_REPO install --allow-unsigned-rpm droid-hal-$DEVICE-kernel droid-hal-$DEVICE-kernel-modules >>$LOG 2>&1|| die "can't install kernel or modules"
fi
fi
fi
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper se -i busybox-symlinks-cpio > /dev/null
sdk-assistant maintain $HABUILD_TARGET zypper se -i busybox-symlinks-cpio > /dev/null
ret=$?
if [ ! $ret -eq 104 ]; then
minfo "Applying cpio fix..."
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper -n install --force-resolution cpio>>$LOG 2>&1|| die "can't install cpio"
sdk-assistant maintain $HABUILD_TARGET zypper -n install --force-resolution cpio>>$LOG 2>&1|| die "can't install cpio"
fi
fi

Expand All @@ -303,9 +307,9 @@ buildmw() {
# If this is the first installation of libhybris simply remove mesa,
# assuming it's v19 or newer (introduced in Sailfish OS 3.1.0)
# TODO hook me
if sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH rpm -q mesa-llvmpipe |grep -q .; then
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper -n $PLUS_LOCAL_REPO in --force-resolution libhybris-libEGL libhybris-libGLESv2 libhybris-libEGL-devel libhybris-libGLESv2-devel >>$LOG 2>&1|| die "could not install libhybris-{libEGL,libGLESv2}"
sdk-assistant maintain $VENDOR-$DEVICE-$PORT_ARCH zypper -n rm mesa-llvmpipe-libgbm mesa-llvmpipe-libglapi >>$LOG 2>&1
if sdk-assistant maintain $HABUILD_TARGET rpm -q mesa-llvmpipe |grep -q .; then
sdk-assistant maintain $HABUILD_TARGET zypper -n $PLUS_LOCAL_REPO in --force-resolution libhybris-libEGL libhybris-libGLESv2 libhybris-libEGL-devel libhybris-libGLESv2-devel >>$LOG 2>&1|| die "could not install libhybris-{libEGL,libGLESv2}"
sdk-assistant maintain $HABUILD_TARGET zypper -n rm mesa-llvmpipe-libgbm mesa-llvmpipe-libglapi >>$LOG 2>&1
fi
fi

Expand All @@ -332,10 +336,10 @@ build() {
minfo "Building $SPEC"
mb2 \
-s $SPEC \
-t $VENDOR-$DEVICE-$PORT_ARCH \
-t $HABUILD_TARGET \
$PACKAGE_TIMELINE $NO_AUTO_VERSION \
--output-dir "$LOCAL_REPO" \
build >>$LOG 2>&1|| die "building of package failed"
build --no-check >>$LOG 2>&1|| die "building of package failed"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've built packages for i3113, then ran export DEVICE=i4113 and mb2 is still checking places of the previous device:

PlatformSDK $ANDROID_ROOT $ rpm/dhd/helpers/build_packages.sh --version
* Building rpm/droid-hal-version-i4113.spec 
Checking whether to refresh metadata for dir:$ANDROID_ROOT/hybris/droid-hal-version-i3113/.mb2/filtered-output-dir

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm for kumano this works fine for me:

bidar@odin:~/dev/sailfish/hadk/kumano|21:59$ ./rpm/dhd/helpers/build_packages.sh --version
* Building rpm/droid-hal-version-j9210.spec 
Checking whether to refresh metadata for dir:/home/bidar/dev/sailfish/hadk/kumano/hybris/droid-hal-version-sony-kumano/.mb2/filtered-output-dir

done
minfo "Building of $PKG finished successfully"
}
Expand Down