#!/bin/bash export LB_VERSION=$VERSION Compat_arguments () { while [ "$#" -gt 0 ] do arg="$1" shift case "$arg" in -r|--repositories) arg="--archives";; --architecture) arg="--architectures";; --packages-lists) arg="--package-lists";; --syslinux-theme) ;; # ignore other unsupported arguments --syslinux-*|--bootstrap-config|-e|--encryption|-l|--language) shift; continue;; --binary-indices|--packages|--symlinks|--sysvinit|--tasks|--virtual-root-size) shift; continue;; esac echo -n "$arg$IFS" done } Compat_config () { [ -e config/chroot ] && [ "$LB_ARCHIVES" ] && cat <> config/chroot # Compat (Live-build 2 -> 3) LB_REPOSITORIES="$LB_ARCHIVES" LB_PACKAGES_LISTS="$LB_PACKAGE_LISTS" eof [ -e config/bootstrap ] && [ "$LB_ARCHITECTURES" ] && cat <> config/bootstrap # Compat (Live-build 2 -> 3) LB_ARCHITECTURE="$LB_ARCHITECTURES" eof } Compat_dir () { dir2="$1" dir3="$2" ext2="$3" ext3="$4" if [ -z "$ext2$ext3" ]; then rm -r "config/$dir3" ln -s "$(basename "$dir2")" "config/$dir3" else mkdir -p config/$dir3 for i in config/$dir2/* do [ ! -e "$i" ] && return target="$(basename "$i" $ext2)$ext3" rm -f config/$dir3/"$target" if [ -d "$i" ]; then ln -s "../../../$i" /config/$dir3/"$target" else cp -l "$i" config/$dir3/"$target" fi done fi touch config/$dir3.compat } Compat_clean() { for i in config/*.compat do [ -e "$i" ] || return target="$(basename "$i" .compat)" [ -e config/$target ] || continue rm -r config/$target rm "$i" done } case "$LB_VERSION" in 3*) case "$(basename "$0")" in lb_config) OIFS="$IFS"; IFS="$(printf \\a)" set -- $(Compat_arguments "$@") IFS="$OIFS" [ -z "$LB_ARCHIVES" ] && LB_ARCHIVES="$LB_REPOSITORIES" LB_REPOSITORIES="$LB_ARCHIVES" [ -z "$LB_PACKAGE_LISTS" ] && LB_PACKAGE_LISTS="$LB_PACKAGES_LISTS" LB_PACKAGES_LISTS="$LB_PACKAGE_LISTS" [ -z "$LB_ARCHITECTURES" ] && LB_ARCHITECTURES="$LB_ARCHITECTURE" LB_ARCHITECTURE="$LB_ARCHITECTURES" trap Compat_config EXIT ;; lb_chroot_archives) mkdir -p config/archives touch config/archives.compat . config/bootstrap for REPO in $LB_ARCHIVES do for i in config/repositories/$REPO config/repositories/$REPO.gpg do [ ! -e "$i" ] && continue case "$i" in *.gpg) target="$(basename "$i" .gpg).key";; *) target="$(basename "$i" .list).list";; esac rm -f config/archives/"$target" cp -l "$i" config/archives/"$target" done done ;; lb_chroot_preseed) Compat_dir chroot_local-preseed preseed .cfg .preseed ;; lb_chroot_includes) Compat_dir chroot_local-includes includes.chroot ;; lb_chroot_hooks) Compat_dir chroot_local-hooks hooks - .chroot ;; lb_binary_hooks) Compat_dir binary_local-hooks hooks - .binary ;; lb_build|lb_clean) trap Compat_clean EXIT ;; esac [ -d config/lists ] && . auto/compat ;; esac