[packages/qgis] packaging initial update
gotar
gotar at pld-linux.org
Mon Jun 5 00:14:25 CEST 2017
commit 0dc306824167449e5510bb1ac06362e9516db5fa
Author: Tomasz Pala <gotar at pld-linux.org>
Date: Mon Jun 5 00:13:45 2017 +0200
packaging initial update
qgis-paralelbuild.patch | 10 ---
qgis.spec | 56 +++++++++------
qgis_sip-ftbfs.patch | 183 ++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 216 insertions(+), 33 deletions(-)
---
diff --git a/qgis.spec b/qgis.spec
index 5071ad2..01e598e 100644
--- a/qgis.spec
+++ b/qgis.spec
@@ -1,13 +1,15 @@
+# TODO: grass, python and server subpackages
Summary: Quantum GIS (QGIS) - a Geographic Information System (GIS)
Summary(pl.UTF-8): Quantum GIS (QGIS) - system informacji geograficznych (GIS)
Name: qgis
Version: 2.18.9
-Release: 0.1
+Release: 1
License: GPL v2+
Group: Applications/Engineering
Source0: http://qgis.org/downloads/%{name}-%{version}.tar.bz2
# Source0-md5: d55d4931651d1967876ba89aab8d2935
-#Patch0: %{name}-paralelbuild.patch
+# 1st chunk of https://daniele.vigano.me/git/dani/copr-dani-qgis/raw/25b8f81ccabbfdb183d4850a66e884c183444f14/qgis_sip-ftbfs.patch
+Patch0: %{name}_sip-ftbfs.patch
URL: http://qgis.org/
BuildRequires: QtGui-devel
BuildRequires: QtNetwork-devel
@@ -24,7 +26,7 @@ BuildRequires: expat-devel >= 1.95
BuildRequires: flex >= 2.5.6
BuildRequires: gdal-devel >= 1.4.0
BuildRequires: geos-devel >= 3.4.0
-#BuildRequires: grass-devel >= 6.0.0
+BuildRequires: grass-devel >= 6.0.0
BuildRequires: gsl-devel >= 1.8
BuildRequires: libspatialite-devel
BuildRequires: postgresql-devel >= 8.0.0
@@ -38,13 +40,14 @@ BuildRequires: qca-devel
BuildRequires: qjson-devel
BuildRequires: qt4-build
BuildRequires: qt4-linguist
-BuildRequires: qt4-qmake
+BuildRequires: qt4-qmake >= 4.8.0
BuildRequires: qwt-devel >= 5.0.0
BuildConflicts: qwt-devel >= 6.1.0
-BuildRequires: sip-PyQt4-qscintilla2
# ...or -DWITH_QWTPOLAR=OFF
+BuildRequires: sip-PyQt4-qscintilla2
BuildRequires: spatialindex-devel
BuildRequires: sqlite3-devel
+Suggests: gpsbabel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
@@ -86,21 +89,28 @@ Statyczna biblioteka QGIS.
%prep
%setup -q
-#%patch0 -p1
+%patch0 -p1
%build
%cmake . \
- -DENABLE_TESTS=FALSE
+ -D GRASS_INCLUDE_DIR7=%{_includedir}/grass72 \
+ -D ENABLE_TESTS:BOOL=FALSE
+# TODO: rpm/qgis.spec.template
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir},%{_datadir}/mime/packages}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}{,/designer}/*.{la,a}
+install -p debian/q*.desktop $RPM_BUILD_ROOT%{_desktopdir}
+install -p debian/q*.png $RPM_BUILD_ROOT%{_pixmapsdir}
+install -p debian/qgis.xml $RPM_BUILD_ROOT%{_datadir}/mime/packages
+
+# %find_lang %{name} --with-qm
%clean
rm -rf $RPM_BUILD_ROOT
@@ -110,27 +120,27 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc AUTHORS BUGS ChangeLog README TODO
-%attr(755,root,root) %{_bindir}/gridmaker
+%doc BUGS CONTRIBUTE.md ChangeLog Exception_to_GPL_for_Qt.txt NEWS README.md
+%attr(755,root,root) %{_bindir}/qbrowser
%attr(755,root,root) %{_bindir}/qgis
-%attr(755,root,root) %{_bindir}/qgis_help
-%attr(755,root,root) %{_bindir}/spit
-%attr(755,root,root) %{_libdir}/libqgis.so.*.*.*
-%dir %{_libdir}/%{name}
-%attr(755,root,root) %{_libdir}/%{name}/*.so
-%dir %{_libdir}/%{name}/designer
-%attr(755,root,root) %{_libdir}/%{name}/designer/*.so
+%attr(755,root,root) %{_libdir}/libqgis*.so.*.*.*
+%{_libdir}/%{name}
+%exclude %{_libdir}/%{name}/grass
+%exclude %{_libdir}/%{name}/plugins/libgrass*.so
+%exclude %{_libdir}/libqgisgrass*.so.*.*.*
+%exclude %{_libdir}/libqgispython.so.*.*.*
%{_datadir}/%{name}
-%{_mandir}/man1/*
+%exclude %{_datadir}/%{name}/python
+%{_desktopdir}/q*.desktop
+%{_pixmapsdir}/q*.png
+%{_datadir}/mime/packages/%{name}.xml
+%{_mandir}/man1/q*.1*
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/qgis-config
-%attr(755,root,root) %{_libdir}/libqgis.so
-%{_libdir}/libqgis.la
+%attr(755,root,root) %{_libdir}/libqgis*.so
%{_includedir}/%{name}
-%{_aclocaldir}/qgis.m4
%files static
%defattr(644,root,root,755)
-%{_libdir}/libqgis.a
+#%{_libdir}/libqgis.a
diff --git a/qgis-paralelbuild.patch b/qgis-paralelbuild.patch
deleted file mode 100644
index 6d8d1e7..0000000
--- a/qgis-paralelbuild.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qgis-0.5.0/i18n/Makefile.am.old 2004-10-02 02:04:17.000000000 +0200
-+++ qgis-0.5.0/i18n/Makefile.am 2004-12-04 10:58:31.000000000 +0100
-@@ -33,6 +33,6 @@
- qgis_zh_CN.ts
-
- %.qm: %.ts
-- cd ..; ./create_qm_files.sh
-+ lrelease $< -qm $@
-
- EXTRA_DIST = $(i18n_SOURCES)
diff --git a/qgis_sip-ftbfs.patch b/qgis_sip-ftbfs.patch
new file mode 100644
index 0000000..3a25e88
--- /dev/null
+++ b/qgis_sip-ftbfs.patch
@@ -0,0 +1,183 @@
+diff --git a/python/core/conversions.sip b/python/core/conversions.sip
+index f07d3ab1db..948821e91e 100644
+--- a/python/core/conversions.sip
++++ b/python/core/conversions.sip
+@@ -2041,3 +2041,178 @@ register_from_qvariant_convertor = (void (*)(FromQVariantConvertorFn))sipImportS
+ register_from_qvariant_convertor(null_from_qvariant_convertor);
+ %End
+ %End
++
++// QList<QVariant> is implemented as a Python list.
++%MappedType QList<QVariant> /TypeHintIn="Sequence[QVariant]", TypeHintOut="List[QVariant]", TypeHintValue="[]"/
++{
++%TypeHeaderCode
++#include <qlist.h>
++%End
++
++%ConvertFromTypeCode
++ // Create the list.
++ PyObject *l;
++
++ if ((l = PyList_New(sipCpp->size())) == NULL)
++ return NULL;
++
++ // Set the list elements.
++ for (int i = 0; i < sipCpp->size(); ++i)
++ {
++ QVariant *t = new QVariant(sipCpp->at(i));
++ PyObject *tobj;
++
++ if ((tobj = sipConvertFromNewType(t, sipType_QVariant, sipTransferObj)) == NULL)
++ {
++ Py_DECREF(l);
++ delete t;
++
++ return NULL;
++ }
++
++ PyList_SET_ITEM(l, i, tobj);
++ }
++
++ return l;
++%End
++
++%ConvertToTypeCode
++ SIP_SSIZE_T len;
++
++ // Check the type if that is all that is required.
++ if (sipIsErr == NULL)
++ {
++ if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
++ return 0;
++
++ for (SIP_SSIZE_T i = 0; i < len; ++i)
++ {
++ PyObject *itm = PySequence_ITEM(sipPy, i);
++ bool ok = (itm && sipCanConvertToType(itm, sipType_QVariant, SIP_NOT_NONE));
++
++ Py_XDECREF(itm);
++
++ if (!ok)
++ return 0;
++ }
++
++ return 1;
++ }
++
++ QList<QVariant> *ql = new QList<QVariant>;
++ len = PySequence_Size(sipPy);
++
++ for (SIP_SSIZE_T i = 0; i < len; ++i)
++ {
++ PyObject *itm = PySequence_ITEM(sipPy, i);
++ int state;
++ QVariant *t = reinterpret_cast<QVariant *>(sipConvertToType(itm, sipType_QVariant, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++
++ Py_DECREF(itm);
++
++ if (*sipIsErr)
++ {
++ sipReleaseType(t, sipType_QVariant, state);
++
++ delete ql;
++ return 0;
++ }
++
++ ql->append(*t);
++
++ sipReleaseType(t, sipType_QVariant, state);
++ }
++
++ *sipCppPtr = ql;
++
++ return sipGetState(sipTransferObj);
++%End
++};
++
++
++// QList<QPolygonF> is implemented as a Python list.
++%MappedType QList<QPolygonF> /TypeHintIn="Sequence[QPolygonF]", TypeHintOut="List[QPolygonF]", TypeHintValue="[]"/
++{
++%TypeHeaderCode
++#include <qlist.h>
++%End
++
++%ConvertFromTypeCode
++ // Create the list.
++ PyObject *l;
++
++ if ((l = PyList_New(sipCpp->size())) == NULL)
++ return NULL;
++
++ // Set the list elements.
++ for (int i = 0; i < sipCpp->size(); ++i)
++ {
++ QPolygonF *t = new QPolygonF(sipCpp->at(i));
++ PyObject *tobj;
++
++ if ((tobj = sipConvertFromNewType(t, sipType_QPolygonF, sipTransferObj)) == NULL)
++ {
++ Py_DECREF(l);
++ delete t;
++
++ return NULL;
++ }
++
++ PyList_SET_ITEM(l, i, tobj);
++ }
++
++ return l;
++%End
++
++%ConvertToTypeCode
++ SIP_SSIZE_T len;
++
++ // Check the type if that is all that is required.
++ if (sipIsErr == NULL)
++ {
++ if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
++ return 0;
++
++ for (SIP_SSIZE_T i = 0; i < len; ++i)
++ {
++ PyObject *itm = PySequence_ITEM(sipPy, i);
++ bool ok = (itm && sipCanConvertToType(itm, sipType_QPolygonF, SIP_NOT_NONE));
++
++ Py_XDECREF(itm);
++
++ if (!ok)
++ return 0;
++ }
++
++ return 1;
++ }
++
++ QList<QPolygonF> *ql = new QList<QPolygonF>;
++ len = PySequence_Size(sipPy);
++
++ for (SIP_SSIZE_T i = 0; i < len; ++i)
++ {
++ PyObject *itm = PySequence_ITEM(sipPy, i);
++ int state;
++ QPolygonF *t = reinterpret_cast<QPolygonF *>(sipConvertToType(itm, sipType_QPolygonF, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++
++ Py_DECREF(itm);
++
++ if (*sipIsErr)
++ {
++ sipReleaseType(t, sipType_QPolygonF, state);
++
++ delete ql;
++ return 0;
++ }
++
++ ql->append(*t);
++
++ sipReleaseType(t, sipType_QPolygonF, state);
++ }
++
++ *sipCppPtr = ql;
++
++ return sipGetState(sipTransferObj);
++%End
++};
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/qgis.git/commitdiff/0dc306824167449e5510bb1ac06362e9516db5fa
More information about the pld-cvs-commit
mailing list