tazlito rev 383

live.cgi: restore <!--writeiso-->
author Xander Ziiryanoff <psychomaniak@xakep.ru>
date Thu May 07 03:29:30 2015 +0300 (2015-05-07)
parents d5a2a2af1fdd
children 847a1a024cd0
files live.cgi tazlito
line diff
     1.1 --- a/live.cgi	Tue May 05 09:11:31 2015 +0200
     1.2 +++ b/live.cgi	Thu May 07 03:29:30 2015 +0300
     1.3 @@ -76,10 +76,6 @@
     1.4  #
     1.5  
     1.6  case " $(GET) " in
     1.7 -	*\ write_iso\ *)
     1.8 -		$TERMINAL $TERM_OPTS \
     1.9 -			-T "write-iso" \
    1.10 -			-e "tazlito writeiso $(GET write_iso)" & ;;
    1.11  	*\ loramoutput\ *)
    1.12  		$TERMINAL $TERM_OPTS \
    1.13  			-T "build loram iso" \
    1.14 @@ -147,12 +143,61 @@
    1.15  			yes | tazusb gen-liveusb $(GET gen)
    1.16  			echo '</pre>'
    1.17  		fi ;;
    1.18 +	*\ write_iso\ *)
    1.19 +		xhtml_header
    1.20 +
    1.21 +		LaunchedByTazpanel="y" \
    1.22 +			tazlito writeiso $(GET write_iso) > /tmp/tazlitowriteiso 2>&1 &
    1.23 +
    1.24 +		until [ -f /rootfs.gz ]; do
    1.25 +			sleep 1
    1.26 +		done
    1.27 +		cat << EOT
    1.28 +<fieldset>
    1.29 +$(head /tmp/tazlitowriteiso | sed "s|$|<p></p>|g" | sed '/.gvfs/d')
    1.30 +<li id="fssize"> </li>
    1.31 +EOT
    1.32 +		until [ ! -f /rootfs.gz ]; do
    1.33 +			sleep 1
    1.34 +		cat << EOT
    1.35 +<script type="text/javascript">
    1.36 +document.getElementById('fssize').innerHTML = "<h4>$(boldify $(du -mh /rootfs.gz | cut -f1))</h4>";
    1.37 +</script>
    1.38 +EOT
    1.39 +		done
    1.40 +		if [ -f /rootfs.gz ]; then
    1.41 +			until [ ! -f /rootfs.gz ]; do
    1.42 +				sleep 1
    1.43 +			done
    1.44 +		fi
    1.45 +		cat <<EOT
    1.46 +<script type="text/javascript">
    1.47 +document.getElementById('fssize').innerHTML = "$(boldify $(du -mh /home/slitaz/distro/rootcd/boot/rootfs.gz | cut -f1))";
    1.48 +</script>
    1.49 +/home/slitaz/distro/rootcd/boot/rootfs.gz
    1.50 +</fieldset>
    1.51 +EOT
    1.52 +		until [ -f /tmp/.write-iso* ]; do
    1.53 +			sleep 1
    1.54 +		done
    1.55 +		echo "<fieldset>"
    1.56 +		if	[ -f /tmp/.write-iso ]; then
    1.57 +			newline
    1.58 +			tail /tmp/tazlitowriteiso | grep ISO
    1.59 +			while [ -f /tmp/.write-iso ]; do sleep 1 ; done
    1.60 +		elif [ -f /tmp/.write-iso-error ]; then
    1.61 +			tail -n8 /tmp/tazlitowriteiso | grep -vE 'ENTER|----'
    1.62 +		fi
    1.63 +		tail -n5 /tmp/tazlitowriteiso | sed "s|$|<p></p>|g"
    1.64 +		echo "</fieldset>"
    1.65 +		echo "Use ' <code>tazlito emu-iso</code> ' to check it" ;;
    1.66  	*)
    1.67  		#
    1.68  		# Default xHTML content
    1.69  		#
    1.70  		xhtml_header
    1.71  		cat << EOT
    1.72 +<header id="liveiso"> <header>
    1.73  <div id="wrapper">
    1.74  	<h2>$(gettext 'SliTaz Live Systems')</h2>
    1.75  	<p>$(gettext 'Create and manage Live CD or USB SliTaz systems')<p>
    1.76 @@ -163,10 +208,12 @@
    1.77  		<img src="$IMAGES/harddisk.png" />$(gettext 'Create LiveUSB')</a>
    1.78  </div>
    1.79  
    1.80 +<fieldset >
    1.81 +<h3 id="loram">$(gettext 'Write a Live CD')</h3>
    1.82  
    1.83 -<!--
    1.84 -<h3 id="livecd">$(gettext 'Write a Live CD')</h3>
    1.85 +<!-- id="livecd" -->
    1.86  
    1.87 +<div>
    1.88  <p>$(gettext "The command writeiso will generate an ISO image of the current \
    1.89  filesystem as is, including all files in the /home directory. It is an easy \
    1.90  way to remaster a SliTaz Live system, you just have to: boot, modify, \
    1.91 @@ -180,12 +227,21 @@
    1.92  		<option value="none">$(gettext 'none')</option>
    1.93  	</select>
    1.94  	<input type="submit" value="$(gettext 'Write ISO')" />
    1.95 -</form> -->
    1.96 +</form>
    1.97 +$([ ! -d /media/cdrom/boot/isolinux -a ! -f /boot/*slitaz* ] && \
    1.98 +echo '<p> Cannot find Slitaz ISO/cd mounted in /media/cdrom (You will get only rootfs.gz)</p>')
    1.99 +</div>
   1.100 +</fieldset>
   1.101  
   1.102 +<p></p>
   1.103 +<fieldset>
   1.104  
   1.105  <h3>$(gettext 'Live CD tools')</h3>
   1.106  
   1.107 -<h4 id="loram">$(gettext 'Convert ISO to loram')</h4>
   1.108 +<fieldset>
   1.109 +<h4>$(gettext 'Convert ISO to loram')</h4>
   1.110 +
   1.111 +<!-- id="loram" -->
   1.112  
   1.113  <p>$(gettext "This command will convert an ISO image of a SliTaz Live CD to a \
   1.114  new ISO image requiring less RAM to run.")</p>
   1.115 @@ -219,8 +275,9 @@
   1.116  	</table>
   1.117  	<input type="submit" value="$(gettext 'Convert ISO to loram')" />
   1.118  </form>
   1.119 +</fieldset>
   1.120  
   1.121 -
   1.122 +<fieldset>
   1.123  <h4 id="hybrid">$(gettext 'Build a hybrid ISO')</h4>
   1.124  
   1.125  <p>$(gettext "Add a master boot sector and an EXE header to the ISO image. \
   1.126 @@ -237,7 +294,9 @@
   1.127  	</table>
   1.128  	<input type="submit" name="hybrid" value="$(gettext 'Build a hybrid ISO')" />
   1.129  </form>
   1.130 +</fieldset>
   1.131  
   1.132 +<fieldset>
   1.133  <h4 id="meta">$(gettext 'Build a meta ISO')</h4>
   1.134  
   1.135  <p>$(gettext "Combines several ISO flavors like nested Russian dolls. The \
   1.136 @@ -283,6 +342,8 @@
   1.137  	</table>
   1.138  	<input type="submit" name="meta" value="$(gettext 'Build a meta ISO')" />
   1.139  </form>
   1.140 +</fieldset>
   1.141 +</fieldset>
   1.142  
   1.143  EOT
   1.144  		;;
     2.1 --- a/tazlito	Tue May 05 09:11:31 2015 +0200
     2.2 +++ b/tazlito	Thu May 07 03:29:30 2015 +0300
     2.3 @@ -371,10 +371,12 @@
     2.4  		echo "Creating rootfs.gz with gzip compression... "
     2.5  		cpio -o -H newc | gzip -9 > /rootfs.gz
     2.6  	else
     2.7 +		# align='y'
     2.8  		echo "Creating rootfs.gz without compression... "
     2.9  		cpio -o -H newc > /rootfs.gz
    2.10  	fi < /tmp/list
    2.11 -	#align_to_32bits /rootfs.gz
    2.12 +	# [ $align == '1' ] && align_to_32bits /rootfs.gz
    2.13 +	# align_to_32bits /rootfs.gz
    2.14  	echo 1 > /tmp/rootfs
    2.15  }
    2.16  
    2.17 @@ -2180,6 +2182,7 @@
    2.18  			done <<EOT
    2.19  $(awk '{ for (i = 4; i <= NF; i+=2) print $i; }' < /etc/tazlito/rootfs.list)
    2.20  EOT
    2.21 +#'
    2.22  			i=$(($n+1))
    2.23  			while [ $n -gt 0 ]; do
    2.24  				mv ${ROOTFS}0$n ${ROOTFS}$i
    2.25 @@ -2292,9 +2295,11 @@
    2.26  EOT
    2.27  		# Save some space
    2.28  		rm /var/cache/tazpkg/* -r -f
    2.29 +		rm /var/lib/tazpkg/*.bak -f
    2.30  		rm -rf /home/slitaz/distro
    2.31  
    2.32  		# Optionally remove sound card selection and screen resolution.
    2.33 +		if [ -z $LaunchedByTazpanel ]; then
    2.34  		echo "Do you wish to remove the sound card and screen configs ? "
    2.35  		echo -n "Press ENTER to keep or answer (No|yes|exit): "
    2.36  		read anser
    2.37 @@ -2326,10 +2331,13 @@
    2.38  				echo "Keeping current locale/keymap settings..." ;;
    2.39  		esac
    2.40  		status
    2.41 +		fi
    2.42  		
    2.43  		# Clean-up files by default
    2.44 -		mv -f /var/log/wtmp /var/log/.wtmp
    2.45 -		touch /var/log/wtmp
    2.46 +		if [ ! $(find /var/log/wtmp -size +4k) = "" ]; then
    2.47 +			mv -f /var/log/wtmp /tmp/tazlito-wtmp
    2.48 +			touch /var/log/wtmp
    2.49 +		fi
    2.50  		newline > /etc/udev/rules.d/70-persistent-net.rules
    2.51  		newline > /etc/udev/rules.d/70-persistant-cd.rules
    2.52  
    2.53 @@ -2350,6 +2358,7 @@
    2.54  
    2.55  		sed -i '/var\/run\/.*pid$/d'	/tmp/list
    2.56  		sed -i '/var\/run\/utmp/d'	/tmp/list
    2.57 +		sed -i '/.*\/.gvfs/d'	/tmp/list
    2.58  
    2.59  		for removelog in auth boot messages dmesg daemon slim .*old Xorg; do
    2.60  			sed -i "/var\/log\/$removelog/d" /tmp/list
    2.61 @@ -2357,7 +2366,9 @@
    2.62  
    2.63  		# Generate initramfs with specified compression and display rootfs
    2.64  		# size in realtime.
    2.65 -		rm -f /tmp/rootfs 2> /dev/null
    2.66 +		rm -f /tmp/.write-iso*	2> /dev/null
    2.67 +		rm -f /tmp/rootfs	2> /dev/null
    2.68 +
    2.69  		write_initramfs &
    2.70  		sleep 2
    2.71  		cd - > /dev/null
    2.72 @@ -2367,13 +2378,15 @@
    2.73  			sleep 1
    2.74  			echo -en "\\033[18G`du -sh /rootfs.gz | awk '{print $1}'`    "
    2.75  		done
    2.76 -		mv -f /var/log/.wtmp /var/log/wtmp
    2.77 +		[ -f /tmp/tazlito-wtmp ] && \
    2.78 +		mv -f /tmp/tazlito-wtmp /var/log/wtmp
    2.79  		echo -e "\n"
    2.80  		rm -f /tmp/rootfs
    2.81  
    2.82  		# Move freshly generated rootfs to the cdrom.
    2.83  		mkdir -p $ROOTCD/boot
    2.84  		mv -f /rootfs.gz $ROOTCD/boot
    2.85 +		echo "Located in: $ROOTCD/boot/rootfs.gz"
    2.86  
    2.87  		# Now we need the kernel and isolinux files.
    2.88  		copy_from_cd()
    2.89 @@ -2383,22 +2396,35 @@
    2.90  			unmeta_boot $ROOTCD
    2.91  			umount /media/cdrom
    2.92  		}
    2.93 +		bootloader="/var/lib/tazpkg/installed/syslinux/volatile.cpio.gz"
    2.94  		if  mount /dev/cdrom /media/cdrom 2>/dev/null; then
    2.95  			copy_from_cd;
    2.96  		elif  mount |grep /media/cdrom; then
    2.97  			copy_from_cd;
    2.98 +		elif [ -f "$bootloader" -a -f /boot/vmlinuz*slitaz* ]; then
    2.99 +			cp $bootloader $ROOTCD
   2.100 +			cd $ROOTCD
   2.101 +			zcat	volatile.cpio.gz | cpio -id
   2.102 +			rm -f	volatile.cpio.gz
   2.103 +			[ -f /boot/*slitaz ] && \
   2.104 +				cp /boot/vmlinuz*slitaz $ROOTCD/boot/bzImage
   2.105 +			[ -f /boot/*slitaz64 ] && \
   2.106 +				cp /boot/vmlinuz*slitaz64 $ROOTCD/boot/bzImage64
   2.107  		else
   2.108 -			echo "Located in: $ROOTCD/boot/rootfs.gz"
   2.109 +			touch /tmp/.write-iso-error
   2.110  			echo -e "
   2.111  When SliTaz is running in RAM the kernel and bootloader files are kept
   2.112  on the cdrom. Please insert a LiveCD or loop mount the slitaz.iso to
   2.113 -/media/cdrom to let Tazlito copy the files.\n"
   2.114 +/media/cdrom (run # mount -o loop slitaz-rolling.iso /media/cdrom )
   2.115 +to let Tazlito copy the files.\n"
   2.116  			echo -en "----\nENTER to continue..."; read i
   2.117  			[ ! -d /media/cdrom/boot/isolinux ] && exit 1
   2.118  			copy_from_cd
   2.119  		fi
   2.120  
   2.121  		# Generate the iso image.
   2.122 +		touch /tmp/.write-iso
   2.123 +		newline
   2.124  		cd $DISTRO
   2.125  		echo "Generating ISO image..."
   2.126  		genisoimage -R -o $ISO_NAME.iso -b boot/isolinux/isolinux.bin \
   2.127 @@ -2416,7 +2442,9 @@
   2.128  
   2.129  		separator
   2.130  		echo "ISO image: $(du -sh /home/slitaz/distro/$ISO_NAME.iso)"
   2.131 +		rm -f /tmp/.write-iso
   2.132  		newline
   2.133 +		if [ -z $LaunchedByTazpanel ]; then
   2.134  		echo -n "Exit or burn ISO to cdrom (Exit|burn)? "; read anser
   2.135  		case $anser in
   2.136  			burn)
   2.137 @@ -2428,7 +2456,8 @@
   2.138  				echo -en "----\nENTER to continue..."; read i ;;
   2.139  			*)
   2.140  				exit 0 ;;
   2.141 -		esac ;;
   2.142 +		esac
   2.143 +		fi ;;
   2.144  	
   2.145  	burn-iso)
   2.146  		# Guess cdrom device, ask user and burn the ISO.