Skip to content

RHEL-104117: Add infrastructure for cab file creation #1400

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
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
7 changes: 7 additions & 0 deletions .hck-ci/triggers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,3 +138,10 @@ viomem:
- README.md
- contributing.md
- status.txt
- win10_arm64.ddf
- win10_x64.ddf
- win10_x86.ddf
- win11_arm64.ddf
- win11_x64.ddf


3 changes: 3 additions & 0 deletions buildAll.bat
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ for %%D in (pciserial fwcfg Q35) do @(
call :bld_inf_drvr %%D
)
echo.
call build_cab.bat
if errorlevel 1 goto :fail
echo.
echo Processing DVL files to create Windows 10 COMPAT ^(WIN10_RS1 ^/ 1607^) version...
for /R %%f in (*.dvl.xml) do @(
call :process_xml %%f
Expand Down
29 changes: 29 additions & 0 deletions build_cab.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
@echo off

rem ================================================================================
rem Build script for all project cabinet (.cab) files
rem
rem This script iterates through a predefined list of .ddf files and uses
rem makecab.exe to generate the corresponding .cab archives.
rem
rem The script will stop if any of the makecab operations fail.
rem ================================================================================

rem A list of all .ddf files to be built
set DDF_FILES=win10_arm64.ddf win10_x64.ddf win10_x86.ddf win11_arm64.ddf win11_x64.ddf

echo.
echo Starting cabinet file build process...
echo.

for %%F in (%DDF_FILES%) do (
echo Generating cabinet from %%F
makecab /f "%%F"
if errorlevel 1 (
echo ERROR: Build failed for %%F. Stopping.
exit /b 1
)
)

echo.
echo All cabinet files built successfully.
110 changes: 110 additions & 0 deletions win10_arm64.ddf
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
;*** win10_arm64.ddf
;
.OPTION EXPLICIT ; Generate errors
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
.Set CompressionType=MSZIP
.Set Cabinet=on
.Set Compress=on
;Specify file name for new cab file
.Set CabinetNameTemplate=win10arm64.cab
.Set DiskDirectoryTemplate=
;Specify files to be included in cab file
; Balloon Driver
.Set DestinationDir=Balloon
.\Balloon\Install\Win10\ARM64\balloon.cat
.\Balloon\Install\Win10\ARM64\balloon.inf
.\Balloon\Install\Win10\ARM64\balloon.pdb
.\Balloon\Install\Win10\ARM64\balloon.sys
; NetKvm driver
.Set DestinationDir=NetKvm
.\NetKvm\Install\Win10\ARM64\netkvm.cat
.\NetKvm\Install\Win10\ARM64\netkvm.inf
.\NetKvm\Install\Win10\ARM64\netkvm.pdb
.\NetKvm\Install\Win10\ARM64\netkvm.sys
.\NetKvm\Install\Win10\ARM64\netkvmp.exe
.\NetKvm\Install\Win10\ARM64\netkvmp.pdb
;pvpanic driver
.Set DestinationDir=pvpanic
.\pvpanic\Install\Win10\ARM64\pvpanic.cat
.\pvpanic\Install\Win10\ARM64\pvpanic.inf
.\pvpanic\Install\Win10\ARM64\pvpanic.pdb
.\pvpanic\Install\Win10\ARM64\pvpanic.sys
.\pvpanic\Install\Win10\ARM64\pvpanic-pci.cat
.\pvpanic\Install\Win10\ARM64\pvpanic-pci.inf
; vioinput driver
.Set DestinationDir=vioinput
.\vioinput\Install\Win10\ARM64\viohidkmdf.pdb
.\vioinput\Install\Win10\ARM64\viohidkmdf.sys
.\vioinput\Install\Win10\ARM64\vioinput.cat
.\vioinput\Install\Win10\ARM64\vioinput.inf
.\vioinput\Install\Win10\ARM64\vioinput.pdb
.\vioinput\Install\Win10\ARM64\vioinput.sys
; viorng driver
.Set DestinationDir=viorng
.\viorng\Install\Win10\ARM64\viorng.cat
.\viorng\Install\Win10\ARM64\viorng.inf
.\viorng\Install\Win10\ARM64\viorng.pdb
.\viorng\Install\Win10\ARM64\viorng.sys
.\viorng\Install\Win10\ARM64\viorngum.dll
.\viorng\Install\Win10\ARM64\viorngum.pdb
; vioscsi driver
.Set DestinationDir=vioscsi
.\vioscsi\Install\Win10\ARM64\vioscsi.cat
.\vioscsi\Install\Win10\ARM64\vioscsi.inf
.\vioscsi\Install\Win10\ARM64\vioscsi.pdb
.\vioscsi\Install\Win10\ARM64\vioscsi.sys
; vioserial driver
.Set DestinationDir=vioserial
.\vioserial\Install\Win10\ARM64\vioser.cat
.\vioserial\Install\Win10\ARM64\vioser.inf
.\vioserial\Install\Win10\ARM64\vioser.pdb
.\vioserial\Install\Win10\ARM64\vioser.sys
; viostor driver
.Set DestinationDir=viostor
.\viostor\Install\Win10\ARM64\viostor.cat
.\viostor\Install\Win10\ARM64\viostor.inf
.\viostor\Install\Win10\ARM64\viostor.pdb
.\viostor\Install\Win10\ARM64\viostor.sys
; viogpudo driver
.Set DestinationDir=viogpudo
.\viogpu\Install\Win10\ARM64\viogpudo.cat
.\viogpu\Install\Win10\ARM64\viogpudo.inf
.\viogpu\Install\Win10\ARM64\viogpudo.pdb
.\viogpu\Install\Win10\ARM64\viogpudo.sys
.\viogpu\Install\Win10\ARM64\vgpusrv.pdb
.\viogpu\Install\Win10\ARM64\vgpusrv.exe
.\viogpu\Install\Win10\ARM64\viogpuap.pdb
.\viogpu\Install\Win10\ARM64\viogpuap.exe
; fwcfg driver
;.Set DestinationDir=fwcfg
;.\fwcfg64\Install\Win10\ARM64\fwcfg.cat
;.\fwcfg64\Install\Win10\ARM64\fwcfg.inf
;.\fwcfg64\Install\Win10\ARM64\fwcfg.pdb
Comment on lines +84 to +87

Choose a reason for hiding this comment

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

medium

This block for the fwcfg driver is commented out. If this driver is not intended for the ARM64 package, this block should be removed entirely to improve clarity and avoid confusion for future maintainers. Leaving commented-out code can reduce readability and lead to questions about its purpose.

;.\fwcfg64\Install\Win10\ARM64\fwcfg.sys
; viomem driver
.Set DestinationDir=viomem
.\viomem\Install\Win10\ARM64\viomem.cat
.\viomem\Install\Win10\ARM64\viomem.inf
.\viomem\Install\Win10\ARM64\viomem.pdb
.\viomem\Install\Win10\ARM64\viomem.sys
; viosock driver
.Set DestinationDir=viosock
.\viosock\Install\Win10\ARM64\viosock-test.exe
.\viosock\Install\Win10\ARM64\viosock-test.pdb
.\viosock\Install\Win10\ARM64\viosock.cat
.\viosock\Install\Win10\ARM64\viosock.inf
.\viosock\Install\Win10\ARM64\viosock.pdb
.\viosock\Install\Win10\ARM64\viosock.sys
.\viosock\Install\Win10\ARM64\viosocklib-test.exe
.\viosock\Install\Win10\ARM64\viosocklib-test.pdb
.\viosock\Install\Win10\ARM64\viosocklib.dll
.\viosock\Install\Win10\ARM64\viosocklib.pdb
.\viosock\Install\Win10\ARM64\viosockwspsvc.exe
.\viosock\Install\Win10\ARM64\viosockwspsvc.pdb
.\viosock\Install\Win10\ARM64\vstbridge.exe
.\viosock\Install\Win10\ARM64\vstbridge.pdb
132 changes: 132 additions & 0 deletions win10_x64.ddf
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
;*** win10_x64.ddf
;
.OPTION EXPLICIT ; Generate errors
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
.Set CompressionType=MSZIP
.Set Cabinet=on
.Set Compress=on
;Specify file name for new cab file
.Set CabinetNameTemplate=win10x64.cab
.Set DiskDirectoryTemplate=
;Specify files to be included in cab file
; Balloon Driver
.Set DestinationDir=Balloon
.\Balloon\Install\Win10\amd64\balloon.cat
.\Balloon\Install\Win10\amd64\balloon.inf
.\Balloon\Install\Win10\amd64\balloon.pdb
.\Balloon\Install\Win10\amd64\balloon.sys
; NetKvm driver
.Set DestinationDir=NetKvm
.\NetKvm\Install\Win10\amd64\netkvm.cat
.\NetKvm\Install\Win10\amd64\netkvm.inf
.\NetKvm\Install\Win10\amd64\netkvm.pdb
.\NetKvm\Install\Win10\amd64\netkvm.sys
.\NetKvm\Install\Win10\amd64\netkvmp.exe
.\NetKvm\Install\Win10\amd64\netkvmp.pdb
; NotifyObject driver
.Set DestinationDir=NotifyObj
.\NetKvm\Install\Win10\amd64\vioprot.cat
.\NetKvm\Install\Win10\amd64\vioprot.inf
;pvpanic driver
.Set DestinationDir=pvpanic
.\pvpanic\Install\Win10\amd64\pvpanic.cat
.\pvpanic\Install\Win10\amd64\pvpanic.inf
.\pvpanic\Install\Win10\amd64\pvpanic.pdb
.\pvpanic\Install\Win10\amd64\pvpanic.sys
.\pvpanic\Install\Win10\amd64\pvpanic-pci.cat
.\pvpanic\Install\Win10\amd64\pvpanic-pci.inf
; viofs driver
.Set DestinationDir=viofs
.\viofs\Install\Win10\amd64\viofs.cat
.\viofs\Install\Win10\amd64\viofs.inf
.\viofs\Install\Win10\amd64\viofs.pdb
.\viofs\Install\Win10\amd64\viofs.sys
.\viofs\Install\Win10\amd64\virtiofs.exe
.\viofs\Install\Win10\amd64\virtiofs.pdb
; vioinput driver
.Set DestinationDir=vioinput
.\vioinput\Install\Win10\amd64\viohidkmdf.pdb
.\vioinput\Install\Win10\amd64\viohidkmdf.sys
.\vioinput\Install\Win10\amd64\vioinput.cat
.\vioinput\Install\Win10\amd64\vioinput.inf
.\vioinput\Install\Win10\amd64\vioinput.pdb
.\vioinput\Install\Win10\amd64\vioinput.sys
; viorng driver
.Set DestinationDir=viorng
.\viorng\Install\Win10\amd64\viorng.cat
.\viorng\Install\Win10\amd64\viorng.inf
.\viorng\Install\Win10\amd64\viorng.pdb
.\viorng\Install\Win10\amd64\viorng.sys
.\viorng\Install\Win10\amd64\viorngum.dll
.\viorng\Install\Win10\amd64\viorngum.pdb
; vioscsi driver
.Set DestinationDir=vioscsi
.\vioscsi\Install\Win10\amd64\vioscsi.cat
.\vioscsi\Install\Win10\amd64\vioscsi.inf
.\vioscsi\Install\Win10\amd64\vioscsi.pdb
.\vioscsi\Install\Win10\amd64\vioscsi.sys
; vioserial driver
.Set DestinationDir=vioserial
.\vioserial\Install\Win10\amd64\vioser.cat
.\vioserial\Install\Win10\amd64\vioser.inf
.\vioserial\Install\Win10\amd64\vioser.pdb
.\vioserial\Install\Win10\amd64\vioser.sys
; viostor driver
.Set DestinationDir=viostor
.\viostor\Install\Win10\amd64\viostor.cat
.\viostor\Install\Win10\amd64\viostor.inf
.\viostor\Install\Win10\amd64\viostor.pdb
.\viostor\Install\Win10\amd64\viostor.sys
; viogpudo driver
.Set DestinationDir=viogpudo
.\viogpu\Install\Win10\amd64\viogpudo.cat
.\viogpu\Install\Win10\amd64\viogpudo.inf
.\viogpu\Install\Win10\amd64\viogpudo.pdb
.\viogpu\Install\Win10\amd64\viogpudo.sys
.\viogpu\Install\Win10\amd64\vgpusrv.pdb
.\viogpu\Install\Win10\amd64\vgpusrv.exe
.\viogpu\Install\Win10\amd64\viogpuap.pdb
.\viogpu\Install\Win10\amd64\viogpuap.exe
; pciserial driver
.Set DestinationDir=pciserial
.\pciserial\Install\qemupciserial.cat
.\pciserial\Install\qemupciserial.inf
; fwcfg driver
.Set DestinationDir=fwcfg
.\fwcfg\Install\qemufwcfg.cat
.\fwcfg\Install\qemufwcfg.inf
; fwcfg64 driver
.Set DestinationDir=fwcfg64
.\fwcfg64\Install\Win10\amd64\fwcfg.cat
.\fwcfg64\Install\Win10\amd64\fwcfg.inf
.\fwcfg64\Install\Win10\amd64\fwcfg.pdb
.\fwcfg64\Install\Win10\amd64\fwcfg.sys
; viomem driver
.Set DestinationDir=viomem
.\viomem\Install\Win10\amd64\viomem.cat
.\viomem\Install\Win10\amd64\viomem.inf
.\viomem\Install\Win10\amd64\viomem.pdb
.\viomem\Install\Win10\amd64\viomem.sys
; viosock driver
.Set DestinationDir=viosock
.\viosock\Install\Win10\amd64\viosock-test.exe
.\viosock\Install\Win10\amd64\viosock-test.pdb
.\viosock\Install\Win10\amd64\viosock.cat
.\viosock\Install\Win10\amd64\viosock.inf
.\viosock\Install\Win10\amd64\viosock.pdb
.\viosock\Install\Win10\amd64\viosock.sys
.\viosock\Install\Win10\amd64\viosocklib-test.exe
.\viosock\Install\Win10\amd64\viosocklib-test.pdb
.\viosock\Install\Win10\amd64\viosocklib_x64.dll
.\viosock\Install\Win10\amd64\viosocklib_x64.pdb
.\viosock\Install\Win10\amd64\viosocklib_x86.dll
.\viosock\Install\Win10\amd64\viosocklib_x86.pdb
.\viosock\Install\Win10\amd64\viosockwspsvc.exe
.\viosock\Install\Win10\amd64\viosockwspsvc.pdb
.\viosock\Install\Win10\amd64\vstbridge.exe
.\viosock\Install\Win10\amd64\vstbridge.pdb
Loading