Has anyone actually built Grass GIS or QGis in -current using SlackBuilds?
First, sorry for the rant.
I'm asking this question (see subject) because I've spent the last couple of days trying to do it. Both programs (qgis, grass) where easy to build in 14.2. Compilation of QGis was a bit harder but feasible. With the advent of -current building those two is just (almost) impossible! Starting with QGis According to the Slackbuild, qgis depends on postgis, libspatialite, libspatialindex, numpy3, qwt-qt5, QScintilla-qt5, qtkeychain, python3-six, qca-qt5, python3-PyYAML, python-requests, Pygments, pytz, OWSLib, psycopg2, and Jinja2! Ok, let's start building Jinja2. But wait! It depends on MarkupSafe... Ok let's build MarkupSafe... wait! It depends on python3... fortunately python3 is now on -current. All went well, MarkupSafe... built OK, Jinja2... built OK. Now let's build psycopg2. It depends on postgresql and python3. I've got both (I use postgresql instead of mysql, sad it's not part of slackware). psycopg2... built OK Now, OSWLib. It depends on python-dateutil, pytz, lxml, and six! I've got lxml already and six is now part of -current (but we will have to build python3-six!). So, er, let's compile python-dateutil. It depends on setuptools-scm and six... I quit! Let's try to build Grass GIS Grass depends on gdal, numpy3, and wxPython4! Great, a modest number of dependencies! I've already gdal and numpy3. So it's easy. Just build wxPython4... Uhmm, wxPython4 depends on either webkit2gtk and pathlib2. Not that bad. Well, webkit2gtk depends on bubblewrap, enchant2, geoclue2, gst-plugins-bad, hyphen, libseccomp, libwebp, xdg-dbus-proxy, and woff2. Oh no. Let's try pathlib2 first. Oh, it depends on python-scandir! Build python-scandir... OK. Build pathlib2... OK. Time to build webkit2gtk dependencies...
UPDATE: Just before I finished writing this post, webkit2gtk slackbuild failed at 98% with the following message: Code:
[ 98%] Building CXX object Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource-88d1702b-26.cpp.o |
Yes, QGIS has lots of dependencies. But yes, you can build it on current.
|
I have build qgis 3.10.2 on Slackware current (2020-01-20) using Mr Bosth qgis3-slackbuild Readme from his gitHub page (which are very good). All the QT5 related files I used AlienBob's build files. The reason for this was I had some problems versions of some of the files and QT5 was not in slackware current at that time..
The files I ended up building were : BeautifulSoup4-4.6.3-x86_64-1_SBo.tgz MarkupSafe-1.1.1-x86_64-1_SBo.tgz OWSLib-0.19.0-x86_64-1_SBo.tgz PyQt-4.12.3-x86_64-1.txz PyQt5-5.13.2-x86_64-2.txz QScintilla-2.11.4-x86_64-3.txz filezilla-3.46.3-x86_64-13_SBo.tgz freexl-1.0.5-x86_64-3_SBo.tgz gdal-3.0.0-x86_64-1_SBo.tgz geos-3.7.2-x86_64-1_SBo.tgz gpsbabel-1.6.0-x86_64-1_SBo.tgz html5lib-1.0.1-x86_64-1_SBo.tgz lablgtk-2.18.4-x86_64-3_SBo.tgz libfilezilla-0.19.3-x86_64-1_SBo.tgz libminizip-1.2.11-x86_64-1_SBo.tgz libspatialindex-1.8.5-x86_64-1_SBo.tgz libspatialite-4.3.0a-x86_64-1_SBo.tgz libxkbcommon-0.9.1-x86_64-1_SBo.tgz lxml-4.4.1-x86_64-1_SBo.tgz numpy3-1.14.3-x86_64-1_SBo.tgz ocaml-4.03.0-x86_64-3_SBo.tgz ocaml-findlib-1.6.2-x86_64-3_SBo.tgz postgis-3.0.0-x86_64-1_SBo.tgz postgresql-12.1-x86_64-2-plt.tgz proj-6.1.0-x86_64-1_SBo.tgz psycopg2-2.8.4-x86_64-1_SBo.tgz python-dateutil-2.8.0-x86_64-1_SBo.tgz python-webencodings-0.5.1-x86_64-1_SBo.tgz python3-Jinja2-2.10-x86_64-1_SBo.tgz pytz-2018.9-x86_64-1_SBo.tgz qca-qt5-2.2.1-x86_64-1.txz qgis-3.10.2-x86_64-1.txz qt5-5.13.2-x86_64-1.txz qt5-webkit-5.212.0_alpha3-x86_64-2.txz qtkeychain-0.9.1-x86_64-1_SBo.tgz qwt-6.1.4-x86_64-1.txz setuptools-scm-3.3.3-x86_64-1_SBo.tgz sip-4.19.20-x86_64-2.txz six-1.12.0-x86_64-1_SBo.tgz unixODBC-2.3.7-x86_64-13-plt.tgz I do not use grass so I have not tried to build it. |
In reply to post #1:
Slackware doesn't do dependency management - sad but true. I keep a Mint VM( = Ubuntu with go-faster GUI) and another as dual boot install. The VM serves to run most stuff. My pc is relatively puny, and with only 50% of resources going to the VM(max) speed can be an issue The dual boot Mint is for those Catch-22 situations where Slackware is belly up, or I need more power. Mint does have dependency tracking. |
Quote:
Quote:
I'm pretty sure I can compile and install all of the above with the traditional ./configure; make; make install (eventually using slacktrack) but I rather do it through Slackbuilds as I will keep my systems (and my mind - it does the dependency management) sane and clean. |
Quote:
You will need to adapt to the new packages on current, some of which have new names. For example, sip now take the place of python3-sip and so on. The good news is that *most* of the Python packages are not strictly necessary; you will see error messages when running QGIS but they will simply disable certain plugins. The one change you need to make to the QGIS SlackBuild is change the name of the sip executable because the SlackBuild version of sip uses a different name than the one on current. See my old notes here: https://github.com/bosth/qgis3-slackbuild Since I wrote those, current has changed so some things are clearly obsolete (e.g. qt5 now added as an official package). |
Quote:
Code:
+--------------------------+ |
First thanks for the guidelines! I'm almost there!
Quote:
Quote:
|
You can symlink or edit the SlackBuild - either way works.
|
Quote:
Code:
sed -i 's|${SIP_BINARY_PATH}|/usr/bin/python3-sip|' cmake/SIPMacros.cmake |
I'm just here to chime in that I also recently built GRASS and QGIS on -current. I also have Plasma 5, so it just required carefully skipping any package that was already installed (including some that have different names on SBo and -current or ktown) and making the modification discussed above.
-current is always a bit of a moving target, so it can take some extra attention to get complicated packages to build. Once 15.0 comes out, things will be a lot more straightforward because a lot of the dependencies (at least the big ones like Qt5) will be part of the main tree, and all of the SBo metadata will be in sync with it. |
I've hit problems too with the rolling-release aspect of ~Current, so I grab the iso when I update. Then I have a snapshot.
|
Quote:
I'll discard ugene right away since I don't use it that much. For that matter, I prefer the staden package (still based on Tcl/Tk) but which is having its issues with the Slackbuils. QGis was ok for very "light" GIS analysis. It's not a must have, but it's handy. Since grass adopted the python UI (wxPython) it become much harder to compile... I'm taking the morning to compile QGis. While I was at it, I upgraded the Slackbuild script from qgis-3.10.1 to qgis-3.12.0. It failed complaining that it needs proj-6.3.1 instead of proj-6.3.0! Ok, I downgraded to qgis-3.10.3. It fails complaining that gdal-3.0.2 is to old! It needs gdal-3.0.3. I'll have to recompile geos/proj/gdal (and possibly blas and postgis). So the cycle starts again... |
I've already updated the gdal, proj and postgis SlackBuilds, so you'll find them all ready to use. However, I've not gotten QGIS 3.12.0 working on 14.2 quite yet.
|
I upgraded QGIS from 3.10.2 to 3.10.3 yesterday. Had to upgrade proj to 6.3.1 & gdal to 3.0.4 Did not upgrade any other packages from my Jan 20th build. I usually try to use LTR releases until a new LTR comes out.
|
All times are GMT -5. The time now is 09:23 AM. |