Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion data/dependencies/deps_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ import (
)

func TestMinimumOSBuildVersion(t *testing.T) {
assert.Equal(t, "167", dependencies.MinimumOSBuildVersion())
assert.Equal(t, "169", dependencies.MinimumOSBuildVersion())
Comment thread
thozza marked this conversation as resolved.
}
2 changes: 1 addition & 1 deletion data/dependencies/osbuild
Original file line number Diff line number Diff line change
@@ -1 +1 @@
167
169
8 changes: 8 additions & 0 deletions pkg/osbuild/groups_stage.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (

type GroupsStageOptions struct {
Groups map[string]GroupsStageOptionsGroup `json:"groups"`
Force bool `json:"force"`
}

func (GroupsStageOptions) isStageOptions() {}
Expand All @@ -28,6 +29,13 @@ func NewGroupsStageOptions(groups []users.Group) *GroupsStageOptions {

options := GroupsStageOptions{
Groups: map[string]GroupsStageOptionsGroup{},

// --force makes possible to run groupadd with a group name or GID that
// already exists without failing. Useful for letting users define
// groups in their configs without worrying about the group existing in
// the base system or being created from a package, which isn't
// predictable. Enable it unconditionally for all builds
Force: true,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick: After reading the man page, it also When used with -g, and the specified GID already exists, another (unique) GID is chosen (i.e. -g is turned off).. This means that if a user specifies two different groups with the same GID in the BP, one of them will get a different GID and the build will pass. This behavior should be probably called out explicitly, or we should have an option validation to catch it and don't generate such manifest.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right. We can't control for conflicts between the blueprint and the packages/system, but we should make things more predictable by keeping the blueprint sane at least and error on duplicates, even though it would technically work. I think that wouldn't be surprising or unusual behaviour.

That might be more appropriate for validation in the blueprint itself though.

The note I added to the blueprint reference covers the GID behaviour too, though maybe that's not entirely clear either: https://github.com/osbuild/osbuild.github.io/pull/188/changes

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK. Documentation and validation on the BP level sound good to me!

}

for _, group := range groups {
Expand Down
69 changes: 69 additions & 0 deletions pkg/osbuild/groups_stage_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package osbuild
import (
"testing"

"github.com/osbuild/images/internal/common"
"github.com/osbuild/images/pkg/customizations/users"
"github.com/stretchr/testify/assert"
)

Expand All @@ -14,3 +16,70 @@ func TestNewGroupsStage(t *testing.T) {
actualStage := NewGroupsStage(&GroupsStageOptions{})
assert.Equal(t, expectedStage, actualStage)
}

func TestNewGroupsStageOptions(t *testing.T) {
type testCase struct {
groups []users.Group
expOptions *GroupsStageOptions

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't initially parse this as meaning expected options :) I see we've used both expOptions and expectedOptions in various places so it might be nice to just use the long form.

}

testCases := map[string]testCase{
"empty": {
groups: nil,
expOptions: nil,
},
"single": {
groups: []users.Group{
{
Name: "osbuild",
GID: common.ToPtr(42),
},
},
expOptions: &GroupsStageOptions{
Groups: map[string]GroupsStageOptionsGroup{
"osbuild": {
GID: common.ToPtr(42),
},
},
Force: true,
},
},
"multi": {
groups: []users.Group{
{
Name: "osbuild",
GID: common.ToPtr(42),
},
{
Name: "auser",
GID: common.ToPtr(1004),
},
{
Name: "mysql",
GID: common.ToPtr(959),
},
},
expOptions: &GroupsStageOptions{
Groups: map[string]GroupsStageOptionsGroup{
"osbuild": {
GID: common.ToPtr(42),
},
"auser": {
GID: common.ToPtr(1004),
},
"mysql": {
GID: common.ToPtr(959),
},
},
Force: true,
},
},
}

for name, tc := range testCases {
t.Run(name, func(t *testing.T) {
options := NewGroupsStageOptions(tc.groups)
assert.Equal(t, tc.expOptions, options)
})
}
}
4 changes: 4 additions & 0 deletions test/configs/all-customizations.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@
{
"name": "user3",
"gid": 1060
},
{
"name": "wheel",
"gid": 4242
}
],
"timezone": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a3b1d70f429c7e16f6cf8db425a1458c362db229
ca7d35275add9b5d7abd704bc0ea4d0bfcde8ca7
Original file line number Diff line number Diff line change
@@ -1 +1 @@
297c88d403b0239cfb17e56debc54027212a3e35
346531b02bfb94f63cc383f94553b667f1ec94ae
Original file line number Diff line number Diff line change
@@ -1 +1 @@
23bf87835fe88dfe5c2597a8bb55165369a5bc73
f2e998fb25dcca7f9e69396d64cd52a76ff5ee5e
Original file line number Diff line number Diff line change
@@ -1 +1 @@
e4a779173517d55c125599ffdebd88b8dec37d33
1be582d67ea0b435555cec3192c5943188ac11c8
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ef25645251b54d7f8140144c9abcafbbfd14c051
042b1a301cffa2d7f235c8670eb47cf95c7f9bae
Original file line number Diff line number Diff line change
@@ -1 +1 @@
af6077ab15f3d1a982ea51d6af20bea5cf580a97
8f388367050c47d99f9298bfa84ef863540647ea
Original file line number Diff line number Diff line change
@@ -1 +1 @@
bbe8f4572e09298ca848706d1d130477ced083e4
eb47a4edaa54f5a0ae8490a6f25f365c98b62f8f
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3c23e4e9c544ca0c83925667e7f1e2038fb8eb24
bcbdb8a6e21854cbc0158d3ab58c5fc7f605dbed
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2a4d5f4a1c063bbaf2a34e15005638a3d99fdce2
5e472acbe78add8705dcddeba4b76a5e4de1777e
Original file line number Diff line number Diff line change
@@ -1 +1 @@
b510147c2f5e11eb42a1dc535380d129bb4d1e2a
2701d164288449796c41d29624e1c2ed1e992be6
Original file line number Diff line number Diff line change
@@ -1 +1 @@
799aeddf3f378102439750a9acdc2ff0999c7805
3a0ad5330ba17ae1905a0f31c6538bd2df551d39
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5f5286e7fcf7960d320a87a81508965d664208f5
c7f14efd7e3e0d0ae5bb0b4c23c3b34eb712754f
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6cc0184a3a1798aff4b05f382c07e9a942e862a7
aae8de3eaaffb4ff6691d355e6e7700ec208de8b
Original file line number Diff line number Diff line change
@@ -1 +1 @@
d78fd82c3fcb43d1e8d0289bca476e23dc0de84f
0237554d13c4c7fd29e557afd323c1c4c16fded6
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0824578b5b51a53ed1967311625e6c0d2477cb06
e379bb0fbb5d2380334a42ce2e0920763bf2c968
Original file line number Diff line number Diff line change
@@ -1 +1 @@
54bf03ff7bc1e5c1d84ca8e6f4d581b5b9af1a67
619cd8fc92f3584b982de81d4ed98d1d69d75954
Original file line number Diff line number Diff line change
@@ -1 +1 @@
45187c5828d3212b445fe82ca4c23186ccd7154a
1c789a158e642191bb53cebfb91b2e8384c0701e
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f26b6a97f8c1547ab120dfd92fb9b12dfc4e0871
5fd1c975a22d2f4192589efa7d46a8de49d099db
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f9e95b2789ea8362a246d39acf626bc96579d754
e192883eb69f401fc68ed0c65670d9f7b9c3a118
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a2295a115c8a4739c98613bb026cf75a69dba596
c55c90638fb3b02ea544adf0d62095da9e3e36b1
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0ded8c6a69b030b2517d9ef3f136710039fd2f3a
0720ae2822f33762111e6bdc183f87772be2158f
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0bb98710ad3ab7868a6ca2159c09caba8a8ef3f1
65af9c8c8d91f71fde058066496f81c6e003e50a
Original file line number Diff line number Diff line change
@@ -1 +1 @@
d43527ab64746615fb74e491cf4bfdb43f764a0f
7c43b9c27d9becf9515b96455037b5acbe16c5f9
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ee6fde862d80d2f4907c8709e275a951700ad5ba
6f26420c8fee6ef63622327e3804f25ddf3b113a
Original file line number Diff line number Diff line change
@@ -1 +1 @@
186c066e94f11fc95d21f0c3e58318778f0b499a
a6a2c0abb9ba5474cd2c4b279e374fbf27eb3d6f
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ee9b4376648c6ac280359e129c07a30f4b32280d
d662efa45fa8c9305a41988dbad34d177d4a92a3
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a2f2a07ea91054f6bc440a89183dfc37ba251b40
17f312a51f99f981153abfb3a05e01a671f6a751
Original file line number Diff line number Diff line change
@@ -1 +1 @@
fca79cd10d501c03f73456b6c90e425c46c03756
318c3da476adf1774e88fefec4e632d5bb583330
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3f262e1fd17219c2d7a2d8849254f6b3d387c30c
3dfdaaca00ac25986038d0002064519c986dd045
Original file line number Diff line number Diff line change
@@ -1 +1 @@
d8bc219a93dc61fa848c4af368bd5b15e651baa9
64e7dbe584a66c91fa0f35f867f98d51a78a4902
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8f3afd9da31b75b8556eb22afedbed8892ee2c13
ceef315f4e7b38724c5fe10fea5f61324c397bb3
Original file line number Diff line number Diff line change
@@ -1 +1 @@
89902d92dd0307c7a095b879d6b44566a12b79ea
eccd5c2f135388479cd4a856780d862e8348938c
Original file line number Diff line number Diff line change
@@ -1 +1 @@
be079d3901055c8c4bed077a98b5903ba78950eb
1d660151eeb09b4d855da872ca1b2de805890275
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a1e2f3158663a91c8cd85127ad470b6ccd2e24fa
d649035b6599f778c45407bff428d6bff706d077
Original file line number Diff line number Diff line change
@@ -1 +1 @@
9819a4c3297581112f5985782d45f0e31169800a
f38b58ec24dab225e5002b3c1c06c3a5eb3ad76e
Original file line number Diff line number Diff line change
@@ -1 +1 @@
21dabf0590a304d6cd2191c569f45be3ea4d1984
4bac54ea0eb6bf37f19f0e86512569552086b01b
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a3d34e80ac13472a7832862b176e6641d68e49b8
7e771932b187a9544a4f7e85d3176efa4e946c7e
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8f203ac9ccd1efc462f94ce7f9cc8c50966deec2
19f9f2d8593d4158055fb3b69f0d963678c1b4ba
Original file line number Diff line number Diff line change
@@ -1 +1 @@
747e2953d243ae213a421ea3beec6daf26e48bdc
988b83c6d5a13b652c01407ea7f6f681b3382af7
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0504660b626239ab1f1bbd3e7b3d6f0fc6dc08fb
5e486121142ca83d17e1112a332f92af1d4a6e95
Original file line number Diff line number Diff line change
@@ -1 +1 @@
c45e6d62dace671f54e3ad2d9b50bfbbb3b64b46
1b49e1332ed454c220d979fcf6527478d0eac486
Original file line number Diff line number Diff line change
@@ -1 +1 @@
b1864f3a53596b45a31e28010bbf08eeb5c6af72
055bb3ac899ede51810619ad961f68f15c328c61
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0333a06b98803c8a991adbeb8ed3776b5f87dfef
0caa5f3642571dcac576a87ea22dd0ce4395691c
Original file line number Diff line number Diff line change
@@ -1 +1 @@
c161671d6b86da2b1a824e93ef66184a68c5140b
36c7db9a3e1971615c60f32989556451a6e2a2dd
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ef988c4032dfd546114ffbac9d6ed27ca7f865fa
6e6e77ecbc4892091b2c85438afbfe212c819ca4
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0acd221daf41bdf17fe04daaa72863f387d72c6e
90e67485772e2ec743b70b6bfe40c3235395c231
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1fecead584b0f4a9716520f3815e8e14e117122b
1bb19c6229380d3b60a9d8fc9f225ae974bbf1f2
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f8f73179acc10c38bd38ca45fb2d19833e69e8b1
82c81bbabda4ba3c1577a2227ccf7d71b862fbc5
Original file line number Diff line number Diff line change
@@ -1 +1 @@
c58a9f1788ed5b3fc8a4d66d5f7e3f74a5c716c8
cc782a1903d0cf0b7249627d418fa17c42074d44
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a7feb45ac4c5d7059450bf9e270667fa506de98b
52284219a8146d77897ea94a7c370d4e425ae53d
Original file line number Diff line number Diff line change
@@ -1 +1 @@
74badc9c6cfa4f65e804c613ab55133ceb5d236b
6a0e26bb651a0fcdacccb17cde7b363d17a18eae
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ff25e5c06961921df58d2d29226494cd9e94609d
a44ac1da874a8fad1a5e3459bf02f208be5cedaf
Original file line number Diff line number Diff line change
@@ -1 +1 @@
65f0fb142cdb33853c52de1475ac4b3f5601eda6
9c7dfff544520e5926d2034d862cb4cfcd8769ca
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a6f8cfe8e25f7299851843a56826cc5e52e77130
9cf6077546a23cacbbc34302bb46648e6f3e2691
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2c939fcd106de641c353c3f9c15f0a590129bbce
7e027589ad7fc8b699e4579ef8c1ba46eaf6bcb3
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2223cac7f18826f86742aba699cdbbd5b1517be5
6c54c210b0acac85aa88f5b6afd243a3e7182e5f
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a64c1d456ff05777052ff0ab87aeae923ea8b401
bb16e3a258d33370eb7970c41907204cbeb05c0d
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a82c34854f24a00b99aabfc5ff94107c724e09f2
e072dd05689c20fea679add57136066cff92fc29
Original file line number Diff line number Diff line change
@@ -1 +1 @@
33771d3d9d4d768d1228847fa235fa198511b3b8
0ecd3fe58730f3bfb6ca59ca5c7146c5610960a5
Original file line number Diff line number Diff line change
@@ -1 +1 @@
168388edd14a7fd416da13de3f8dce5709221522
9c8261b3e9784fdf4f39cea2d87ff7cb6b58c8ef
Original file line number Diff line number Diff line change
@@ -1 +1 @@
9eddf86fc07a3284b500d197f4af4d6d19768f8a
c6ccc507892f528856ee092f526ed6a05ed6fedf
Original file line number Diff line number Diff line change
@@ -1 +1 @@
9f8e95ec286241160a5642742a02f2ef5b98e8d9
be3cde022ec3416c4b5f157a9fc01d2d0d907c59
Original file line number Diff line number Diff line change
@@ -1 +1 @@
923085bd66200ee3c37346e3b62a5554102adaa5
822ece75419f12de820964e1ac0507880b583ff6
Original file line number Diff line number Diff line change
@@ -1 +1 @@
c707c704d4c3859df8689ef50d1ae5f444f465d1
c7e3d11fa237f1a435ba1aace9eccae69c504799
Original file line number Diff line number Diff line change
@@ -1 +1 @@
e6b877df00c052a8a3e4c89b77b07f7494ba22a9
97d4d23a4d2dda21cd25cc1ec10e1a793a00cee6
Original file line number Diff line number Diff line change
@@ -1 +1 @@
c51272f0f420b1a275fcea3df7270e4bfc7f4993
0f993feb45418bd8b1ed0e8a92534f124e5b9646
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1e1da6fa2c0e757822cbcc717373a4157aeaef03
c0be163359a4ec425d253f2b5baffac3de98c458
Original file line number Diff line number Diff line change
@@ -1 +1 @@
240ffa422ad3cbc95f8485b5bb5c223def0a3974
8b477026ae91c5a4da5d1ec9ec7c3c385d3b43e9
Original file line number Diff line number Diff line change
@@ -1 +1 @@
85548b4dda90d0c565552c10287e7e6abe66afae
da0c044ab210bf9f4488004e7186a2fd1a4699ec
Original file line number Diff line number Diff line change
@@ -1 +1 @@
86df559c31d0f2cf3bef5afd366c472d8f61d8b7
ce2abcde89608d4e4a4e14d0c46e53609ec11ec4
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0653c27626093331aed6243786b096a369893682
fe75cc0bb8b61f0f3c35195715d1add1f58738cd
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4778588f42c2668084a896e147977412197ef2c0
a8cabd0f7c880c526a88aab216f36fd0a401e665
Original file line number Diff line number Diff line change
@@ -1 +1 @@
601e91edfbc4a57933ca43a9f62c6b0a85b9fe83
a633fbbdd60377dd36e4cc3088d496612816b4df
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f65629f471d7ffcc539153f9ad3a79500cd4e499
7e8bcdb4efa3db9adf64d12f145c34beec9de794
Original file line number Diff line number Diff line change
@@ -1 +1 @@
b3e238f586f74c7e5b46a3c10efe8964431ae7fe
63bcf367b617b22efef3cdf69bcb297462d7f2c2
Original file line number Diff line number Diff line change
@@ -1 +1 @@
c243f0eaabbdd261638c4c5c35ee2080124d9482
73b24b6b889593cca9318cef8bda0d152571c690
Original file line number Diff line number Diff line change
@@ -1 +1 @@
b3563afa5e3ccb855906677a1d81affbd37750b4
08d21acf80780b1e13b176d013ba00277ddd20da
Original file line number Diff line number Diff line change
@@ -1 +1 @@
804d9ff3a5634208f11e26a12da6f0d8e89452fa
357135f373f8fc8087776755b00be9c61fdf1f7b
Original file line number Diff line number Diff line change
@@ -1 +1 @@
b72526666be373a5c4a522a5b56e6ec90db23c5a
5f7cb26fbb29a2ade1e7434c0bd243eb4ee9d0d9
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5946268aa295b512edeafeda1c2e4455fdc9bb11
686e2a467a04138e4ab74dd19235fcc718d52fda
Original file line number Diff line number Diff line change
@@ -1 +1 @@
10bd75d366bc6a28dfdf71b2ce1c41c65bbb54f8
5a1f025ff0bd6f5f88a83dea476d8a83795f04fb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
b1d201d3f1ace8ae4caf11ff525eb6b779f2a906
749ace6d6bb7bf0ebb424584949afe8fd3db37ac
Original file line number Diff line number Diff line change
@@ -1 +1 @@
e4c7fb3a99ab4688e3091f5606e1b62a68577a4e
9f594eb842615948288b1a62c04b265b26115a1e
Original file line number Diff line number Diff line change
@@ -1 +1 @@
95f6c8fc028a5a707c82cd7c5c9c553d07c7fd8d
3896f5bf1c7cd2a5781af0e1326558c1386ac166
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f8a24f41dcd2d3e640807a38b7218b60290cdfa7
de03644ff20a7b39a3c06cb1781c1a754ec4a406
Original file line number Diff line number Diff line change
@@ -1 +1 @@
84be0c9582dcc9ae756b95254dba6c971df7cb08
84bdcca73f89b2d7947284d808167a5158ac97fc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
665a50f9ddef4919231f3b3a2afcece2fc29b1a1
64bb6864512de7bacd62ff4aa252292fbeaf4fa5
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a6a76f716fbaff783c5a23152fc01cc21cd833a3
9bda3befe6006e09f252b0c7474f7c502f4ca006
Original file line number Diff line number Diff line change
@@ -1 +1 @@
45456d5417e857aee8de5f1a6838517558df364f
b06712b01f6ba04449458b90783fab8f449a14b0
Original file line number Diff line number Diff line change
@@ -1 +1 @@
97a81b101590522e575bed31ae64014676b6c99a
039c01dd1167e6a4230e48479c5e25addceeca08
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3daeec4028f5a6f3eecc03697bdb27a41158aa8d
e87de4d938f4ff09397234d3642deff828078aa5
Loading
Loading