summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw@src.gnome.org>2014-07-17 10:42:37 +0800
committerTing-Wei Lan <lantw@src.gnome.org>2014-07-17 10:42:37 +0800
commitcaf6d4f09826a8e92b25a0d10118d7ac9498a495 (patch)
tree83c61895f3949397f3a7246074e20b5cd0c4acef
downloadfreebsd-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-xbuild-debug.sh14
-rwxr-xr-xbuild.sh157
-rw-r--r--gnome3-debug-pkgs22
-rw-r--r--gnome3-pkgs3
-rw-r--r--init.sh43
-rw-r--r--loader.conf13
-rw-r--r--rc.conf11
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
diff --git a/init.sh b/init.sh
new file mode 100644
index 0000000..5bafbff
--- /dev/null
+++ b/init.sh
@@ -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"
diff --git a/rc.conf b/rc.conf
new file mode 100644
index 0000000..aeb08c1
--- /dev/null
+++ b/rc.conf
@@ -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"