Opened 8 years ago

Closed 8 years ago

Last modified 7 years ago

#37968 closed defect (invalid)

kde4-runtime does not compile on case-sensitive filesystems

Reported by: obmalcioglu@… Owned by: NicosPavlov
Priority: Normal Milestone:
Component: ports Version: 2.1.3
Keywords: Cc: sharky@…, ryandesign (Ryan Schmidt)
Port: kde4-runtime

Description (last modified by larryv (Lawrence Velázquez))

Dear developers,

I am trying to compile krusader in a mid 2010 Macbook pro with MacOSX 10.8.2, in a case-sensitive filesytem. however, kde4-runtime dependency fails to compile:

--->  Building kde4-runtime
Error: org.macports.build for port kde4-runtime returned: command execution failed
Error: Failed to install kde4-runtime 

I am using an almost fresh install of the OS and latest version of Macports

Please find the full log attached

Attachments (2)

main.log (495.8 KB) - added by obmalcioglu@… 8 years ago.
Error log
main.2.log (3.8 MB) - added by obmalcioglu@… 8 years ago.
error log after clean and make

Change History (21)

Changed 8 years ago by obmalcioglu@…

Attachment: main.log added

Error log

comment:1 Changed 8 years ago by larryv (Lawrence Velázquez)

Cc: sharky@… added
Description: modified (diff)
Keywords: kde4-runtime case sensitive filesystem krusader removed
Owner: changed from macports-tickets@… to nicos@…

Thanks for the ticket. In the future, please try to Cc relevant port maintainers.

comment:2 Changed 8 years ago by cooljeanius (Eric Gallager)

The log is saying stuff about nepomuk; what does port -d installed nepomuk-core return for you?

comment:3 in reply to:  2 Changed 8 years ago by obmalcioglu@…

Replying to egall@…:

The log is saying stuff about nepomuk; what does port -d installed nepomuk-core return for you?

DEBUG: Copying /Users/obm/Library/Preferences/com.apple.dt.Xcode.plist to /opt/local/var/macports/home/Library/Preferences
The following ports are currently installed:
  nepomuk-core @4.9.5_0 (active) platform='darwin 12' archs='x86_64'
Last edited 7 years ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:4 Changed 8 years ago by NicosPavlov

Some nepomuk libraries are also contained in kdelibs, so that the issue may also be elsewhere.

However, the log is rather incomplete, would it be possible to provide a full log, with

sudo port clean kde4-runtime
sudo port install kde4-runtime

and post the result ?

Changed 8 years ago by obmalcioglu@…

Attachment: main.2.log added

error log after clean and make

comment:5 in reply to:  4 ; Changed 8 years ago by obmalcioglu@…

Replying to nicos@…:

Some nepomuk libraries are also contained in kdelibs, so that the issue may also be elsewhere.

However, the log is rather incomplete, would it be possible to provide a full log, with

sudo port clean kde4-runtime
sudo port install kde4-runtime

and post the result ?

please find the new log attached.

comment:6 in reply to:  5 Changed 8 years ago by NicosPavlov

The error in the log is:

/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_kde_kde4-runtime/kde4-runtime/work/build/nepomuk/kioslaves/search/../../../../kde-runtime-4.9.5/nepomuk/kioslaves/search/searchfolder.h:30:10: fatal error: 'Nepomuk2/Query/Term' file not found

The file is provided by nepomuk-core. As you said you have it, I would assume that you have this file on your system.

If that is indeed the case, I would assume that the issue comes from the case-sensitivity. While the installed file (on my system) is ${prefix}/include/nepomuk2/Query/Term, the include in searchfolder.h is #include <Nepomuk2/Query/Term>.

I am not sure, but renaming the includes may solve the issue.

comment:7 Changed 8 years ago by obmalcioglu@…

I was hoping it would be fixed by now. Seriously? There are no one that uses case sensitive filesystem out there? in the source directory, I've replaced the wrong includes written as Nepomuk to nepomuk and the package compiled without a problem.

Ugly solution though

comment:8 in reply to:  7 ; Changed 8 years ago by NicosPavlov

Since I was not intending to wipe my whole system and reformat my hard drive to test the issue, I was hoping to get a feedback in order to know if this was indeed the problem. I would like to remind you that case-sensitive formatting is not the default on Mac.

I thus assume that a patch as attached would correspond to the fix. I would however be reluctant to commit it without being able to test it and without confirmation.

Ugly solution though

If you think of another solution, you are very welcome to express it in a constructive way.

EDIT: It seems impossible to upload files presently on Trac, so that the patch will be uploaded later.

Last edited 8 years ago by NicosPavlov (previous) (diff)

comment:9 in reply to:  8 Changed 8 years ago by obmalcioglu@…

Dear Nicos, After re-reading what I've written, I have the sensation that it might be easily misunderstood, and I would like to clear some things. I am grateful for the voluntary work everyone is putting on this, and I'm more than happy to receive any support or suggestions to fix the problem. I am feeling antiquated still preferring a case sensitive filesystem. The solution is ugly, since I've edited many files, and they were erased after the compilation. If I knew how, I would've preferred contributing a patch to the community. Instead of formatting your hd, maybe you might consider creating a file sensitive dmg container using disk utility. Then symlink to whereever. This is the (opposite) of the solution I do for programs that demand case insensitive areas for storage.

I've compiled krusader in the end, but it is not working for some reason. I'll look into it later.

Have a nice day and please keep on the excellent work.

Replying to nicos@…:

Since I was not intending to wipe my whole system and reformat my hard drive to test the issue, I was hoping to get a feedback in order to know if this was indeed the problem. I would like to remind you that case-sensitive formatting is not the default on Mac.

I thus assume that a patch as attached would correspond to the fix. I would however be reluctant to commit it without being able to test it and without confirmation.

Ugly solution though

If you think of another solution, you are very welcome to express it in a constructive way.

EDIT: It seems impossible to upload files presently on Trac, so that the patch will be uploaded later.

comment:10 Changed 8 years ago by NicosPavlov

Summary: kde4-runtime does not compilekde4-runtime does not compile on case-sensitive filesystems

It is slightly frustrating, but I do not seem able to upload the patch on the ticket...

For the issue and for next times, another workaround may be to employ the archives, as it seems to be only at compilation. I worked recently to make most kde ports distributable, so that it should not be necessary to build kde4-runtime whose binary should be distributable.

Another point which strikes me is that this problem did not pop up on other systems, as I could not find any other bug reports, even though *nix systems should be case sensitive, while kde is primarily made for them. I will need to check the latest versions first, but I will probably report it upstream if this is not fixed.

comment:11 Changed 8 years ago by NicosPavlov

As the includes stayed identical in the new major version 4.10, the issue was reported upstream in https://bugs.kde.org/show_bug.cgi?id=315318.

comment:12 Changed 8 years ago by NicosPavlov

Resolution: invalid
Status: newclosed

I tested on a case-sensitive filesystem, and could confirm that compilation works fine, with proper installation of the include files of nepomuk-core in nepomuk2 and Nepomuk2 directories.

I think that in the particular case reported here, nepomuk-core has been installed from a pre-built binary, while the buildbots are case-insensitive (default on Mac). This implies the mixup of Nepomuk2 and nepomuk2 directories. Then, building kde4-runtime on a case-sensitive machine breaks. Using purely pre-built binaries or purely builds from source should however work.

It may not be in general advisable to install from pre-built package on a case-sensitive filesystem, as these come from case-insensitive machines. Nevertheless, I think that's the mixup which broke compilation.

comment:13 in reply to:  12 ; Changed 8 years ago by cooljeanius (Eric Gallager)

Replying to nicos@…:

I tested on a case-sensitive filesystem, and could confirm that compilation works fine, with proper installation of the include files of nepomuk-core in nepomuk2 and Nepomuk2 directories.

I think that in the particular case reported here, nepomuk-core has been installed from a pre-built binary, while the buildbots are case-insensitive (default on Mac). This implies the mixup of Nepomuk2 and nepomuk2 directories. Then, building kde4-runtime on a case-sensitive machine breaks. Using purely pre-built binaries or purely builds from source should however work.

It may not be in general advisable to install from pre-built package on a case-sensitive filesystem, as these come from case-insensitive machines. Nevertheless, I think that's the mixup which broke compilation.

Shouldn't there at least be some sort of warning message or something that comes with kde4-runtime that lets users know this?

comment:14 in reply to:  13 ; Changed 8 years ago by NicosPavlov

Replying to egall@…:

Shouldn't there at least be some sort of warning message or something that comes with kde4-runtime that lets users know this?

I am not sure about this. First, the issue reported here is only a symptom, while the cause comes from nepomuk-core. Second, this situation is outdated, because it happened as nepomuk-core got installed by a pre-built archive and kde4-runtime from source. Both are now distributable. This type of issues could also happen with other ports which depend on nepomuk-core, specially if variants are involved.

The real answer in my point of view would be to disable pre-built archives on a case-sensitive filesystem, as the archives in the buildbot are built from another filesystem. This can be done by editing the archive_sites.conf file by commenting out the two lines

#name                macports_archives
#urls

comment:15 in reply to:  14 Changed 8 years ago by larryv (Lawrence Velázquez)

Replying to nicos@…:

The real answer in my point of view would be to disable pre-built archives on a case-sensitive filesystem, as the archives in the buildbot are built from another filesystem. This can be done by editing the archive_sites.conf file by commenting out the two lines

#name                macports_archives
#urls

Maybe base can be changed to default to disabling archives if installed on a case-sensitive filesystem?

comment:16 Changed 8 years ago by jmroot (Joshua Root)

If the case is specified consistently everywhere, everything should just work (except where there are actually multiple files whose paths differ only in case). The default case-insensitive filesystem is still case-preserving.

comment:17 in reply to:  12 ; Changed 8 years ago by obmalcioglu@…

Replying to nicos@…:

I might be misunderstanding, but for the record, let me state the problem again.

In a fresh install of MacOsX 10.8.2 + Xcode I download Macports and type port install krusader.

then I have this error. I have not done any choice or any modification that might choose pre-built binaries for me.

so I still think that this is a relevant bug, since the command "port install krusader" or " port install kde4-runtime" does not have the desired effect even after cleaning. Regardless what the underlying reason might be.

comment:18 in reply to:  17 Changed 8 years ago by larryv (Lawrence Velázquez)

Replying to obmalcioglu@…:

I have not done any choice or any modification that might choose pre-built binaries for me.

You don’t have to. On OS X 10.6–10.8 x86_64, MacPorts uses binary archives if they are available, unless you use the -s option while installing.

Last edited 8 years ago by larryv (Lawrence Velázquez) (previous) (diff)

comment:19 in reply to:  12 Changed 7 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added

Replying to nicos@…:

I think that in the particular case reported here, nepomuk-core has been installed from a pre-built binary, while the buildbots are case-insensitive (default on Mac).

The buildslaves use case-sensitive filesystems.

Note: See TracTickets for help on using tickets.