Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package apko for openSUSE:Factory checked in 
at 2026-02-02 14:55:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/apko (Old)
 and      /work/SRC/openSUSE:Factory/.apko.new.1995 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "apko"

Mon Feb  2 14:55:57 2026 rev:91 rq:1330319 version:1.1.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/apko/apko.changes        2026-01-30 
18:23:31.036627451 +0100
+++ /work/SRC/openSUSE:Factory/.apko.new.1995/apko.changes      2026-02-02 
14:56:22.965532216 +0100
@@ -1,0 +2,12 @@
+Mon Feb 02 05:46:05 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 1.1.2:
+  * tests: improve passwd/group parsing tests (#2045)
+
+-------------------------------------------------------------------
+Sun Feb 01 19:30:46 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 1.1.1:
+  * Format README (#2044)
+
+-------------------------------------------------------------------

Old:
----
  apko-1.1.0.obscpio

New:
----
  apko-1.1.2.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ apko.spec ++++++
--- /var/tmp/diff_new_pack.8NBWXQ/_old  2026-02-02 14:56:23.961574317 +0100
+++ /var/tmp/diff_new_pack.8NBWXQ/_new  2026-02-02 14:56:23.965574486 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           apko
-Version:        1.1.0
+Version:        1.1.2
 Release:        0
 Summary:        Build OCI images from APK packages directly without Dockerfile
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.8NBWXQ/_old  2026-02-02 14:56:24.001576008 +0100
+++ /var/tmp/diff_new_pack.8NBWXQ/_new  2026-02-02 14:56:24.005576176 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/chainguard-dev/apko</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v1.1.0</param>
+    <param name="revision">v1.1.2</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.8NBWXQ/_old  2026-02-02 14:56:24.025577022 +0100
+++ /var/tmp/diff_new_pack.8NBWXQ/_new  2026-02-02 14:56:24.029577191 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/chainguard-dev/apko</param>
-              <param 
name="changesrevision">2be3903fe194ad46351840f0569b35f5ac965f09</param></service></servicedata>
+              <param 
name="changesrevision">aee88fb0b3633ca59825330fb5f97b13f08736e5</param></service></servicedata>
 (No newline at EOF)
 

++++++ apko-1.1.0.obscpio -> apko-1.1.2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apko-1.1.0/README.md new/apko-1.1.2/README.md
--- old/apko-1.1.0/README.md    2026-01-30 02:49:26.000000000 +0100
+++ new/apko-1.1.2/README.md    2026-01-31 11:59:27.000000000 +0100
@@ -4,13 +4,13 @@
 
 apko has the following key features:
 
- - **Fully reproducible by default.** Run apko twice and you will get exactly 
the same binary.
- - **Fast.** apko aims to build images in ms.
- - **Small.** apko generated images only contain what's needed by the 
application,
-   in the style of 
[distroless](https://github.com/GoogleContainerTools/distroless).
- - **SBOM Support.** apko produces a Software Bill of Materials (SBOM) for 
images, detailing all the packages inside.
- - **Services.** apko supports using the [s6 supervision 
suite](https://skarnet.org/software/s6) to run multiple processes
-   in a container without reaping or signalling issues.
+- **Fully reproducible by default.** Run apko twice and you will get exactly 
the same binary.
+- **Fast.** apko aims to build images in ms.
+- **Small.** apko generated images only contain what's needed by the 
application,
+  in the style of 
[distroless](https://github.com/GoogleContainerTools/distroless).
+- **SBOM Support.** apko produces a Software Bill of Materials (SBOM) for 
images, detailing all the packages inside.
+- **Services.** apko supports using the [s6 supervision 
suite](https://skarnet.org/software/s6) to run multiple processes
+  in a container without reaping or signalling issues.
 
 Please note that apko is a work in progress and details are subject to change!
 
@@ -58,11 +58,13 @@
 environment:
   PATH: /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
 ```
+
 We can build this with apko from any environment with apk tooling:
 
 ```shell
 apko build examples/alpine-base.yaml apko-alpine:test apko-alpine.tar
 ```
+
 ```
 ...
 2022/04/08 13:22:31 apko (aarch64): generating SBOM
@@ -83,12 +85,15 @@
 ```shell
 docker load < apko-alpine.tar
 ```
+
 ```shell
 Loaded image: apko-alpine:test
 ```
+
 ```shell
 docker run -it apko-alpine:test
 ```
+
 ```
 e289dc84c4ad:/# echo boo!
 boo!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apko-1.1.0/pkg/passwd/group_test.go 
new/apko-1.1.2/pkg/passwd/group_test.go
--- old/apko-1.1.0/pkg/passwd/group_test.go     2026-01-30 02:49:26.000000000 
+0100
+++ new/apko-1.1.2/pkg/passwd/group_test.go     2026-01-31 11:59:27.000000000 
+0100
@@ -1,4 +1,4 @@
-// Copyright 2022, 2023 Chainguard, Inc.
+// Copyright 2022-2026 Chainguard, Inc.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
        "bytes"
        "testing"
 
+       "github.com/stretchr/testify/assert"
        "github.com/stretchr/testify/require"
 
        apkfs "chainguard.dev/apko/pkg/apk/fs"
@@ -28,15 +29,40 @@
        gf, err := ReadOrCreateGroupFile(fsys, "group")
        require.NoError(t, err)
 
+       require.NotEmpty(t, gf, "group file in existing testdata file should 
not be empty")
+
+       found_root := false
+       found_daemon := false
+       found_nobody := false
        for _, ge := range gf.Entries {
                if ge.GID == 0 {
-                       require.Equal(t, "root", ge.GroupName, "gid 0 is not 
root")
+                       assert.Equal(t, "root", ge.GroupName, "gid 0 is not 
root")
+                       assert.Equal(t, "x", ge.Password, "gid 0 password entry 
is not set to x")
+                       assert.Equal(t, []string{"root"}, ge.Members, "gid 0 
members should just be the root user")
+                       found_root = true
+               }
+
+               if ge.GID == 2 {
+                       assert.Equal(t, "daemon", ge.GroupName, "gid 2 is not 
daemon")
+                       assert.Equal(t, "x", ge.Password, "gid 2 password entry 
is not set to x")
+                       assert.ElementsMatch(t, []string{"root", "bin", 
"daemon"}, ge.Members, "gid 2 members should contain root, bin, and daemon 
users")
+                       found_daemon = true
                }
 
                if ge.GID == 65534 {
-                       require.Equal(t, "nobody", ge.GroupName, "gid 65534 is 
not nobody")
+                       assert.Equal(t, "nobody", ge.GroupName, "gid 65534 is 
not nobody")
+                       assert.Equal(t, "x", ge.Password, "gid 65534 password 
entry is not set to x")
+                       // XXX if there's no users listed as group members, 
Parse
+                       // returns a list with one empty string as a result, not
+                       // sure if that's intended behavior.
+                       assert.Equal(t, []string{""}, ge.Members, "gid 65534 
members should be empty")
+                       found_nobody = true
                }
        }
+
+       assert.True(t, found_root, "group file should contain the root group")
+       assert.True(t, found_daemon, "group file should contain the daemon 
group")
+       assert.True(t, found_nobody, "group file should contain the nobody 
group")
 }
 
 func TestGroupWriter(t *testing.T) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apko-1.1.0/pkg/passwd/passwd_test.go 
new/apko-1.1.2/pkg/passwd/passwd_test.go
--- old/apko-1.1.0/pkg/passwd/passwd_test.go    2026-01-30 02:49:26.000000000 
+0100
+++ new/apko-1.1.2/pkg/passwd/passwd_test.go    2026-01-31 11:59:27.000000000 
+0100
@@ -1,4 +1,4 @@
-// Copyright 2022, 2023 Chainguard, Inc.
+// Copyright 2022-2026 Chainguard, Inc.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
        "os"
        "testing"
 
+       "github.com/stretchr/testify/assert"
        "github.com/stretchr/testify/require"
 
        apkfs "chainguard.dev/apko/pkg/apk/fs"
@@ -34,16 +35,27 @@
        require.NoError(t, err)
        uf, err := ReadOrCreateUserFile(fsys, "etc/passwd")
        require.NoError(t, err)
+       require.NotEmpty(t, uf, "parsed passwd file should not be empty")
 
+       found_root := false
+       found_nobody := false
        for _, ue := range uf.Entries {
                if ue.UID == 0 {
-                       require.Equal(t, "root", ue.UserName, "uid 0 is not 
root")
+                       assert.Equal(t, "root", ue.UserName, "uid 0 is not 
root")
+                       assert.Equal(t, "/bin/ash", ue.Shell, "uid 0 shell is 
not /bin/ash")
+                       assert.Equal(t, "/root", ue.HomeDir, "uid 0 homedir is 
not /root")
+                       found_root = true
                }
 
                if ue.UID == 65534 {
-                       require.Equal(t, "nobody", ue.UserName, "uid 65534 is 
not nobody")
+                       assert.Equal(t, "nobody", ue.UserName, "uid 65534 is 
not nobody")
+                       assert.Equal(t, "/bin/false", ue.Shell, "uid 65534 
shell is not /bin/false")
+                       assert.Equal(t, "/", ue.HomeDir, "uid 65534 homedir is 
not /")
+                       found_nobody = true
                }
        }
+       assert.True(t, found_root, "passwd file should contain the root user")
+       assert.True(t, found_nobody, "passwd file should contain the nobody 
user")
 }
 
 func TestWriter(t *testing.T) {

++++++ apko.obsinfo ++++++
--- /var/tmp/diff_new_pack.8NBWXQ/_old  2026-02-02 14:56:24.681604751 +0100
+++ /var/tmp/diff_new_pack.8NBWXQ/_new  2026-02-02 14:56:24.685604920 +0100
@@ -1,5 +1,5 @@
 name: apko
-version: 1.1.0
-mtime: 1769737766
-commit: 2be3903fe194ad46351840f0569b35f5ac965f09
+version: 1.1.2
+mtime: 1769857167
+commit: aee88fb0b3633ca59825330fb5f97b13f08736e5
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/apko/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.apko.new.1995/vendor.tar.gz differ: char 135, line 1

Reply via email to