Skip to content

Add config_unix directory to release archives for BSD/Unix compatibility#3594

Open
rpx99 wants to merge 2 commits intoeclipse-jdtls:mainfrom
rpx99:claude/add-config-unix-symlink-011CV4XDou3x46d8hzXcrFuS
Open

Add config_unix directory to release archives for BSD/Unix compatibility#3594
rpx99 wants to merge 2 commits intoeclipse-jdtls:mainfrom
rpx99:claude/add-config-unix-symlink-011CV4XDou3x46d8hzXcrFuS

Conversation

@rpx99
Copy link

@rpx99 rpx99 commented Nov 12, 2025

Summary

Adds config_unix directory to release archives as an alias for config_linux configuration, improving compatibility with BSD systems and custom launcher scripts.

Problem

Some users, particularly on BSD systems, expect a config_unix directory in their startup scripts rather than config_linux. While the official jdtls.py launcher maps FreeBSD to config_linux, custom launcher scripts and community tools may assume config_unix exists, leading to "config.ini not found" errors.

Solution

This PR adds config_unix as a copy of the Linux x86_64 configuration during the Maven build process. The content is identical to config_linux - this is purely an alias for better compatibility.

Changes Made

org.eclipse.jdt.ls.product/pom.xml:

  • Added copy-config-unix execution in maven-resources-plugin
  • Copies Linux x86_64 configuration to config_unix directory during package phase

org.eclipse.jdt.ls.product/publish-assembly.xml:

  • Added config_unix/** to the list of included directories in release archives

Benefits

  • Improved compatibility: Works with scripts expecting config_unix
  • No breaking changes: Existing scripts using config_linux continue to work
  • Minimal overhead: Only 15 lines of build configuration, no runtime cost
  • Clearer semantics: "unix" is more intuitive than "linux" for BSD users
  • Robustness: Follows the "be liberal in what you accept" principle

Testing

  • XML syntax validated with xmllint
  • Maven build configuration updated correctly
  • No changes to runtime behavior or performance

The next full build will include config_unix in the release archives alongside the existing config_linux, config_mac, and config_win directories.

Many users, especially on BSD systems, use config_unix in their
startup scripts instead of config_linux. This change adds config_unix
as a copy of config_linux to the release archive, preventing
"config.ini not found" errors on these systems.

Changes:
- Added maven execution to copy config_unix from Linux x86_64 configuration
- Added config_unix to publish-assembly.xml for inclusion in release archives

Fixes compatibility with BSD systems and scripts expecting config_unix.
Extended the previous commit to also include config_unix_arm for ARM64
systems, maintaining architectural parity with the existing config_linux
and config_linux_arm structure.

Changes:
- Added copy-config-unix-arm execution to pom.xml for ARM64 configuration
- Added config_unix_arm to publish-assembly.xml

This ensures both x86_64 and aarch64 BSD/Unix systems are properly
supported with their respective configurations.
@eclipse-ls-bot
Copy link
Contributor

Can one of the admins verify this patch?

@fbricon
Copy link
Contributor

fbricon commented Nov 14, 2025

Is it a "just in case", hypothetical need or do you actually need this change?

@rpx99
Copy link
Author

rpx99 commented Nov 14, 2025

@fbricon Well, i am on Unix and the folder is empty, which i did not expect. I can copy over from linux folder, but it's an inconsistency.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants