Opened 4 months ago

Last modified 7 weeks ago

#55104 assigned defect

kde4-workspace: fails to compile on High Sierra

Reported by: meabandit Owned by: RJVB (René Bertin)
Priority: Normal Milestone:
Component: ports Version:
Keywords: highsierra Cc:
Port: kde4-workspace

Description

Find the attached log from clean build with build.jobs=1

Attachments (3)

main.log.gz (31.0 KB) - added by meabandit 4 months ago.
CMakeError.log (36.3 KB) - added by kencu (Ken) 4 months ago.
CMakeOutput.log (80.0 KB) - added by kencu (Ken) 4 months ago.

Download all attachments as: .zip

Change History (13)

Changed 4 months ago by meabandit

comment:1 Changed 4 months ago by mf2k (Frank Schima)

  • Owner set to RJVB
  • Status changed from new to assigned

In the future, please Cc the port maintainers (port info --maintainers kde4-workspace), if any.

comment:2 Changed 4 months ago by RJVB (René Bertin)

Apparently something goes wrong building, a component that we should be able to drop without any loss in functionality.

Can you please do something along the lines

> (cd `port work kde4-workspace`/build ; make -wk)

to check if this is the only component that fails to build?

comment:3 Changed 4 months ago by kencu (Ken)

This looked a lot like the error in libalkimia, and indeed, the same fix used there fixes this also:

# darwin17 (and later?) does not export visibile symbols
# https://trac.macports.org/ticket/55090
if { ${os.platform} eq "darwin" && ${os.major} >= 17 } {
    configure.cxxflags-append -D__KDE_HAVE_GCC_VISIBILITY
}
$ port -v installed kde4-workspace
The following ports are currently installed:
  kde4-workspace @4.14.4.20150324_3+oxygen (active) platform='darwin 17' archs='x86_64' date='2017-10-29T11:31:40-0700'

So there is some kind of systemic change, either in Darwin17 or in Xcode 9 (I don't have a darwin16/Xcode9 setup any more) that is causing this.

Rather than add this bit to every KDE4 port, perhaps someone who knows the guts of this might fix it properly? Or at least we can add this hack into the kde4 1.1 PortGroup so that all the kde ports get it.

Last edited 4 months ago by kencu (Ken) (previous) (diff)

comment:4 Changed 4 months ago by RJVB (René Bertin)

I wouldn't be surprised if the visibility model has moved to 'hidden by default' in recent compiler versions and/or C++ flavours (I've been running into visibility issues even on 10.9 of late).

Does the AppleClang from Darwin17 still support -fvisibility=hidden? I see several tests

   # visibility support
   check_cxx_compiler_flag(-fvisibility=hidden __KDE_HAVE_GCC_VISIBILITY)
   set( __KDE_HAVE_GCC_VISIBILITY ${__KDE_HAVE_GCC_VISIBILITY} CACHE BOOL "GCC support for hidden visibility")

in the various cmake modules installed by KDElibs4. If I'm not mistaken that will define __KDE_HAVE_GCC_VISIBILITY provided the compiler supports the flag.

You may need to check the cmake error file (probably ${build.dir}/CMakeFiles/CMakeError.log or ${build.dir}/CMakeFiles/CMakeOutput.log) to see what happens with that test.

comment:5 Changed 4 months ago by kencu (Ken)

Here are those two files, from a failing build on darwin17 It almost seems like those tests are not even happening...

Last edited 4 months ago by kencu (Ken) (previous) (diff)

Changed 4 months ago by kencu (Ken)

Changed 4 months ago by kencu (Ken)

comment:6 Changed 4 months ago by RJVB (René Bertin)

Strange, I cannot seem to find any trace of that the test above is being executed. Maybe it isn't, in which case it would probably indeed make sense to define __KDE_HAVE_GCC_VISIBILITY in the KDE4 PG.

Pinging @nicos...

comment:7 Changed 3 months ago by kencu (Ken)

This port still breaks, to no great surprise. I did add the block to the kde4-1.1.tcl file, and so far it seems to work as expected:

if { ${os.platform} eq "darwin" && ${os.major} >= 17 } {
    configure.cxxflags-append -D__KDE_HAVE_GCC_VISIBILITY
}

comment:8 follow-up: Changed 3 months ago by RJVB (René Bertin)

Is this the only KDE4 port which requires this? Have you tried what happens after you rebuild kde4libs with this flag added, and even if it is still required to keep adding the flag when kde4libs was built with it? (port:kde4libs installs the cmake modules used to determine how KDE4 software is built and just might include this setting too.)

If the KDE4 port:kde4libs build is not affected by this then it should be fine to put that block in the PG. Officially that call would be for @nicos to make, but I'd do it myself if I had commit access.

comment:9 in reply to: ↑ 8 Changed 7 weeks ago by Nowaker (Damian Nowak)

Hey RJVB - kde4-workspace is mentioned in https://trac.macports.org/wiki/KDE. It appears it's required to change a theme. Given the fact KDE looks shitty by default, kde4-workspace is quite important.

comment:10 Changed 7 weeks ago by RJVB (René Bertin)

You don't have to tell me - I made the kde4-workspace possible back in the day.

That said, you don't actually need it AFAIK. You need a kdeglobals file to set up the theme and it's not impossible to create that file by hand - or simply copy it from a Linux desktop.

Note: See TracTickets for help on using tickets.