[meta-virtualization] [PATCH] Added recipe for the Singularity container platform.

Bruce Ashfield bruce.ashfield at gmail.com
Thu Aug 24 19:03:12 PDT 2017


On Thu, Aug 24, 2017 at 8:33 AM, Alexandru Tiniuc <
tiniuc.alexandru at gmail.com> wrote:

> Singularity is a container platform built on the principle of mobility
> of compute.  It is designed to be used on HPC clusters and, unlike
> Docker, it does not require root access to mount an image. In addition,
> it can use Docker images out-of-the-box and it can pull them from the
> Docker Hub. For more information, see singularity.lbl.gov
>
> This recipe enables building the Singularity container platform.
> Additionally, it creates a symlink from /usr/bin/python3 to
> /usr/bin/python, as well as a symlink to where python3 expects
> CA certificates to be.
>
> I have tested it on a Raspberry Pi 3: I successfully built and run
> arm32v7 images from Docker Hub. Make sure you have the right image for
> your CPU architecture: it defaults to amd64.
>

Looks reasonable to me.

I do have one additional request though.

Even if it is a really simple concept, can you create a README that shows
the
commands to run a simple sanity/smoke test. That way, we'll have a guide in
the
checked out layer on how to use the infrastructure.

Cheers,

Bruce


>
> Signed-off-by: Alexandru Tiniuc <tiniuc.alexandru at gmail dot com>
> ---
>  recipes-containers/singularity/singularity_git.bb | 35
> +++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
>  create mode 100644 recipes-containers/singularity/singularity_git.bb
>
> diff --git a/recipes-containers/singularity/singularity_git.bb
> b/recipes-containers/singularity/singularity_git.bb
> new file mode 100644
> index 0000000..d0fbeb9
> --- /dev/null
> +++ b/recipes-containers/singularity/singularity_git.bb
> @@ -0,0 +1,35 @@
> +# Skip QA check for library symbolic links (core issue is a packaging
> problem within
> +# Singularity build / config: read up on the dev-so test for more info)
> +INSANE_SKIP_${PN} += "dev-so"
> +
> +RDEPENDS_${PN} += "glibc python3 ca-certificates openssl"
> +# Singularity expects to find python3 under the name python, therefore
> both
> +# cannot be installed at the same time.
> +RCONFLICTS_${PN} = "python"
> +
> +LICENSE = "BSD"
> +LIC_FILES_CHKSUM = "file://COPYRIGHT.md;md5=
> be78c34e483dd7d8439358b1e024b294 \
> +                    file://LICENSE-LBNL.md;md5=
> 45a007b527e1a9507aa7fa869f8d7ede \
> +                    file://LICENSE.md;md5=df4326b473db6424033f1d98a5645e30
> \
> +                    file://debian/copyright;md5=
> ed267cf386d9b75ab1f27f407e935b10"
> +
> +SRC_URI = "git://github.com/singularityware/singularity.
> git;protocol=https"
> +PV = "2.3.1+git${SRCPV}"
> +SRCREV = "e214d4ebf0a1274b1c63b095fd55ae61c7e92947"
> +
> +S = "${WORKDIR}/git"
> +
> +inherit pythonnative autotools-brokensep
> +EXTRA_OECONF = "--prefix=/usr/local"
> +
> +pkg_postinst_${PN}() {
> +    # Singularity requires "python" to resolve to "python3" within the
> commandline.
> +    # This creates a symbolic link from python3 to python. A side-effect
> of this is
> +    # that scripts which expect Python 2 may fail to run correctly.
> +    ln -sr $D${bindir}/python3 $D${bindir}/python
> +
> +    # python3 expects CA certificates to be installed in a different
> place to where
> +    # they are actually installed. These lines link the two locations.
> +    rm -r $D${libdir}/ssl-1.1/certs
> +    ln -sr $D${sysconfdir}/ssl/certs $D${libdir}/ssl-1.1
> +}
> --
> 2.1.4
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization
>



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-virtualization/attachments/20170824/37b2c18c/attachment.html>


More information about the meta-virtualization mailing list