Closed Bug 775720 Opened 7 years ago Closed 7 years ago

Use Android SDK 16 in order to support some Jelly Bean features

Categories

(Infrastructure & Operations :: CIDuty, task, P2, major)

All
Android

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: eeejay, Assigned: coop)

References

Details

(Whiteboard: [android])

Attachments

(1 file)

We need this for advanced accessibility features introduced in Jelly Bean.
Moving to releng since they will be responsible for deploying the new SDK to the buildbot hosts.

Is r16 the correct version?  The latest version is r20...
Component: General → Release Engineering: Platform Support
Product: Firefox for Android → mozilla.org
QA Contact: coop
Version: unspecified → other
Yes Jelly Bean (Android 4.1) is SDK 16.
Oh I see, there are two different version numbers involved here.  The "API level" for Jelly Bean is 16: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels

and the SDK Tools version for Jelly Bean is r20:
http://developer.android.com/tools/revisions/platforms.html

To use Jelly Bean APIs in Fennec, we will need to deploy both SDK Tools r20 and the the SDK Platform files for API 16.
Do we use tooltool yet for these Android packages? Should we?

https://wiki.mozilla.org/ReleaseEngineering/Applications/Tooltool
Whiteboard: [android]
Blocks: 777560
Any estimate on when this will happen? This blocks accessibility advancement in Firefox for Android.
Firefox will be winning as the most accessible browser on Jelly Bean if we can get this done soon.
Severity: normal → major
We could use tooltool or mock for this. mock is probably the faster way forward since I've already got quite a bit of work done there as part of bug 775620.
Bug 719660 has a spec file and puppet manifest additions for a previous SDK (14).
See Also: → 719660
(In reply to Chris AtLee [:catlee] from comment #7)
> We could use tooltool or mock for this. mock is probably the faster way
> forward since I've already got quite a bit of work done there as part of bug
> 775620.

We'll block on this (no sense doing this twice), but I'll get the rpm built so we're ready to go.
Assignee: nobody → coop
Status: NEW → ASSIGNED
Depends on: 775620
Priority: -- → P2
Based on the contents of https://bugzilla.mozilla.org/attachment.cgi?id=592744&action=edit it looks like we've been installing *all* the previous versions of the SDK we rely on via a single, monolithic rpm, even if we've previously deployed other monolithic rpms that contain all versions prior, albeit under a different dir (e.g. /tools/android-sdk-r13).

Do we need to continue doing this, or can I create a new rpm for just SDK 16? If developers rely on having access to previous SDKs under the newest SDK dir, I can continue deploying this way. I'm just trying to understand the use case here.
(In reply to Chris Cooper [:coop] from comment #10)
> Do we need to continue doing this, or can I create a new rpm for just SDK
> 16? If developers rely on having access to previous SDKs under the newest
> SDK dir, I can continue deploying this way.

No, I don't think we depend on that.  Older branches (Aurora/Beta/Release) should still be looking for the old SDKs in the old directories.  So as long as the old RPM remains deployed, we shouldn't need to install the old SDKs in the new directory.
(In reply to Matt Brubeck (:mbrubeck) from comment #11) 
> No, I don't think we depend on that.  Older branches (Aurora/Beta/Release)
> should still be looking for the old SDKs in the old directories.  So as long
> as the old RPM remains deployed, we shouldn't need to install the old SDKs
> in the new directory.

When I run "tools/android update sdk --no-ui" (taken from https://hg.mozilla.org/build/rpm-sources/file/fd101c2c9259/android-sdk/centos5-i686/android-sdk15.spec#l18), I get the following list of skipped packages for sdk 16:

    Skipping 'HTC OpenSense SDK by HTC, Android API 15, revision 2'; it depends on a missing package.
    Skipping 'ICS_R1 by Motorola Mobility, Inc., Android API 15, revision 3'; it depends on a missing package.
    Skipping 'ICS_R2 by Motorola Mobility, LLC., Android API 15, revision 2'; it depends on a missing package.
    Skipping 'XOOM2ME by Motorola Mobility, Inc., Android API 13, revision 2'; it depends on a missing package.
    Skipping 'XOOM2 by Motorola Mobility, Inc., Android API 13, revision 2'; it depends on a missing package.
    Skipping 'XOOM by Motorola Mobility, Inc., Android API 11, revision 2'; it depends on a missing package.
    Skipping 'Intel Atom x86 System Image by Intel Corporation, Android API 10, revision 1'; it depends on a missing package.
    Skipping 'Dual Screen APIs by KYOCERA Corporation, Android API 10, revision 1'; it depends on a missing package.
    Skipping 'Real3D by LGE, Android API 10, revision 2'; it depends on a missing package.
    Skipping 'ADMIRAL by Motorola Mobility, Inc., Android API 10, revision 5'; it depends on a missing package.
    Skipping 'ATRIX2 by Motorola Mobility, Inc., Android API 10, revision 2'; it depends on a missing package.
    Skipping 'Bionic by Motorola Mobility, Inc., Android API 10, revision 2'; it depends on a missing package.
    Skipping 'Droid4 by Motorola Mobility, Inc., Android API 10, revision 2'; it depends on a missing package.
    Skipping 'DroidRAZR by Motorola Mobility, Inc., Android API 10, revision 5'; it depends on a missing package.
    Skipping 'MT870 by Motorola Mobility, Inc., Android API 10, revision 2'; it depends on a missing package.
    Skipping 'MT917 by Motorola Mobility, Inc., Android API 10, revision 1'; it depends on a missing package.
    Skipping 'MotorolaPro+ by Motorola Mobility, Inc., Android API 10, revision 2'; it depends on a missing package.
    Skipping 'PHOTON by Motorola Mobility, Inc., Android API 10, revision 1'; it depends on a missing package.
    Skipping 'XT882 by Motorola Mobility, Inc., Android API 10, revision 2'; it depends on a missing package.
    Skipping 'XT928 by Motorola Mobility, Inc., Android API 10, revision 3'; it depends on a missing package.
    Skipping 'defy+ by Motorola Mobility, Inc., Android API 10, revision 1'; it depends on a missing package.
    Skipping 'Sony Xperia Extensions EDK 2.0 by Sony Mobile Communications AB, Android API 10, revision 2'; it depends on a missing package.
    Skipping 'Dual Screen APIs by KYOCERA Corporation, Android API 8, revision 1'; it depends on a missing package.
    Skipping 'Real3D by LGE, Android API 8, revision 1'; it depends on a missing package.
    Skipping 'GALAXY Tab by Samsung Electronics., Android API 8, revision 1'; it depends on a missing package.

Should I be worried about any of those?
I am not an expert, but I don't think so.
(In reply to Chris Cooper [:coop] from comment #12)
> When I run "tools/android update sdk --no-ui" (taken from
> https://hg.mozilla.org/build/rpm-sources/file/fd101c2c9259/android-sdk/
> centos5-i686/android-sdk15.spec#l18), I get the following list of skipped
> packages for sdk 16:

That's fine; we don't depend on any of those packages.
I have an rpm built now:
staging-puppet.build.mozilla.org:/N/staging/centos5-i686/build/RPMsandroid-sdk16-r16-0moz1.i386.rpm

I'll post in bug 775620 to make sure it gets included in the mock env there. I'll also post a spec file shortly.
Not sure who to tag for review, so tagging catlee. Feel free to punt.

Step-by-step instructions for how I generated the rpm are included in the spec file header.
Attachment #650354 - Flags: review?(catlee)
Attachment #650354 - Flags: review?(catlee) → review+
Comment on attachment 650354 [details] [diff] [review]
Spec file for android sdk 16

https://hg.mozilla.org/build/rpm-sources/rev/4786dadc6268

Now to try and get this into mock.
Attachment #650354 - Flags: checked-in+
(In reply to Chris Cooper [:coop] from comment #17)
> Now to try and get this into mock.

I've deployed the rpm to releng-puppet1 and updated the repodata.
Added https://bugzilla.mozilla.org/show_bug.cgi?id=775620#c5 to make sure the rpm is included in the new mock env for mobile.
\o/ ! We need to update the wiki for build instructions, and I'll send out a heads up to dev-mobile. Thanks releng team!
Thanks, and sorry for the delay here. We had no docs of how to do this...well, we had incorrect docs in the previous spec file, but that hardly helps. 

I'm recreating the current rpm from my notes and writing some docs so the next person will have a fighting chance.
Blocks: 783706
Moved tarball creation instructions to the wiki:

https://hg.mozilla.org/build/rpm-sources/rev/206c39c39ffd

https://wiki.mozilla.org/ReleaseEngineering/How_To/Build_An_Android_SDK_rpm
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Product: mozilla.org → Release Engineering
Component: Platform Support → Buildduty
Product: Release Engineering → Infrastructure & Operations
You need to log in before you can comment on or make changes to this bug.