Merge lp:~mvo/click/click-check-libs into lp:click/devel
Status: | Needs review |
---|---|
Proposed branch: | lp:~mvo/click/click-check-libs |
Merge into: | lp:click/devel |
Diff against target: |
290 lines (+266/-0) 3 files modified
click/commands/verify.py (+13/-0) click/elfinspector.py (+196/-0) click/tests/test_elfinspector.py (+57/-0) |
To merge this branch: | bzr merge lp:~mvo/click/click-check-libs |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Needs Fixing | |
click hackers | Pending | ||
Review via email: mp+235960@code.launchpad.net |
Commit message
Add new click verify --check-libs command
Description of the change
This branch will add a new command:
click verify --check-libs com.ubuntu.
to check if there are libraries by any ELF binary in the click that are not part of the declared framework. It will use the existing click chroot to find information about the libraries (we might use apt-file too, but it seems like the chroot is the better option).
When its run it will inspect the objdump -p output and check for the NEEDED section. If the library that is NEEDED is not a direct dependency of ubuntu-sdk-libs or bundled in the click or part of the IGNORE_LIST it will complain. Example output:
$ PYTHONPATH=. ./bin/click verify --check-libs com.ubuntu.
WARNING:root:Failed to get files for 'ubuntu-
...
Missing libraries:
libQt5Core.so.5
libQt5Gui.so.5
libQt5Qml.so.5
libQt5Quick.so.5
libQt5Sql.so.5
libQt5Widgets.so.5
libcontent-hub.so.0
libexpat.so.1
libmediainfo.so.0
Which indicates that we probably need to tweak ubuntu-sdk-libs to include more of qt5 directly.
I would love to get feedback on the approach and the IGNORE_LIST. I haven't written integration tests yet because I want to get approval for the general approach first, but if it looks good I'm happy to write the missing tests.
Thanks!
Michael
Unmerged revisions
- 521. By Michael Vogt
-
click/elfinspec
tor.py: add IGNORE_LIST for base libs like libc - 520. By Michael Vogt
-
really add some missing tests
- 519. By Michael Vogt
-
fix pep8 error, add some missing tests
- 518. By Michael Vogt
-
cleanup, much nicer now
- 517. By Michael Vogt
-
initial (ugly) draft to get missing libs from a click, you can do "click verify --check-libs some.click" now
FAILED: Continuous integration, rev:521 /code.launchpad .net/~mvo/ click/click- check-libs/ +merge/ 235960/ +edit-commit- message
No commit message was specified in the merge proposal. Click on the following link and set the commit message (if you want a jenkins rebuild you need to trigger it yourself):
https:/
http:// jenkins. qa.ubuntu. com/job/ click-devel- ci/76/ jenkins. qa.ubuntu. com/job/ click-devel- utopic- amd64-ci/ 78 jenkins. qa.ubuntu. com/job/ click-devel- utopic- armhf-ci/ 76 jenkins. qa.ubuntu. com/job/ click-devel- utopic- armhf-ci/ 76/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ click-devel- utopic- i386-ci/ 76
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/click- devel-ci/ 76/rebuild
http://