On Tue, Jun 15, 2010 at 1:03 PM, Gaetan Nadon <[email protected]> wrote: > Any module (drivers) depending on xserver also depends on some of the > server private dependencies. Any driver including xf86.h depends on > xext, kbproto, inputproto and randr. > > These dependencies are in separate packages, so anything can happen, > removal, wrong version, etc... and the driver fails during compilation. > Having the private dependencies declared will ensure all packages the > server depends on are present and at the correct version. > > Currently each module attempts to check for server dependencies with > various degrees of accuracy. With this patch, the driver will only need > to check for its own explicit dependencies. > > Now that xproto is included in Requires.private it is removed from Requires. > All the cflags from both Requires and Requires.private are returned > to caller to pkg-config. > > Signed-off-by: Gaetan Nadon <[email protected]> > --- > configure.ac | 9 ++++++++- > xorg-server.pc.in | 3 ++- > 2 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/configure.ac b/configure.ac > index 4ada8f5..bd644a2 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -793,9 +793,13 @@ WINDOWSWMPROTO="windowswmproto" > APPLEWMPROTO="applewmproto >= 1.4" > > dnl Core modules for most extensions, et al. > -REQUIRED_MODULES="[randrproto >= 1.2.99.3] [renderproto >= 0.11] [fixesproto > >= 4.1] [damageproto >= 1.1] [xcmiscproto >= 1.2.0] [xextproto >= 7.0.99.3] > [xproto >= 7.0.17] [xtrans >= 1.2.2] [bigreqsproto >= 1.1.0] fontsproto > [inputproto >= 1.9.99.902] [kbproto >= 1.0.3]" > +SDK_REQUIRED_MODULES="[xproto >= 7.0.17] [randrproto >= 1.2.99.3] > [renderproto >= 0.11] [xextproto >= 7.0.99.3] [inputproto >= 1.9.99.902] > [kbproto >= 1.0.3]" > +REQUIRED_MODULES="[fixesproto >= 4.1] [damageproto >= 1.1] [xcmiscproto >= > 1.2.0] [xtrans >= 1.2.2] [bigreqsproto >= 1.1.0] fontsproto > $SDK_REQUIRED_MODULES" > REQUIRED_LIBS="xfont xau" > > +# Make SDK_REQUIRED_MODULES available for inclusion in xorg-server.pc > +AC_SUBST(SDK_REQUIRED_MODULES) > + > dnl List of libraries that require a specific version > LIBAPPLEWM="applewm >= 1.4" > LIBDMX="dmx >= 1.0.99.1" > @@ -947,6 +951,7 @@ if test "x$XV" = xyes; then > AC_DEFINE(XV, 1, [Support Xv extension]) > AC_DEFINE(XvExtension, 1, [Build Xv extension]) > REQUIRED_MODULES="$REQUIRED_MODULES $VIDEOPROTO" > + SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $VIDEOPROTO" > else > XVMC=no > fi > @@ -1036,6 +1041,7 @@ case "$DRI2,$HAVE_DRI2PROTO" in > yes,yes | auto,yes) > AC_DEFINE(DRI2, 1, [Build DRI2 extension]) > DRI2=yes > + SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $DRI2PROTO" > ;; > esac > AM_CONDITIONAL(DRI2, test "x$DRI2" = xyes) > @@ -1074,6 +1080,7 @@ if test "x$XINERAMA" = xyes; then > AC_DEFINE(XINERAMA, 1, [Support Xinerama extension]) > AC_DEFINE(PANORAMIX, 1, [Internal define for Xinerama]) > REQUIRED_MODULES="$REQUIRED_MODULES $XINERAMAPROTO" > + SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $XINERAMAPROTO" > fi > > AM_CONDITIONAL(XACE, [test "x$XACE" = xyes]) > diff --git a/xorg-server.pc.in b/xorg-server.pc.in > index 44f886a..fb238b5 100644 > --- a/xorg-server.pc.in > +++ b/xorg-server.pc.in > @@ -15,6 +15,7 @@ abi_extensi...@abi_extension@ > Name: xorg-server > Description: Modular X.Org X Server > Version: @PACKAGE_VERSION@ > -Requires: pixman-1 pciaccess xproto >= 7.0.17 > +Requires: pixman-1 pciaccess > +Requires.private: @SDK_REQUIRED_MODULES@ > Cflags: -I${sdkdir} @symbol_visibility@ > Libs: -L${libdir} > -- > 1.6.0.4 > > Fourth edition. > > Thanks for the review. This turns out better than I expected.
I didn't explicitly check which modules should be in SDK_REQUIRED_MODULES or not, but it seems like a good start. The rest of the patch looks good. Reviewed-by: Dan Nicholson <[email protected]> _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
