]> Frank Brehm's Git Trees - my-stuff/grml-patch.git/commitdiff
Bis zum Update aller Pakete gekommen
authorFrank Brehm <frank.brehm@pixelpark.com>
Tue, 6 Jun 2017 16:28:47 +0000 (18:28 +0200)
committerFrank Brehm <frank.brehm@pixelpark.com>
Tue, 6 Jun 2017 16:28:47 +0000 (18:28 +0200)
bin/create-grml-image.sh

index 34350fd542ec823b006ab989c7b850808f7e0d8b..ffbd25113b8426476faf45241b4289b7047d44c5 100755 (executable)
@@ -37,6 +37,10 @@ CDROM_ROOT_DIR="${IMAGE_DIR}/cdrom"
 TGT_DIR="${BASE_DIR}/target"
 GRML2USB="${BASE_DIR}/grml2usb/grml2usb"
 
+FB_REPO_URI="https://repo.uhu-banane.de"
+FB_REPO_GPG_KEY_BASE="repo.uhu-banane.de.gpg-key2.pub"
+URI_FB_REPO_GPG_KEY="${FB_REPO_URI}/public/${FB_REPO_GPG_KEY_BASE}"
+
 SRC_ISO_IMAGE=
 SRC_IMAGE_DEV=
 SRC_IMAGE_MOUNTPOINT=
@@ -376,7 +380,7 @@ unpack_orig() {
 #------------------------------------------------------------------------------
 mangle_resolv_conf() {
     empty_line
-    info "Erstelle neue ${TGT_DIR}/etc/resolv.conf ..."
+    info "Erstelle neue ${TGT_DIR}${GREEN}/etc/resolv.conf${NORMAL} ..."
     if [[ -e "${TGT_DIR}/etc/resolv.conf" || -L "${TGT_DIR}/etc/resolv.conf" ]] ; then
         MV "${TGT_DIR}/etc/resolv.conf" "${TGT_DIR}/etc/resolv.conf.bak"
     fi
@@ -387,13 +391,146 @@ mangle_resolv_conf() {
 #------------------------------------------------------------------------------
 unmangle_resolv_conf() {
     empty_line
-    info "Stelle ursprüngliche ${TGT_DIR}/etc/resolv.conf wieder her ..."
+    info "Stelle ursprüngliche ${TGT_DIR}${GREEN}/etc/resolv.conf${NORMAL} wieder her ..."
     RM "${TGT_DIR}/etc/resolv.conf"
     if [[ -f "${TGT_DIR}/etc/resolv.conf.bak" || -L "${TGT_DIR}/etc/resolv.conf.bak" ]] ; then
         MV "${TGT_DIR}/etc/resolv.conf.bak" "${TGT_DIR}/etc/resolv.conf"
     fi
 }
 
+#------------------------------------------------------------------------------
+mounting_dirs() {
+
+    empty_line
+
+    info "Mounting ${TGT_DIR}${GREEN}/proc${NORMAL} ..."
+    mount -t proc proc "${TGT_DIR}/proc"
+
+    info "Mounting ${TGT_DIR}${GREEN}/sys${NORMAL} ..."
+    mount -t sysfs sysfs "${TGT_DIR}/sys"
+
+    info "Mounting ${TGT_DIR}${GREEN}/dev${NORMAL} ..."
+    mount -o bind /dev ${TGT_DIR}/dev
+
+    info "Mounting ${TGT_DIR}${GREEN}/dev/shm${NORMAL} ..."
+    mount -t tmpfs -o size=10% tmpfs ${TGT_DIR}/dev/shm
+
+    info "Mounting ${TGT_DIR}${GREEN}/run${NORMAL} ..."
+    mount -t tmpfs -o size=5% tmpfs ${TGT_DIR}/run
+
+    if [[ ! -d ${TGT_DIR}/run/lock ]] ; then
+        debug "Creating ${TGT_DIR}/run/lock ..."
+        MKDIR "${TGT_DIR}/run/lock"
+    fi
+
+    info "Mounting ${TGT_DIR}${GREEN}/run/lock${NORMAL} ..."
+    mount -t tmpfs -o size=3% tmpfs ${TGT_DIR}/run/lock
+
+    if [[ ! -d "${TGT_DIR}/run/lock" ]] ; then
+        info "Creating ${TGT_DIR}${GREEN}/run/lock${NORMAL} ..."
+        MKDIR "${TGT_DIR}/run/lock"
+    fi
+
+    MKDIR -p "${TGT_DIR}/tmp/.private/root"
+    CHMOD 0711 "${TGT_DIR}/tmp/.private"
+    CHMOD 1700 "${TGT_DIR}/tmp/.private/root"
+
+}
+
+#------------------------------------------------------------------------------
+add_fb_repo() {
+
+    empty_line
+    info "Füge Frank Brehms Debian Repository dazu."
+
+    local apt_dir="/etc/apt"
+    local apt_src_list_dir="${apt_dir}/sources.list.d"
+    if [[ ! -d "${TGT_DIR}${apt_src_list_dir}" ]] ; then
+        debug "Erstelle '${TGT_DIR}${apt_src_list_dir}' ..."
+        MKDIR -p "${TGT_DIR}${apt_src_list_dir}"
+    fi
+    local key_file="${apt_dir}/${FB_REPO_GPG_KEY_BASE}"
+    local key_file_real="${TGT_DIR}${key_file}"
+
+    debug "Hole '${URI_FB_REPO_GPG_KEY}' -> '${key_file}' ..."
+    local cmd="wget"
+    if [[ "${VERBOSE}" != "y" ]] ; then
+        cmd="${cmd} --no-verbose"
+    fi
+    cmd="${cmd} -O \"${key_file_real}\" \"${URI_FB_REPO_GPG_KEY}\""
+    debug "Führe aus: ${cmd}"
+    eval ${cmd}
+
+    local debian_version="wheezy"
+    local debv_file="${TGT_DIR}/etc/debian_version"
+    if [[ -f "${debv_file}" ]] ; then
+        if cat "${debv_file}" | egrep -i "^(stretch|9)" >/dev/null ; then
+            debian_version="stretch"
+        elif cat "${debv_file}" | egrep -i "^(jessie|8)" >/dev/null ; then
+            debian_version="jessie"
+        fi
+    fi
+    info "Supported Debian version: ${GREEN}${debian_version}${NORMAL}"
+
+    info "Erstelle '${TGT_DIR}${GREEN}${apt_src_list_dir}/fbrehm.list${NORMAL}' ..."
+    cat >${TGT_DIR}${apt_src_list_dir}/fbrehm.list <<EOF
+# Frank Brehms Debian Repositories
+#---------------------------------
+
+deb     ${FB_REPO_URI}/Debian/${debian_version} ./
+deb-src ${FB_REPO_URI}/Sources        ./
+
+EOF
+
+    info "Importiere Key '${GREEN}${key_file}${NORMAL}' ..."
+    CHROOT apt-key add "${key_file}"
+
+    empty_line
+    info "Aktualisiere Debian Repositories ..."
+
+    export DEBIAN_FRONTEND="noninteractive"
+    CHROOT apt update --allow-unauthenticated
+
+}
+
+#------------------------------------------------------------------------------
+update_packages() {
+
+    empty_line
+    info "Update aller Pakete."
+    export DEBIAN_FRONTEND="noninteractive"
+    CHROOT apt-get dist-upgrade -y || true
+    empty_line
+    info "Entfernen überflüssiger Pakete."
+    CHROOT apt-get autoremove -y || true
+}
+
+#------------------------------------------------------------------------------
+unmounting_dirs() {
+
+    empty_line
+
+    info "Unmounting ${TGT_DIR}${GREEN}/run/lock${NORMAL} ..."
+    umount ${TGT_DIR}/run/lock || true
+
+    info "Unmounting ${TGT_DIR}${GREEN}/run${NORMAL} ..."
+    umount ${TGT_DIR}/run || true
+
+    info "Unmounting ${TGT_DIR}${GREEN}/dev/shm${NORMAL} ..."
+    umount ${TGT_DIR}/dev/shm || true
+
+    info "Unmounting ${TGT_DIR}${GREEN}/dev${NORMAL} ..."
+    umount ${TGT_DIR}/dev || true
+
+    info "Unmounting ${TGT_DIR}${GREEN}/sys${NORMAL} ..."
+    umount ${TGT_DIR}/sys || true
+
+    info "Unmounting ${TGT_DIR}${GREEN}/proc${NORMAL} ..."
+    umount ${TGT_DIR}/proc || true
+
+}
+
+
 #------------------------------------------------------------------------------
 init_grml2usb() {
 
@@ -523,9 +660,19 @@ main() {
     destroy_src_img_dev
 
     mangle_resolv_conf
+    mounting_dirs
+    trap "unmangle_resolv_conf; unmounting_dirs; exit 9" EXIT INT QUIT TERM
+    sleep 2
 
+    add_fb_repo
+    update_packages
 
+    info "Finishing ..."
+    trap - EXIT INT QUIT TERM
     unmangle_resolv_conf
+    unmounting_dirs
+    sleep 2
+
     init_grml2usb
     create_squashfs
     make_isofs