[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