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

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: