Opened 6 months ago

Closed 6 months ago

#30326 closed task (wontfix)

Remove yasm from the list of dependencies for the firefox android build

Reported by: boklm Owned by: tbb-team
Priority: Medium Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: tbb-rbm, TorBrowserTeam201904
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

While testing the changes from #29981, gk found that yasm is not needed to build firefox for android. We should remove it from the list of dependencies we need to build firefox on all platforms, and only install it for the linux, windows and osx builds.

Child Tickets

Change History (4)

comment:1 Changed 6 months ago by boklm

Type: defecttask

comment:2 Changed 6 months ago by boklm

I made a patch for this in branch bug_30326:
https://gitweb.torproject.org/user/boklm/tor-browser-build.git/commit/?h=bug_30326&id=d5be2bbbae4709b42d6520b5b632bf10904e3268

A build for android-armv7 was successful with this patch. However the build for android-x86 fails with:

 0:06.96 checking for Android lint classpath...  /var/tmp/dist/android-toolchain/android-sdk-linux/tools/lib/lint-26.0.0-dev.jar /var/tmp/dist/android-toolchain/android-sdk-linux/tools/lib/lint-checks-26.0.0-dev.jar /var/tmp/dist/android-toolchain/android-sdk-linux/tools/lib/sdklib-26.0.0-dev.jar /var/tmp/dist/android-toolchain/android-sdk-linux/tools/lib/repository-26.0.0-dev.jar /var/tmp/dist/android-toolchain/android-sdk-linux/tools/lib/common-26.0.0-dev.jar /var/tmp/dist/android-toolchain/android-sdk-linux/tools/lib/lint-api-26.0.0-dev.jar /var/tmp/dist/android-toolchain/android-sdk-linux/tools/lib/manifest-merger-26.0.0-dev.jar
 0:06.98 configure: error: yasm is a required build tool for this architecture when webm is enabled. You may either install yasm or --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.
 0:06.99 DEBUG: <truncated - see config.log for full output>
 0:06.99 DEBUG: configure:10347: checking for zipalign
 0:06.99 DEBUG: configure:10399: checking for Android platform-tools
 0:06.99 DEBUG: configure:10409: checking for adb
 0:06.99 DEBUG: configure:10461: checking for Android tools
 0:06.99 DEBUG: configure:10471: checking for emulator
 0:06.99 DEBUG: configure:10539: checking for Android lint classpath
 0:06.99 DEBUG: configure:11315: /var/tmp/dist/android-toolchain/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -std=gnu99 --target=i386-linux-android -c -fno-short-enums -fno-exceptions   -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-math-errno -Qunused-arguments -isystem /var/tmp/dist/android-toolchain/android-ndk/platforms/android-16/arch-x86/usr/include -isystem /var/tmp/dist/android-toolchain/android-ndk/platforms/android-16/arch-x86/usr/include -gcc-toolchain /var/tmp/dist/android-toolchain/android-ndk/toolchains/x86-4.9/prebuilt/linux-x86_64 -D__ANDROID_API__=16   conftest.c 1>&5
 0:06.99 DEBUG: In file included from configure:11309:
 0:06.99 DEBUG: /usr/include/linux/ethtool.h:1220:8: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
 0:06.99 DEBUG:         __u32   queue_mask[__KERNEL_DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
 0:06.99 DEBUG:                 ^
 0:06.99 DEBUG: 1 error generated.
 0:06.99 DEBUG: configure: failed program was:
 0:06.99 DEBUG: #line 11308 "configure"
 0:06.99 DEBUG: #include "confdefs.h"
 0:06.99 DEBUG: #include <linux/ethtool.h>
 0:06.99 DEBUG: int main() {
 0:06.99 DEBUG:  struct ethtool_cmd cmd; cmd.speed_hi = 0;
 0:06.99 DEBUG: ; return 0; }
 0:06.99 DEBUG: configure: error: yasm is a required build tool for this architecture when webm is enabled. You may either install yasm or --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.
 0:06.99 ERROR: old-configure failed
 0:07.01 *** Fix above errors and then restart with\
 0:07.01                "/usr/bin/make -f client.mk build"
 0:07.01 client.mk:146: recipe for target 'configure' failed
 0:07.01 make: *** [configure] Error 1

Looking at old-configure.in, it seems we need yasm for all x86 builds.

comment:3 Changed 6 months ago by boklm

So we could install yasm for all the builds, except the android-armv7 build. However this means we will create two separate containers images for the android-armv7 and android-x86 firefox builds, with the only difference being the yasm package. I am not sure it is worth it, so I think we should just keep the yasm package installed during the android-armv7 build to keep things more simple.

comment:4 Changed 6 months ago by gk

Resolution: wontfix
Status: newclosed

Good catch and I indeed only tested android-armv7. Sorry for the noise, my bad. I agree we should just keep one container here for both builds. That single package does not seem to be worth two different containers.

Note: See TracTickets for help on using tickets.