bugDDD - Bugs: bug #28923, ddd/Ddd gets overwritten by...

 
 

bug #28923: ddd/Ddd gets overwritten by ddd/ddd when building on os x

Submitter:  Doug Reeder <dlr1>
Submitted:  Wed 17 Feb 2010 06:16:04 PM UTC
Votes: 10
 
Category:  Build Severity:  3 - Normal
Item Group:  None Status:  None
Privacy:  Public Assigned to:  None
Open/Closed:  Closed Release:  3.3.12
* Mandatory Fields

Add a New Comment Rich Markup
   

Tue 16 Apr 2024 03:08:39 PM UTC, comment #3: 

Fixed in commit 7479, not 7478.

Michael Eager <eager>
Group administrator
Wed 27 Mar 2024 04:39:25 PM UTC, comment #2: 

The X11 resource file, Ddd, is now built under ddd/x11. 

Commit #7478.

Please test this on MacOS and let me know if this resolves the issue.

Michael Eager <eager>
Group administrator
Sun 09 Jul 2023 11:41:41 AM UTC, comment #1: 

Please reopen. This problem remains in ddd 3.4.0.

Most Macs use case-insensitive case-preserving filesystems because that is the default. This means you can create a file "Foo" and later access it as "fOO" without error or warning. As a result, it is not unheard-of to find even well-regarded commercial Mac apps that have inadvertent filename case mismatches somewhere within their code such that the program will not launch or work correctly on case-sensitive filesystems. Therefore, most Mac users should use a case-insensitive filesystem.

One example:

https://helpx.adobe.com/creative-suite/kb/error-case-sensitive-drives-supported.html

ddd fails to build on case-insensitive filesystems because it tries to create both the executable "ddd" and the X resource file "Ddd" in the same directory. Of course, on a case-insensitive filesystem, either one of them will end up overwriting the other, or else "make" will see one of them as already up-to-date and will not attempt to build it.

The workaround that MacPorts has been employing since 2004 is to specify the argument "EXEEXT=.exe" when running "make" and "sudo make install", which changes the executable name from "ddd" to "ddd.exe" so that it does not collide with "Ddd". Then, "ddd.exe" in the installation directory is manually renamed back to "ddd".

It would be great if the build system would work on case-insensitive filesystems without such hacks, so either make your same-named-different-cased files in different directories or rename one of them. You've previously (in 2004) fixed similar issues, such as when you renamed "USERINFO" to "USERINFO.txt" so that it did not collide with "userinfo":

https://svn.savannah.gnu.org/viewvc/ddd?view=revision&revision=6705

Another instance of this problem is your x11/Xpm.h header which collides on case-insensitive filesystems with the X11/xpm.h system header provided by the xpm software. This warning appears:


In file included from logo.C:36:
./X11/xpm.h:38:10: warning: non-portable path to file '<x11/Xpm.h>'; specified path differs in case from file name on disk [-Wnonportable-include-path]
#include <X11/xpm.h>
         ^~~~~~~~~~~
         <x11/Xpm.h>


The suggestion made by the warning isn't correct in this case, since you really did want to include the system header here and not your header, and the build succeeded so maybe that's what happened, but I still suggest you rename your header so that its case-insensitive include path does not collide with that of any system headers which should eliminate the warning.

Ryan Carsten Schmidt <ryandesign>
Wed 17 Feb 2010 06:16:04 PM UTC, original submission:  

When building ddd-3.1.2 on os x 10.6.2 the x-apps-defaults file, ddd/Ddd, gets overwritten by the executable file, ddd/ddd, during the build process. This happens because by default the os x file system is not case sensitive. Using the configure --enable-builtin-app-defaults option doesn't solve the problem. I believe that if the app-defaults file was created with the nanme ddd/Ddd.ad the problem would be solved.

Doug Reeder <dlr1>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by eager (Posted a comment)
  • -email is unavailable- added by ryandesign (Voted in favor of this item)
  • -email is unavailable- added by ryandesign (Posted a comment)
  • -email is unavailable- added by eickeler (Updated the item)
  • -email is unavailable- added by dlr1 (Submitted the item)
  •  

    There are 10 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2024-04-16 eager Open/ClosedOpen Closed
    2023-07-15 eickeler Open/ClosedClosed Open
    2023-07-11 ryandesign Carbon-Copy- Added ryandesign
    2022-12-28 eickeler Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-d3ae.
    Corresponding source code