On Mon, Oct 16, 2023 at 2:35 PM Joshua Watt <[email protected]> wrote:
>
>
>
> On Mon, Oct 16, 2023, 12:06 PM Bruce Ashfield <[email protected]> 
> wrote:
>>
>> On Wed, Oct 4, 2023 at 12:02 PM Joshua Watt <[email protected]> wrote:
>> >
>> > The OCI_IMAGE_TAG variable can contain a ":" if the user wants to give
>> > the image a name and a tag, as in:
>> >
>> >     OCI_IMAGE_TAG = "${IMAGE_BASENAME}:latest"
>> >
>> > However, while this is valid for tag name, the ":" is illegal in OCI
>> > image file names so replace it with "_" when naming the symlinks
>>
>> I haven't experimented with this yet, but as I mentioned on IRC
>> some time ago, we really don't want to change the symlinks
>> unless absolutely possible.
>>
>> I'm still trying to understand the first RFC patch before getting into
>> the question of the symlink.
>>
>> But my question on this is ... who / what is declaring it illegal to
>> have a : on the symlink name ? Is one of the OE/bitbake
>> components ? umoci ? podman ? something else ?
>
>
> Skopeo and podman both have this restriction. They allow specifying a tag 
> inside an image with a :tag suffix, so you can't have an OCI file/directory 
> named "foo:latest" because they assume that means a file/directory named 
> "foo" and the tag "latest" inside it.

Fair enough. I'll run some of my own experiments with tags that
are in the format you are using.

But given that this could cause issues with tags, I'm leaning
towards taking the patch as-is.

bruce

>
>>
>> Bruce
>>
>> >
>> > Signed-off-by: Joshua Watt <[email protected]>
>> > ---
>> >  classes/image-oci-umoci.inc | 10 +++++++---
>> >  1 file changed, 7 insertions(+), 3 deletions(-)
>> >
>> > diff --git a/classes/image-oci-umoci.inc b/classes/image-oci-umoci.inc
>> > index 58e4668..adca6c1 100644
>> > --- a/classes/image-oci-umoci.inc
>> > +++ b/classes/image-oci-umoci.inc
>> > @@ -105,6 +105,10 @@ IMAGE_CMD:oci() {
>> >      fi
>> >      umoci config --image $image_name:${OCI_IMAGE_TAG} --author 
>> > ${OCI_IMAGE_AUTHOR_EMAIL}
>> >
>> > +    # OCI_IMAGE_TAG may contain ":", but these are not allowed in OCI file
>> > +    # names so replace them
>> > +    image_tag="${@d.getVar("OCI_IMAGE_TAG").replace(":", "_")}"
>> > +
>> >      # make a tar version of the image direcotry
>> >      #  1) image_name.tar: compatible with oci tar format, blobs and rootfs
>> >      #     are at the top level. Can load directly from something like 
>> > podman
>> > @@ -118,13 +122,13 @@ IMAGE_CMD:oci() {
>> >         tar -cf "$image_name-dir.tar" "$image_name"
>> >
>> >         # create a convenience symlink
>> > -       ln -sf "$image_name.tar" 
>> > "${IMAGE_BASENAME}-${OCI_IMAGE_TAG}-oci.tar"
>> > -       ln -sf "$image_name-dir.tar" 
>> > "${IMAGE_BASENAME}-${OCI_IMAGE_TAG}-oci-dir.tar"
>> > +       ln -sf "$image_name.tar" "${IMAGE_BASENAME}-$image_tag-oci.tar"
>> > +       ln -sf "$image_name-dir.tar" 
>> > "${IMAGE_BASENAME}-$image_tag-oci-dir.tar"
>> >      fi
>> >
>> >      # We could make this optional, since the bundle is directly runnable 
>> > via runc
>> >      rm -rf $image_bundle_name
>> >
>> >      # This is the OCI image directory, which is technically the "image" 
>> > as specified
>> > -    ln -sf $image_name ${IMAGE_BASENAME}-${OCI_IMAGE_TAG}-oci
>> > +    ln -sf $image_name ${IMAGE_BASENAME}-$image_tag-oci
>> >  }
>> > --
>> > 2.34.1
>> >
>> >
>> > 
>> >
>>
>>
>> --
>> - Thou shalt not follow the NULL pointer, for chaos and madness await
>> thee at its end
>> - "Use the force Harry" - Gandalf, Star Trek II



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#8390): 
https://lists.yoctoproject.org/g/meta-virtualization/message/8390
Mute This Topic: https://lists.yoctoproject.org/mt/101758365/21656
Group Owner: [email protected]
Unsubscribe: 
https://lists.yoctoproject.org/g/meta-virtualization/leave/6693005/21656/1014668956/xyzzy
 [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to