diff --git a/installer/installer.kmdr b/installer/installer.kmdr
index 0942339..eaf9b5c 100755
--- a/installer/installer.kmdr
+++ b/installer/installer.kmdr
@@ -334,30 +334,6 @@ Released under the terms of the GNU GPL v3 license
This program will install openmamba on this computer.
-
-
- Label18_2
-
-
-
- 10
- 220
- 560
- 60
-
-
-
- If you have problems, suggestions or would like to contribute to the development of openmamba please consult the forums and maling lists available at <a href="http://www.openmamba.org">www.openmamba.org</a>.
-
-
- WordBreak|AlignVCenter
-
-
-
-
-
-
-
GroupBox4
@@ -399,26 +375,6 @@ Released under the terms of the GNU GPL v3 license
-
-
- integrityCheckLabel
-
-
-
- 10
- 20
- 540
- 70
-
-
-
- Please wait some time while the installation medium is checked for data integrity.
-Press the skip button only if you have previously checked the medium on this computer.
-
-
- WordBreak|AlignVCenter
-
-
skipButton
@@ -445,6 +401,26 @@ killall md5progress.sh
+
+
+ integrityCheckLabel
+
+
+
+ 10
+ 20
+ 540
+ 70
+
+
+
+ Please wait some time while the installation medium is checked for data integrity.
+Press the skip button only if you have previously checked the medium on this computer.
+
+
+ WordBreak|AlignVCenter
+
+
launchMD5script
@@ -464,6 +440,30 @@ killall md5progress.sh
+
+
+ Label18_2
+
+
+
+ 10
+ 220
+ 560
+ 60
+
+
+
+ If you have problems, suggestions or would like to contribute to the development of openmamba please consult the forums and maling lists available at <a href="http://www.openmamba.org">www.openmamba.org</a>.
+
+
+ WordBreak|AlignVCenter
+
+
+
+
+
+
+
@@ -1293,6 +1293,52 @@ dcop @dcopid KommanderIf setBusyCursor false
WordBreak|AlignTop|AlignHCenter
+
+
+ removablebox
+
+
+
+ 300
+ 20
+ 270
+ 20
+
+
+
+ Show removab&le devices
+
+
+
+
+
+
+
+
+
+
+
+ swapcheckbox
+
+
+
+ 10
+ 20
+ 280
+ 21
+
+
+
+ I&gnore SWAP partition check
+
+
+
+
+
+
+
+
+
installhint
@@ -1342,52 +1388,6 @@ dcop @dcopid KommanderIf setBusyCursor false
-
-
- removablebox
-
-
-
- 300
- 20
- 270
- 20
-
-
-
- Show removab&le devices
-
-
-
-
-
-
-
-
-
-
-
- swapcheckbox
-
-
-
- 10
- 20
- 280
- 21
-
-
-
- I&gnore SWAP partition check
-
-
-
-
-
-
-
-
-
@@ -1405,28 +1405,6 @@ dcop @dcopid KommanderIf setBusyCursor false
-
-
- swapsizelabel
-
-
-
- 10
- 70
- 410
- 60
-
-
-
-
-
-
- RichText
-
-
- WordBreak|AlignVCenter
-
-
Label21_2_3
@@ -1451,6 +1429,28 @@ dcop @dcopid KommanderIf setBusyCursor false
AlignCenter
+
+
+ swapsizelabel
+
+
+
+ 10
+ 70
+ 410
+ 60
+
+
+
+
+
+
+ RichText
+
+
+ WordBreak|AlignVCenter
+
+
scandisks
@@ -1468,7 +1468,11 @@ dcop @dcopid KommanderIf setBusyCursor false
@partitionslabel.clear
@BackBox.setChecked(true)
@execBegin
-storages=`hal-find-by-capability --capability storage`
+function get_udisks_key() {
+ LANG=C udisks --show-info $1 | grep " $2:" | head -n1 | sed "s|[[:space:]]*$2:[[:space:]]*\(.*\)|\1|"
+}
+
+devices=`udisks --enumerate-device-files | grep -v /dev/disk`
partlabel=
linuxok=
swapok=
@@ -1483,59 +1487,58 @@ fi
systemrequired=5120
dcop @dcopid KommanderIf setText swapsizelabel "@i18n("In order to install openmamba you need on your fixed disk(s):<br>- a Linux type partition with at least $systemrequired MBytes<br>- a SWAP type partition with at least $swaprequired MBytes")"
-for s in $storages; do
- diskdevice=`hal-get-property --udi $s --key block.device`
- vendor=`hal-get-property --udi $s --key info.vendor`
- product=`hal-get-property --udi $s --key info.product`
- hotpluggable=`hal-get-property --udi $s --key storage.hotpluggable` || hotpluggable="false"
- partscheme=`hal-get-property --udi $s --key storage.partitioning_scheme`
- [ "$partscheme" ] || continue
- disksize=`hal-get-property --udi $s --key storage.size`
- disksize=`expr $disksize / 1024 / 1024 / 1024`
+for d in $devices; do
+ diskdevice=${d/\/dev\/}
+ native_path=`get_udisks_key $d native-path`
+ [ ! -e $native_path/partition ] || continue
+ vendor=`get_udisks_key $d vendor`
+ product=`get_udisks_key $d model`
+ is_system_internal=`get_udisks_key $d "system internal"`
+ [ "$is_system_internal" != "1" -a @removablebox.checked == 0 ] && continue
+ partscheme=`get_udisks_key $d scheme`
+ [ "$partscheme" ] || continue
+ disksize=`get_udisks_key $d size`
+ disksize=`expr $disksize / 1024 / 1024 / 1024`
+ volumes=`ls -d $native_path/${diskdevice}* 2>/dev/null | sed "s|.*/||" | sort -n -r`
+ thisdisk=
+
+ for v in $volumes; do
+ device=/dev/$v
+ v_native_path=$native_path/$v
+ volsize=`get_udisks_key $device size`
+ volsize=`expr $volsize / 1024 / 1024`
+ volname=`get_udisks_key $device label`
+ parttype=`get_udisks_key $device usage`
+ [ "$parttype" ] || parttype="unknown"
+ fstype=`get_udisks_key $device type`
+ [ "$fstype" ] || fstype="unformatted"
+ add_info=""
+ [ "$is_system_internal" = "1" ] || add_info=",removable"
+ [ "$volsize" -gt "0" ] || continue
- volumes=`hal-find-by-property --key info.parent --string $s`
- thisdisk=
- [ "$hotpluggable" = "true" -a @removablebox.checked == 0 ] && continue
- for udi in $volumes; do
- device=`hal-get-property --udi $udi --key block.device`
- blocksize=`hal-get-property --udi $udi --key volume.block_size`
- numblocks=`hal-get-property --udi $udi --key volume.num_blocks`
- volsize=`expr $blocksize \* $numblocks / 1024 / 1024`
- volname=`hal-get-property --udi $udi --key volume.label`
- [ "$volname" ] || volname=""
- parttype=`hal-get-property --udi $udi --key volume.partition.type`
- [ "$parttype" ] || parttype="unknown"
- fstype=`hal-get-property --udi $udi --key volume.fstype`
- [ "$fstype" ] || fstype="unformatted"
- add_info=""
- [ "$hotpluggable" = "true" ] && {
- add_info=",removable"
- }
- [ "$volsize" -gt "0" ] || continue
- case "$parttype" in
- 0x82) fstype="swap" ;;
- 0x83) fstype="linux" ;;
- esac
- thispart="<tr><td width=50>${device:5:5}</td><td width=100>$fstype</td><td width=130>$volname</td><td align=right>$volsize MB</td>"
- case "$fstype" in
+ thispart="<tr><td width=50>${device:5:5}</td><td width=100>$fstype</td><td width=130>$volname</td><td align=right>$volsize MB</td>"
+
+ case "$fstype" in
swap) if [ $swaprequired -le $volsize ]; then
- swapok=$udi
+ swapok=1
thispart="$thispart<td><b>@i18n("OK for swap")</b></td>"
- fi
+ fi
;;
linux|ext2|ext3|ext4|reiserfs|reiser4)
if [ $systemrequired -le $volsize ]; then
- linuxok=$udi;
+ linuxok=1
thispart="$thispart<td><b>@i18n("OK for system")</b></td>"
fi
;;
*) thispart="$thispart<td></td>"
;;
- esac
- thisdisk="${thispart}${thisdisk}"
- done
- partlabel="<b>@i18n(Disk) $vendor $product $disksize GB (${diskdevice:5:5})</b>:<br><br><table cellspacing=0 cellpadding=0><tr>${thisdisk}</tr></table>${partlabel}"
+ esac
+ thisdisk="${thispart}${thisdisk}"
+
+ done
+ partlabel="<b>@i18n("Disk") $vendor $product $disksize GB (${diskdevice})</b>:<br><br><table cellspacing=0 cellpadding=0><tr>${thisdisk}</tr></table>${partlabel}"
done
+
dcop @dcopid KommanderIf setText partitionslabel "$partlabel"
if [ @swapcheckbox.checked = 1 ]; then
swapok="1"
@@ -1552,48 +1555,6 @@ else
fi
dcop @dcopid KommanderIf setText installhint "$insthint"
@execEnd
-
-
-
-
-
-
- RunPartTool
-
-
-
- 550
- 40
- 32
- 32
-
-
-
-
- @exec("dcop kded kded unloadModule medianotifier")
-@execBegin
-volumes=`hal-find-by-capability --capability volume`
-for v in $volumes; do
- mountpoint=`hal-get-property --udi $v --key volume.mount_point`
- [ "$mountpoint" ] && umount $mountpoint
-done
-/sbin/swapoff -a
-@execEnd
-@PartitionBox.setEnabled(false)
-@BootloaderBox.setEnabled(false)
-@Message.info("<b>
-@i18n("Hint: in order to install openmamba you should create:")
-</b><br><ul>
-<li>@i18n("a Linux partition (type ext2,ext3,ext4 or reiserfs)")
-<li>@i18n("a Linux SWAP partition")
-</ul>
-@i18n("Press OK to launch the disk partitioning tool.")
-",@i18n("Hint for partitioning"))
-@exec(/usr/sbin/gparted)
-@scanDevices.execute()
-@exec("dcop kded kded loadModule medianotifier")
-@PartitionBox.setEnabled(true)
-@BootloaderBox.setEnabled(true)
@@ -1619,12 +1580,18 @@ done
@scandisks.execute()
@rebootneededbox.setChecked(false)
@execBegin
-storages=`hal-find-by-capability --capability storage`
-for s in $storages; do
- partscheme=`hal-get-property --udi $s --key storage.partitioning_scheme`
- hotpluggable=`hal-get-property --udi $s --key storage.hotpluggable` || hotpluggable="false"
- [ "$hotpluggable" = "true" -a @removablebox.checked == 0 ] && continue
- [ "$partscheme" = "none" ] && dcop @dcopid KommanderIf setChecked rebootneededbox true
+function get_udisks_key() {
+ LANG=C udisks --show-info $1 | grep " $2:" | head -n1 | sed "s|[[:space:]]*$2:[[:space:]]*\(.*\)|\1|"
+}
+
+devices=`udisks --enumerate-device-files | grep -v /dev/disk | sort -n -r`
+for device in $devices; do
+ native_path=`get_udisks_key $device native-path`
+ [ -e $native_path/partition ] && continue
+ partscheme=`get_udisks_key $device scheme`
+ is_system_internal=`get_udisks_key $device "system internal"`
+ [ "$is_system_internal" != "1" -a @removablebox.checked == 0 ] && continue
+ [ "$partscheme" = "none" -o "$partscheme" = "" ] && dcop @dcopid KommanderIf setChecked rebootneededbox true
done
@execEnd
@setGlobal("rebootquest","0")
@@ -1638,6 +1605,52 @@ else
dcop ksmserver ksmserver logout 0 1 1
fi
@endif
+
+
+
+
+
+
+ RunPartTool
+
+
+
+ 550
+ 40
+ 32
+ 32
+
+
+
+
+ @exec("dcop kded kded unloadModule medianotifier")
+@execBegin
+function get_udisks_key() {
+ LANG=C udisks --show-info $1 | grep " $2:" | head -n1 | sed "s|[[:space:]]*$2:[[:space:]]*\(.*\)|\1|"
+}
+volumes=`udisks --enumerate-device-files | grep -v /dev/disk`
+for v in $volumes; do
+ native_path=`get_udisks_key $v native-path`
+ [ ! -e $native_path/partition ] || continue
+ udisks --unmount $v
+done
+/sbin/swapoff -a
+@execEnd
+@PartitionBox.setEnabled(false)
+@BootloaderBox.setEnabled(false)
+@Message.info("<b>
+@i18n("Hint: in order to install openmamba you should create:")
+</b><br><ul>
+<li>@i18n("a Linux partition (type ext2,ext3,ext4 or reiserfs)")
+<li>@i18n("a Linux SWAP partition")
+</ul>
+@i18n("Press OK to launch the disk partitioning tool.")
+",@i18n("Hint for partitioning"))
+@exec(/usr/sbin/gparted)
+@scanDevices.execute()
+@exec("dcop kded kded loadModule medianotifier")
+@PartitionBox.setEnabled(true)
+@BootloaderBox.setEnabled(true)
@@ -2074,62 +2087,6 @@ fi
-
-
- setlabel
-
-
-
- 540
- 40
- 32
- 32
-
-
-
-
-
-
-
- @execBegin
-@if (@devicesbox.currentItem >= 0)
- currdev=@String.section(@devicesbox.item(@devicesbox.currentItem)," ",0)
- @showdevice.setText(@devicesbox.item(@devicesbox.currentItem))
- @dcop(@dcopid, KommanderIf, enableWidget(QString,bool), next, true)
- @BackBox.setChecked(true)
-
- parent_udi=`hal-find-by-property --key block.device --string /dev/$currdev`
- # detect linux driver
- unset linux_driver
- while [ ! "$linux_driver" -a "$parent_udi" != "/org/freedesktop/Hal/devices/computer" ]; do
- parent_udi=`hal-get-property --udi $parent_udi --key info.parent 2>/dev/null`
- [ "`hal-get-property --udi $parent_udi --key info.subsystem 2>/dev/null`" = "pci" ] && linux_driver=`hal-get-property --udi $parent_udi --key info.linux.driver 2>/dev/null`
- done
- [ "$linux_driver" ] || linux_driver="undetected"
- dcop @dcopid KommanderIf setText driverlabel $linux_driver
-
- #
- # set MBR combo box
- #
- dcop @dcopid KommanderIf "clear(QString)" mbrbox
- storages=`hal-find-by-capability --capability storage`
- dcop @dcopid KommanderIf "addListItem(QString,QString,int)" mbrbox "$currdev (@i18n("System partition"))" 0
- for udi in $storages; do
- device=`hal-get-property --udi $udi --key block.device`
- hotpluggable=`hal-get-property --udi $udi --key storage.hotpluggable` || hotpluggable="false"
- partscheme=`hal-get-property --udi $udi --key storage.partitioning_scheme`
- if [ "$hotpluggable" == "false" -o "@removablebox.checked" == "1" ]; then
- [ "$partscheme" == "mbr" ] && \
- dcop @dcopid KommanderIf "addListItem(QString,QString,int)" mbrbox "${device:5:5} (master boot record)" 0
- fi
- done
- dcop @dcopid KommanderIf "setCurrentItem(int)" 0
-@endif
-@execEnd
-@setBootableCheckbox.execute()
-
-
-
scanDevices
@@ -2148,39 +2105,43 @@ fi
@BackBox.setChecked(true)
@NextBox.setChecked(false)
@execBegin
+function get_udisks_key() {
+ LANG=C udisks --show-info $1 | grep " $2:" | head -n1 | sed "s|[[:space:]]*$2:[[:space:]]*\(.*\)|\1|"
+}
+
rpm -q openmamba-devel && {
dcop @dcopid KommanderIf "setEnabled(QString,bool)" stablebox true
dcop @dcopid KommanderIf "setEnabled(QString,bool)" stablelabel true
}
-volumes=`hal-find-by-capability --capability volume`
+devices=`udisks --enumerate-device-files | grep -v /dev/disk | sort -n -r`
partlabel=
-for udi in $volumes; do
- device=`hal-get-property --udi $udi --key block.device`
- parent_udi=`hal-get-property --udi $udi --key block.storage_device`
- hotpluggable=`hal-get-property --udi $parent_udi --key storage.hotpluggable` || hotpluggable="false"
- blocksize=`hal-get-property --udi $udi --key volume.block_size`
- numblocks=`hal-get-property --udi $udi --key volume.num_blocks`
- volsize=`expr $blocksize \* $numblocks / 1024 / 1024`
- volname=`hal-get-property --udi $udi --key volume.label`
+for device in $devices; do
+ native_path=`get_udisks_key $device native-path`
+ [ -e $native_path/partition ] || continue
+ is_system_internal=`get_udisks_key $device "system internal"`
+ volsize=`get_udisks_key $device size`
+ volsize=`expr $volsize / 1024 / 1024`
+ volname=`get_udisks_key $device label`
[ "$volname" ] || volname="unnamed"
- parttype=`hal-get-property --udi $udi --key volume.partition.type`
+ parttype=`get_udisks_key $device usage`
[ "$parttype" ] || parttype="unknown"
- partscheme=`hal-get-property --udi $udi --key volume.partition.scheme`
+ partscheme=`get_udisks_key $device scheme`
[ "$partscheme" ] || partscheme="unknown"
- fstype=`hal-get-property --udi $udi --key volume.fstype`
+ fstype=`get_udisks_key $device type`
[ "$fstype" ] || fstype="unformatted"
add_info=""
- [ "$hotpluggable" = "true" ] && {
+ [ "$is_system_internal" = "1" ] || {
add_info=",removable"
[ @removablebox.checked == 1 ] || continue
}
+
if [ "$partscheme" == "mbr" -o "$partscheme" == "embr" ]; then
partlabel="$partlabel<br>${device:5:5} $fstype $volname $volsize MB"
- case "$parttype" in
- 0x82) ;;
- 0x83) dcop @dcopid KommanderIf "addListItem(QString,QString,int)" devicesbox "${device:5:5} ($fstype,$volname,$volsize MB${add_info})" 0 ;;
+ case "$fstype" in
+ ext2|ext3|ext4|reiserfs|reiser4|unformatted)
+ dcop @dcopid KommanderIf "addListItem(QString,QString,int)" devicesbox "${device:5:5} ($fstype,$volname,$volsize MB${add_info})" 0 ;;
*) ;;
esac
elif [ "$partscheme" == "gpt" -o "$partscheme" == "unknown" -a $volsize -gt 0 ]; then
@@ -2204,6 +2165,57 @@ done
+
+
+ setlabel
+
+
+
+ 540
+ 40
+ 32
+ 32
+
+
+
+
+
+
+
+ @execBegin
+function get_udisks_key() {
+ LANG=C udisks --show-info $1 | grep " $2:" | head -n1 | sed "s|[[:space:]]*$2:[[:space:]]*\(.*\)|\1|"
+}
+@if (@devicesbox.currentItem >= 0)
+ currdev=@String.section(@devicesbox.item(@devicesbox.currentItem)," ",0)
+ @showdevice.setText(@devicesbox.item(@devicesbox.currentItem))
+ @dcop(@dcopid, KommanderIf, enableWidget(QString,bool), next, true)
+ @BackBox.setChecked(true)
+
+ #
+ # set MBR combo box
+ #
+ dcop @dcopid KommanderIf "clear(QString)" mbrbox
+ devices=`udisks --enumerate-device-files | grep -v /dev/disk`
+ dcop @dcopid KommanderIf "addListItem(QString,QString,int)" mbrbox "$currdev (@i18n("System partition"))" 0
+
+ for device in $devices; do
+ native_path=`get_udisks_key $device native-path`
+ [ -e $native_path/partition ] && continue
+ is_system_internal=`get_udisks_key $device "system internal"`
+ partscheme=`get_udisks_key $device scheme`
+ if [ "$is_system_internal" == "1" -o "@removablebox.checked" == "1" ]; then
+ [ "$partscheme" == "mbr" ] && \
+ dcop @dcopid KommanderIf "addListItem(QString,QString,int)" mbrbox "${device:5:5} (master boot record)" 0
+ fi
+ done
+ dcop @dcopid KommanderIf "setCurrentItem(int)" 0
+@endif
+@execEnd
+@setBootableCheckbox.execute()
+
+
+
@@ -2586,6 +2598,30 @@ done
+
+
+ Label21_2_4
+
+
+
+ 80
+ 10
+ 470
+ 30
+
+
+
+
+ 15
+
+
+
+ Choose user data partition (home)
+
+
+ AlignCenter
+
+
setlabel_2
@@ -2618,7 +2654,6 @@ done
fi
@dcop(@dcopid, KommanderIf, enableWidget(QString,bool), next, true)
@BackBox.setChecked(true)
- parent_udi=`hal-find-by-property --key block.device --string /dev/$currdev`
dcop @dcopid KommanderIf "setCurrentItem(int)" 0
@endif
@execEnd
@@ -2644,42 +2679,45 @@ done
@BackBox.setChecked(true)
@NextBox.setChecked(true)
@execBegin
-volumes=`hal-find-by-capability --capability volume`
+function get_udisks_key() {
+ LANG=C udisks --show-info $1 | grep " $2:" | head -n1 | sed "s|[[:space:]]*$2:[[:space:]]*\(.*\)|\1|"
+}
+devices=`udisks --enumerate-device-files | grep -v /dev/disk | sort -n -r`
partlabel=
installdevice=@String.section(@devicesbox.item(@devicesbox.currentItem)," ",0)
dcop @dcopid KommanderIf "addListItem(QString,QString,int)" devicesbox_2 "@i18n("none (just use a single partition for system and home)")" 0
-for udi in $volumes; do
- device=`hal-get-property --udi $udi --key block.device`
+for device in $devices; do
[ "${device:5:5}" = "$installdevice" ] && continue
- parent_udi=`hal-get-property --udi $udi --key block.storage_device`
- hotpluggable=`hal-get-property --udi $parent_udi --key storage.hotpluggable` || hotpluggable="false"
- blocksize=`hal-get-property --udi $udi --key volume.block_size`
- numblocks=`hal-get-property --udi $udi --key volume.num_blocks`
- volsize=`expr $blocksize \* $numblocks / 1024 / 1024`
- volname=`hal-get-property --udi $udi --key volume.label`
+ native_path=`get_udisks_key $device native-path`
+ [ -e $native_path/partition ] || continue
+ is_system_internal=`get_udisks_key $device "system internal"`
+ volsize=`get_udisks_key $device size`
+ volsize=`expr $volsize / 1024 / 1024`
+ volname=`get_udisks_key $device label`
[ "$volname" ] || volname="unnamed"
- parttype=`hal-get-property --udi $udi --key volume.partition.type`
+ parttype=`get_udisks_key $device usage`
[ "$parttype" ] || parttype="unknown"
- partscheme=`hal-get-property --udi $udi --key volume.partition.scheme`
+ partscheme=`get_udisks_key $device scheme`
[ "$partscheme" ] || partscheme="unknown"
- fstype=`hal-get-property --udi $udi --key volume.fstype`
+ fstype=`get_udisks_key $device type`
[ "$fstype" ] || fstype="unformatted"
add_info=""
- [ "$hotpluggable" = "true" ] && {
+ [ "$is_system_internal" = "1" ] || {
add_info=",removable"
[ @removablebox.checked == 1 ] || continue
}
if [ "$partscheme" == "mbr" -o "$partscheme" == "embr" ]; then
partlabel="$partlabel<br>${device:5:5} $fstype $volname $volsize MB"
- case "$parttype" in
- 0x82) ;;
- 0x83) dcop @dcopid KommanderIf "addListItem(QString,QString,int)" devicesbox_2 "${device:5:5} ($fstype,$volname,$volsize MB${add_info})" 1 ;;
+ case "$fstype" in
+ ext2|ext3|ext4|reiserfs|reiser4|unformatted)
+ dcop @dcopid KommanderIf "addListItem(QString,QString,int)" devicesbox_2 "${device:5:5} ($fstype,$volname,$volsize MB${add_info})" 1 ;;
*) ;;
esac
elif [ "$partscheme" == "gpt" -o "$partscheme" == "unknown" -a $volsize -gt 0 ]; then
case "$fstype" in
swap|iso9660) ;;
- ext2|ext3|ext4|reiserfs|reiser4|unformatted) dcop @dcopid KommanderIf "addListItem(QString,QString,int)" devicesbox_2 "${device:5:5} ($fstype,$volname,$volsize MB${add_info})" 1 ;;
+ ext2|ext3|ext4|reiserfs|reiser4|unformatted)
+ dcop @dcopid KommanderIf "addListItem(QString,QString,int)" devicesbox_2 "${device:5:5} ($fstype,$volname,$volsize MB${add_info})" 1 ;;
*) ;;
esac
fi
@@ -2689,30 +2727,6 @@ done
-
-
- Label21_2_4
-
-
-
- 80
- 10
- 470
- 30
-
-
-
-
- 15
-
-
-
- Choose user data partition (home)
-
-
- AlignCenter
-
-
@@ -2998,41 +3012,41 @@ fi
@chainloadbox.clear
@setBootableCheckbox.execute()
@execBegin
+function get_udisks_key() {
+ LANG=C udisks --show-info $1 | grep " $2:" | head -n1 | sed "s|[[:space:]]*$2:[[:space:]]*\(.*\)|\1|"
+}
conffile=~/.installer.conf
[ -e $conffile ] && mv ${conffile} ${conffile}~
-
installdevice=@String.section(@devicesbox.item(@devicesbox.currentItem)," ",0)
-volumes=`hal-find-by-capability --capability volume`
+devices=`udisks --enumerate-device-files | grep -v /dev/disk | sort -n -r`
partlabel=
-for udi in $volumes; do
- device=`hal-get-property --udi $udi --key block.device`
+for device in $devices; do
[ "${device:5:5}" = "$installdevice" ] && continue
- parent_udi=`hal-get-property --udi $udi --key block.storage_device`
- hotpluggable=`hal-get-property --udi $parent_udi --key storage.hotpluggable` || hotpluggable="false"
- blocksize=`hal-get-property --udi $udi --key volume.block_size`
- numblocks=`hal-get-property --udi $udi --key volume.num_blocks`
- volsize=`expr $blocksize \* $numblocks / 1024 / 1024`
- [ $volsize = 0 ] && continue
- volname=`hal-get-property --udi $udi --key volume.label`
- mount_point=`hal-get-property --udi $udi --key volume.mount_point`
+ native_path=`get_udisks_key $device native-path`
+ [ -e $native_path/partition ] || continue
+ is_system_internal=`get_udisks_key $device "system internal"`
+ volsize=`get_udisks_key $device size`
+ volsize=`expr $volsize / 1024 / 1024`
+ volname=`get_udisks_key $device label`
[ "$volname" ] || volname="unnamed"
- parttype=`hal-get-property --udi $udi --key volume.partition.type`
+ parttype=`get_udisks_key $device usage`
[ "$parttype" ] || parttype="unknown"
- partscheme=`hal-get-property --udi $udi --key volume.partition.scheme`
+ partscheme=`get_udisks_key $device scheme`
[ "$partscheme" ] || partscheme="unknown"
- fstype=`hal-get-property --udi $udi --key volume.fstype`
+ fstype=`get_udisks_key $device type`
[ "$fstype" ] || fstype="unformatted"
add_info=""
- [ "$hotpluggable" = "true" ] && {
+ [ "$is_system_internal" = "1" ] || {
add_info=",removable"
[ @removablebox.checked == 1 ] || continue
}
+
if [ "$partscheme" == "mbr" -o "$partscheme" == "embr" ]; then
partlabel="$partlabel<br>${device:5:5} $fstype $volname $volsize MB"
- case "$parttype" in
- 0x82) ;;
- 0x83) ;;
+ case "$fstype" in
+ swap|iso9660|unformatted) ;;
+ ext2|ext3|ext4|reiserfs|reiser4) ;;
*) dcop @dcopid KommanderIf "addListItem(QString,QString,int)" chainloadbox "${device:5:5} ($fstype,$volname,$volsize MB${add_info})" 0
dcop @dcopid KommanderIf "setSelection" chainloadbox "${device:5:5} ($fstype,$volname,$volsize MB${add_info})"
;;
diff --git a/installer/installer.sh b/installer/installer.sh
index b3c5a08..af3db58 100755
--- a/installer/installer.sh
+++ b/installer/installer.sh
@@ -85,29 +85,8 @@ Installation time: $TIME_ELAPSED minutes"
done
}
-# function dev2gdev()
-# convert the device name to the string used by grub
-# using the file /boot/grub/device.map
-# note: in case of error the null string is returned
-# args:
-# $1: the name of the device
-# example:
-# /dev/hda3 --> (hd0,2)
-# /dev/sdb1 --> (hd1,0)
-function dev2gdev() {
- local devname=$1
-
- local disk=${devname:0:8} \
- part=${devname:8:2}
-
- [ ${part:-0} -lt 1 ] && echo -n ""
-
- cat $MOUNTPOINT/boot/grub/device.map | \
- while read tok1 tok2; do
- if [ "$tok2" = "$disk" ]; then
- echo -n "${tok1/)/},$(($part)))"
- fi
- done
+function get_udisks_key() {
+ LANG=C udisks --show-info $1 | grep " $2:" | head -n1 | sed "s|[[:space:]]*$2:[[:space:]]*\(.*\)|\1|"
}
[ "$1" = "-y" ] || {
@@ -117,23 +96,6 @@ function dev2gdev() {
exit 0
}
-function find_driver_for_udi() {
- local found_driver parent_udi
-
- parent_udi=$1
- while [ ! "$found_driver" -a "$parent_udi" != "/org/freedesktop/Hal/devices/computer" ]; do
- parent_udi=`hal-get-property --udi $parent_udi --key info.parent 2>/dev/null`
- [ "`hal-get-property --udi $parent_udi --key info.subsystem 2>/dev/null`" = "pci" ] &&
- found_driver=`hal-get-property --udi $parent_udi --key info.linux.driver 2>/dev/null`
- done
- if [ "$found_driver" ]; then
- echo $found_driver
- return 0
- else
- return 1
- fi
-}
-
DCOPID=$2
echo $"\
@@ -212,15 +174,16 @@ tempfile=`tempfile 2>/dev/null`
mapfile=`tempfile 2>/dev/null`
# generate current volumes sorted list with driver information
- storages=`hal-find-by-capability --capability storage`
+ devices=`udisks --enumerate-device-files | grep -v /dev/disk`
for s in $storages; do
- device=`hal-get-property --udi $s --key block.device`
- linux_driver=`find_driver_for_udi $s`
- hotpluggable=`hal-get-property --udi $s --key storage.hotpluggable` || hotpluggable="false"
+ native_path=`get_udisks_key $device native-path`
+ [ -e $native_path/partition ] && continue
+ is_system_internal=`get_udisks_key $device "system internal"`
+ #linux_driver=`find_driver_for_udi $s`
[ "${device:5:2}" = "sd" -o "${device:5:2}" = "hd" ] && \
- echo "${device:0:8} $linux_driver" >> $tempfile
+ echo "${device:0:8}" >> $tempfile
if [ "$INSTALL_BOOTLOADER_DEVICE" = "$device" ]; then
- INSTALL_BOOTLOADER_DEVICE_HOTPLUGGABLE=$hotpluggable
+ INSTALL_BOOTLOADER_DEVICE_INTERNAL=$is_system_internal
fi
done
# sort
@@ -462,7 +425,7 @@ if [ "$INSTALL_BOOTLOADER_DEVICE" ]; then
fi
done
echo "GRUB_INSTALL_DEVICE=$INSTALL_BOOTLOADER_DEVICE_BYID" >> $MOUNTPOINT/etc/sysconfig/grub
- if [ "$INSTALL_BOOTLOADER_DEVICE_HOTPLUGGABLE" = "true" ]; then
+ if [ "$INSTALL_BOOTLOADER_DEVICE_INTERNAL" != "1" ]; then
echo $"Installing grub bootloader on removable device $INSTALL_BOOTLOADER_DEVICE"
echo "(hd0) $INSTALL_BOOTLOADER_DEVICE" > $MOUNTPOINT/boot/grub/device.map
grub-install $INSTALL_BOOTLOADER_DEVICE --root-directory=$MOUNTPOINT --no-floppy --force