Add extra options

master
eater 6 years ago
parent 10e6e4e4bc
commit a01c0973a3
Signed by: eater
GPG Key ID: AD2560A0F84F0759

@ -6,10 +6,31 @@ ARCH ?= x86_64-musl
REPO_ROOT?=https://alpha.de.repo.voidlinux.org/current REPO_ROOT?=https://alpha.de.repo.voidlinux.org/current
# Absolute repo url # Absolute repo url
REPO?=$(REPO_ROOT)$(if $(findstring musl, $(ARCH)),/musl) REPO?=$(REPO_ROOT)$(if $(findstring musl, $(ARCH)),/musl)
# Toolbox to be used (toybox, busybox, none or default)
TOOLBOX?=toybox
# Packages to install # Packages to install
PACKAGES ?= toybox xbps bash ncurses-base PACKAGES?=xbps bash ncurses-base
# Directory where chroot should be build # Directory where chroot should be build
BUILDDIR?=$(PWD)/build BUILDDIR?=$(PWD)/build
ifeq ($(TOOLBOX),none)
VALID_TOOLBOX?=1
endif
ifeq ($(TOOLBOX),)
override TOOLBOX=none
VALID_TOOLBOX?=1
endif
ifeq ($(TOOLBOX),toybox)
override PACKAGES += toybox
VALID_TOOLBOX?=1
endif
ifeq ($(TOOLBOX),busybox)
override PACKAGES += busybox
VALID_TOOLBOX?=1
endif
ifeq ($(TOOLBOX),default)
override PACKAGES += findutils coreutils diffutils gawk which sed gzip file grep
VALID_TOOLBOX?=1
endif
default: all default: all
@ -18,10 +39,18 @@ vars:
@echo ARCH=$(ARCH) @echo ARCH=$(ARCH)
@echo REPO_ROOT=$(REPO_ROOT) @echo REPO_ROOT=$(REPO_ROOT)
@echo REPO=$(REPO) @echo REPO=$(REPO)
@echo TOOLBOX=$(TOOLBOX)
@echo VALID_TOOLBOX=$(VALID_TOOLBOX)
@echo PACKAGES=$(PACKAGES) @echo PACKAGES=$(PACKAGES)
@echo BUILDDIR=$(BUILDDIR) @echo BUILDDIR=$(BUILDDIR)
build: ensure-toolbox:
ifneq ($(VALID_TOOLBOX),1)
@echo "Please make sure TOOLBOX is none, toybox (default option), busybox or default"
exit 1
endif
build: ensure-toolbox
# Create build directory # Create build directory
mkdir $(BUILDDIR) mkdir $(BUILDDIR)
# Create keys database directory # Create keys database directory
@ -34,13 +63,27 @@ build:
for dir in lib lib32 sbin bin; do [ -e $(BUILDDIR)/$$dir ] || ln -s usr/$$dir $(BUILDDIR)/$$dir; done for dir in lib lib32 sbin bin; do [ -e $(BUILDDIR)/$$dir ] || ln -s usr/$$dir $(BUILDDIR)/$$dir; done
ln -s usr/lib $(BUILDDIR)/lib64 ln -s usr/lib $(BUILDDIR)/lib64
# Create default directories expected by void # Create default directories expected by void
for dir in proc sys dev; do [ -d $(BUILDDIR)/$$dir ] || mkdir $(BUILDDIR)/$$dir; done for dir in proc sys dev tmp; do [ -d $(BUILDDIR)/$$dir ] || mkdir $(BUILDDIR)/$$dir; done
ifeq ($(TOOLBOX),toybox)
# Create toybox symlinks # Create toybox symlinks
xbps-uchroot $(BUILDDIR) /bin/toybox | sed 's:\s:\n:g' | grep -v '^$$' | while read i; do [ -e $(BUILDDIR)/usr/bin/$$i ] || ln -s /bin/toybox $(BUILDDIR)/usr/bin/$$i; done xbps-uchroot $(BUILDDIR) /bin/toybox | sed 's:\s:\n:g' | grep -v '^$$' | while read i; do [ -e $(BUILDDIR)/usr/bin/$$i ] || ln -s /bin/toybox $(BUILDDIR)/usr/bin/$$i; done
endif
ifeq ($(TOOLBOX),busybox)
# Create busybox symlinks
xbps-uchroot $(BUILDDIR) /bin/busybox -- --list | while read i; do [ -e $(BUILDDIR)/usr/bin/$$i ] || ln -s /bin/busybox $(BUILDDIR)/usr/bin/$$i; done
endif
# Remove xbps cache dir # Remove xbps cache dir
rm -rf $(BUILDDIR)/var/cache/xbps rm -rf $(BUILDDIR)/var/cache/xbps
# Import custom bashrc # Import custom bashrc
cp bashrc.bash $(BUILDDIR)/etc/bash/bashrc.d/docker.sh cp files/bashrc.bash $(BUILDDIR)/etc/bash/bashrc.d/docker.sh
# Create os-release file
cp files/os-release $(BUILDDIR)/etc/os-release
# Create lsb_release file
cp files/lsb_release $(BUILDDIR)/bin/lsb_release
chmod +x $(BUILDDIR)/bin/lsb_release
# Create passwd and group file
echo 'root:x:0:0:root:/:/bin/bash' >> $(BUILDDIR)/etc/passwd
echo 'root:x:0:' >> $(BUILDDIR)/etc/group
install: build install: build
# Import directory as tar (owned by root) into docker # Import directory as tar (owned by root) into docker

@ -0,0 +1,98 @@
#!/bin/sh
#
# Compatibility script for FSG lsb_release v1.4 or newer
#
version="1.0"
distributor_id="VoidLinux"
description="Void Linux"
release="rolling"
codename="void"
options=""
short=0
while [ $# -gt 0 ]; do
case "$1" in
-v|--version) options="${options} version" ;;
-i|--id) options="${options} distributor_id" ;;
-d|--description) options="${options} description" ;;
-r|--release) options="${options} release" ;;
-c|--codename) options="${options} codename" ;;
-a|--all) options="version distributor_id description release codename" ;;
-s|--short) short=1 ;;
-h|--help) cat << _EOF
SYNOPSIS
lsb_release [OPTION]...
OPTIONS
v, version
Display the version of the LSB specification against which the distribution is compliant.
i, id
Display the string id of the distributor.
d, description
Display the single line text description of the distribution.
r, release
Display the release number of the distribution.
c, codename
Display the codename according to the distribution release.
a, all
Display all of the above information.
s, short
Display all of the above information in short output format.
h, help
Display this message.
_EOF
;;
-*) # Multiple options in one parameter
opt=$(echo $1 | cut -c2-)
while [ ! -z "$opt" ]; do
o=$(echo $opt | cut -c1)
case "$o" in
v) options="${options} version" ;;
i) options="${options} distributor_id" ;;
d) options="${options} description" ;;
r) options="${options} release" ;;
c) options="${options} codename" ;;
a) options="version distributor_id description release codename" ;;
s) short=1 ;;
esac
opt=$(echo $opt | cut -c2-)
done
;;
esac
shift
done
[ -z "$options" ] && options="version"
if [ "$short" -eq 1 ]; then
space=""
for opt in $options; do
case "$opt" in
version) printf "${space}${version}" ;;
distributor_id) printf "${space}${distributor_id}" ;;
description) printf "${space}\"${description}\"" ;;
release) printf "${space}${release}" ;;
codename) printf "${space}${codename}" ;;
esac
space=" "
done
printf "\n"
else
for opt in $options; do
case "$opt" in
version) printf "LSB Version:\t${version}\n" ;;
distributor_id) printf "Distributor ID:\t${distributor_id}\n" ;;
description) printf "Description:\t${description}\n" ;;
release) printf "Release:\t${release}\n" ;;
codename) printf "Codename:\t${codename}\n" ;;
esac
done
fi
exit 0

@ -0,0 +1,4 @@
NAME="void"
ID="void"
DISTRIB_ID="void"
PRETTY_NAME="void"
Loading…
Cancel
Save