+.debcommon: &debcommon
+ - apt update
+ - apt install build-essential debhelper git python3-jinja2 -y
+ - make deb
+
+.rpmcommon: &rpmcommon
+ - dnf install make git python3-jinja2 rpmdevtools -y
+ - make rpm
+
check-commits:
stage: test
image: registry.gitlab.com/kernel-firmware/linux-firmware
pre-commit:
stage: test
image: registry.gitlab.com/kernel-firmware/linux-firmware
+ rules:
+ - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
+ - if: $CI_COMMIT_TAG
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
script:
- pre-commit run --all-files
+rpm:
+ stage: test
+ image: fedora
+ rules:
+ - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
+ - if: $CI_COMMIT_TAG
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+ script:
+ - *rpmcommon
+
+deb:
+ stage: test
+ image: debian
+ rules:
+ - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
+ - if: $CI_COMMIT_TAG
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+ script:
+ - *debcommon
+
+deb-release:
+ stage: deploy
+ image: debian
+ rules:
+ - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
+ when: never
+ - if: $RELEASE_TOKEN
+ artifacts:
+ paths:
+ - dist/*
+ script:
+ - *debcommon
+
+rpm-release:
+ stage: deploy
+ image: fedora
+ rules:
+ - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
+ when: never
+ - if: $RELEASE_TOKEN
+ artifacts:
+ paths:
+ - dist/*
+ script:
+ - *rpmcommon
+
release:
stage: deploy
rules:
--- /dev/null
+Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+
+REDISTRIBUTION: Permission is hereby granted, free of any license fees,
+to any person obtaining a copy of this microcode (the "Software"), to
+install, reproduce, copy and distribute copies, in binary form only, of
+the Software and to permit persons to whom the Software is provided to
+do the same, provided that the following conditions are met:
+
+No reverse engineering, decompilation, or disassembly of this Software
+is permitted.
+
+Redistributions must reproduce the above copyright notice, this
+permission notice, and the following disclaimers and notices in the
+Software documentation and/or other materials provided with the
+Software.
+
+DISCLAIMER: THE USE OF THE SOFTWARE IS AT YOUR SOLE RISK. THE SOFTWARE
+IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND AND COPYRIGHT
+HOLDER AND ITS LICENSORS EXPRESSLY DISCLAIM ALL WARRANTIES, EXPRESS AND
+IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+COPYRIGHT HOLDER AND ITS LICENSORS DO NOT WARRANT THAT THE SOFTWARE WILL
+MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF THE SOFTWARE WILL BE
+UNINTERRUPTED OR ERROR-FREE. THE ENTIRE RISK ASSOCIATED WITH THE USE OF
+THE SOFTWARE IS ASSUMED BY YOU. FURTHERMORE, COPYRIGHT HOLDER AND ITS
+LICENSORS DO NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE
+OR THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS,
+ACCURACY, RELIABILITY, CURRENTNESS, OR OTHERWISE.
+
+DISCLAIMER: UNDER NO CIRCUMSTANCES INCLUDING NEGLIGENCE, SHALL COPYRIGHT
+HOLDER AND ITS LICENSORS OR ITS DIRECTORS, OFFICERS, EMPLOYEES OR AGENTS
+("AUTHORIZED REPRESENTATIVES") BE LIABLE FOR ANY INCIDENTAL, INDIRECT,
+SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS
+PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND THE
+LIKE) ARISING OUT OF THE USE, MISUSE OR INABILITY TO USE THE SOFTWARE,
+BREACH OR DEFAULT, INCLUDING THOSE ARISING FROM INFRINGEMENT OR ALLEGED
+INFRINGEMENT OF ANY PATENT, TRADEMARK, COPYRIGHT OR OTHER INTELLECTUAL
+PROPERTY RIGHT EVEN IF COPYRIGHT HOLDER AND ITS AUTHORIZED
+REPRESENTATIVES HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN
+NO EVENT SHALL COPYRIGHT HOLDER OR ITS AUTHORIZED REPRESENTATIVES TOTAL
+LIABILITY FOR ALL DAMAGES, LOSSES, AND CAUSES OF ACTION (WHETHER IN
+CONTRACT, TORT (INCLUDING NEGLIGENCE) OR OTHERWISE) EXCEED THE AMOUNT OF
+US$10.
+
+Notice: The Software is subject to United States export laws and
+regulations. You agree to comply with all domestic and international
+export laws and regulations that apply to the Software, including but
+not limited to the Export Administration Regulations administered by the
+U.S. Department of Commerce and International Traffic in Arm Regulations
+administered by the U.S. Department of State. These laws include
+restrictions on destinations, end users and end use.
--- /dev/null
+---------------------------------------------------------------------
+Amlogic Co., Inc. grants permission to use and redistribute
+aforementioned firmware files for the use with devices containing
+Amlogic chipsets, but not as part of the Linux kernel or in any other
+form which would require these files themselves to be covered by the
+terms of the GNU General Public License or the GNU Lesser General
+Public License.
+
+These firmware files are distributed in the hope that they will be
+useful, but are provided WITHOUT ANY WARRANTY, INCLUDING BUT NOT
+LIMITED TO IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A
+PARTICULAR PURPOSE.
+
+Amlogic Contact: Yang Li <Yang.Li@amlogic.com>
+---------------------------------------------------------------------
echo "Created dist/$${TARGET}"
@rm -rf release
+deb:
+ ./build_packages.py --deb
+
+rpm:
+ ./build_packages.py --rpm
+
install:
install -d $(DESTDIR)$(FIRMWAREDIR)
./copy-firmware.sh $(DESTDIR)$(FIRMWAREDIR)
Version: W16.68.1.p179
File: mrvl/pcieusb8997_combo_v4.bin
-Version: W16.68.1.p195
+Version: W16.68.10.p159.1
File: mrvl/pcie8997_wlan_v4.bin
-Version: W16.68.1.p195
+Version: W16.68.10.p159.1
File: mrvl/usbusb8997_combo_v4.bin
Version: W16.68.1.p183
Version: 74.a5e9588b.0
File: iwlwifi-cc-a0-77.ucode
-Version: 74.2df8986f.0
+Version: 74.bd067429.0
File: iwlwifi-Qu-b0-hr-b0-77.ucode
-Version: 74.2df8986f.0
+Version: 74.bd067429.0
File: iwlwifi-Qu-b0-jf-b0-77.ucode
-Version: 74.2df8986f.0
+Version: 74.bd067429.0
File: iwlwifi-Qu-c0-hr-b0-77.ucode
-Version: 74.2df8986f.0
+Version: 74.bd067429.0
File: iwlwifi-Qu-c0-jf-b0-77.ucode
-Version: 74.2df8986f.0
+Version: 74.bd067429.0
File: iwlwifi-QuZ-a0-hr-b0-77.ucode
-Version: 74.2df8986f.0
+Version: 74.bd06742.0
File: iwlwifi-QuZ-a0-jf-b0-77.ucode
Version: 74.206b0184.0
File: iwlwifi-ty-a0-gf-a0-83.ucode
Version: 80.e8f84e98.0
+File: iwlwifi-ty-a0-gf-a0-84.ucode
+Version: 81.8e5c544c.0
+
File: iwlwifi-so-a0-gf4-a0-77.ucode
Version: 74.f92b5fed.0
File: iwlwifi-so-a0-gf4-a0-83.ucode
Version: 80.e8f84e98.0
+File: iwlwifi-so-a0-gf4-a0-84.ucode
+Version: 81.8e5c544c.0
+
File: iwlwifi-so-a0-gf-a0-77.ucode
Version: 74.f92b5fed.0
File: iwlwifi-so-a0-gf-a0-83.ucode
Version: 80.e8f84e98.0
+File: iwlwifi-so-a0-gf-a0-84.ucode
+Version: 81.8e5c544c.0
+
File: iwlwifi-so-a0-hr-b0-77.ucode
Version: 74.f92b5fed.0
File: iwlwifi-so-a0-hr-b0-81.ucode
Version: 78.31fc9ae6.0
+File: iwlwifi-so-a0-hr-b0-83.ucode
+Version: 80.e8f84e98.0
+
+File: iwlwifi-so-a0-hr-b0-84.ucode
+Version: 81.8e5c544c.0
+
File: iwlwifi-so-a0-jf-b0-77.ucode
Version: 74.f92b5fed.0
File: iwlwifi-ty-a0-gf-a0.pnvm
+File: iwlwifi-gl-c0-fm-c0-83.ucode
+Version: 80.d24e06ed.0
+
+File: iwlwifi-gl-c0-fm-c0.pnvm
+
+File: iwlwifi-ma-b0-gf-a0-83.ucode
+Version: 80.d24e06ed.0
+
+File: iwlwifi-ma-b0-gf-a0.pnvm
+
+File: iwlwifi-ma-b0-gf4-a0-83.ucode
+Version: 80.d24e06ed.0
+
+File: iwlwifi-ma-b0-gf4-a0.pnvm
+
+File: iwlwifi-ma-b0-hr-b0-83.ucode
+Version: 80.d24e06ed.0
+
Licence: Redistributable. See LICENCE.iwlwifi_firmware for details
Also available from http://wireless.kernel.org/en/users/Drivers/iwlwifi#Firmware
--------------------------------------------------------------------------
+--------------------------------------------------------------------------
+
+Driver: amd_pmf - AMD Platform Management Framework TA
+
+File: amdtee/773bd96f-b83f-4d52-b12dc529b13d8543.bin
+Link: amdtee/amd_pmf_v3.bin -> 773bd96f-b83f-4d52-b12dc529b13d8543.bin
+
+Licence: Redistributable. See LICENSE.amd_pmf for details.
+
+--------------------------------------------------------------------------
+
Driver: s2255drv
File: f2255usb.bin
Link: brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt -> brcmfmac43430-sdio.AP6212.txt
Link: brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-ultra.txt -> brcmfmac43430-sdio.AP6212.txt
Link: brcm/brcmfmac43430-sdio.sinovoip,bpi-m3.txt -> brcmfmac43430-sdio.AP6212.txt
+Link: brcm/brcmfmac43430-sdio.sinovoip,bananapi-m64.txt -> brcmfmac43430-sdio.AP6212.txt
Link: brcm/brcmfmac43430-sdio.friendlyarm,nanopi-r1.txt -> brcmfmac43430-sdio.AP6212.txt
Link: brcm/brcmfmac43430-sdio.starfive,visionfive-v1.txt -> brcmfmac43430-sdio.AP6212.txt
Link: brcm/brcmfmac43430-sdio.beagle,beaglev-starlight-jh7100-a1.txt -> brcmfmac43430-sdio.AP6212.txt
File: intel/ibt-12-16.sfi
Version: BT_WindStormPeak_REL1299
File: intel/ibt-17-16-1.sfi
-Version: BT_JeffersonPeak_B0_B0_REL20332
+Version: BT_JeffersonPeak_B0_B0_REL20379
File: intel/ibt-17-16-1.ddc
-Version: BT_JeffersonPeak_B0_B0_REL20332
+Version: BT_JeffersonPeak_B0_B0_REL20379
File: intel/ibt-17-2.sfi
-Version: BT_JeffersonPeak_B0_B0_REL20332
+Version: BT_JeffersonPeak_B0_B0_REL20379
File: intel/ibt-17-2.ddc
-Version: BT_JeffersonPeak_B0_B0_REL20332
+Version: BT_JeffersonPeak_B0_B0_REL20379
File: intel/ibt-17-0-1.sfi
Version: BT_JeffersonPeak_A0_B0_REL0201
File: intel/ibt-17-0-1.ddc
File: intel/ibt-17-1.ddc
Version: BT_JeffersonPeak_A0_B0_REL0201
File: intel/ibt-18-16-1.sfi
-Version: BT_ThunderPeak_B0_B0_REL20182
+Version: BT_ThunderPeak_B0_B0_REL20379
File: intel/ibt-18-16-1.ddc
-Version: BT_ThunderPeak_B0_B0_REL20182
+Version: BT_ThunderPeak_B0_B0_REL20379
File: intel/ibt-18-2.sfi
-Version: BT_ThunderPeak_B0_B0_REL20182
+Version: BT_ThunderPeak_B0_B0_REL20379
File: intel/ibt-18-2.ddc
-Version: BT_ThunderPeak_B0_B0_REL20182
+Version: BT_ThunderPeak_B0_B0_REL20379
File: intel/ibt-18-0-1.sfi
Version: BT_ThunderPeak_A0_B0_REL0201
File: intel/ibt-18-0-1.ddc
File:intel/ibt-19-240-4.ddc
Version: BT_HarrisonPeak_REL53497
File:intel/ibt-0041-0041.sfi
-Version: BT_TyphoonPeak_REL68350
+Version: BT_TyphoonPeak_REL70976
File:intel/ibt-0041-0041.ddc
-Version: BT_TyphoonPeak_REL68350
+Version: BT_TyphoonPeak_REL70976
File:intel/ibt-0040-0041.sfi
-Version: BT_Solar_GfP2_REL68350
+Version: BT_Solar_GfP2_REL70976
File:intel/ibt-0040-0041.ddc
-Version: BT_Solar_GfP2_REL68350
+Version: BT_Solar_GfP2_REL70976
File:intel/ibt-1040-0041.sfi
-Version: BT_SolarF_GfP2_REL68350
+Version: BT_SolarF_GfP2_REL70976
File:intel/ibt-1040-0041.ddc
-Version: BT_SolarF_GfP2_REL68350
+Version: BT_SolarF_GfP2_REL70976
+File:intel/ibt-0080-0041.sfi
+Version: BT_Magnetar_REL88938
+File:intel/ibt-0080-0041.ddc
+Version: BT_Magnetar_REL88938
File:intel/ibt-0040-1020.sfi
Version: BT_Solar_JfP1_REL59564
Version: BT_SolarF_JfP2_REL59564
File:intel/ibt-0040-4150.sfi
-Version: BT_Solar_JnP2_REL68350
+Version: BT_Solar_JnP2_REL70976
File:intel/ibt-0040-4150.ddc
-Version: BT_Solar_JnP2_REL68350
+Version: BT_Solar_JnP2_REL70976
File:intel/ibt-1040-4150.sfi
-Version: BT_SolarF_JnP2_REL68350
+Version: BT_SolarF_JnP2_REL70976
File:intel/ibt-1040-4150.ddc
-Version: BT_SolarF_JnP2_REL68350
+Version: BT_SolarF_JnP2_REL70976
Licence: Redistributable. See LICENCE.ibt_firmware for details
Version: DMC API/APB ver 2 release 10 for Meteorlake
File: i915/mtl_dmc.bin
-Version: DMC API/APB ver 2 release 16 for Meteorlake
+Version: DMC API/APB ver 2 release 17 for Meteorlake
File: i915/mtl_guc_70.bin
Version: GuC API/APB ver 70.8.0 for Meteorlake
File: i915/mtl_huc_gsc.bin
-Version: HuC API/APB ver 8.5.1 for Meteorlake
+Version: HuC API/APB ver 8.5.4 for Meteorlake
File: i915/mtl_gsc_1.bin
Version: GSC API/APB v1.0, release 102.0.0.1655, SVN 1 for Meteorlake
Licence: Redistributable. See LICENCE.linaro for details
Originates from https://git.linaro.org/people/srinivas.kandagatla/audioreach-topology.git
--------------------------------------------------------------------------
+
+Driver: amlogic - Amlogic SoC Firmware
+File: amlogic/bluetooth/w2_bt_fw_uart.bin
+Version: date = 38.01, number = 0xa914
+
+Licence: Redistributable. See LICENSE.amlogic for details
+
+--------------------------------------------------------------------------
\ No newline at end of file
When late loading the patches for Genoa or Bergamo, there may be one spurious
NMI observed per physical core. These NMIs are benign and don't cause any
functional issue but will result in kernel messages being logged.
+
+NOTE: When running 5.19+ kernels on Genoa or Bergamo systems, some microcode
+patches are known to trigger warnings in the PMI handler. The following are
+the required minimum patch levels to address this problem:
+
+ Family=0x19 Model=0x11 Stepping=0x01: Patch=0x0a10113e
+ Family=0x19 Model=0x11 Stepping=0x02: Patch=0x0a10123e
+ Family=0x19 Model=0xa0 Stepping=0x01: Patch=0x0aa00116
+ Family=0x19 Model=0xa0 Stepping=0x02: Patch=0x0aa00212
--- /dev/null
+#!/usr/bin/env python3
+
+import argparse
+import datetime
+import os
+import shutil
+import subprocess
+import sys
+import tempfile
+from jinja2 import Environment, FileSystemLoader
+
+
+def version_str() -> str:
+ try:
+ return subprocess.check_output(["git", "describe"]).strip().decode("utf-8")
+ except subprocess.CalledProcessError:
+ return "0"
+
+
+def prep_tree(package) -> tuple:
+ tmpdir = tempfile.mkdtemp()
+ builddir = os.path.join(tmpdir, package)
+ fwdir = os.path.join(builddir, "updates")
+ targetdir = "dist"
+
+ os.makedirs(targetdir, exist_ok=True)
+ os.makedirs(builddir, exist_ok=False)
+ os.makedirs(fwdir, exist_ok=False)
+
+ subprocess.check_output(["./copy-firmware.sh", fwdir])
+ shutil.copy("WHENCE", os.path.join(builddir, "WHENCE"))
+
+ return (tmpdir, builddir, fwdir, targetdir)
+
+
+def build_deb_package(package, builddir) -> None:
+ env = Environment(loader=FileSystemLoader(os.path.join("contrib", "templates")))
+
+ d = {
+ "package": package,
+ "date": datetime.datetime.now()
+ .astimezone()
+ .strftime("%a, %d %b %Y %H:%M:%S %z"),
+ "version": version_str(),
+ }
+
+ templates = {
+ "debian.control": "control",
+ "debian.changelog": "changelog",
+ "debian.copyright": "copyright",
+ }
+
+ os.makedirs(os.path.join(builddir, "debian"))
+ for f in templates:
+ template = env.get_template(f)
+ with open(os.path.join(builddir, "debian", templates[f]), "w") as w:
+ w.write(template.render(d))
+
+ with open(os.path.join(builddir, "debian", "install"), "w") as w:
+ w.write("updates lib/firmware\n")
+
+ with open(os.path.join(builddir, "debian", "docs"), "w") as w:
+ w.write("WHENCE\n")
+
+ with open(os.path.join(builddir, "debian", "rules"), "w") as w:
+ w.write("#!/usr/bin/make -f\n")
+ w.write("%:\n")
+ w.write("\tdh $@\n")
+ os.chmod(os.path.join(builddir, "debian", "rules"), 0o755)
+
+ os.mkdir(os.path.join(builddir, "debian", "source"))
+ with open(os.path.join(builddir, "debian", "source", "format"), "w") as w:
+ w.write("3.0 (native)\n")
+
+ # build the package
+ os.environ["DEB_BUILD_OPTIONS"] = "nostrip"
+ subprocess.check_output(["dpkg-buildpackage", "-us", "-uc", "-b"], cwd=builddir)
+
+ # result is in tmpdir (not builddir!)
+ return os.path.join(
+ "..",
+ "{package}_{version}_all.deb".format(package=package, version=version_str()),
+ )
+
+
+def build_rpm_package(package, builddir) -> None:
+
+ v = version_str().replace("-", "_")
+ env = Environment(loader=FileSystemLoader(os.path.join("contrib", "templates")))
+
+ d = {
+ "package": package,
+ "version": v,
+ "cwd": builddir,
+ }
+
+ template = env.get_template("rpm.spec")
+ with open(os.path.join(builddir, "package.spec"), "wt") as w:
+ w.write(template.render(d))
+ cmd = ["rpmbuild", "-bb", "--build-in-place", "package.spec"]
+ subprocess.check_call(cmd, cwd=builddir, stderr=subprocess.STDOUT)
+
+ # result is in ~/rpmbuild/RPMS/noarch/
+ for root, dirs, files in os.walk(
+ os.path.join(os.getenv("HOME"), "rpmbuild", "RPMS", "noarch")
+ ):
+ for f in files:
+ if f.startswith(package) and f.endswith(".rpm") and v in f:
+ return os.path.join(root, f)
+ raise FileNotFoundError("RPM package not found")
+
+
+def parse_args():
+ parser = argparse.ArgumentParser("Build upstream packages using Jinja2 templates")
+ parser.add_argument("--deb", help="Build DEB package", action="store_true")
+ parser.add_argument("--rpm", help="Build RPM package", action="store_true")
+ parser.add_argument("--debug", help="Enable debug output", action="store_true")
+ args = parser.parse_args()
+
+ if not (args.rpm or args.deb) or (args.rpm and args.deb):
+ parser.print_help()
+ sys.exit(1)
+
+ return args
+
+
+if __name__ == "__main__":
+ args = parse_args()
+
+ package = "linux-firmware-upstream"
+ tmpdir, builddir, fwdir, targetdir = prep_tree(package)
+
+ try:
+ if args.deb:
+ result = build_deb_package(package, builddir)
+ elif args.rpm:
+ result = build_rpm_package(package, builddir)
+ shutil.copy(os.path.join(builddir, result), targetdir)
+ print(
+ "Built package: {}".format(
+ os.path.join(targetdir, os.path.basename(result))
+ )
+ )
+ finally:
+ if not args.debug:
+ shutil.rmtree(tmpdir)
".codespell.cfg",
".gitlab-ci.yml",
".pre-commit-config.yaml",
+ "build_packages.py",
"check_whence.py",
"configure",
"Makefile",
"copy-firmware.sh",
"WHENCE",
"Dockerfile",
+ "contrib/templates/debian.changelog",
+ "contrib/templates/debian.control",
+ "contrib/templates/debian.copyright",
+ "contrib/templates/rpm.spec",
]
)
known_prefixes = set(name for name in whence_list if name.endswith("/"))
--- /dev/null
+{{package}} ({{version}}) unstable; urgency=medium
+
+ * Automated release
+
+ -- Linux Firmware <linux-firmware@kernel.org> {{ date }}
--- /dev/null
+Source: {{package}}
+Section: unknown
+Priority: optional
+Maintainer: Linux Firmware <linux-firmware@kernel.org>
+Build-Depends: debhelper-compat (= 13)
+Standards-Version: 4.6.0
+Homepage: https://gitlab.com/kernel-firmware/linux-firmware
+Vcs-Browser: https://gitlab.com/kernel-firmware/linux-firmware
+Vcs-Git: https://gitlab.com/kernel-firmware/linux-firmware
+Rules-Requires-Root: no
+
+Package: {{package}}
+Architecture: all
+Depends: ${misc:Depends}
+Description: Upstream snapshot of linux-firmware package
+ Monolithic snapshot of upstream linux-firmware package, intended to
+ to validate upstream firmware without conflicts to the distribution
+ package.
--- /dev/null
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: {{ package }}
+Upstream-Contact: linux-firmware@kernel.org
+Source: https://gitlab.com/kernel-firmware/linux-firmware
+
+Files: *
+Copyright: Various
+License: Various
+ License for all firmware is described in /usr/share/doc/{{ package }}/WHENCE.gz
+
+Files: debian/*
+Copyright: 2023 Linux Firmware <firmware@kernel.org>
+License: GPL-2+
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>
+ .
+ On Debian systems, the complete text of the GNU General
+ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
--- /dev/null
+Name: {{ package }}
+Version: {{ version }}
+Release: 1%{?dist}
+Summary: Linux Firmware (upstream)
+License: Redistributable, no modification permitted
+URL: http://gitlab.com/kernel-firmware/linux-firmware
+Source: /dev/null
+BuildArch: noarch
+
+%description
+Monolithic snapshot of upstream linux-firmware package, intended to
+to validate upstream firmware without conflicts to the distribution
+package.
+
+%prep
+%setup -q
+
+%build
+
+%install
+%define __strip /bin/true
+rm -rf %{buildroot}
+mkdir -p %{buildroot}/lib/firmware
+cp -aR {{ cwd }}/updates %{buildroot}/lib/firmware
+
+%files
+%defattr(-,root,root,-)
+/lib/firmware/updates/*
+
+%post
+dracut -fp --regenerate-all