Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#47459 closed defect (fixed)

geoclue: build failure with gpsd 3.14

Reported by: dershow Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: Cc: ryandesign (Ryan Carsten Schmidt), Schamschula (Marius Schamschula), laughingtiger, basmac, majoc-at-astro (majoc-at-astro), jeremyhu (Jeremy Huddleston Sequoia), ma.fabbri@…, dbevans (David B. Evans)
Port: geoclue

Description

I have geoclue 0.12.99_4 installed. It depends on gpsd. I had gpsd 3.11_0 installed, but it just upgraded to 3.14_0. However, after that upgrade macports finds that geoclue is a broken port and attempts, but fails, to rebuild it:

--->  Scanning binaries for linking errors
--->  Found 1 broken file(s), matching files to ports    
--->  Found 1 broken port(s), determining rebuild order
--->  Rebuilding in order
     geoclue @0.12.99 
--->  Computing dependencies for geoclue
--->  Cleaning geoclue
--->  Scanning binaries for linking errors
--->  Found 1 broken file(s), matching files to ports    
--->  Found 1 broken port(s), determining rebuild order
--->  Rebuilding in order
     geoclue @0.12.99 
--->  Computing dependencies for geoclue
--->  Fetching distfiles for geoclue
--->  Verifying checksums for geoclue
--->  Extracting geoclue
--->  Applying patches to geoclue
--->  Configuring geoclue
--->  Building geoclue
Error: org.macports.build for port geoclue returned: command execution failed
Please see the log file for port geoclue for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_geoclue/geoclue/main.log
Error: Unable to upgrade port: 1
Error rebuilding geoclue
    while executing
"error "Error rebuilding $portname""
    (procedure "revupgrade_scanandrebuild" line 395)
    invoked from within
"revupgrade_scanandrebuild broken_port_counts $opts"
    (procedure "macports::revupgrade" line 5)
    invoked from within
"macports::revupgrade $opts"
    (procedure "action_revupgrade" line 2)
    invoked from within
"action_revupgrade $action $portlist $opts"
    (procedure "action_target" line 96)
    invoked from within
"$action_proc $action $portlist [array get global_options]"
    (procedure "process_cmd" line 103)
    invoked from within
"process_cmd $remaining_args"
    invoked from within
"if { [llength $remaining_args] > 0 } {

    # If there are remaining arguments, process those as a command
    set exit_status [process_cmd $remaining..."
    (file "/opt/local/bin/port" line 5268)

I have also attached the full log of the geoclue rebuild attempt.

Attachments (1)

main.log (125.2 KB) - added by dershow 9 years ago.

Download all attachments as: .zip

Change History (20)

Changed 9 years ago by dershow

Attachment: main.log added

comment:1 in reply to:  description Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to dersh@…:

I have geoclue 0.12.99_4 installed. It depends on gpsd. I had gpsd 3.11_0 installed, but it just upgraded to 3.14_0. However, after that upgrade macports finds that geoclue is a broken port

Oh dear. We are using a patch in the gpsd port to set the library's install_name but we're setting it to the same value as the current_version and the compatibility_version which is almost certainly wrong.

and attempts, but fails, to rebuild it:

I have also attached the full log of the geoclue rebuild attempt.

:info:build geoclue-gpsd.c:379:33: error: no member named 'tag' in 'struct gps_data_t'
:info:build         char *tag_str = gpsd->gpsdata->tag;
:info:build                         ~~~~~~~~~~~~~  ^

Oh dear. That sounds like the API has changed between 3.11 and 3.14 which would be an unfortunate contravention of the usual meaning of the version numbering. The documentation still says "Your packet parser is also responsible for setting the tag field in the gps_data_t structure" so if the tag field has now been removed from the gps_data_t structure then the documentation is also out of date.

comment:2 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Summary: geoclue broken portgeoclue: build failure with gpsd 3.14

comment:3 Changed 9 years ago by Schamschula (Marius Schamschula)

Cc: mschamschula@… added

Cc Me!

comment:4 Changed 9 years ago by dershow

It looks like someone (ryandesign?) just fixed this....almost. I just did a port sync. Now, it shows geoclue2 as outdated, with me having 2.1.10_0 and current is 2.2.0_0. I don't recall that I ever explicitly installed geoclue2. So, I'm guessing that this was a bump to the new API. I then did an upgrade, and it correctly built geoclue2. But, then gave the same error as before for geoclue. So, I just uninstalled geoclue.

comment:5 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

I didn't fix geoclue; I looked to see if there was a new version, and only found a new version for geoclue2, so I updated that.

geoclue was needed for old versions of webkit-gtk, which are still used on older systems, but if you have a newer system, then newer versions of webkit-gtk are used which use geoclue2. If you were able to uninstall geoclue without error, then nothing you had installed needed it.

We should still fix the problems.

comment:6 Changed 9 years ago by laughingtiger

Cc: mllists@… added

Cc Me!

comment:7 Changed 9 years ago by basmac

Cc: barry.j.mcinnes@… added

Cc Me!

comment:8 Changed 9 years ago by basmac

Fails in same way for me updating netpbm -

--->  Cleaning geoclue
--->  Scanning binaries for linking errors
--->  Found 1 broken file(s), matching files to ports
--->  Found 1 broken port(s), determining rebuild order
--->  Rebuilding in order
     geoclue @0.12.99
--->  Computing dependencies for geoclue
--->  Fetching distfiles for geoclue
--->  Verifying checksums for geoclue
--->  Extracting geoclue
--->  Applying patches to geoclue
--->  Configuring geoclue
--->  Building geoclue
Error: org.macports.build for port geoclue returned: command execution failed
Please see the log file for port geoclue for details:
    /opt/local/var/macports/logs/_Volumes_Cluster_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_geoclue/geoclue/main.log
Error: Unable to upgrade port: 1
Error rebuilding geoclue
    while executing
"error "Error rebuilding $portname""
    (procedure "revupgrade_scanandrebuild" line 395)
    invoked from within
"revupgrade_scanandrebuild broken_port_counts $opts"
    (procedure "macports::revupgrade" line 5)
    invoked from within
"macports::revupgrade $opts"
    (procedure "action_revupgrade" line 2)
    invoked from within
"action_revupgrade $action $portlist $opts"
    (procedure "action_upgrade" line 25)
    invoked from within
"$action_proc $action $portlist [array get global_options]"
    (procedure "process_cmd" line 103)
    invoked from within
"process_cmd $remaining_args"
    invoked from within
"if { [llength $remaining_args] > 0 } {

    # If there are remaining arguments, process those as a command
    set exit_status [process_cmd $remaining..."
    (file "/opt/local/bin/port" line 5268)
bash-3.2#
Last edited 9 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:9 in reply to:  8 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to barry.j.mcinnes@…:

Fails in same way for me

Yes, geoclue will fail to build for all users at this time.

updating netpbm -

--->  Cleaning geoclue
--->  Scanning binaries for linking errors
--->  Found 1 broken file(s), matching files to ports
--->  Found 1 broken port(s), determining rebuild order
--->  Rebuilding in order
     geoclue @0.12.99
--->  Computing dependencies for geoclue
--->  Fetching distfiles for geoclue
--->  Verifying checksums for geoclue
--->  Extracting geoclue
--->  Applying patches to geoclue
--->  Configuring geoclue
--->  Building geoclue
Error: org.macports.build for port geoclue returned: command execution failed
Please see the log file for port geoclue for details:
    /opt/local/var/macports/logs/_Volumes_Cluster_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_geoclue/geoclue/main.log
Error: Unable to upgrade port: 1
Error rebuilding geoclue
    while executing
"error "Error rebuilding $portname""
    (procedure "revupgrade_scanandrebuild" line 395)
    invoked from within
"revupgrade_scanandrebuild broken_port_counts $opts"
    (procedure "macports::revupgrade" line 5)
    invoked from within
"macports::revupgrade $opts"
    (procedure "action_revupgrade" line 2)
    invoked from within
"action_revupgrade $action $portlist $opts"
    (procedure "action_upgrade" line 25)
    invoked from within
"$action_proc $action $portlist [array get global_options]"
    (procedure "process_cmd" line 103)
    invoked from within
"process_cmd $remaining_args"
    invoked from within
"if { [llength $remaining_args] > 0 } {

    # If there are remaining arguments, process those as a command
    set exit_status [process_cmd $remaining..."
    (file "/opt/local/bin/port" line 5268)
bash-3.2#

Note that netpbm has nothing to do with this. netpbm does not require geoclue. However, after installing or upgrading any port, MacPorts checks if any ports are broken, and it found geoclue was broken, and tried to rebuild it, which will fail until we solve this problem somehow.

I expect this would also apply to the other ports that depend on gpsd: marble and viking.

comment:10 Changed 9 years ago by majoc-at-astro (majoc-at-astro)

Cc: majoc@… added

Cc Me!

comment:11 Changed 9 years ago by dbevans (David B. Evans)

Cc: jeremyhu@… removed
Owner: changed from macports-tickets@… to jeremyhu@…

comment:12 Changed 9 years ago by ma.fabbri@…

I confirm the complitation failure on all Mac OS X platform tested:
10.5 Leopard 10.5 PPC/Intel
10.7 Lion

Last edited 9 years ago by ma.fabbri@… (previous) (diff)

comment:13 in reply to:  5 ; Changed 9 years ago by ma.fabbri@…

Replying to ryandesign@…:

I didn't fix geoclue; I looked to see if there was a new version, and only found a new version for geoclue2, so I updated that.

geoclue was needed for old versions of webkit-gtk, which are still used on older systems, but if you have a newer system, then newer versions of webkit-gtk are used which use geoclue2. If you were able to uninstall geoclue without error, then nothing you had installed needed it.

We should still fix the problems.

Many ports require webkit-gtk3-2.0, and then geoclue, to work properly!

If these ports were going to ask webkit-gtk3, and then geoclue2, everything should work!

Last edited 9 years ago by ma.fabbri@… (previous) (diff)

comment:14 Changed 9 years ago by basmac

We are in the same situation webkit-gtk3 cannot be removed (4+ other ports rely on it) and it needs geoclue.

comment:15 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Cc: jeremyhu@… added

Cc Me!

comment:16 Changed 9 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: newclosed

webkit-gtk-2.0 geolocation support using geoclue was made a non-default option in r135273. Use +geolocation to re-enable. This allows the default build to proceed without error.

geoclue gpsd support disabled in r135300. This old version of geoclue will not build with gpsd API 6.0+ (gpsd 3.12+). Current geoclue2 versions no longer support gpsd, so this makes the two behave in a similar fashion. This change allows the webkit-gtk-2.0 +geolocation option to build (without the gpsd suport) if desired.

These changes, of course, apply to subport webkit-gtk3-2.0 as well.

Last edited 9 years ago by dbevans (David B. Evans) (previous) (diff)

comment:17 in reply to:  13 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ma.fabbri@… added

Replying to ma.fabbri@…:

Many ports require webkit-gtk3-2.0, and then geoclue, to work properly!

If these ports were going to ask webkit-gtk3, and then geoclue2, everything should work!

webkit-gtk3-2.0 is used when your C++ library is libstdc++. Usually, this is the case on OS X 10.8 and earlier.

webkit-gtk3 is used when your C++ library is libc++. Usually, this is the case on OS X 10.9 and later.

That's what I meant when I said "webkit-gtk [is] still used on older systems, but if you have a newer system, then newer versions of webkit-gtk are used which use geoclue2".

comment:18 Changed 9 years ago by dbevans (David B. Evans)

Cc: devans@… added

Cc Me!

comment:19 Changed 9 years ago by dbevans (David B. Evans)

jeremyhu dropped maintainership of geoclue in r135298.

Note: See TracTickets for help on using tickets.