[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#235701: xlibs-dev: circular dependency back to itself



On Mon, Mar 01, 2004 at 11:32:29PM -0800, Ben Pfaff wrote:
> Branden Robinson <branden@debian.org> writes:
> 
> > The autoconf AC_PATH_X and AC_PATH_XTRA macros think X is unavailable if
> > only x-dev and libx11-dev are installed.  In fact, autoconf thinks
> > they're missing *even if* you specify --x-includes and --x-libraries
> > arguments to configure.
> >
> > This is howlingly incorrect, but I have not had time to write a new
> > autoconf macro for this, and the autoconf package maintainer(s) have not
> > yet advised me regarding a workaround.
> 
> Can you explain why this is suddenly a problem now?  It has never
> been mentioned to me as a problem in years past, so something
> must have changed either in X or in Autoconf in the meantime.

Well, you *might* say something changed in X...

(Scroll down for further discussion.)

xfree86 (4.3.0-0pre1v5) experimental; urgency=low

[...]
  * Split xlibs package into one package per shared library, keeping only the
    XKB data files in xlibs (see above).  The XRX plugin
    (/usr/X11R6/lib/libxrx.so.6.3) and its manpage are being dropped entirely.
    - debian/xlibs.install: stop shipping everything but the XKB data
    - debian/xlibs.{dirs,links,postinst.in,postrm.in,preinst.in,shlibs,
      shlibs.dummy}: deleted
    - debian/rules: eliminate special dh_shlibdeps handling for xlibs package;
      add special dh_shlibdeps handling for libdps1 and libx11-6 (see below)
    - debian/scripts/manifest-install-reconcile: add libxrx shared library and
      object to list of files expected to be unshipped
    - debian/shell-lib.sh: define new functions to aid maintainer scripts of
      new libraries
      + register_x_lib_dir_with_ld_so(): add /usr/X11R6/lib to /etc/ld.so.conf
        if needed
      + deregister_x_lib_dir_with_ld_so(): remove /usr/X11R6/lib from
        /etc/ld.so.conf when no shared libraries left in directory
    - debian/{libice6,libsm6,libx11-6,libxext6,libxft1,libxi6,libxmu6,
      libxmuu1,libxp6,libxpm4,libxrandr2,libxt6,libxtrap6,libxtst6,
      libxv1}.install: new; ship shared library
    - debian/{libice6,libsm6,libx11-6,libxext6,libxft1,libxi6,libxmu6,
      libxmuu1,libxp6,libxpm4,libxrandr2,libxt6,libxtrap6,libxtst6,
      libxv1}.links: new; ship SONAME symlinks to shared libraries
    - debian/{libice6,libsm6,libx11-6,libxext6,libxft1,libxi6,libxmu6,
      libxmuu1,libxp6,libxpm4,libxrandr2,libxt6,libxtrap6,libxtst6,
      libxv1}.shlibs: new; provide shlibs file, specifying alternative
      versioned dependencies on older versions of xlibs (except in the case of
      libxv1, for which a shared version did not exist in XFree86 prior to
      4.3)
    - debian/{libdps1,libx11-6}.shlibs.local: add special local shlibs files
      for use during the package build so that libdps1 and libx11-6 do not get
      spurious self-dependencies; libdps1 ships three related shared
      libraries, and libx11-6 ships loadable modules for Xlib that reference
      symbols in Xlib -- both of these cases confuse dpkg-shlibdeps (via
      dh_shlibdeps)
    - debian/{libice6,libsm6,libx11-6,libxext6,libxft1,libxi6,libxmu6,
      libxmuu1,libxp6,libxpm4,libxrandr2,libxt6,libxtrap6,libxtst6,
      libxv1}.{postinst,postrm}: new; call register_x_lib_dir_with_ld_so(),
      deregister_x_lib_dir_with_ld_so(), and ldconfig as appropriate
    - debian/{libx11-6,libxt6}.{preinst,postinst,postrm}: migrate
      /usr/X11R6/lib/X11/{app-defaults,xkb} prepare/commit/rollback handling
      from xlibs maintainer scripts, now deceased
    - debian/libx11-6.links: migrated from xlibs.links for
      /usr/X11R6/lib/X11/xkb symlink
    - debian/libxt6.dirs: migrated from xlibs.dirs for /etc/X11/app-defaults
      directory
    - debian/libxt6.links: migrated from xlibs.links for
      /usr/X11R6/lib/X11/app-defaults symlink
    - debian/control: update package data to reflect split
      + add stanzas for new packages libice6, libsm6, libx11-6, libxext6,
        libxft1, libxi6, libxmu6, libxmuu1, libxp6, libxpm4, libxrandr2,
        libxt6, libxtrap6, libxtst6, xlibs-data
      + libx11-6 depends on xfree86-common (>> 4.3.0) and xlibs-data; needs
        xlibs-data for locale data and X error and keysym databases
      + xlibs is now a transitional package depending on the packages into
        which it split
      + sanitize xlibs's conflicts and replaces relationships by removing
        versioned conflicts on withdrawn packages (except where they continue
        to be Provided by still-existing packages)
      + xlibs is now an architecture-independent package
      + xlibs no longer provides libxpm4
      + rewrite xlibs's short and extended descriptions

  * Split xlibs-dbg package into one package per shared library.
    - debian/xlibs-dbg.install: deleted
    - debian/xlibs-dbg.links: deleted
    - debian/{libice6-dbg,libsm6-dbg,libx11-6-dbg,libxext6-dbg,libxft1-dbg,
      libxi6-dbg,libxmu6-dbg,libxmuu1-dbg,libxp6-dbg,libxpm4-dbg,
      libxrandr2-dbg,libxt6-dbg,libxtrap6-dbg,libxtst6-dbg,
      libxv1-dbg}.install: new; populated from xlibs-dbg.install
    - debian/{libice6-dbg,libsm6-dbg,libx11-6-dbg,libxext6-dbg,libxft1-dbg,
      libxi6-dbg,libxmu6-dbg,libxmuu1-dbg,libxp6-dbg,libxpm4-dbg,
      libxrandr2-dbg,libxt6-dbg,libxtrap6-dbg,libxtst6-dbg,
      libxv1-dbg}.links: new; populated from xlibs-dbg.links
    - debian/control: update package data to reflect split
      + add stanzas for new packages libice6-dbg, libsm6-dbg, libx11-6-dbg,
        libxext6-dbg, libxft1-dbg, libxi6-dbg, libxmu6-dbg, libxmuu1-dbg,
        libxp6-dbg, libxpm4-dbg, libxrandr2-dbg, libxt6-dbg, libxtrap6-dbg,
        libxtst6-dbg, libxv1-dbg
      + xlibs-dbg is now a pseudopackage depending on the packages into which
        it split
      + update x-window-system-dev to depend on the packages split from
        xlibs-dbg instead of xlibs-dbg itself
    - debian/rules:
      + don't dh_strip new -dbg packages
      + let dh_strip have its wicked way with xlibs-dbg, which no longer has a
        payload

  * Split xlibs-dev package into one package per shared library, plus separate
    packages for Proxy Management protocol headers (pm-dev), X protocol
    headers (x-dev), and libraries that exist only in static form
    (xlibs-static-dev).  Note that there is no libxft1-dev package; this is
    deliberate.  libxft1 is obsolete and libxft2 (packaged separately from
    XFree86) should be used instead.
    - debian/xlibs-dev.install: deleted
    - debian/xlibs-dev.links: deleted
    - debian/{libice-dev,libsm-dev,libx11-dev,libxext-dev,libxi-dev,
      libxmu-dev,libxmuu-dev,libxp-dev,libxpm-dev,libxrandr-dev,libxt-dev,
      libxtrap-dev,libxtst-dev,libxv-dev,pm-dev,x-dev,
      xlibs-static-dev}.install: new; populated from xlibs-dev.install
    - debian/{libice-dev,libsm-dev,libx11-dev,libxext-dev,libxi-dev,
      libxmu-dev,libxmuu-dev,libxp-dev,libxpm-dev,libxrandr-dev,libxt-dev,
      libxtrap-dev,libxtst-dev,libxv-dev}.install: new; populated from
      xlibs-dev.links
    - debian/control: update package data to reflect split
      + add stanzas for new packages libice-dev, libsm-dev, libx11-dev,
        libxext-dev, libxi-dev, libxmu-dev, libxmuu-dev, libxp-dev,
        libxpm-dev, libxrandr-dev, libxt-dev, libxtrap-dev, libxtst-dev,
        libxv-dev, pm-dev, x-dev, xlibs-static-dev
      + update dependencies for existing -dev packages libdps-dev,
        libxaw6-dev, libxaw7-dev, xlibmesa-gl-dev, xlibosmesa-dev
      + update dependencies for xlibs-static-pic based on actual linkage of
        the libraries within it
      + simplify xlibs-static-pic's extended description to refer to
        xlibs-static-dev for details
      + xlibs-dev is now a pseudopackage depending on the packages into which
        it split
      + update x-window-system-dev to depend on the packages split from
        xlibs-dev instead of xlibs-dev itself

  * The above package splits collectively resolve a request in the Debian Bug
    Tracking System to do so.  (Closes: #172550)
[...]
 -- Branden Robinson <branden@debian.org>  Fri,  5 Dec 2003 21:18:07 -0500

I would like to reiterate my assertion that the AC_PATH_X and
AC_PATH_XTRA macros are flawed in concept.  What exactly does it mean to
"have X"?  There are several shared libraries in the X Window System
sample implementation.

There should probably be separate checks for libX11, libSM, libICE,
libXt, and so forth.

-- 
G. Branden Robinson                |    The errors of great men are
Debian GNU/Linux                   |    venerable because they are more
branden@debian.org                 |    fruitful than the truths of little
http://people.debian.org/~branden/ |    men.         -- Friedrich Nietzsche

Attachment: signature.asc
Description: Digital signature


Reply to: