Re: [PATCH] Fix 'make coverage' when used with lcov version 2.0+

2024-05-09 Thread Frank Ch. Eigler
Hi -

> Well, even if it happened unintentionally, it was ignored just the same
> as if it happened on purpose.  I hope the technical reasons for that
> are now fixed, and won't cause any problems next time.

You have been in the open source community long enough to know that
emails sometimes just get lost.  It might happen again, and one one
should not take too much offence.

> Please note that elfutils is a community project, and the code in
> question was contributed a few years ago by myself, see commit
> 2a16a0fc7e353f8fcfc27a57710e008840297847.

Yes, however we both know that this does not mean that a maintainer is
required to affirmatively consult you (or anyone) on changes years
after its contribution.

> Frank, please reconsider your approach.  Your comments are [...]

I disagree.


- FChE



Re: [PATCH] Fix 'make coverage' when used with lcov version 2.0+

2024-05-09 Thread Dmitry V. Levin
Hi Frank,

On Thu, May 09, 2024 at 07:03:47PM -0400, Frank Ch. Eigler wrote:
> Hi -
> 
> > > > What's the purpose of sending proposed patches to the mailing list
> > > > if reviews are silently ignored?
> > > 
> > > Please be collegial and don't exaggerate.
> > 
> > The fact is that the review was silently ignored, which is, from my point
> > of view, an extraordinary event, 
> 
> The review *singular*.  And you can't know whether it was ignored, or
> never received or missed or considered.

Well, even if it happened unintentionally, it was ignored just the same
as if it happened on purpose.  I hope the technical reasons for that
are now fixed, and won't cause any problems next time.

> > [...] and request that the issue pointed out in the review to be
> > properly addressed.
> 
> May I suggest asking for that in a less accusatory and exaggerated
> fashion next time.  Note also that being "properly addressed" is up to
> the discretion of the maintainers - one of whom is Aaron.

Please note that elfutils is a community project, and the code in question
was contributed a few years ago by myself, see commit
2a16a0fc7e353f8fcfc27a57710e008840297847.
I'm glad the code duplication issue is now resolved.

Frank, please reconsider your approach.  Your comments are not just
unhelpful and unproductive, they can actually discourage contributors
which is the last thing one wants in a free software project.


-- 
ldv


Re: [COMMITTED] Makefile.am: Avoid code duplication

2024-05-09 Thread Dmitry V. Levin
On Thu, May 09, 2024 at 07:24:26PM -0400, Aaron Merey wrote:
> On Thu, May 9, 2024 at 6:59 PM Dmitry V. Levin  wrote:
> > On Thu, May 09, 2024 at 06:08:05PM -0400, Frank Ch. Eigler wrote:
> > > On Fri, May 10, 2024 at 12:53:39AM +0300, Dmitry V. Levin wrote:
> > > > > Pushed as commit ca8ad4648197
> > > >
> > > > What's the purpose of sending proposed patches to the mailing list
> > > > if reviews are silently ignored?
> > >
> > > Please be collegial and don't exaggerate.
> >
> > The fact is that the review was silently ignored, which is, from my point
> > of view, an extraordinary event, and I hereby raise the question why it
> > was ignored, and request that the issue pointed out in the review to be
> > properly addressed.
> 
> Apologies Dmitry, your review was mistakenly caught in my mail client's
> spam filter and I did not see it until now.
> 
> I agree that we can avoid some code duplication here. I'm going to push
> the following patch as obvious:
> 
> ---
>  Makefile.am | 33 ++---
>  1 file changed, 6 insertions(+), 27 deletions(-)
> 
> diff --git a/Makefile.am b/Makefile.am
> index a1f0b0c3..69af63ac 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -78,24 +78,16 @@ coverage: $(COVERAGE_OUTPUT_INDEX_HTML)
>   @echo 'file://$(abs_builddir)/$(COVERAGE_OUTPUT_INDEX_HTML)'
>  
>  if LCOV_OLD
> -$(COVERAGE_OUTPUT_INDEX_HTML): $(COVERAGE_OUTPUT_FILE)
> - LC_ALL=C $(GENHTML) \
> - --legend \
> - --show-details \
> - --rc=genhtml_branch_coverage=1 \
> - --title='$(COVERAGE_TITLE)' \
> - --prefix='$(abspath $(abs_srcdir))' \
> - --prefix='$(realpath $(abs_srcdir))' \
> - --prefix='$(abspath $(abs_builddir)/..)' \
> - --prefix='$(realpath $(abs_builddir)/..)' \
> - --output-directory='$(COVERAGE_OUTPUT_DIRECTORY)' \
> - $<
> +ignore_errors =
>  else
> +ignore_errors = --ignore-errors empty,negative
> +endif
> +
>  $(COVERAGE_OUTPUT_INDEX_HTML): $(COVERAGE_OUTPUT_FILE)
>   LC_ALL=C $(GENHTML) \
>   --legend \
>   --show-details \
> - --ignore-errors empty,negative \
> + $(ignore_errors) \
>   --rc=genhtml_branch_coverage=1 \
>   --title='$(COVERAGE_TITLE)' \
>   --prefix='$(abspath $(abs_srcdir))' \
> @@ -104,30 +96,17 @@ $(COVERAGE_OUTPUT_INDEX_HTML): $(COVERAGE_OUTPUT_FILE)
>   --prefix='$(realpath $(abs_builddir)/..)' \
>   --output-directory='$(COVERAGE_OUTPUT_DIRECTORY)' \
>   $<
> -endif
>  
> -if LCOV_OLD
>  $(COVERAGE_OUTPUT_FILE):
>   $(LCOV) \
>   --capture \
>   --no-external \
>   --no-checksum \
> + $(ignore_errors) \
>   --rc=lcov_branch_coverage=1 \
>   --gcov-tool='$(GCOV)' \
>   --output-file='$@' \
>   $(LCOV_DIRS_ARGS)
> -else
> -$(COVERAGE_OUTPUT_FILE):
> - $(LCOV) \
> - --capture \
> - --no-external \
> - --no-checksum \
> - --ignore-errors empty,negative \
> - --rc=lcov_branch_coverage=1 \
> - --gcov-tool='$(GCOV)' \
> - --output-file='$@' \
> - $(LCOV_DIRS_ARGS)
> -endif
>  endif
>  
>  # Tell version 3.79 and up of GNU make to not build goals in this

That's much better, thanks!


-- 
ldv


[COMMITTED] Makefile.am: Avoid code duplication

2024-05-09 Thread Aaron Merey
On Thu, May 9, 2024 at 6:59 PM Dmitry V. Levin  wrote:
>
> On Thu, May 09, 2024 at 06:08:05PM -0400, Frank Ch. Eigler wrote:
> > Hi -
> >
> > On Fri, May 10, 2024 at 12:53:39AM +0300, Dmitry V. Levin wrote:
> > > > Pushed as commit ca8ad4648197
> > >
> > > What's the purpose of sending proposed patches to the mailing list
> > > if reviews are silently ignored?
> >
> > Please be collegial and don't exaggerate.
>
> The fact is that the review was silently ignored, which is, from my point
> of view, an extraordinary event, and I hereby raise the question why it
> was ignored, and request that the issue pointed out in the review to be
> properly addressed.

Apologies Dmitry, your review was mistakenly caught in my mail client's
spam filter and I did not see it until now.

I agree that we can avoid some code duplication here. I'm going to push
the following patch as obvious:

---
 Makefile.am | 33 ++---
 1 file changed, 6 insertions(+), 27 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index a1f0b0c3..69af63ac 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -78,24 +78,16 @@ coverage: $(COVERAGE_OUTPUT_INDEX_HTML)
@echo 'file://$(abs_builddir)/$(COVERAGE_OUTPUT_INDEX_HTML)'
 
 if LCOV_OLD
-$(COVERAGE_OUTPUT_INDEX_HTML): $(COVERAGE_OUTPUT_FILE)
-   LC_ALL=C $(GENHTML) \
-   --legend \
-   --show-details \
-   --rc=genhtml_branch_coverage=1 \
-   --title='$(COVERAGE_TITLE)' \
-   --prefix='$(abspath $(abs_srcdir))' \
-   --prefix='$(realpath $(abs_srcdir))' \
-   --prefix='$(abspath $(abs_builddir)/..)' \
-   --prefix='$(realpath $(abs_builddir)/..)' \
-   --output-directory='$(COVERAGE_OUTPUT_DIRECTORY)' \
-   $<
+ignore_errors =
 else
+ignore_errors = --ignore-errors empty,negative
+endif
+
 $(COVERAGE_OUTPUT_INDEX_HTML): $(COVERAGE_OUTPUT_FILE)
LC_ALL=C $(GENHTML) \
--legend \
--show-details \
-   --ignore-errors empty,negative \
+   $(ignore_errors) \
--rc=genhtml_branch_coverage=1 \
--title='$(COVERAGE_TITLE)' \
--prefix='$(abspath $(abs_srcdir))' \
@@ -104,30 +96,17 @@ $(COVERAGE_OUTPUT_INDEX_HTML): $(COVERAGE_OUTPUT_FILE)
--prefix='$(realpath $(abs_builddir)/..)' \
--output-directory='$(COVERAGE_OUTPUT_DIRECTORY)' \
$<
-endif
 
-if LCOV_OLD
 $(COVERAGE_OUTPUT_FILE):
$(LCOV) \
--capture \
--no-external \
--no-checksum \
+   $(ignore_errors) \
--rc=lcov_branch_coverage=1 \
--gcov-tool='$(GCOV)' \
--output-file='$@' \
$(LCOV_DIRS_ARGS)
-else
-$(COVERAGE_OUTPUT_FILE):
-   $(LCOV) \
-   --capture \
-   --no-external \
-   --no-checksum \
-   --ignore-errors empty,negative \
-   --rc=lcov_branch_coverage=1 \
-   --gcov-tool='$(GCOV)' \
-   --output-file='$@' \
-   $(LCOV_DIRS_ARGS)
-endif
 endif
 
 # Tell version 3.79 and up of GNU make to not build goals in this
-- 
2.43.0



Re: [PATCH] Fix 'make coverage' when used with lcov version 2.0+

2024-05-09 Thread Frank Ch. Eigler
Hi -

> > > What's the purpose of sending proposed patches to the mailing list
> > > if reviews are silently ignored?
> > 
> > Please be collegial and don't exaggerate.
> 
> The fact is that the review was silently ignored, which is, from my point
> of view, an extraordinary event, 

The review *singular*.  And you can't know whether it was ignored, or
never received or missed or considered.

> [...] and request that the issue pointed out in the review to be
> properly addressed.

May I suggest asking for that in a less accusatory and exaggerated
fashion next time.  Note also that being "properly addressed" is up to
the discretion of the maintainers - one of whom is Aaron.

- FChE



Re: [PATCH] Fix 'make coverage' when used with lcov version 2.0+

2024-05-09 Thread Dmitry V. Levin
On Thu, May 09, 2024 at 06:08:05PM -0400, Frank Ch. Eigler wrote:
> Hi -
> 
> On Fri, May 10, 2024 at 12:53:39AM +0300, Dmitry V. Levin wrote:
> > > Pushed as commit ca8ad4648197
> > 
> > What's the purpose of sending proposed patches to the mailing list
> > if reviews are silently ignored?
> 
> Please be collegial and don't exaggerate.

The fact is that the review was silently ignored, which is, from my point
of view, an extraordinary event, and I hereby raise the question why it
was ignored, and request that the issue pointed out in the review to be
properly addressed.

Thanks,


-- 
ldv


Re: [PATCH] Fix 'make coverage' when used with lcov version 2.0+

2024-05-09 Thread Frank Ch. Eigler
Hi -

On Fri, May 10, 2024 at 12:53:39AM +0300, Dmitry V. Levin wrote:
> > Pushed as commit ca8ad4648197
> 
> What's the purpose of sending proposed patches to the mailing list
> if reviews are silently ignored?

Please be collegial and don't exaggerate.

- FChE



Re: [PATCH] Fix 'make coverage' when used with lcov version 2.0+

2024-05-09 Thread Dmitry V. Levin
On Wed, May 08, 2024 at 12:28:04PM -0400, Aaron Merey wrote:
> On Mon, May 6, 2024 at 4:45 PM Aaron Merey  wrote:
> >
> > Starting with version 2.0, various lcov warnings now trigger an error
> > exit.  This results in 'make coverage' terminating before completion.
> >
> > Fix this by invoking lcov and genhtml with --ignore-errors to prevent
> > the error exit when version 2.0+ is in use.
> >
> > Manually tested by running elfutils-htdocs/update-coverage.sh with
> > lcov 1.14 and 2.0.
> >
> > Signed-off-by: Aaron Merey 
> > ---
> >  Makefile.am  | 30 +-
> >  configure.ac |  4 
> >  2 files changed, 33 insertions(+), 1 deletion(-)
> 
> Pushed as commit ca8ad4648197

What's the purpose of sending proposed patches to the mailing list
if reviews are silently ignored?


-- 
ldv


Re: [rfc] [patch] PR28204: debuginfod ima signature verification

2024-05-09 Thread Aaron Merey
Hi Frank,

I've pointed out a couple nits below, but otherwise the patch LGTM.
I've also attached a diff for handling DEBUGINFOD_IMA_CERT_PATH in
profile.fish.in that should apply on top of this patch.

I know there's already been a lot of discussion re. ima:permissive and
I'm weighing in rather late, but FWIW I do support including it.
Currently individual ELF sections cannot be downloaded when
ima:enforcing is active.  With ima:permissive we could support proper
section queries while also being able to perform some amount of
ima verification.

On Tue, Apr 16, 2024 at 6:15 PM Frank Ch. Eigler  wrote:
>
> Hi -
>
> The following is the candidate patch for the basic functionality.
> It's been corrected for whitespace & error codes, given more complete
> docs and commit message.  See also the users/fche/try-bz2824f branch.
>
>
> debuginfod: PR28204 - RPM IMA per-file signature verification
>
> Recent versions of Fedora/RHEL include per-file cryptographic
> signatures in RPMs, not just an overall RPM signature.  This work
> extends debuginfod client & server to extract, transfer, and verify
> those signatures.  These allow clients to assure users that the
> downloaded files have not been corrupted since their original
> packaging.  Downloads that fail the test are rejected.
>
> Clients may select a desired level of enforcement for sets of URLs in
> the DEBUGINFOD_URLS by inserting special markers ahead of them:
>
> ima:ignore   pay no attention to absence or presence of signatures
> ima:enforcingrequire every file to be correctly signed
>
> The default is ima:ignore mode.  In ima:enforcing mode, section
> queries are forced to be entire-file downloads, as it is not
> possible to crypto-verify just sections.
>
> IMA signatures are verified against a set of signing certificates.
> These are normally published by distributions.  The environment
> variable $DEBUGINFOD_IMA_CERT_PATH contains a colon-separated path for
> finding DER or PEM formatted certificates / public keys.  These
> certificates are assumed trusted.  The profile.d scripts transcribe
> /etc/debuginfod/*.certdir files into that variable.
>
> As for implementation:
>
> * configure.ac: Add --enable-default-ima-cert-path=PATH parameter.
>   Check for libimaevm (using headers only).
>
> * config/Makefile.am: Install defaults into /etc files.
> * config/profile.{csh,sh}.in: Process defaults into env variables.
> * config/elfutils.spec.in: Add more buildrequires.
>
> * debuginfod/debuginfod.cxx (handle_buildid_r_match): Added extraction of 
> the
>   per-file IMA signature for the queried file and store in http header.
>   (find_globbed_koji_filepath): New function.
>   (parse_opt): New flag --koji-sigcache.
> * debuginfod/debuginfod-client.c (debuginfod_query_server): Added policy 
> for
>   validating IMA signatures
>   (debuginfod_validate_imasig): New function, with friends.
> * debuginfod/debuginfod.h.in: Added DEBUGINFOD_IMA_CERT_PATH_ENV_VAR.
> * debuginfod/Makefile.am: Add linker flags for rpm and crypto.
>
> * doc/debuginfod-client-config.7: Document DEBUGINFOD_IMA_CERT_PATH,
>   update DEBUGINFOD_URLS.
> * doc/debuginfod.8: Document --koji-sigcache.
> * doc/debuginfod-find.1, doc/debuginfod_find_debuginfo.3: Update SECURITY.
>
> * tests/run-debuginfod-ima-verification.sh: New test.
> * tests/debuginfod-ima: Some new files for the tests.
> * tests/Makefile.am: run/distribute them.
>
> Signed-off-by: Ryan Goldberg 
> Signed-off-by: Frank Ch. Eigler 
>
> diff --git a/config/Makefile.am b/config/Makefile.am
> index ae14e625b726..5a28e66d4408 100644
> --- a/config/Makefile.am
> +++ b/config/Makefile.am
> @@ -46,12 +46,16 @@ pkgconfig_DATA += libdebuginfod.pc
> if [ -n "@DEBUGINFOD_URLS@" ]; then \
> echo "@DEBUGINFOD_URLS@" > 
> $(DESTDIR)$(sysconfdir)/debuginfod/elfutils.urls; \
> fi
> +   if [ -n "@DEBUGINFOD_IMA_CERT_PATH@" ]; then \
> +   echo "@DEBUGINFOD_IMA_CERT_PATH@" > 
> $(DESTDIR)$(sysconfdir)/debuginfod/elfutils.certpath; \
> +   fi
>
>  uninstall-local:
> rm -f $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.sh
> rm -f $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.csh
> rm -f $(DESTDIR)$(datadir)/fish/vendor_conf.d/debuginfod.fish
> rm -f $(DESTDIR)$(sysconfdir)/debuginfod/elfutils.urls
> +   rm -f $(DESTDIR)$(sysconfdir)/debuginfod/elfutils.certpath
> -rmdir $(DESTDIR)$(sysconfdir)/debuginfod
>  endif
>
> diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
> index 4d802a25ad5f..460729972420 100644
> --- a/config/elfutils.spec.in
> +++ b/config/elfutils.spec.in
> @@ -43,6 +43,12 @@ BuildRequires: curl
>  # For run-debuginfod-response-headers.sh test case
>  BuildRequires: socat
>
> +# For debuginfod rpm IMA verification
> +BuildRequires: rpm-devel
>