Takashi Iwai
6d5f1a9f23
- Move documents and license texts into the proper section - Remove spurious non-firmware files - Restructure the packaging for reducing the storage footprint (bsc#1143959): the firmware files are split into several subpackages, so that user doesn't need to install unnecessary files. Each package has supplements entries that are generated from the static list (that was created from the current and old TW kernel binaries). There is a catch-all package, kernel-firmware-all, and this provides/obsoletes the former kernel-firmware package. And each firmware file is compressed in XZ format for the new kernel (5.3 or later). For the systems with older kernels, we still provide the old'n'good kernel-firmware.rpm, containing everything in the raw format, too. This kernel-firmware.rpm will be obsoleted once when kernel-firmware-all above is installed. The build of both flavors are done in the multibuild. Without the flavor, the raw kernel-firmware.rpm and ucode-amd.rpm are built, while the new kernel firmware packages are built in "compressed" flavor (-M compressed). OBS-URL: https://build.opensuse.org/request/show/723804 OBS-URL: https://build.opensuse.org/package/show/Kernel:HEAD/kernel-firmware?expand=0&rev=266
122 lines
3.6 KiB
Plaintext
122 lines
3.6 KiB
Plaintext
FILES
|
|
=====
|
|
|
|
topicdefs:
|
|
Definitions of each flavor (topic) and description;
|
|
the description is filled into spec file
|
|
|
|
topicprovs:
|
|
Additional Provides and Obsoletes of each topic
|
|
|
|
topics.list:
|
|
Mapping between WHENCE entries and topics.
|
|
Each line consists of two or more items. The first column is
|
|
the first word of the WHENCE "Driver:" entry line to match.
|
|
The second column is the topic/flavor, and the rest columns
|
|
are the module names. If no module name is provided, the same
|
|
word as the first column is used as the module name.
|
|
|
|
The validity with the latest kernel binary packages can be
|
|
checked with check-topic.py script below.
|
|
|
|
licenses.list:
|
|
List of license files for each WHENCE entry.
|
|
|
|
aliases.list:
|
|
List of module aliases for each module.
|
|
This is updated by update-alises.py script below.
|
|
|
|
extrawhence:
|
|
Additional WHENCE entries for the own firmware files.
|
|
|
|
kernel-firmware.spec.in:
|
|
The spec file template. Edit this and generate
|
|
kernel-firmware.spec dynamically via makespec.sh script.
|
|
|
|
makespec.sh:
|
|
A script to combine the spec template and other info into the
|
|
final kernel-firmware.spec.
|
|
|
|
check-topic.py:
|
|
A program to check the validity of topics.list. Pass the
|
|
latest WHENCE file and the kernel RPM files to verify.
|
|
|
|
update-aliases.py:
|
|
A program to update aliases.list from the latest kernel RPM
|
|
files. Pass kernel RPM files as arguments.
|
|
|
|
copy-firmware.sh:
|
|
A helper script to copy the all listed files in WHENCE to the
|
|
destination directory. Used for raw catch-all installation.
|
|
|
|
install-split.sh:
|
|
A helper script to copy the files based on WHENCE like the
|
|
above, but also to create a file list for each topic in
|
|
files-$TOPIC file. The installed files are compressed with
|
|
xz, as well as symlinks.
|
|
|
|
list-license.sh:
|
|
A helper script to add file list entries for the corresponding
|
|
license files for each topic. It parses licenses.list.
|
|
|
|
get_supplements.sh:
|
|
A helper script to create Supplements entries for each topic
|
|
from aliases.list above.
|
|
|
|
|
|
MAINTENANCE WORKS
|
|
=================
|
|
|
|
Upon the update of linux-firmware.git
|
|
-------------------------------------
|
|
|
|
update the kernel-firmware tarball as usual:
|
|
|
|
% cd linux-firmware
|
|
% git archive --format=tar --prefix=kernel-firmware-$version/ -v master ./ \
|
|
| xz -9 -M 4G --check=crc32 -T 4 > /tmp/kernel-firmware-$version.tar.xz
|
|
|
|
Run check-topic.py to verify whether new entries are added:
|
|
|
|
% python3 ./check-topic.py /somewhere/WHENCE /rpms/kernel-default-*.rpm
|
|
|
|
Update topics.list accordingly if new entry was added or updated in
|
|
WHENCE:
|
|
|
|
If new modules are added, update aliases.list as well:
|
|
|
|
% python3 ./update-aliases.py /rpms/kernel-default-*.rpm
|
|
|
|
After the update of these files, recreate kernel-firmware.spec by
|
|
makespec.sh script:
|
|
|
|
% sh ./makespec.sh 20190712 < kernel-firmware.spec.in > kernel-firmware.spec
|
|
|
|
where the argument is the version of the kernel firmware package.
|
|
|
|
And, don't forget to update kernel-firmware.changes accordingly.
|
|
|
|
|
|
Upon the update of kernel binary rpms
|
|
-------------------------------------
|
|
|
|
Again, run check-topic.py and update-aliases.py for the new kernel RPM
|
|
files, and rebuild kernel-firmware.spec.
|
|
|
|
|
|
Adding own firmware binaries
|
|
----------------------------
|
|
|
|
The new packaging relies purely on WHENCE file for counting the
|
|
installed files. You have to either patch WHENCE file or put your own
|
|
stuff into extrawhence file, at least with "Driver:" and "File"
|
|
entries. The extrawhence file is concatenated to WHENCE file at
|
|
building a package.
|
|
|
|
|
|
Creating a new kernel-firmware subpackage flavor
|
|
------------------------------------------------
|
|
|
|
Edit topicdefs file and add the new entry, and update topics.list and
|
|
licenses.list accordingly (these have to be updated manually).
|