lca14: lca14-403: importance of migrating external projects used in android to it's latest...

16
Thu 6 March, 10:05am, Sireesh Tripurari LCA14-403: Importance of migrating external projects used in Android to it’s latest version

Upload: linaro

Post on 29-Nov-2014

375 views

Category:

Technology


0 download

DESCRIPTION

Resource: LCA14 Name: LCA14-403: Importance of migrating external projects used in Android to it's latest version Date: 06-03-2014 Speaker: Sireesh Tripurari

TRANSCRIPT

Page 1: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

Thu 6 March, 10:05am, Sireesh Tripurari

LCA14-403: Importance of migrating external projects used in Android to it’s latest version

Page 2: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

Android’s upstream (LCU’13)

• Android is, in many ways, just another Linux distribution

• As such, it includes code from many FOSS projects...

• … and quite frequently, isn't in sync with what upstreams are doing.

Page 3: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

Current situation (LCU’13)

• Android imports an external FOSS project into its git repository (sometimes a released version, sometimes a git or svn snapshot)

• Patches to make it work with Android (and sometimes to add, remove or modify some functionality) are added inside Android's git repository

• There is little or no effort made to upstream those changes, some changes are a little bogus (checking in a config.h generated by autoconf to avoid the need to call configure, ...)

• A newer upstream release may or may not be merged into Android – if at all, merges typically happen months after the upstream release

• Android has no concept of OS component packages, and cannot update an individual component (e.g. openssl) – often leading to important upstream updates being ignored by device makers

Page 4: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

Ideal Situation (LCU’13)

• Patches needed for Android go upstream ASAP (#ifdef-ed if necessary)

• Upstream releases can be merged into Android quickly and painlessly because all relevant patches are already there

• Upstream releases actually are merged in a timely manner

• Android adopts some sort of upstream packaging so e.g. an OpenSSL security update can be pushed even to people who are stuck with an ancient Android version

Page 5: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

• They introduce improvements and add new features that continually increase efficiency.

• Latest version ensures they have fixes for prior bugs.

• Obsoleted versions may inadvertently result in 'forgotten' and eventually restraining with a version that is no longer supported.

• Unfortunately, accommodating a recent release may require more effort, and delay.

Importance of migration

Page 6: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

• libpngo source accepted upstream : Version 1.5.7beta01 [November 4, 2011]o libpng performance improvement : As much as 30%o https://cards.linaro.org/browse/JUICE-238

• libjpeg-turboo https://cards.linaro.org/browse/CARD-1090o https://cards.linaro.org/browse/CARD-404

• Zlibo https://cards.linaro.org/browse/CARD-1000

• Sqliteo https://cards.linaro.org/browse/CARD-998

• Skiao https://cards.linaro.org/browse/CARD-1091

Linaro – contribution towards FOSS

Page 7: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

• Mesa +NEONo https://cards.linaro.org/browse/CARD-291

• Libavo https://cards.linaro.org/browse/CARD-91

• Guavao https://cards.linaro.org/browse/CARD-999

• OpenSSLo https://cards.linaro.org/browse/CARD-519

• Webpo https://cards.linaro.org/browse/CARD-84

Linaro – contribution towards FOSS

Page 8: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

• Toolchaino Android 4.4 r2 uses modified GCC 4.7o Linaro provides toolchain GCC 4.8

• Android Kernelo Android 4.4 uses Kernel 3.4.0o Linaro provides up-to date kernel 3.14+

• FOSSo Optimized libraries o ARM NEON support

Linaro - Android

Page 9: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

• https://cards.linaro.org/browse/CARD-996

Linaro - Analysis

Linaro 11 Work is already in progress under LinaroOK 5 Can be updated without any issues

No 61Category not identified / Fonts / Host / Not maintained / Not Source available in google master branch

Updated 11 Source updated by google

Testing 30Code which are used for testing (internally by google or thru CTS) / Scope of contribution

TBD 57 Scope of contribution

Grand Total 175

Page 10: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

Linaro – working on …

clang llvm

compiler-rt mesa3d

e2fsprogs qemu

Fdlibm sqlite

Jpeg webp

libpng webrtc

Linaro is working on these components and will influence Google (Android) to incorporate them.

Page 11: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

Linaro – up-streaming for migration

flac libxml2

libogg libxslt

libvorbis tinyxml

gcc-demangle tinyxml2

sfntly

At Linaro we analyzed these components could be migrated (includes minor fixes) without breaking current system.

Respective issues’ will be raised at AOSP for migration

Page 12: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

We invite contributions… (AOSP master)

ant-glob dnsmasq jsr305 nist-sip v8antlr ganymed-ssh2 libcap-ng oauth valgrind

apache-harmony grub libpcap okhttp webkitapache-http harfbuzz libphonenumber opencv wpa_supplicant

apache-xml harfbuzz_ng libselinux openssh wpa_supplicant

arduino icu4c libvpx ppp wpa_supplicant

bluetooth iproute2 libyuv protobuf xmp_toolkit

chromium ipsec-tools marisa-trie regex-re2

chromium-trace iptables mdnsresponder smali

dbus jhead mp4parser srtp

dhcpcd jmonkeyengine mksh tcpdump

Above lists the components where contribution for migration can be taken up by members.Some of these items would be shall be picked by Linaro.

Page 13: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

Invite contributor … (AOSP master)Fonts Host Updated No new releases Other

cibu-fonts astl bison aac android-clat liblzf dropbear quake

lohit-fonts busybox eclipse-basebuilder bouncycastle android_inp

ut_bridge libppp elfutils replicaisland

naver-fonts eyes-free eclipse-windowbuilder checkpolicy bsdiff libsepol hyphenation safe-iop

noto-fonts ffmpeg fat32lib eigen bzip2 lzma javasqlite skiasil-fonts htop genext2fs giflib dexmaker netcat libffi stlport

jack yaffs2 iputils doclava open-vcdiff libmtp zxingncurses lrzsz expat speex libnfc-ncisonivox openfst fsck_msdos tagsoup libnfc-nxp

srec openssl jline tinycompress libnl

svox pixman jmdns zlib libusb

x264 tinyalsa libgsm libusb-compat

tremolo markdown

freetype

Above lists the components where contribution for migration can be taken up by members by providing better solution (replacing old/abandoned projects).Linaro shall not focus on these, instead influence Google to adopt new after testing.

Page 14: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

Testing componentsUnit testing Benchmark

android-mock hamcrest embunit blktrace stressapptest

easymock proguard gtest iozone stringbench

littlemock javassist junit memtester xmlwriter

mockwebserver jdiff netperf linux-tools-perf

roboelectric jsilver strace nist-pkits

objenesis lava-blackbox

emma google-diff-match-patch

Testing is important part of product, these areas can be enhanced by reducing multiple components providing additional and easy to write testing. Linaro shall not focus on these, instead influence Google to adopt new after validating.

Page 15: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

• After analyzing all the external components available in AOSP, we find that many components are out dated.

• Linaro studied that latest source updates contain critical bug fixes and/or enhanced performance this effects overall product durability and customer satisfaction

• Linaro shall push tested and validated components for migration

• Linaro expects other members to provide support and contribute byo Suggesting better solution (where applicable)o Upstream Google fixes to FOSS (reverse patches)o Provide components (patches) for smooth migration (timely)

• Linaro would influence Google to migrate based on regression and validation.

Conclusion

Page 16: LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

More about Linaro Connect: http://connect.linaro.orgMore about Linaro: http://www.linaro.org/about/

More about Linaro engineering: http://www.linaro.org/engineering/Linaro members: www.linaro.org/members