All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2] package/pkgconf: fix behavior of pkg-config --version
Date: Wed, 2 Jan 2019 22:21:25 +0100	[thread overview]
Message-ID: <20190102212125.GO23435@scaer> (raw)
In-Reply-To: <20190102173639.30553-1-thomas.petazzoni@bootlin.com>

Thomas, All,

On 2019-01-02 18:36 +0100, Thomas Petazzoni spake thusly:
> For some odd reason, the new pkg-config 1.5.3 changed the behavior of
> "pkg-config --version": as soon as another argument than "--version"
> is passed, the code assumes the user wanted to run "--modversion"
> instead.
> 
> Sadly, this breaks badly with our pkg-config wrapper that
> unconditionally passes --static to pkg-config when
> BR2_STATIC_LIBS=y. When ffmpeg calls "pkg-config --version" to test if
> pkg-config is available and functional, it's actually "pkg-config
> --static --version" that gets executed. pkg-config assumes that the
> user wanted to use --modversion and bails out with an error.
> 
> This causes a build failure of ffmpeg in BR2_STATIC_LIBS=y
> configuration.
> 
> This misbehavior of pkg-config has been reported upstream at
> https://git.dereferenced.org/pkgconf/pkgconf/issues/19, but until it
> gets fixed, we work around the issue by reverting the commit that does
> the "hey let's assume you're using --modversion if --version is passed
> with more than one argument".
> 
> Fixes:
> 
>   http://autobuild.buildroot.net/results/ed82a95e1866ea2caadbb3433b2a255b2cf621d2/
>   (and plenty of other ffmpeg + BR2_STATIC_LIBS=y build failures)
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

This is idneed a revert of the upstream commit, as suggested, so:

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> ---
> Changes since v1:
> - Revert the problematic upstream commit instead of doing a workaround
>   specific to the -static option.
> ---
>  ...me-modversion-insted-of-version-if-o.patch | 45 +++++++++++++++++++
>  1 file changed, 45 insertions(+)
>  create mode 100644 package/pkgconf/0002-Revert-main-assume-modversion-insted-of-version-if-o.patch
> 
> diff --git a/package/pkgconf/0002-Revert-main-assume-modversion-insted-of-version-if-o.patch b/package/pkgconf/0002-Revert-main-assume-modversion-insted-of-version-if-o.patch
> new file mode 100644
> index 0000000000..e79bea93a5
> --- /dev/null
> +++ b/package/pkgconf/0002-Revert-main-assume-modversion-insted-of-version-if-o.patch
> @@ -0,0 +1,45 @@
> +From 4ccef40918a539905a2951bfb81cf8dba4a245c6 Mon Sep 17 00:00:00 2001
> +From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> +Date: Wed, 2 Jan 2019 18:15:50 +0100
> +Subject: [PATCH] Revert "main: assume --modversion insted of --version if
> + other flags or module names are provided"
> +
> +This reverts commit 12a0eb124cea85586e57f33c91a1e4c73459eef6, as it
> +causes pkg-config to assume --modversion is used when something as
> +simple as 'pkg-config --static --version' is used, leading to a
> +failure instead of the expected behavior: the one of "pkg-config
> +--version".
> +
> +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> +---
> + cli/main.c | 14 ++------------
> + 1 file changed, 2 insertions(+), 12 deletions(-)
> +
> +diff --git a/cli/main.c b/cli/main.c
> +index b52cc85..c5acc10 100644
> +--- a/cli/main.c
> ++++ b/cli/main.c
> +@@ -955,18 +955,8 @@ main(int argc, char *argv[])
> + 
> + 	if ((want_flags & PKG_VERSION) == PKG_VERSION)
> + 	{
> +-		if (argc > 2)
> +-		{
> +-			fprintf(stderr, "%s: --version specified with other options or module names, assuming --modversion.\n", argv[0]);
> +-
> +-			want_flags &= ~PKG_VERSION;
> +-			want_flags |= PKG_MODVERSION;
> +-		}
> +-		else
> +-		{
> +-			version();
> +-			return EXIT_SUCCESS;
> +-		}
> ++		version();
> ++		return EXIT_SUCCESS;
> + 	}
> + 
> + 	if ((want_flags & PKG_HELP) == PKG_HELP)
> +-- 
> +2.20.1
> +
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2019-01-02 21:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-02 17:36 [Buildroot] [PATCH v2] package/pkgconf: fix behavior of pkg-config --version Thomas Petazzoni
2019-01-02 21:21 ` Yann E. MORIN [this message]
2019-01-03 21:04 ` Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190102212125.GO23435@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.