summaryrefslogtreecommitdiff
path: root/archiso
diff options
context:
space:
mode:
authorNicolás Reynolds <apoyosis@correo.inta.gob.ar>2011-07-20 16:01:16 -0300
committerNicolás Reynolds <apoyosis@correo.inta.gob.ar>2011-07-20 16:01:16 -0300
commit1a87fac19da7cf748c7f42d1ec183cff00998016 (patch)
treee1754bf58be446c0612a0460abae9cf879f29fa2 /archiso
parentfea6291aff50468dd0f1e40c85d6d9ee7ca972a2 (diff)
parent27e472451e39bcec4b785101d2964e6d5f8a91d5 (diff)
Merge branch 'master' of https://projects.archlinux.org/git/archiso
Conflicts: README configs/baseline/build.sh configs/releng/build.sh configs/releng/packages.i686 configs/releng/packages.x86_64 configs/releng/root-image/etc/rc.d/archiso
Diffstat (limited to 'archiso')
-rw-r--r--archiso/Makefile6
-rw-r--r--archiso/hooks/archiso16
-rw-r--r--archiso/hooks/archiso_pxe_nbd8
-rw-r--r--archiso/install/archiso2
-rw-r--r--archiso/install/archiso_loop_mnt2
-rw-r--r--archiso/install/archiso_pxe_nbd2
-rwxr-xr-xarchiso/mkarchiso10
7 files changed, 31 insertions, 15 deletions
diff --git a/archiso/Makefile b/archiso/Makefile
index 74f9ff2..78dd534 100644
--- a/archiso/Makefile
+++ b/archiso/Makefile
@@ -1,12 +1,14 @@
all:
-install: install-program install-examples install-doc
+install: install-program install-hooks install-examples install-doc
install-program:
# install to sbin since script only usable by root
install -D -m 755 mkarchiso $(DESTDIR)/usr/sbin/mkarchiso
# testiso can be used by anyone
install -D -m 755 testiso $(DESTDIR)/usr/bin/testiso
+
+install-hooks:
# hooks/install are needed by mkinitcpio
install -D -m 644 hooks/archiso $(DESTDIR)/lib/initcpio/hooks/archiso
install -D -m 644 install/archiso $(DESTDIR)/lib/initcpio/install/archiso
@@ -33,4 +35,4 @@ uninstall:
rm -f $(DESTDIR)/lib/initcpio/install/archiso_pxe_nbd
rm -rf $(DESTDIR)/usr/share/archiso/
-.PHONY: install install-program install-examples install-doc uninstall
+.PHONY: install install-program install-hooks install-examples install-doc uninstall
diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso
index b81bbf7..7e2997a 100644
--- a/archiso/hooks/archiso
+++ b/archiso/hooks/archiso
@@ -1,22 +1,26 @@
# Initialize loopback device logic (we using on-demand mode)
# args: none
_init_loop_dev() {
- loop_dev_cnt=99
+ modprobe loop
+ loop_dev_count=99
+ loop_dev_range=$(cat /sys/block/loop0/range)
+ loop_dev_minor=$((loop_dev_count*loop_dev_range))
}
# Call this function before _make_loop_dev() each time.
# args: none
_next_loop_dev() {
- loop_dev_cnt=$((loop_dev_cnt+1))
+ loop_dev_count=$((loop_dev_count+1))
+ loop_dev_minor=$((loop_dev_count*loop_dev_range))
}
-# Setup a loopback device for image passed as arguemnt and echo the path to loopback device used.
+# Setup a loopback device for image passed as argument and echo the path to loopback device used.
# args: /path/to/image_file
_make_loop_dev() {
local img="${1}"
- mknod /dev/loop${loop_dev_cnt} b 7 ${loop_dev_cnt} &> /dev/null
- losetup /dev/loop${loop_dev_cnt} "${img}" &> /dev/null
- echo /dev/loop${loop_dev_cnt}
+ mknod /dev/loop${loop_dev_count} b 7 ${loop_dev_minor} &> /dev/null
+ losetup /dev/loop${loop_dev_count} "${img}" &> /dev/null
+ echo /dev/loop${loop_dev_count}
}
# args: source, mountpoint
diff --git a/archiso/hooks/archiso_pxe_nbd b/archiso/hooks/archiso_pxe_nbd
index f18fd4c..588e033 100644
--- a/archiso/hooks/archiso_pxe_nbd
+++ b/archiso/hooks/archiso_pxe_nbd
@@ -55,6 +55,8 @@ run_hook () {
nbdserver=${rootserver}
+ [[ -z "${archiso_nbd_name}" ]] && archiso_nbd_name="archiso"
+
mount_handler="archiso_pxe_nbd_mount_handler"
fi
}
@@ -74,9 +76,9 @@ archiso_pxe_nbd_mount_handler () {
msg "::: Setup NBD from ${nbdserver} at /dev/nbd0"
if [ "${copytoram}" = "y" ]; then
- nbd-client ${nbdserver} -N archiso /dev/nbd0
+ nbd-client ${nbdserver} -N ${archiso_nbd_name} /dev/nbd0
else
- nbd-client ${nbdserver} -N archiso /dev/nbd0 -persist
+ nbd-client ${nbdserver} -N ${archiso_nbd_name} /dev/nbd0 -persist
fi
archisodevice=/dev/nbd0
@@ -86,5 +88,7 @@ archiso_pxe_nbd_mount_handler () {
if [ "${copytoram}" = "y" ]; then
msg "::: Disconnect NBD from ${nbdserver} at /dev/nbd0"
nbd-client -d /dev/nbd0
+ else
+ pidof nbd-client > /run/nbd_client.pid
fi
}
diff --git a/archiso/install/archiso b/archiso/install/archiso
index 3ac6246..514c011 100644
--- a/archiso/install/archiso
+++ b/archiso/install/archiso
@@ -1,4 +1,4 @@
-install ()
+build ()
{
MODULES="cdrom ide-cd_mod ide-core ide-generic loop dm-mod dm-snapshot squashfs isofs $(all_modules '/kernel/fs' | grep -v "nls")"
MODULES="${MODULES} $(checked_modules "/usb/host" | grep -ve "_cs" -e "sl811_hcd" -e "isp116x_hcd")"
diff --git a/archiso/install/archiso_loop_mnt b/archiso/install/archiso_loop_mnt
index c0d21a6..2c8d6f2 100644
--- a/archiso/install/archiso_loop_mnt
+++ b/archiso/install/archiso_loop_mnt
@@ -1,6 +1,6 @@
# vim: set ft=sh:
-install ()
+build ()
{
MODULES=""
diff --git a/archiso/install/archiso_pxe_nbd b/archiso/install/archiso_pxe_nbd
index 189a7b1..c8ba1a4 100644
--- a/archiso/install/archiso_pxe_nbd
+++ b/archiso/install/archiso_pxe_nbd
@@ -1,6 +1,6 @@
# vim: set ft=sh:
-install ()
+build ()
{
MODULES="nbd"
MODULES="${MODULES} $(comm -2 -3 <(checked_modules "/drivers/net/" | sort) \
diff --git a/archiso/mkarchiso b/archiso/mkarchiso
index 6c88474..e09ad54 100755
--- a/archiso/mkarchiso
+++ b/archiso/mkarchiso
@@ -147,7 +147,7 @@ _show_config () {
# Install desired packages to root-image
_pacman ()
{
- _msg_info "Installing packages to '${work_dir}/root-image/'"
+ _msg_info "Installing packages to '${work_dir}/root-image/'..."
if [[ "${quiet}" = "y" ]]; then
mkarchroot -n -C "${pacman_conf}" -f "${work_dir}/root-image" $* &> /dev/null
@@ -157,6 +157,7 @@ _pacman ()
# Cleanup
find "${work_dir}" -name "*.pacnew" -name "*.pacsave" -name "*.pacorig" -delete
+ _msg_info "Packages installed successfully!"
}
# Cleanup root-image
@@ -190,6 +191,10 @@ _cleanup () {
if [[ -d "${work_dir}/root-image/tmp" ]]; then
find "${work_dir}/root-image/tmp" -mindepth 1 -delete
fi
+ # Delete etc/mtab if not is a symlink.
+ if [[ ! -L "${work_dir}/root-image/etc/mtab" ]]; then
+ rm -f "${work_dir}/root-image/etc/mtab"
+ fi
}
# Makes a SquashFS filesystem image of file/directory passes as argument with desired compression.
@@ -249,6 +254,7 @@ _mkfs () {
fi
_msg_info "Creating ${_fs_type} image of ${_fs_size} MiB"
+ rm -f "${_fs_img}"
dd of="${_fs_img}" count=0 bs=1M seek=${_fs_size} &> /dev/null
local _qflag=""
if [[ ${quiet} == "y" ]]; then
@@ -374,8 +380,8 @@ command_create () {
_msg_info "These packages are already installed, skipping."
else
mkdir -p "${work_dir}/root-image/"
- : > "${work_dir}/create.${_pkg_list_hash}"
_pacman "${pkg_list}"
+ : > "${work_dir}/create.${_pkg_list_hash}"
fi
}