diff options
-rw-r--r-- | sci-geosciences/qgis/Manifest | 1 | ||||
-rw-r--r-- | sci-geosciences/qgis/files/qgis-3.0.1-check-constraints.patch | 237 | ||||
-rw-r--r-- | sci-geosciences/qgis/files/qgis-3.0.1-qt-5.11.patch | 199 | ||||
-rw-r--r-- | sci-geosciences/qgis/qgis-3.0.1.ebuild | 222 |
4 files changed, 659 insertions, 0 deletions
diff --git a/sci-geosciences/qgis/Manifest b/sci-geosciences/qgis/Manifest index 3c03fb623174..9b2a249d1e5e 100644 --- a/sci-geosciences/qgis/Manifest +++ b/sci-geosciences/qgis/Manifest @@ -2,5 +2,6 @@ DIST qgis-2.18.12.tar.bz2 84936155 BLAKE2B 0d47094ae8dac3101888140b5773a8e7b52d2 DIST qgis-2.18.14.tar.bz2 84935301 BLAKE2B 37468062894235608f6efd0b58311e019f57ec0b3e6db63d8fef92ae93ac95ed13fe51290ebd063d31f1ea2318a23d7bdabb0774b451a2305064162addb4da29 SHA512 da738ae25f1207441a52091af9a3e70fd17f95704a23e27f72ee4c7ba213fd9ccf2d6685d91c34f94c555ca2dce420d6a07840b1fa682d6b960abdf3ba177036 DIST qgis-2.18.16.tar.bz2 84976777 BLAKE2B ad68ce63698266bc081db7be0529ef50f66ee9c048b2e2a743cfc24d1ddb161c86c71283c09740a22c45476f863516f8855c69a5ccf074e9676d1ed5a09563a1 SHA512 1fe060c1d392f304eea10a211815e14081299a865e34114625f3a5f2a1b365f571bb30878a21cbf25bc32285ffc689d37cb7dbcab129ce5f03ccd6fa0781876d DIST qgis-3.0.0.tar.bz2 94186303 BLAKE2B 2b2623c218a86af22ee13e1271e66244fc6191732db6bc694860015824525188308609c8758062910ba7065ca6790d4091beb15ff324d1a8410e65525cf785b0 SHA512 91201c5d48f9450734a6268f70cba830e363db15a979266af1a7f2ef73857ca11e89145d027f394d052d0536e54b4f62523b1ad49bbe698743fec882ceecfabe +DIST qgis-3.0.1.tar.bz2 94217493 BLAKE2B 9f3b9e9d76dfac574cbe7c9b95f0dc59fb9ad74ddd5c5a420931107200b1ba6641e2b74cff681ecec8cdab777cda69c0e698fa952bc28cd79c761f4636f62f00 SHA512 c07fc9b033fa043e38098d226dac69ea35890109c45ccc4c47017e0af2d3fbed4b1a71b3fd7dc76fea3eb43fbcdbfb660df50d779da8c43f68a4402b239f8f75 DIST qgis_sample_data-2.8.14.tar.gz 22119181 BLAKE2B 2d0565e91ec8119382bc9ab8e262dc04227fe8289146794891759ff5a32012245270614ba1119a6329fc45cf56852830c2079589309aa3467873f71f5c608eac SHA512 6b2653d5b57ffc2c2317639dac212429840984ac917ca3e452b39aabb99ea106d1a77c1c1dd967244ef16ede9deae751b170affdf08b72239eafed5b8977da3d DIST qgis_sample_data.tar.gz 13601736 BLAKE2B 92acadbd009b181e74516120b3a700c96c7c1a732240434439bbe51afa441dee6521dac7bf6629fb5d7489b63fd0e0a45b1871df099820e8cd594920fa1499b7 SHA512 5847d7b32e5f75e771adf6b959847024f55b2360c307bd80e5628595fc53f5aaca18adf6cb00fa027a7e7b326c7f72bab58df16674daf20b77c676e163d93f78 diff --git a/sci-geosciences/qgis/files/qgis-3.0.1-check-constraints.patch b/sci-geosciences/qgis/files/qgis-3.0.1-check-constraints.patch new file mode 100644 index 000000000000..c07cd554dbf4 --- /dev/null +++ b/sci-geosciences/qgis/files/qgis-3.0.1-check-constraints.patch @@ -0,0 +1,237 @@ +From f07389b421065d40abe9b5355c8e329229f792d9 Mon Sep 17 00:00:00 2001 +From: Denis Rouzaud <denis.rouzaud@gmail.com> +Date: Sat, 24 Mar 2018 18:30:45 +0100 +Subject: [PATCH] fix constraints not checked when they should be (#6550) + (#6599) + +--- + python/gui/qgsattributeform.sip.in | 15 ++++++++++++++- + src/gui/attributetable/qgsdualview.cpp | 9 ++++++--- + src/gui/attributetable/qgsdualview.h | 2 +- + src/gui/qgsattributeform.cpp | 21 +++++++++++++++------ + src/gui/qgsattributeform.h | 14 +++++++++++++- + tests/src/gui/testqgsattributeform.cpp | 14 +++++++------- + 6 files changed, 56 insertions(+), 19 deletions(-) + +diff --git a/python/gui/qgsattributeform.sip.in b/python/gui/qgsattributeform.sip.in +index 8b489dd3089..45deba11a31 100644 +--- a/python/gui/qgsattributeform.sip.in ++++ b/python/gui/qgsattributeform.sip.in +@@ -139,12 +139,25 @@ on all attribute widgets. + + signals: + +- void attributeChanged( const QString &attribute, const QVariant &value ); ++ void attributeChanged( const QString &attribute, const QVariant &value ); + %Docstring + Notifies about changes of attributes + + :param attribute: The name of the attribute that changed. + :param value: The new value of the attribute. ++ ++.. deprecated:: since 3.0 ++%End ++ ++ void widgetValueChanged( const QString &attribute, const QVariant &value, bool attributeChanged ); ++%Docstring ++Notifies about changes of attributes ++ ++:param attribute: The name of the attribute that changed. ++:param value: The new value of the attribute. ++:param attributeChanged: If true, it corresponds to an actual change of the feature attribute ++ ++.. versionadded:: 3.0.1 + %End + + +diff --git a/src/gui/attributetable/qgsdualview.cpp b/src/gui/attributetable/qgsdualview.cpp +index d7ccfa1a8a1..2c640036a02 100644 +--- a/src/gui/attributetable/qgsdualview.cpp ++++ b/src/gui/attributetable/qgsdualview.cpp +@@ -98,7 +98,7 @@ void QgsDualView::init( QgsVectorLayer *layer, QgsMapCanvas *mapCanvas, const Qg + mAttributeEditor->layout()->addWidget( mAttributeForm ); + } + +- connect( mAttributeForm, &QgsAttributeForm::attributeChanged, this, &QgsDualView::featureFormAttributeChanged ); ++ connect( mAttributeForm, &QgsAttributeForm::widgetValueChanged, this, &QgsDualView::featureFormAttributeChanged ); + connect( mAttributeForm, &QgsAttributeForm::modeChanged, this, &QgsDualView::formModeChanged ); + connect( mMasterModel, &QgsAttributeTableModel::modelChanged, mAttributeForm, &QgsAttributeForm::refreshFeature ); + connect( mAttributeForm, &QgsAttributeForm::filterExpressionSet, this, &QgsDualView::filterExpressionSet ); +@@ -880,9 +880,12 @@ void QgsDualView::extentChanged() + emit filterChanged(); + } + +-void QgsDualView::featureFormAttributeChanged() ++void QgsDualView::featureFormAttributeChanged( const QString &attribute, const QVariant &value, bool attributeChanged ) + { +- mFeatureList->setCurrentFeatureEdited( true ); ++ Q_UNUSED( attribute ); ++ Q_UNUSED( value ); ++ if ( attributeChanged ) ++ mFeatureList->setCurrentFeatureEdited( true ); + } + + void QgsDualView::setFilteredFeatures( const QgsFeatureIds &filteredFeatures ) +diff --git a/src/gui/attributetable/qgsdualview.h b/src/gui/attributetable/qgsdualview.h +index 73cb420f44b..264adbacb29 100644 +--- a/src/gui/attributetable/qgsdualview.h ++++ b/src/gui/attributetable/qgsdualview.h +@@ -327,7 +327,7 @@ class GUI_EXPORT QgsDualView : public QStackedWidget, private Ui::QgsDualViewBas + * Will forward this signal to the feature list to visually represent + * that there has been an edit event. + */ +- void featureFormAttributeChanged(); ++ void featureFormAttributeChanged( const QString &attribute, const QVariant &value, bool attributeChanged ); + + /** + * Will be called periodically, when loading layers from slow data providers. +diff --git a/src/gui/qgsattributeform.cpp b/src/gui/qgsattributeform.cpp +index df1e98282f6..7a707c6fd7d 100644 +--- a/src/gui/qgsattributeform.cpp ++++ b/src/gui/qgsattributeform.cpp +@@ -240,6 +240,7 @@ void QgsAttributeForm::changeAttribute( const QString &field, const QVariant &va + + void QgsAttributeForm::setFeature( const QgsFeature &feature ) + { ++ mIsSettingFeature = true; + mFeature = feature; + + switch ( mMode ) +@@ -266,6 +267,7 @@ void QgsAttributeForm::setFeature( const QgsFeature &feature ) + break; + } + } ++ mIsSettingFeature = false; + } + + bool QgsAttributeForm::saveEdits() +@@ -692,11 +694,7 @@ void QgsAttributeForm::onAttributeChanged( const QVariant &value ) + QgsEditorWidgetWrapper *eww = qobject_cast<QgsEditorWidgetWrapper *>( sender() ); + Q_ASSERT( eww ); + +- const QVariant oldValue = mFeature.attribute( eww->fieldIdx() ); +- +- // Safety check, if we receive the same value again, no reason to do anything +- if ( oldValue == value && oldValue.isNull() == value.isNull() ) +- return; ++ bool signalEmitted = false; + + if ( mValuesInitialized ) + mDirty = true; +@@ -707,7 +705,12 @@ void QgsAttributeForm::onAttributeChanged( const QVariant &value ) + case IdentifyMode: + case AddFeatureMode: + { ++ Q_NOWARN_DEPRECATED_PUSH + emit attributeChanged( eww->field().name(), value ); ++ Q_NOWARN_DEPRECATED_PUSH ++ emit widgetValueChanged( eww->field().name(), value, !mIsSettingFeature ); ++ ++ signalEmitted = true; + + updateJoinedFields( *eww ); + +@@ -739,7 +742,13 @@ void QgsAttributeForm::onAttributeChanged( const QVariant &value ) + + updateConstraints( eww ); + +- emit attributeChanged( eww->field().name(), value ); ++ if ( !signalEmitted ) ++ { ++ Q_NOWARN_DEPRECATED_PUSH ++ emit attributeChanged( eww->field().name(), value ); ++ Q_NOWARN_DEPRECATED_PUSH ++ emit widgetValueChanged( eww->field().name(), value, !mIsSettingFeature ); ++ } + } + + void QgsAttributeForm::updateAllConstraints() +diff --git a/src/gui/qgsattributeform.h b/src/gui/qgsattributeform.h +index 6102825b286..41f16cd8614 100644 +--- a/src/gui/qgsattributeform.h ++++ b/src/gui/qgsattributeform.h +@@ -178,8 +178,19 @@ class GUI_EXPORT QgsAttributeForm : public QWidget + * + * \param attribute The name of the attribute that changed. + * \param value The new value of the attribute. ++ * \deprecated since 3.0 + */ +- void attributeChanged( const QString &attribute, const QVariant &value ); ++ Q_DECL_DEPRECATED void attributeChanged( const QString &attribute, const QVariant &value ); ++ ++ /** ++ * Notifies about changes of attributes ++ * ++ * \param attribute The name of the attribute that changed. ++ * \param value The new value of the attribute. ++ * \param attributeChanged If true, it corresponds to an actual change of the feature attribute ++ * \since QGIS 3.0.1 ++ */ ++ void widgetValueChanged( const QString &attribute, const QVariant &value, bool attributeChanged ); + + /** + * Will be emitted before the feature is saved. Use this signal to perform sanity checks. +@@ -367,6 +378,7 @@ class GUI_EXPORT QgsAttributeForm : public QWidget + QMap<const QgsVectorLayerJoinInfo *, QgsFeature> mJoinedFeatures; + bool mValuesInitialized = false; + bool mDirty = false; ++ bool mIsSettingFeature = false; + + struct ContainerInformation + { +diff --git a/tests/src/gui/testqgsattributeform.cpp b/tests/src/gui/testqgsattributeform.cpp +index d4629cb0762..9b6d5c46444 100644 +--- a/tests/src/gui/testqgsattributeform.cpp ++++ b/tests/src/gui/testqgsattributeform.cpp +@@ -111,24 +111,24 @@ void TestQgsAttributeForm::testFieldConstraint() + // build a form for this feature + QgsAttributeForm form2( layer ); + form2.setFeature( ft ); +- QSignalSpy spy( &form2, SIGNAL( attributeChanged( QString, QVariant ) ) ); ++ QSignalSpy spy( &form2, SIGNAL( widgetValueChanged( QString, QVariant, bool ) ) ); + ww = qobject_cast<QgsEditorWidgetWrapper *>( form2.mWidgets[0] ); + + // set value to 1 + ww->setValue( 1 ); +- QCOMPARE( spy.count(), 2 ); ++ QCOMPARE( spy.count(), 1 ); + QCOMPARE( constraintsLabel( &form2, ww )->text(), validLabel ); + + // set value to null + spy.clear(); + ww->setValue( QVariant() ); +- QCOMPARE( spy.count(), 2 ); ++ QCOMPARE( spy.count(), 1 ); + QCOMPARE( constraintsLabel( &form2, ww )->text(), invalidLabel ); + + // set value to 1 + spy.clear(); + ww->setValue( 1 ); +- QCOMPARE( spy.count(), 2 ); ++ QCOMPARE( spy.count(), 1 ); + QCOMPARE( constraintsLabel( &form2, ww )->text(), validLabel ); + + // set a soft constraint +@@ -205,11 +205,11 @@ void TestQgsAttributeForm::testFieldMultiConstraints() + ww1 = qobject_cast<QgsEditorWidgetWrapper *>( form2.mWidgets[1] ); + ww2 = qobject_cast<QgsEditorWidgetWrapper *>( form2.mWidgets[2] ); + ww3 = qobject_cast<QgsEditorWidgetWrapper *>( form2.mWidgets[3] ); +- QSignalSpy spy2( &form2, SIGNAL( attributeChanged( QString, QVariant ) ) ); ++ QSignalSpy spy2( &form2, SIGNAL( widgetValueChanged( QString, QVariant, bool ) ) ); + + // change value + ww0->setValue( 2 ); // update col0 +- QCOMPARE( spy2.count(), 2 ); ++ QCOMPARE( spy2.count(), 1 ); + + QCOMPARE( constraintsLabel( &form2, ww0 )->text(), inv ); // 2 < ( 1 + 2 ) + QCOMPARE( constraintsLabel( &form2, ww1 )->text(), QString() ); +@@ -219,7 +219,7 @@ void TestQgsAttributeForm::testFieldMultiConstraints() + // change value + spy2.clear(); + ww0->setValue( 1 ); // update col0 +- QCOMPARE( spy2.count(), 2 ); ++ QCOMPARE( spy2.count(), 1 ); + + QCOMPARE( constraintsLabel( &form2, ww0 )->text(), val ); // 1 < ( 1 + 2 ) + QCOMPARE( constraintsLabel( &form2, ww1 )->text(), QString() ); diff --git a/sci-geosciences/qgis/files/qgis-3.0.1-qt-5.11.patch b/sci-geosciences/qgis/files/qgis-3.0.1-qt-5.11.patch new file mode 100644 index 000000000000..c78c0dec3bb0 --- /dev/null +++ b/sci-geosciences/qgis/files/qgis-3.0.1-qt-5.11.patch @@ -0,0 +1,199 @@ +From 0a903118389029fd25fbf4eddd20f60c8856ab4e Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com> +Date: Wed, 28 Mar 2018 20:48:58 +0200 +Subject: [PATCH] Fix build with Qt-5.11 (missing headers) + +--- + src/app/layout/qgslayoutpolylinewidget.cpp | 2 ++ + src/app/layout/qgslayoutscalebarwidget.cpp | 1 + + src/app/layout/qgslayoutscalebarwidget.h | 2 ++ + src/app/qgslabelinggui.cpp | 2 ++ + src/app/qgsrulebasedlabelingwidget.cpp | 1 + + src/gui/layout/qgslayoutitemwidget.cpp | 2 ++ + src/gui/layout/qgslayoutnewitempropertiesdialog.cpp | 2 ++ + src/gui/qgscompoundcolorwidget.cpp | 1 + + src/gui/qgsextentgroupbox.cpp | 1 + + src/gui/qgsgradientcolorrampdialog.cpp | 1 + + src/gui/qgsgroupwmsdatadialog.cpp | 1 + + src/gui/qgstextformatwidget.cpp | 2 ++ + src/gui/symbology/qgssymbollayerwidget.cpp | 1 + + src/providers/arcgisrest/qgsarcgisservicesourceselect.cpp | 1 + + 14 files changed, 20 insertions(+) + +diff --git a/src/app/layout/qgslayoutpolylinewidget.cpp b/src/app/layout/qgslayoutpolylinewidget.cpp +index 178968917a..28d5d25a4d 100644 +--- a/src/app/layout/qgslayoutpolylinewidget.cpp ++++ b/src/app/layout/qgslayoutpolylinewidget.cpp +@@ -21,6 +21,8 @@ + #include "qgslayoutitemregistry.h" + #include "qgslayout.h" + #include "qgslayoutundostack.h" ++ ++#include <QButtonGroup> + #include <QFileDialog> + + QgsLayoutPolylineWidget::QgsLayoutPolylineWidget( QgsLayoutItemPolyline *polyline ) +diff --git a/src/app/layout/qgslayoutscalebarwidget.cpp b/src/app/layout/qgslayoutscalebarwidget.cpp +index c1b8ad1509..569a4e0573 100644 +--- a/src/app/layout/qgslayoutscalebarwidget.cpp ++++ b/src/app/layout/qgslayoutscalebarwidget.cpp +@@ -19,6 +19,7 @@ + #include "qgslayoutitemscalebar.h" + #include "qgslayout.h" + #include "qgsguiutils.h" ++ + #include <QColorDialog> + #include <QFontDialog> + #include <QWidget> +diff --git a/src/app/layout/qgslayoutscalebarwidget.h b/src/app/layout/qgslayoutscalebarwidget.h +index a60b777bfa..ec7cc46cca 100644 +--- a/src/app/layout/qgslayoutscalebarwidget.h ++++ b/src/app/layout/qgslayoutscalebarwidget.h +@@ -20,6 +20,8 @@ + #include "ui_qgslayoutscalebarwidgetbase.h" + #include "qgslayoutitemwidget.h" + ++#include <QButtonGroup> ++ + class QgsLayoutItemScaleBar; + + /** +diff --git a/src/app/qgslabelinggui.cpp b/src/app/qgslabelinggui.cpp +index e5cf8ff626..4d6a83700d 100644 +--- a/src/app/qgslabelinggui.cpp ++++ b/src/app/qgslabelinggui.cpp +@@ -24,6 +24,8 @@ + #include "qgsauxiliarystorage.h" + #include "qgsnewauxiliarylayerdialog.h" + ++#include <QButtonGroup> ++ + QgsExpressionContext QgsLabelingGui::createExpressionContext() const + { + QgsExpressionContext expContext; +diff --git a/src/app/qgsrulebasedlabelingwidget.cpp b/src/app/qgsrulebasedlabelingwidget.cpp +index 6f1f77ef9a..57b7d34799 100644 +--- a/src/app/qgsrulebasedlabelingwidget.cpp ++++ b/src/app/qgsrulebasedlabelingwidget.cpp +@@ -26,6 +26,7 @@ + #include "qgsvectorlayerlabeling.h" + #include "qgslogger.h" + ++#include <QAction> + #include <QClipboard> + #include <QMessageBox> + +diff --git a/src/gui/layout/qgslayoutitemwidget.cpp b/src/gui/layout/qgslayoutitemwidget.cpp +index 1d3d4f8171..d68799234b 100644 +--- a/src/gui/layout/qgslayoutitemwidget.cpp ++++ b/src/gui/layout/qgslayoutitemwidget.cpp +@@ -21,6 +21,8 @@ + #include "qgsprintlayout.h" + #include "qgslayoutatlas.h" + ++#include <QButtonGroup> ++ + // + // QgsLayoutConfigObject + // +diff --git a/src/gui/layout/qgslayoutnewitempropertiesdialog.cpp b/src/gui/layout/qgslayoutnewitempropertiesdialog.cpp +index 9fa5f98358..c53d002acb 100644 +--- a/src/gui/layout/qgslayoutnewitempropertiesdialog.cpp ++++ b/src/gui/layout/qgslayoutnewitempropertiesdialog.cpp +@@ -19,6 +19,8 @@ + #include "qgslayoutpagecollection.h" + #include "qgsgui.h" + ++#include <QButtonGroup> ++ + QgsLayoutItemPropertiesDialog::QgsLayoutItemPropertiesDialog( QWidget *parent, Qt::WindowFlags flags ) + : QDialog( parent, flags ) + { +diff --git a/src/gui/qgscompoundcolorwidget.cpp b/src/gui/qgscompoundcolorwidget.cpp +index a7dbb77501..48032a2456 100644 +--- a/src/gui/qgscompoundcolorwidget.cpp ++++ b/src/gui/qgscompoundcolorwidget.cpp +@@ -20,6 +20,7 @@ + #include "qgsapplication.h" + #include "qgssettings.h" + ++#include <QHeaderView> + #include <QPushButton> + #include <QMenu> + #include <QToolButton> +diff --git a/src/gui/qgsextentgroupbox.cpp b/src/gui/qgsextentgroupbox.cpp +index ffc8ab7195..d5d77db6a0 100644 +--- a/src/gui/qgsextentgroupbox.cpp ++++ b/src/gui/qgsextentgroupbox.cpp +@@ -24,6 +24,7 @@ + + #include <QMenu> + #include <QAction> ++#include <QDoubleValidator> + + QgsExtentGroupBox::QgsExtentGroupBox( QWidget *parent ) + : QgsCollapsibleGroupBox( parent ) +diff --git a/src/gui/qgsgradientcolorrampdialog.cpp b/src/gui/qgsgradientcolorrampdialog.cpp +index fcc93d74fb..317f373423 100644 +--- a/src/gui/qgsgradientcolorrampdialog.cpp ++++ b/src/gui/qgsgradientcolorrampdialog.cpp +@@ -22,6 +22,7 @@ + #include "qgssettings.h" + + #include <QColorDialog> ++#include <QHeaderView> + #include <QInputDialog> + #include <QPainter> + #include <QTableWidget> +diff --git a/src/gui/qgsgroupwmsdatadialog.cpp b/src/gui/qgsgroupwmsdatadialog.cpp +index 456c813f5f..f9bb15ab6d 100644 +--- a/src/gui/qgsgroupwmsdatadialog.cpp ++++ b/src/gui/qgsgroupwmsdatadialog.cpp +@@ -16,6 +16,7 @@ + #include "qgsapplication.h" + #include "qgsgroupwmsdatadialog.h" + ++#include <QRegExpValidator> + + QgsGroupWmsDataDialog::QgsGroupWmsDataDialog( QWidget *parent, Qt::WindowFlags fl ) + : QDialog( parent, fl ) +diff --git a/src/gui/qgstextformatwidget.cpp b/src/gui/qgstextformatwidget.cpp +index 8c3c67d8e9..9005a40081 100644 +--- a/src/gui/qgstextformatwidget.cpp ++++ b/src/gui/qgstextformatwidget.cpp +@@ -29,6 +29,8 @@ + #include "qgseffectstack.h" + #include "qgspainteffectregistry.h" + ++#include <QButtonGroup> ++ + QgsTextFormatWidget::QgsTextFormatWidget( const QgsTextFormat &format, QgsMapCanvas *mapCanvas, QWidget *parent ) + : QWidget( parent ) + , mMapCanvas( mapCanvas ) +diff --git a/src/gui/symbology/qgssymbollayerwidget.cpp b/src/gui/symbology/qgssymbollayerwidget.cpp +index 3a5f3c5314..da599a27ae 100644 +--- a/src/gui/symbology/qgssymbollayerwidget.cpp ++++ b/src/gui/symbology/qgssymbollayerwidget.cpp +@@ -43,6 +43,7 @@ + #include "qgsauxiliarystorage.h" + + #include <QAbstractButton> ++#include <QButtonGroup> + #include <QColorDialog> + #include <QCursor> + #include <QDir> +diff --git a/src/providers/arcgisrest/qgsarcgisservicesourceselect.cpp b/src/providers/arcgisrest/qgsarcgisservicesourceselect.cpp +index 4cc3e8b301..d377d718b7 100644 +--- a/src/providers/arcgisrest/qgsarcgisservicesourceselect.cpp ++++ b/src/providers/arcgisrest/qgsarcgisservicesourceselect.cpp +@@ -29,6 +29,7 @@ + #include "qgssettings.h" + #include "qgsmapcanvas.h" + ++#include <QButtonGroup> + #include <QListWidgetItem> + #include <QMessageBox> + #include <QFileDialog> +-- +2.16.3 + diff --git a/sci-geosciences/qgis/qgis-3.0.1.ebuild b/sci-geosciences/qgis/qgis-3.0.1.ebuild new file mode 100644 index 000000000000..fcf4f8846c70 --- /dev/null +++ b/sci-geosciences/qgis/qgis-3.0.1.ebuild @@ -0,0 +1,222 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python3_5 ) +PYTHON_REQ_USE="sqlite" +QT_MIN_VER="5.9.1" + +if [[ ${PV} != *9999 ]]; then + SRC_URI="https://qgis.org/downloads/${P}.tar.bz2 + examples? ( https://qgis.org/downloads/data/qgis_sample_data.tar.gz -> qgis_sample_data-2.8.14.tar.gz )" + KEYWORDS="~amd64 ~x86" +else + GIT_ECLASS="git-r3" + EGIT_REPO_URI="https://github.com/${PN}/${PN^^}.git" +fi +inherit cmake-utils eutils ${GIT_ECLASS} gnome2-utils python-single-r1 qmake-utils xdg-utils +unset GIT_ECLASS + +DESCRIPTION="User friendly Geographic Information System" +HOMEPAGE="https://www.qgis.org/" + +LICENSE="GPL-2+ GPL-3+" +SLOT="0" +IUSE="3d examples georeferencer grass mapserver oracle polar postgres python webkit" + +REQUIRED_USE=" + mapserver? ( python ) + python? ( ${PYTHON_REQUIRED_USE} )" + +COMMON_DEPEND=" + app-crypt/qca:2[qt5(+),ssl] + >=dev-db/spatialite-4.2.0 + dev-db/sqlite:3 + dev-libs/expat + dev-libs/libzip:= + dev-libs/qtkeychain[qt5(+)] + >=dev-qt/designer-${QT_MIN_VER}:5 + >=dev-qt/qtconcurrent-${QT_MIN_VER}:5 + >=dev-qt/qtcore-${QT_MIN_VER}:5 + >=dev-qt/qtgui-${QT_MIN_VER}:5 + >=dev-qt/qtnetwork-${QT_MIN_VER}:5[ssl] + >=dev-qt/qtpositioning-${QT_MIN_VER}:5 + >=dev-qt/qtprintsupport-${QT_MIN_VER}:5 + >=dev-qt/qtsvg-${QT_MIN_VER}:5 + >=dev-qt/qtsql-${QT_MIN_VER}:5 + >=dev-qt/qtwidgets-${QT_MIN_VER}:5 + >=dev-qt/qtxml-${QT_MIN_VER}:5 + >=sci-libs/gdal-2.2.3:=[geos,python?,${PYTHON_USEDEP}] + sci-libs/geos + sci-libs/libspatialindex:= + sci-libs/proj + >=x11-libs/qscintilla-2.10.1:=[qt5(+)] + >=x11-libs/qwt-6.1.2:6=[qt5(+),svg] + 3d? ( >=dev-qt/qt3d-${QT_MIN_VER}:5 ) + georeferencer? ( sci-libs/gsl:= ) + grass? ( >=sci-geosciences/grass-7.0.0:= ) + mapserver? ( dev-libs/fcgi ) + oracle? ( + dev-db/oracle-instantclient:= + sci-libs/gdal:=[oracle] + ) + polar? ( >=x11-libs/qwtpolar-1.1.1-r1[qt5(+)] ) + postgres? ( dev-db/postgresql:= ) + python? ( ${PYTHON_DEPS} + dev-python/future[${PYTHON_USEDEP}] + dev-python/httplib2[${PYTHON_USEDEP}] + dev-python/jinja[${PYTHON_USEDEP}] + dev-python/markupsafe[${PYTHON_USEDEP}] + dev-python/owslib[${PYTHON_USEDEP}] + dev-python/pygments[${PYTHON_USEDEP}] + dev-python/PyQt5[designer,network,sql,svg,webkit?,${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + dev-python/pytz[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + >=dev-python/qscintilla-python-2.10.1[qt5(+),${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/sip:=[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + postgres? ( dev-python/psycopg:2[${PYTHON_USEDEP}] ) + ) + webkit? ( >=dev-qt/qtwebkit-${QT_MIN_VER}:5 ) +" +DEPEND="${COMMON_DEPEND} + >=dev-qt/linguist-tools-${QT_MIN_VER}:5 + >=dev-qt/qttest-${QT_MIN_VER}:5 + >=dev-qt/qtxmlpatterns-${QT_MIN_VER}:5 + sys-devel/bison + sys-devel/flex +" +RDEPEND="${COMMON_DEPEND} + sci-geosciences/gpsbabel +" + +# Disabling test suite because upstream disallow running from install path +RESTRICT="test" + +PATCHES=( + # git master + "${FILESDIR}/${PN}-2.18.12-cmake-lib-suffix.patch" + # release-3_0 branch + "${FILESDIR}/${P}-check-constraints.patch" + # TODO upstream + "${FILESDIR}/${P}-qt-5.11.patch" + "${FILESDIR}/${PN}-3.0.0-featuresummary.patch" +) + +pkg_setup() { + python-single-r1_pkg_setup +} + +src_prepare() { + cmake-utils_src_prepare + + sed -e "s:\${QT_BINARY_DIR}:$(qt5_get_bindir):" \ + -i CMakeLists.txt || die "Failed to fix lrelease path" + + sed -e "/QT_LRELEASE_EXECUTABLE/d" \ + -e "/QT_LUPDATE_EXECUTABLE/s/set/find_program/" \ + -e "s:lupdate-qt5:NAMES lupdate PATHS $(qt5_get_bindir) NO_DEFAULT_PATH:" \ + -i cmake/modules/ECMQt4To5Porting.cmake || die "Failed to fix ECMQt4To5Porting.cmake" + + cd src/plugins || die +} + +src_configure() { + local mycmakeargs=( + -DQGIS_MANUAL_SUBDIR=/share/man/ + -DBUILD_SHARED_LIBS=ON + -DQGIS_LIB_SUBDIR=$(get_libdir) + -DQGIS_PLUGIN_SUBDIR=$(get_libdir)/qgis + -DQWT_INCLUDE_DIR=/usr/include/qwt6 + -DQWT_LIBRARY=/usr/$(get_libdir)/libqwt6-qt5.so + -DPEDANTIC=OFF + -DWITH_APIDOC=OFF + -DWITH_QSPATIALITE=ON + -DENABLE_TESTS=OFF + -DWITH_3D=$(usex 3d) + -DWITH_GEOREFERENCER=$(usex georeferencer) + -DWITH_GRASS=$(usex grass) + -DWITH_SERVER=$(usex mapserver) + -DWITH_ORACLE=$(usex oracle) + -DWITH_QWTPOLAR=$(usex polar) + -DWITH_POSTGRESQL=$(usex postgres) + -DWITH_BINDINGS=$(usex python) + -DWITH_CUSTOM_WIDGETS=$(usex python) + -DWITH_QTWEBKIT=$(usex webkit) + ) + + if use grass; then + mycmakeargs+=( + -DWITH_GRASS7=ON + -DGRASS_PREFIX7=/usr/$(get_libdir)/grass70 + ) + fi + + use python && mycmakeargs+=( -DBINDINGS_GLOBAL_INSTALL=ON ) + + # bugs 612956, 648726 + addpredict /dev/dri/renderD128 + addpredict /dev/dri/renderD129 + + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + + domenu debian/qgis.desktop + + local size type + for size in 16 22 24 32 48 64 96 128 256; do + newicon -s ${size} debian/icons/${PN}-icon${size}x${size}.png ${PN}.png + newicon -c mimetypes -s ${size} debian/icons/${PN}-mime-icon${size}x${size}.png ${PN}-mime.png + for type in qgs qml qlr qpt; do + newicon -c mimetypes -s ${size} debian/icons/${PN}-${type}${size}x${size}.png ${PN}-${type}.png + done + done + newicon -s scalable images/icons/qgis_icon.svg qgis.svg + + insinto /usr/share/mime/packages + doins debian/qgis.xml + + if use examples; then + docinto examples + dodoc -r "${WORKDIR}"/qgis_sample_data/. + docompress -x /usr/share/doc/${PF}/examples + fi + + python_optimize "${ED%/}"/usr/share/qgis/python + + if use grass; then + python_fix_shebang "${ED%/}"/usr/share/qgis/grass/scripts + fi +} + +pkg_postinst() { + if use postgres; then + elog "If you don't intend to use an external PostGIS server" + elog "you should install:" + elog " dev-db/postgis" + elif use python; then + elog "Support of PostgreSQL is disabled." + elog "But some installed python-plugins import the psycopg2 module." + elog "If you do not need these plugins just disable them" + elog "in the Plugins menu, else you need to set USE=\"postgres\"" + fi + if has_version "<sci-geosciences/qgis-3"; then + elog "QGIS is now based on PyQt5. Old scripts may not work anymore." + fi + + gnome2_icon_cache_update + xdg_mimeinfo_database_update + xdg_desktop_database_update +} + +pkg_postrm() { + gnome2_icon_cache_update + xdg_mimeinfo_database_update + xdg_desktop_database_update +} |