summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2014-07-04 14:46:20 +0200
committerSimon Rettberg2014-07-04 14:46:20 +0200
commitd1f5aedd76df437a08f3283fa00bc8a9dab7fa2b (patch)
tree8c046eeaf8e874b479b95964b2bf410365cff438
parentremove hardcoded /bin/rm call. Relative calls work in services files (diff)
downloadtm-scripts-d1f5aedd76df437a08f3283fa00bc8a9dab7fa2b.tar.gz
tm-scripts-d1f5aedd76df437a08f3283fa00bc8a9dab7fa2b.tar.xz
tm-scripts-d1f5aedd76df437a08f3283fa00bc8a9dab7fa2b.zip
"Fedora Support", step 1 ->
Several changes: 1) Make sure /bin /sbin /lib and /lib64 are ALWAYS symlinks to /usr/XXX, no matter what the current distribution does. 2) Make sure nobody and nogroup exist. 3) Fix various modules making assumptions that are not true on every distro. 4) Add symlinks to kdm module since fedora is looking for kdmrc in yet another spot. 5) Add detection of fedora, support its package manager What still breaks: dnbd3 Other distros might not work now, they need adaption to changed logic in some modules.
-rwxr-xr-xmltk3
-rw-r--r--remote/includes/distribution.inc2
-rw-r--r--remote/includes/kernel.inc11
-rw-r--r--remote/includes/packagemanager.inc16
-rw-r--r--remote/includes/system.inc1
-rw-r--r--remote/includes/useradd.inc4
-rw-r--r--remote/modules/alsa/module.conf.fedora13
-rw-r--r--remote/modules/beamergui/module.build2
-rw-r--r--remote/modules/beamergui/module.conf.fedora8
-rw-r--r--remote/modules/busybox/module.build3
-rw-r--r--remote/modules/busybox/module.conf4
-rw-r--r--remote/modules/cups/module.conf.fedora12
-rw-r--r--remote/modules/dbus/module.conf.fedora4
-rw-r--r--remote/modules/idleaction/module.conf.fedora6
l---------remote/modules/kdm/data/etc/kde1
l---------remote/modules/kdm/data/usr/share/config/kdm1
-rw-r--r--remote/modules/kdm/module.conf.fedora26
-rw-r--r--remote/modules/kdm/module.conf.ubuntu2
-rw-r--r--remote/modules/kernel-system/module.build20
-rw-r--r--remote/modules/kernel-system/module.conf.fedora6
m---------remote/modules/kernel/aufs3-standalone0
l---------remote/modules/kernel/kernel-system1
-rw-r--r--remote/modules/kernel/module.build4
-rw-r--r--remote/modules/kernel/module.conf.fedora3
-rw-r--r--remote/modules/kernel/module.conf.opensuse5
-rw-r--r--remote/modules/nscd/module.conf.fedora6
-rw-r--r--remote/modules/openbox/module.conf.fedora11
-rw-r--r--remote/modules/pam/module.build4
-rw-r--r--remote/modules/pam/module.conf.fedora42
-rw-r--r--remote/modules/pam/module.conf.opensuse1
-rw-r--r--remote/modules/pam/module.conf.opensuse.13.11
-rw-r--r--remote/modules/polkit/module.conf.fedora12
-rw-r--r--remote/modules/printergui/module.conf2
-rw-r--r--remote/modules/printergui/module.conf.fedora5
-rw-r--r--remote/modules/printergui/module.conf.opensuse8
-rw-r--r--remote/modules/printergui/module.conf.ubuntu4
-rw-r--r--remote/modules/redsocks/module.conf.fedora3
-rw-r--r--remote/modules/rsyslogd/module.conf3
-rw-r--r--remote/modules/rsyslogd/module.conf.debian3
-rw-r--r--remote/modules/rsyslogd/module.conf.fedora3
-rw-r--r--remote/modules/rsyslogd/module.conf.opensuse3
-rw-r--r--remote/modules/rsyslogd/module.conf.ubuntu4
-rw-r--r--remote/modules/smartctl/module.conf.fedora6
-rw-r--r--remote/modules/smbclient/module.build1
-rw-r--r--remote/modules/smbclient/module.conf.fedora9
-rw-r--r--remote/modules/sshd/data/etc/tmpfiles.d/sshd.conf1
-rw-r--r--remote/modules/systemd/module.conf.fedora11
-rw-r--r--remote/modules/systemd/module.conf.opensuse1
-rw-r--r--remote/modules/systemd/module.conf.ubuntu1
-rw-r--r--remote/modules/udisks/module.build5
-rw-r--r--remote/modules/udisks/module.conf.fedora7
-rw-r--r--remote/modules/vmchooser/module.conf.fedora3
-rw-r--r--remote/modules/xorg/module.conf.fedora69
-rw-r--r--remote/rootfs/rootfs-stage31/data/inc/activate_sysconfig1
-rwxr-xr-xremote/rootfs/rootfs-stage31/data/init4
-rw-r--r--remote/rootfs/rootfs-stage31/module.build4
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/terminfo/l/linux (renamed from remote/rootfs/rootfs-stage32/data/lib/terminfo/l/linux)bin1790 -> 1790 bytes
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/terminfo/x/xtermbin0 -> 3371 bytes
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/terminfo/x/xterm-256colorbin0 -> 3437 bytes
-rw-r--r--remote/rootfs/rootfs-stage32/module.build11
-rw-r--r--remote/rootfs/rootfs-stage32/module.conf.fedora18
-rwxr-xr-xremote/setup_target21
62 files changed, 372 insertions, 74 deletions
diff --git a/mltk b/mltk
index 212afb9a..ceae7fb2 100755
--- a/mltk
+++ b/mltk
@@ -120,6 +120,9 @@ check_devtools() {
pinfo "zypper install gcc gcc-c++ make m4 binutils git module-init-tools patch squashfs pkg-config"
pinfo "to install missing development tools."
;;
+ fedora | scientific)
+ pinfo "yum install redhat-lsb gcc-c++ gcc make m4 binutils pkgconfig patch"
+ ;;
*)
perror "No installation help for $SYS_DISTRIBUTION available."
;;
diff --git a/remote/includes/distribution.inc b/remote/includes/distribution.inc
index 7a7be738..137da7ef 100644
--- a/remote/includes/distribution.inc
+++ b/remote/includes/distribution.inc
@@ -18,7 +18,7 @@ detect_distribution () {
PACKET_MANAGER="zypper"
PACKET_HANDLER="rpm"
;;
- scientific)
+ scientific|fedora)
PACKET_MANAGER="yum"
PACKET_HANDLER="rpm"
;;
diff --git a/remote/includes/kernel.inc b/remote/includes/kernel.inc
index dc7f7f12..3acb1810 100644
--- a/remote/includes/kernel.inc
+++ b/remote/includes/kernel.inc
@@ -28,9 +28,12 @@ get_kernel_version () {
# set empty SYS_UTS_RELEASE and SYS_KERNEL
SYS_UTS_RELEASE="(unknown)"
SYS_KERNEL="$(echo "$SYS_UTS_RELEASE" | grep -o -E '^[0-9\.]+')"
+ # System kernel version
+ SYSTEM_KERNEL_LONG=$(uname -r)
+ SYSTEM_KERNEL_SHORT=$(grep -o -E '^[0-9\.]+' <<<$SYSTEM_KERNEL_LONG)
}
-check_kernel_base_dir() {
+check_kernel_base_dir () {
# check if KERNEL_BASE_DIR was set, if not we don't know
# whether kernel-openslx or kernel-system has been built
@@ -46,7 +49,7 @@ check_kernel_base_dir() {
}
-copy_kernel_modules() {
+copy_kernel_modules () {
pinfo "Copying kernel modules for kernel ${KERNEL_CURRENT_VERSION}..."
[ -z "${REQUIRED_KERNEL_MODULES}" ] && perror "REQUIRED_KERNEL_MODULES is empty. Check your config file."
[ -z "${KERNEL_HEADERS_PATH}" ] && perror "KERNEL_HEADERS_PATH is empty. Kernel headers appears to be missing."
@@ -128,7 +131,7 @@ copy_kernel_modules() {
cd "${OLD_DIR}" || perror "Could not cd back to ${OLD_DIR}."
}
-copy_firmware() {
+copy_firmware () {
pinfo "Copying firmware for kernel ${KERNEL_CURRENT_VERSION}..."
[ -z "${REQUIRED_FIRMWARE}" ] && perror "REQUIRED_FIRMWARE is empty. Check your config file."
@@ -205,7 +208,7 @@ copy_firmware() {
cd "${OLD_DIR}" || perror "Could not cd back to ${OLD_DIR}."
}
-copy_kernel() {
+copy_kernel () {
check_kernel_base_dir
local TOOL_STR="$TOOL_STR copy_kernel:"
diff --git a/remote/includes/packagemanager.inc b/remote/includes/packagemanager.inc
index 66013807..63acf270 100644
--- a/remote/includes/packagemanager.inc
+++ b/remote/includes/packagemanager.inc
@@ -98,34 +98,36 @@ install_packages() {
[ $# -eq 0 ] && perror "Sanity check failed: no argument given to install_package"
local PACKAGE_LIST="$@"
local INSTALLED_PACKAGES=""
+ local LRET=""
for PKG in ${PACKAGE_LIST}; do
# check if installed:
# this is done mainly for performance reasons, even though
- # reinstalling all packages is a valid possibility too...
+ # reinstalling all packages is a valid possibility too...
if [ "x$PACKET_HANDLER" == "xdpkg" ]; then
dpkg -l ${PKG} > /dev/null 2>&1
+ LRET=$?
elif [ "x$PACKET_HANDLER" == "xrpm" ]; then
- rpm -ql ${PKG} > /dev/null 2>&1
+ rpm -ql "${PKG}" > /dev/null 2>&1
+ LRET=$?
else
perror "No packet manager / handler determined, this should not happen!"
fi
- local LRET=$?
if [ "x$LRET" == "x0" ]; then
# check if it is completly installed, not just leftover configuration files
if [ "x$PACKET_HANDLER" == "xdpkg" ]; then
- local INSTALL_STATUS=$(dpkg -l $PKG | grep $PKG | cut -c1-2)
+ local INSTALL_STATUS=$(dpkg -l "${PKG}" | grep "${PKG}" | cut -c1-2)
if [[ $INSTALL_STATUS != "ii" ]]; then
pinfo "$PKG is either missing or a meta-package! Installing it to be sure..."
- install_package $PKG
+ install_package "${PKG}"
else
# package installed
- pdebug "$PKG installed!"
+ pdebug "${PKG} installed!"
fi
elif [ "x$PACKET_HANDLER" == "xrpm" ]; then
# TODO: blindly install again for now
- install_package $PKG
+ rpm -q "${PKG}" >/dev/null 2>&1 || install_package "${PKG}"
fi
else
# package not installed
diff --git a/remote/includes/system.inc b/remote/includes/system.inc
index bcdaed23..17a80761 100644
--- a/remote/includes/system.inc
+++ b/remote/includes/system.inc
@@ -21,6 +21,7 @@ if [ "$(uname -m)x" = "x86_64x" ]; then
case $SYS_DISTRIBUTION in
ubuntu | debian) LIB64="lib" ;;
opensuse) LIB64="lib64" ;;
+ fedora) LIB64="lib64" ;;
*) perror "Cannot set LIB64, SYS_DISTRIBUTION: $SYS_DISTRIBUTION unknown!" ;;
esac
AMD64_I386=amd64
diff --git a/remote/includes/useradd.inc b/remote/includes/useradd.inc
index 352da606..29a9c39a 100644
--- a/remote/includes/useradd.inc
+++ b/remote/includes/useradd.inc
@@ -16,7 +16,7 @@
. "${ROOT_DIR}/helper/string.inc"
-NAME_REGEX='^[a-z][-a-z0-9]*$'
+declare -r NAME_REGEX='^[a-z][-a-z0-9]*$'
# Generate a UID for a given USERNAME. Return existing UID if possible, generate new one otherwise
generate_uid()
@@ -150,7 +150,7 @@ add_user() {
pinfo "Created user $USER"
elif [ "$PASSWORD" != "*" ]; then
# update user's password
- sed -i -r "s#^${USER}:[^:]*:(.*)\$#${USER}:${PASSWORD}:\1#g" "${_SHADOW}"
+ sed -i -r "s#^${USER}:[^:]*:(.*)\$"'#'"${USER}:${PASSWORD}:\1#g" "${_SHADOW}"
pinfo "Updated password of $USER"
fi
[ -z "${_GID}" ] && pinfo "Created group $GROUP" && echo "${GROUP}:x:${GROUPID}:" >> "${_GROUP}"
diff --git a/remote/modules/alsa/module.conf.fedora b/remote/modules/alsa/module.conf.fedora
new file mode 100644
index 00000000..4ea213db
--- /dev/null
+++ b/remote/modules/alsa/module.conf.fedora
@@ -0,0 +1,13 @@
+REQUIRED_INSTALLED_PACKAGES="
+ alsa-utils
+ alsa-lib
+"
+REQUIRED_CONTENT_PACKAGES="
+ alsa-utils
+ alsa-lib
+"
+REQUIRED_DIRECTORIES="
+ /usr/share/alsa
+"
+
+# libasound2
diff --git a/remote/modules/beamergui/module.build b/remote/modules/beamergui/module.build
index 26059615..2ff35bfc 100644
--- a/remote/modules/beamergui/module.build
+++ b/remote/modules/beamergui/module.build
@@ -13,7 +13,7 @@ build() {
mkdir -p "$MODULE_BUILD_DIR/opt/openslx/bin"
cd "${MODULE_BUILD_DIR}/opt/openslx/bin" || perror "Could not cd!"
pinfo "Running qmake"
- qmake "$SRCDIR/src/beamergui.pro" -r -spec linux-g++ || perror "'qmake' failed (e.g. not installed)."
+ qmake-qt4 "$SRCDIR/src/beamergui.pro" -r -spec linux-g++ || perror "'qmake-qt4' failed (e.g. not installed)."
pinfo "Running make"
make || perror "'make' failed."
}
diff --git a/remote/modules/beamergui/module.conf.fedora b/remote/modules/beamergui/module.conf.fedora
new file mode 100644
index 00000000..8b46942d
--- /dev/null
+++ b/remote/modules/beamergui/module.conf.fedora
@@ -0,0 +1,8 @@
+REQUIRED_INSTALLED_PACKAGES="
+qt-devel
+libXrandr-devel
+"
+REQUIRED_CONTENT_PACKAGES="
+qt-devel
+libXrandr
+"
diff --git a/remote/modules/busybox/module.build b/remote/modules/busybox/module.build
index 727a334c..135ba8a1 100644
--- a/remote/modules/busybox/module.build
+++ b/remote/modules/busybox/module.build
@@ -1,8 +1,7 @@
fetch_source() {
- git clone "${REQUIRED_GIT}" src || perror "Could not clone busybox git"
+ git clone --depth 1 "${REQUIRED_GIT}" --branch "$REQUIRED_BRANCH" src || perror "Could not clone busybox git"
cd src || perror "Could not cd to src"
- git checkout "$REQUIRED_BRANCH" || perror "Could not checkout requested branch"
# Patch image centering if not patched yet
if ! grep -q "bcenter_image" "miscutils/fbsplash.c"; then
git apply "../fbsplash-center.patch" || perror "Could not apply busybox patch for fbsplash image centering"
diff --git a/remote/modules/busybox/module.conf b/remote/modules/busybox/module.conf
index 6acfa16c..82d1731e 100644
--- a/remote/modules/busybox/module.conf
+++ b/remote/modules/busybox/module.conf
@@ -2,6 +2,6 @@ REQUIRED_GIT="git://git.busybox.net/busybox"
REQUIRED_BRANCH="1_22_1"
REQUIRED_BINARIES="busybox"
REQUIRED_DIRECTORIES="
- /bin
- /sbin
+ /usr/bin
+ /usr/sbin
"
diff --git a/remote/modules/cups/module.conf.fedora b/remote/modules/cups/module.conf.fedora
new file mode 100644
index 00000000..6b028b11
--- /dev/null
+++ b/remote/modules/cups/module.conf.fedora
@@ -0,0 +1,12 @@
+REQUIRED_INSTALLED_PACKAGES="
+ cups
+ cups-libs
+ foomatic-filters
+ ghostscript
+"
+REQUIRED_CONTENT_PACKAGES="
+ cups
+ cups-libs
+ foomatic-filters
+ ghostscript
+"
diff --git a/remote/modules/dbus/module.conf.fedora b/remote/modules/dbus/module.conf.fedora
new file mode 100644
index 00000000..f38f590f
--- /dev/null
+++ b/remote/modules/dbus/module.conf.fedora
@@ -0,0 +1,4 @@
+REQUIRED_CONTENT_PACKAGES="
+ dbus
+"
+
diff --git a/remote/modules/idleaction/module.conf.fedora b/remote/modules/idleaction/module.conf.fedora
new file mode 100644
index 00000000..d368cbd8
--- /dev/null
+++ b/remote/modules/idleaction/module.conf.fedora
@@ -0,0 +1,6 @@
+REQUIRED_INSTALLED_PACKAGES="
+ libX11-devel
+ libXScrnSaver-devel
+ xorg-x11-proto-devel
+"
+
diff --git a/remote/modules/kdm/data/etc/kde b/remote/modules/kdm/data/etc/kde
new file mode 120000
index 00000000..5a94165b
--- /dev/null
+++ b/remote/modules/kdm/data/etc/kde
@@ -0,0 +1 @@
+kde4 \ No newline at end of file
diff --git a/remote/modules/kdm/data/usr/share/config/kdm b/remote/modules/kdm/data/usr/share/config/kdm
new file mode 120000
index 00000000..8f0c47bd
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/config/kdm
@@ -0,0 +1 @@
+/etc/kde4/kdm \ No newline at end of file
diff --git a/remote/modules/kdm/module.conf.fedora b/remote/modules/kdm/module.conf.fedora
new file mode 100644
index 00000000..59bfacb7
--- /dev/null
+++ b/remote/modules/kdm/module.conf.fedora
@@ -0,0 +1,26 @@
+REQUIRED_INSTALLED_PACKAGES="
+ kdm
+ kgreeter-plugins
+ oxygen-icon-theme
+"
+REQUIRED_CONTENT_PACKAGES="
+ kdm
+ kgreeter-plugins
+"
+REQUIRED_BINARIES=""
+REQUIRED_DIRECTORIES="
+ /usr/bin
+ /usr/share/kde4/services
+ /usr/$LIB64/kde4
+ /usr/libexec/kde4
+"
+REQUIRED_FILES=""
+REQUIRED_LIBRARIES=""
+#non-standard vars
+REQUIRED_SYSTEM_FILES="
+ /usr/share/icons/oxygen/16x16/actions/system-reboot.png
+ /usr/share/icons/oxygen/16x16/actions/system-shutdown.png
+ /usr/share/icons/oxygen/16x16/actions/dialog-cancel.png
+ /usr/share/icons/oxygen/index.theme
+"
+
diff --git a/remote/modules/kdm/module.conf.ubuntu b/remote/modules/kdm/module.conf.ubuntu
index b91d00e0..660b3a1e 100644
--- a/remote/modules/kdm/module.conf.ubuntu
+++ b/remote/modules/kdm/module.conf.ubuntu
@@ -20,7 +20,7 @@ REQUIRED_DIRECTORIES+="
/etc/kde4/kdm
"
# non-standard vars
-REQUIRED_SYSTEM_FILES+="
+REQUIRED_SYSTEM_FILES+="
/usr/share/kde4/apps/kdm/pics/shutdown.png
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-R.ttf
diff --git a/remote/modules/kernel-system/module.build b/remote/modules/kernel-system/module.build
index 91dc4d35..d698db22 100644
--- a/remote/modules/kernel-system/module.build
+++ b/remote/modules/kernel-system/module.build
@@ -10,8 +10,14 @@ get_kernel_version(){
declare -rg KERNEL_NEW_VERSION="$KERNEL_CURRENT_VERSION" 2>/dev/null
# check linux headers directory
- if [ -d "/usr/src/linux-headers-$(uname -r)" ]; then
- declare -rg KERNEL_HEADERS_PATH="/usr/src/linux-headers-$(uname -r)" 2>/dev/null
+ if [ -d "/lib/modules/$KERNEL_CURRENT_VERSION/build" ]; then
+ declare -rg KERNEL_HEADERS_PATH="/lib/modules/$KERNEL_CURRENT_VERSION/build" 2>/dev/null
+ elif [ -d "/lib/modules/$KERNEL_CURRENT_VERSION/source" ]; then
+ declare -rg KERNEL_HEADERS_PATH="/lib/modules/$KERNEL_CURRENT_VERSION/source" 2>/dev/null
+ elif [ -d "/usr/src/linux-headers-$KERNEL_CURRENT_VERSION" ]; then
+ declare -rg KERNEL_HEADERS_PATH="/usr/src/linux-headers-$KERNEL_CURRENT_VERSION" 2>/dev/null
+ elif [ -d "/usr/src/kernels/$KERNEL_CURRENT_VERSION" ]; then
+ declare -rg KERNEL_HEADERS_PATH="/usr/src/kernels/$KERNEL_CURRENT_VERSION" 2>/dev/null
else
# fetch source did not install the headers correctly.
perror "kernel headers for $KERNEL_CURRENT_VERSION not found! Re-build the kernel-system module"
@@ -19,7 +25,7 @@ get_kernel_version(){
# check kernel modules/firmware directory
if [ -d "/lib/modules/${KERNEL_CURRENT_VERSION}" -a \
- -d "/lib/firmware/${KERNEL_CURRENT_VERSION}" ]; then
+ -d "/lib/firmware" ]; then
# The expected paths exists, set KERNEL_BASE_DIR to /
declare -rg KERNEL_BASE_DIR="/" 2>/dev/null
else
@@ -52,11 +58,13 @@ build() {
# simply copy the kernel from the running system
# to the build directory as it is.
local KERNEL_SYSTEM_PATH=""
+ local BOOT_IMAGE=""
# 1st "parse" /proc/cmdline for the kernel name
for i in $(cat /proc/cmdline); do
- [[ "$i" =~ ^BOOT_IMAGE=.* ]] && local BOOT_IMAGE="$(basename $(echo $i|cut -c 12-))"
+ [[ "$i" == BOOT_IMAGE=* ]] && BOOT_IMAGE="$(basename "${i#BOOT_IMAGE=}")"
done
+ [ -z "${BOOT_IMAGE}" ] && local BOOT_IMAGE="$(uname -r)"
# exit if KERNEL_SYSTEM_FILENAME is empty, should not happen
[ -z "${BOOT_IMAGE}" ] && perror "Could not determine the full path to the running kernel..."
@@ -64,14 +72,14 @@ build() {
# now find it in KERNEL_SYSTEM_SEARCH_PATH
# NOTE: this variable should be expanded in the future if new locations are to be searched
local KERNEL_SYSTEM_SEARCH_PATH="/boot"
- local KERNEL_SYSTEM_SEARCH_RESULTS="$(find "${KERNEL_SYSTEM_SEARCH_PATH}" -type f -iname "*${BOOT_IMAGE}*")"
+ local KERNEL_SYSTEM_SEARCH_RESULTS="$(find "${KERNEL_SYSTEM_SEARCH_PATH}" -type f -name "${BOOT_IMAGE}")"
if [ "$(echo $KERNEL_SYSTEM_SEARCH_RESULTS|wc -w)" -eq 1 ]; then
# we found the running kernel path
KERNEL_SYSTEM_PATH="${KERNEL_SYSTEM_SEARCH_RESULTS}"
else
# we found more than one, shouldn't happen...
- perror "Found more than one kernel named '${BOOT_IMAGE}' inside '${KERNEL_SYSTEM_SEARCH_PATH}'."
+ perror "Found no or more than one kernel named '${BOOT_IMAGE}' in '${KERNEL_SYSTEM_SEARCH_PATH}'."
fi
# at this point, we should definitly have KERNEL_SYSTEM_PATH, check just in case :)
diff --git a/remote/modules/kernel-system/module.conf.fedora b/remote/modules/kernel-system/module.conf.fedora
new file mode 100644
index 00000000..cf683784
--- /dev/null
+++ b/remote/modules/kernel-system/module.conf.fedora
@@ -0,0 +1,6 @@
+REQUIRED_INSTALLED_PACKAGES="
+ kernel-headers
+"
+REQUIRED_CONTENT_PACKAGES="
+ kernel-headers
+"
diff --git a/remote/modules/kernel/aufs3-standalone b/remote/modules/kernel/aufs3-standalone
new file mode 160000
+Subproject 0b4a532fc19edd562b3417914dd1346f96ea482
diff --git a/remote/modules/kernel/kernel-system b/remote/modules/kernel/kernel-system
new file mode 120000
index 00000000..041dc99f
--- /dev/null
+++ b/remote/modules/kernel/kernel-system
@@ -0,0 +1 @@
+../../modules/kernel-system \ No newline at end of file
diff --git a/remote/modules/kernel/module.build b/remote/modules/kernel/module.build
index 979ce742..9270024d 100644
--- a/remote/modules/kernel/module.build
+++ b/remote/modules/kernel/module.build
@@ -1,6 +1,6 @@
get_kernel_version() {
# determine kernel version that will be running in the generated system
- if [ -e "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" ]; then
+ if [ -e "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" ]; then
# declare kernel version stuff
declare -rg SYS_UTS_RELEASE=$(grep 'UTS_RELEASE' "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" | awk -F '"' '{print $2}')
declare -rg SYS_KERNEL=$(echo "$SYS_UTS_RELEASE" | grep -o -E '^[0-9\.]+')
@@ -23,7 +23,7 @@ get_kernel_version() {
fetch_source() {
pdebug "getting kernel sources via git ...."
[ -d ./ksrc ] && rm -rf ./ksrc # slightly brutal ...
- git clone --depth 1 ${REQUIRED_GIT} ksrc || perror "Could not clone kernel git."
+ git clone --depth 1 "${REQUIRED_GIT}" -b "${REQUIRED_GIT_BRANCH}" ksrc || perror "Could not clone kernel git."
# check for aufs
local RSL=$(find ksrc/ -type d -name aufs)
if [ -z "$RSL" ]; then
diff --git a/remote/modules/kernel/module.conf.fedora b/remote/modules/kernel/module.conf.fedora
new file mode 100644
index 00000000..53e6ccb6
--- /dev/null
+++ b/remote/modules/kernel/module.conf.fedora
@@ -0,0 +1,3 @@
+REQUIRED_GIT_BRANCH="v${SYSTEM_KERNEL_SHORT}"
+REQUIRED_GIT="git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git"
+
diff --git a/remote/modules/kernel/module.conf.opensuse b/remote/modules/kernel/module.conf.opensuse
index a66564fe..cdf57cc7 100644
--- a/remote/modules/kernel/module.conf.opensuse
+++ b/remote/modules/kernel/module.conf.opensuse
@@ -1,2 +1,3 @@
-REQUIRED_GIT_BRANCH="-b openSUSE-${SYS_VERSION}"
-REQUIRED_GIT="git://kernel.opensuse.org/kernel.git $REQUIRED_GIT_BRANCH"
+REQUIRED_GIT_BRANCH="openSUSE-${SYS_VERSION}"
+REQUIRED_GIT="git://kernel.opensuse.org/kernel.git"
+
diff --git a/remote/modules/nscd/module.conf.fedora b/remote/modules/nscd/module.conf.fedora
new file mode 100644
index 00000000..4a61cc19
--- /dev/null
+++ b/remote/modules/nscd/module.conf.fedora
@@ -0,0 +1,6 @@
+REQUIRED_INSTALLED_PACKAGES="
+ nscd
+"
+REQUIRED_CONTENT_PACKAGES="
+ nscd
+"
diff --git a/remote/modules/openbox/module.conf.fedora b/remote/modules/openbox/module.conf.fedora
new file mode 100644
index 00000000..f919f3b3
--- /dev/null
+++ b/remote/modules/openbox/module.conf.fedora
@@ -0,0 +1,11 @@
+REQUIRED_INSTALLED_PACKAGES="
+ openbox
+ pango
+"
+REQUIRED_CONTENT_PACKAGES="
+ openbox
+ pango
+"
+REQUIRED_DIRECTORIES+="
+ /usr/$LIB64
+"
diff --git a/remote/modules/pam/module.build b/remote/modules/pam/module.build
index c6d92510..3f0d8861 100644
--- a/remote/modules/pam/module.build
+++ b/remote/modules/pam/module.build
@@ -4,7 +4,7 @@ fetch_source() {
# get pam-script source
download_untar "$REQUIRED_PAM_SCRIPT_URL" "src/"
# Distribution switch: openSuse 13.1 has no package nss-ldap:
- if [[ "$SYS_DISTRIBUTION" == "opensuse" && "$SYS_VERSION" == "13.1" ]]; then
+ if [ -n "$REQUIRED_NSS_LDAPD_URL" ]; then
pinfo "Downloading $REQUIRED_NSS_LDAPD_URL ..."
download_untar "$REQUIRED_NSS_LDAPD_URL" "src/"
fi
@@ -35,7 +35,7 @@ build() {
./configure --prefix=/ --sysconfdir=/etc/pam-script --libdir="$(dirname ${PAM_UNIX_LOCATION:1})" || perror "pam-script: ./configure failed."
make DESTDIR="${MODULE_BUILD_DIR}" install || perror "pam-script: make install to ${MODULE_BUILD_DIR} failed."
# openSuse 13.1 has no package nss-pam-ldapd. So, we compile it.
- if [[ "$SYS_DISTRIBUTION" == "opensuse" && "$SYS_VERSION" == "13.1" ]]; then
+ if [ -n "$REQUIRED_NSS_LDAPD_URL" ]; then
cd "${MODULE_DIR}/src/$REQUIRED_NSS_LDAPD_VERSION"
pinfo "compiling pam-nss-ldapd for openSuse 13.1 ..."
./configure || perror "openSuse 13.1 - pam-nss-ldapd: ./configure failed."
diff --git a/remote/modules/pam/module.conf.fedora b/remote/modules/pam/module.conf.fedora
new file mode 100644
index 00000000..b2eb3421
--- /dev/null
+++ b/remote/modules/pam/module.conf.fedora
@@ -0,0 +1,42 @@
+REQUIRED_NSS_LDAPD_VERSION="nss-pam-ldapd-0.8.13"
+REQUIRED_NSS_LDAPD_URL="http://arthurdejong.org/nss-pam-ldapd/${REQUIRED_NSS_LDAPD_VERSION}.tar.gz"
+
+REQUIRED_INSTALLED_PACKAGES="
+ pam
+ pam_krb5
+ pam-devel
+ nss-mdns
+ libnfsidmap
+ openssl-devel
+ openldap-clients
+ nfs-utils
+ glibc
+ pam-devel
+ openldap-devel
+ krb5-devel
+"
+REQUIRED_CONTENT_PACKAGES="
+ pam
+ pam_krb5
+ pam-devel
+ nss-mdns
+ libnfsidmap
+ openldap-clients
+ nfs-utils
+ glibc
+"
+REQUIRED_LIBRARIES+="
+ libnss_compat
+ libnss_db
+ libnss_dns
+ libnss_files
+ libnss_nis
+"
+REQUIRED_DIRECTORIES+="
+ /$LIB64
+ /usr/$LIB64
+"
+REQUIRED_SYSTEM_FILES+="
+ /$LIB64/security
+"
+
diff --git a/remote/modules/pam/module.conf.opensuse b/remote/modules/pam/module.conf.opensuse
index adef3174..dfc50e1e 100644
--- a/remote/modules/pam/module.conf.opensuse
+++ b/remote/modules/pam/module.conf.opensuse
@@ -3,6 +3,7 @@ REQUIRED_INSTALLED_PACKAGES="
pam_krb5
pam-devel
nss-pam-ldapd
+ nss-mdns
pam-modules
libopenssl-devel
openldap2-client
diff --git a/remote/modules/pam/module.conf.opensuse.13.1 b/remote/modules/pam/module.conf.opensuse.13.1
index 9fe1de17..d4435999 100644
--- a/remote/modules/pam/module.conf.opensuse.13.1
+++ b/remote/modules/pam/module.conf.opensuse.13.1
@@ -10,6 +10,7 @@ REQUIRED_INSTALLED_PACKAGES="
pam_krb5
pam-devel
pam-modules
+ nss-mdns
libopenssl-devel
openldap2-client
nfsidmap
diff --git a/remote/modules/polkit/module.conf.fedora b/remote/modules/polkit/module.conf.fedora
new file mode 100644
index 00000000..3d4d965d
--- /dev/null
+++ b/remote/modules/polkit/module.conf.fedora
@@ -0,0 +1,12 @@
+REQUIRED_INSTALLED_PACKAGES="
+ js-1.8.5
+"
+REQUIRED_CONTENT_PACKAGES="
+ js-1.8.5
+ polkit
+"
+REQUIRED_DIRECTORIES+="
+ /usr/lib/polkit-1
+ /var/lib/polkit
+"
+
diff --git a/remote/modules/printergui/module.conf b/remote/modules/printergui/module.conf
index 17203d3e..39e64b16 100644
--- a/remote/modules/printergui/module.conf
+++ b/remote/modules/printergui/module.conf
@@ -4,6 +4,4 @@ REQUIRED_BINARIES="
printergui
printpwgui
"
-REQUIRED_SYSTEM_FILES="
-"
diff --git a/remote/modules/printergui/module.conf.fedora b/remote/modules/printergui/module.conf.fedora
new file mode 100644
index 00000000..f1f55014
--- /dev/null
+++ b/remote/modules/printergui/module.conf.fedora
@@ -0,0 +1,5 @@
+REQUIRED_INSTALLED_PACKAGES="
+ cups-devel
+ qt-devel
+"
+
diff --git a/remote/modules/printergui/module.conf.opensuse b/remote/modules/printergui/module.conf.opensuse
index 2d4c7a95..478d0a71 100644
--- a/remote/modules/printergui/module.conf.opensuse
+++ b/remote/modules/printergui/module.conf.opensuse
@@ -1,7 +1,5 @@
REQUIRED_INSTALLED_PACKAGES="
-cups-devel
-libqt4-devel
-"
-REQUIRED_CONTENT_PACKAGES="
-cups-devel
+ cups-devel
+ libqt4-devel
"
+
diff --git a/remote/modules/printergui/module.conf.ubuntu b/remote/modules/printergui/module.conf.ubuntu
index 54123003..73c89910 100644
--- a/remote/modules/printergui/module.conf.ubuntu
+++ b/remote/modules/printergui/module.conf.ubuntu
@@ -2,6 +2,4 @@ REQUIRED_INSTALLED_PACKAGES="
libcups2-dev
libqt4-dev
"
-REQUIRED_CONTENT_PACKAGES="
- libcups2-dev
-"
+
diff --git a/remote/modules/redsocks/module.conf.fedora b/remote/modules/redsocks/module.conf.fedora
new file mode 100644
index 00000000..fcc0fb45
--- /dev/null
+++ b/remote/modules/redsocks/module.conf.fedora
@@ -0,0 +1,3 @@
+REQUIRED_INSTALLED_PACKAGES="
+ libevent-devel
+"
diff --git a/remote/modules/rsyslogd/module.conf b/remote/modules/rsyslogd/module.conf
index ba36aadf..207f0a1d 100644
--- a/remote/modules/rsyslogd/module.conf
+++ b/remote/modules/rsyslogd/module.conf
@@ -4,3 +4,6 @@ REQUIRED_BINARIES="
REQUIRED_FILES="
/etc/rsyslog.conf
"
+REQUIRED_DIRECTORIES="
+ /usr/$LIB64/rsyslog
+"
diff --git a/remote/modules/rsyslogd/module.conf.debian b/remote/modules/rsyslogd/module.conf.debian
index 79aba761..6f3cb891 100644
--- a/remote/modules/rsyslogd/module.conf.debian
+++ b/remote/modules/rsyslogd/module.conf.debian
@@ -1,6 +1,3 @@
REQUIRED_CONTENT_PACKAGES="
rsyslog
"
-REQUIRED_DIRECTORIES="
- /usr/lib/rsyslog
-"
diff --git a/remote/modules/rsyslogd/module.conf.fedora b/remote/modules/rsyslogd/module.conf.fedora
new file mode 100644
index 00000000..6f3cb891
--- /dev/null
+++ b/remote/modules/rsyslogd/module.conf.fedora
@@ -0,0 +1,3 @@
+REQUIRED_CONTENT_PACKAGES="
+ rsyslog
+"
diff --git a/remote/modules/rsyslogd/module.conf.opensuse b/remote/modules/rsyslogd/module.conf.opensuse
index 51ce0e47..6d7a3c99 100644
--- a/remote/modules/rsyslogd/module.conf.opensuse
+++ b/remote/modules/rsyslogd/module.conf.opensuse
@@ -4,6 +4,3 @@ REQUIRED_CONTENT_PACKAGES="
REQUIRED_BINARIES+="
rsyslog-service-prepare
"
-REQUIRED_DIRECTORIES="
- /usr/$LIB64/rsyslog
-"
diff --git a/remote/modules/rsyslogd/module.conf.ubuntu b/remote/modules/rsyslogd/module.conf.ubuntu
index 79aba761..ac8df362 100644
--- a/remote/modules/rsyslogd/module.conf.ubuntu
+++ b/remote/modules/rsyslogd/module.conf.ubuntu
@@ -1,6 +1,4 @@
REQUIRED_CONTENT_PACKAGES="
rsyslog
"
-REQUIRED_DIRECTORIES="
- /usr/lib/rsyslog
-"
+
diff --git a/remote/modules/smartctl/module.conf.fedora b/remote/modules/smartctl/module.conf.fedora
new file mode 100644
index 00000000..d699f2f0
--- /dev/null
+++ b/remote/modules/smartctl/module.conf.fedora
@@ -0,0 +1,6 @@
+REQUIRED_CONTENT_PACKAGES="
+ smartmontools
+"
+REQUIRED_INSTALLED_PACKAGES="
+ smartmontools
+"
diff --git a/remote/modules/smbclient/module.build b/remote/modules/smbclient/module.build
index dc28dd26..ec2c80fe 100644
--- a/remote/modules/smbclient/module.build
+++ b/remote/modules/smbclient/module.build
@@ -9,6 +9,7 @@ build() {
list_packet_files >> "$COPYLIST"
tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}"
+ mkdir -p "${MODULE_BUILD_DIR}/usr/lib/cups/backend" || perror "Could not create '${MODULE_BUILD_DIR}/usr/lib/cups/backend'"
local BIN_LOCATION="$(which smbspool)"
if [ ! -z "${BIN_LOCATION}" -a -e "${BIN_LOCATION}" ]; then
ln -sf "${BIN_LOCATION}" "${MODULE_BUILD_DIR}/usr/lib/cups/backend/smb"
diff --git a/remote/modules/smbclient/module.conf.fedora b/remote/modules/smbclient/module.conf.fedora
new file mode 100644
index 00000000..f524d100
--- /dev/null
+++ b/remote/modules/smbclient/module.conf.fedora
@@ -0,0 +1,9 @@
+REQUIRED_INSTALLED_PACKAGES="
+ samba-client
+"
+REQUIRED_CONTENT_PACKAGES="
+ samba-client
+"
+REQUIRED_FILES="
+ /usr/lib/cups/backend/smb
+"
diff --git a/remote/modules/sshd/data/etc/tmpfiles.d/sshd.conf b/remote/modules/sshd/data/etc/tmpfiles.d/sshd.conf
index 77e6e459..ffb34ca6 100644
--- a/remote/modules/sshd/data/etc/tmpfiles.d/sshd.conf
+++ b/remote/modules/sshd/data/etc/tmpfiles.d/sshd.conf
@@ -1,2 +1,3 @@
d /var/run/sshd 0755 root root
+d /var/empty/sshd 0755 root root
diff --git a/remote/modules/systemd/module.conf.fedora b/remote/modules/systemd/module.conf.fedora
new file mode 100644
index 00000000..9232ea5f
--- /dev/null
+++ b/remote/modules/systemd/module.conf.fedora
@@ -0,0 +1,11 @@
+REQUIRED_INSTALLED_PACKAGES="
+ intltool
+ gperf
+ libcap-devel
+ libudev-devel
+ dbus-devel
+ libxslt
+ libblkid-devel
+ libacl-devel
+ glib2-devel
+"
diff --git a/remote/modules/systemd/module.conf.opensuse b/remote/modules/systemd/module.conf.opensuse
index 9326a7dc..965333c4 100644
--- a/remote/modules/systemd/module.conf.opensuse
+++ b/remote/modules/systemd/module.conf.opensuse
@@ -1,7 +1,6 @@
REQUIRED_INSTALLED_PACKAGES="
intltool
gperf
- pkg-config
libcap-devel
libudev-devel
dbus-1-devel
diff --git a/remote/modules/systemd/module.conf.ubuntu b/remote/modules/systemd/module.conf.ubuntu
index 2768b51c..e5dff817 100644
--- a/remote/modules/systemd/module.conf.ubuntu
+++ b/remote/modules/systemd/module.conf.ubuntu
@@ -2,7 +2,6 @@ REQUIRED_INSTALLED_PACKAGES="
intltool
gperf
dbus
- pkg-config
libcap-dev
libudev-dev
libdbus-1-dev
diff --git a/remote/modules/udisks/module.build b/remote/modules/udisks/module.build
index ab9df016..6a8ff7b0 100644
--- a/remote/modules/udisks/module.build
+++ b/remote/modules/udisks/module.build
@@ -7,11 +7,8 @@ build () {
COPYLIST="list_dpkg_output"
rm -f "$COPYLIST"
- list_packet_files >> "$COPYLIST"
+ list_packet_files >> "$COPYLIST"
tarcopy "$(cat "$COPYLIST" | sort -u)" "$MODULE_BUILD_DIR"
- if [ -d "$MODULE_BUILD_DIR/lib/udev" ]; then
- cp -a "$MODULE_BUILD_DIR/lib/udev" "$MODULE_BUILD_DIR/usr/lib/" || perror "Could not move /lib/udev to /usr/lib/udev"
- fi
mkdir -p "$MODULE_BUILD_DIR/etc/systemd/system/basic.target.wants" "$MODULE_BUILD_DIR/usr/share/dbus-1/system-services"
local FOUND=no
local BINARY=$(find "$MODULE_BUILD_DIR" -name udisksd -executable | head -n 1)
diff --git a/remote/modules/udisks/module.conf.fedora b/remote/modules/udisks/module.conf.fedora
new file mode 100644
index 00000000..abf12be7
--- /dev/null
+++ b/remote/modules/udisks/module.conf.fedora
@@ -0,0 +1,7 @@
+REQUIRED_INSTALLED_PACKAGES="
+ udisks2
+"
+REQUIRED_CONTENT_PACKAGES="
+ udisks2
+"
+
diff --git a/remote/modules/vmchooser/module.conf.fedora b/remote/modules/vmchooser/module.conf.fedora
new file mode 100644
index 00000000..d012e561
--- /dev/null
+++ b/remote/modules/vmchooser/module.conf.fedora
@@ -0,0 +1,3 @@
+REQUIRED_INSTALLED_PACKAGES="
+ qt-devel
+"
diff --git a/remote/modules/xorg/module.conf.fedora b/remote/modules/xorg/module.conf.fedora
new file mode 100644
index 00000000..5cb5a594
--- /dev/null
+++ b/remote/modules/xorg/module.conf.fedora
@@ -0,0 +1,69 @@
+# xkbutils, xkbprint, setxkbmap, xkbevd for 64-bit openSuse
+REQUIRED_INSTALLED_PACKAGES="
+ xorg-x11-server-Xorg
+ xorg-x11-drv-vmware
+ xorg-x11-drv-ati
+ xorg-x11-drv-nouveau
+ xorg-x11-drv-intel
+ xorg-x11-drv-i740
+ xorg-x11-drv-vesa
+ xorg-x11-drv-fbdev
+ xorg-x11-drv-modesetting
+ xorg-x11-drv-vmmouse
+ xorg-x11-drv-wacom
+ xorg-x11-drv-evdev
+ xorg-x11-drv-keyboard
+ xorg-x11-drv-mouse
+ xorg-x11-drv-synaptics
+ xorg-x11-drv-void
+ xkeyboard-config
+ dejavu-sans-fonts
+ libxcb
+ mesa-dri-drivers
+ mesa-libGL
+ xorg-x11-xkb-utils
+ xorg-x11-xkb-extras
+ pixman
+ xorg-x11-server-utils
+"
+REQUIRED_CONTENT_PACKAGES="
+ xorg-x11-server-Xorg
+ xorg-x11-drv-vmware
+ xorg-x11-drv-ati
+ xorg-x11-drv-nouveau
+ xorg-x11-drv-intel
+ xorg-x11-drv-i740
+ xorg-x11-drv-vesa
+ xorg-x11-drv-fbdev
+ xorg-x11-drv-modesetting
+ xorg-x11-drv-vmmouse
+ xorg-x11-drv-wacom
+ xorg-x11-drv-evdev
+ xorg-x11-drv-keyboard
+ xorg-x11-drv-mouse
+ xorg-x11-drv-synaptics
+ xorg-x11-drv-void
+ xkeyboard-config
+ dejavu-sans-fonts
+ libxcb
+ mesa-dri-drivers
+ mesa-libGL
+ xorg-x11-xkb-utils
+ xorg-x11-xkb-extras
+ pixman
+ xorg-x11-server-utils
+"
+REQUIRED_LIBRARIES="
+ libxcb-glx
+ libIntelXvMC
+ i965_dri
+ vmwgfx_dri
+ i915_dri
+ libpixman-1
+"
+REQUIRED_DIRECTORIES+="
+ /usr/bin
+ /usr/lib/udev
+ /usr/$LIB64/xorg
+ /usr/share/fonts
+"
diff --git a/remote/rootfs/rootfs-stage31/data/inc/activate_sysconfig b/remote/rootfs/rootfs-stage31/data/inc/activate_sysconfig
index 036e90ad..5a97d7ac 100644
--- a/remote/rootfs/rootfs-stage31/data/inc/activate_sysconfig
+++ b/remote/rootfs/rootfs-stage31/data/inc/activate_sysconfig
@@ -75,6 +75,7 @@ HEREEND
#
fetch_sysconfig
+. "${CONFIG}-remote"
fetch_config_files
update_sysconfig
true
diff --git a/remote/rootfs/rootfs-stage31/data/init b/remote/rootfs/rootfs-stage31/data/init
index f49b3000..699c68ff 100755
--- a/remote/rootfs/rootfs-stage31/data/init
+++ b/remote/rootfs/rootfs-stage31/data/init
@@ -80,7 +80,9 @@ bench_event "STAGE32" "Downloaded stage 3.2"
# copy files needed for stage3.2 to FUTURE_ROOT
echo "Copying busybox etc. to stage32..."
-tar -cp "/bin" "/sbin" "/inc/functions" | tar -xp -C "${FUTURE_ROOT}/opt/openslx/"
+cp -a "/usr/bin" "/usr/sbin" "${FUTURE_ROOT}/opt/openslx/"
+mkdir -p "${FUTURE_ROOT}/opt/openslx/inc"
+cp -a "/inc/functions" "${FUTURE_ROOT}/opt/openslx/inc/"
# set the SLX_ROOT_PASS if given in config
if [ ! -z "$SLX_ROOT_PASS" ]; then
diff --git a/remote/rootfs/rootfs-stage31/module.build b/remote/rootfs/rootfs-stage31/module.build
index c9346603..bc45b6fd 100644
--- a/remote/rootfs/rootfs-stage31/module.build
+++ b/remote/rootfs/rootfs-stage31/module.build
@@ -4,7 +4,7 @@ fetch_source() {
}
build() {
- local COPYLIST BIN_LOCATION DRM_MODULES FILE BIN MODNAME PCI_FILE ALIAS VENDOR DEVICE
+ local COPYLIST BIN_LOCATION DRM_MODULES FILE BIN MODNAME PCI_FILE ALIAS VENDOR DEVICE LIB
COPYLIST="list_binaries_and_files"
[ -e "$COPYLIST" ] && rm -f "$COPYLIST"
for BIN in $REQUIRED_BINARIES; do
@@ -14,7 +14,7 @@ build() {
done
mkdir -p "$MODULE_BUILD_DIR/lib"
- find /lib /lib64 /usr/lib /usr/lib64 \( -name "libnss_dns*" -o -name "libresolv*" \) -exec cp -a {} "$MODULE_BUILD_DIR/lib/" \;
+ find /lib /lib64 /usr/lib /usr/lib64 \( -name "libnss_dns*" -o -name "libresolv*" \) >> "$COPYLIST"
tarcopy "$(cat "$COPYLIST" | sort -u)" "$MODULE_BUILD_DIR"
diff --git a/remote/rootfs/rootfs-stage32/data/lib/terminfo/l/linux b/remote/rootfs/rootfs-stage32/data/etc/terminfo/l/linux
index 48d722f8..48d722f8 100644
--- a/remote/rootfs/rootfs-stage32/data/lib/terminfo/l/linux
+++ b/remote/rootfs/rootfs-stage32/data/etc/terminfo/l/linux
Binary files differ
diff --git a/remote/rootfs/rootfs-stage32/data/etc/terminfo/x/xterm b/remote/rootfs/rootfs-stage32/data/etc/terminfo/x/xterm
new file mode 100644
index 00000000..438b1581
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/etc/terminfo/x/xterm
Binary files differ
diff --git a/remote/rootfs/rootfs-stage32/data/etc/terminfo/x/xterm-256color b/remote/rootfs/rootfs-stage32/data/etc/terminfo/x/xterm-256color
new file mode 100644
index 00000000..b934be06
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/etc/terminfo/x/xterm-256color
Binary files differ
diff --git a/remote/rootfs/rootfs-stage32/module.build b/remote/rootfs/rootfs-stage32/module.build
index 86a47fd4..90820f3f 100644
--- a/remote/rootfs/rootfs-stage32/module.build
+++ b/remote/rootfs/rootfs-stage32/module.build
@@ -40,7 +40,7 @@ build() {
pinfo "Searching libraries from config file in system... (could take some time)"
for LIB in ${REQUIRED_LIBRARIES}
do
- # lib + lib64: Ugly hack, will be replaced by a better solution
+ # lib + lib64: Ugly hack, will be replaced by a better solution
for LIB_LOCATION in $(find /lib/ /lib64/ -name "${LIB}.so*")
do
get_link_chain "${LIB_LOCATION}" >> "${FILELIST}"
@@ -89,11 +89,8 @@ post_copy() {
# set terminal to linux as it defaults to xterm which messes up ssh sessions
add_env TERM "linux"
- # copy static files
- cp -r "${MODULE_DIR}"/data/* "${TARGET_BUILD_DIR}" || perror "Copying static files from data/* failed."
-
# quick fix for /etc/fstab
- echo "# no configuration" >> "${TARGET_BUILD_DIR}/etc/fstab"
+ [ ! -e "${TARGET_BUILD_DIR}/etc/fstab" ] && echo "# no configuration" > "${TARGET_BUILD_DIR}/etc/fstab"
# link /etc/mtab, needed for systemd
[ ! -e "${TARGET_BUILD_DIR}/etc/mtab" ] && ln -s "/proc/self/mounts" "${TARGET_BUILD_DIR}/etc/mtab"
@@ -103,8 +100,10 @@ post_copy() {
# quick fix for missing group in /etc/group
add_group "lock"
+ add_group "nogroup"
+ add_user "nobody"
- # setup root accoun
+ # setup root account
USER=root add_user
DEMO_ID="$(USER=demo PASSWORD=demo USERHOME=/home/demo USERSHELL=/bin/bash add_user)"
diff --git a/remote/rootfs/rootfs-stage32/module.conf.fedora b/remote/rootfs/rootfs-stage32/module.conf.fedora
new file mode 100644
index 00000000..d714a2c7
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/module.conf.fedora
@@ -0,0 +1,18 @@
+REQUIRED_INSTALLED_PACKAGES="
+ ntpdate
+ nfs-utils
+ xfsprogs
+ squashfs-tools
+ jfsutils
+ curl
+ xvidtune
+ xterm
+"
+REQUIRED_CONTENT_PACKAGES="
+"
+REQUIRED_DIRECTORIES="
+ /usr/$LIB64/xtables
+"
+REQUIRED_FILES+="
+ /usr/share/X11/app-defaults/Xvidtune
+"
diff --git a/remote/setup_target b/remote/setup_target
index 77a9f62d..f76c7831 100755
--- a/remote/setup_target
+++ b/remote/setup_target
@@ -256,6 +256,7 @@ generate_target() {
initial_checks
+ local DIR
TARGET=$1 && shift
TARGET_DIR="${MODE_DIR}/targets/${TARGET}"
TARGET_BUILD_DIR="${MODE_DIR}/builds/${TARGET}"
@@ -267,6 +268,10 @@ generate_target() {
perror "Target directory cannot be named 'builds' or 'modules'."
pdebug "Generating '$TARGET_BUILD_DIR' for '$TARGET'"
+ for DIR in lib lib64 bin sbin; do
+ mkdir -p "${TARGET_BUILD_DIR}/usr/${DIR}" || perror "Could not create '${TARGET_BUILD_DIR}/usr/${DIR}'"
+ [ -L "${TARGET_BUILD_DIR}/${DIR}" ] || ln -s "usr/${DIR}" "${TARGET_BUILD_DIR}/${DIR}" || perror "Could not symlink '${TARGET_BUILD_DIR}/${DIR}' to 'usr/${DIR}"
+ done
# if no arguments assume all.
if [ "x$1" = "x" -o "x$1" = "xall" ]; then
@@ -366,6 +371,11 @@ process_module() {
fi
# Process module
mkdir -p "${MODULE_BUILD_DIR}" || perror "Could not create build dir"
+ local DIR
+ for DIR in lib lib64 bin sbin; do
+ mkdir -p "${MODULE_BUILD_DIR}/usr/${DIR}" || perror "Could not create '${MODULE_BUILD_DIR}/usr/${DIR}'"
+ [ -L "${MODULE_BUILD_DIR}/${DIR}" ] || ln -s "usr/${DIR}" "${MODULE_BUILD_DIR}/${DIR}" || perror "Could not symlink '${MODULE_BUILD_DIR}/${DIR}' to 'usr/${DIR}"
+ done
pdebug "## Reading config of $MODULE"
read_config
# Check if this module has a dependency that wasn't built yet:
@@ -446,13 +456,6 @@ process_module() {
post_process_target() {
local TOOL_STR="$TOOL_STR post_process_target:"
- if [ -d "${TARGET_BUILD_DIR}/lib/systemd" ]; then
- pwarning "/lib/systemd exists in the generated target. It is not advisable to fetch existing"
- pwarning "systemd service files from the template system, as it might conflict with generated"
- pwarning "ones. In fact, some systems don't even use systemd so there might be no existing"
- pwarning "service files. Please generate your own service file and place it in /etc/systemd."
- pwarning "All files in /lib/systemd will be ignored."
- fi
# figure out all relevant ld-paths
pinfo "Running ldconfig"
@@ -562,7 +565,9 @@ strip_recursive() {
# copies static data files from <MODULE>/data/ to <TARGET_BUILD_DIR>
copy_static_data() {
[ ! -d "${MODULE_DIR}/data" ] && pinfo "${MODULE} has no static 'data' directory." && return
- cp -r "${MODULE_DIR}/data/"* ${TARGET_BUILD_DIR} || perror "Could not copy static data of ${MODULE}"
+ cd "${MODULE_DIR}/data/" || perror "could not cd to '${MODULE_DIR}/data/'"
+ tarcopy "$(find . -type f -o -type l)" "${TARGET_BUILD_DIR}"
+ cd -
}
# Copies files with their absolute paths in $REQUIRED_SYSTEM_FILES to $TARGET_BUILD_DIR