Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dev-cpp/sourcetrail: Adjust openssl dependency #10777

Closed
wants to merge 1 commit into from
Closed

dev-cpp/sourcetrail: Adjust openssl dependency #10777

wants to merge 1 commit into from

Conversation

dhallas
Copy link
Contributor

@dhallas dhallas commented Jan 8, 2019

Adjust openssl dependency to handle slot depencies. The Sourcetrail
package is built agains openssl-1.0.1 so pinning it to
=dev-lib/openssl-1.0*:* should match the correct version.

Closes: https://bugs.gentoo.org/674788
Signed-off-by: David Hallas david@davidhallas.dk
Package-Manager: Portage-2.3.51, Repoman-2.3.11

@gentoo-bot
Copy link

Copyright policy change

Please note that on 2018-09-15 Trustees have approved new Gentoo copyright policy. All contributions made to Gentoo need to follow this policy. If you include the Signed-off-by line in your commit message, you indicate that you have read the policy and agree to its terms. For more detailed explanation, please see the new Gentoo copyright policy explained article.

Pull Request assignment

Submitter: @dhallas
Areas affected: ebuilds
Packages affected: dev-cpp/sourcetrail

dev-cpp/sourcetrail: @dhallas, @gentoo/proxy-maint

Linked bugs

Bugs linked: 674788


In order to force reassignment and/or bug reference scan, please append [please reassign] to the pull request title.

Docs: Code of ConductCopyright policy (expl.) ● DevmanualGitHub PRsProxy-maint guide

@gentoo-bot gentoo-bot added self-maintained The PR changes only packages that are maintained by the submitter (i.e. no need to ask anybody else) assigned PR successfully assigned to the package maintainer(s). bug linked Bug/Closes found in footer, and cross-linked with the PR. labels Jan 8, 2019
@@ -17,7 +17,7 @@ IUSE="examples selinux"
DEPEND="dev-util/patchelf"

RDEPEND="
dev-libs/openssl
=dev-libs/openssl-1.0*:*
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • :* slot operator is contradicting your version restriction
  • Instead of restricting to1.0, you should depend on the correct binary openssl slot
  • A change of RDEPEND requires revbump.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the feedback :)

I have adjusted the dependency to dev-libs/openssl:0 - I hope that is correct? I am not entirely sure how OpenSSL handles binary backwards compatibility, but I assume that any version within slot 0 is binary compatible? As I noted in the commit message, I can see from the binaries that the Sourcetrail package has been built against OpenSSL 1.0.1f.

Also, I haven't done a revbump before, so please let me know if I haven't done it correctly :)

Copy link
Member

@a17r a17r Jan 11, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

slot 0 is for source packages, while 1.0* versions would currently work for your package, slot 0 is already providing 1.1.0 and 1.1.1 as well. so if your binary package needs 1.0, depend on slot 1.0.0. Use eshowkw to get a good overview over available slots.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So would that mean that the ebuild should depend on:

=dev-libs/openssl:1.0.0

or would it be

=dev-libs/openssl-1.0.0*

or how would you express that dependency?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For depending on the slot, you use: dev-libs/openssl:1.0.0

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But now I get a huge list of blocked packages, it appears to be caused by dev-libs/openssl:1.0.0 and dev-libs/openssl:0 cannot be installed at the same time :/ This is far from optimal :) So what can I do to fix this?
If I do a grep -r 'dev-libs/openssl:[1-9]+' /usr/portage I don't see any mathes, so I am wondering what other binary packages are doing?
Looking at app-emulation/crossover-bin-17.5.1.ebuild the OpenSSL dependency is listed as dev-libs/openssl:0[abi_x86_32(-)] and for media-sound/spotify it is simply dev-libs/openssl:0

Any help is greatly appreciated

This is an extract of the blockers I see:

/usr/local/portage/dev-cpp/sourcetrail emerge -1 sourcetrail                       

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

Calculating dependencies       ... done!                 
[ebuild  NS   ~] dev-libs/openssl-1.0.2q-r200:1.0.0::gentoo [1.0.2q:0::gentoo] USE="asm sslv3 tls-heartbeat zlib -bindist -gmp -kerberos -rfc3779 -sctp -sslv2 -static-libs -test -vanilla" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="(sse2)" 0 KiB
[ebuild   R   ~] dev-cpp/sourcetrail-2018.3.55-r1::DavidsOverlay  USE="-examples (-selinux)" 0 KiB
[blocks B      ] =dev-libs/openssl-1.0.2*:0 ("=dev-libs/openssl-1.0.2*:0" is blocking dev-libs/openssl-1.0.2q-r200)

Total: 2 packages (1 in new slot, 1 reinstall), Size of downloads: 0 KiB
Conflict: 1 block (1 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (dev-libs/openssl-1.0.2q-r200:1.0.0/1.0.0::gentoo, ebuild scheduled for merge) pulled in by
    dev-libs/openssl:1.0.0 required by (dev-cpp/sourcetrail-2018.3.55-r1:0/0::DavidsOverlay, ebuild scheduled for merge)
    >=dev-libs/openssl-0.9.8:* required by (net-vpn/openvpn-2.4.6:0/0::gentoo, installed)

  (dev-libs/openssl-1.0.2q:0/0::gentoo, installed) pulled in by
    dev-libs/openssl:0/0= required by (dev-db/mariadb-10.1.37:0/18::gentoo, installed)
    dev-libs/openssl:0= required by (www-client/falkon-3.0.1:0/0::gentoo, installed)
    dev-libs/openssl:0/0= required by (dev-libs/libgit2-0.26.8:0/26::gentoo, installed)
    >=dev-libs/openssl-0.9.8:0= required by (dev-python/m2crypto-0.24.0:0/0::gentoo, installed)

Copy link
Member

@a17r a17r Jan 11, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But now I get a huge list of blocked packages, it appears to be caused by dev-libs/openssl:1.0.0 and dev-libs/openssl:0 cannot be installed at the same time :/ This is far from optimal :) So what can I do to fix this?

When you look closer it is not the slots that are conflicting, but of course dev-libs/openssl-1.0.2q-r200:1.0.0 needs to block =dev-libs/openssl-1.0.2*:0 which would install the same files. Other versions within slot 0 are fine.
The blocker happens because you only make a partial upgrade, and you are apparently coming from a stable system. But sourcetrail only has ~arch keywords, so it is perfectly fine to be blocking arch versions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick reply. But I am not sure I know how to fix this?
It is true I generally run a stable system, but I had to add =dev-libs/openssl-1.0.2q-r200 to package.keywords because there are no stable openssl for the 1.0.0 slot. I have tried adding =dev-libs/openssl-1.1.0j to package.keywords as well, and that removes most of the blockers, only leaving these:

[blocks B      ] >=dev-libs/openssl-1.1 (">=dev-libs/openssl-1.1" is blocking dev-db/mariadb-10.1.37)
[blocks B      ] >=dev-libs/openssl-1.1.0 (">=dev-libs/openssl-1.1.0" is blocking dev-db/mariadb-10.1.37)

And that blocker is probably caused by that version of mariadb not being compatible with openssl-1.1.

So why is it that openssl-1.0.2q-r200 doesn't fulfill the dev-libs/openssl:0 slot? I can see that it has the SLOT variable set to 1.0.0 and that is probably why, but how is this handled for other packages? It seems like it makes it very hard for users to install a consistent system :/

So, should I just update the pull request to change the RDEPEND line to dev-libs/openssl:1.0.0 just like you initially said, and then I will need to sort out how to make the package installable on my system?

Thanks for explaining these things :)

@Polynomial-C
Copy link
Contributor

Sorry guys but most of this discussion about the correct package slot is nonsense. Like I wrote in https://bugs.gentoo.org/674788, the best approach is =dev-libs/openssl-1.0*:* and no, this does not contradict the pinning to openssl-1.0 because this way users either get =dev-libs/openssl-1.0*:0 or =dev-libs/openssl-1.0*:1.0.0. There will never be other slots containing openssl-1.0 so this is the best approach to go with.

@dhallas
Copy link
Contributor Author

dhallas commented Jan 14, 2019

Sorry guys but most of this discussion about the correct package slot is nonsense. Like I wrote in https://bugs.gentoo.org/674788, the best approach is =dev-libs/openssl-1.0*:* and no, this does not contradict the pinning to openssl-1.0 because this way users either get =dev-libs/openssl-1.0*:0 or =dev-libs/openssl-1.0*:1.0.0. There will never be other slots containing openssl-1.0 so this is the best approach to go with.

Thanks for the reply, and sorry if I have misunderstood something, I am a new maintainer and I am really trying to understand how these things work :)

So should I just update the pull request to have =dev-libs/openssl-1.0*:* in RDEPEND and we are good to go?

Thanks for your feedback

@a17r
Copy link
Member

a17r commented Jan 23, 2019

Thanks for the reply, and sorry if I have misunderstood something, I am a new maintainer and I am really trying to understand how these things work :)

There are often >1 ways to do something, and Poly-C's advice is the most compatible even with mixed arch/~arch keywords. Some devs may mistake it for a misuse of :* though, and I like to be more explicit as well - package is just in ~arch and slot 1.0.0 will soon be the only place of the required .so anyway. Anyone looking at future version bumps will be clear about the necessary slot as well.

@dhallas
Copy link
Contributor Author

dhallas commented Jan 24, 2019

Thanks for the reply, and sorry if I have misunderstood something, I am a new maintainer and I am really trying to understand how these things work :)

There are often >1 ways to do something, and Poly-C's advice is the most compatible even with mixed arch/~arch keywords. Some devs may mistake it for a misuse of :* though, and I like to be more explicit as well - package is just in ~arch and slot 1.0.0 will soon be the only place of the required .so anyway. Anyone looking at future version bumps will be clear about the necessary slot as well.

Yes, I totally agree :)
So in order to move this PR forward, do I need to change anything? Or should it be merged as is?

@Polynomial-C
Copy link
Contributor

Please change the openssl dep back to =dev-libs/openssl-1.0*:*

@dhallas
Copy link
Contributor Author

dhallas commented Jan 24, 2019

Please change the openssl dep back to =dev-libs/openssl-1.0*:*

I have updated the commit with the requested changes. Let me know if there is anything else I need to do.

Copy link
Member

@a17r a17r left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your signoff is broken, please fix. Set it in make.conf and use repoman commit to avoid that headache.

Adjust openssl dependency to depend on =dev-libs/openssl-1.0*:*.
The Sourcetrail package is built agains openssl-1.0.1 so depending
on =dev-libs/openssl-1.0*:0 should match the correct version.

Closes: https://bugs.gentoo.org/674788
Package-Manager: Portage-2.3.51, Repoman-2.3.11
Signed-off-by: David Hallas <david@davidhallas.dk>
@dhallas
Copy link
Contributor Author

dhallas commented Feb 4, 2019

Your signoff is broken, please fix. Set it in make.conf and use repoman commit to avoid that headache.

Sorry about that ;)

I have fixed it now and I have set it in my make.conf so I don't make this typo again.

@gentoo-repo-qa-bot
Copy link
Collaborator

Pull request CI report

Report generated at: 2019-02-04 07:59 UTC
Newest commit scanned: 7efb8b0
Status: ✅ good

No issues found

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
assigned PR successfully assigned to the package maintainer(s). bug linked Bug/Closes found in footer, and cross-linked with the PR. self-maintained The PR changes only packages that are maintained by the submitter (i.e. no need to ask anybody else)
Projects
None yet
5 participants