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

Dan Nicholson dbn.lists at gmail.com
Mon Jun 14 15:07:24 PDT 2010


On Sun, Jun 13, 2010 at 1:49 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.
>
> Signed-off-by: Gaetan Nadon <memsize at videotron.ca>
> ---
>  configure.ac      |    9 ++++++++-
>  xorg-server.pc.in |    1 +
>  2 files changed, 9 insertions(+), 1 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 4ada8f5..cb33637 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="[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] [xproto >= 7.0.17] [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..1fa4fb5 100644
> --- a/xorg-server.pc.in
> +++ b/xorg-server.pc.in
> @@ -16,5 +16,6 @@ Name: xorg-server
>  Description: Modular X.Org X Server
>  Version: @PACKAGE_VERSION@
>  Requires: pixman-1 pciaccess xproto >= 7.0.17
> +Requires.private: @SDK_REQUIRED_MODULES@

Could you also move the xproto requirement from REQUIRED_MODULES to
SDK_REQUIRED_MODULES so it's always populated from configure.ac? Maybe
that can go in another commit. Probably all the modules should be in
Requires.private, but that's probably another commit, too.

Looks good.

Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>

--
Dan


More information about the xorg-devel mailing list