rework sources setup (deprecated GRML_LIVE_SOURCES, install /etc/apt files recursively)
[grml-live.git] / grml-live
index 04b30bb..eacc570 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -284,6 +284,12 @@ if [ -r "$LOCAL_CONFIG" ] ; then
 else
    LOCAL_CONFIG=''
 fi
+
+if [ -n "${GRML_LIVE_SOURCES:-}" ] ; then
+  eerror "Config variable \$GRML_LIVE_SOURCES is set. This variable has been deprecated."
+  ewarn  "Please set up ${GRML_FAI_CONFIG}/config/files/etc/apt/sources.list.d/* instead."
+  bailout 1
+fi
 # }}}
 
 # command line parsing {{{
@@ -334,7 +340,6 @@ shift $(($OPTIND - 1))  # set ARGV to the first not parsed commandline parameter
 [ -n "$HYBRID_METHOD" ]           || HYBRID_METHOD='manifold'
 [ -n "$NFSROOT_CONF" ]            || NFSROOT_CONF="${GRML_FAI_CONFIG}/make-fai-nfsroot.conf"
 [ -n "$RELEASENAME" ]             || RELEASENAME='grml-live rocks'
-[ -n "$SOURCES_LIST_OUTPUT" ]     || SOURCES_LIST_OUTPUT="${GRML_FAI_CONFIG}/config/files/etc/apt/sources.list/GRML_LIVE_SOURCES_LIST"
 [ -n "$SQUASHFS_EXCLUDES_FILE" ]  || SQUASHFS_EXCLUDES_FILE="${GRML_FAI_CONFIG}/config/grml/squashfs-excludes"
 [ -n "$SUITE" ]                   || SUITE='squeeze'
 [ -n "$TEMPLATE_DIRECTORY" ]      || TEMPLATE_DIRECTORY='/usr/share/grml-live/templates'
@@ -492,23 +497,6 @@ einfo "Logging actions to logfile $LOGFILE"
 # }}}
 
 # on-the-fly configuration {{{
-mkdir -p "$(dirname $SOURCES_LIST_OUTPUT)" # might not be present in -D config space
-
-cat > "$SOURCES_LIST_OUTPUT" << EOF
-# NOTE: This file is *NOT* meant for manual customisation! This file is
-# installed temporarily only by grml-live and will be overriden in the
-# installation and configuration process then.
-EOF
-
-if [ -n "$MIRROR_DIRECTORY" ] ; then
-  if ! [ -d "$MIRROR_DIRECTORY/debian" ] ; then
-    log    "Error: $MIRROR_DIRECTORY/debian does not seem to exist. Exiting. [$(date)]"
-    eerror "Error: $MIRROR_DIRECTORY/debian does not seem to exist. Exiting." ; eend 1
-    bailout 1
-  fi
-  echo "$MIRROR_SOURCES" >> "$SOURCES_LIST_OUTPUT"
-fi
-
 if [ -n "$FAI_DEBOOTSTRAP" ] ; then
   sed "s#^FAI_DEBOOTSTRAP=.*#FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\"#" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF"
 fi
@@ -516,50 +504,11 @@ fi
 # does this suck? YES!
 # /usr/share/debootstrap/scripts/unstable does not exist, instead use 'sid':
 case $SUITE in
-   unstable) SUITE='sid' ;;
-   # make sure that we *NEVER* write any broken suite name to sources.list,
-   # otherwise we won't be able to adjust it one next (correct) execution
-   stable)   ;;
-   testing)  ;;
-   etch)     ;;
-   lenny)    ;;
-   squeeze)  ;;
-   wheezy)   ;;
-   sid)      ;;
-   *) echo "Sorry, $SUITE is not a valid Debian suite, exiting.">&2; bailout 1 ;;
+   unstable) SUITE='sid' ; CLASSES="DEBIAN_UNSTABLE,$CLASSES" ;;
+   *) CLASSES="DEBIAN_$(echo $SUITE | tr 'a-z' 'A-Z'),$CLASSES";;
 esac
 export SUITE # make sure it's available in FAI scripts
 
-if [ -n "${GRML_LIVE_SOURCES:-}" ] ; then
-  DIST=" etch\| stable\| lenny\| squeeze\| wheezy\| testing\| sid\| unstable"
-  echo "# generated based on \$GRML_LIVE_SOURCES by grml-live
-$GRML_LIVE_SOURCES" | \
-    sed -e "s/\(^deb .\+\)\([ \t]*\)\($DIST\)\([ \t]*\)\(main \)/\1 \2$SUITE\4\5/;
-            s/\(^deb-src .\+\)\([ \t]*\)\($DIST\)\([ \t]*\)\(main \)/\1 \2$SUITE\4\5/" >> "$SOURCES_LIST_OUTPUT"
-else
-  cat >> "$SOURCES_LIST_OUTPUT" << EOF
-# generated by grml-live
-deb     http://deb.grml.org/            grml-stable  main
-deb-src http://deb.grml.org/            grml-stable  main
-
-deb     http://deb.grml.org/            grml-testing main
-deb-src http://deb.grml.org/            grml-testing main
-
-deb     http://cdn.debian.net/debian $SUITE  main contrib non-free
-deb-src http://cdn.debian.net/debian $SUITE  main contrib non-free
-EOF
-fi
-
-# notice: activate grml-live pool when building against unstable or testing:
-if grep -qwe unstable -qwe sid -qwe testing -qwe wheezy "$SOURCES_LIST_OUTPUT" ; then
-   grep -q 'grml-live.*main' "$SOURCES_LIST_OUTPUT" || \
-   grep grml-stable "$SOURCES_LIST_OUTPUT" | \
-        sed 's/grml-stable/grml-live/' >> "$SOURCES_LIST_OUTPUT"
-else
-   grep -q 'grml-live.*main' "$SOURCES_LIST_OUTPUT" && \
-   sed -i 's/.*grml-live.*main/# removed grml-live repository/' "$SOURCES_LIST_OUTPUT"
-fi
-
 for file in "$LIVE_CONF" "$CONFIG" "$LOCAL_CONFIG" "$NFSROOT_CONF" ; do
     if [ -n "$file" ] ; then
        sed "s|^FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" "$file" | sponge "$file"