I am using metro to do stage4 builds and I follow the examples in the stage specs that export a USE with bindist. I get to the point of building net-dns/bind 9.9.3_p1 where it looks for use ssl to configure the compile with --with-ecdsa. It will fail, because it checks for openssl with ecdsa support, which it doesn't.
I was looking at the openssl ebuild and it looks like emerging it with -bindist would bring in ecdsa support. However, I don't see how this would be possible via metro. I don't explicitly list openssl. It gets emerged as a dependency in stage3 which exports a USE with bindist. Specifying -bindist in package.use doesn't help since the exported USE takes precedence.
I am looking for opinions about the correct way to handle this situation.
Here are some that I have thought of and I don't like any of them:
Remove bindist from the USE export in spec files.
Treat openssl as a special case in my custom stage4 spec so it builds with -bindist
Write a custom bind ebuild so that it uses --without-ecdsa
For the time being, I am going with option 3.
Last edited by fcano (2013-07-07 14:19:30)
this bindist issues can be fixed by setting "--deep --newuse" to emerge args, during stage3(4) building
in stage3 or stage4.spec:
export EMERGE_DEFAULT_OPTS="--deep --newuse"
Perhaps I should open a bug against the the bind ebuild then. The DEPEND on the ssl USE flag doesn't specify [-bindist]. If it did, I could see how the --deep --newuse would work.
I'll report back. Thanks for the quick reply.
Maybe I'm not thinking about this in the right way, but here is what I have tried.
In the bind ebuild, I added no bindist to the openssl dependency.
ssl? ( >=dev-libs/openssl-0.9.6g[-bindist] )
This worked for this package but it conflicted with the ebuild for ssh which has a condition for bindist which is still in effect via the exported USE environment variable. I didn't want to start going down a rabbit hole so it made more sense to modify the bind ebuild to have the same kind of enablement/disablement of ecsda according to the bindist use flag.
I reverted back to the original bind ebuild and added the following:
* Added bindist to the USE list.
* In src_configure, I added "--without-ecdsa" to myconf if bindist is set.
That made the most sense to me.