]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - package/debian/rules
ncurses 6.4 - patch 20240420
[ncurses.git] / package / debian / rules
index 6bca046638857f95294ea381d76d6d1bc65b151f..648939b22fbac080e2301fac36fca05f6af20ddc 100755 (executable)
@@ -1,11 +1,16 @@
 #!/usr/bin/make -f
-# Made with the aid of dh_make, by Craig Small
-# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
-# Some lines taken from debmake, by Cristoph Lameter.
+# $Id: rules,v 1.53 2024/04/08 15:31:32 tom Exp $
 
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
+SHELL = /bin/bash
+DPKG_EXPORT_BUILDFLAGS = 1
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+include /usr/share/dpkg/buildflags.mk
+
 # packages
 PACKAGES.indep = ncurses6-doc ncurses6-doc-html
 PACKAGES.arch  = ncurses6 ncursest6
@@ -14,23 +19,23 @@ PACKAGES.arch  = ncurses6 ncursest6
 # 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)
+DEB_HOST_MULTIARCH  ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
 
 CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
 CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
 
 MY_ABI=6
 MY_DIR=/usr
+BINDIR=$(MY_DIR)/bin
+LIBDIR=$(MY_DIR)/lib/$(DEB_HOST_MULTIARCH)
 MYDATA=/usr/local/ncurses/share/terminfo
 NORMAL_DIR=$(CURDIR)/debian/ncurses$(MY_ABI)
 THREAD_DIR=$(CURDIR)/debian/ncursest$(MY_ABI)
 
-CFLAGS   = $(shell dpkg-buildflags --get CFLAGS) $(CC_NORMAL)
-CXXFLAGS = $(shell dpkg-buildflags --get CXXFLAGS)
-CPPFLAGS = $(shell dpkg-buildflags --get CPPFLAGS)
-LDFLAGS  = $(shell dpkg-buildflags --get LDFLAGS)
+CFLAGS   += $(CC_NORMAL)
 
 ifneq ($(MY_DIR),/usr)
-       RPATH_ENV = RPATH_LIST=../lib:$(MY_DIR)/lib
+       RPATH_ENV = RPATH_LIST=../lib:$(LIBDIR)
        RPATH_OPT = --enable-rpath
 else
        RPATH_ENV =
@@ -56,34 +61,47 @@ configure = \
                --host=$(DEB_HOST_GNU_TYPE) \
                --build=$(DEB_BUILD_GNU_TYPE) \
                --prefix=$(MY_DIR) \
-               --with-default-terminfo-dir=$(MYDATA) \
-               --with-terminfo-dirs=$(MYDATA):/usr/share/terminfo \
+               --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
                --disable-echo \
                --disable-getcap \
                --disable-leaks \
                --disable-macros  \
                --disable-overwrite  \
+               --disable-relink \
+               --disable-root-access \
+               --disable-root-environ \
                --disable-termcap \
+               --enable-check-size \
                --enable-hard-tabs \
+               --enable-opaque-curses \
+               --enable-opaque-form \
+               --enable-opaque-menu \
+               --enable-opaque-panel \
                --enable-pc-files \
+               --enable-stdnoreturn \
                --enable-warnings \
                --enable-wgetch-events \
                --enable-widec \
+               --enable-xmc-glitch \
                --program-suffix=$(MY_ABI) \
                --verbose \
                --with-abi-version=$(MY_ABI) \
+               --with-config-suffix=dev \
+               --with-cxx-shared \
+               --with-default-terminfo-dir=$(MYDATA) \
                --with-develop \
                --with-extra-suffix=$(MY_ABI) \
                --with-shared \
+               --with-terminfo-dirs=$(MYDATA):/lib/terminfo:/usr/share/terminfo \
                --with-termlib \
                --with-ticlib \
                --with-trace \
-               --with-cxx-shared \
-               --with-terminfo-dirs=/lib/terminfo:/usr/share/terminfo \
                --with-versioned-syms \
                --with-xterm-kbs=DEL \
                --without-ada \
                --without-debug \
+               --with-manpage-aliases \
+               --with-manpage-symlinks \
                --without-normal
 
 NCURSES6_DIR = $(CURDIR)/debian/ncurses6
@@ -114,14 +132,29 @@ build-arch: $(PACKAGES.arch:%=build-%-stamp)
 install-indep: $(PACKAGES.indep:%=install-%-stamp)
 install-arch: $(PACKAGES.arch:%=install-%-stamp)
 
-config-ncurses6-stamp:
+# make the doc-package installable by renaming everything to avoid clashing
+patch-ncurses6-stamp:
+       dh_testdir
+       sed -i.bak \
+               -e 's/-config\.1$$/dev-config.1/;t' \
+               -e 's/\.3ncurses$$/.3ncurses6/' \
+               -e 's/\.3curses$$/.3curses6/' \
+               -e 's/\.3form$$/.3form6/' \
+               -e 's/\.3menu$$/.3menu6/' \
+               -e 's/\.3panel$$/.3panel6/' \
+               -e 's/\.\([157]\)$$/6.\1/' \
+               man/man_db.renames.in
+       diff -u man/man_db.renames.in.bak man/man_db.renames.in || true
+       touch $@
+
+config-ncurses6-stamp: patch-ncurses6-stamp
        dh_testdir
        rm -rf t/ncurses6
        mkdir -p t/ncurses6
        cd t/ncurses6; $(configure)
        touch $@
 
-config-ncursest6-stamp:
+config-ncursest6-stamp: patch-ncurses6-stamp
        dh_testdir
        rm -rf t/ncursest6
        mkdir -p t/ncursest6
@@ -161,9 +194,9 @@ install-ncurses6-stamp: build-ncurses6-stamp
        dh_prep        $(verbose) -pncurses6
 
        $(MAKE) -C t/ncurses6 install.libs install.progs DESTDIR=$(NCURSES6_DIR)
-       $(MAKE) -C t/ncurses6/test ncurses LOCAL_LIBDIR=$(MY_DIR)/lib
+       $(MAKE) -C t/ncurses6/test ncurses LOCAL_LIBDIR=$(LIBDIR)
 
-       mv t/ncurses6/test/ncurses $(NCURSES6_DIR)$(MY_DIR)/bin/ncurses$(MY_ABI)
+       mv t/ncurses6/test/ncurses $(NCURSES6_DIR)$(BINDIR)/ncurses$(MY_ABI)
 
        touch $@
 
@@ -174,9 +207,9 @@ install-ncursest6-stamp: build-ncursest6-stamp
        dh_prep        $(verbose) -pncursest6
 
        $(MAKE) -C t/ncursest6 install.libs install.progs DESTDIR=$(NCURSEST6_DIR)
-       $(MAKE) -C t/ncursest6/test ncurses LOCAL_LIBDIR=$(MY_DIR)/lib
+       $(MAKE) -C t/ncursest6/test ncurses LOCAL_LIBDIR=$(LIBDIR)
 
-       mv t/ncursest6/test/ncurses $(NCURSEST6_DIR)$(MY_DIR)/bin/ncursest$(MY_ABI)
+       mv t/ncursest6/test/ncurses $(NCURSEST6_DIR)$(BINDIR)/ncursest$(MY_ABI)
 
        touch $@
 
@@ -187,10 +220,13 @@ install-ncurses6-doc-stamp: build-ncurses6-stamp
        dh_prep        $(verbose) -pncurses6-doc
 
        $(MAKE) -C t/ncurses6 install.man DESTDIR=$(NCURSES6_DIR)-doc
+       find $(NCURSES6_DIR)-doc -name 'ncursesw6-config.*' -print -delete
+
+       cd $(NCURSES6_DIR)-doc/usr/share/man/man1 && ln -sf tset6.1.gz reset6.1.gz
 
        touch $@
 
-HTML_DESTDIR=$(NCURSES6_DIR)-doc-html/usr/share/ncurses6-doc-html
+HTML_DESTDIR=$(NCURSES6_DIR)-doc-html/usr/share/doc/ncurses6-doc-html
 install-ncurses6-doc-html-stamp: build-ncurses6-stamp
        dh_testdir
        dh_testroot
@@ -199,6 +235,8 @@ install-ncurses6-doc-html-stamp: build-ncurses6-stamp
 
        cd doc/html && find * -type d | sort | xargs -I{} mkdir -p -v $(HTML_DESTDIR)/{}
        cd doc/html && find * -type f -name '*.html' | sort | xargs -I{} install -m 644 -p -v -T {} $(HTML_DESTDIR)/{}
+       find $(HTML_DESTDIR) -type d -empty -delete -print
+       find $(HTML_DESTDIR) -type d -empty -delete -print
 
        touch $@
 
@@ -227,6 +265,13 @@ ifneq ($(PACKAGES.arch),)
        rm -f $(PACKAGES.arch:%=install-%-stamp)
        dh_testdir
        dh_testroot
+
+       version=`set -x; awk 'BEGIN{major=minor=0} /^NCURSES_MAJOR/{major=$$3} /^NCURSES_MINOR/{minor=$$3} END{print major "." minor}' < dist.mk`; \
+       sed -i \
+               -e "s, usr/lib, usr/lib/$(DEB_HOST_MULTIARCH)," \
+               -e "s,6\.1,$${version}," \
+               debian/*.lintian-overrides
+
        dh_lintian           $(verbose) $(PACKAGES.arch:%=-p%)
        dh_installdocs       $(verbose) $(PACKAGES.arch:%=-p%)
        dh_installchangelogs $(verbose) $(PACKAGES.arch:%=-p%)  NEWS