Closed Bug 657723 Opened 13 years ago Closed 13 years ago

deploy android NDKr5 to build slaves

Categories

(Release Engineering :: General, defect, P3)

x86_64
Linux
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: blassey, Assigned: bear)

References

Details

(Whiteboard: [mobile])

Attachments

(9 files, 11 obsolete files)

1.14 KB, patch
rail
: review+
Details | Diff | Splinter Review
1.38 KB, patch
Details | Diff | Splinter Review
1.79 KB, patch
bear
: review+
jhford
: checked-in+
Details | Diff | Splinter Review
1.44 KB, patch
dustin
: review+
Details | Diff | Splinter Review
1.21 KB, patch
mozilla
: review+
Details | Diff | Splinter Review
1.49 KB, patch
mozilla
: review+
Details | Diff | Splinter Review
2.65 KB, patch
mozilla
: review+
Details | Diff | Splinter Review
1.20 KB, text/plain
Details
19.60 KB, patch
mozilla
: feedback+
bear
: feedback+
Details | Diff | Splinter Review
Brad: does this supercede bug 616057? Would we need to rebuild r5 with -fPIC prior to deployment?
Assignee: nobody → bear
Priority: -- → P3
Whiteboard: [mobile]
per IRC from yesterday they want/need the r5 NDK deployed first without -fPIC because r5 doesn't require any extra .h manipulations so should be a puppet deploy.
[15:43]	<blassey>	heads up, target name for NDKr5 is arm-linux-android
[15:43]	<aki|buildduty>	heh
[15:49]	<aki|buildduty>	blassey: does that change the filename ?
[15:49]	<blassey>	it changes the apk name

We do hardcode searching for eabi-arm.apk in places; we'll have to coordinate a change for when we update to NDKr5.
I have the test rpm (for use in the puppet deploy) created and have a buildslave isolated to generate a test build.  next will be to check in the puppet patch and spec file for review and giving a binary to the mobile devs for sanity check
Attachment #543335 - Flags: review?(rail)
Comment on attachment 543335 [details] [diff] [review]
r5c ndk rpm spec file

Review of attachment 543335 [details] [diff] [review]:
-----------------------------------------------------------------

::: android-ndk/centos5-i686/android-ndk.spec
@@ +21,5 @@
>  %{name}
>  
>  %prep
>  rm -rf $RPM_BUILD_DIR/%{toplevel_dir}
> +tar xf %{SOURCE0} >/dev/null

did you mean "tar xjf %{SOURCE0} >/dev/null" here?

Otherwise looks good.
Attachment #543335 - Flags: review?(rail) → review+
(In reply to comment #7)
> > +tar xf %{SOURCE0} >/dev/null
> 
> did you mean "tar xjf %{SOURCE0} >/dev/null" here?
> 
> Otherwise looks good.

I've gotten used to the new version of tar not requiring you to list what method to use as it figures it out and does-the-right-thing

But your point is good as nothing guarantees that we will be running the latest version everywhere :/
Attachment #543336 - Flags: review?(rail)
Comment on attachment 543336 [details] [diff] [review]
wip - puppet change for ndk r5c (needs staging test)

Looks good.
Attachment #543336 - Flags: review?(rail) → review+
Ping: what's the status on this? I thought this was being deployed yesterday.
bah - communication/update fail...

Monday I found that an NDK6 was released so I wanted to find out if I should move to 6 and forgot to ask yesterday.  Today Aki let me know that blassey doesn't want to jump to 6 so I'm clear to roll out 5 and will do so.  ETA is unknown because I haven't spent the 30 minutes to sync with myself and find out what the small details are remaining.
this is the diff from the mozconfig I am currently using to test the ndk5 build
with the attached mozconfig this is the error i'm seeing:

make[4]: Entering directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/nsprpub'
make -C config export
make[5]: Entering directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/nsprpub/config'
/tools/gcc/bin/gcc -o now.o -c      -pthread -O -gdwarf-2   -UDEBUG  -DMOZILLA_CLIENT=1 -DNDEBUG=1 -DHAVE_VISIBILITY_HIDDEN_ATTRIBUTE=1 -DHAVE_VISIBILITY_PRAGMA=1 -DXP_UNIX=1 -DHAVE_LCHOWN=1 -DHAVE_STRERROR=1  -DFORCE_PR_LOG -D_PR_PTHREADS -UHAVE_CVAR_BUILT_ON_SEM   /builds/slave/rel-lnx-andrd/build/nsprpub/config/now.c
/tools/gcc/bin/gcc  now.o   -o now
/tools/gcc/bin/gcc -o nsinstall.o -c      -pthread -O -gdwarf-2   -UDEBUG  -DMOZILLA_CLIENT=1 -DNDEBUG=1 -DHAVE_VISIBILITY_HIDDEN_ATTRIBUTE=1 -DHAVE_VISIBILITY_PRAGMA=1 -DXP_UNIX=1 -DHAVE_LCHOWN=1 -DHAVE_STRERROR=1  -DFORCE_PR_LOG -D_PR_PTHREADS -UHAVE_CVAR_BUILT_ON_SEM   /builds/slave/rel-lnx-andrd/build/nsprpub/config/nsinstall.c
/tools/gcc/bin/gcc  nsinstall.o   -o nsinstall
rm -f nfspwd; cp /builds/slave/rel-lnx-andrd/build/nsprpub/config/nfspwd.pl nfspwd; chmod +x nfspwd
rm -f /builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/dist/bin/nspr-config
make[5]: Leaving directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/nsprpub/config'
make -C pr export
make[5]: Entering directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/nsprpub/pr'
make -C include export
make[6]: Entering directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/nsprpub/pr/include'
make -C md export
make[7]: Entering directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/nsprpub/pr/include/md'
../../../config/./nsinstall -R -m 444 /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_aix32.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_aix64.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_beos.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_bsdi.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_darwin.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_dgux.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_freebsd.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_hpux32.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_hpux64.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_irix32.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_irix64.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_linux.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_ncr.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_nec.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_netbsd.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_nextstep.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_nto.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_openbsd.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_os2.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_osf1.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_qnx.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_reliantunix.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_riscos.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_scoos.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_solaris.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_sony.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_sunos4.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_symbian.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_unixware7.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_unixware.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_win95.cfg /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/_winnt.cfg /builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/dist/include/nspr/md
../../../config/./nsinstall -R -m 444 /builds/slave/rel-lnx-andrd/build/nsprpub/pr/include/md/ /builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/dist/include/nspr
../../../config/./nsinstall: cannot make symbolic link /builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/dist/include/nspr/md: File exists
make[7]: *** [export] Error 1
make[7]: Leaving directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/nsprpub/pr/include/md'
make[6]: *** [export] Error 2
make[6]: Leaving directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/nsprpub/pr/include'
make[5]: *** [export] Error 2
make[5]: Leaving directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/nsprpub/pr'
make[4]: *** [export] Error 2
make[4]: Leaving directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu/nsprpub'
make[3]: *** [tier_nspr] Error 2
make[3]: Leaving directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu'
make[2]: *** [default] Error 2
make[2]: Leaving directory `/builds/slave/rel-lnx-andrd/build/obj-i686-pc-linux-gnu'
make[1]: *** [realbuild] Error 2
make[1]: Leaving directory `/builds/slave/rel-lnx-andrd/build'
make: *** [build] Error 2
with Catlee's help we figured out it may be the difference between r5 that it looks like the devs are using and the r5c version that I have.  Chris also had the excellent suggestion, which I don't honestly know why I didn't think of it, to just go ahead and install this into /tools/android-ndk-r5c so that the devs can bang on it using try builds.
(In reply to comment #14)
> with Catlee's help we figured out it may be the difference between r5 that
> it looks like the devs are using and the r5c version that I have.  
From irc:

* jchen is able to build just fine using the same mozconfig, and ndk5c.
* jchen is on ubuntu 11.04, 2.6.39 kernel.
Attached patch puppet change for ndk r5c (obsolete) — Splinter Review
this installs the ndk-r5c rpm along side the r4c version and does *not* update the symlink
Attachment #543336 - Attachment is obsolete: true
Attachment #545954 - Flags: review?(dustin)
Attachment #545954 - Flags: review?(dustin) → review+
Comment on attachment 545954 [details] [diff] [review]
puppet change for ndk r5c

committed changeset 395:46e63a620080
Attachment #545954 - Flags: checked-in+
Comment on attachment 543335 [details] [diff] [review]
r5c ndk rpm spec file

committed changeset 24:866ddb55077e
Attachment #543335 - Flags: checked-in+
r5c NDK is being deployed to the android builders and will exist next to the current NDK

To build against it you need to reference

/tools/android-ndk-r5c in your mozconfig
committed changeset 25:4bd84c085c29

reverted android-ndk.spec and created android-ndk5.spec
committed changeset 397:5fc7ee479878

reverted android-ndk puppet change and added android-ndk5 package
Attached patch bump version to 0moz2 (obsolete) — Splinter Review
needed to add g+r to some of the internal tool directories which means new rpm which means new tarball and spec file
Attachment #546199 - Flags: review?(jhford)
Attachment #546200 - Flags: review?(dustin)
Attachment #546200 - Flags: review?(dustin) → review+
Comment on attachment 546200 [details] [diff] [review]
bump version to 0moz2 in puppet manifest

committed changeset 399:758e05137140
Attachment #546200 - Flags: checked-in+
Comment on attachment 546199 [details] [diff] [review]
bump version to 0moz2

Version: r5c

is not valid.  Because we are coding the NDK version into the package name (to have multiple versions installed at the same time), the Version tag we use is irrelevant.  If we want to keep things consistent, its probably best to use 

Version: 5.0
Attachment #546199 - Flags: review?(jhford) → review-
(In reply to comment #25)
> Comment on attachment 546199 [details] [diff] [review] [review]
> bump version to 0moz2
> 
> Version: r5c
> 
> is not valid.  Because we are coding the NDK version into the package name
> (to have multiple versions installed at the same time), the Version tag we
> use is irrelevant.  If we want to keep things consistent, its probably best
> to use 
> 
> Version: 5.0

I did - the version *is* r5c according to Google own notes.

The directory name is ndk5 and the version from Google is r5c and the packaging version i'm using is 0moz2

Version 5 of the NDK went thru 3 official releases (r5 r5b and r5c) and the current one (r6) will probably do something similiar.
extracted from an email exchange between me and blassey:

I took a quick look at try-linux-slave12 and did a quick "can cltbld see the toolchain":

[cltbld@try-linux-slave12 ~]$ ls -la
/tools/android-ndk5-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -rwxr-xr-x 1 root root 233684 Jun  2 15:58
/tools/android-ndk5-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc 

so it's visible from the builder's session and present and when run shows the following:

[cltbld@try-linux-slave12 ~]$ /tools/android-ndk5-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --version
arm-linux-androideabi-gcc (GCC) 4.4.3
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

the output from configure.log looks like something is not setup environment wise as it's trying to load cc1

[cltbld@try-linux-slave12 obj-i686-pc-linux-gnu]$ cat config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:1008: checking host system type
configure:1029: checking target system type
configure:1047: checking build system type
configure:1128: checking for gawk
configure:1258: checking for perl5
configure:1258: checking for perl
configure:1469: checking for host c compiler
configure:1475: checking for gcc
configure:1510: checking for host c++ compiler
configure:1516: checking for c++
configure:1568: checking for ranlib
configure:1603: checking for ar
configure:1638: checking whether the host c compiler (gcc    ) works
configure:1647: gcc -c
-I/tools/android-ndk5-r5c/platforms/android-5/arch-arm/usr/include
-I/tools/android-ndk5-r5c/sources/cxx-stl/stlport/stlport  conftest.c 1>&5
configure:1662: checking whether the host c++ compiler (c++    ) works
configure:1671: c++ -c
-I/tools/android-ndk5-r5c/platforms/android-5/arch-arm/usr/include
-I/tools/android-ndk5-r5c/sources/cxx-stl/stlport/stlport  conftest.c 1>&5
configure:1700: checking for /tools/android-ndk5-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc
configure:1734: checking for gcc
configure:1847: checking whether the C compiler (/tools/android-ndk5-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -mandroid -I/tools/android-ndk5-r5c/platforms/android-5/arch-arm/usr/include -fno-short-enums -fno-exceptions  -mandroid
-L/tools/android-ndk5-r5c/platforms/android-5/arch-arm/usr/lib -L/tools/android-ndk5-r5c/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a
-Wl,-rpath-link=/tools/android-ndk5-r5c/platforms/android-5/arch-arm/usr/lib --sysroot=/tools/android-ndk5-r5c/platforms/android-5/arch-arm -llog -Wl,--allow-shlib-undefined ) works
configure:1863: /tools/android-ndk5-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -o conftest -mandroid
-I/tools/android-ndk5-r5c/platforms/android-5/arch-arm/usr/include -fno-short-enums -fno-exceptions
-I/tools/android-ndk5-r5c/platforms/android-5/arch-arm/usr/include -I/tools/android-ndk5-r5c/sources/cxx-stl/stlport/stlport  -mandroid
-L/tools/android-ndk5-r5c/platforms/android-5/arch-arm/usr/lib -L/tools/android-ndk5-r5c/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a
-Wl,-rpath-link=/tools/android-ndk5-r5c/platforms/android-5/arch-arm/usr/lib --sysroot=/tools/android-ndk5-r5c/platforms/android-5/arch-arm -llog
-Wl,--allow-shlib-undefined  conftest.c -L/tools/android-ndk5-r5c/sources/cxx-stl/stlport/libs/armeabi-v7a/ -lstlport_static 1>&5
arm-linux-androideabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
configure: failed program was:

#line 1858 "configure"
#include "confdefs.h"

main(){return(0);}
i've compared the directory structure and files between a straight tarball extract of the NDK r5c that comes from Android and what puppet installs from the RPM I created of same tarball:

 cd ~/temp/ndk
 mkdir orig
 wget http://dl.google.com/android/ndk/android-ndk-r5c-linux-x86.tar.bz2
 cd orig
 tar xf ../android-ndk-r5c-linux-x86.tar.bz2 

 cd ..
 mkdir rpm
 scp root@try-linux-slave12:/tools/try-linux-slave12.tar.bz2 .
 cd rpm
 tar xf ../try-linux-slave12.tar.bz2 

 moz:ndk bear$ diff -r orig/android-ndk-r5c/ rpm/android-ndk5-r5c/
 Only in rpm/android-ndk5-r5c/platforms/android-3/arch-arm/usr/lib: .libc.so.48pl1z


I am not seeing anything file or permission related for NDK5.  Not sure exactly what to check next on the linux builder to find out why this is not working.

Are you running NDK r5c or something else?  Should I jump to NDK r6 as I see in it's release notes items related to the x86 ABI?
(In reply to comment #28)
> Are you running NDK r5c or something else?  Should I jump to NDK r6 as I see
> in it's release notes items related to the x86 ABI?

I'm using NDKr5b, but jchen is using NDKr5c without a problem. I don't see how r6 will fix anything, but I also don't really care as long as we get this working.
This patch uses the upstream tarball instead of an internal tarball.  It also ensures that permissions are correct.  We should do tweaks in this spec file, and include needed files in SourceN.
Attachment #546868 - Flags: review?(rail)
Attachment #546868 - Flags: review?(rail) → review?(catlee)
Comment on attachment 546868 [details] [diff] [review]
Fix the RPM permissions

>diff --git a/android-ndk/centos5-i686/android-ndk5.spec b/android-ndk/centos5-i686/android-ndk5.spec
> # This isn't the original source package but rather a Mozilla built tarball.
> # The original source package requires downloading additional pieces from
> # the Internet, which is difficult to do in RPM, and makes reproducability
> # impossible.
>-Source0: android-ndk5-r5c-0moz1.tar.bz2

This comment should read:

# This is the upstream NDK binary distribution tarball.  All modifications are
# performed in this spec file's %build section.  If extra files need to be 
# included for modifications, they should use Source1: <path> and be copied
# as needed.
Comment on attachment 546868 [details] [diff] [review]
Fix the RPM permissions

sorry for all the bug spam!
Attachment #546868 - Flags: review?(catlee) → review?(bear)
Attachment #546868 - Flags: review?(bear) → review+
status update:

- generated rpm using new spec
- pushed new rpm to staging-puppet
- updated staging slave using puppet with new rpm
- running test build
- pushed new rpm to production puppet dirs pending successful build
0moz3 bump
Attachment #545954 - Attachment is obsolete: true
Attachment #546990 - Flags: review?(dustin)
Attachment #546199 - Attachment is obsolete: true
sanity build ran clean with /tools/android-ndk-r5c as the path

*NOTE* that this is different than the path I was testing with earlier
Attachment #546200 - Attachment is obsolete: true
Attachment #546990 - Flags: review?(dustin) → review+
Comment on attachment 546990 [details] [diff] [review]
puppet change for ndk r5c

committed changeset 403:a9565d9d0b7f
Attachment #546990 - Flags: checked-in+
Attached patch change abi arm name in tools (obsolete) — Splinter Review
Attachment #547169 - Flags: review?(aki)
Attachment #547170 - Flags: review?(aki)
Attachment #547171 - Flags: review?(aki)
Attachment #547169 - Flags: review?(aki) → review+
Comment on attachment 547169 [details] [diff] [review]
change abi arm name in tools

this is arm-linuxandroid-arm-linuxandroid.apk.

We may be "fixing" the abi in the future:

[11:56]	<blassey>	our package is named $(TARGET_OS)-$(TARGET_VENDOR)
[11:56]	<blassey>	and both of those are arm-linuxandroid

Let's search for 'android.apk'.
Attachment #547169 - Flags: review+ → review-
Comment on attachment 547171 [details] [diff] [review]
change abi arm name in buildbotcustom

>-            packageFilename = '*arm.apk' #the arm.apk is to avoid
>+            packageFilename = '*arm-linuxandroid.apk' #the arm.apk is to avoid
>                                          #unsigned/unaligned apks

Could you update the comment too?

>-        signed_apk_url = '%s%s/%s/%s-%s.%s.eabi-arm.apk' % \
>+        signed_apk_url = '%s%s/%s/%s-%s.%s.eabi-arm-linuxandroid.apk' % \
>             (candidatesDir,
>              branchConfig['platforms']['linux-android']['stage_platform'],
>              locale, releaseConfig['productName'], releaseConfig['version'],
>              locale)
>         change_source.append(UrlPoller(
>             branch=builderPrefix('android_post_signing'),
>             url=signed_apk_url,
>             pollInterval=60*10
>         ))
>         if branchConfig['platforms']['linux-android'].get('multi_locale'):
>             locale = 'multi'
>-            signed_apk_url = '%s%s/%s/%s-%s.%s.eabi-arm.apk' % \
>+            signed_apk_url = '%s%s/%s/%s-%s.%s.eabi-arm-linuxandroid.apk' % \

We're going to have to hardcode the whole arm-linuxandroid-arm-linuxandroid here, or specify the android abi in configs.
Attachment #547171 - Flags: review?(aki) → review-
Comment on attachment 547170 [details] [diff] [review]
change abi arm name in buildbot-configs

Same here, search for android.apk except for the signature verification, which should use arm-linuxandroid-arm-linuxandroid.
Attachment #547170 - Flags: review?(aki) → review-
Attached patch change abi arm name in tools (obsolete) — Splinter Review
Attachment #547169 - Attachment is obsolete: true
Attachment #547218 - Flags: review?(aki)
Attachment #547170 - Attachment is obsolete: true
Attachment #547221 - Flags: review?(aki)
Attachment #547171 - Attachment is obsolete: true
Attachment #547222 - Flags: review?(aki)
Attachment #547218 - Attachment is obsolete: true
Attachment #547218 - Flags: review?(aki)
Attachment #547241 - Flags: review?(aki)
Attachment #547221 - Attachment is obsolete: true
Attachment #547221 - Flags: review?(aki)
Attachment #547242 - Flags: review?(aki)
Depends on: 672939
Attachment #547222 - Attachment is obsolete: true
Attachment #547222 - Flags: review?(aki)
Attachment #547245 - Flags: review?(aki)
Attachment #547241 - Flags: review?(aki) → review+
Comment on attachment 547245 [details] [diff] [review]
change abi arm name in buildbotcustom

whitespace only, but good whitespace fixes
Attachment #547245 - Flags: review?(aki) → review+
Attachment #547242 - Attachment is obsolete: true
Attachment #547242 - Flags: review?(aki)
Attachment #547251 - Flags: review?(aki)
Attachment #547251 - Flags: review?(aki) → review+
Comment on attachment 547251 [details] [diff] [review]
change abi arm name in buildbot-configs

committed changeset 4468:19a54ecbe245
Attachment #547251 - Flags: checked-in+
Comment on attachment 547245 [details] [diff] [review]
change abi arm name in buildbotcustom

committed changeset 1690:b6cf6d4e3e4d
Attachment #547245 - Flags: checked-in+
Comment on attachment 547241 [details] [diff] [review]
change abi arm name in tools

committed changeset 1661:aa05c56878a3
Attachment #547241 - Flags: checked-in+
builds went green on try, but talos is strait orange:
http://tbpl.mozilla.org/?tree=Try&rev=07b2c38470e0

the following two snippets look relevant:

07-20 17:08:52.516 W/System.err( 1419): java.net.ConnectException: /10.250.48.202:20742 - Connection refused
07-20 17:08:52.516 W/System.err( 1419): 	at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:254)
07-20 17:08:52.516 W/System.err( 1419): 	at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:219)
07-20 17:08:52.516 W/System.err( 1419): 	at java.net.Socket.startupSocket(Socket.java:781)
07-20 17:08:52.516 W/System.err( 1419): 	at java.net.Socket.tryAllAddresses(Socket.java:194)
07-20 17:08:52.516 W/System.err( 1419): 	at java.net.Socket.<init>(Socket.java:258)
07-20 17:08:52.516 W/System.err( 1419): 	at java.net.Socket.<init>(Socket.java:222)
07-20 17:08:52.516 W/System.err( 1419): 	at com.mozilla.SUTAgentAndroid.service.DoCommand.RegisterTheDevice(DoCommand.java:2519)
07-20 17:08:52.516 W/System.err( 1419): 	at com.mozilla.SUTAgentAndroid.SUTAgentAndroid$2.run(SUTAgentAndroid.java:631)
07-20 17:08:52.516 W/System.err( 1419): 	at java.lang.Thread.run(Thread.java:1096)
07-20 17:09:41.117 W/System.err( 1419): java.io.FileNotFoundException: /mnt/sdcard/tests/fennec-8.0a1.en-US.android-arm.apk (No such file or directory)
07-20 17:09:41.117 W/System.err( 1419): 	at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method)
07-20 17:09:41.117 W/System.err( 1419): 	at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152)
07-20 17:09:41.117 W/System.err( 1419): 	at java.io.FileInputStream.<init>(FileInputStream.java:82)
07-20 17:09:41.117 W/System.err( 1419): 	at java.io.FileInputStream.<init>(FileInputStream.java:134)
07-20 17:09:41.117 W/System.err( 1419): 	at com.mozilla.SUTAgentAndroid.service.DoCommand.HashFile(DoCommand.java:1480)
07-20 17:09:41.117 W/System.err( 1419): 	at com.mozilla.SUTAgentAndroid.service.DoCommand.processCommand(DoCommand.java:507)
07-20 17:09:41.117 W/System.err( 1419): 	at com.mozilla.SUTAgentAndroid.service.CmdWorkerThread.run(CmdWorkerThread.java:164)
07-20 17:10:31.377 W/RecognitionManagerService( 1017): no available voice recognition services found
return code [0]

.....

07-20 17:08:52.516 W/System.err( 1419): java.net.ConnectException: /10.250.48.202:20742 - Connection refused
07-20 17:08:52.516 W/System.err( 1419): 	at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:254)
07-20 17:08:52.516 W/System.err( 1419): 	at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:219)
07-20 17:08:52.516 W/System.err( 1419): 	at java.net.Socket.startupSocket(Socket.java:781)
07-20 17:08:52.516 W/System.err( 1419): 	at java.net.Socket.tryAllAddresses(Socket.java:194)
07-20 17:08:52.516 W/System.err( 1419): 	at java.net.Socket.<init>(Socket.java:258)
07-20 17:08:52.516 W/System.err( 1419): 	at java.net.Socket.<init>(Socket.java:222)
07-20 17:08:52.516 W/System.err( 1419): 	at com.mozilla.SUTAgentAndroid.service.DoCommand.RegisterTheDevice(DoCommand.java:2519)
07-20 17:08:52.516 W/System.err( 1419): 	at com.mozilla.SUTAgentAndroid.SUTAgentAndroid$2.run(SUTAgentAndroid.java:631)
07-20 17:08:52.516 W/System.err( 1419): 	at java.lang.Thread.run(Thread.java:1096)
07-20 17:09:41.117 W/System.err( 1419): java.io.FileNotFoundException: /mnt/sdcard/tests/fennec-8.0a1.en-US.android-arm.apk (No such file or directory)
07-20 17:09:41.117 W/System.err( 1419): 	at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method)
07-20 17:09:41.117 W/System.err( 1419): 	at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152)
07-20 17:09:41.117 W/System.err( 1419): 	at java.io.FileInputStream.<init>(FileInputStream.java:82)
07-20 17:09:41.117 W/System.err( 1419): 	at java.io.FileInputStream.<init>(FileInputStream.java:134)
07-20 17:09:41.117 W/System.err( 1419): 	at com.mozilla.SUTAgentAndroid.service.DoCommand.HashFile(DoCommand.java:1480)
07-20 17:09:41.117 W/System.err( 1419): 	at com.mozilla.SUTAgentAndroid.service.DoCommand.processCommand(DoCommand.java:507)
07-20 17:09:41.117 W/System.err( 1419): 	at com.mozilla.SUTAgentAndroid.service.CmdWorkerThread.run(CmdWorkerThread.java:164)
07-20 17:10:31.377 W/RecognitionManagerService( 1017): no available voice recognition services found
return code [0]
Do we need a new SUT/Watcher for ndk5 ?
it sounds like we might need that.
I'll investigate this today.
A couple of observations. 

1) I think the RegisterTheDevice call is not the issue, it is run in a thread and so probably is just letting us know that the failure is happening early in the reboot process.

2) It looks like the actual failure is happening when we are trying to install fennec. The path appears sane, so maybe there is a problem with the sdcard? or file permissions.

3) IIRC we call hashfile as part of copying files using the devicemanager.
(In reply to comment #58)
> I'll investigate this today.

any update on this Clint?
Attached file Clint's Mozconfig
(In reply to comment #60)
> (In reply to comment #58)
> > I'll investigate this today.
> 
> any update on this Clint?

No, I can't get a build to work.  I am using the mozconfig that I've attached and I get this: 

Generating modules list in /home/ateam/projects/m-c/obj-opt-android/modules/freetype2/ftmodule.h...
* module: truetype  (Windows/Mac font files with extension *.ttf or *.ttc)
* module: type1     (Postscript font files with extension *.pfa or *.pfb)
* module: cff       (OpenType fonts with extension *.otf)
* module: cid       (Postscript CID-keyed fonts, no known extension)
* module: pfr       (PFR/TrueDoc font files with extension *.pfr)
* module: type42    (Type 42 font files with no known extension)
* module: winfnt    (Windows bitmap fonts with extension *.fnt or *.fon)
* module: pcf       (pcf bitmap fonts)
* module: bdf       (bdf bitmap fonts)
* module: sfnt      (helper module for TrueType & OpenType formats)
* module: autofit   (automatic hinting module)
* module: pshinter  (Postscript hinter module)
* module: raster    (monochrome bitmap renderer)
* module: smooth    (anti-aliased bitmap renderer)
* module: smooth    (anti-aliased bitmap renderer for LCDs)
* module: smooth    (anti-aliased bitmap renderer for vertical LCDs)
* module: psaux     (Postscript Type 1 & Type 2 helper module)
* module: psnames   (Postscript & Unicode Glyph name handling)
done.
/home/ateam/projects/m-c/modules/freetype2/builds/unix/configure  '--disable-debug' '--enable-optimize' '--enable-application=mobile' '--target=arm-androideabi' '--with-endian=little' '--with-android-version=5' '--with-android-ndk=/home/ateam/tools/android-ndk-r5c' '--with-android-sdk=/home/ateam/tools/android-sdk-linux_86/platforms/android-8' '--with-android-tools=/home/ateam/tools/android-sdk-linux_86/tools' '--with-android-toolchain=/home/ateam/tools/android-ndk-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86' '--with-android-platform=/home/ateam/tools/android-ndk-r5c/platforms/android-5/arch-arm' '--with-system-zlib' '--enable-tests' '--host=arm-linux--android' '--disable-shared' '--with-pic=yes' '--cache-file=../.././config.cache' '--srcdir=/home/ateam/projects/m-c/modules/freetype2'/builds/unix
configure: WARNING: unrecognized options: --disable-debug, --enable-optimize, --enable-application, --with-endian, --with-android-version, --with-android-ndk, --with-android-sdk, --with-android-tools, --with-android-toolchain, --with-android-platform, --with-system-zlib, --enable-tests
configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
configure: loading cache ../.././config.cache
checking build system type... i686-pc-linux-gnu
checking host system type... Invalid configuration `arm-linux--android': machine `arm-linux-' not recognized
configure: error: /bin/bash /home/ateam/projects/m-c/modules/freetype2/builds/unix/config.sub arm-linux--android failed
make[3]: *** [setup] Error 1
make[3]: Leaving directory `/home/ateam/projects/m-c/obj-opt-android/modules/freetype2'
configure: error: /home/ateam/projects/m-c/modules/freetype2/configure failed for modules/freetype2
*** Fix above errors and then restart with               "make -f client.mk build"
make[2]: *** [configure] Error 1
make[2]: Leaving directory `/home/ateam/projects/m-c'
make[1]: *** [/home/ateam/projects/m-c/obj-opt-android/Makefile] Error 2
make[1]: Leaving directory `/home/ateam/projects/m-c'
make: *** [build] Error 2
Went and looked on try and found an issue with my mozconfig: http://hg.mozilla.org/try/rev/07b2c38470e0.  Fixed that now getting build error from android builder's debug certificate expiration.  Probably just need to update the SDK.
Comment on attachment 548342 [details]
Clint's Mozconfig

>
># ssltunnel can't build because the ndk doesn't have string, vector, or algorithm headers
>ac_add_options --enable-tests
>CC="ccache /usr/bin/gcc"
>CXX="ccache /usr/bin/g++"
>

Is this still an issue? NDK should have those headers now. Probably not related to this bug though.
(In reply to comment #63)
> Comment on attachment 548342 [details]
> Is this still an issue? NDK should have those headers now. Probably not
> related to this bug though.
shouldn't be an issue any longer.
(In reply to comment #60)
> (In reply to comment #58)
> > I'll investigate this today.
> 
> any update on this Clint?

Yeah, sorry.  Had some build issues because the mozconfig on this bug is not the same as the mozconfig in the try build.  I should have checked that sooner. 

for posterity's sake change the --target line to be arm-linux-androideabi.

So, I have a ndk5 based fennec build, running it with the existing agent that is running in the tegra automation, and I can run talos and mochitest just fine.

I'm thinking our failure here is in the setup code that is run by buildbot in order to pave the way for running Talos. Because in the logs above from try, it doesn't look like Talos ever successfully launches the browser, so that makes me think that we're not setting everything up.  My setup here I did by hand, so for my next trick, I'll attempt to use the sut_tools and do their setup machinations they way they do in the log and see if I can find a place where things come off the rails.
The only build/tools/sut_tool library being used is installApp.py, so I tested that, and it works fine.  Found a small bug which is unrelated to this issue, filed bug 674309 on that.

So, I'm at a loss.  Blassey, you mentioned on IRC last night that you were going to re-run the builds on try.  Do you have any recent logs from those builds that I could review?  Everything I'm doing here locally seems to work without any issue. 

One difference I can't test locally is that I'm running a "fennec_unofficial" build here (signed with my dev key) whereas the automation is running with the Nightly signing.  Other than that, I'm coming up short on explanations for this behavior.
I just retriggered the pervious run, so same link as in comment 55
Thanks blassey,

With the builds it's now pretty clear what's going on.  The mozconfig used in the try run has the "official branding" links.  That will generate a "org.mozilla.firefox" build.  However, our testing infrastructure expects to control the mozconfig for nightly builds to not include the branding information and without the branding information a "org.mozilla.fennec" build is produced.  

So right now we're installing org.mozilla.firefox on the system and the automation is trying to run something called "org.mozilla.fennec" which isn't installed and therefore, the browser fails to start.

Removing the official branding bits of the mozconfig (from the mozconfig being used on try in comment 55) should fix this issue.
Thanks Clint.

Aki, given that, let's push the mozconfig changes to all branches except mozilla-aurora and mozilla-beta.
Attachment #548598 - Flags: feedback?(aki)
Attachment #548598 - Flags: feedback?(aki) → feedback+
Comment on attachment 548598 [details] [diff] [review]
enable ndk5 for our mozconfigs

aki=r+ given verbally

committed changeset 4498:7283fc18044f
Attachment #548598 - Flags: feedback+
ndk-r5c is now live:

[production] moz:buildbot-configs bear$ hg transplant 7283fc18044f
applying 7283fc18044f
7283fc18044f transplanted to f784c1034826
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Blocks: 674662
Depends on: 674837
Depends on: 674910
hi,
I am trying to compile  fennec(fennec-6.0b4.source) for android which I downloaded from https://ftp.mozilla.org/pub/mozilla.org/mobile/releases/latest-alpha/source/ 
i am using google android ndk6 version and android-sdk-linux_x86, compilation fails and errors shown on the terminal is 

../../../config/./nsinstall: cannot make symbolic link /home/akarsh/android-ndk-r5c/samples/mozilla-beta/objdir-droid/dist/include/nspr/md: File exists
make[9]: *** [export] Error 1
make[9]: Leaving directory `/home/akarsh/android-ndk-r5c/samples/mozilla-beta/objdir-droid/nsprpub/pr/include/md'
make[8]: *** [export] Error 2
make[8]: Leaving directory `/home/akarsh/android-ndk-r5c/samples/mozilla-beta/objdir-droid/nsprpub/pr/include'
make[7]: *** [export] Error 2
make[7]: Leaving directory `/home/akarsh/android-ndk-r5c/samples/mozilla-beta/objdir-droid/nsprpub/pr'
make[6]: *** [export] Error 2
make[6]: Leaving directory `/home/akarsh/android-ndk-r5c/samples/mozilla-beta/objdir-droid/nsprpub'
make[5]: *** [libs] Error 2

This could be the same issue mentioned in the above comments, i have also tried to compile on ndk version r5 and r5c.

mozconfig file has following options.

ac_add_options --with-android-ndk="/home/akarsh/android-ndk-r5c"
ac_add_options --with-android-sdk="/home/akarsh/android-sdk-linux_86/platforms/android-8"
ac_add_options --with-android-version=5
ac_add_options --with-android-tools="/home/akarsh/android-sdk-linux_86/tools"
ac_add_options --with-android-toolchain="/home/akarsh/android-ndk-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86"
ac_add_options --with-android-platform="/home/akarsh/android-ndk-r5c/platforms/android-5/arch-arm"
ac_add_options --enable-application=mobile
ac_add_options --target=arm-linux-androideabi
ac_add_options --with-endian=little
ac_add_options --with-ccache
ac_add_options --disable-debug
mk_add_options MOZ_OBJDIR=./objdir-droid
mk_add_options MOZ_MAKE_FLAGS="-j9 -s"

Any help in resolving this issue is appreciated
akarsh.sidhartha@wipro.com
Please ask your question at the mozilla.dev.builds newsgroup.
Blocks: 679468
Blocks: 689666
Depends on: 712275
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: