summaryrefslogtreecommitdiff
path: root/sci-geosciences
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-06-02 17:13:10 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-06-02 17:13:10 +0100
commit0bff53119f08d677db6c1a991bd30741682a8a08 (patch)
tree6ec8d4c38152bb4f2bb4b93277236ebd9fbbd21d /sci-geosciences
parent6c14fa2586d9e9c4427b5f727dc6c8ab77587cec (diff)
Revert "gentoo resync : 02.06.2018"
This reverts commit 6c14fa2586d9e9c4427b5f727dc6c8ab77587cec.
Diffstat (limited to 'sci-geosciences')
-rw-r--r--sci-geosciences/Manifest.gzbin11088 -> 11097 bytes
-rw-r--r--sci-geosciences/qgis/Manifest4
-rw-r--r--sci-geosciences/qgis/files/qgis-3.0.1-check-constraints.patch237
-rw-r--r--sci-geosciences/qgis/files/qgis-3.0.1-qt-5.11.patch199
-rw-r--r--sci-geosciences/qgis/qgis-3.0.1.ebuild222
5 files changed, 662 insertions, 0 deletions
diff --git a/sci-geosciences/Manifest.gz b/sci-geosciences/Manifest.gz
index 3433b21601ea..a906febe180d 100644
--- a/sci-geosciences/Manifest.gz
+++ b/sci-geosciences/Manifest.gz
Binary files differ
diff --git a/sci-geosciences/qgis/Manifest b/sci-geosciences/qgis/Manifest
index 16eaf4016d64..1ce39fdc3132 100644
--- a/sci-geosciences/qgis/Manifest
+++ b/sci-geosciences/qgis/Manifest
@@ -1,8 +1,12 @@
AUX qgis-2.18.12-cmake-lib-suffix.patch 454 BLAKE2B b5b7b1d64fd8c8eef1b0579124261d41b8a1e01b6670d211cdebcff4f4dd905b4e15fcf94386a5e297cadc3360bf48000106805f3425cdf383c043b3cda0560f SHA512 f6b04bddf4d60d4eec257fb71cf87e15e7a72c34c1016e8eadeb660ebc7079cb8b9104041e4df5e7cbe0e00954ad65ced53b7e19f3f9f7cfbee1b791874ddcd7
AUX qgis-3.0.0-featuresummary.patch 986 BLAKE2B 088e7aa420ae6da6b7bcbd7ffff53ec4364861fc554ae490ed5b9606eea700369158a83e5bf90f183fdc7f59bbfc9a43d4a59efd261813f022b20de3a0ac3a49 SHA512 d8ad2e2c8a1f83172f37434657762d7796adf75db06201a1cc52f412327e22aeb3d5df7b24232bfb8da66593db85e772aac3fe33672fc01f81c2fabf9b8d1835
+AUX qgis-3.0.1-check-constraints.patch 9535 BLAKE2B d2296d9f99578c53cdca2a0287163cc17748ad79910b19e6a888e7e341adb8436ce2463fa1cec1cbe9bc9b07ef83c3390407dd2baf05c25c33300a292022b2af SHA512 a806442cc3c85b032bf5b018ebf06eb7c99cd4c212b60c7d7aa0c1cfb028f236f6f3c5b224597cfceb118bbb7a552f48f7fd64e6bb772ec63f4d3a48d1ec5006
+AUX qgis-3.0.1-qt-5.11.patch 7015 BLAKE2B 77b59b3e8381ae84b138fae9bf39029207985c212489c2a3f4a522c1bdb84f82d0ef2a283869819e63a39d89584d7f1f4967d0d4947e96dd1ad1c4af6654aba7 SHA512 4d935e6686dad9e8bf17de944706f6815da25387278a2ebf822d31c580972809226d77ee0e5e9e9137d028e8e980742bfb73926f97738242dd56220fd53d6e9d
+DIST qgis-3.0.1.tar.bz2 94217493 BLAKE2B 9f3b9e9d76dfac574cbe7c9b95f0dc59fb9ad74ddd5c5a420931107200b1ba6641e2b74cff681ecec8cdab777cda69c0e698fa952bc28cd79c761f4636f62f00 SHA512 c07fc9b033fa043e38098d226dac69ea35890109c45ccc4c47017e0af2d3fbed4b1a71b3fd7dc76fea3eb43fbcdbfb660df50d779da8c43f68a4402b239f8f75
DIST qgis-3.0.2.tar.bz2 94483208 BLAKE2B 198587a8440bf6d1dff6d08e706f1c0972088f8f90df4def27a0066f659e4273be35687ad0f35b4f3dcd7fb60e30ead74093541c69ddbd456bcbbcbae4c99c76 SHA512 4eec027f81ee693293e87d3c16b7b210ebd66f35a2884dc4662b5a3359b18cfd8a11919132ab88489456121eab36f8e5a9c20afcb34fa9dbe54673d838fc2be1
DIST qgis-3.0.3.tar.bz2 94462631 BLAKE2B 047f4d8852b7572dc94b9c04ec9c81e53bab2ed63a7a490682b7c557ae1b21fcc3257e751cc794d368dc4124c20c008ffdc7f1f4b79af2faea78774dc6ef430c SHA512 67f46f1acacd6688984b0c13aa5880e2f31d85b5a28ebf12830d33f198c2e5983887a8c85036b8be59edf3836ba7d38985f58433f53d3164c2ffb4a6db94d046
DIST qgis_sample_data-2.8.14.tar.gz 22119181 BLAKE2B 2d0565e91ec8119382bc9ab8e262dc04227fe8289146794891759ff5a32012245270614ba1119a6329fc45cf56852830c2079589309aa3467873f71f5c608eac SHA512 6b2653d5b57ffc2c2317639dac212429840984ac917ca3e452b39aabb99ea106d1a77c1c1dd967244ef16ede9deae751b170affdf08b72239eafed5b8977da3d
+EBUILD qgis-3.0.1.ebuild 6259 BLAKE2B 452fb81c2eaa394b5d8b74ec954bb4845530b45a6e2dd54dbda9af6c220afd66f4d09dbfb2313644ebdd1357b5eb03518afc3a75b2484ad1988feeb92f780ba8 SHA512 de833d3679e3aa943e1b5361d069e08c5bb75475fa31fbcce2106ac0abaa9c8260a180c03ce6aa0ba3cdfa5f8f2a09df6e3ebd27b416038462603319a31af6f7
EBUILD qgis-3.0.2.ebuild 6190 BLAKE2B a717118b11d56a585e3b547d3fa9064e7eb923c82a31ed169c19322837ff015eec4d48c96d5eb3cc4f562a28ccd47280e3d5ad46dce0dea662e791202bb9ad0a SHA512 2aacbe848fcd6dc2db925772746c42911d88328ffd54cc5f2883e574c536d6840bd30ca1c461ea1ee196d5d69dccf1137de3656ca913ecdce5116508766d408e
EBUILD qgis-3.0.3.ebuild 6192 BLAKE2B 304565331b8ebaed4afa777ddd454da15acd8094c63459dfb197eff024a63f5ac7cd0c1cc6bab57bb36b357107cef8a3fc1a1d7a42eceb4e5351b2eb5348ca14 SHA512 74450d5caa73086807da8651f5da1cfc86af522561356710421b06e0dae7f4cfefb13fb5456f6ac5e98703483635244d8f5584f02e71a59022601e37c6e39877
EBUILD qgis-9999.ebuild 6192 BLAKE2B 304565331b8ebaed4afa777ddd454da15acd8094c63459dfb197eff024a63f5ac7cd0c1cc6bab57bb36b357107cef8a3fc1a1d7a42eceb4e5351b2eb5348ca14 SHA512 74450d5caa73086807da8651f5da1cfc86af522561356710421b06e0dae7f4cfefb13fb5456f6ac5e98703483635244d8f5584f02e71a59022601e37c6e39877
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..79614147766f
--- /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
+}