pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/40100: devel/doxygen/Makefile mishandles Darwin case sensitivity



The following reply was made to PR pkg/40100; it has been noted by GNATS.

From: Tom Yu <tlyu%MIT.EDU@localhost>
To: Thomas Klausner <wiz%NetBSD.org@localhost>
Cc: gnats%NetBSD.org@localhost
Subject: Re: pkg/40100: devel/doxygen/Makefile mishandles Darwin case 
sensitivity
Date: Thu, 04 Dec 2008 11:25:00 -0500

 Thomas Klausner <wiz%NetBSD.org@localhost> writes:
 
 > On Thu, Dec 04, 2008 at 08:36:47AM -0500, Tom Yu wrote:
 >> I was building pkgsrc in a UFS, therefore case-sensitive, filesystem
 >> on Mac OS and experiencing this problem.  The build generates some
 >> documentation files, some of which would have uppercase letters on
 >> case-sensitive filesystems.  Whether Doxygen defaults to generating
 >> mixed-case files depends on the operating system, not the underlying
 >> case-sensitivity of the destination filesystem.
 >
 > I tried to find the code that does this decision, but I couldn't; I
 > found some code that checks for the case sensitivity of the file
 > system though.
 > I also found the CASE_SENSE_NAMES configuration setting, which can be
 > set to yes and no.
 >
 >> The previous check was looking for lowercase "descr" in the directory,
 >> which would be false when building in a UFS filesystem, and the PLIST
 >> was therefore expecting files with uppercase letters.  However,
 >> Doxygen was generating lowercase-only filenames because it was built
 >> on Mac OS and defaults to doing that regardless of the
 >> case-sensitivity of the target filesystem.  This caused the packaging
 >> to fail due to a filename case mismatch with the PLIST.
 >
 > I understand the failure case that you're seeing, I don't understand
 > how it comes to pass though yet.
 > Have you looked at the doxygen source, or why are you sure that it
 > tests for the platform and not the file system?
 > Perhaps it checks the wrong file system.
 
 In src/portable.cpp, there are preprocessor conditionals including
 __MACOSX__ on the implementation of the function
 portable_fileSystemIsCaseSensitive().  The function returns FALSE if
 __MACOSX__ (among others) is defined.  src/config.cpp (generated from
 src/config.l) then sets the default setting of CASE_SENSE_NAMES
 depending on the result of portable_fileSystemIsCaseSensitive().
 
 There appears to be no explicit runtime test in the source code for
 the case sensitivity of the destination filesystem.
 


Home | Main Index | Thread Index | Old Index