From owner-freebsd-ports@FreeBSD.ORG Wed Feb 4 13:11:33 2009 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 156241065670 for ; Wed, 4 Feb 2009 13:11:33 +0000 (UTC) (envelope-from alex-goncharov@comcast.net) Received: from QMTA09.westchester.pa.mail.comcast.net (qmta09.westchester.pa.mail.comcast.net [76.96.62.96]) by mx1.freebsd.org (Postfix) with ESMTP id B203B8FC0A for ; Wed, 4 Feb 2009 13:11:32 +0000 (UTC) (envelope-from alex-goncharov@comcast.net) Received: from OMTA11.westchester.pa.mail.comcast.net ([76.96.62.36]) by QMTA09.westchester.pa.mail.comcast.net with comcast id BnjM1b0010mv7h059pBZEj; Wed, 04 Feb 2009 13:11:33 +0000 Received: from daland.home ([24.34.211.11]) by OMTA11.westchester.pa.mail.comcast.net with comcast id BpBY1b0040FJTGg3XpBYVB; Wed, 04 Feb 2009 13:11:33 +0000 Received: from algo by daland.home with local (Exim 4.69 (FreeBSD)) (envelope-from ) id 1LUhXO-0000cF-PB; Wed, 04 Feb 2009 08:11:30 -0500 From: Alex Goncharov To: Alexander Leidinger In-reply-to: <20090204083740.12061iw6kf4c9vwg@webmail.leidinger.net> (message from Alexander Leidinger on Wed, 04 Feb 2009 08:37:40 +0100) References: <20090204083740.12061iw6kf4c9vwg@webmail.leidinger.net> Message-Id: Sender: Alex Goncharov Date: Wed, 04 Feb 2009 08:11:30 -0500 Cc: mezz7@cox.net, freebsd-ports@freebsd.org, flz@freebsd.org, alex-goncharov@comcast.net Subject: Re: X drivers depend on Gnome? X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Alex Goncharov List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 13:11:33 -0000 ,--- 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@comcast.net --