The following pull request was submitted through Github.
It can be accessed and reviewed at: https://github.com/lxc/distrobuilder/pull/141

This e-mail was sent by the LXC bot, direct replies will not reach the author
unless they happen to be subscribed to this list.

=== Description (from pull-request) ===

From b2e34747d22c1570fcd1ffba659c7bdd6a606d90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]>
Date: Wed, 27 Feb 2019 09:47:05 +0100
Subject: [PATCH 1/2] oracle: Fix missing close calls
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <[email protected]>
---
 sources/oraclelinux-http.go | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sources/oraclelinux-http.go b/sources/oraclelinux-http.go
index dedd5a2..1696b96 100644
--- a/sources/oraclelinux-http.go
+++ b/sources/oraclelinux-http.go
@@ -165,16 +165,19 @@ func (s *OracleLinuxHTTP) unpackISO(latestUpdate, 
filePath, rootfsDir string) er
        if err != nil {
                return err
        }
+       rpmFile.Close()
 
        _, err = lxd.DownloadFileHash(http.DefaultClient, "", nil, nil, 
yumFileName, fmt.Sprintf("%s/%s", baseURL, yumPkg), "", nil, yumFile)
        if err != nil {
                return err
        }
+       yumFile.Close()
 
        _, err = lxd.DownloadFileHash(http.DefaultClient, "", nil, nil, 
gpgFileName, "https://oss.oracle.com/ol6/RPM-GPG-KEY-oracle";, "", nil, gpgFile)
        if err != nil {
                return err
        }
+       gpgFile.Close()
 
        // Setup the mounts and chroot into the rootfs
        exitChroot, err := shared.SetupChroot(tempRootDir, 
shared.DefinitionEnv{})

From 89ac169fa4cb2cddb5c9594cdd0b6c32b8b66ac9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]>
Date: Wed, 27 Feb 2019 09:48:53 +0100
Subject: [PATCH 2/2] oracle: Support other architectures
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <[email protected]>
---
 sources/oraclelinux-http.go | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/sources/oraclelinux-http.go b/sources/oraclelinux-http.go
index 1696b96..a4827fd 100644
--- a/sources/oraclelinux-http.go
+++ b/sources/oraclelinux-http.go
@@ -18,6 +18,7 @@ import (
 // OracleLinuxHTTP represents the Oracle Linux downloader.
 type OracleLinuxHTTP struct {
        majorVersion string
+       architecture string
 }
 
 // NewOracleLinuxHTTP creates a new OracleLinuxHTTP instance.
@@ -28,7 +29,8 @@ func NewOracleLinuxHTTP() *OracleLinuxHTTP {
 // Run downloads Oracle Linux.
 func (s *OracleLinuxHTTP) Run(definition shared.Definition, rootfsDir string) 
error {
        s.majorVersion = definition.Image.Release
-       fname := "x86_64-boot.iso"
+       s.architecture = definition.Image.ArchitectureMapped
+       fname := fmt.Sprintf("%s-boot.iso", s.architecture)
        baseURL := fmt.Sprintf("%s/OL%s", definition.Source.URL, 
definition.Image.Release)
 
        latestUpdate, err := s.getLatestUpdate(baseURL)
@@ -36,7 +38,7 @@ func (s *OracleLinuxHTTP) Run(definition shared.Definition, 
rootfsDir string) er
                return err
        }
 
-       err = shared.DownloadHash(fmt.Sprintf("%s/%s/x86_64/%s", baseURL, 
latestUpdate, fname),
+       err = shared.DownloadHash(fmt.Sprintf("%s/%s/%s/%s", baseURL, 
latestUpdate, s.architecture, fname),
                "", nil)
        if err != nil {
                return fmt.Errorf("Error downloading Oracle Linux image: %s", 
err)
@@ -102,7 +104,7 @@ func (s *OracleLinuxHTTP) unpackISO(latestUpdate, filePath, 
rootfsDir string) er
        }
 
        // Determine rpm and yum packages
-       baseURL := 
fmt.Sprintf("https://yum.oracle.com/repo/OracleLinux/OL%s/%s/base/x86_64";, 
s.majorVersion, latestUpdate)
+       baseURL := 
fmt.Sprintf("https://yum.oracle.com/repo/OracleLinux/OL%s/%s/base/%s";, 
s.majorVersion, latestUpdate, s.architecture)
 
        doc, err := htmlquery.LoadURL(fmt.Sprintf("%s/index.html", baseURL))
        if err != nil {
@@ -191,13 +193,14 @@ set -eux
 
 version="%s"
 update="%s"
+arch="%s"
 
 # Create required files
 touch /etc/mtab /etc/fstab
 
 # Fetch and install rpm and yum from the Oracle repo
-_rpm=$(curl -s 
https://yum.oracle.com/repo/OracleLinux/OL${version}/${update}/base/x86_64/index.html
 | grep -Eo '>rpm-[[:digit:]][^ ]+\.rpm<' | tail -1 | sed 's|[<>]||g')
-_yum=$(curl -s 
https://yum.oracle.com/repo/OracleLinux/OL${version}/${update}/base/x86_64/index.html
 | grep -Eo '>yum-[[:digit:]][^ ]+\.rpm<' | tail -1 | sed 's|[<>]||g')
+_rpm=$(curl -s 
https://yum.oracle.com/repo/OracleLinux/OL${version}/${update}/base/${arch}/index.html
 | grep -Eo '>rpm-[[:digit:]][^ ]+\.rpm<' | tail -1 | sed 's|[<>]||g')
+_yum=$(curl -s 
https://yum.oracle.com/repo/OracleLinux/OL${version}/${update}/base/${arch}/index.html
 | grep -Eo '>yum-[[:digit:]][^ ]+\.rpm<' | tail -1 | sed 's|[<>]||g')
 
 rpm -ivh --nodeps "${_rpm}" "${_yum}"
 rpm --import RPM-GPG-KEY-oracle
@@ -207,7 +210,7 @@ mkdir -p /etc/yum.repos.d
 cat <<- EOF > /etc/yum.repos.d/base.repo
 [base]
 name=Oracle Linux
-baseurl=https://yum.oracle.com/repo/OracleLinux/OL${version}/${update}/base/x86_64
+baseurl=https://yum.oracle.com/repo/OracleLinux/OL${version}/${update}/base/${arch}
 enabled=1
 gpgcheck=1
 gpgkey=file:///RPM-GPG-KEY-oracle
@@ -223,12 +226,12 @@ mkdir -p /rootfs/etc/yum.repos.d
 cat <<- EOF > /rootfs/etc/yum.repos.d/base.repo
 [base]
 name=Oracle Linux
-baseurl=https://yum.oracle.com/repo/OracleLinux/OL${version}/${update}/base/x86_64
+baseurl=https://yum.oracle.com/repo/OracleLinux/OL${version}/${update}/base/${arch}
 enabled=1
 gpgcheck=1
 gpgkey=file:///RPM-GPG-KEY-oracle
 EOF
-`, s.majorVersion, latestUpdate))
+`, s.majorVersion, latestUpdate, s.architecture))
        if err != nil {
                exitChroot()
                return err
_______________________________________________
lxc-devel mailing list
[email protected]
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to