On Thu, Jan 21, 2016 at 10:11:47AM +0300, anatoly techtonik wrote: > On Wed, Jan 13, 2016 at 1:19 PM, Thomas Dickey <[email protected]> wrote: > > On Mon, Jan 11, 2016 at 02:05:49PM +0300, anatoly techtonik wrote: > >> Hi, > >> > >> In this build on Ubuntu x86_64 autoconf is unable to find X11 > >> libraries: > >> https://travis-ci.org/techtonik/PDCurses/builds/101477536 > >> However, it works with explicit configure option > >> --x-libraries=/usr/lib/x86_64-linux-gnu > >> https://travis-ci.org/techtonik/PDCurses/builds/101506738 > >> > >> It looks like the problem is PDCurses specific > >> http://askubuntu.com/questions/539574/how-to-install-xaw-package-with-header-files/578003 > >> probably because people rarely use Xaw. Anyway, how to fix > >> it? Is it an autoconf bug? > > > > no - it is a bug in PDCurses' configure script, which assumes that the > > libraries are in a directory "../lib" relative to the location of the > > X headers. > > Thank for clarification. The ./configure script is autogenerated - at > least this is said in headers > "Generated by GNU Autoconf 2.61 for PDCurses 3.4." > So, is it a bug in Autoconf? > > > You might find this to be useful: > > > > http://anonscm.debian.org/cgit/users/agmartin/pdcurses.git/ > > I see only two patches, one of which is said to be fixed upstream > https://anonscm.debian.org/cgit/users/agmartin/pdcurses.git/tree/debian/patches > I can't extract the solution for complication problem from them.
hmm. I started a while back by tweaking the configure script, and noticed
Martin's tree, made a copy of _that_, and eliminated most of the unnecessary
stuff. Since I'm not going to publish _that_ tree (I maintain ncurses), it
would be of limited use.
So (referring to PDCurses 3.4)
this line in the configure script is the problem:
mh_lib_dirs="$x_libraries `echo "$ac_x_includes $ac_x_header_dirs" |
sed s/include/lib/g`"
The problem is that 64-bit machines nowadays generally use lib64 - not lib,
as the script assumes. When I tweaked it by hand, I just edited that line.
mh_lib_dirs="$x_libraries `echo "$ac_x_includes $ac_x_header_dirs" |
sed s/include/lib64/g`"
But I prefer packages...
Refreshing my memory, I see that Martin may not have _fixed_ that.
But I did, using a script in the debian/rules file. I'm attaching
that, for discussion.
> > Before noticing this, I would simply build PDCurses with a quick fix
> > for its configure script bug. (Actually now I build it using Martin's
> > version plus some further fixes -- I use that for test-builds, e.g.,
> > of lynx, dialog).
>
> Can you clarify how to fix this configure script? Looks like the file that
> should be fixed is
> https://anonscm.debian.org/cgit/users/agmartin/pdcurses.git/tree/configure.ac
> but I don't understand its semantics well enough to find the
> problem myself.
>
> Thanks.
--
Thomas E. Dickey <[email protected]>
http://invisible-island.net
ftp://invisible-island.net
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
include /usr/share/quilt/quilt.make
# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
# Use default buildflags for hardening
CFLAGS := $(shell dpkg-buildflags --get CFLAGS) -Wall
CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
# Make sure we do not link against unneeded libs.
LDFLAGS += -Wl,--as-needed
export CFLAGS CPPFLAGS LDFLAGS
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
INSTALL_PROGRAM += -s
endif
# Shared library versions
include version.mif
version = $(VERDOT)
major = $(word 1,$(subst ., ,$(VERDOT)))
# The installation dir for shared library package
my_pdcursesdir = $(CURDIR)/debian/pdcurses$(major)
DEBIAN_FULL_DESTDIR = $(CURDIR)/debian/tmp
PUBLIC_FULL_DESTDIR = $(CURDIR)/debian/pdcurses3
PUBLIC_FULL_LIBDIR = $(CURDIR)/debian/pdcurses3/usr/lib
config.status: configure
dh_testdir
ifneq "$(wildcard /usr/share/misc/config.sub)" ""
cp -f /usr/share/misc/config.sub config.sub
endif
ifneq "$(wildcard /usr/share/misc/config.guess)" ""
cp -f /usr/share/misc/config.guess config.guess
endif
ln -s curses.h xcurses.h
# The configure script assumes that all X libraries are in the "lib"
# directory matching the "include" directory. Change that to be the
# set of directories that ldconfig knows about.
ldconfig -p |fgrep '=>' |sed -e 's%^.* => %%' -e 's%/[^/]*$$%%' |sort
-u |tr '\n' ' ' >all_dirs
cat all_dirs
echo 's,^mh_lib_dirs=.*,mh_lib_dirs="'`cat all_dirs`'",' >fixup.sed
cat fixup.sed
sed -i -f fixup.sed configure
# Add here commands to configure the package.
./configure CFLAGS="$(CFLAGS) $(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \
--host=$(DEB_HOST_GNU_TYPE) \
--build=$(DEB_BUILD_GNU_TYPE) \
--prefix=/usr \
--libdir=\$${prefix}/lib \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
-x-libraries=/usr/lib \
--enable-xim
build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
build-stamp: config.status
dh_testdir
# Add here commands to compile the package.
$(MAKE) RXPACKEXPORTS="-Wl,-soname,libXCurses.so.$(major) ${LDFLAGS}"
touch build-stamp
clean:
dh_testdir
dh_testroot
rm -f build-stamp
-[ -L "xcurses.h" ] && rm xcurses.h
# Add here commands to clean up after the build process.
[ ! -f Makefile ] || $(MAKE) distclean
dh_clean
install: build
dh_testdir
dh_testroot
dh_prep
dh_installdirs
# Add here commands to install the package into debian/tmp
# Need to set {bin,lib}dir to work around buggy Makefile.in
unconditionally setting it
$(MAKE) install DESTDIR=$(DEBIAN_FULL_DESTDIR) \
libdir=$(PUBLIC_FULL_LIBDIR) \
bindir=$(PUBLIC_FULL_LIBDIR)/pdcurses
mkdir -p $(my_pdcursesdir)/etc/X11/Xresources/XCurses
mkdir -p $(my_pdcursesdir)/usr/share/pixmaps
install -m 644 debian/XCurses.xresources \
$(my_pdcursesdir)/etc/X11/Xresources/XCurses
install -m 644 x11/little_icon.xbm \
$(my_pdcursesdir)/usr/share/pixmaps/xcurses32.xbm
install -m 644 x11/big_icon.xbm \
$(my_pdcursesdir)/usr/share/pixmaps/xcurses64.xbm
( cd $(PUBLIC_FULL_LIBDIR) && \
mv libXCurses.so libXCurses.so.$(version) && \
ln -s libXCurses.so.$(version) libXCurses.so.$(major) && \
ln -s libXCurses.so.$(major) libXCurses.so && \
ln -sf libXCurses.so libXpanel.so && \
ln -sf libXCurses.a libXpanel.a && \
ln -sf libXpanel.a libxpanel.a )
# Install Debian xcurses-config wrapper
mkdir -p $(PUBLIC_FULL_DESTDIR)/usr/bin
install debian/xcurses-config.wrapper
$(PUBLIC_FULL_DESTDIR)/usr/bin/xcurses-config
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs -A doc/x11.txt README
dh_installexamples
# dh_installinfo
dh_movefiles
dh_installman
dh_link
# dh_strip
dh_strip -ppdcurses3 --dbg-package=pdcurses3-dbg
dh_compress
dh_fixperms
dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
signature.asc
Description: Digital signature
_______________________________________________ Autoconf mailing list [email protected] https://lists.gnu.org/mailman/listinfo/autoconf
