ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Michael Shigorin <mike@osdn.org.ua>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] Q: pkg-config: Requires.private == Requires?
Date: Tue, 2 Nov 2010 18:29:05 +0200
Message-ID: <20101102162904.GQ21965@osdn.org.ua> (raw)
In-Reply-To: <20101102001441.GA3718@altlinux.org>

On Tue, Nov 02, 2010 at 03:14:41AM +0300, Dmitry V. Levin wrote:
> К сожалению, из-за тупых fdoшников пострадают нормальные
> пакеты, которые используют Requires.private именно для
> зависимостей статической линковки.

Может, попытаться выпрямить fdo'шников?  Ну там, рулесы им
процитировать?  На #freedesktop сослались на pkg-config FAQ
и предложили для начала выяснить в pkg-config@l.fd.o:

<gvy> hi folks, does "broken Requires.private" bell any rings to
      anyone?  lots of fd.o software has broken pkgconfig files
      using that instead of Libs.private as our (ALT Linux)
      builsystem folks say
<nchauvet> gvy, Requires.private isn't a strict pkgconfig
	   equivalent of Libs.private IIRC, the thing is that
	   this option still might not be well documented still.
	   But for example Requires.private also affect CFLAGS of
	   shared libraries.
<gvy> nchauvet, thx, I'll forward
<gvy> nchauvet, btw it was further recommended for the packagers
      to contemplate options like replacing "Requires.private:
      libsepol" with "Libs.private: -lsepol" (for libselinux.pc)
<alanc> I know the alt Linux guys have been whining that the new
	Xorg releases follow the Requires.private recommendations
	from the pkg-config FAQ, because that's not the way they
	want to use them
<gvy> hm
<alanc> but I haven't seen them follow our suggestion to take it
	to the pkg-config mailing list so the maintainers like
	Mithrandir can respond
<jcristau> i haven't quite understood what their problem was in
           the first place
<gvy> well currently we have the choice of:
<alanc> changing Requires.private to Libs.private like that seems
	like going backwards though, since you lose the
	inheritance of the required -I & -L flags from the other
	.pc files
<gvy> - autoignoring Requires.private (thus breaking static builds);
<gvy> - pulling in extra junk for non-static builds (which would
        be !junk for static ones);
<gvy> - doing the replacement on a per package basis
<nchauvet> gvy, autoignoring requires.private also break shared
           build when private 'headers' are involved
* alanc is tempted to call "breaking static linking" a feature,
  but then I'm well past 1980 in my library linking usage
<nchauvet> private =/= static library
<gvy> :-)
<jcristau> pulling in possibly unnneeded stuff for builds doesn't
           seem all that terrible
<gvy> nchauvet, /me's not a toolchain expert by any means, rather
      trying to build up communication where it seems lacking
<nchauvet> gvy, you might fall into on my only contrib to the
           pkgconfig mailing list, then
<gvy> er? :)
<gvy> for a bit of context, ALT widely uses autogenerated package
      dependencies
<gvy> both build-time via stracing the build and then mapping
      fopens into package/soname buildrequires
<gvy> and runtime via builroot analysis
<gvy> there is also quite a notion that starting to pull in
      possibly unneeded stuff is a regression
<alanc> hah!   the complaint we got was because we moved unneeded
        stuff out of Requires
<alanc> or rather, libraries that applications didn't need to
        directly link against
<jcristau> it sounded like their pkg-config was broken and
           ignoring .private fields when it shouldn't have
<gvy> hm, could you please remember who (or where) was that so
      that I don't duplicate the effort (presumably poorly) and
      spend everyone's time?
<jcristau> https://bugs.freedesktop.org/show_bug.cgi?id=31267
<jcristau> but as was said there, this should be taken to the
           pkg-config mailing list, not on an xorg bug
<gvy> thx
<gvy> ah, so I was duplicating ldv@ himself (btw he's a gcc/glibc
      hacker iirc and not exactly prone to whining)
<gvy> thanks, guys

(и кстати, "с таким настроением ты слона не продашь" --
в смысле что все козлы и не понимают очевидных вещей)

> Мейнтейнерам придётся самим решать, что с этим делать.
> Простых варианта два:
> - выкинуть Requires.private, поскольку статическая линковка это экзотика;

Годится, если и так нет devel-static; вообще это менее экзотика,
чем кажется в аквариуме с сизифами.  Припомни, что каждый раз,
как порывались её закопать -- приходили грамотные люди вроде
morozov@ и терпеливо объясняли, почему это была плохая идея.

> - добавить мусор в сборочные зависимости, после чего этот мусор попадет в
>   зависимости собранных devel-пакетов.

BR?  Этот вариант зацепляет по большей части hasher'ы, так?

> Есть и более сложные варианты.  На примере того же
> libselinux.pc, можно заменить Requires.private: libsepol
> на Libs.private: -lsepol
> 
> Тогда и зависимостей лишних не будет, и статическая линковка не сломается.

PS: также стоило сослаться на соответствующий апстримный баг:
https://bugs.freedesktop.org/show_bug.cgi?id=31267

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


  reply	other threads:[~2010-11-02 16:29 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-31 21:37 ` Dmitry V. Levin
2010-11-01  8:10   ` Alexey I. Froloff
2010-11-01  8:57   ` Konstantin Pavlov
2010-11-01  9:17   ` sbolshakov
2010-11-01  9:32   ` Dmitry V. Levin
2010-11-01  9:51     ` Valery V. Inozemtsev
2010-11-02  0:14       ` Dmitry V. Levin
2010-11-02 16:29         ` Michael Shigorin [this message]
2010-11-02 16:41           ` Dmitry V. Levin

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=20101102162904.GQ21965@osdn.org.ua \
    --to=mike@osdn.org.ua \
    --cc=devel@lists.altlinux.org \
    /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

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git