Rpath with $ORIGIN fools snapcraft library bundling mechanism

Bug #1570895 reported by Zygmunt Krynicki on 2016-04-15
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Snapcraft
Medium
Kyle Fazzari
snapcraft (Ubuntu)
Undecided
Unassigned
Xenial
Medium
Unassigned
Yakkety
Medium
Unassigned

Bug Description

I have a pre-built binary game using rpath with "$ORIGIN/lib64". Snapcraft expands that to $(pwd)/lib64 (eg /home/zyga/blah/blah/blah/lib64) and a directory like that is added to the snap. At runtime the rpath is still as before so the library cannot be found.

[Impact]

 * Wrong paths end up in the snap, which makes it to fail.

[Test Case]

 * Make a snap wit $ORIGIN in rpath.
 * Run snapcraft
 * Install it and execute it.

[Regression Potential]

 * This affects the files that end up in the snap. Many scenarios are covered by tests, but some exploratory would be good.

I've witnessed the same problem, but I think I was able to avoid the issue by adding the path to LD_LIBRARY_PATH.

...in my init script

Kyle Fazzari (kyrofa) on 2016-05-24
Changed in snapcraft:
status: New → Confirmed
importance: Undecided → Medium
Kyle Fazzari (kyrofa) on 2016-06-16
Changed in snapcraft:
assignee: nobody → Kyle Fazzari (kyrofa)
Kyle Fazzari (kyrofa) on 2016-06-17
Changed in snapcraft:
status: Confirmed → In Progress
Changed in snapcraft:
status: In Progress → Fix Committed
milestone: none → 2.12
Leo Arias (elopio) on 2016-06-27
description: updated

Hello Zygmunt, or anyone else affected,

Accepted snapcraft into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/snapcraft/2.12 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

tags: added: verification-needed
Leo Arias (elopio) wrote :

Tested in an up-to-date xenial:

- enabled -proposed
- update snapcraft to 2.12
- got kyle's project from integration_tests/snaps/rpath-test
- snapcraft
- checked that there is no prime/home/... directory.

I'm going to mark this as verifyied, thanks Steve!

Zyga, can you please try your snap with 2.12?

tags: added: verification-donee
removed: verification-needed
tags: added: verification-done
removed: verification-donee
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in snapcraft (Ubuntu Xenial):
status: New → Confirmed
Changed in snapcraft (Ubuntu Yakkety):
status: New → Confirmed
affects: Ubuntu Xenial → snapcraft (Ubuntu Xenial)
Changed in snapcraft (Ubuntu Xenial):
importance: Undecided → Medium
status: New → Fix Committed
Changed in snapcraft (Ubuntu Yakkety):
importance: Undecided → Medium
Changed in snapcraft:
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package snapcraft - 2.12

---------------
snapcraft (2.12) xenial; urgency=medium

  [ Simon Quigley ]
  * Change apt-get to apt in HACKING.md (#564) (LP: #1591421)
  * Changed the mailing list in HACKING.md from snappy-devel to snapcraft
    (#577)
  * Add Subversion support (#567) (LP: #1543243)

  [ Joe Talbott ]
  * Include 'maintainer' and 'description' in the parser output. (#565)
    (LP: #1591199)
  * Support "```" wiki code tags in the parser. (#569) (LP: #1592133)
  * Add snapcraft-parser integration test. (#560) (LP: #1590268)
  * Make most wiki fields required. (#581) (LP: #LP: #1592133)
  * Add more info about reusable parts. (#527) (LP: #1582499)
  * Allow parts without a 'source' entry. (#599)

  [ Sergio Schvezov ]
  * New plugin: gulp (#563) (LP: #1575880)
  * Support for a hidden snapcraft.yaml (#582) (LP: #1587933)
  * Implement `snapcraft update` for parts (#588) (LP: #1594643)
  * Support updating cache without content-length (#598) (LP: #1595610)
  * Switch from local copy to the proper python package. (LP: #1590813)
  * Integrate with new remote parts (#590) (LP: #1594976)
  * Implement `snapcraft define` for parts (#594) (LP: #1594643)
  * Update the remote parts cache before demo tests (#604) (LP: #1596114)
  * Add missing build-packages for rpath test (#605) (LP: #1596114)
  * Implement snapcraft search (#608) (LP: #1596222)

  [ Bayard Randel ]
  * Ignore .eggs dir. (#572)

  [ Leo Arias ]
  * Use pexpect when testing the building of snaps (#573) (LP: #1592943)
  * Allow to run a subset of integration tests. (#576) (LP: #1593009)
  * Improve the store errors returning exceptions (#585) (LP: #1594636)
  * Add the register command (#586) (LP: #1595012)
  * Improve error reporting (#591) (LP: #1588023)
  * Fix the store update test to register a unique name (#595) (LP: #1595319)
  * Use a xenial docker container for travis executions (#597) (LP: #1532213)
  * Simplify the list plugins integration test (#607) (LP: #1596112)
  * Remove the unittests from the autopkgtest execution (#600) (LP: #1596068)

  [ Evan Dandrea ]
  * Make lxd containers ephemeral. (#578) (LP: #1577548)

  [ Daniel Holbach ]
  * it's myapps.developer.ubuntu.com (#587) (LP: #1594844)

  [ Rob Loach ]
  * Fix Snap icons for Demos (#574)

  [ Kyle Fazzari ]
  * Add qmake plugin. (#566) (LP: #1574774)
  * Don't copy libraries that are already in prime. (#580) (LP: #1570895)
  * Make app names more restrictive. (#555) (LP: #1589613)

 -- Sergio Schvezov <email address hidden> Mon, 27 Jun 2016 13:58:10 -0300

Changed in snapcraft (Ubuntu Xenial):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for snapcraft has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

no longer affects: Ubuntu Xenial
Changed in snapcraft (Ubuntu Yakkety):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers