[Python-modules-commits] r14336 - in packages/pyside/branches/trunk-maverick/debian (4 files)
odyx-guest at users.alioth.debian.org
odyx-guest at users.alioth.debian.org
Wed Sep 1 09:19:17 UTC 2010
Date: Wednesday, September 1, 2010 @ 09:19:04
Author: odyx-guest
Revision: 14336
Add debian/dh_pycmakedeps to automagically compute the module dependencies.
Added:
packages/pyside/branches/trunk-maverick/debian/dh_pycmakedeps
Modified:
packages/pyside/branches/trunk-maverick/debian/changelog
packages/pyside/branches/trunk-maverick/debian/control
packages/pyside/branches/trunk-maverick/debian/rules
Modified: packages/pyside/branches/trunk-maverick/debian/changelog
===================================================================
--- packages/pyside/branches/trunk-maverick/debian/changelog 2010-08-31 21:53:23 UTC (rev 14335)
+++ packages/pyside/branches/trunk-maverick/debian/changelog 2010-09-01 09:19:04 UTC (rev 14336)
@@ -1,3 +1,10 @@
+pyside (0.4.0-2~exp0+ubuntu1) maverick; urgency=low
+
+ * Add debian/dh_pycmakedeps to automagically compute the module
+ dependencies.
+
+ -- Didier Raboud <didier at raboud.com> Wed, 01 Sep 2010 00:06:04 +0200
+
pyside (0.4.0-2~exp0) maverick; urgency=low
* Merge from debian trunk.
Modified: packages/pyside/branches/trunk-maverick/debian/control
===================================================================
--- packages/pyside/branches/trunk-maverick/debian/control 2010-08-31 21:53:23 UTC (rev 14335)
+++ packages/pyside/branches/trunk-maverick/debian/control 2010-09-01 09:19:04 UTC (rev 14336)
@@ -89,7 +89,7 @@
Package: python-pyside.qtcore
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 core module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -99,7 +99,7 @@
Package: python-pyside.qtgui
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 GUI module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -109,7 +109,7 @@
Package: python-pyside.qthelp
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 help module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -119,7 +119,7 @@
Package: python-pyside.qtnetwork
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 network module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -129,7 +129,7 @@
Package: python-pyside.qtopengl
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 OpenGL module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -142,7 +142,7 @@
Package: python-pyside.phonon
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 Phonon module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -152,7 +152,7 @@
Package: python-pyside.qtscript
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 script module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -163,7 +163,7 @@
Package: python-pyside.qtsql
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 SQL module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -173,7 +173,7 @@
Package: python-pyside.qtsvg
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 SVG module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -186,7 +186,7 @@
Package: python-pyside.qttest
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 test module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -196,7 +196,7 @@
Package: python-pyside.qtuitools
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 UI tools module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -206,7 +206,7 @@
Package: python-pyside.qtwebkit
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 WebKit module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
@@ -216,7 +216,7 @@
Package: python-pyside.qtxml
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Depends: ${pycmakedeps:Depends}, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
Description: Qt 4 XML module - Python bindings
Qt is a cross-platform C++ application framework. Qt's primary feature
Added: packages/pyside/branches/trunk-maverick/debian/dh_pycmakedeps
===================================================================
--- packages/pyside/branches/trunk-maverick/debian/dh_pycmakedeps (rev 0)
+++ packages/pyside/branches/trunk-maverick/debian/dh_pycmakedeps 2010-09-01 09:19:04 UTC (rev 14336)
@@ -0,0 +1,91 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_pycmakedeps - detect dependencies in Python modules compiled with CMake
+
+=cut
+
+use strict;
+use File::Find;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_pycmakedeps> [I<debhelper options>] B<--modules-root=>I<modules root directory>
+
+=head1 DESCRIPTION
+
+=head1 OPTIONS
+
+=over 1
+
+=item B<--modules-root=>I<PySide>
+
+=back
+
+=cut
+
+init(options => {
+ "modules-root=s" => \$dh{MODULES_ROOT},
+});
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp = tmpdir($package);
+ my $ext=pkgext($package);
+
+ my $substvars="debian/${ext}substvars";
+
+ my $install=pkgfile($package,'install');
+
+ if ($install) {
+ my @installModules=filearray(${install});
+
+ my @allInstall=glob('debian/*.install');
+ # Determine the modules name (can have more than 1)
+ foreach my $installModule (@installModules) {
+ # Only take those that are explicitely named
+ if ( $installModule =~ m/.so$/ and $installModule =~ s/^.*\/([a-zA-Z]*)\.so$/$1/g ) {
+ # Go along them
+ foreach my $module ($installModule) {
+ # Parse the CMakeLists to find the dependencies
+ my $file=$dh{MODULES_ROOT}.${module}.'/CMakeLists.txt';
+ open (CMAKEFILE, $file) || error("cannot read $file: $1");
+ while (<CMAKEFILE>) {
+ chomp;
+ my $line = $_;
+ # Dependencies
+ if ( $line =~ s/add_dependencies\(${module} (.*)\)/$1/ ) {
+ foreach my $module_dep (split(' ',$line)) {
+ my @allInstall=glob('debian/*.install');
+ # Find the modules packages
+ foreach my $other_package_install (@allInstall) {
+ my @opi_content = filearray($other_package_install);
+ foreach my $opi_line (@opi_content) {
+ if( $opi_line =~ m/\/${module_dep}.so$/ ) {
+ $other_package_install =~ s/debian\/(.*)\.install/$1/;
+ addsubstvar($package, "pycmakedeps:Depends", "$other_package_install (= \${binary:Version})");
+ }
+ }
+ }
+ }
+ }
+ }
+ close CMAKEFILE;
+ }
+ }
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of the pyside packaging but is made to work with debhelper.
+
+=head1 AUTHORS
+
+Didier Raboud <didier at raboud.com>
+
+=cut
Property changes on: packages/pyside/branches/trunk-maverick/debian/dh_pycmakedeps
___________________________________________________________________
Added: svn:executable
+ *
Modified: packages/pyside/branches/trunk-maverick/debian/rules
===================================================================
--- packages/pyside/branches/trunk-maverick/debian/rules 2010-08-31 21:53:23 UTC (rev 14335)
+++ packages/pyside/branches/trunk-maverick/debian/rules 2010-09-01 09:19:04 UTC (rev 14336)
@@ -96,3 +96,7 @@
# Move the debug library to the correct package.
$(shell rename 's/(debian\/libpyside0.4\/)(.*)_d\.so(.*)$$/debian\/python-pyside-dbg\/$$2_d.so$$3/' \
debian/libpyside0.4/usr/lib/*_d.so*)
+
+override_dh_gencontrol:
+ debian/dh_pycmakedeps --modules-root=PySide/
+ dh_gencontrol
More information about the Python-modules-commits
mailing list