summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2013-06-26 19:06:48 +0200
committerSimon Rettberg2013-06-26 19:06:48 +0200
commit6e0ec594c23313ccfa7737b20f96af287137d67c (patch)
treedee10b6ccc641b984e9e1ab4a4d7149876025594
parent[kdm] bwLehrpool Theme (diff)
parentLibrary paths changed to reflect openSuse 64bit ($LIB64) (diff)
downloadtm-scripts-6e0ec594c23313ccfa7737b20f96af287137d67c.tar.gz
tm-scripts-6e0ec594c23313ccfa7737b20f96af287137d67c.tar.xz
tm-scripts-6e0ec594c23313ccfa7737b20f96af287137d67c.zip
Merge branch 'master' of dnbd3:openslx-ng/tm-scripts
-rw-r--r--.gitignore1
-rw-r--r--helper/kernel.inc10
-rw-r--r--remote/modules/openbox/openbox.build18
-rw-r--r--remote/modules/pam/pam.conf6
-rw-r--r--remote/modules/pam/pam.conf.zypper14
-rw-r--r--remote/modules/xorg/xorg.conf.zypper7
-rw-r--r--remote/post-patch/ck-connector/fake-ck-connector.c55
-rwxr-xr-xremote/rootfs/rootfs-stage31/data/init5
-rwxr-xr-xremote/setup_target21
l---------remote/targets/stage32/hwinfo1
10 files changed, 123 insertions, 15 deletions
diff --git a/.gitignore b/.gitignore
index 21bf516c..e03b82dd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
*~
*.swp
+*.so
server/boot
server/remote_builds
src
diff --git a/helper/kernel.inc b/helper/kernel.inc
index a5989b15..af2af38b 100644
--- a/helper/kernel.inc
+++ b/helper/kernel.inc
@@ -105,6 +105,7 @@ copy_kernel_modules() {
copy_firmware() {
[ -z "${REQUIRED_FIRMWARE}" ] && perror "REQUIRED_FIRMWARE is empty. Check your config file."
+ local HORST=$(pwd)
check_kernel_build_dir
#
# process firmware list
@@ -153,13 +154,16 @@ copy_firmware() {
# which have to be copied to /lib/firmware/${KERNEL_NEW_VERSION}
if [ -d "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_VERSION}" ]; then
mkdir -p "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_NEW_VERSION}/"
- mv "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_VERSION}/"* "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_NEW_VERSION}/"
- rmdir "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_VERSION}/" || perror "something went very wrong..."
+ #mv -f "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_VERSION}/"* "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_NEW_VERSION}/"
+ cd "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_VERSION}" || perror "old kernel but no old kernel"
+ tarcopy "$(ls)" "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_NEW_VERSION}/"
+ cd -
+ rm -r "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_VERSION}" || perror "something went very wrong..."
else
pdebug "No ${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_VERSION} directory, skipping the merge."
fi
- cd - >/dev/null
+ cd "$HORST"
}
copy_kernel() {
diff --git a/remote/modules/openbox/openbox.build b/remote/modules/openbox/openbox.build
index 51c6beec..0cd6aaad 100644
--- a/remote/modules/openbox/openbox.build
+++ b/remote/modules/openbox/openbox.build
@@ -16,5 +16,21 @@ build() {
post_copy() {
[ ! -d "$TARGET_BUILD_DIR/etc/pango" ] && mkdir -p "$TARGET_BUILD_DIR/etc/pango"
- pango-querymodules > "$TARGET_BUILD_DIR/etc/pango/pango.modules"
+
+ # little Workaround, as under e.g. 64bit Suse the binary is called
+ # pango-querymodules-64, not pango-querymodules.
+ which pango-querymodules 2>/dev/null 1>&2
+ ERR=$?
+ if [[ "$ERR" -eq 0 ]]; then
+ PANGO_QUERYMODULES_ARCH=pango-querymodules
+ else
+ which pango-querymodules-64 2>/dev/null 1>&2
+ ERR=$?
+ if [[ "$ERR" -eq 0 ]]; then
+ PANGO_QUERYMODULES_ARCH=pango-querymodules-64
+ else
+ perror "Could not find either pango-querymodules or pango-querymodules-64!"
+ fi
+ fi
+ $PANGO_QUERYMODULES_ARCH > "$TARGET_BUILD_DIR/etc/pango/pango.modules"
}
diff --git a/remote/modules/pam/pam.conf b/remote/modules/pam/pam.conf
index e5bd35c6..a3399190 100644
--- a/remote/modules/pam/pam.conf
+++ b/remote/modules/pam/pam.conf
@@ -30,12 +30,6 @@ REQUIRED_BINARIES="
rpc.gssd
rpc.idmapd
sslconnect
- mount.crypt
- umount.crypt
- mount.crypt_LUKS
- umount.crypt_LUKS
- mount.crypto_LUKS
- umount.crypto_LUKS
ldapsearch
"
REQUIRED_LIBRARIES="
diff --git a/remote/modules/pam/pam.conf.zypper b/remote/modules/pam/pam.conf.zypper
index 48dc1d52..403cd59f 100644
--- a/remote/modules/pam/pam.conf.zypper
+++ b/remote/modules/pam/pam.conf.zypper
@@ -7,6 +7,7 @@ REQUIRED_INSTALLED_PACKAGES="
libopenssl-devel
openldap2-client
nfsidmap
+ glibc
"
REQUIRED_CONTENT_PACKAGES="
pam_ldap
@@ -17,12 +18,25 @@ REQUIRED_CONTENT_PACKAGES="
nss-mdns
openldap2-client
nfsidmap
+ glibc
"
REQUIRED_BINARIES="
sslconnect
ldapsearch
mkhomedir_helper
"
+REQUIRED_LIBRARIES="
+ nsswitch
+ static
+ umich_ldap
+ libnfsidmap
+ libnss_compat
+ libnss_db
+ libnss_dns
+ libnss_files
+ libnss_nis
+"
+
REQUIRED_DIRECTORIES="
/$LIB64
/usr/$LIB64
diff --git a/remote/modules/xorg/xorg.conf.zypper b/remote/modules/xorg/xorg.conf.zypper
index 9f7d69e7..4041f4bd 100644
--- a/remote/modules/xorg/xorg.conf.zypper
+++ b/remote/modules/xorg/xorg.conf.zypper
@@ -1,3 +1,4 @@
+# xkbutils, xkbprint, setxkbmap, xkbevd for 64-bit openSuse
REQUIRED_CONTENT_PACKAGES="
xorg-x11
xorg-x11-server
@@ -27,6 +28,10 @@ REQUIRED_CONTENT_PACKAGES="
libxcb-glx0
kdm-branding-openSUSE
Mesa
+ xkbutils
+ xkbprint
+ setxkbmap
+ xkbevd
"
REQUIRED_LIBRARIES="
libI810XvMC
@@ -50,7 +55,7 @@ REQUIRED_BINARIES=" Xorg
vmmouse_detect"
REQUIRED_DIRECTORIES="
/usr/lib/udev
- /usr/lib/xorg
+ /usr/$LIB64/xorg
/usr/bin
/usr/share/X11
/usr/share/fonts
diff --git a/remote/post-patch/ck-connector/fake-ck-connector.c b/remote/post-patch/ck-connector/fake-ck-connector.c
new file mode 100644
index 00000000..42fa1546
--- /dev/null
+++ b/remote/post-patch/ck-connector/fake-ck-connector.c
@@ -0,0 +1,55 @@
+#include <dbus/dbus.h>
+#include <sys/types.h>
+
+struct _CkConnector;
+typedef struct _CkConnector CkConnector;
+
+
+struct _CkConnector
+{
+ int refcount;
+ char *cookie;
+ dbus_bool_t session_created;
+ DBusConnection *connection;
+};
+
+void ck_connector_unref (CkConnector *connector)
+{
+ return;
+}
+
+CkConnector * ck_connector_ref (CkConnector *connector)
+{
+ return connector;
+}
+
+CkConnector * ck_connector_new (void)
+{
+ return (CkConnector*)1;
+}
+
+dbus_bool_t ck_connector_open_session (CkConnector *connector, DBusError *error)
+{
+ return 1;
+}
+
+dbus_bool_t ck_connector_open_session_with_parameters (CkConnector *connector, DBusError *error, const char *first_parameter_name, ...)
+{
+ return 1;
+}
+
+dbus_bool_t ck_connector_open_session_for_user (CkConnector *connector, uid_t user, const char *display_device, const char *x11_display, DBusError *error)
+{
+ return 1;
+}
+
+const char * ck_connector_get_cookie (CkConnector *connector)
+{
+ return NULL;
+}
+
+dbus_bool_t ck_connector_close_session (CkConnector *connector, DBusError *error)
+{
+ return 1;
+}
+
diff --git a/remote/rootfs/rootfs-stage31/data/init b/remote/rootfs/rootfs-stage31/data/init
index 586b21df..3a1087df 100755
--- a/remote/rootfs/rootfs-stage31/data/init
+++ b/remote/rootfs/rootfs-stage31/data/init
@@ -107,11 +107,14 @@ mount -n --move /dev/shm/uniontmp /mnt/uniontmp || drop_shell "Problem moving un
[ $DEBUG -ge 2 ] && drop_shell "Requested Debug Shell: after aufs'ing."
# Download config if available
+(
+sleep 1
/mnt/opt/openslx/bin/activate-sysconfig /mnt
+) &
# create udev rule for nic we booted from
cat > "/mnt/etc/udev/rules.d/70-net-boot-nic-name.rules" <<HEREEND
-SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="$MAC", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="br0"
+SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="$MAC", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
HEREEND
# create ip config
diff --git a/remote/setup_target b/remote/setup_target
index da4b7701..1638f392 100755
--- a/remote/setup_target
+++ b/remote/setup_target
@@ -315,7 +315,6 @@ post_process_target() {
#move systemd files from /lib to /etc/lib
pinfo "move systemd files from /lib/systemd to /etc/systemd"
-
if [ -d "${TARGET_BUILD_DIR}/lib/systemd" ]; then
cd "${TARGET_BUILD_DIR}/lib"
tarcopy "systemd" "${TARGET_BUILD_DIR}/etc"
@@ -323,7 +322,22 @@ post_process_target() {
rm -r "${TARGET_BUILD_DIR}/lib/systemd"
fi
+ # replace ck connector with fake one
+ local CK_LIBS=$(find "$TARGET_BUILD_DIR" -name "libck-connector.so*")
+ if [ -n "$CK_LIBS" ]; then
+ pinfo "Replacing libck-connector with dummy"
+ local SRC="$ROOT_DIR/remote/post-patch/ck-connector/fake-ck-connector.c"
+ local BIN="$ROOT_DIR/remote/post-patch/ck-connector/libck-connector.so"
+ if [ ! -s "$BIN" ]; then
+ gcc -O3 -shared -o "$BIN" "-I/usr/include/dbus-1.0" "-I/usr/lib/$ARCH_TRIPLET/dbus-1.0/include" "$SRC" || perror "Compiling fake libck-connector.so failed. Make sure libdbus-1-dev is installed."
+ fi
+ for OCCURENCE in $CK_LIBS; do
+ cp "$BIN" "$OCCURENCE" || perror "Frickeling ck-connector to $OCCURENCE failed."
+ done
+ fi
+
# figure out all relevant ld-paths
+ pinfo "Running ldconfig"
local LDTEMP="$TARGET_BUILD_DIR/ldconf-temp"
grep -h '^\s*/' /etc/ld.so.conf /etc/ld.so.conf.d/* > "$LDTEMP"
# TODO: Echo other stuff to $LDTEMP (but figure out if first or last match wins)
@@ -351,13 +365,16 @@ clean_modules() {
fi
set -- $(ls ${TARGET_DIR} | grep -v kernel)
fi
- cd ${TARGET_DIR}
+ cd "$TARGET_DIR"
while (( "$#" )); do
clean_module $(readlink -f $1)
shift
done
cd - &> /dev/null
+
+ # libck-connector cleanup
+ rm -f "$TARGET_DIR/post-patch/ck-connector/libck-connector.so"
}
clean_module() {
diff --git a/remote/targets/stage32/hwinfo b/remote/targets/stage32/hwinfo
deleted file mode 120000
index 6007a018..00000000
--- a/remote/targets/stage32/hwinfo
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/hwinfo \ No newline at end of file