X drivers depend on Gnome?

Alex Goncharov alex-goncharov at comcast.net
Wed Feb 4 05:11:33 PST 2009

,--- You/Alexander (Wed, 04 Feb 2009 08:37:40 +0100) ----*
| > ,--- You/Jeremy (Tue, 03 Feb 2009 17:19:12 -0600) ----*
| > | The pkg-config is not GNOME. Even the GTK+2 is not GNOME.
| > | I am VERY  surpised about that you are whining over it.
| >
| > In other words, you think that making base X11 blocks (such as drivers
| > and libxcb) depend on Gnome, per this definition in bsd.port.mk:
| >
| >     # USE_GNOME	- A list of the Gnome dependencies the port has (e.g.,
| >     #		glib12, gtk12).  Implies that the port needs Gnome.
| >     #		Implies inclusion of bsd.gnome.mk.  See bsd.gnome.mk
| >     #		or http://www.FreeBSD.org/gnome/docs/porting.html
| >     #		for more details.
| >
| > is the right thing, correct?

First off, thanks for your detailed reply and getting to the core of
my question (obviously, the size of pkg-config is not an issue.)

| To repeat what mezz said, the X stuff does not depend upon
| GNOME. The X stuff depends upon pkgconfig. pkgconfig is also used by
| GNOME. It's a little and useful infrastructure thing. With pkgconfig
| you can check if software Y is installed, which version it has,
| which include path you need to compile it, and which libs to link to
| if you want to use it in your software Z. All it does is to do "echo
| $libs" or "echo $includes" or similar. The benefit is that you as a
| author of software Y just need a little config file which lists
| everything, and pkgconfig is responsible for all the common tasks
| like version check and printing.  It also unifies the interface if
| you need to query for software.

To tell you the truth, I know what pkg-config does -- a very useful
tool, indeed.

| It originated in GNOME, but as it is small and light, it is used now
| in more or less everything. For example openssl uses it too (but
| unfortunately openssl in the FreeBSD base system does not install
| the corresponding config file), but this does not make openssl
| depend upon GNOME.

A perfect example -- you can see the difference in how X and openssl
approach this:

$ grep -i 'pkgconfig[^/]*$' Mk/bsd.openssl.mk Mk/bsd.port.post.mk Mk/bsd.xorg.mk security/openssl/Makefile x11-drivers/xf86-video-nv/Makefile| less
Mk/bsd.xorg.mk:# app - requires pkgconfig, don't install shared libraries (I guess)
Mk/bsd.xorg.mk:USE_GNOME+=      pkgconfig
Mk/bsd.xorg.mk:USE_GNOME+=      pkgconfig
Mk/bsd.xorg.mk:USE_GNOME+=      pkgconfig
Mk/bsd.xorg.mk:USE_GNOME+=      gnomehack pkgconfig
security/openssl/Makefile:              -e 's|lib/pkgconfig|libdata/pkgconfig|g' \

| It just looks to you like "GNOME" because the config variable in our
| ports infrastructure is spelled "USE_GNOME". This is for historical
| reasons, it could also be named "USE_INFRASTRUCTURE" (it
| automatically adds suitable BUILD_DEPENDS, RUN_DEPENDS and/or
| LIB_DEPENDS and additional stuff just by adding a keyword).

And this is my point -- change the make files appropriately.

While Gnome is great, many people don't use it and don't want to be
confused and be quietly dragged into Gnomedom.

The use of USE_ make file variable should conform to what bsd.port.mk
says, IMHO.
| pkgconfig could be extracted from the USE_GNOME stuff, and it could
| even maintained by someone else than the FreeBSD gnome team, but the
| FreeBSD gnome team is doing a good job at maintaining it, and
| there's no benefit in extracting pkgconfig from USE_GNOME.

I am not sure I agree with you -- but why would this matter, right?

| HTH,

Thanks a lot!

-- Alex -- alex-goncharov at comcast.net --

More information about the freebsd-ports mailing list