* [devel] Q: pkg-config: Requires.private == Requires? @ 2010-10-31 21:37 ` Dmitry V. Levin 2010-11-01 8:10 ` Alexey I. Froloff ` (3 more replies) 0 siblings, 4 replies; 9+ messages in thread From: Dmitry V. Levin @ 2010-10-31 21:37 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 1124 bytes --] On Sun, Oct 31, 2010 at 01:44:42PM +0300, Girar Builder robot wrote: > http://git.altlinux.org/tasks/archive/done/_30/31696/task/log.2.2 В результате этого изменения (а именно, благодаря коммиту libXft-2.1.14-16-g8751e34) у пакета libXft-devel пропали зависимости на pkgconfig(fontconfig) pkgconfig(freetype2) pkgconfig(xrender) и сломалась сборка более 70 пакетов в Сизифе. Согласно документации в pkg-config(1) (см. http://cgit.freedesktop.org/pkg-config/tree/pkg-config.1) в Requires.private записываются только те зависимости, которые нужны именно для статической линковки. К сожалению, в fdo-пакетах это правило грубо нарушается. Из-за массового переноса зависимостей у fdo-пакетов из Requires в Requires.private происходит размывание разницы между Requires и Requires.private. У нас есть выбор из двух вариантов: - исправить все fdo-пакеты, в которых зависимости для динамической линковки Requires неправильно указаны как зависимости для сатической линковки Requires.private; - захакать pkg-config(1) с тем, чтобы приравнять Requires.private к Requires. Что скажете? -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: pkg-config: Requires.private == Requires? 2010-10-31 21:37 ` [devel] Q: pkg-config: Requires.private == Requires? Dmitry V. Levin @ 2010-11-01 8:10 ` Alexey I. Froloff 2010-11-01 8:57 ` Konstantin Pavlov ` (2 subsequent siblings) 3 siblings, 0 replies; 9+ messages in thread From: Alexey I. Froloff @ 2010-11-01 8:10 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 324 bytes --] On Mon, Nov 01, 2010 at 12:37:42AM +0300, Dmitry V. Levin wrote: > - исправить все fdo-пакеты, в которых зависимости для динамической > линковки Requires неправильно указаны как зависимости для сатической > линковки Requires.private; +1 -- Regards, -- Sir Raorn. --- http://thousandsofhate.blogspot.com/ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: pkg-config: Requires.private == Requires? 2010-10-31 21:37 ` [devel] Q: pkg-config: Requires.private == Requires? 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 3 siblings, 0 replies; 9+ messages in thread From: Konstantin Pavlov @ 2010-11-01 8:57 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 281 bytes --] On Mon, Nov 01, 2010 at 12:37:42AM +0300, Dmitry V. Levin wrote: > - захакать pkg-config(1) с тем, чтобы приравнять Requires.private к > Requires. Такое делать нельзя. -- Ваша версия BTE устанавливает пакеты с правами root'а, что есть insecure. -- ldv in devel@ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: pkg-config: Requires.private == Requires? 2010-10-31 21:37 ` [devel] Q: pkg-config: Requires.private == Requires? 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 3 siblings, 0 replies; 9+ messages in thread From: sbolshakov @ 2010-11-01 9:17 UTC (permalink / raw) To: devel >>>>> "Dmitry" == Dmitry V Levin <ldv-u2l5PoMzF/Vg9hUCZPvPmw@public.gmane.org> writes: [skipped] > Из-за массового переноса зависимостей у fdo-пакетов из Requires > в Requires.private происходит размывание разницы между Requires и > Requires.private. У нас есть выбор из двух вариантов: > - исправить все fdo-пакеты, в которых зависимости для динамической > линковки Requires неправильно указаны как зависимости для сатической > линковки Requires.private; > - захакать pkg-config(1) с тем, чтобы приравнять Requires.private к > Requires. Видимо первое, поскольку второе выглядит совсем, эээ, своеобразно. -- ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: pkg-config: Requires.private == Requires? 2010-10-31 21:37 ` [devel] Q: pkg-config: Requires.private == Requires? Dmitry V. Levin ` (2 preceding siblings ...) 2010-11-01 9:17 ` sbolshakov @ 2010-11-01 9:32 ` Dmitry V. Levin 2010-11-01 9:51 ` Valery V. Inozemtsev 3 siblings, 1 reply; 9+ messages in thread From: Dmitry V. Levin @ 2010-11-01 9:32 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 779 bytes --] On Mon, Nov 01, 2010 at 12:37:42AM +0300, Dmitry V. Levin wrote: > У нас есть выбор из двух вариантов: > - исправить все fdo-пакеты, в которых зависимости для динамической > линковки Requires неправильно указаны как зависимости для сатической > линковки Requires.private; > - захакать pkg-config(1) с тем, чтобы приравнять Requires.private к > Requires. После обсуждения с fdoшниками, которые не хотят идти по первому варианту, склоняюсь ко второму. Только pkg-config(1) я трогать не буду, даже наоборот, откачу часть ALT-специфики в pkg-config с тем, чтобы pkg-config --cflags использовал Requires.private, как у всех. :( 2shrek: Валера, готовься к слепой пересборке всей этой пачки пакетов после того, как в Сизиф приедет новый rpm-build. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: pkg-config: Requires.private == Requires? 2010-11-01 9:32 ` Dmitry V. Levin @ 2010-11-01 9:51 ` Valery V. Inozemtsev 2010-11-02 0:14 ` Dmitry V. Levin 0 siblings, 1 reply; 9+ messages in thread From: Valery V. Inozemtsev @ 2010-11-01 9:51 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 1372 bytes --] В Пнд, 01/11/2010 в 12:32 +0300, Dmitry V. Levin пишет: > On Mon, Nov 01, 2010 at 12:37:42AM +0300, Dmitry V. Levin wrote: > > У нас есть выбор из двух вариантов: > > - исправить все fdo-пакеты, в которых зависимости для динамической > > линковки Requires неправильно указаны как зависимости для сатической > > линковки Requires.private; > > - захакать pkg-config(1) с тем, чтобы приравнять Requires.private к > > Requires. > > После обсуждения с fdoшниками, которые не хотят идти по первому варианту, > склоняюсь ко второму. Только pkg-config(1) я трогать не буду, даже > наоборот, откачу часть ALT-специфики в pkg-config с тем, чтобы > pkg-config --cflags использовал Requires.private, как у всех. :( > > 2shrek: Валера, готовься к слепой пересборке всей этой пачки пакетов > после того, как в Сизиф приедет новый rpm-build. а я уж собрался фиксить .pc файлы. ждем-с -- Valery V. Inozemtsev [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: pkg-config: Requires.private == Requires? 2010-11-01 9:51 ` Valery V. Inozemtsev @ 2010-11-02 0:14 ` Dmitry V. Levin 2010-11-02 16:29 ` Michael Shigorin 0 siblings, 1 reply; 9+ messages in thread From: Dmitry V. Levin @ 2010-11-02 0:14 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 3048 bytes --] On Mon, Nov 01, 2010 at 12:51:55PM +0300, Valery V. Inozemtsev wrote: > а я уж собрался фиксить .pc файлы. ждем-с В Сизифе обнаружилось 105 с нетривиальным Requires.private: ORBit2-devel libGConf-devel libGL-devel libGLUT-devel libGLw-devel libSM-devel libX11-devel libXScrnSaver-devel libXaw-devel libXcomposite-devel libXcursor-devel libXdamage-devel libXevie-devel libXext-devel libXfixes-devel libXfont-devel libXft-devel libXi-devel libXinerama-devel libXmu-devel libXp-devel libXrandr-devel libXrender-devel libXres-devel libXt-devel libXtst-devel libXv-devel libXvMC-devel libXxf86dga-devel libXxf86misc-devel libXxf86vm-devel libass-devel libautotrace-devel libavahi-gobject-devel libavahi-qt3-devel libavahi-qt4-devel libavcodec-devel libavcore-devel libavdevice-devel libavfilter-devel libavformat-devel libblkid-devel libbonoboui-devel libcairo-devel libchamplain-devel libcheese-devel libdevhelp-devel libdevmapper-devel libdevmapper-event-devel libdmx-devel libdrm-devel libdvdnav-devel libe2fs-devel libecore-devel libedbus-devel libedje-devel libeet-devel libeeze-devel libefreet-devel libelementary-devel libesd-devel libevas-devel libftgl213-devel libgnome-bluetooth-devel libgnome-devel libgnomecanvas-devel libgnomeoffice-devel libgnomeoffice-light-devel libgnomeui-devel libgssdp-devel libgtksourceview-devel libgucharmap-devel libgupnp-devel libgweather-devel libldb-devel liblvm2-devel libmount-devel libpcre-devel libpoppler-cpp-devel libpoppler-glib-devel libpoppler-qt-devel libpoppler-qt4-devel libpowersave-devel libredland-devel libselinux-devel libsemanage-devel libslab-devel libsoup-devel libss-devel libswscale-devel libtelepathy-farsight-devel libtelepathy-glib-devel libtotem-pl-parser-devel libupower-devel libv4l-devel libvdpau-devel libwnck-devel libxcb-devel libxkbfile-devel libxprintutil-devel python-module-pygobject-devel rhythmbox-devel rygel-devel tracker-devel xorg-sdk Все эти пакеты при очередной сборке получат больше зависимостей, чем они имеют сейчас. Многие из них не соберутся из-за того, что сейчас требуемых зависимостей нет в сборочных средах этих пакетов. К сожалению, из-за тупых fdoшников пострадают нормальные пакеты, которые используют Requires.private именно для зависимостей статической линковки. Например, $ grep ^Req libselinux.pc Requires.private: libsepol Как известно, для компиляции и нестатической линковки с libselinux никакой libsepol не нужен. Мейнтейнерам придётся самим решать, что с этим делать. Простых варианта два: - выкинуть Requires.private, поскольку статическая линковка это экзотика; - добавить мусор в сборочные зависимости, после чего этот мусор попадет в зависимости собранных devel-пакетов. Есть и более сложные варианты. На примере того же libselinux.pc, можно заменить Requires.private: libsepol на Libs.private: -lsepol Тогда и зависимостей лишних не будет, и статическая линковка не сломается. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: pkg-config: Requires.private == Requires? 2010-11-02 0:14 ` Dmitry V. Levin @ 2010-11-02 16:29 ` Michael Shigorin 2010-11-02 16:41 ` Dmitry V. Levin 0 siblings, 1 reply; 9+ messages in thread From: Michael Shigorin @ 2010-11-02 16:29 UTC (permalink / raw) To: ALT Devel discussion list 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/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: pkg-config: Requires.private == Requires? 2010-11-02 16:29 ` Michael Shigorin @ 2010-11-02 16:41 ` Dmitry V. Levin 0 siblings, 0 replies; 9+ messages in thread From: Dmitry V. Levin @ 2010-11-02 16:41 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 1480 bytes --] On Tue, Nov 02, 2010 at 06:29:05PM +0200, Michael Shigorin wrote: > 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: [...] > (и кстати, "с таким настроением ты слона не продашь" -- > в смысле что все козлы и не понимают очевидных вещей) К сожалению, нынешняя архитектура pkg-config не позволяет сделать так, чтобы и волки были сыты, и овцы целы. Сейчас pkg-config поддерживает два типа описания зависимостей (Requires и Requires.private) для трех типов зависимостей: зависимости компиляции, зависимости динамической линковки и зависимости статической линковки. В случае, когда у пакета все три типа зависимостей разные, нынешний pkg-config не годится для их описания, и один из типов зависимостей приходится приносить в жертву, используя Requires.private либо для указания зависимостей статической линковки (как было раньше), либо для зависимостей компиляции (как сделали недавно в fdo). Т.е. Requires.private нужно распилить на Requires.compile и Requires.static, и с этим действительно нужно идти в pkg-config@l.fd.o, но это дело долгое, и на это у меня сейчас нет времени. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-11-02 16:41 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2010-10-31 21:37 ` [devel] Q: pkg-config: Requires.private == Requires? 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 2010-11-02 16:41 ` Dmitry V. Levin
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