1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2026-06-19 02:56:07 -05:00

Linux: fix install on merged usr systems

Install staged /usr child directories by merging their contents into existing destination directories instead of replacing them. This preserves /usr/sbin symlinks to bin on merged-/usr distributions while keeping traditional layouts working.

Fixes issue: https://github.com/veracrypt/VeraCrypt/issues/1764
This commit is contained in:
Mounir IDRASSI
2026-06-16 09:56:12 +09:00
parent 37412adf04
commit f8513cdfa8
+19 -2
View File
@@ -569,9 +569,26 @@ endif
install: prepare install: prepare
ifneq "$(DESTDIR)" "" ifneq "$(DESTDIR)" ""
mkdir -p $(DESTDIR) mkdir -p "$(DESTDIR)"
endif endif
cp -R $(BASE_DIR)/Setup/Linux/usr $(DESTDIR)/ # Merge directory contents so /usr/sbin -> bin layouts are not replaced.
@set -e; \
mkdir -p "$(DESTDIR)/usr"; \
for _src in "$(BASE_DIR)/Setup/Linux/usr"/*; do \
[ -e "$$_src" ] || continue; \
_name=$$(basename "$$_src"); \
_dst="$(DESTDIR)/usr/$$_name"; \
if [ -d "$$_src" ]; then \
if [ -e "$$_dst" ] || [ -L "$$_dst" ]; then \
mkdir -p "$$_dst"; \
cp -R "$$_src/." "$$_dst/"; \
else \
cp -R "$$_src" "$(DESTDIR)/usr/"; \
fi; \
else \
cp -P "$$_src" "$(DESTDIR)/usr/"; \
fi; \
done
ifeq "$(TC_BUILD_CONFIG)" "Release" ifeq "$(TC_BUILD_CONFIG)" "Release"
package: prepare package: prepare