Add containerized xstow static build

This commit is contained in:
2025-10-06 20:01:17 -04:00
commit 0c704e4872
5 changed files with 73 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
build

25
Dockerfile Normal file
View File

@@ -0,0 +1,25 @@
FROM rockylinux:8
RUN dnf -y install epel-release && \
/usr/bin/crb enable && \
dnf -y install \
git \
autoconf \
automake \
libtool \
make \
gettext \
texinfo \
gcc-c++ \
glibc-static \
libstdc++-static \
&& dnf clean all
RUN git clone --recurse-submodules \
https://github.com/majorkingleo/xstow.git /src
WORKDIR /src
RUN cp README.md README && \
autoreconf -fi && \
./configure --enable-static && \
make

12
LICENSE Normal file
View File

@@ -0,0 +1,12 @@
Copyright (C) 2025 by Kris Lamoureux
Permission to use, copy, modify, and/or distribute this software for
any purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

27
README.md Normal file
View File

@@ -0,0 +1,27 @@
# xstow-builder
Reproducible static build of `xstow` for systems where `stow` or `xstow` isn't
already available. Unlike `stow`, which requires Perl and it's dependencies,
this statically-linked `xstow` binary is self-contained and can be dropped into
`~/.local/bin` without any installation requirements.
## Build
Running the `docker-compose.yml` will spin up a Rocky Linux container, compile
`xstow` with static linking, and output the binary to `./build/xstow` in your
local repository.
Podman:
podman-compose up --build
Docker:
docker compose up --build
Binary output: `./build/xstow`
## License
This project is released under the 0BSD license, which allows for unrestricted
use, modification, and distribution.

8
docker-compose.yml Normal file
View File

@@ -0,0 +1,8 @@
services:
xstow-builder:
build:
context: .
volumes:
- ./build:/build
command: >
bash -c "cp /src/src/xstow-static /build/xstow"