Skip to content
Snippets Groups Projects
Verified Commit 4a751518 authored by Olivier Benz's avatar Olivier Benz
Browse files

Fix installation

- sample.docker-compose.yml: Disable user namespace
- start.sh: Refactoring
  - Limit PREFIX location
  - Respect /etc/staff-group-for-usr-local
  - Restore compatibility with versions < 3.2.0
parent 2e7868f7
No related branches found
No related tags found
No related merge requests found
......@@ -4,7 +4,8 @@ IMAGE=debian:bullseye
GIT_LFS_VERSION=3.2.0
# Installation prefix
PREFIX=/usr/local
# default: /usr/local
PREFIX=
# Execution mode (default: install)
# other: uninstall
......
......@@ -9,10 +9,11 @@ services:
image: glfsi
container_name: glfsi
network_mode: host
userns_mode: host
volumes:
- ${PREFIX}:${PREFIX}
- ${PREFIX:-/usr/local}:${PREFIX:-/usr/local}
- /etc:/tmp/etc
environment:
- GIT_LFS_VERSION=${GIT_LFS_VERSION}
- PREFIX=${PREFIX}
- PREFIX=${PREFIX:-/usr/local}
- MODE=${MODE:-install}
userns_mode: host
......@@ -4,27 +4,64 @@
set -e
# Test if PREFIX location is whithin limits
if [[ ! "${PREFIX}" == "/usr/local" && ! "${PREFIX}" =~ ^"/opt" ]]; then
echo "ERROR: PREFIX set to '${PREFIX}'. Must either be '/usr/local' or within '/opt'."
exit 1
fi
cd /tmp
curl -sSLO https://github.com/git-lfs/git-lfs/releases/download/v${GIT_LFS_VERSION}/git-lfs-linux-$(dpkg --print-architecture)-v${GIT_LFS_VERSION}.tar.gz
tar xfz git-lfs-linux-$(dpkg --print-architecture)-v${GIT_LFS_VERSION}.tar.gz --no-same-owner
cd git-lfs-${GIT_LFS_VERSION}
if [[ ${GIT_LFS_VERSION//./} -ge 320 ]]; then
tar xfz git-lfs-linux-$(dpkg --print-architecture)-v${GIT_LFS_VERSION}.tar.gz --no-same-owner
cd git-lfs-${GIT_LFS_VERSION}
else
tar xfz git-lfs-linux-$(dpkg --print-architecture)-v${GIT_LFS_VERSION}.tar.gz --no-same-owner --one-top-level
cd git-lfs-linux-$(dpkg --print-architecture)-v${GIT_LFS_VERSION}
fi
sed -i 's/git lfs install/#git lfs install/g' install.sh
echo '
mkdir -p $prefix/share/man/man1
# According to https://www.debian.org/doc/debian-policy/ch-opersys.html#site-specific-programs
if [[ "$PREFIX" == "/usr/local" && -e /tmp/etc/staff-group-for-usr-local ]]; then
perm=2775
group=staff
else
perm=755
group=root
fi
mkdir -p $prefix/share
mkdir -m$perm -p $prefix/share/man
chown root:$group $prefix/share/man
mkdir -m$perm -p $prefix/share/man/man1
chown root:$group $prefix/share/man/man1
rm -rf $prefix/share/man/man1/git-lfs*
pushd "$( dirname "${BASH_SOURCE[0]}" )/man/man1" > /dev/null
for g in git-lfs*; do
if [[ -d man/man1 ]]; then
suffix=/man1
else
suffix=
fi
pushd "$( dirname "${BASH_SOURCE[0]}" )/man$suffix" > /dev/null
for g in *.1; do
install -m0644 $g "$prefix/share/man/man1/$g"
done
popd > /dev/null
mkdir -p $prefix/share/man/man5
mkdir -m$perm -p $prefix/share/man/man5
chown root:$group $prefix/share/man/man5
rm -rf $prefix/share/man/man5/git-lfs*
pushd "$( dirname "${BASH_SOURCE[0]}" )/man/man5" > /dev/null
for g in git-lfs*; do
if [[ -d man/man5 ]]; then
suffix=/man5
else
suffix=
fi
pushd "$( dirname "${BASH_SOURCE[0]}" )/man$suffix" > /dev/null
for g in *.5; do
install -m0644 $g "$prefix/share/man/man5/$g"
done
popd > /dev/null' >> install.sh
......@@ -34,20 +71,23 @@ set -eu
prefix="/usr/local"
if [ "${PREFIX:-}" != "" ] ; then
if [[ "${PREFIX:-}" != "" ]] ; then
prefix=${PREFIX:-}
elif [ "${BOXEN_HOME:-}" != "" ] ; then
elif [[ "${BOXEN_HOME:-}" != "" ]] ; then
prefix=${BOXEN_HOME:-}
fi
rm -rf $prefix/bin/git-lfs*
rm -rf $prefix/share/man/man1/git-lfs*
rm -rf $prefix/share/man/man5/git-lfs*' > uninstall.sh
rm -rf $prefix/share/man/man5/git-lfs*
rmdir $prefix/share/man/man1 2>&1 | sed "s|^|INFO: |"
rmdir $prefix/share/man/man5 2>&1 | sed "s|^|INFO: |"' > uninstall.sh
chmod +x uninstall.sh
if [[ -f "${MODE}.sh" ]]; then
./${MODE}.sh
echo "Git LFS at ${PREFIX} ${MODE}ed."
echo "INFO: Git LFS v${GIT_LFS_VERSION} at ${PREFIX} ${MODE}ed."
else
echo "Execution mode '${MODE}' not supported!"
echo "ERROR: Execution mode '${MODE}' not supported!"
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment