Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 592778 - dev-libs/capstone-3.0.4-r1 fails with FEATURES="multilib-strict"
Summary: dev-libs/capstone-3.0.4-r1 fails with FEATURES="multilib-strict"
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Sergei Trofimovich (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-03 11:48 UTC by Mike Auty (RETIRED)
Modified: 2016-09-03 14:02 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
Ebuild that adheres to FEATURES="multilib-strict" (capstone-3.0.4-r1.ebuild,477 bytes, text/plain)
2016-09-03 11:49 UTC, Mike Auty (RETIRED)
Details
Ebuild that adheres to FEATURES="multilib-strict" (capstone-3.0.4-r1.ebuild,528 bytes, text/plain)
2016-09-03 12:28 UTC, Mike Auty (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Auty (RETIRED) gentoo-dev 2016-09-03 11:48:18 UTC
Capstone's makefile installs its libraries into /usr/lib rather than /usr/lib32 or /usr/lib64.  As such, when FEATURES="multilib-strict" is set, portage detects this and fails to install:

>>> Completed installing capstone-3.0.4-r1 into /var/tmp/portage/dev-libs/capstone-3.0.4-r1/image/

 * Final size of build directory: 155640 KiB
 * Final size of installed tree: 23572 KiB

Files matching a file type that is not allowed:
   usr/lib/libcapstone.so.3
 * ERROR: dev-libs/capstone-3.0.4-r1::gentoo failed:
 *   multilib-strict check failed!
 * 
 * Call stack:
 *   misc-functions.sh, line 603:  Called install_qa_check
 *   misc-functions.sh, line 217:  Called source 'install_symlink_html_docs'
 *   80multilib-strict, line  47:  Called multilib_strict_check
 *   80multilib-strict, line  43:  Called die
 * The specific snippet of code:
 *   		[[ ${abort} == yes ]] && die "multilib-strict check failed!"
 * 
 * If you need support, post the output of `emerge --info '=dev-libs/capstone-3.0.4-r1::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-libs/capstone-3.0.4-r1::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/dev-libs/capstone-3.0.4-r1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-libs/capstone-3.0.4-r1/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-libs/capstone-3.0.4-r1/image'
 * S: '/var/tmp/portage/dev-libs/capstone-3.0.4-r1/work/capstone-3.0.4'
!!! post install failed; exiting.

I think this can be fixed reasonably easily by replacing the default_src_install with something that includes "emake DESTDIR=${ED} LIBDIRARCH=$(get_libdir) install", which would then install the libraries in the appropriate directories.

Let me know if you need more information...
Comment 1 Mike Auty (RETIRED) gentoo-dev 2016-09-03 11:49:17 UTC
Created attachment 444888 [details]
Ebuild that adheres to FEATURES="multilib-strict"
Comment 2 Mike Auty (RETIRED) gentoo-dev 2016-09-03 12:28:30 UTC
Created attachment 444894 [details]
Ebuild that adheres to FEATURES="multilib-strict"

So a slight amendment.  The capstone.pc file has the old path unless the LIBDIRARCH is also passed to the make function.  This attachment includes the update.
Comment 3 Sergei Trofimovich (RETIRED) gentoo-dev 2016-09-03 14:02:50 UTC
I've pushed similar change as: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5917f76438cba881d0e8dbf8ccb1670b453ca0bb

While at it fixed CC handling and other friends.

Thank you!