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

net-libs/libmicrohttpd: add support for 'verify-sig' USE flag (alternative) #34994

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Karlson2k
Copy link
Contributor

@Karlson2k Karlson2k commented Jan 24, 2024

The PR adds support for verify-sig for libmicrohttpd.
The relevant "keys" package is added as well.

The upstream updates release signature keys from time to time. To support different keys for different versions, the slotting is implemented in the sec-keys/openpgp-keys-libmicrohttpd package.

This is an alternative implementation of PR #34772 as requested here.

Signed-off-by: Karlson2k (Evgeny Grin) <k2k@narod.ru>
Signed-off-by: Karlson2k (Evgeny Grin) <k2k@narod.ru>
@Karlson2k Karlson2k changed the title net-libs/libmicrohttpd: add support for 'verify-sig' USE flag net-libs/libmicrohttpd: add support for 'verify-sig' USE flag (alternative) Jan 24, 2024
@gentoo-bot
Copy link

Pull Request assignment

Submitter: @Karlson2k
Areas affected: ebuilds
Packages affected: net-libs/libmicrohttpd, sec-keys/openpgp-keys-libmicrohttpd

net-libs/libmicrohttpd: @Karlson2k, @gentoo/proxy-maint
sec-keys/openpgp-keys-libmicrohttpd: @gentoo/proxy-maint (new package)

Linked bugs

No bugs to link found. If your pull request references any of the Gentoo bug reports, please add appropriate GLEP 66 tags to the commit message and request reassignment.


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 new package The PR is adding a new package. 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). labels Jan 24, 2024
@Karlson2k
Copy link
Contributor Author

This implementation does not store the signing keys inside gentoo git. The keys are downloaded.

@gentoo-repo-qa-bot
Copy link
Collaborator

Pull request CI report

Report generated at: 2024-01-24 21:23 UTC
Newest commit scanned: 51a6749
Status: ✅ good

There are existing issues already. Please look into the report to make sure none of them affect the packages in question:
https://qa-reports.gentoo.org/output/gentoo-ci/a94918430e/output.html

S="${WORKDIR}"

LICENSE="public-domain"
SLOT="${PV}"
Copy link
Member

@mgorny mgorny Jan 25, 2024

Choose a reason for hiding this comment

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

How does this having a live version even remotely make sense, when you explicitly require a specific slot from the package?

Copy link
Contributor Author

@Karlson2k Karlson2k Jan 25, 2024

Choose a reason for hiding this comment

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

Sorry, I don't understand the question.

Live version resides always in the same slot number 999999 and the key in this slot matches the latest version of the libmicrohttpd package. The key could be changed, but should always match the current latest libmicrohttpd version. I don't see what's wrong with this combination.

I can remove this file from this PR if it is a problem.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The live version could be used simultaneously with other versions. That's why it has a slot.

Copy link
Member

Choose a reason for hiding this comment

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

But no version will ever use the live version because every version will need to depend on non-live version.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Except live versions, which could depend on live version of another package.
There are a lot of such packages in the tree, for example dev-util/pkgcheck or dev-util/pkgdev.

That's the idea of this keyring.

Copy link
Member

Choose a reason for hiding this comment

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

How are you going to use the live version of the keyring if live versions, quite obviously, don't come with signed release tarballs?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

To be precise:
I didn't want to implement the keychain for real "live" library version. Actually my idea was to provide a simple way to check whether the upstream keys changed (when signature would fail for the new release) or something wrong with downloaded file. It should be easy to quickly check the new library release against 9999 keys and if it succeed, update the openpgp-keys- package.
In practice I don't need this file as I would know how and when the upstream signature keys are updated. It is more for others who will need to update/use these keys in case if I would not update this ebuild for whatever reason.
So I can remove the 9999 version completely, add more comments explaining my idea to the ebuild or comment out "live" part in full (so someone would be able to restore/re-use it for the latest keyring download).

Please let me know what is the best way for you.

@Karlson2k
Copy link
Contributor Author

If it is a problem, I can remove the 9999 file. If needed, I can remove ebuild content for 9999 version. However, I think it's nice to have keyring version that it always valid for the latest upstream.

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). new package The PR is adding a new package. self-maintained The PR changes only packages that are maintained by the submitter (i.e. no need to ask anybody else)
Projects
None yet
4 participants