diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | helper/kernel.inc | 10 | ||||
-rw-r--r-- | remote/modules/openbox/openbox.build | 18 | ||||
-rw-r--r-- | remote/modules/pam/pam.conf | 6 | ||||
-rw-r--r-- | remote/modules/pam/pam.conf.zypper | 14 | ||||
-rw-r--r-- | remote/modules/xorg/xorg.conf.zypper | 7 | ||||
-rw-r--r-- | remote/post-patch/ck-connector/fake-ck-connector.c | 55 | ||||
-rwxr-xr-x | remote/rootfs/rootfs-stage31/data/init | 5 | ||||
-rwxr-xr-x | remote/setup_target | 21 | ||||
l--------- | remote/targets/stage32/hwinfo | 1 |
10 files changed, 123 insertions, 15 deletions
@@ -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 |