[lxc-devel] [PATCH] plamo: Update template to use wget when download packages

Stéphane Graber stgraber at ubuntu.com
Wed Jan 15 17:19:21 UTC 2014


On Thu, Jan 16, 2014 at 01:55:52AM +0900, KATOH Yasufumi wrote:
> Signed-off-by: TAMUKI Shoichi <tamuki at linet.gr.jp>
> Signed-off-by: KATOH Yasufumi <karma at jazz.email.ne.jp>

Thanks for that!

Acked-by: Stéphane Graber <stgraber at ubuntu.com>

> ---
>  templates/lxc-plamo.in | 94 ++++++++++++++++++++++++--------------------------
>  1 file changed, 45 insertions(+), 49 deletions(-)
> 
> diff --git a/templates/lxc-plamo.in b/templates/lxc-plamo.in
> index a40bec7..9af29e4 100644
> --- a/templates/lxc-plamo.in
> +++ b/templates/lxc-plamo.in
> @@ -28,52 +28,35 @@
>  # ref. https://github.com/Ponce/lxc-slackware/blob/master/lxc-slackware
>  #      lxc-ubuntu script
>  
> -LXC_TEMPLATE_CONFIG="@LXCTEMPLATECONFIG@"
> +set -eu
>  
>  [ -r /etc/default/lxc ] && . /etc/default/lxc
>  
> +LXC_TEMPLATE_CONFIG="@LXCTEMPLATECONFIG@"
> +
> +DOWNLOAD_SCHEME=${DOWNLOAD_SCHEME:-"http"}
>  MIRRORSRV=${MIRRORSRV:-"ftp.ne.jp"}
>  MIRRORPATH=${MIRRORPATH:-"/Linux/distributions/plamolinux"}
>  CATEGORY[0]=${CATEGORY:-"00_base"}
> -PACKAGES[0]=${PACKAGES:-"aaa_base acl at attr bash btrfs_progs bzip2
> -    coreutils cracklib dcron devs dhcp dialog dosfstools dump e2fsprogs
> -    ed eject etc extipl file findutils gawk glibc grep groff grub gzip
> -    hdsetup hibernate_script iproute2 iputils kbd kmod less libcap
> -    libgcc libtirpc lilo linux_pam logrotate lvm2 man
> -    mdadm microcode_ctl mlocate ncurses net_tools netkit_combo
> -    network_configs nvi openbsd_inetd openssh openssl os_prober pciutils
> -    pm_utils procinfo_ng procps_ng readline reiserfsprogs rsyslog sed
> -    shadow sudo sysfsutils syslinux sysvinit tar tcp_wrappers tcsh
> -    timezone traceroute udev unicon_tools util_linux xz zlib"}
> +IGNOREPKG[0]=${IGNOREPKGS:-"grub kernel lilo linux_firmware microcode_ctl"}
>  CATEGORY[1]="01_minimum"
> -PACKAGES[1]="FDclone autofs bc berkeley_db bsd_games cpio cpufreqd
> -    cpufrequtils fortune_mod gc gdbm gpm hddtemp hdparm keyutils libelf
> -    libieee1284 libusb libusb_compat libxml2 libzip linux_howto lm_sensors
> -    lshw lsof lv man_pages man_pages_ja nilfs_utils nkf pcre perl popt
> -    psmisc python recode rpm2targz ruby screen sg3_utils sharutils sqlite
> -    squashfs_lzma sysstat texinfo time tree unzip usbutils utempter which
> -    yaml zip zsh"
> +IGNOREPKG[1]="cpufreqd cpufrequtils gpm"
>  CATEGORY[2]="01_minimum/alsa.txz"
> -PACKAGES[2]="alsa_lib alsa_plugins alsa_utils"
> +IGNOREPKG[2]=""
>  CATEGORY[3]="01_minimum/aspell.txz"
> -PACKAGES[3]="aspell aspell6_en"
> +IGNOREPKG[3]=""
>  CATEGORY[4]="01_minimum/devel.txz"
> -PACKAGES[4]="autoconf automake binutils bison cloog cvs diffutils flex
> -    g++ gcc gdb gettext gmp indent intltool kernel_headers libc libtool
> -    m4 make mpc mpfr onig patch pkg_config ppl pth slang strace yasm"
> +IGNOREPKG[4]=""
>  CATEGORY[5]="01_minimum/gnupg_tls.txz"
> -PACKAGES[5]="gnupg gnutls gpgme libassuan libgcrypt libgpg_error libksba
> -    libtasn1"
> +IGNOREPKG[5]=""
>  CATEGORY[6]="01_minimum/network.txz"
> -PACKAGES[6]="bind bridge_utils curl cyrus_sasl dnsmasq ethtool fetchmail
> -    heimdal hostapd iptables iw libidn libiec61883 libnl3 libpcap
> -    libraw1394 libssh2 mailx metamail ncftp ntrack parprouted postfix
> -    ppp procmail rsync setserial uml_utilities w3m wget wireless_tools
> -    wpa_supplicant"
> +IGNOREPKG[6]=""
>  CATEGORY[7]="01_minimum/nfs.txz"
> -PACKAGES[7]="libevent libnfsidmap nfs_utils rpcbind"
> +IGNOREPKG[7]=""
>  CATEGORY[8]="01_minimum/tcl.txz"
> -PACKAGES[8]="expect itcl tcl tclx"
> +IGNOREPKG[8]=""
> +
> +CATEGORY_PATH=""
>  
>  download_plamo() {
>    # check the mini plamo was not already downloaded
> @@ -83,21 +66,36 @@ download_plamo() {
>    fi
>    # download a mini plamo into a cache
>    echo "Downloading Plamo-$release minimal..."
> -  echo "open $MIRRORSRV" > /tmp/getpkg
> +  cd $ptcache
>    for i in `seq 0 $((${#CATEGORY[@]} - 1))` ; do
> -    for p in ${PACKAGES[$i]} ; do
> -      cat <<- EOF >> /tmp/getpkg
> -	mget $MIRRORPATH/Plamo-$release/$arch/plamo/${CATEGORY[$i]}/$p-*.t?z
> -	EOF
> -    done
> +    CATEGORYPATH=${MIRRORPATH}/Plamo-${release}/${arch}/plamo/${CATEGORY[$i]}
> +    WGETOPT="-nv -r -l1 -e robots=off -nd --no-parent -c --retr-symlinks -A .txz"
> +    EXCLUDE_OPT=""
> +    if [ $DOWNLOAD_SCHEME = "http" ] ; then
> +      if [ -n "${IGNOREPKG[$i]}" ] ; then
> +        for p in ${IGNOREPKG[$i]} ; do
> +          EXCLUDE_OPT="${EXCLUDE_OPT} -R ${p}* "
> +        done
> +      fi
> +      if ! wget ${WGETOPT} ${EXCLUDE_OPT} -X ${CATEGORY_PATH}/old http://${MIRRORSRV}${CATEGORYPATH} ; then
> +        echo "Failed to download the rootfs, aborting."
> +        return 1
> +      fi
> +    elif [ $DOWNLOAD_SCHEME = "ftp" ] ; then
> +      if [ -n "${IGNOREPKG[$i]}" ] ; then
> +        for p in ${IGNOREPKG[$i]} ; do
> +          EXCLUDE_OPT="${EXCLUDE_OPT} -x ${p} "
> +        done
> +      fi
> +      if ! lftp -c "open ${MIRRORSRV} && cd ${CATEGORYPATH} && mirror -i .txz -x old ${EXCLUDE_OPT} -r ." ; then
> +        echo "Failed to download the rootfs, aborting."
> +        return 1
> +      fi
> +    else
> +      echo "Invalid DOWNLOAD_SCHEME value (can set http or ftp). "
> +      return 1
> +    fi
>    done
> -  echo "close" >> /tmp/getpkg
> -  cd $ptcache
> -  if ! lftp -f /tmp/getpkg ; then
> -    echo "Failed to download the rootfs, aborting."
> -    return 1
> -  fi
> -  rm -f /tmp/getpkg
>    mv $ptcache $dlcache
>    echo "Download complete."
>    return 0
> @@ -135,10 +133,8 @@ install_plamo() {
>      echo "Installing packages to $rtcache..."
>      if [ ! -d $rtcache ] ; then
>        mkdir -p $rtcache
> -      for i in `seq 0 $((${#CATEGORY[@]} - 1))` ; do
> -        for p in ${PACKAGES[$i]} ; do
> -          installpkg -root $rtcache -priority ADD $dlcache/$p-*.t?z
> -        done
> +      for p in `ls $dlcache` ; do
> +        installpkg -root $rtcache -priority ADD $p
>        done
>      fi
>      echo "Copy $rtcache to $rootfs..."
> -- 
> 1.8.3.4 (Apple Git-47)
> 
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel

-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20140115/92d50684/attachment.pgp>


More information about the lxc-devel mailing list