diff options
author | Ting-Wei Lan <lantw@src.gnome.org> | 2014-07-17 10:42:37 +0800 |
---|---|---|
committer | Ting-Wei Lan <lantw@src.gnome.org> | 2014-07-17 10:42:37 +0800 |
commit | caf6d4f09826a8e92b25a0d10118d7ac9498a495 (patch) | |
tree | 83c61895f3949397f3a7246074e20b5cd0c4acef | |
download | freebsd-gnome-livecd-caf6d4f09826a8e92b25a0d10118d7ac9498a495.tar.gz freebsd-gnome-livecd-caf6d4f09826a8e92b25a0d10118d7ac9498a495.tar.zst freebsd-gnome-livecd-caf6d4f09826a8e92b25a0d10118d7ac9498a495.zip |
Initial commit - import sources for the first releaserelease-20140717
-rwxr-xr-x | build-debug.sh | 14 | ||||
-rwxr-xr-x | build.sh | 157 | ||||
-rw-r--r-- | gnome3-debug-pkgs | 22 | ||||
-rw-r--r-- | gnome3-pkgs | 3 | ||||
-rw-r--r-- | init.sh | 43 | ||||
-rw-r--r-- | loader.conf | 13 | ||||
-rw-r--r-- | rc.conf | 11 |
7 files changed, 263 insertions, 0 deletions
diff --git a/build-debug.sh b/build-debug.sh new file mode 100755 index 0000000..787b306 --- /dev/null +++ b/build-debug.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +# == Configurations ========================================================= + +root="/home/lantw44/livecd/root-debug" +cdroot="/home/lantw44/livecd/cdroot-debug" +image="/home/lantw44/livecd/out/FreeBSD-10.0-GNOME-3.12.2-`date '+%Y%m%d'`-debug.iso" + +repo="/usr/local/poudriere/data/packages/freebsd10-marcuscom-gnome3-debug" +pkgs="`cat /home/lantw44/livecd/gnome3-debug-pkgs`" + +# =========================================================================== + +. "`dirname "$0"`/build.sh" diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..71edf1d --- /dev/null +++ b/build.sh @@ -0,0 +1,157 @@ +#!/bin/sh + +# == Configurations ========================================================= + +: ${src:="/home/lantw44/livecd/src"} +: ${root:="/home/lantw44/livecd/root"} +: ${cdroot:="/home/lantw44/livecd/cdroot"} +: ${image:="/home/lantw44/livecd/out/FreeBSD-10.0-GNOME-3.12.2-`date '+%Y%m%d'`.iso"} + +: ${repo="/usr/local/poudriere/data/packages/freebsd10-marcuscom-gnome3"} +: ${pkgs="`cat /home/lantw44/livecd/gnome3-pkgs`"} + +# =========================================================================== + +vol="FREEBSD_10_GNOME_3" +steps="system packages user config uzip ramdisk boot image" +pwdir="`dirname "$0"`" +cd "${pwdir}" +pwdir="`pwd`" + +system () { + install -o root -g wheel -m 755 -d "${root}" + cd "${src}" || return 1 + make installworld DESTDIR="${root}" || return 1 + make installkernel DESTDIR="${root}" || return 1 + make distribution DESTDIR="${root}" || return 1 +} + +packages () { + sed -i.bak 's|yes|no|' "${root}/etc/pkg/FreeBSD.conf" + cat << EOF > "${root}/etc/pkg/packages.conf" +packages: { + url: "file:///packages", + enabled: yes +} +EOF + install -d "${root}/packages" + mount_nullfs "${repo}" "${root}/packages" + pkg -c "${root}" install -fy ${pkgs} || { + umount "${root}/packages" + return 1 + } + rm -rf "${root}/var/cache/pkg/All" + umount "${root}/packages" + rm -f "${root}/etc/pkg/packages.conf" + mv -f "${root}/etc/pkg/FreeBSD.conf.bak" "${root}/etc/pkg/FreeBSD.conf" +} + +user () { + install -o root -g wheel -m 755 -d "${root}/home" + cat << EOF > "${root}/users" +#!/bin/sh +set -x +for user in liveuser; do + pw add user \$user -G wheel -s /bin/tcsh -M 755 + chpass -p '' \$user + install -o \$user -g \$user -m 755 -d /home/\$user + echo 'limit coredumpsize 0' > /home/\$user/.login + chown \$user:\$user /home/\$user/.login +done +EOF + chmod 755 "${root}/users" + chroot "${root}" "/users" + rm -f "${root}/users" +} + +config () { + cd "${pwdir}" + install -o root -g wheel -m 644 "rc.conf" "${root}/etc/" + cat << EOF > "${root}/etc/fstab" +fdesc /dev/fd fdescfs rw 0 0 +EOF + cat << EOF > "${root}/etc/sysctl.conf" +kern.coredump=0 +EOF +} + +uzip () { + install -o root -g wheel -m 755 -d "${cdroot}/data" + makefs "${cdroot}/data/system.ufs" "${root}" + mkuzip -o "${cdroot}/data/system.uzip" "${cdroot}/data/system.ufs" + rm -f "${cdroot}/data/system.ufs" +} + +ramdisk () { + ramdisk_root="${cdroot}/data/ramdisk" + mkdir -p "${ramdisk_root}" + cd "${root}" + tar -cf - rescue | tar -xf - -C "${ramdisk_root}" + cd "${pwdir}" + install -o root -g wheel -m 755 "init.sh" "${ramdisk_root}" + mkdir "${ramdisk_root}/dev" + mkdir "${ramdisk_root}/etc" + touch "${ramdisk_root}/etc/fstab" + makefs -b '10%' "${cdroot}/data/ramdisk.ufs" "${ramdisk_root}" + gzip "${cdroot}/data/ramdisk.ufs" + rm -rf "${ramdisk_root}" +} + +boot () { + cd "${root}" + tar -cf - --exclude boot/kernel boot | tar -xf - -C "${cdroot}" + for kfile in kernel geom_uzip.ko nullfs.ko tmpfs.ko unionfs.ko; do + tar -cf - boot/kernel/${kfile} | tar -xf - -C "${cdroot}" + done + cd "${pwdir}" + install -o root -g wheel -m 644 "loader.conf" "${cdroot}/boot/" +} + +image () { + cd "${cdroot}" + mkisofs -iso-level 4 -R -l -ldots -allow-lowercase -allow-multidot -V \ + "${vol}" -o "${image}" -no-emul-boot -b boot/cdboot . +} + + +if [ "`id -u`" '!=' "0" ]; then + echo "Sorry, you are not root ..." + exit 1 +fi + +printf "All steps: \033[1;33m%s\033[m\n" "${steps}" +printf "(E)dit or (R)un? " +read edit_or_run + +case "${edit_or_run}" in + E*|e*) + printf "New steps: " + read steps + ;; + R*|r*) + ;; + *) + echo "Unknown action ..." + exit 1 + ;; +esac + +for task in ${steps}; do + if type "${task}" >/dev/null 2>/dev/null; then :; else + printf "==> Task \033[1;31m%s\033[m not found\n" "${task}" + exit 1 + fi +done + +for task in ${steps}; do + printf "==> Running task \033[1;33m%s\033[m\n" "${task}" + set -x + if ${task}; then + set +x + printf "=> Task \033[1;32m%s\033[m OK\n" "${task}" + else + set +x + printf "=> Task \033[1;31m%s\033[m failed\n" "${task}" + exit 1 + fi +done diff --git a/gnome3-debug-pkgs b/gnome3-debug-pkgs new file mode 100644 index 0000000..43276c4 --- /dev/null +++ b/gnome3-debug-pkgs @@ -0,0 +1,22 @@ +x11/gnome3 +x11-servers/xorg-server +x11-drivers/xorg-drivers +dns/bind-tools +devel/cgdb +sysutils/cmdwatch +devel/gdb +devel/git +sysutils/lsof +sysutils/ncdu +sysutils/pstree +sysutils/py-ranger +net/rsync +sysutils/screen +sysutils/tmux +devel/subversion +devel/tig +sysutils/tree +editors/vim +editors/emacs +www/w3m +ftp/wget diff --git a/gnome3-pkgs b/gnome3-pkgs new file mode 100644 index 0000000..dfd5b7a --- /dev/null +++ b/gnome3-pkgs @@ -0,0 +1,3 @@ +x11/gnome3 +x11-servers/xorg-server +x11-drivers/xorg-drivers @@ -0,0 +1,43 @@ +#!/bin/sh + +PATH="/rescue" + +if [ "`ps -o command 1 | tail -n 1 | ( read c o; echo ${o} )`" = "-s" ]; then + echo "==> Running in single-user mode" + SINGLE_USER="true" +fi + +echo "==> Remount rootfs as read-write" +mount -u -w / + +echo "==> Make mountpoints" +mkdir -p /cdrom /memdisk /sysroot + +echo "==> Mount cdrom" +mount_cd9660 /dev/iso9660/FREEBSD_10_GNOME_3 /cdrom +mdmfs -P -F /cdrom/data/system.uzip -o ro md.uzip /sysroot + +if [ "$SINGLE_USER" = "true" ]; then + echo -n "Enter memdisk size used for read-write access in the live system: " + read MEMDISK_SIZE +else + MEMDISK_SIZE="256" +fi + +echo "==> Mount swap-based memdisk" +mdmfs -s "${MEMDISK_SIZE}m" md /memdisk || exit 1 +mount -t unionfs /memdisk /sysroot + +mkdir -p /sysroot/mnt/cdrom +mount_nullfs -o ro /cdrom /sysroot/mnt/cdrom + +echo "==> Mount devfs" +mount -t devfs devfs /sysroot/dev + +if [ "$SINGLE_USER" = "true" ]; then + echo "Starting interactive shell in temporary rootfs ..." + sh +fi + +kenv init_shell="/bin/sh" +exit 0 diff --git a/loader.conf b/loader.conf new file mode 100644 index 0000000..07217df --- /dev/null +++ b/loader.conf @@ -0,0 +1,13 @@ +geom_uzip_load="YES" +mfsroot_load="YES" +nullfs_load="YES" +tmpfs_load="YES" +unionfs_load="YES" + +mfsroot_type="md_image" +mfsroot_name="/data/ramdisk.ufs" + +init_path="/rescue/init" +init_shell="/rescue/sh" +init_script="/init.sh" +init_chroot="/sysroot" @@ -0,0 +1,11 @@ +root_rw_mount="NO" +hostname="FreeBSD-GNOME" + +sendmail_enable="NONE" +sendmail_submit_enable="NO" +sendmail_outbound_enable="NO" +sendmail_msp_queue_enable="NO" + +hald_enable="YES" +dbus_enable="YES" +gdm_enable="YES" |