From bd77023afadfe96a0c6ab86343b02b695567439f Mon Sep 17 00:00:00 2001
From: Mario Izquierdo (mariodebian) <mariodebian@gmail.com>
Date: Tue, 13 Nov 2012 18:35:13 +0100
Subject: Fix some multiarch libs, fix modprobe list, and use glx-alternative mesa instead of fix-nvidia-ati

---
diff --git a/bin/gentcos b/bin/gentcos
index 4999489..6632fac 100755
--- a/bin/gentcos
+++ b/bin/gentcos
@@ -466,14 +466,10 @@ check_modules() {
        if [ "$(echo $_module | awk -F "|" '{print $2}')" != "" ]; then
          for _mod in $(echo $_module | sed 's/|/ /g'); do
            #_echo "searching for module $_mod"
-           have_one_module=$(modprobe --set-version="${TCOS_KERNEL}" -l ${_mod} | wc -l)
-           if [ ${have_one_module} != 0 ]; then
-              #_echo "have $_mod !!!"
-              have_module=1
-           fi
+           tcos_find_module "${_mod}" && have_module=1
          done
        else
-         have_module=$(modprobe --set-version="${TCOS_KERNEL}" -l ${_module} | wc -l)
+         tcos_find_module "${_module}" && have_module=1
        fi
 
        if [ ${have_module} = 0 ] ; then
diff --git a/bin/tcos-buildchroot b/bin/tcos-buildchroot
index 74173b8..cbf8c43 100755
--- a/bin/tcos-buildchroot
+++ b/bin/tcos-buildchroot
@@ -314,9 +314,9 @@ if [ -e /etc/console-setup/boottime.kmap.gz ]; then
 	mkdir -p ${TCOS_CHROOT}/etc/console-setup
 	cp /etc/console-setup/boottime.kmap.gz ${TCOS_CHROOT}/etc/console-setup/
 fi
-if [ -e /etc/console-setup/cached.kmap.gz ]; then
+if [ -e /etc/console-setup/cached*.kmap.gz ]; then
 	mkdir -p ${TCOS_CHROOT}/etc/console-setup
-	cp /etc/console-setup/cached.kmap.gz ${TCOS_CHROOT}/etc/console-setup/
+	cp /etc/console-setup/cached*.kmap.gz ${TCOS_CHROOT}/etc/console-setup/
 fi
 
   cat << EOC | chroot ${TCOS_CHROOT}
diff --git a/conf/tcos-generation-functions.sh b/conf/tcos-generation-functions.sh
index 7b6e7a5..a719008 100644
--- a/conf/tcos-generation-functions.sh
+++ b/conf/tcos-generation-functions.sh
@@ -158,13 +158,13 @@ cpifexists () {
   if [ -f $DESTDIR/$orig ]; then
     return 1
   fi
-  
-  
+
+
   if [ $# != 2 ]; then
    echo "    cpifexists(): ERROR: Need 2 arguments: \$1=$orig \$2=$dest"
    return 1
  fi
- 
+
  if [ ! -f $orig ]; then
    echo "    cpifexits() WARNING: $orig not found, searching with pathof()..."
    _file=$(pathof $(basename $orig) )
@@ -177,10 +177,10 @@ cpifexists () {
    else
      echo "   cpifexists(): ERROR: $(basename $orig) no found in PATH, please package that contain $orig"
      return 1
-   fi   
+   fi
  fi
 
- 
+
  if [ ! -d $DESTDIR/$dest ]; then
    echo "  cpifexits() WARNING: $DESTDIR/$dest don't exists"
  fi
@@ -201,7 +201,7 @@ copydir () {
    #_echo "     DEBUG: \$1=$1 \$2=$2"
    return 1
  fi
- 
+
 #_echo "cp -ra \"${1}\" \"${DESTDIR}/${2}\""
 cp -ra "${1}" "${DESTDIR}/${2}"
 return 0
@@ -247,6 +247,17 @@ force_add_module() {
         # end of force copy
 }
 
+tcos_find_module() {
+  mod=$(find /lib/modules/${TCOS_KERNEL} -name ${1}.ko | tail -1)
+  if [ "$mod" = "" ] ; then
+    return 1
+  fi
+  if [ "$(basename $mod .ko)" = "$1" ]; then
+    return 0
+  fi
+  return 1
+}
+
 parse_pxelinuxcfg() {
         if [ $TCOS_NETBOOT_MENU ] && [ -z $2 ]; then
           TEMPLATE=${TCOS_CONF}/${TCOS_PXECFG_MENU}
diff --git a/conf/tcos-run-functions.sh b/conf/tcos-run-functions.sh
index 7bcd8a7..4e79180 100644
--- a/conf/tcos-run-functions.sh
+++ b/conf/tcos-run-functions.sh
@@ -103,6 +103,17 @@ _log () {
   /bin/logger -t "$(echo $1| awk '{print $1}')" "$@" >> /tmp/initramfs.debug 2>&1
 }
 
+tcos_find_module() {
+  mod=$(find /lib/modules/${version} -name ${1}.ko | tail -1)
+  if [ "$mod" = "" ] ; then
+    return 1
+  fi
+  if [ "$(basename $mod .ko)" = "$1" ]; then
+    return 0
+  fi
+  return 1
+}
+
 read_server() {
   # $1 is server hostname
   nSERVER=$(grep "$1" /etc/hosts | awk '{print $1}' | head -1)
diff --git a/hooks-addons/00main b/hooks-addons/00main
index 7605fa8..7215284 100644
--- a/hooks-addons/00main
+++ b/hooks-addons/00main
@@ -47,7 +47,7 @@ cpifexists ${TCOS_BINS}/get_filesystem /bin
 # limits
 cpifexists ${TCOS_BINS}/set-limits     /bin
 
-# exec and daemonize 
+# exec and daemonize
 cpifexists ${TCOS_BINS}/daemonize.sh /sbin
 
 # tcos-pam-usb.sh (tcosxmlrpc helper)
@@ -84,7 +84,7 @@ fi
 
 
 
-# exec and daemonize 
+# exec and daemonize
 cpifexists ${TCOS_BINS}/clear-logs  /bin
 
 if [ "${TCOS_INCLUDE_INIT}" != "1" ]; then
@@ -120,8 +120,12 @@ mkdir -p $DESTDIR/usr/lib
 
 # multiarch support
 LIB_DIR=/lib
-[ -e /lib/x86_64-linux-gnu/libresolv.so.2 ] && LIB_DIR=/lib/x86_64-linux-gnu
-[ -e /lib/i386-linux-gnu/libresolv.so.2 ] && LIB_DIR=/lib/i386-linux-gnu
+if [ "$TCOS_ARCH" = "amd64" ]; then
+    [ -e /lib/x86_64-linux-gnu/libresolv.so.2 ] && LIB_DIR=/lib/x86_64-linux-gnu
+elif [ "$TCOS_ARCH" = "i386" ]; then
+    [ -e /lib/i386-linux-gnu/libresolv.so.2 ]   && LIB_DIR=/lib/i386-linux-gnu
+fi
+
 
 cpifexists ${LIB_DIR}/libresolv.so.2        /lib/
 cpifexists /usr/${LIB_DIR}/libgssapi_krb5.so.2 /usr/lib/
diff --git a/hooks-addons/05compcache b/hooks-addons/05compcache
index 586cc6a..fc12230 100644
--- a/hooks-addons/05compcache
+++ b/hooks-addons/05compcache
@@ -35,6 +35,9 @@ fi
 
 quiet=n
 
+. /conf/tcos.conf
+. /conf/tcos-run-functions
+
 # find total amount of available ram
 TOTAL_RAM=\$(grep MemTotal /proc/meminfo |tr -d ': [A-Z][a-z]')
 
@@ -52,13 +55,13 @@ if [ "\${kbytes}" -gt "\${AVALAIBLE_RAM}" ]; then
 fi
 
 
-if modprobe --list zram | grep -q zram; then
-  modprobe zram num_devices=1
+if tcos_find_module "zram"; then
+  modprobe zram
   echo \$((1024*\$kbytes)) > /sys/block/zram0/disksize
   /sbin/mkswap /dev/zram0 >/dev/null 2>&1
   /sbin/swapon -p 100 /dev/zram0 >/dev/null 2>&1
 else
-  modprobe -q --ignore-install ramzswap disksize_kb="\$kbytes"
+  modprobe -q --ignore-install ramzswap
 fi
 
 EOF
diff --git a/hooks-addons/13kbmap b/hooks-addons/13kbmap
index 7880383..49fbff2 100644
--- a/hooks-addons/13kbmap
+++ b/hooks-addons/13kbmap
@@ -13,19 +13,19 @@ else
 
   if [ -f /etc/console/boottime.kmap.gz ]; then
     mkdir -p $DESTDIR/etc/console
-    cp -ra /etc/console/boottime.kmap.gz $DESTDIR/etc/console
+    cp -ra /etc/console/boottime.kmap.gz $DESTDIR/etc/console/
   fi
 
   # for ubuntu
   if [ -f /etc/console-setup/boottime.kmap.gz ]; then
     mkdir -p $DESTDIR/etc/console
-    cp -ra /etc/console-setup/boottime.kmap.gz $DESTDIR/etc/console
+    cp -ra /etc/console-setup/boottime.kmap.gz $DESTDIR/etc/console/
   fi
 
   # for new console-setup
-  if [ -f /etc/console-setup/cached.kmap.gz ]; then
+  if [ -f /etc/console-setup/cached*.kmap.gz ]; then
     mkdir -p $DESTDIR/etc/console-setup
-    cp -ra /etc/console-setup/cached.kmap.gz $DESTDIR/etc/console-setup
+    cp -ra /etc/console-setup/cached*.kmap.gz $DESTDIR/etc/console-setup/cached.kmap.gz
   fi
 
 fi
diff --git a/hooks-addons/20alsa b/hooks-addons/20alsa
index b7e321b..d5e11d0 100644
--- a/hooks-addons/20alsa
+++ b/hooks-addons/20alsa
@@ -7,10 +7,10 @@ if [ ! $TCOS_SOUND ]; then
 else
 
     stat_before
-    
+
     # TCOS MIXER (include ALSA and OSS support)
     cpifexists ${TCOS_BINS}/tmixer  /usr/bin/
- 
+
     mkdir -p $DESTDIR/usr/share/
     copydir /usr/share/alsa/ /usr/share/
 
@@ -26,7 +26,7 @@ else
 
     mkdir -p $DESTDIR/etc/init.d/
     [ -e /etc/init.d/alsa-utils ] && cpifexists /etc/init.d/alsa-utils /etc/init.d/
- 
+
     if [ -d /etc/alsa ]; then
       copydir /etc/alsa/      /etc/
     fi
@@ -50,20 +50,24 @@ else
     fi
 
 
-    mkdir -p ${DESTDIR}/usr/lib/alsa-lib/
-    [ -e /usr/lib/alsa-lib/libasound_module_pcm_pulse.so ] && \
-         cpifexists /usr/lib/alsa-lib/libasound_module_pcm_pulse.so    /usr/lib/alsa-lib/
-    [ -e /usr/lib/alsa-lib/libasound_module_ctl_pulse.so ]  && \
-         cpifexists /usr/lib/alsa-lib/libasound_module_ctl_pulse.so    /usr/lib/alsa-lib/
-    # new in Ubuntu??
-    [ -e /usr/lib/alsa-lib/libasound_module_conf_pulse.so ] && \
-         cpifexists /usr/lib/alsa-lib/libasound_module_conf_pulse.so /usr/lib/alsa-lib/
-    [ -e /usr/lib/alsa-lib/libasound_module_pcm_alsa_dsp.so ] && \
-         cpifexists /usr/lib/alsa-lib/libasound_module_pcm_alsa_dsp.so /usr/lib/alsa-lib/
+    ALSA_LIB_DIR=/usr/lib/alsa-lib/
+    [ -d /usr/lib/x86_64-linux-gnu/alsa-lib ] && ALSA_LIB_DIR=/usr/lib/x86_64-linux-gnu/alsa-lib
+    [ -d /usr/lib/i386-linux-gnu/alsa-lib ]   && ALSA_LIB_DIR=/usr/lib/i386-linux-gnu/alsa-lib
+
+
+    mkdir -p ${DESTDIR}/$ALSA_LIB_DIR
+    [ -e $ALSA_LIB_DIR/libasound_module_pcm_pulse.so ] && \
+         cpifexists $ALSA_LIB_DIR/libasound_module_pcm_pulse.so    $ALSA_LIB_DIR
+
+    [ -e $ALSA_LIB_DIR/libasound_module_ctl_pulse.so ]  && \
+         cpifexists $ALSA_LIB_DIR/libasound_module_ctl_pulse.so    $ALSA_LIB_DIR
 
+    [ -e $ALSA_LIB_DIR/libasound_module_conf_pulse.so ] && \
+         cpifexists $ALSA_LIB_DIR/libasound_module_conf_pulse.so   $ALSA_LIB_DIR
 
+    [ -e $ALSA_LIB_DIR/libasound_module_pcm_alsa_dsp.so ] && \
+         cpifexists $ALSA_LIB_DIR/libasound_module_pcm_alsa_dsp.so $ALSA_LIB_DIR
 
- 
     stat_after "Alsa sound support"
 
 fi # end of TCOS_SOUND
diff --git a/hooks-addons/40etc2300 b/hooks-addons/40etc2300
index 84775f3..a43c8b4 100644
--- a/hooks-addons/40etc2300
+++ b/hooks-addons/40etc2300
@@ -32,9 +32,9 @@ EOF
 chmod +x ${DESTDIR}/scripts/tcos-bottom/15etc2300
 
 stat_before
- 
+
   manual_add_modules sis5513
-  if modprobe --set-version="${TCOS_KERNEL}" -l| grep -q snd-sis7019 ; then
+  if ! tcos_find_module "snd-sis7019" ; then
     manual_add_modules ac97_codec
     manual_add_modules sis7019
   else
diff --git a/hooks-addons/50xorg b/hooks-addons/50xorg
index b99b9aa..9b692cf 100644
--- a/hooks-addons/50xorg
+++ b/hooks-addons/50xorg
@@ -172,9 +172,11 @@ if [ -e /usr/lib/mesa/libGL.so.1 ]; then
   LIBGL_PATH=/usr/lib/mesa/
 fi
 
+MULTIARCH=$(basename $LIB_MULTIARCH)
 # multiarch support
 [ -e $LIB_MULTIARCH/libGL.so.1 ] && LIBGL_PATH=$LIB_MULTIARCH
 [ -e $LIB_MULTIARCH/mesa/libGL.so.1 ] && LIBGL_PATH=$LIB_MULTIARCH/mesa/
+[ -e "/usr/lib/mesa-diverted/$MULTIARCH/libGL.so.1" ] && LIBGL_PATH="/usr/lib/mesa-diverted/$MULTIARCH/"
 
 # delete vnc extension
 rm -f $DESTDIR/usr/lib/xorg/modules/extensions/libvnc.so
diff --git a/hooks/tcosmods b/hooks/tcosmods
index a01aa31..01bc0d5 100755
--- a/hooks/tcosmods
+++ b/hooks/tcosmods
@@ -92,18 +92,14 @@ TCOS_DISABLE_IDE=$(read_env_var "TCOS_DISABLE_IDE" "$TCOS_DISABLE_IDE")
 
     # put floppy outside /lib/modules
     mkdir -p $DESTDIR/lib/extramodules
-    FLOPPY_MOD=$(modprobe --set-version="${TCOS_KERNEL}" --list "floppy" 2>/dev/null)
-    FLOPPY_IDE_MOD=$(modprobe --set-version="${TCOS_KERNEL}" --list "ide-floppy")
 
-    # new modprobe versions return relative PATH
-    if [ ! -e "${FLOPPY_MOD}" ] && [ "${FLOPPY_MOD}" != "" ] && [ -e "/lib/modules/${TCOS_KERNEL}/${FLOPPY_MOD}" ]; then
-      FLOPPY_MOD="/lib/modules/${TCOS_KERNEL}/${FLOPPY_MOD}"
-    fi
 
-    if [ ! -e "${FLOPPY_IDE_MOD}" ] && [ "${FLOPPY_IDE_MOD}" != "" ] && [ -e "/lib/modules/${TCOS_KERNEL}/${FLOPPY_IDE_MOD}" ]; then
-      FLOPPY_IDE_MOD="/lib/modules/${TCOS_KERNEL}/${FLOPPY_IDE_MOD}"
+    if tcos_find_module "floppy"; then
+        FLOPPY_MOD=$(find /lib/modules/${TCOS_KERNEL} -name floppy.ko | tail -1)
+    fi
+    if tcos_find_module "ide-floppy"; then
+        FLOPPY_IDE_MOD=$(find /lib/modules/${TCOS_KERNEL} -name ide-floppy.ko | tail -1)
     fi
-
 
     if [ "${FLOPPY_MOD}" != "" ]; then
       # don't use cpifexists
@@ -166,15 +162,8 @@ TCOS_DISABLE_IDE=$(read_env_var "TCOS_DISABLE_IDE" "$TCOS_DISABLE_IDE")
 
 
     if [ "$TCOS_CPUFREQ" = "1" ]; then
-        # modprobe -l| grep cpufreq_| awk -F"/" '{print $NF}'| sed -e 's/.ko//g'
-        CPUFREQ_MODS=$(modprobe --set-version="${TCOS_KERNEL}" --list 2>/dev/null| awk -F"/" '/cpufreq_/ {print $NF}'| sed -e s/".ko"//g)
-        CPUFREQ_CPU_MODS=$(modprobe --set-version="${TCOS_KERNEL}" --list 2>/dev/null| awk -F"/" '/cpu\/cpufreq/ {print $NF}' | sed -e s/".ko"//g)
-         _echo "   TCOS adding CPUFREQ modules"
-        for _mod in $CPUFREQ_MODS; do
-            tcos_manual_add_modules $_mod
-        done
-        for _mod in $CPUFREQ_CPU_MODS; do
-            tcos_manual_add_modules $_mod
+        for _mod in $(find /lib/modules/${TCOS_KERNEL} | grep cpufreq| grep ko$); do
+            tcos_manual_add_modules $(basename $_mod .ko)
         done
     fi
 
diff --git a/scripts/tcos-top/01busybox b/scripts/tcos-top/01busybox
index 5d94043..796c606 100755
--- a/scripts/tcos-top/01busybox
+++ b/scripts/tcos-top/01busybox
@@ -1,5 +1,5 @@
 #!/bin/sh
-# 
+#
 if [ "$1" = "prereqs" ]; then
   exit 0
 fi
@@ -14,14 +14,14 @@ quiet=n
 
 # set kernel very silent
 if grep -q quiet /proc/cmdline ; then
-  echo "1 1 1 7" > /proc/sys/kernel/printk 
+  echo "1 1 1 7" > /proc/sys/kernel/printk
   dmesg -n 1
 fi
 
 
 # start syslogd (busybox embeded)
 killall syslogd 2>/dev/null
-syslogd 2>/dev/null 
+syslogd 2>/dev/null
 
 if [ $? != 0 ]; then
   # create a fuck logger
@@ -80,7 +80,7 @@ else
     modprobe -q aufs     >> /tmp/initramfs.debug 2>&1 &
   else
     _log "BUSYBOX load unionfs module and if fail try aufs"
-    modprobe unionfs  || modprobe aufs >> /tmp/initramfs.debug 2>&1 &
+    modprobe -q unionfs  || modprobe -q aufs >> /tmp/initramfs.debug 2>&1 &
   fi
 
 fi
--
cgit v0.9.1-1-gc6f5
