Opened 4 years ago

Closed 4 years ago

#60891 closed defect (fixed)

qgis3 @3.14.0_1: No rule to make target `.../resources/function_help/json/$$area'

Reported by: gwright83 Owned by: Veence (Vincent)
Priority: Normal Milestone:
Component: ports Version: 2.6.3
Keywords: Cc: Dave-Allured (Dave Allured)
Port: qgis3

Description

The most recent version of qgis3, qgis3@3.14.0_1 fails to build on macOS 10.14.6. The problem persists even if the previous version is uninstalled. I built the port with

sudo port install qgis3 build.jobs=1

to avoid previously noted parallel build problems.

The error at the end of the log:

:info:build [  0%] Generating flex_qgssqlstatementlexer.cpp
:info:build cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis3/qgis3/work/build/src/core && /usr/bin/flex -Psqlstatement_ -o/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis3/qgis3/work/build/src/core/flex_qgssqlstatementlexer.cpp /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_14_0/src/core/qgssqlstatementlexer.ll
:info:build make[2]: *** No rule to make target `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_14_0/resources/function_help/json/$$area', needed by `src/core/qgsexpression_texts.cpp'.  Stop.
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis3/qgis3/work/build'
:info:build make[1]: *** [src/core/CMakeFiles/qgis_core_autogen.dir/all] Error 2
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis3/qgis3/work/build'
:info:build make: *** [all] Error 2
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis3/qgis3/work/build'
:info:build Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis3/qgis3/work/build" && /usr/bin/make -w all VERBOSE=ON
:info:build Exit code: 2
:error:build Failed to build qgis3: command execution failed
:debug:build Error code: CHILDSTATUS 42114 2
:debug:build Backtrace: command execution failed
:debug:build     while executing
:debug:build "system {*}$notty {*}$nice $fullcmdstring"
:debug:build     invoked from within
:debug:build "command_exec build"
:debug:build     (procedure "portbuild::build_main" line 8)
:debug:build     invoked from within
:debug:build "$procedure $targetname"
:error:build See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis3/qgis3/main.log for details.

The proximate error seems to be the lack of a rule to build src/src/core/qgsexpression_texts.cpp.

It may be relevant that I had done a port reclaim before trying to upgrade from qgis@3.14.0_0 to qgis@3.14.0_1. The upgrade failed. I uninstalled the old version of the port and tried to reinstall the new version. This also failed. Running port clean and then trying to install failed consistently three times with the same error message.

A complete log is attached.

Attachments (1)

main.log (422.9 KB) - added by gwright83 4 years ago.
Build log

Download all attachments as: .zip

Change History (8)

Changed 4 years ago by gwright83

Attachment: main.log added

Build log

comment:1 Changed 4 years ago by Dave-Allured (Dave Allured)

Cc: Dave-Allured added

comment:2 Changed 4 years ago by reneeotten (Renee Otten)

Owner: set to Veence
Status: newassigned

comment:3 Changed 4 years ago by Veence (Vincent)

Yeah, I differed because I hoped the new 3.14.1 version would solve that issue, but alas, no. I’m going to forward that error upstream and see if we can come with a quick fix (if that fix isn't already published)

comment:4 Changed 4 years ago by gwright83

More information:

I misread the original error message. The error is

:info:build make[2]: *** No rule to make target `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_14_0/resources/function_help/json/$$area', needed by `src/core/qgsexpression_texts.cpp'.  Stop.

The problem is not that there is no rule to make src/core/qgsexpression_texts.cpp (as I originally said) but that there is no rule to make qgis3/QGIS-3_14_0/resources/function_help/json/$$area.

The file qgis3/QGIS-3_14_0/resources/function_help/json/area exists and seems to have reasonable content. It look like there are spurious dollar signs (perhaps from cmake?) that are confusing make.

comment:5 Changed 4 years ago by Veence (Vincent)

A further problem is that the file src/core/qgsexpression_texts.cpp does not exist. I suppose generating this .cpp file entails building the $$area file somehow. The expression parser seems to rely heavily on flex.

comment:6 Changed 4 years ago by Veence (Vincent)

Ok, I have a build:

Air > port installed | grep qgis3
  qgis3 @3.14.1_0+grass+postgresql12+python38 (active)

The fix is very simple. I will commit a patch tomorrow, and simultaneously report the issue upstream. Stay tuned.

comment:7 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed
Summary: qgis3 @3.14.0_1 fails to buildqgis3 @3.14.0_1: No rule to make target `.../resources/function_help/json/$$area'

Vincent committed a fix in [f2ee9406fec1b81173f816a180167af810a5e173/macports-ports].

Vincent, remember to follow our commit guidelines by putting the line Closes: https://trac.macports.org/ticket/60891 in your commit message so that it is automatically cross-referenced in Trac and the ticket is automatically closed.

Also, I didn't see a URL to an upstream bug report in your commit. Please add one. If there isn't already an upstream bug report for this problem, please file one.

Note: See TracTickets for help on using tickets.