Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 556696 - Unable to merge binary due to old/unused use flags being set
Summary: Unable to merge binary due to old/unused use flags being set
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-04 22:42 UTC by William L. Thomson Jr.
Modified: 2015-08-04 23:53 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description William L. Thomson Jr. 2015-08-04 22:42:19 UTC
This is an odd one, I think my summary covers the issue. I was working on the Firebird 3 ebuild. I have my system set to make binaries. I had a use flag set that the new ebuild no longer uses, or has. As a result of having that flag set during compile, I am unable to use the resulting binary.

dev ~ # emerge -pkv firebird

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-db/firebird-3.0.0.31896_beta2::wlt  USE="(-client) -debug -doc -examples -xinetd (-superserver%*)" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

!!! The following binary packages have been ignored due to non matching USE:

    =dev-db/firebird-3.0.0.31896_beta2 superserver

You can see the superserver USE flag is the issue. The firebird 3.x ebuild will no longer have that USE flag. However the package thinks it was built with that useflag or set in the env, which it was. Because of such, I cannot merge the binary, even though its not using that USE flag at all. The USE flag is not present in the Firebird 3 ebuild.

It seems to me that it should just merge the binary package regardless of USE flags. Given that the ebuild does not contain that use flag. I guess it could happen for any package, if you set a use flag, that is dropped or is not valid. I can see this mattering for USE flags that exist, but not so much for ones that do not in the ebuild.

In this case it should just ingore that the env had the superserver USE flag set for firebird. The ebuild does not have that USE flag. Thus any set in the env not in the ebuild should just be ignored and not prevent merge of the binary package.

After all I cannot even merge the binary on the very system it was made on. With any combinations of USE flags. The resulting binary is essentially useless due to the set unused USE flag.
Comment 1 William L. Thomson Jr. 2015-08-04 23:15:40 UTC
That flag being set on the system the binary is built on that causes the issue. Once I removed the superserver flag from the env. Merging on systems that still have that flag set now works. But as previously mentioned, I could not re-emerge the binary on the very same system it was built on, when the unused USE flag was set.


ws wlt # emerge -pkv firebird

These are the packages that would be merged, in order:

Calculating dependencies... done!
[binary     U  ] dev-db/firebird-3.0.0.31896_beta2::wlt [2.5.3.26780.0-r1::gentoo] USE="(-client) -debug -doc -examples -xinetd (-superserver%*)" 0 KiB

You can see superserver flag is still present in the env, but does not effect the binary from merging. Since the ebuild does not contain that use flag. Not sure why it screws up on the host system the package was built on. But I can now emerge the binary on the system it was built with, with or without that flag set. If I recompile again with the unused USE flag set, then I will not be able to use that binary on anything.
Comment 2 Alexandre Rostovtsev (RETIRED) gentoo-dev 2015-08-04 23:26:41 UTC
From my perspective, this is working as intended.

You are asking portage to install firebird without any enabled flags, but the only binary package you have is firebird with enabled superserver flag. Of course it's incompatible.

But let's see what portage developers think.
Comment 3 William L. Thomson Jr. 2015-08-04 23:37:31 UTC
No, I am saying portage should only care about USE flags that exist in an ebuild. Ones that may be in the env left over from older versions of ebuilds, dropped USE flags, should not have any effect. I am not suggesting it should ignore USE flags that exist in an ebuild. This has to do with dropped USE flags.

It could be any package really, and I have many binary packages. This was just an example of a USE flag being dropped, and how portage handles that with binary packages.
Comment 4 William L. Thomson Jr. 2015-08-04 23:44:39 UTC
This might have happened, when I still had a revision of the ebuild with the USE flag. Between a bunch of re-emerging working on the ebuild, might have not re-emerged after edit of removing USE flags. I am checking on that now, and will see about closing as invalid if I confirm that to be the case. I have to recompile with USE flag set and then check the binary. Which I am doing now, and will follow up ASAP.
Comment 5 William L. Thomson Jr. 2015-08-04 23:53:33 UTC
Looks like that was the case. Though even now after a few merges back to back, finally the use flag no longer shows, though set in env. Seems it was retained a bit after being dropped from ebuild.

superserver USE flag set

dev ~ # emerge -pkv firebird         

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-db/firebird-3.0.0.31896_beta2::wlt  USE="(-client) -debug -doc -examples -xinetd (-superserver%*)" 0 KiB

Rebuild package,

dev / # emerge -qv firebird

>>> Verifying ebuild manifests
>>> Emerging (1 of 1) dev-db/firebird-3.0.0.31896_beta2::wlt
>>> Installing (1 of 1) dev-db/firebird-3.0.0.31896_beta2::wlt


dev ~ # emerge -pkv firebird                   

These are the packages that would be merged, in order:

Calculating dependencies... done!
[binary   R    ] dev-db/firebird-3.0.0.31896_beta2::wlt  USE="(-client) -debug -doc -examples -xinetd (-superserver%*)" 0 KiB


Setting superserver USE flag not set
dev ~ # nano /etc/portage/package.use


dev ~ # emerge -pkv firebird         

These are the packages that would be merged, in order:

Calculating dependencies... done!
[binary   R    ] dev-db/firebird-3.0.0.31896_beta2::wlt  USE="(-client) -debug -doc -examples -xinetd (-superserver%*)" 0 KiB

dev ~ # emerge -qv firebird 

 * IMPORTANT: 8 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.

>>> Verifying ebuild manifests
>>> Emerging (1 of 1) dev-db/firebird-3.0.0.31896_beta2::wlt
>>> Installing (1 of 1) dev-db/firebird-3.0.0.31896_beta2::wlt


dev ~ # emerge -pkv firebird

These are the packages that would be merged, in order:

Calculating dependencies... done!
[binary   R    ] dev-db/firebird-3.0.0.31896_beta2::wlt  USE="(-client) -debug -doc -examples -xinetd" 0 KiB