From 665c64898f24335be3417f62a8fb18b02afc79ca Mon Sep 17 00:00:00 2001 From: Konrad Rosenbaum Date: Sat, 14 Apr 2012 17:45:04 +0200 Subject: [PATCH] add qt local package --- qt-local/Makefile | 36 ++++++++++++++++++++ qt-local/build.sh | 56 +++++++++++++++++++++++++++++++ qt-local/configure | 2 + qt-local/debian/compat | 1 + qt-local/debian/control | 72 +++++++++++++++++++++++++++++++++++++++++ qt-local/debian/copyright | 37 +++++++++++++++++++++ qt-local/debian/rules | 21 ++++++++++++ qt-local/debian/source/format | 1 + qt-local/gcc4.7.patch | 28 ++++++++++++++++ 9 files changed, 254 insertions(+), 0 deletions(-) create mode 100644 qt-local/Makefile create mode 100755 qt-local/build.sh create mode 100755 qt-local/configure create mode 100644 qt-local/debian/compat create mode 100644 qt-local/debian/control create mode 100644 qt-local/debian/copyright create mode 100644 qt-local/debian/docs create mode 100755 qt-local/debian/rules create mode 100644 qt-local/debian/source/format create mode 100644 qt-local/gcc4.7.patch diff --git a/qt-local/Makefile b/qt-local/Makefile new file mode 100644 index 0000000..7235ced --- /dev/null +++ b/qt-local/Makefile @@ -0,0 +1,36 @@ +all: build + +CPUS=$(shell expr `cat /proc/cpuinfo |grep ^processor |tail -1|cut -f 2 -d :` + 1) +JOPT=$(shell test $(CPUS) -gt 1 && expr $(CPUS) + 1 || echo $(CPUS)) + +config: + cd source ; ./configure -nomake demos -nomake examples -opensource -confirm-license -prefix /usr/local/qt + +build: + cd source ; make -j $(JOPT) + +install: + make -C source INSTALL_ROOT=`pwd`/debian/qt4-local-dev install + mkdir -p debian/qt4-local/usr/local/qt/bin + mkdir -p debian/qt4-local/usr/local/qt/lib + mkdir -p debian/qt4-local-doc/usr/local/qt + -mv debian/qt4-local-dev/usr/local/qt/lib/libQt*.so* debian/qt4-local/usr/local/qt/lib + -mv debian/qt4-local-dev/usr/local/qt/bin/assistant debian/qt4-local/usr/local/qt/bin + -mv debian/qt4-local-dev/usr/local/qt/bin/qml* debian/qt4-local/usr/local/qt/bin + -mv debian/qt4-local-dev/usr/local/qt/bin/qtconfig debian/qt4-local/usr/local/qt/bin + -mv debian/qt4-local-dev/usr/local/qt/bin/xml* debian/qt4-local/usr/local/qt/bin + -mv debian/qt4-local-dev/usr/local/qt/plugins debian/qt4-local/usr/local/qt/ + -mv debian/qt4-local-dev/usr/local/qt/translations debian/qt4-local/usr/local/qt/ + -mv debian/qt4-local-dev/usr/local/qt/imports debian/qt4-local/usr/local/qt/ + -mv debian/qt4-local-dev/usr/local/qt/doc debian/qt4-local-doc/usr/local/qt/ + mkdir -p debian/qt4-local/usr/local/bin + cd debian/qt4-local/usr/local/bin ; ln -sf ../qt/bin/* . + mkdir -p debian/qt4-local-dev/usr/local/bin + cd debian/qt4-local-dev/usr/local/bin ; ln -sf ../qt/bin/* . + +distclean clean: + make -C source/. $@ + +%: + @echo "Making empty rule" $@ + @echo 'Should I be worried?' diff --git a/qt-local/build.sh b/qt-local/build.sh new file mode 100755 index 0000000..1962d9f --- /dev/null +++ b/qt-local/build.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +set -e + +test $# -lt 1 && { echo "Usage: $0 tarfile" ; exit 1 ; } + +opt=x + +#ends in gz? +test $1 != ${1%.gz} && opt=xz +test $1 != ${1%.bz2} && opt=xj + +tgt=`basename $1` +tgt=${tgt%.tar*} + +ver=$(echo $tgt|tr - ' ') +ver=$(echo $ver|cut -f `echo $ver|wc -w` -d ' ') + +echo -n "Version number of Qt [$ver]: " +read v2 +test x$v2 != x && ver=$v2 + +#unpack +echo "Deleting old directories" +fakeroot debian/rules clean +rm -rf source $tgt +echo "Unpacking Qt $ver from file $1 into $tgt ..." +cat $1 | ( cd `dirname $0` ; tar $opt ; ) + +#patch +echo "Patching Qt..." +( + cd $tgt + patch -p1 <../gcc4.7.patch +) + +#debian changelog +cd `dirname $0` +echo "Creating changelog" +CL=debian/changelog +echo 'qt4-local ('$ver') unstable; urgency=low' >$CL +echo >>$CL +echo ' * packaging upstream/local Qt' $ver >>$CL +echo ' * wrapper package by konrad@silmor.de' >>$CL +echo >>$CL +lnam="`logname`" +test "x$lnam" == x && lnam="`whoami`" +rnam="$(grep ^`logname`: ' `date --rfc-822` >>$CL + +#build +echo "Calling debhelper to build..." +ln -s $tgt source +fakeroot debian/rules binary + diff --git a/qt-local/configure b/qt-local/configure new file mode 100755 index 0000000..e77db8d --- /dev/null +++ b/qt-local/configure @@ -0,0 +1,2 @@ +#!/bin/bash +exec make config diff --git a/qt-local/debian/compat b/qt-local/debian/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/qt-local/debian/compat @@ -0,0 +1 @@ +7 diff --git a/qt-local/debian/control b/qt-local/debian/control new file mode 100644 index 0000000..ac3f9e0 --- /dev/null +++ b/qt-local/debian/control @@ -0,0 +1,72 @@ +Source: qt4-local +Section: unknown +Priority: extra +Maintainer: Konrad Rosenbaum +Build-Depends: debhelper (>= 7.0.50~), gcc-local, + flex, + libasound2-dev [linux-any], + libaudio-dev, + libcups2-dev, + libdbus-1-dev, + libfreetype6-dev, + libgl1-mesa-dev, + libglib2.0-dev, + libglu1-mesa-dev, + libice-dev, + libjpeg-dev, + libmng-dev, + libpam0g-dev, + libpng-dev, + libsm-dev, + libssl-dev, + libtiff4-dev, + libx11-dev, + libxcursor-dev, + libxext-dev, + libxft-dev, + libxi-dev, + libxinerama-dev, + libxmu-dev, + libxrandr-dev, + libxrender-dev, + libxslt1-dev, + libxt-dev, + libxtst-dev, + libxv-dev, + zlib1g-dev +Standards-Version: 3.8.4 +Homepage: http://www.qt-project.org +#Vcs-Git: git://git.debian.org/collab-maint/qt4-local.git +#Vcs-Browser: http://git.debian.org/?p=collab-maint/qt4-local.git;a=summary + +Package: qt4-local +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Suggests: qt4-local-doc +Description: A local installation of Qt4 + This package provides the upstream Qt 4.x in /usr/local/qt. + The Qt version this package provides may be newer or older than the one + provided directly by the distribution. + . + It does not interfere much with the distributions' Qt or a Qt that you build + yourself, since it is installed in /usr/local/qt - you can control which one + you use by including or excluding /usr/local/bin from your PATH variable. + . + This package also depends on gcc-local in order to switch on C++11 features + per default. + . + This package is geared towards users of the newest C++ features. + +Package: qt4-local-doc +Architecture: all +Description: documentation for qt4-local + This package contains the documentation for the local installation of Qt4. + +Package: qt4-local-dev +Architecture: any +Depends: qt4-local, +Recommends: gcc-local, qt4-local-doc +Suggests: libgl1-mesa-dev, libglu1-mesa-dev, +Description: development package for local Qt4 installation + This package contains all development files and tools for the local + Qt 4 installation. \ No newline at end of file diff --git a/qt-local/debian/copyright b/qt-local/debian/copyright new file mode 100644 index 0000000..cf98cf0 --- /dev/null +++ b/qt-local/debian/copyright @@ -0,0 +1,37 @@ +This work was packaged for Debian by: + + Konrad Rosenbaum on Wed, 11 Apr 2012 18:26:45 +0200 + +It was downloaded from: + + + +Upstream Author(s): + + + + +Copyright: + + + + +License: + + + +The Debian packaging is: + + Copyright (C) 2012 Konrad Rosenbaum + +# Please chose a license for your packaging work. If the program you package +# uses a mainstream license, using the same license is the safest choice. +# Please avoid to pick license terms that are more restrictive than the +# packaged work, as it may make Debian's contributions unacceptable upstream. +# If you just want it to be GPL version 3, leave the following lines in. + +and is licensed under the GPL version 3, +see "/usr/share/common-licenses/GPL-3". + +# Please also look if there are files or directories which have a +# different copyright/license attached and list them here. diff --git a/qt-local/debian/docs b/qt-local/debian/docs new file mode 100644 index 0000000..e69de29 diff --git a/qt-local/debian/rules b/qt-local/debian/rules new file mode 100755 index 0000000..c30bbdb --- /dev/null +++ b/qt-local/debian/rules @@ -0,0 +1,21 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. +# +# Modified to make a template file for a multi-binary package with separated +# build-arch and build-indep targets by Bill Allombert 2001 + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# This has to be exported to make some magic below work. +export DH_OPTIONS + + +%: + dh $@ diff --git a/qt-local/debian/source/format b/qt-local/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/qt-local/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/qt-local/gcc4.7.patch b/qt-local/gcc4.7.patch new file mode 100644 index 0000000..573f04d --- /dev/null +++ b/qt-local/gcc4.7.patch @@ -0,0 +1,28 @@ +diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h +--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h.me 2012-01-24 11:24:14.729942043 +0100 ++++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h 2012-01-24 14:28:39.848109534 +0100 +@@ -57,9 +57,7 @@ namespace JSC { + + class JSGlobalObject : public JSVariableObject { + protected: +- using JSVariableObject::JSVariableObjectData; +- +- struct JSGlobalObjectData : public JSVariableObjectData { ++ struct JSGlobalObjectData : public JSVariableObject::JSVariableObjectData { + // We use an explicit destructor function pointer instead of a + // virtual destructor because we want to avoid adding a vtable + // pointer to this struct. Adding a vtable pointer would force the +diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h +--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h.me 2012-01-24 11:40:07.167856677 +0100 ++++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h 2012-01-24 14:28:34.640306629 +0100 +@@ -32,8 +32,7 @@ namespace JSC{ + + class JSStaticScopeObject : public JSVariableObject { + protected: +- using JSVariableObject::JSVariableObjectData; +- struct JSStaticScopeObjectData : public JSVariableObjectData { ++ struct JSStaticScopeObjectData : public JSVariableObject::JSVariableObjectData { + JSStaticScopeObjectData() + : JSVariableObjectData(&symbolTable, ®isterStore + 1) + { + -- 1.7.2.5