#2998 [RFE] Support creating Driver Update Disks
Closed: Fixed 2 years ago by tkopecek. Opened 2 years ago by pjgeorg.

The CentOS Kmods SIG is interested in creating Driver Update Disks for CentOS Stream (and EL). See initial request against CentOS Infrastructure here. It seems that the most sensible way to enable this feature is by adding it to koji.

Creating a DriverDisc iso boils down to:

mkdir -p dd/rpms/$basearch
echo -e "Driver Update Disk version 3\c" > ./dd/rhdd3
pushd dd/rpms/$basearch

# Download rpms specified by a list

popd
mkisofs -quiet -lR -V OEMDRV -input-charset utf8 -o ${dd-name}.iso ./dd

We'd probably need some format to define $basearch, the list of rpms to be added, and the output iso name.

Is this something that could be added to koji?


Few ideas here:
1) Isn't it a usecase which should be handled by osbuild?
2) We can do that already via runroot task - nevertheless it is a bit of overkill
3) runroot could be limited in a way pungi_buildinstall plugin does (restricting a lot of things that can be passed to runroot)
4) Yes, we can have separate plugin for this. But if it means that DUDs should be properly tracked in koji, they need to stick to some valid NVR policy (I assume they do). Also when I was last tackling DUDs there were also a lot of non-rpm content (licenses, READMEs, etc.) How these would be tracked?

Metadata Update from @tkopecek:
- Custom field Size adjusted to None

2 years ago

My knowledge about the different tools involved and possible ways to implement this feature is very limited. Hence I can only try to provide some additional info.

Concerning non-rpm content in DUDs:
I have not found any documentation about DUDs that mentions extra files next to the rpms and rhdd3. E.g. see Anaconda documentation here. However I have seen DUDs that include src.rpm files. In our use case it is not required to add any content not mentioned in the documentation. Obviously I can not talk for other use cases.

Concerning DUDs NVR policy:
I do not know about any existing NVR policy for DUDs. But I assume one could easily impose a policy.

@tkopecek trying to see if there is a way to have a plugin/task in koji that would allow us to accomplish that goal.
Wondering how DuD are internally built if they aren't built through koji though.
I can implement a workaround, bypassing koji completely, but using same auth system, but ideally koji would be the central place for this.

AFAIK https://github.com/orosp/ddiskit is still used these days. It could be used directly in koji via runroot or wrapped by plugin for non-admin users. ...or used externally and just fed up with signed koji content.

We've discussed it now and unfortunately we don't have resources to work on this during this year. If anyone has spare time I would be glad to help/review it, but we're declining it on our side for now.

Metadata Update from @tkopecek:
- Issue tagged with: backlog

2 years ago

Metadata Update from @tkopecek:
- Issue set to the milestone: 1.29

2 years ago

Metadata Update from @tkopecek:
- Issue tagged with: testing-ready

2 years ago

Metadata Update from @mfilip:
- Issue tagged with: testing-done

2 years ago

Login to comment on this ticket.

Metadata