[PATCH v4 xserver] config: declare xserver private dependencies in xorg-server.pc

Dan Nicholson dbn.lists at gmail.com
Tue Jun 15 13:28:42 PDT 2010


On Tue, Jun 15, 2010 at 1:03 PM, Gaetan Nadon <memsize at videotron.ca> 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 <memsize at videotron.ca>
> ---
>  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_extension=@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 <dbn.lists at gmail.com>


More information about the xorg-devel mailing list