public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Yaakov Selkowitz <yselkowitz@cygwin.com>
To: cygwin@cygwin.com
Subject: Re: Mingw pkg-config not working
Date: Mon, 06 Apr 2020 12:43:14 -0400	[thread overview]
Message-ID: <d3472ddccf51a09a317edc1e02f27e1467536b76.camel@cygwin.com> (raw)
In-Reply-To: <CADt9577VUAbaywvRUHqOjVyo4t=n+Sm__7Y3o9_LcrU7PRLVoA@mail.gmail.com>

On Sun, 2020-04-05 at 15:51 +0200, Carlo B. via Cygwin wrote:
> I wanted to report that I received a reply on the issue that I had opened here:
> 
> https://todo.sr.ht/~kaniini/pkgconf/10#comment-7894

Thanks for following up.

> The report has been closed and I got this reply:
> 
> "You should use a symlink instead of a wrapper script when using the
> personality feature."
> 
> I hope that somebody has understood what he means (posix is not
> exactly my primary platform) and it could be useful for fixing the
> issue.

Yes, that gave me the information I needed.  There is actually code
within pkgconf to automatically load $PREFIX.personality when called as
$PREFIX-pkg-config.  This requires a packaging change on our end, which
I'm incorporating into the latest release.

> Il giorno gio 26 mar 2020 alle ore 14:07 Carlo B.
> <carlo.bramini@gmail.com> ha scritto:
> > Hello,
> > I implemented the solution to this problem as a patch to
> > pkgconf.cygport as requested.
> > I attached small patch to this email, which resolved the troubles with
> > CMake and Meson.
> > I hope that you will find it useful and  some developers will gently
> > apply the correction to fix the issue.
> > 
> > Thank you very much for your time and your support.
> > Sincerely,
> > 
> > Carlo Bramini.
> > 
> > Il giorno sab 22 feb 2020 alle ore 18:47 Jon Turney
> > <jon.turney@dronecode.org.uk> ha scritto:
> > > On 20/02/2020 11:06, Carlo B. wrote:
> > > [...]
> > > > x86_64-w64-mingw32-pkg-config are emulated with a shell script, for
> > > > example the one for i686 is:
> > > > 
> > > > #!/bin/sh
> > > > exec pkgconf --personality=i686-w64-mingw32 $@
> > > > 
> > > > But while this solution mostly works when you exec it from the command
> > > > line, it makes impossible to detect the presence of the tool from
> > > > meson and cmake build systems.
> > > > If you try to do this on the bash prompt, you get:
> > > > 
> > > > $ i686-w64-mingw32-pkg-config --version
> > > > pkgconf: --version specified with other options or module names,
> > > > assuming --modversion.
> > > > Please specify at least one package name on the command line.
> > > > 
> > > > and this is exactly what happens with those build systems (and perhaps
> > > > others, I don't know): it tries to call pkg-config with "--version"
> > > > and it executes the above script that calls pkgconf. But sadly, the
> > > > presence of the "--personality" option makes the process to fail,
> > > > because the "--version" is currently allowed only when no other
> > > > options are added.
> > > > And, for this reason, meson and cmake fail the detection of the tool.
> > > > 
> > > > I have also filed an issue here for pkgconf:
> > > > https://todo.sr.ht/~kaniini/pkgconf/10
> > > > because the solution is actually to ignore the presence of the
> > > > "--personality" option when the "--version" is written, but
> > > > unfortunately I have not received any feedback.
> > > > 
> > > > So, I'm also writing here, with the hope that you could find a solution.
> > > [...]
> > > 
> > > Thanks for reporting this issue.
> > > 
> > > I guess the alternative to fixing pkgconf would be to modify those
> > > wrapper scripts to detect when the parameters are just '--version' (or
> > > equivalent) and not use --personality in that case?
> > > 
> > > These wrapper scripts are specific to cygwin (generated by the cygport,
> > > see [1])
> > > 
> > > It's possible other distros have more sophisticated wrapper scripts,
> > > which avoid this problem?
> > > 
> > > If you do write or discover some improved wrapper scripts, a patch to
> > > [1] to update them would be appreciated.
> > > 
> > > [1]
> > > https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/pkgconf.git;a=blob;f=pkgconf.cygport#l84

--
Yaakov



  reply	other threads:[~2020-04-06 16:43 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-20 11:06 Carlo B.
2020-02-22 17:47 ` Jon Turney
2020-02-27 16:20   ` Carlo B.
2020-03-26 13:07   ` Carlo B.
2020-04-05 13:51     ` Carlo B.
2020-04-06 16:43       ` Yaakov Selkowitz [this message]
2020-04-08 19:46         ` Carlo B.

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=d3472ddccf51a09a317edc1e02f27e1467536b76.camel@cygwin.com \
    --to=yselkowitz@cygwin.com \
    --cc=cygwin@cygwin.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).