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

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 5ad5059cbcfa2a85f4fb66d3e9f99107cc37a26c Mon Sep 17 00:00:00 2001
From: Thomas Hipp <[email protected]>
Date: Wed, 9 May 2018 12:29:44 +0200
Subject: [PATCH 1/2] debootstrap: Add option to ignore image.release

Signed-off-by: Thomas Hipp <[email protected]>
---
 shared/definition.go   | 15 ++++++++-------
 sources/debootstrap.go | 14 +++++++++++++-
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/shared/definition.go b/shared/definition.go
index d3fd8d6..78b33ec 100644
--- a/shared/definition.go
+++ b/shared/definition.go
@@ -42,13 +42,14 @@ type DefinitionImage struct {
 
 // A DefinitionSource specifies the download type and location
 type DefinitionSource struct {
-       Downloader string   `yaml:"downloader"`
-       URL        string   `yaml:"url,omitempty"`
-       Keys       []string `yaml:"keys,omitempty"`
-       Keyserver  string   `yaml:"keyserver,omitempty"`
-       Variant    string   `yaml:"variant,omitempty"`
-       Suite      string   `yaml:"suite,omitempty"`
-       AptSources string   `yaml:"apt_sources,omitempty"`
+       Downloader    string   `yaml:"downloader"`
+       URL           string   `yaml:"url,omitempty"`
+       Keys          []string `yaml:"keys,omitempty"`
+       Keyserver     string   `yaml:"keyserver,omitempty"`
+       Variant       string   `yaml:"variant,omitempty"`
+       Suite         string   `yaml:"suite,omitempty"`
+       AptSources    string   `yaml:"apt_sources,omitempty"`
+       IgnoreRelease bool     `yaml:"ignore_release,omitempty"`
 }
 
 // A DefinitionTargetLXCConfig represents the config part of the metadata.
diff --git a/sources/debootstrap.go b/sources/debootstrap.go
index f7fbb14..a636193 100644
--- a/sources/debootstrap.go
+++ b/sources/debootstrap.go
@@ -41,7 +41,19 @@ func (s *Debootstrap) Run(definition shared.Definition, 
rootfsDir string) error
                args = append(args, "--keyring", keyring)
        }
 
-       args = append(args, definition.Image.Release, rootfsDir)
+       // If source.ignore_release is set, debootstrap will not use 
image.release
+       // but source.suite as the release. This is important for derivatives 
which
+       // don't have own sources, e.g. Linux Mint.
+       if definition.Source.IgnoreRelease {
+               // If source.suite is set, use it when calling debootstrap
+               if definition.Source.Suite != "" {
+                       args = append(args, definition.Source.Suite, rootfsDir)
+               } else {
+                       args = append(args, definition.Image.Release, rootfsDir)
+               }
+       } else {
+               args = append(args, definition.Image.Release, rootfsDir)
+       }
 
        if definition.Source.URL != "" {
                args = append(args, definition.Source.URL)

From 3b512eea398ad2ea3f5adfaebed975a690b1d1a1 Mon Sep 17 00:00:00 2001
From: Thomas Hipp <[email protected]>
Date: Wed, 9 May 2018 14:08:02 +0200
Subject: [PATCH 2/2] doc: Add example for Linux Mint

Signed-off-by: Thomas Hipp <[email protected]>
---
 doc/examples/mint | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 168 insertions(+)
 create mode 100644 doc/examples/mint

diff --git a/doc/examples/mint b/doc/examples/mint
new file mode 100644
index 0000000..d52f6e8
--- /dev/null
+++ b/doc/examples/mint
@@ -0,0 +1,168 @@
+image:
+  distribution: Mint
+  release: sylvia
+  description: Mint {{ image.release }}
+  architecture: amd64
+
+source:
+  downloader: debootstrap
+  url: http://us.archive.ubuntu.com/ubuntu
+  keys:
+    - 0x790BC7277767219C42C86F933B4FE6ACC0B21F32
+  keyserver: keyserver.ubuntu.com
+  suite: xenial
+  ignore_release: true
+
+  apt_sources: |-
+    deb http://packages.linuxmint.com {{ image.release }} main upstream import 
backport
+    deb {{ source.url }} {{ source.suite }} main restricted universe multiverse
+    deb {{ source.url }} {{ source.suite }}-updates main restricted universe 
multiverse
+    deb http://security.ubuntu.com/ubuntu {{ source.suite }}-security main 
restricted universe multiverse
+
+targets:
+  lxc:
+    create-message: |
+      You just created an {{ image.description }} container.
+
+      To enable SSH, run: apt install openssh-server
+      No default root or user password are set by LXC.
+
+    config:
+      - type: all
+        before: 5
+        content: |-
+          lxc.include = LXC_TEMPLATE_CONFIG/ubuntu.common.conf
+
+      - type: user
+        before: 5
+        content: |-
+          lxc.include = LXC_TEMPLATE_CONFIG/ubuntu.userns.conf
+
+      - type: all
+        after: 4
+        content: |-
+          lxc.include = LXC_TEMPLATE_CONFIG/common.conf
+
+      - type: user
+        after: 4
+        content: |-
+          lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
+
+      - type: all
+        content: |-
+          lxc.arch = {{ image.architecture_kernel }}
+
+files:
+ - path: /etc/hostname
+   generator: hostname
+
+ - path: /etc/hosts
+   generator: hosts
+
+ - path: /etc/init/lxc-tty.conf
+   generator: upstart-tty
+   releases:
+    - precise
+    - trusty
+
+files:
+ - path: /etc/hostname
+   generator: hostname
+
+ - path: /etc/hosts
+   generator: hosts
+
+ - path: /etc/resolvconf/resolv.conf.d/original
+   generator: remove
+
+ - path: /etc/resolvconf/resolv.conf.d/tail
+   generator: remove
+
+ - path: /etc/machine-id
+   generator: remove
+
+ - path: /etc/netplan/10-lxc.yaml
+   generator: dump
+   content: |-
+     network:
+       ethernets:
+         eth0: {dhcp4: true}
+     version: 2
+   releases:
+     - artful
+     - bionic
+
+ - path: /etc/network/interfaces
+   generator: dump
+   content: |-
+     # This file describes the network interfaces available on your system
+     # and how to activate them. For more information, see interfaces(5).
+
+     # The loopback network interface
+     auto lo
+     iface lo inet loopback
+
+     auto eth0
+     iface eth0 inet dhcp
+   releases:
+     - trusty
+     - xenial
+
+ - path: /etc/init/lxc-tty.conf
+   generator: upstart-tty
+   releases:
+    - precise
+    - trusty
+
+packages:
+    manager: apt
+
+    # Do not update here. Updates will take place in the post-unpack action.
+    update: false
+    install:
+        - apt-transport-https
+        - language-pack-en
+        - openssh-client
+        - vim
+
+actions:
+    - trigger: post-unpack
+      action: |-
+        #!/bin/sh
+        set -eux
+
+        apt-key adv --keyserver keyserver.ubuntu.com --recv 0xA6616109451BBBF2
+        apt-get update
+        apt-get install -y --allow-unauthenticated linuxmint-keyring
+        apt-get dist-upgrade -y --allow-unauthenticated || true
+        apt-get -f install -y
+        apt-get dist-upgrade -y --allow-unauthenticated
+
+    - trigger: post-update
+      action: |-
+        #!/bin/sh
+        set -eux
+
+        # Create the ubuntu user account
+        getent group sudo >/dev/null 2>&1 || groupadd --system sudo
+        useradd --create-home -s /bin/bash -G sudo -U ubuntu
+
+    - trigger: post-packages
+      action: |-
+        #!/bin/sh
+        set -eux
+
+        # Make sure the locale is built and functional
+        locale-gen en_US.UTF-8
+        update-locale LANG=en_US.UTF-8
+
+        # Cleanup underlying /run
+        mount -o bind / /mnt
+        rm -rf /mnt/run/*
+        umount /mnt
+
+        # Cleanup temporary shadow paths
+        rm /etc/*-
+
+mappings:
+  architecture_map: debian
_______________________________________________
lxc-devel mailing list
[email protected]
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to