Browse Source

Allow half-automatic soname transitions.

Change the packaging to rename files and update debian/control
automatically when the soname changes.
Obviously symbols files and co need to be fixed manually.
master
Bernd Zeimetz 7 years ago
parent
commit
dc5c475357
9 changed files with 198 additions and 12 deletions
  1. +161
    -0
      debian/control.in
  2. +0
    -2
      debian/libgps20.lintian-overrides
  3. +0
    -0
      debian/libgpsLIBGPSSONAME.install
  4. +2
    -0
      debian/libgpsLIBGPSSONAME.lintian-overrides
  5. +1
    -1
      debian/libgpsLIBGPSSONAME.symbols
  6. +0
    -2
      debian/libqgpsmm20.install
  7. +2
    -0
      debian/libqgpsmmLIBGPSSONAME.install
  8. +1
    -1
      debian/libqgpsmmLIBGPSSONAME.symbols
  9. +31
    -6
      debian/rules

+ 161
- 0
debian/control.in View File

@@ -0,0 +1,161 @@
Source: gpsd
Section: misc
Priority: optional
Maintainer: Bernd Zeimetz <bzed@debian.org>
Build-Depends: debhelper (>= 8.1.3~), po-debconf,
quilt,
python-all-dev (>= 2.6.6-3),
python-all-dbg (>= 2.6.6-3),
xsltproc, docbook-xsl, docbook-xml,
libncurses-dev,
libusb-1.0-0-dev [!hurd-any],
libdbus-1-dev, libglib2.0-dev, libdbus-glib-1-dev, makedev,
libbluetooth-dev [linux-any],
libqt4-dev,
lsb-release, bc,
dpkg-dev (>= 1.15.6),
scons (>= 2.0.1), chrpath,
dh-buildinfo,
hardening-includes,
pps-tools (>= 0.20120406+g0deb9c7e-2~) [linux-any],
dh-systemd (>= 1.3)
Standards-Version: 3.9.2
Homepage: http://www.catb.org/gpsd/
Vcs-Browser: http://git.recluse.de/?p=debian/pkg-gpsd.git
Vcs-Git: git://git.recluse.de/debian/pkg-gpsd.git
X-Python-Version: >= 2.3

Package: gpsd
Architecture: any
Depends: netbase | systemd-sysv, lsb-base (>= 3.2-13),
adduser (>= 3.34),
${shlibs:Depends}, ${misc:Depends},
libgpsLIBGPSSONAME (= ${binary:Version})
Recommends: udev [linux-any], ${python:Depends}, python
Breaks: ${gpsd:Breaks}
Suggests: gpsd-clients, dbus
Conflicts: fso-gpsd
Multi-Arch: foreign
Description: Global Positioning System - daemon
The gpsd service daemon can monitor one or more GPS devices connected to
a host computer, making all data on the location and movements of the
sensors available to be queried on TCP port 2947.
.
With gpsd, multiple GPS client applications can share access to devices
without contention or loss of data. Also, gpsd responds to queries with a
format that is substantially easier to parse than the different standards
emitted by GPS devices.

Package: gpsd-dbg
Architecture: any
Section: debug
Priority: extra
Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends},
libgpsLIBGPSSONAME (= ${binary:Version}) | gpsd (= ${binary:Version}) | gpsd-clients (= ${binary:Version}) | python-gps (= ${binary:Version})
Description: Global Positioning System - debugging symbols
The gpsd service daemon can monitor one or more GPS devices connected to
a host computer, making all data on the location and movements of the
sensors available to be queried on TCP port 2947.
.
This package contains the detached debug symbols for gpsd, gpsd-clients,
python-gps, and libgpsLIBGPSSONAME.

Package: gpsd-clients
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
libgpsLIBGPSSONAME (= ${binary:Version}),
python-gps, python-gtk2, python-cairo, ${python:Depends}
Suggests: gpsd
Conflicts: gps
Breaks: ${python:Breaks}
Description: Global Positioning System - clients
The gpsd service daemon can monitor one or more GPS devices connected to
a host computer, making all data on the location and movements of the
sensors available to be queried on TCP port 2947.
.
This package contains auxiliary tools and example clients for monitoring and
testing gpsd.

Package: python-gps
Architecture: any
Section: python
Replaces: gpsd-clients (<< 2.34.dfsg-1)
Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends},
python (>= 2.6) | python-simplejson
Recommends: gpsd
Provides: ${python:Provides}
Breaks: ${python:Breaks}
Conflicts: python-json
Description: Global Positioning System - Python libraries
The gpsd service daemon can monitor one or more GPS devices connected to
a host computer, making all data on the location and movements of the
sensors available to be queried on TCP port 2947.
.
This package contains a Python interface to connect to gpsd, together with
a module providing a controlled testing environment. It also ships two tools
which utilize the interface: gpsprof for latency-profiling, and gpsfake to
simulate a GPS by playing back a logfile.

Package: libgpsLIBGPSSONAME
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
Suggests: gpsd
Conflicts: fso-gpsd
Pre-Depends: ${misc:Pre-Depends}
Multi-Arch: same
Description: Global Positioning System - library
The gpsd service daemon can monitor one or more GPS devices connected to
a host computer, making all data on the location and movements of the
sensors available to be queried on TCP port 2947.
.
This package provides libgps, a C service library for querying GPS
devices. It supports both a low-level interface, which communicates
directly with the device to which the GPS is connected, and a high-level
interface, which goes through gpsd and is intended for concurrent use by
several applications.

Package: libgps-dev
Architecture: any
Section: libdevel
Depends: libgpsLIBGPSSONAME (= ${binary:Version}), ${misc:Depends}, pkg-config
Conflicts: gpsd (<< 2.34.dfsg-1)
Description: Global Positioning System - development files
The gpsd service daemon can monitor one or more GPS devices connected to
a host computer, making all data on the location and movements of the
sensors available to be queried on TCP port 2947.
.
This package contains the header and development files needed to build
programs and packages using libgps.

Package: libqgpsmmLIBGPSSONAME
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Multi-Arch: same
Description: Global Positioning System - Qt wrapper for libgps
The gpsd service daemon can monitor one or more GPS devices connected to
a host computer, making all data on the location and movements of the
sensors available to be queried on TCP port 2947.
.
This package provides libQgpsmm, the Qt version of libgpsmm.
It is a wrapper over libgps, the service library for querying GPS
devices. libQgpsmm is available on all platforms which are supported
by Qt4.

Package: libqgpsmm-dev
Architecture: any
Section: libdevel
Depends: ${misc:Depends}, pkg-config,
libqgpsmmLIBGPSSONAME (= ${binary:Version}),
libgps-dev (= ${binary:Version})
Description: Global Positioning System - Qt wrapper for libgps (development)
The gpsd service daemon can monitor one or more GPS devices connected to
a host computer, making all data on the location and movements of the
sensors available to be queried on TCP port 2947.
.
This package provides libQgpsmm, the Qt version of libgpsmm.
It is a wrapper over libgps, the service library for querying GPS
devices. libQgpsmm is available on all platforms which are supported
by Qt4.

+ 0
- 2
debian/libgps20.lintian-overrides View File

@@ -1,2 +0,0 @@
libgps20: shlib-missing-in-control-file libgpsd 21 for usr/lib/*/libgpsd.so.21.0.0
libgps20: shlib-missing-in-symbols-control-file libgpsd 21 for usr/lib/*/libgpsd.so.21.0.0

debian/libgps20.install → debian/libgpsLIBGPSSONAME.install View File


+ 2
- 0
debian/libgpsLIBGPSSONAME.lintian-overrides View File

@@ -0,0 +1,2 @@
libgpsLIBGPSSONAME: shlib-missing-in-control-file libgpsd LIBGPSDSONAME for usr/lib/*/libgpsd.so.LIBGPSDSONAME.0.0
libgpsLIBGPSSONAME: shlib-missing-in-symbols-control-file libgpsd LIBGPSDSONAME for usr/lib/*/libgpsd.so.LIBGPSDSONAME.0.0

debian/libgps20.symbols → debian/libgpsLIBGPSSONAME.symbols View File

@@ -1,4 +1,4 @@
libgps.so.20 libgps20 #MINVER#
libgps.so.LIBGPSSONAME libgpsLIBGPSSONAME #MINVER#
(c++)"gpsmm::enable_debug(int, _IO_FILE*)@Base" 3.3
(c++)"gpsmm::gps_inner_open(char const*, char const*)@Base" 3.3
(c++)"gpsmm::data()@Base" 3.3

+ 0
- 2
debian/libqgpsmm20.install View File

@@ -1,2 +0,0 @@
usr/lib/*/libQgpsmm.so.20
usr/lib/*/libQgpsmm.so.20.*

+ 2
- 0
debian/libqgpsmmLIBGPSSONAME.install View File

@@ -0,0 +1,2 @@
usr/lib/*/libQgpsmm.so.LIBGPSSONAME
usr/lib/*/libQgpsmm.so.LIBGPSSONAME.*

debian/libqgpsmm20.symbols → debian/libqgpsmmLIBGPSSONAME.symbols View File

@@ -1,4 +1,4 @@
libQgpsmm.so.20 libqgpsmm20 #MINVER#
libQgpsmm.so.LIBGPSSONAME libqgpsmmLIBGPSSONAME #MINVER#
(c++)"gps_sock_data(gps_data_t const*)@Base" 3.3
(c++)"gps_sock_open(char const*, char const*, gps_data_t*)@Base" 3.3
(c++)"gps_sock_read(gps_data_t*)@Base" 3.3

+ 31
- 6
debian/rules View File

@@ -3,8 +3,13 @@
#uncomment if debhelper should be verbose
#export DH_VERBOSE=1

LIBGPS_SONAME := 20
LIBGPSD_SONAME := 21
LIBGPS_SONAME := $(strip $(shell grep -E '^libgps_version_current' SConstruct | sed 's,.*=[^0-9]*\([0-9]*\).*,\1,'))
LIBGPSD_SONAME := $(strip $(shell grep -E '^libgpsd_version_current' SConstruct | sed 's,.*=[^0-9]*\([0-9]*\).*,\1,'))


LIBGPS_DEBIAN_FILE_SOURCES := $(strip $(shell ls -1 debian/*LIBGPSSONAME* ))
LIBGPS_DEBIAN_FILE_TARGETS := $(strip $(shell echo $(LIBGPS_DEBIAN_FILE_SOURCES) | sed 's,LIBGPSSONAME,$(LIBGPS_SONAME),g'))


include /usr/share/quilt/quilt.make

@@ -79,6 +84,25 @@ SCONS_ENV := set -e ;\
export CPPFLAGS="$(cppflags)";


$(LIBGPS_DEBIAN_FILE_TARGETS): $(LIBGPS_DEBIAN_FILE_SOURCES)
for source in $(LIBGPS_DEBIAN_FILE_SOURCES); do \
target=$$(echo "$$source" | sed 's,LIBGPSSONAME,$(LIBGPS_SONAME),g') ;\
sed 's,LIBGPSSONAME,$(LIBGPS_SONAME),g;s,LIBGPSDSONAME,$(LIBGPSD_SONAME),g' "$$source" > "$$target" ;\
done

debian/control: debian/control.in
if grep -q "Package: libgps$(LIBGPS_SONAME)" debian/control; then \
touch debian/control ;\
else \
rm -f $@ ;\
sed 's,LIBGPSSONAME,$(LIBGPS_SONAME),g;s,LIBGPSDSONAME,$(LIBGPSD_SONAME),g' $< > $@ ;\
if [ -d .git ]; then \
git add debian/control ;\
git commit -m 'Updating debian/control from debian/control.in' debian/control ;\
fi ;\
fi


build-indep: build
build-arch: build

@@ -111,7 +135,7 @@ build-static-stamp: $(QUILT_STAMPFN)
touch $@

clean: clean-patched unpatch
clean-patched:
clean-patched: debian/control
dh_testdir
dh_testroot
set -e; \
@@ -129,11 +153,12 @@ clean-patched:
config.log \
static_lib \
debian/shlibs.local \
leapsecond.pyc
leapsecond.pyc \
$(LIBGPS_DEBIAN_FILE_TARGETS)
dh_clean

install: install-stamp
install-stamp: build-stamp build-static-stamp
install-stamp: build-stamp build-static-stamp $(LIBGPS_DEBIAN_FILE_TARGETS)
dh_testdir
dh_testroot
dh_prep
@@ -227,4 +252,4 @@ binary-arch: binary
.PHONY: binary binary-indep binary-arch \
install install-arch install-indep \
clean clean-patched \
build
build debian/control

Loading…
Cancel
Save