[gnome-build-meta/valentindavid/podman: 21/21] Add podman




commit afe5a6a2bd71562fb8a9e1fa218c7b00234ba445
Author: Valentin David <valentin david codethink co uk>
Date:   Thu Jul 23 14:53:29 2020 +0200

    Add podman

 .gitlab-ci.yml                          |  2 +-
 elements/vm/deps-devel.bst              |  1 +
 elements/vm/podman/cni.bst              | 33 ++++++++++++++++++
 elements/vm/podman/conmon.bst           | 34 ++++++++++++++++++
 elements/vm/podman/crun.bst             | 17 +++++++++
 elements/vm/podman/fuse-overlayfs.bst   | 12 +++++++
 elements/vm/podman/fuse3.bst            | 23 +++++++++++++
 elements/vm/podman/go-md2man.bst        | 30 ++++++++++++++++
 elements/vm/podman/go-stage1-386.bst    |  9 +++++
 elements/vm/podman/go-stage1-amd64.bst  |  9 +++++
 elements/vm/podman/go-stage1-arm64.bst  |  9 +++++
 elements/vm/podman/go-stage1-armv6l.bst |  9 +++++
 elements/vm/podman/go-stage1.bst        | 15 ++++++++
 elements/vm/podman/go.bst               | 58 +++++++++++++++++++++++++++++++
 elements/vm/podman/podman.bst           | 61 +++++++++++++++++++++++++++++++++
 elements/vm/podman/slirp4netns.bst      | 15 ++++++++
 files/podman/podman-stdin.patch         | 13 +++++++
 files/podman/registries.conf            | 28 +++++++++++++++
 18 files changed, 377 insertions(+), 1 deletion(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f19c8f50..8c09e6eb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -244,7 +244,7 @@ track:
   interruptible: true
   script:
   - 'sed -i "s/track-tags: False/track-tags: ${BST_TRACK_TAGS}/" project.conf'
-  - ${BST} track --deps all core.bst flatpak-runtimes.bst vm/image.bst boards/pinebook-pro/image.bst 
boards/rock64/image.bst boards/raspberrypi-4/image.bst vm/repo-devel.bst
+  - ${BST} track --deps all core.bst flatpak-runtimes.bst vm/image.bst boards/pinebook-pro/image.bst 
boards/rock64/image.bst boards/raspberrypi-4/image.bst vm/repo-devel.bst vm/podman/go-stage1-arm64.bst 
vm/podman/go-stage1-amd64.bst
   retry: 2
   # only run on branches targeting master
   rules:
diff --git a/elements/vm/deps-devel.bst b/elements/vm/deps-devel.bst
index 1e8ac147..10c01621 100644
--- a/elements/vm/deps-devel.bst
+++ b/elements/vm/deps-devel.bst
@@ -5,3 +5,4 @@ runtime-depends:
 - core/meta-gnome-core-developer-tools.bst
 - vm/common-deps.bst
 - vm/initramfs.bst
+- vm/podman/podman.bst
diff --git a/elements/vm/podman/cni.bst b/elements/vm/podman/cni.bst
new file mode 100644
index 00000000..3f108e7f
--- /dev/null
+++ b/elements/vm/podman/cni.bst
@@ -0,0 +1,33 @@
+kind: manual
+
+sources:
+- kind: tar
+  url: github_com:containernetworking/plugins/archive/v0.8.6.tar.gz
+  directory: src/github.com/containernetworking/plugins
+
+build-depends:
+- freedesktop-sdk.bst:components/pkg-config.bst
+- freedesktop-sdk.bst:components/git.bst
+- vm/podman/go.bst
+- vm/podman/go-md2man.bst
+
+depends:
+- freedesktop-sdk.bst:bootstrap-import.bst
+
+environment:
+  GOPATH: "%{build-root}"
+
+variables:
+  ldflags_defaults: ""
+  optimize-debug: "false"
+
+config:
+  build-commands:
+  - |
+    cd src/github.com/containernetworking/plugins
+    ./build_linux.sh
+
+  install-commands:
+  - |
+    cd src/github.com/containernetworking/plugins
+    install -Dm755 -t "%{install-root}%{libexecdir}/cni" bin/*
diff --git a/elements/vm/podman/conmon.bst b/elements/vm/podman/conmon.bst
new file mode 100644
index 00000000..911a0cc0
--- /dev/null
+++ b/elements/vm/podman/conmon.bst
@@ -0,0 +1,34 @@
+kind: manual
+
+sources:
+- kind: tar
+  url: github_com:containers/conmon/archive/v2.0.19.tar.gz
+  directory: src/github.com/containers/conmon
+
+build-depends:
+- freedesktop-sdk.bst:components/pkg-config.bst
+- freedesktop-sdk.bst:components/git.bst
+- vm/podman/go.bst
+- vm/podman/go-md2man.bst
+
+depends:
+- sdk/glib.bst
+- freedesktop-sdk.bst:bootstrap-import.bst
+
+environment:
+  GOPATH: "%{build-root}"
+
+variables:
+  ldflags_defaults: ""
+  optimize-debug: "false"
+
+config:
+  build-commands:
+  - |
+    cd src/github.com/containers/conmon
+    make
+
+  install-commands:
+  - |
+    cd src/github.com/containers/conmon
+    make DESTDIR="%{install-root}" PREFIX="%{prefix}" install
diff --git a/elements/vm/podman/crun.bst b/elements/vm/podman/crun.bst
new file mode 100644
index 00000000..a921ad02
--- /dev/null
+++ b/elements/vm/podman/crun.bst
@@ -0,0 +1,17 @@
+kind: autotools
+
+sources:
+- kind: tar
+  url: https://github.com/containers/crun/releases/download/0.14.1/crun-0.14.1.tar.xz
+
+build-depends:
+- freedesktop-sdk.bst:public-stacks/buildsystem-autotools.bst
+- freedesktop-sdk.bst:components/systemd.bst
+- freedesktop-sdk.bst:components/python3.bst
+
+depends:
+- core-deps/yajl.bst
+- freedesktop-sdk.bst:components/systemd-libs.bst
+- freedesktop-sdk.bst:components/libcap.bst
+- freedesktop-sdk.bst:components/libseccomp.bst
+- freedesktop-sdk.bst:bootstrap-import.bst
diff --git a/elements/vm/podman/fuse-overlayfs.bst b/elements/vm/podman/fuse-overlayfs.bst
new file mode 100644
index 00000000..a5896dd1
--- /dev/null
+++ b/elements/vm/podman/fuse-overlayfs.bst
@@ -0,0 +1,12 @@
+kind: autotools
+
+sources:
+- kind: tar
+  url: github_com:containers/fuse-overlayfs/archive/v1.1.2.tar.gz
+
+build-depends:
+- freedesktop-sdk.bst:public-stacks/buildsystem-autotools.bst
+
+depends:
+- vm/podman/fuse3.bst
+- freedesktop-sdk.bst:bootstrap-import.bst
diff --git a/elements/vm/podman/fuse3.bst b/elements/vm/podman/fuse3.bst
new file mode 100644
index 00000000..e41c0ca1
--- /dev/null
+++ b/elements/vm/podman/fuse3.bst
@@ -0,0 +1,23 @@
+kind: meson
+
+sources:
+- kind: tar
+  url: github_com:libfuse/libfuse/releases/download/fuse-3.9.2/fuse-3.9.2.tar.xz
+
+build-depends:
+- freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
+- freedesktop-sdk.bst:components/systemd.bst
+
+depends:
+- freedesktop-sdk.bst:components/systemd-libs.bst
+
+variables:
+  meson-local: >-
+    -Duseroot=false
+
+public:
+  initial-script:
+    script: |
+      #!/bin/bash
+      sysroot="${1}"
+      chmod 4755 "${sysroot}%{bindir}/fusermount3"
diff --git a/elements/vm/podman/go-md2man.bst b/elements/vm/podman/go-md2man.bst
new file mode 100644
index 00000000..5eaa3fff
--- /dev/null
+++ b/elements/vm/podman/go-md2man.bst
@@ -0,0 +1,30 @@
+kind: manual
+
+sources:
+- kind: tar
+  url: github_com:cpuguy83/go-md2man/archive/v1.0.10.tar.gz
+  directory: go/src/github.com/cpuguy83/go-md2man
+
+build-depends:
+- vm/podman/go.bst
+
+depends:
+- freedesktop-sdk.bst:bootstrap-import.bst
+
+environment:
+  GOPATH: "%{build-root}/go"
+
+variables:
+  optimize-debug: "false"
+
+config:
+  build-commands:
+  - |
+    go build github.com/cpuguy83/go-md2man
+
+  install-commands:
+  - |
+    go install github.com/cpuguy83/go-md2man
+
+  - |
+    install -Dm755 -t "%{install-root}%{bindir}" "${GOPATH}/bin"/*
diff --git a/elements/vm/podman/go-stage1-386.bst b/elements/vm/podman/go-stage1-386.bst
new file mode 100644
index 00000000..698d7c79
--- /dev/null
+++ b/elements/vm/podman/go-stage1-386.bst
@@ -0,0 +1,9 @@
+kind: import
+
+runtime-depends:
+- freedesktop-sdk.bst:bootstrap-import.bst
+
+sources:
+- kind: tar
+  url: https://dl.google.com/go/go1.14.6.linux-386.tar.gz
+  directory: /usr/local/go
diff --git a/elements/vm/podman/go-stage1-amd64.bst b/elements/vm/podman/go-stage1-amd64.bst
new file mode 100644
index 00000000..7ef3fa2c
--- /dev/null
+++ b/elements/vm/podman/go-stage1-amd64.bst
@@ -0,0 +1,9 @@
+kind: import
+
+runtime-depends:
+- freedesktop-sdk.bst:bootstrap-import.bst
+
+sources:
+- kind: tar
+  url: https://dl.google.com/go/go1.14.6.linux-amd64.tar.gz
+  directory: /usr/local/go
diff --git a/elements/vm/podman/go-stage1-arm64.bst b/elements/vm/podman/go-stage1-arm64.bst
new file mode 100644
index 00000000..348dfe6c
--- /dev/null
+++ b/elements/vm/podman/go-stage1-arm64.bst
@@ -0,0 +1,9 @@
+kind: import
+
+runtime-depends:
+- freedesktop-sdk.bst:bootstrap-import.bst
+
+sources:
+- kind: tar
+  url: https://dl.google.com/go/go1.14.6.linux-arm64.tar.gz
+  directory: /usr/local/go
diff --git a/elements/vm/podman/go-stage1-armv6l.bst b/elements/vm/podman/go-stage1-armv6l.bst
new file mode 100644
index 00000000..5c2ddb74
--- /dev/null
+++ b/elements/vm/podman/go-stage1-armv6l.bst
@@ -0,0 +1,9 @@
+kind: import
+
+runtime-depends:
+- freedesktop-sdk.bst:bootstrap-import.bst
+
+sources:
+- kind: tar
+  url: https://dl.google.com/go/go1.14.6.linux-armv6l.tar.gz
+  directory: /usr/local/go
diff --git a/elements/vm/podman/go-stage1.bst b/elements/vm/podman/go-stage1.bst
new file mode 100644
index 00000000..c4445513
--- /dev/null
+++ b/elements/vm/podman/go-stage1.bst
@@ -0,0 +1,15 @@
+kind: stack
+
+(?):
+- arch == "x86_64":
+    depends:
+    - vm/podman/go-stage1-amd64.bst
+- arch == "i686":
+    depends:
+    - vm/podman/go-stage1-386.bst
+- arch == "aarch64":
+    depends:
+    - vm/podman/go-stage1-arm64.bst
+- arch == "arm":
+    depends:
+    - vm/podman/go-stage1-armv6l.bst
diff --git a/elements/vm/podman/go.bst b/elements/vm/podman/go.bst
new file mode 100644
index 00000000..0491850d
--- /dev/null
+++ b/elements/vm/podman/go.bst
@@ -0,0 +1,58 @@
+kind: manual
+
+sources:
+- kind: tar
+  url: https://golang.org/dl/go1.14.6.src.tar.gz
+
+build-depends:
+- vm/podman/go-stage1.bst
+
+depends:
+- freedesktop-sdk.bst:bootstrap-import.bst
+
+variables:
+  optimize-debug: "false"
+
+environment:
+  GOROOT_BOOTSTRAP: /usr/local/go
+
+config:
+  build-commands:
+  - |
+    cd src
+    bash make.bash
+
+  install-commands:
+  - |
+    install -Dm755 -t "%{install-root}%{libdir}/go" VERSION
+    install -Dm755 -t "%{install-root}%{libdir}/go/bin" bin/*
+
+    mkdir -p "%{install-root}%{libdir}/go/pkg"
+    for i in pkg/include pkg/linux_* pkg/tool; do
+      cp -r "${i}" "%{install-root}%{libdir}/go/pkg/"
+    done
+
+    for i in api misc src test; do
+      cp -r "${i}" "%{install-root}%{libdir}/go/"
+    done
+
+  - |
+    chmod -x "%{install-root}%{libdir}/go/src/runtime/pprof/testdata"/test*
+
+  - |
+    mkdir -p "%{install-root}%{bindir}/"
+    for i in "%{install-root}%{libdir}/go/bin"/*; do
+      ln -sr "${i}" "%{install-root}%{bindir}/"
+    done
+
+  - |
+    find "%{install-root}%{libdir}/go/src" -perm -111 -type f -exec chmod 0644 {} ";"
+
+public:
+  bst:
+    split-rules:
+      devel:
+        (>):
+        - "%{libdir}/go/src/**"
+        - "%{libdir}/go/src"
+
diff --git a/elements/vm/podman/podman.bst b/elements/vm/podman/podman.bst
new file mode 100644
index 00000000..6681fd91
--- /dev/null
+++ b/elements/vm/podman/podman.bst
@@ -0,0 +1,61 @@
+kind: manual
+
+sources:
+- kind: tar
+  url: github_com:containers/podman/archive/v2.0.2.tar.gz
+  directory: src/github.com/containers/podman
+- kind: local
+  path: files/podman/registries.conf
+  directory: registries
+- kind: patch
+  path: files/podman/podman-stdin.patch
+  directory: src/github.com/containers/podman
+
+build-depends:
+- freedesktop-sdk.bst:components/pkg-config.bst
+- vm/podman/go.bst
+- vm/podman/go-md2man.bst
+
+depends:
+- freedesktop-sdk.bst:components/libseccomp.bst
+- freedesktop-sdk.bst:components/systemd-libs.bst
+- freedesktop-sdk.bst:components/gpgme.bst
+- freedesktop-sdk.bst:bootstrap-import.bst
+
+runtime-depends:
+- vm/podman/conmon.bst
+- vm/podman/cni.bst
+- vm/podman/crun.bst
+- vm/podman/slirp4netns.bst
+- vm/podman/fuse-overlayfs.bst
+- core-deps/iptables.bst
+
+environment:
+  GOPATH: "%{build-root}"
+
+variables:
+  ldflags_defaults: ""
+  optimize-debug: "false"
+
+config:
+  build-commands:
+  - |
+    cd src/github.com/containers/podman
+    make
+
+  install-commands:
+  - |
+    cd src/github.com/containers/podman
+    make DESTDIR="%{install-root}" PREFIX="%{prefix}" install
+
+  - |
+    install -Dm644 registries/registries.conf "%{install-root}%{sysconfdir}/containers/registries.conf"
+
+  - |
+    cat <<EOF >policy.json
+    {
+      "default": [{"type": "insecureAcceptAnything"}],
+      "transports": {}
+    }
+    EOF
+    install -Dm644 policy.json "%{install-root}%{sysconfdir}/containers/policy.json"
diff --git a/elements/vm/podman/slirp4netns.bst b/elements/vm/podman/slirp4netns.bst
new file mode 100644
index 00000000..7bcb5675
--- /dev/null
+++ b/elements/vm/podman/slirp4netns.bst
@@ -0,0 +1,15 @@
+kind: autotools
+
+sources:
+- kind: tar
+  url: github_com:rootless-containers/slirp4netns/archive/v1.1.4.tar.gz
+
+build-depends:
+- freedesktop-sdk.bst:public-stacks/buildsystem-autotools.bst
+
+depends:
+- sdk/glib.bst
+- core-deps/libslirp.bst
+- freedesktop-sdk.bst:components/libcap.bst
+- freedesktop-sdk.bst:components/libseccomp.bst
+- freedesktop-sdk.bst:bootstrap-import.bst
diff --git a/files/podman/podman-stdin.patch b/files/podman/podman-stdin.patch
new file mode 100644
index 00000000..a691b130
--- /dev/null
+++ b/files/podman/podman-stdin.patch
@@ -0,0 +1,13 @@
+diff -ur libpod.old/Makefile libpod/Makefile
+--- libpod.old/Makefile        2020-07-23 14:50:35.261130010 +0200
++++ libpod/Makefile    2020-07-23 14:51:58.882693339 +0200
+@@ -414,7 +414,8 @@
+ MANPAGES_DEST ?= $(subst markdown,man, $(subst source,build,$(MANPAGES)))
+ 
+ $(MANPAGES): %: %.md .install.md2man docdir
+-      @sed -e 's/\((podman.*\.md)\)//' -e 's/\[\(podman.*\)\]/\1/' $<  | $(GOMD2MAN) -in /dev/stdin -out 
$(subst source/markdown,build/man,$@)
++      @sed -e 's/\((podman.*\.md)\)//' -e 's/\[\(podman.*\)\]/\1/' $< >$<.tmp
++      @$(GOMD2MAN) -in $<.tmp -out $(subst source/markdown,build/man,$@)
+ 
+ .PHONY: docs
+ docdir:
diff --git a/files/podman/registries.conf b/files/podman/registries.conf
new file mode 100644
index 00000000..2ded4237
--- /dev/null
+++ b/files/podman/registries.conf
@@ -0,0 +1,28 @@
+# This file was taken from
+# https://raw.githubusercontent.com/projectatomic/registries/master/registries.conf
+
+# This is a system-wide configuration file used to
+# keep track of registries for various container backends.
+# It adheres to TOML format and does not support recursive
+# lists of registries.
+
+# The default location for this configuration file is /etc/containers/registries.conf.
+
+# The only valid categories are: 'registries.search', 'registries.insecure', 
+# and 'registries.block'.
+
+[registries.search]
+registries = ['docker.io']
+
+# If you need to access insecure registries, add the registry's fully-qualified name.
+# An insecure registry is one that does not have a valid SSL certificate or only does HTTP.
+[registries.insecure]
+registries = []
+
+
+# If you need to block pull access from a registry, uncomment the section below
+# and add the registries fully-qualified name.
+#
+# Docker only
+[registries.block]
+registries = []


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]