[SCM] Debian Qt/KDE packaging tools branch, experimental, updated. debian/0.15.16-5-ge136b1a

Lisandro Damián Nicanor Pérez lisandro at moszumanska.debian.org
Tue May 12 19:26:24 UTC 2015


Gitweb-URL: http://git.debian.org/?p=pkg-kde/pkg-kde-tools.git;a=commitdiff;h=e136b1a

The following commit has been merged in the experimental branch:
commit e136b1a6cb0fe664969d2a7a1dfed395dac13aa1
Author: Lisandro Damián Nicanor Pérez Meyer <perezmeyer at gmail.com>
Date:   Tue May 12 16:23:33 2015 -0300

    Create pkgkde-mark-private-symbols
    
    In this way we ca use the same script in all the Qt5 packages.
---
 CMakeLists.txt                     |   1 +
 debian/changelog                   |   4 ++
 debian/pkg-kde-tools.install       |   2 +
 man1/pkgkde-mark-private-symbols.1 |  23 +++++++++
 pkgkde-mark-private-symbols        | 103 +++++++++++++++++++++++++++++++++++++
 5 files changed, 133 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index c903938..22048f2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -74,6 +74,7 @@ install(PROGRAMS
     pkgkde-debs2symbols
     pkgkde-gensymbols
     pkgkde-getbuildlogs
+    pkgkde-mark-private-symbols
     pkgkde-override-sc-dev-latest
     pkgkde-symbolshelper
     pkgkde-vcs
diff --git a/debian/changelog b/debian/changelog
index 299750b..69ea293 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,10 @@ pkg-kde-tools (0.15.17~) UNRELEASED; urgency=medium
   * Add man pages for pkgkde-gensymbols and pkgkde-symbolshelper
     (Closes: #782866).
 
+  [ Lisandro Damián Nicanor Pérez Meyer ]
+  * Add pkgkde-mark-private-symbols to avoid shipping the script on every
+    Qt5 package.
+
  -- Maximiliano Curia <maxy at debian.org>  Thu, 26 Mar 2015 17:22:29 +0100
 
 pkg-kde-tools (0.15.16) experimental; urgency=medium
diff --git a/debian/pkg-kde-tools.install b/debian/pkg-kde-tools.install
index 7764558..4367cd5 100644
--- a/debian/pkg-kde-tools.install
+++ b/debian/pkg-kde-tools.install
@@ -5,6 +5,7 @@ usr/bin/pkgkde-debs2symbols
 usr/bin/pkgkde-gensymbols
 usr/bin/pkgkde-getbuildlogs
 usr/bin/pkgkde-git
+usr/bin/pkgkde-mark-private-symbols
 usr/bin/pkgkde-override-sc-dev-latest
 usr/bin/pkgkde-symbolshelper
 usr/bin/pkgkde-vcs
@@ -12,6 +13,7 @@ usr/share/man/man1/dh_movelibkdeinit.1
 usr/share/man/man1/dh_sameversiondep.1
 usr/share/man/man1/dh_sodeps.1
 usr/share/man/man1/pkgkde-git.1
+usr/share/man/man1/pkgkde-mark-private-symbols.1
 usr/share/man/man1/pkgkde-override-sc-dev-latest.1
 usr/share/man/man1/pkgkde-vcs.1
 usr/share/perl5/Debian/Debhelper/
diff --git a/man1/pkgkde-mark-private-symbols.1 b/man1/pkgkde-mark-private-symbols.1
new file mode 100644
index 0000000..ec6620a
--- /dev/null
+++ b/man1/pkgkde-mark-private-symbols.1
@@ -0,0 +1,23 @@
+.TH PKGKDE\-MARK\-PRIVATE\-SYMBOLS 1 "2012-05-27" "0.15" "Debian Qt/KDE tool to mark private symbols in symbols files"
+.SH NAME
+.B pkgkde\-mark\-private\-symbols
+\- a helper tool for Debian pkg-kde symbols handling.
+.SH SYNOPSIS
+.B pkgkde\-mark\-private\-symbols
+[
Bpath/to/headers/dir
R]
+.B pkgkde\-mark\-private\-symbols
+is a helper tool to mark private symbols inside symbols files. It's only
+parameter is the path to where the headers 
Bshipped with the packages
R
+are installed.
+
+.B pkgkde\-vcs
+will by default write the differences as patches to stdout. If the environment
+variable 
BWRITERESULTS
R is set it will overwrite the original symbols files.
+
+.SH LICENSE
+.P
+This program is free software distributed under the terms of the Expat license.
+.SH AUTHORS
+Sune Vuorela <sune at debian.org>
+Lisandro Damián Nicanor Pérez Meyer <lisandro at debian.org>
+Dmitry Schanev <mitya57 at debian.org>
diff --git a/pkgkde-mark-private-symbols b/pkgkde-mark-private-symbols
new file mode 100644
index 0000000..0427b71
--- /dev/null
+++ b/pkgkde-mark-private-symbols
@@ -0,0 +1,103 @@
+#! /bin/sh
+# Copyright (c) 2013 Sune Vuorela <sune at debian.org>
+# Copyright (c) 2014 Lisandro Damián Nicanor Pérez Meyer <lisandro at debian.org>
+# Copyright (c) 2015 Dmitry Schanev <mitya57 at debian.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+# Usage:
+# Define NODEBUG to avoid seeing which symbols are being processed.
+# Define WRITERESULTS to actually mark the real symbols files.
+
+error() {
+	echo $@
+	exit 1
+}
+
+debug() {
+	[ ! -n "${NODEBUG}" ] && echo $@
+}
+
+
+# Check for the correct number of parameters.
+if [ "$#" -lt 1 ]
+then
+	error "You must provide the path to the installed headers's directory."
+fi
+
+if [ "$#" -ne 1 ]
+then
+	error "This script only takes one argument."
+fi
+
+PRIVATE_HEADERS=$1
+
+if [ ! -d ${PRIVATE_HEADERS} ]
+then
+	error "The path provided is not a directory."
+fi
+
+if [ ! -n "${WRITERESULTS}" ]
+then
+	# Create a backup copy of the original symbols file.
+	for symbols_file in `ls debian/*.symbols`
+	do
+		cp $symbols_file $symbols_file.mps
+	done
+fi
+
+# Unmark private symbols from the copies. This will
+# help us find symbols that might have become public.
+for symbols_file in `ls debian/*.symbols`
+do
+	if [ ! -n "${WRITERESULTS}" ]
+	then
+		sed -i 's/ 1$//g' $symbols_file.mps
+	else
+		sed -i 's/ 1$//g' $symbols_file
+	fi
+done
+
+grep -rh class ${PRIVATE_HEADERS} |
+	grep EXPORT |
+	while read class export classname rest
+	do
+		classname=$(echo $classname | sed 's/://')
+		echo ${#classname}${classname}
+	done |
+	while read privateclass
+	do
+		debug Marking ${privateclass} as private
+		if [ -n "${WRITERESULTS}" ]
+		then
+			sed -i "s/\(.*${privateclass}[^ ]* *[^ ]*\)$/ 1/" debian/*.symbols
+		else
+			sed -i "s/\(.*${privateclass}[^ ]* *[^ ]*\)$/ 1/" debian/*.symbols.mps
+		fi
+	done
+
+if [ ! -n "${WRITERESULTS}" ]
+then
+	# Diff the symbols files and output it's differences.
+	for symbols_file in `ls debian/*.symbols`
+	do
+		diff -Nau $symbols_file $symbols_file.mps
+	done
+fi

-- 
Debian Qt/KDE packaging tools



More information about the pkg-kde-commits mailing list