Open
Description
Describe the bug
When building native binaries via make native-all
, output directories in /target
have root user permissions (uid 0, gid 0) resulting in build error Permission denied
To Reproduce
- From linux environment, run
make native-all
- Check directory permissions after build fails
Expected behavior
building via dockcross should utilize the user id and group id from the shell of the user executing it such that their output matches that of the user.
e.g.
// Makefile
U_ID:="$(shell id -u)"
G_ID:="$(shell id -g)"
// For all other architectures as shown in attached image
linux64: $(SQLITE_UNPACKED) jni-header
docker run $(DOCKER_RUN_OPTS) -u "$(U_ID):$(G_ID)" .......
Logs
mkdir: cannot create directory 'target/classes/org/sqlite/native/Linux-Musl/aarch64': Permission denied
make: *** [Makefile:125: src/main/resources/org/sqlite/native/Linux-Musl/aarch64/libsqlitejdbc.so] Error 1
make: *** [Makefile:162: linux-musl-arm64] Error 2
Environment (please complete the following information):
- OS:
$ cat /etc/os-release NAME="Pop!_OS" VERSION="22.04 LTS" ID=pop ID_LIKE="ubuntu debian" PRETTY_NAME="Pop!_OS 22.04 LTS" VERSION_ID="22.04" HOME_URL="https://pop.system76.com" SUPPORT_URL="https://support.system76.com" BUG_REPORT_URL="https://github.com/pop-os/pop/issues" PRIVACY_POLICY_URL="https://system76.com/privacy" VERSION_CODENAME=jammy UBUNTU_CODENAME=jammy LOGO=distributor-logo-pop-os
- CPU architecture:
x86_64
- sqlite-jdbc version:
3.43.0.0