[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