Bug#556378: Debian bug #556378 and without-dlsym
On 2010-01-10 13:16 +0100, Craig Small wrote:
> Hello,
> I'm part of the group taking over the maintenance of ncurses packages
> within Debian. I noticed your comments at
> http://bugs.debian.org/556378 about the static libraries and configure
> flags.
>
> Currently we build the libraries using --with-shared which, I believe,
> makes both the static and shared libraries. However to use
> --without-dlsym ONLY on static library build we would have the split the
> two, is that right? Something like
> ./configure --with-shared --without-normal ..etc...
> make and install somewhere (makes shared libraries with dlsym)
> ./configure --without-dlsym ...etc..
> make and install somewhere (makes static libraries without dlsym)
>
> Is this what you meant by this flag? It will mean doubling the number of
> builds but there are a fair few already.
It is not quite that bad as doubling the number of builds since some of
them are already done with --without-gpm. Here is a patch that adds two
new build targets and installs the resulting *.a files directly into
libncurses{w,}5-dev:
--8<---------------cut here---------------start------------->8---
diff --git a/debian/libncurses5-dev.install b/debian/libncurses5-dev.install
index 37ad120..2408d16 100644
--- a/debian/libncurses5-dev.install
+++ b/debian/libncurses5-dev.install
@@ -4,10 +4,5 @@ usr/lib/libtic.so
usr/lib/libform.so
usr/lib/libmenu.so
usr/lib/libpanel.so
-usr/lib/libncurses.a
-usr/lib/libncurses++.a
-usr/lib/libtic.a
-usr/lib/libform.a
-usr/lib/libmenu.a
-usr/lib/libpanel.a
+obj-static/lib/*.a usr/lib
usr/share/man/man3
diff --git a/debian/libncursesw5-dev.install b/debian/libncursesw5-dev.install
index c6a4496..b8af06d 100644
--- a/debian/libncursesw5-dev.install
+++ b/debian/libncursesw5-dev.install
@@ -4,9 +4,4 @@ usr/lib/libticw.so
usr/lib/libformw.so
usr/lib/libmenuw.so
usr/lib/libpanelw.so
-usr/lib/libncursesw.a
-usr/lib/libncurses++w.a
-usr/lib/libticw.a
-usr/lib/libformw.a
-usr/lib/libmenuw.a
-usr/lib/libpanelw.a
+obj-wide-static/lib/*.a usr/lib
diff --git a/debian/rules b/debian/rules
index 34d9fff..971a9c1 100755
--- a/debian/rules
+++ b/debian/rules
@@ -32,9 +32,11 @@ fulltempdir=$(workdir)/$(tempdir)
srcdir=$(shell pwd)
objdir=$(srcdir)/obj
+objdir-static=$(srcdir)/obj-static
objdir-32=$(srcdir)/obj-32
objdir-64=$(srcdir)/obj-64
wobjdir=$(srcdir)/obj-wide
+wobjdir-static=$(srcdir)/obj-wide-static
wobjdir-32=$(srcdir)/obj-wide-32
objdir-debug=$(srcdir)/obj-debug
wobjdir-debug=$(srcdir)/obj-wide-debug
@@ -130,6 +132,15 @@ $(objdir)/config.status: $(QUILT_STAMPFN)
--with-install-prefix=$(fulltempdir) \
--enable-overwrite
+$(objdir-static)/config.status: $(QUILT_STAMPFN)
+ test -d $(objdir-static) || mkdir $(objdir-static)
+ cd $(objdir-static) && CFLAGS="$(CFLAGS)" $(srcdir)/configure \
+ $(CONFARGS) \
+ --without-shared
+ --without-dlsym
+ --with-install-prefix=$(fulltempdir) \
+ --enable-overwrite
+
$(objdir-32)/config.status: $(QUILT_STAMPFN)
test -d $(objdir-32) || mkdir $(objdir-32)
@@ -175,6 +186,15 @@ $(wobjdir)/config.status: $(QUILT_STAMPFN)
--with-install-prefix=$(fulltempdir) \
--disable-overwrite --enable-widec
+$(wobjdir-static)/config.status: $(QUILT_STAMPFN)
+ test -d $(wobjdir-static) || mkdir $(wobjdir-static)
+ cd $(wobjdir-static) && CFLAGS="$(CFLAGS)" $(srcdir)/configure \
+ $(CONFARGS) \
+ --without-shared
+ --without-dlsym
+ --with-install-prefix=$(fulltempdir) \
+ --enable-overwrite --enable-widec
+
$(wobjdir-debug)/config.status: $(QUILT_STAMPFN)
test -d $(wobjdir-debug) || mkdir $(wobjdir-debug)
cd $(wobjdir-debug) && \
@@ -198,8 +218,8 @@ $(wobjdir-32)/config.status: $(QUILT_STAMPFN)
--libdir=$(usr_lib32)
-build: build-normal build-wide build-debug build-wide-debug \
- $(build_64) $(build_32)
+build: build-normal build-static build-wide build-debug build-wide-debug \
+ build-wide-static $(build_64) $(build_32)
touch $@
@@ -207,6 +227,10 @@ build-normal: $(objdir)/config.status
cd $(objdir) && $(MAKE)
touch $@
+build-static: $(objdir-static)/config.status
+ cd $(objdir-static) && $(MAKE)
+ touch $@
+
build-32: $(objdir-32)/config.status
cd $(objdir-32) && $(MAKE)
touch $@
@@ -223,6 +247,10 @@ build-wide: $(wobjdir)/config.status
cd $(wobjdir) && $(MAKE)
touch $@
+build-wide-static: $(wobjdir-static)/config.status
+ cd $(wobjdir-static) && $(MAKE)
+ touch $@
+
build-wide-32: $(wobjdir-32)/config.status
cd $(wobjdir-32) && $(MAKE)
touch $@
@@ -235,14 +263,16 @@ clean: unpatch
dh_testdir
rm -f build
rm -rf $(objdir)
+ rm -rf $(objdir-static)
rm -rf $(objdir-32)
rm -rf $(objdir-64)
rm -rf $(wobjdir)
+ rm -rf $(wobjdir-static)
rm -rf $(wobjdir-32)
rm -rf $(objdir-debug)
rm -rf $(wobjdir-debug)
- rm -f build-normal build-wide build-debug build-wide-debug \
- $(build_32) $(build_64)
+ rm -f build-normal build-static build-wide build-debug build-wide-debug \
+ build-wide-static $(build_32) $(build_64)
rm -f debian/shlibs.local
dh_clean
--8<---------------cut here---------------end--------------->8---
If there are no objections, I can push this to our git repository.
Do you think it would be necessary to do something similar for the debug
libraries (I would rather say not) ?
Sven
Reply to: