Enable concurrent installs of runtime packages after a soname change.

Add a common package for afm metrics, and other 'static' data and utilities.
Remove the version/flavour from afm installs on unix as discussed with Vaclav,
these files really do never change.
Mention --static along with other selection options in --help.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Ron Lee
2004-09-28 14:47:08 +00:00
parent fde692b5ad
commit 148e141b23
10 changed files with 119 additions and 86 deletions

39
debian/control.in vendored
View File

@@ -5,11 +5,10 @@ Build-Depends: debhelper (>=4.0), flex, bison, gettext, libgtk2.0-dev, =PY, =PY-
Maintainer: Ron Lee <ron@debian.org>
Standards-Version: 3.6.1.1
Package: libwxgtk=V
Package: libwxgtk=V.=SO
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Replaces: wxgtk2.1
Description: wxWidgets Cross-platform C++ GUI toolkit (GTK+ runtime)
wxWidgets (formerly known as wxWindows) is a class library for C++ providing
GUI components and other facilities on several popular platforms (and some
@@ -22,8 +21,8 @@ Description: wxWidgets Cross-platform C++ GUI toolkit (GTK+ runtime)
Package: libwxgtk=V-dev
Architecture: any
Section: libdevel
Depends: wx=V-headers (= ${Source-Version}), libwxgtk=V (= ${Source-Version}), libc6-dev
Suggests: wxwin=V-doc, libstdc++-dev, gettext, xlibmesa-gl-dev | libgl-dev, xlibmesa-glu-dev | libglu-dev
Depends: wx=V-headers (= ${Source-Version}), libwxgtk=V.=SO (= ${Source-Version}), libc6-dev
Suggests: wx=V-common | wx-common, wx=V-doc, libstdc++-dev, gettext, xlibmesa-gl-dev | libgl-dev, xlibmesa-glu-dev | libglu-dev
Description: wxWidgets Cross-platform C++ GUI toolkit (GTK+ development)
wxWidgets (formerly known as wxWindows) is a class library for C++ providing
GUI components and other facilities on several popular platforms (and some
@@ -48,13 +47,13 @@ Description: wxWidgets Cross-platform C++ GUI toolkit (GTK+ development)
provides many internal checks by wxWidgets itself that are not performed on
apps compiled with the 'release version' libs in the -dev package.
Package: libwxgtk=V-python
Package: libwxgtk=V.=SO-python
Architecture: any
Section: python
Depends: =PY, ${shlibs:Depends}
Suggests: wx=V-doc, wx=V-examples, =PY-xml
Conflicts: libwxgtk-python, libwxgtk=V-dbg-python, python-wxwin, libwxgtk2.2-python-contrib, libwxgtk2.2-python, libwxgtk2.3-python
Replaces: libwxgtk-python, libwxgtk=V-dbg-python, python-wxwin, libwxgtk2.2-python-contrib, libwxgtk2.2-python, libwxgtk2.3-python
Conflicts: libwxgtk-python
Replaces: libwxgtk-python
Provides: libwxgtk-python
Description: wxWidgets Cross-platform C++ GUI toolkit (wxPython binding)
wxWidgets (formerly known as wxWindows) is a class library for C++ providing
@@ -65,6 +64,22 @@ Description: wxWidgets Cross-platform C++ GUI toolkit (wxPython binding)
contrib libs. If you wish to use xrced you'll also need the python-xml
package installed.
Package: wx=V-common
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Conflicts: wx-common
Replaces: wx-common
Provides: wx-common
Description: wxWidgets Cross-platform C++ GUI toolkit (common support files)
wxWidgets (formerly known as wxWindows) is a class library for C++ providing
GUI components and other facilities on several popular platforms (and some
unpopular ones as well). For more information see http://wxwidgets.org
.
This package provides common support files not bound to any
particular wxWidgets release, such as font metrics required by some
ports, and miscellaneous developer aids and binary utilities.
Package: wx=V-headers
Architecture: any
Section: devel
@@ -113,14 +128,14 @@ Description: wxWidgets Cross-platform C++ GUI toolkit (examples)
This package contains examples of using the wxWidgets toolkit in
C++ and with the wxPython language binding.
Package: libwxgtk=V-dbg-python
Package: libwxgtk=V.=SO-dbg-python
Architecture: any
Section: python
Depends: =PY, ${shlibs:Depends}
Suggests: wxwin=V-doc, wxwin=V-examples, =PY-xml
Conflicts: libwxgtk=V-python
Replaces: libwxgtk=V-python
Provides: libwxgtk=V-python
Conflicts: libwxgtk-python
Replaces: libwxgtk-python
Provides: libwxgtk-python
Description: wxWindows Cross-platform C++ GUI toolkit (wxPython binding)
wxWindows is a class library for C++ providing GUI (Graphical User
Interface) and other facilities on more than one platform. Version =V
@@ -131,7 +146,7 @@ Description: wxWindows Cross-platform C++ GUI toolkit (wxPython binding)
Unfortunately it cannot be installed at the same time as the release
packages, but it will replace them for other applications that require
wxPython. You should _never_ upload packages to Debian that depend upon
this package explicitly, use the libwxgtk=V-python package instead.
this package explicitly, use the libwxgtk=V.=SO-python package instead.
.
If you wish to use xrced you'll also need the python-xml package installed.

View File

@@ -1,7 +1,7 @@
?package(libwxgtk=V-dbg-python):needs="X11" section="Apps/Programming"\
?package(libwxgtk=V.=SO-dbg-python):needs="X11" section="Apps/Programming"\
title="pycrust" command="/usr/bin/pycrust"
?package(libwxgtk=V-dbg-python):needs="X11" section="Apps/Programming"\
?package(libwxgtk=V.=SO-dbg-python):needs="X11" section="Apps/Programming"\
title="pyshell" command="/usr/bin/pyshell"
?package(libwxgtk=V-dbg-python):needs="X11" section="Apps/Programming"\
?package(libwxgtk=V.=SO-dbg-python):needs="X11" section="Apps/Programming"\
title="xrced" command="/usr/bin/xrced"

View File

@@ -2,7 +2,7 @@
set -e
PACKAGE="libwxgtk=V-dbg-python"
PACKAGE="libwxgtk=V.=SO-dbg-python"
dpkg --listfiles $PACKAGE | awk '$0~/\.py$/ {print $0"c\n" $0"o"}' | xargs rm -f >&2
#DEBHELPER#

View File

@@ -1,3 +0,0 @@
?package(libwxgtk=V-dev):needs="X11" section="Apps/Programming"\
title="wxrcedit" command="/usr/bin/wxrcedit"

View File

@@ -1,7 +1,7 @@
?package(libwxgtk=V-python):needs="X11" section="Apps/Programming"\
?package(libwxgtk=V.=SO-python):needs="X11" section="Apps/Programming"\
title="pycrust" command="/usr/bin/pycrust"
?package(libwxgtk=V-python):needs="X11" section="Apps/Programming"\
?package(libwxgtk=V.=SO-python):needs="X11" section="Apps/Programming"\
title="pyshell" command="/usr/bin/pyshell"
?package(libwxgtk=V-python):needs="X11" section="Apps/Programming"\
?package(libwxgtk=V.=SO-python):needs="X11" section="Apps/Programming"\
title="xrced" command="/usr/bin/xrced"

View File

@@ -2,7 +2,7 @@
set -e
PACKAGE="libwxgtk=V-python"
PACKAGE="libwxgtk=V.=SO-python"
dpkg --listfiles $PACKAGE | awk '$0~/\.py$/ {print $0"c\n" $0"o"}' | xargs rm -f >&2
#DEBHELPER#

106
debian/rules vendored
View File

@@ -38,8 +38,8 @@ endif
# to correctly set the release below.
DEBIAN_WXFLAVOUR := $(shell pwd | sed -e 's@.*/wxwidgets[0-9.]\+-\?\(.*\)-[0-9.]\+-\?.*@\1@')
release := $(shell dpkg-parsechangelog | sed -n 's/^Source: wxwidgets//p')
release := $(shell dpkg-parsechangelog | sed -n 's/^Source: wxwidgets//p')
soversion := $(shell grep '^WX_CURRENT=' configure.in | sed 's/WX_CURRENT=\([0-9]\+\).*/\1/')
cross_host = i586-mingw32msvc
cross_build = $(shell ./config.guess)
@@ -48,16 +48,17 @@ config_cache = ../config_deb.cache
config_cache_cross = ../config_deb_cross.cache
# Packages to build:
package_gtk_lib = libwxgtk$(release)
package_gtk_lib = libwxgtk$(release).$(soversion)
package_gtk_dev = libwxgtk$(release)-dev
package_gtk_dbg = libwxgtk$(release)-dbg
package_gtk_py = libwxgtk$(release)-python
package_gtk_py = libwxgtk$(release).$(soversion)-python
package_common = wx$(release)-common
package_headers = wx$(release)-headers
package_i18n = wx$(release)-i18n
package_doc = wx$(release)-doc
package_examples = wx$(release)-examples
package_gtk_dbg_py = libwxgtk$(release)-dbg-python
package_gtk_dbg_py = libwxgtk$(release).$(soversion)-dbg-python
package_msw_dev = libwxmsw$(release)-dev
package_msw_dbg = libwxmsw$(release)-dbg
package_headers_msw = wx$(release)-headers-msw
@@ -75,11 +76,13 @@ objdir_i18n = locale
objdir_msw_shared = objs_msw_sh
objdir_msw_static = objs_msw_st
objdir_msw_dbg = objs_msw_d
objdir_msw_install = objs_msw_install
objdirs = $(objdir_gtk_shared) $(objdir_gtk_static) $(objdir_gtk_debug) \
$(objdir_gtk_install) \
$(objdir_doc_cruft) $(objdir_doc) $(objdir_examples) \
$(objdir_msw_shared) $(objdir_msw_static) $(objdir_msw_dbg)
$(objdir_msw_shared) $(objdir_msw_static) $(objdir_msw_dbg) \
$(objdir_msw_install)
# note that the i18n package is actually arch indep (once built)
# but must be built (and installed) during the arch any phase as
@@ -104,7 +107,8 @@ build_stamps = $(build_stamps_native) $(build_cross_stamps)
# Install targets:
install_all_arch = install-gtk-lib install-gtk-dev install-gtk-dbg \
install-headers install-i18n install-gtk-py
install-common install-headers install-i18n \
install-gtk-py
install_all_indep = install-examples install-doc
@@ -127,11 +131,11 @@ debian/python-version:
echo python_ver := python$(shell python -c "import sys;print sys.version[:3]") > $@
debian/control: $(addprefix debian/,control.in python-version)
sed -e 's/=V/$(release)/g;s/=PY/$(python_ver)/g' < debian/control.in > debian/control
sed -e 's/=V/$(release)/g;s/=SO/$(soversion)/g;s/=PY/$(python_ver)/g' \
< debian/control.in > debian/control
control-files-stamp: debian/control
dh_testdir
# FIXME: we clipped menu out of this one, clean up the rest of that.
@for f in postinst prerm; do \
echo "generating control file $(package_gtk_dev).$$f"; \
sed -e 's/=V/$(release)/g' < debian/libwxgtk-dev.$$f \
@@ -144,7 +148,7 @@ control-files-stamp: debian/control
done;
@for f in dirs docs menu postinst prerm; do \
echo "generating control file $(package_gtk_py).$$f"; \
sed -e 's/=PY/$(python_ver)/g;s/=V/$(release)/g' \
sed -e 's/=PY/$(python_ver)/g;s/=V/$(release)/g;s/=SO/$(soversion)/g' \
< debian/libwxgtk-python.$$f \
> debian/$(package_gtk_py).$$f; \
done;
@@ -159,13 +163,13 @@ control-files-stamp: debian/control
done;
@for f in dirs docs postinst; do \
echo "generating control file $(package_gtk_dbg_py).$$f"; \
sed -e 's/=PY/$(python_ver)/g;s/=V/$(release)/g' \
sed -e 's/=PY/$(python_ver)/g;s/=V/$(release)/g;s/=SO/$(soversion)/g' \
< debian/libwxgtk-python.$$f \
> debian/$(package_gtk_dbg_py).$$f; \
done;
@for f in menu prerm; do \
echo "generating control file $(package_gtk_dbg_py).$$f"; \
sed -e 's/=PY/$(python_ver)/g;s/=V/$(release)/g' \
sed -e 's/=PY/$(python_ver)/g;s/=V/$(release)/g;s/=SO/$(soversion)/g' \
< debian/libwxgtk-dbg-python.$$f \
> debian/$(package_gtk_dbg_py).$$f; \
done;
@@ -179,6 +183,9 @@ control-files-stamp: debian/control
sed -e 's/=V/$(release)/g;s/=H/$(cross_host)/g' < debian/libwxmsw-dbg.$$f \
> debian/$(package_msw_dbg).$$f; \
done;
# @echo "generating control file $(package_common).menu"; \
# sed -e 's/=V/$(release)/g' < debian/wx-common.menu \
# > debian/$(package_common).menu;
@echo "generating control file lintian-override"; \
sed -e 's/=V/$(release)/g' < debian/lintian-override.in \
> debian/lintian-override; \
@@ -275,7 +282,7 @@ build-gtk-shared-contrib-stamp: build-gtk-shared-stamp
dh_testdir
cd $(objdir_gtk_shared)/contrib/src && $(FAST_MAKE)
cd $(objdir_gtk_shared)/contrib/utils/wxrc && $(FAST_MAKE)
cd $(objdir_gtk_shared)/contrib/utils/wxrcedit && $(FAST_MAKE)
#cd $(objdir_gtk_shared)/contrib/utils/wxrcedit && $(FAST_MAKE)
touch $@
build-gtk-static-contrib-stamp: build-gtk-static-stamp
@@ -366,10 +373,10 @@ build-gtk-dbg-py-stamp: build-gtk-debug-stamp purge-release-py
dh_testdir
touch docs/lgpl.txt
cd wxPython \
&& $(python_ver) ./setup.py build \
WX_CONFIG='$(wxconfig-dbg)' \
WXPORT=gtk2 \
UNICODE=1
&& $(python_ver) ./setup.py build \
WX_CONFIG='$(wxconfig-dbg)' \
WXPORT=gtk2 \
UNICODE=1
touch $@
@@ -425,11 +432,7 @@ build-msw-dbg-stamp: configure-msw-dbg-stamp
clean-py:
cd wxPython \
&& rm -rf licence \
&& rm -rf build* \
&& rm -rf docs/xml-raw \
&& rm -rf wx/*.py
cd wxPython && rm -rf licence build* docs/xml-raw wx/*.py
# What to do about src/__version__.py ???
@@ -451,6 +454,7 @@ clean: debian/control clean-py
rm -f debian/$(package_gtk_dev).*
rm -f debian/$(package_gtk_dbg).*
rm -f debian/$(package_gtk_py).*
rm -f debian/$(package_common).*
rm -f debian/$(package_headers).*
rm -f debian/$(package_i18n).*
rm -f debian/$(package_doc).*
@@ -480,9 +484,6 @@ install-gtk-lib: install-gtk-shared-stamp
dh_clean -k
dh_installdirs
dh_install $(objdir_gtk_install)/lib/libwx_*.so.* usr/lib
dh_install $(objdir_gtk_install)/share/wx usr/share
# FIXME: /share/wx may eventually need to go in a common runtime package.
install-gtk-dev: DH_OPTIONS=-p$(package_gtk_dev)
install-gtk-dev: build-gtk-static-stamp build-gtk-static-contrib-stamp install-gtk-shared-stamp
@@ -497,16 +498,6 @@ install-gtk-dev: build-gtk-static-stamp build-gtk-static-contrib-stamp install-g
dh_install $(objdir_gtk_static)/lib/wx/include usr/lib/wx
dh_install $(objdir_gtk_static)/lib/wx/config/gtk* usr/lib/wx/config
# FIXME: What to do about these for multi-version installs? Probably
# put them in a bin package that conflicts.
#
#dh_install $(objdir_gtk_shared)/contrib/utils/wxrc/wxrc usr/bin
#dh_install $(objdir_gtk_shared)/contrib/utils/wxrcedit/wxrcedit usr/bin
#dh_installman debian/wxrc-tools.1
#dh_link usr/share/man/man1/wxrc-tools.1 usr/share/man/man1/wxrc.1 \
# usr/share/man/man1/wxrc-tools.1 usr/share/man/man1/wxrcedit.1
install-gtk-dbg: DH_OPTIONS=-p$(package_gtk_dbg)
install-gtk-dbg: build-gtk-debug-stamp build-gtk-debug-contrib-stamp
dh_testdir
@@ -550,6 +541,27 @@ install-gtk-py: build-gtk-py-stamp
# This is rather bogus, its included in the main copyright file now though.
rm -f debian/$(package_gtk_py)/usr/lib/$(python_ver)/site-packages/wx/tools/XRCed/license.txt
install-common: DH_OPTIONS=-p$(package_common)
install-common: install-gtk-shared-stamp
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# We don't need the afm metrics for gtk2, but we might need them to support
# the 2.4 release for a while still and any other ports we might build.
dh_install $(objdir_gtk_install)/share/wx usr/share
dh_install $(objdir_gtk_install)/share/aclocal usr/share
dh_installman debian/wx-config.1
dh_install $(objdir_gtk_shared)/contrib/utils/wxrc/wxrc usr/bin
# dh_install $(objdir_gtk_shared)/contrib/utils/wxrcedit/wxrcedit usr/bin
dh_installman debian/wxrc-tools.1
dh_link usr/share/man/man1/wxrc-tools.1 usr/share/man/man1/wxrc.1
# dh_link usr/share/man/man1/wxrc-tools.1 usr/share/man/man1/wxrcedit.1
install-headers: DH_OPTIONS=-p$(package_headers)
install-headers: install-gtk-shared-stamp
dh_testdir
@@ -567,10 +579,6 @@ install-headers: install-gtk-shared-stamp
# dh_movefiles --sourcedir=$(objdir_univ_install)
dh_install $(objdir_gtk_install)/include usr
# FIXME: put these in a common package that can conflict.
#dh_install $(objdir_gtk_install)/share/aclocal usr/share
#dh_installman debian/wx-config.1
install-i18n: DH_OPTIONS=-p$(package_i18n)
install-i18n: build-i18n-stamp install-gtk-shared-stamp
dh_testdir
@@ -675,23 +683,21 @@ install-headers-msw:
dh_testroot
dh_clean -k
# FIXME: This installs too much now. Do a dummy install first then
# then determine the links from there instead of the main
# tree. Or grab the list out of the main package install,
# but that presupposed we already built it which we may not.
cd $(objdir_msw_shared) \
&& $(MAKE) install prefix=`pwd`/../$(objdir_msw_install)
@# Symlink all the headers that will be installed by the main -headers
@# package to where the cross compiler will expect them.
@( for f in `ls -1 include/wx`; do \
# Symlink all the headers that will be installed by the main -headers
# package to where the cross compiler will expect them.
@( for f in `ls -1 $(objdir_msw_install)/include/wx-$(release)/wx`; do \
all_h="$${all_h} usr/include/wx-$(release)/wx/$$f usr/$(cross_host)/include/wx-$(release)/wx/$$f"; \
echo "linking header /usr/include/wx-$(release)/wx/$$f"; \
done; \
dh_link $${all_h}; \
)
@# But install this lot for real.
# But install this lot for real.
rm -f debian/$(package_headers_msw)/usr/$(cross_host)/include/wx-$(release)/wx/msw
dh_install include/wx/msw usr/$(cross_host)/include/wx-$(release)/wx
dh_install $(objdir_msw_install)/include/wx-$(release)/wx/msw usr/$(cross_host)/include/wx-$(release)/wx
binary-common:
@@ -793,6 +799,6 @@ binary-fast:control-files-stamp install-gtk-dbg install-msw-dev install-headers
install install_arch install-gtk-lib install-gtk-dev \
install-gtk-dbg \
install-gtk-py install-gtk-dbg-py \
install-headers install-i18n install-doc install-examples \
install-msw-dev install-msw-dbg install-headers-msw
install-common install-headers install-i18n install-doc \
install-examples install-msw-dev install-msw-dbg install-headers-msw