Merge branch 'namespace-improvemnt' of https://gitlab.redox-os.org/Ibuki.O/redox into namespace-improvemnt

This commit is contained in:
Ibuki.O 2025-12-13 09:57:53 +09:00
commit a1305b478e
98 changed files with 659 additions and 542 deletions

View File

@ -8,6 +8,7 @@ stages:
- test
fmt:
image: "rust:trixie"
stage: lint
rules:
- if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "redox-os"'
@ -17,6 +18,7 @@ fmt:
- cargo fmt -- --check
cargo-test:
image: "rust:trixie"
stage: lint
rules:
- if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "redox-os"'

4
Cargo.lock generated
View File

@ -911,8 +911,8 @@ dependencies = [
[[package]]
name = "redox-pkg"
version = "0.2.8"
source = "git+https://gitlab.redox-os.org/redox-os/pkgutils.git#6ed6a265cbe9abaf9d747e700f72cad9cea5a5d0"
version = "0.2.9"
source = "git+https://gitlab.redox-os.org/redox-os/pkgutils.git#78b50760a3ee6c6752d47ec6f3511cd28b5d70de"
dependencies = [
"anyhow",
"ignore",

View File

@ -1,173 +1,51 @@
#!/usr/bin/env python3
# The values here are copied from the output of llvm-config running under Redox.
# This is a hack, and should be replaced if possible.
# generated with this ion script:
# for component in @(llvm-config --components)
# echo -e \"$component\": \"$(llvm-config --libs $component)\",
# end
components = {
'aggressiveinstcombine': '-lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'all': '-lLLVMWindowsManifest -lLLVMXRay -lLLVMLibDriver -lLLVMDlltoolDriver -lLLVMTextAPIBinaryReader -lLLVMCoverage -lLLVMLineEditor -lLLVMX86TargetMCA -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMOrcDebugging -lLLVMOrcJIT -lLLVMWindowsDriver -lLLVMMCJIT -lLLVMJITLink -lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMDWP -lLLVMDebugInfoLogicalView -lLLVMDebugInfoGSYM -lLLVMOption -lLLVMObjectYAML -lLLVMObjCopy -lLLVMMCA -lLLVMMCDisassembler -lLLVMLTO -lLLVMPasses -lLLVMHipStdPar -lLLVMCFGuard -lLLVMCoroutines -lLLVMipo -lLLVMVectorize -lLLVMLinker -lLLVMInstrumentation -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMFrontendOpenACC -lLLVMFrontendHLSL -lLLVMFrontendDriver -lLLVMExtensions -lLLVMDWARFLinkerParallel -lLLVMDWARFLinkerClassic -lLLVMDWARFLinker -lLLVMGlobalISel -lLLVMMIRParser -lLLVMAsmPrinter -lLLVMSelectionDAG -lLLVMCodeGen -lLLVMTarget -lLLVMObjCARCOpts -lLLVMCodeGenTypes -lLLVMIRPrinter -lLLVMInterfaceStub -lLLVMFileCheck -lLLVMFuzzMutate -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMFuzzerCLI -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMTableGen -lLLVMSupport -lLLVMDemangle',
'all-targets': '-lLLVMX86TargetMCA -lLLVMMCA -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMInstrumentation -lLLVMIRPrinter -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCFGuard -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'analysis': '-lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'asmparser': '-lLLVMAsmParser -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'asmprinter': '-lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'binaryformat': '-lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'bitreader': '-lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle',
'bitstreamreader': '-lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle',
'bitwriter': '-lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'cfguard': '-lLLVMCFGuard -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'codegen': '-lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'codegentypes': '-lLLVMCodeGenTypes -lLLVMSupport -lLLVMDemangle',
'core': '-lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'coroutines': '-lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMScalarOpts -lLLVMInstCombine -lLLVMBitWriter -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'coverage': '-lLLVMCoverage -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'debuginfobtf': '-lLLVMDebugInfoBTF -lLLVMSupport -lLLVMDemangle',
'debuginfocodeview': '-lLLVMDebugInfoCodeView -lLLVMSupport -lLLVMDemangle',
'debuginfodwarf': '-lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'debuginfogsym': '-lLLVMDebugInfoGSYM -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'debuginfologicalview': '-lLLVMDebugInfoLogicalView -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'debuginfomsf': '-lLLVMDebugInfoMSF -lLLVMSupport -lLLVMDemangle',
'debuginfopdb': '-lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'demangle': '-lLLVMDemangle',
'dlltooldriver': '-lLLVMDlltoolDriver -lLLVMOption -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle',
'dwarflinker': '-lLLVMDWARFLinker -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'dwarflinkerclassic': '-lLLVMDWARFLinkerClassic -lLLVMDWARFLinker -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'dwarflinkerparallel': '-lLLVMDWARFLinkerParallel -lLLVMDWARFLinker -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'dwp': '-lLLVMDWP -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'engine': '-lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'executionengine': '-lLLVMExecutionEngine -lLLVMTarget -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'extensions': '-lLLVMExtensions -lLLVMSupport -lLLVMDemangle',
'filecheck': '-lLLVMFileCheck',
'frontenddriver': '-lLLVMFrontendDriver -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'frontendhlsl': '-lLLVMFrontendHLSL -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'frontendoffloading': '-lLLVMFrontendOffloading -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'frontendopenacc': '-lLLVMFrontendOpenACC',
'frontendopenmp': '-lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'fuzzercli': '-lLLVMFuzzerCLI -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'fuzzmutate': '-lLLVMFuzzMutate -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'globalisel': '-lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'hipstdpar': '-lLLVMHipStdPar -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'instcombine': '-lLLVMInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'instrumentation': '-lLLVMInstrumentation -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'interfacestub': '-lLLVMInterfaceStub -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'interpreter': '-lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'ipo': '-lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMScalarOpts -lLLVMInstCombine -lLLVMBitWriter -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'irprinter': '-lLLVMIRPrinter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'irreader': '-lLLVMIRReader -lLLVMBitReader -lLLVMAsmParser -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'jitlink': '-lLLVMJITLink -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMOption -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'libdriver': '-lLLVMLibDriver -lLLVMOption -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'lineeditor': '-lLLVMLineEditor -lLLVMSupport -lLLVMDemangle',
'linker': '-lLLVMLinker -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'lto': '-lLLVMLTO -lLLVMPasses -lLLVMIRPrinter -lLLVMHipStdPar -lLLVMCoroutines -lLLVMCFGuard -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMExtensions -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMObjCARCOpts -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'mc': '-lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'mca': '-lLLVMMCA -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'mcdisassembler': '-lLLVMMCDisassembler -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'mcjit': '-lLLVMMCJIT -lLLVMExecutionEngine -lLLVMTarget -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'mcparser': '-lLLVMMCParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'mirparser': '-lLLVMMIRParser -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMAsmParser -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'native': '-lLLVMX86TargetMCA -lLLVMMCA -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMInstrumentation -lLLVMIRPrinter -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCFGuard -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'nativecodegen': '-lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMInstrumentation -lLLVMIRPrinter -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCFGuard -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'objcarcopts': '-lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'objcopy': '-lLLVMObjCopy -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'object': '-lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle',
'objectyaml': '-lLLVMObjectYAML -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'option': '-lLLVMOption -lLLVMSupport -lLLVMDemangle',
'orcdebugging': '-lLLVMOrcDebugging -lLLVMOrcJIT -lLLVMPasses -lLLVMIRPrinter -lLLVMHipStdPar -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMObjCARCOpts -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMCFGuard -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMWindowsDriver -lLLVMExecutionEngine -lLLVMTarget -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMRuntimeDyld -lLLVMJITLink -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMOption -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'orcjit': '-lLLVMOrcJIT -lLLVMPasses -lLLVMIRPrinter -lLLVMHipStdPar -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMObjCARCOpts -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMCFGuard -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMWindowsDriver -lLLVMJITLink -lLLVMOption -lLLVMExecutionEngine -lLLVMTarget -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'orcshared': '-lLLVMOrcShared -lLLVMSupport -lLLVMDemangle',
'orctargetprocess': '-lLLVMOrcTargetProcess -lLLVMTargetParser -lLLVMOrcShared -lLLVMSupport -lLLVMDemangle',
'passes': '-lLLVMPasses -lLLVMIRPrinter -lLLVMHipStdPar -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMObjCARCOpts -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMCFGuard -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'profiledata': '-lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'remarks': '-lLLVMRemarks -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle',
'runtimedyld': '-lLLVMRuntimeDyld -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'scalaropts': '-lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'selectiondag': '-lLLVMSelectionDAG -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'support': '-lLLVMSupport -lLLVMDemangle',
'symbolize': '-lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'tablegen': '-lLLVMTableGen -lLLVMSupport -lLLVMDemangle',
'target': '-lLLVMTarget -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'targetparser': '-lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'textapi': '-lLLVMTextAPI -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'textapibinaryreader': '-lLLVMTextAPIBinaryReader -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle',
'transformutils': '-lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'vectorize': '-lLLVMVectorize -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'windowsdriver': '-lLLVMWindowsDriver -lLLVMTargetParser -lLLVMOption -lLLVMSupport -lLLVMDemangle',
'windowsmanifest': '-lLLVMWindowsManifest -lLLVMSupport -lLLVMDemangle',
'x86': '-lLLVMX86TargetMCA -lLLVMMCA -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMInstrumentation -lLLVMIRPrinter -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCFGuard -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'x86asmparser': '-lLLVMX86AsmParser -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMCodeGenTypes -lLLVMMCParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'x86codegen': '-lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMInstrumentation -lLLVMIRPrinter -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCFGuard -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'x86desc': '-lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMCodeGenTypes -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'x86disassembler': '-lLLVMX86Disassembler -lLLVMX86Info -lLLVMMCDisassembler -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'x86info': '-lLLVMX86Info -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle',
'x86targetmca': '-lLLVMX86TargetMCA -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMMCParser -lLLVMMCA -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMCodeGenTypes -lLLVMSupport -lLLVMDemangle',
'xray': '-lLLVMXRay -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle',
}
# This script wraps llvm-config that intended for cross compiling to Redox.
# Because we can't run llvm-config compiled to Redox, we wrap it here.
# Any recipes that calls this script must have "host:llvm.runtime" available.
import os
import sys
import subprocess
def fail(message):
print("redox llvm-config failure", file=sys.stderr)
print(message, file=sys.stderr)
sys.exit(1)
LLVM_CONFIG = "/usr/bin/llvm-config"
prefix = os.environ["COOKBOOK_SYSROOT"]
def main():
toolchain_path = os.environ.get("COOKBOOK_TOOLCHAIN")
sysroot_path = os.environ.get("COOKBOOK_SYSROOT")
args = []
link_static = False
for arg in sys.argv[1:]:
if arg == "--link-static":
link_static = True
elif arg == "--link-shared":
fail("shared linking disabled")
else:
args.append(arg)
if not toolchain_path or not sysroot_path:
print(f"Error: COOKBOOK_TOOLCHAIN or COOKBOOK_SYSROOT not set", file=sys.stderr)
sys.exit(1)
if args == []:
fail("no arguments")
elif args == ["--version"]:
print("18.1.4")
elif args == ["--bindir"]:
print(prefix + "/bin")
elif args == ["--cppflags"]:
print("-I" + prefix + "/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS")
elif args == ["--cxxflags"]:
print("-I" + prefix + "/include --std=c++17 -fno-exceptions -funwind-tables -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS")
elif args == ["--components"]:
print(" ".join(components.keys()))
elif args == ["--includedir"]:
print(prefix + "/include")
elif args == ["--ldflags"]:
print("-L" + prefix + "/lib");
elif args == ["--libdir"]:
print(prefix + "/lib")
elif args == ["--system-libs"]:
print("-lm")
elif args == ["--targets-built"]:
print("X86")
elif args[0] == "--libs":
libs = []
if len(args) == 1:
args.append("all")
for component in args[1:]:
for lib in components[component].split(" "):
libs.append(lib)
print(" ".join(libs))
elif args[0] == "--libfiles":
libs = []
if len(args) == 1:
args.append("all")
for component in args[1:]:
for lib in components[component].split(" "):
file = prefix + "/lib/lib" + lib[2:] + ".a"
libs.append(file)
print(" ".join(libs))
elif args == ["--has-rtti"]:
print("YES")
elif args[0] == "--shared-mode":
print("static")
else:
fail("unknown arguments: " + " ".join(args))
cmd = [toolchain_path + LLVM_CONFIG] + sys.argv[1:]
try:
result = subprocess.run(
cmd,
stdout=subprocess.PIPE,
stderr=sys.stderr,
check=False,
text=True
)
except FileNotFoundError:
print(f"Error: Could not find executable '{LLVM_CONFIG}'", file=sys.stderr)
sys.exit(1)
if result.returncode != 0:
sys.exit(result.returncode)
output = result.stdout
if sys.argv[1] in ["--bindir"]:
output = toolchain_path + "/usr/bin"
else: #if sys.argv[1] in ["--cppflags", "--cxxflags", "--includedir", "--ldflags", "--libdir", "--libfiles"]
src = toolchain_path.rstrip(os.sep)
dst = sysroot_path.rstrip(os.sep)
output = output.replace(src, dst)
print(output, end='')
if __name__ == "__main__":
main()

View File

@ -9,13 +9,9 @@ ca-certificates = {}
coreutils = {}
extrautils = {}
findutils = {}
gcc13 = {}
"gcc13.cxx" = {}
gnu-binutils = {}
ion = {}
netdb = {}
pkgutils = {}
redoxerd = {}
relibc = {}
# Override to not background dhcpd

View File

@ -116,7 +116,7 @@ libwebp = {}
libxkbcommon = {}
libuuid = {}
libxml2 = {}
llvm18 = {}
llvm21 = {}
lsd = {}
lua54 = {}
lz4 = {}
@ -181,7 +181,6 @@ procedural-wallpapers-rs = {}
python312 = {}
#qemu = {} # can be built, but not working
readline = {}
redoxerd = {}
redox-fatfs = {}
redoxfs = {}
redox-games = {}

View File

@ -58,8 +58,6 @@ container_kill: FORCE
build/container.tag: $(CONTAINERFILE)
ifeq ($(PODMAN_BUILD),1)
rm -f build/container.tag
-chmod -R 0700 $(PODMAN_HOME) || true
-rm -rf $(PODMAN_HOME) || true
-podman image rm --force $(IMAGE_TAG) || true
mkdir -p $(PODMAN_HOME)
@echo "Building Podman image. This may take some time."

View File

@ -175,11 +175,15 @@ $(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2:
mv $@.partial $@
$(PREFIX)/binutils: $(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
rm -rf "$@.partial" "$@"
mkdir -p "$@.partial"
tar --extract --file "$<" --directory "$@.partial" --no-same-owner --strip-components=1
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/binutils-install: $(PREFIX)/binutils $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
@ -211,11 +215,15 @@ $(PREFIX)/gcc-$(GCC_BRANCH).tar.bz2:
mv "$@.partial" "$@"
$(PREFIX)/gcc: $(PREFIX)/gcc-$(GCC_BRANCH).tar.bz2
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
mkdir -p "$@.partial"
tar --extract --file "$<" --directory "$@.partial" --no-same-owner --strip-components=1
cd "$@.partial" && ./contrib/download_prerequisites
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)

View File

@ -14,7 +14,6 @@ RUN apt-get update \
bison \
bsdextrautils \
build-essential \
clang \
cmake \
curl \
dos2unix \
@ -51,13 +50,11 @@ RUN apt-get update \
libsdl1.2-dev \
libsdl2-ttf-dev \
libxml2-utils \
llvm \
lua5.4 \
luajit \
lzip \
m4 \
make \
meson \
nano \
nasm \
ninja-build \
patch \

View File

@ -3,9 +3,19 @@
# This script install the Rust toolchain and the build system dependencies
# in Podman after the image has been built
echo Installing rust...
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable --profile minimal
curl -sSLf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
cargo +stable binstall --no-confirm --force --version 0.10.0 sccache
cargo +stable binstall --no-confirm --force --version 1.42.4 just
cargo +stable binstall --no-confirm --force --version 0.29.0 cbindgen
echo Downloading sccache...
SCCACHE_URL=https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-$(uname -m)-unknown-linux-musl.tar.gz
wget -qO- --show-progress $SCCACHE_URL | tar -xz -C ~/.cargo/bin --strip-components=1 --wildcards '*/sccache'
echo Downloading just...
JUST_URL=https://github.com/casey/just/releases/download/1.45.0/just-1.45.0-$(uname -m)-unknown-linux-musl.tar.gz
wget -qO- --show-progress $JUST_URL | tar -xz -C ~/.cargo/bin --wildcards 'just'
echo Downloading cbindgen...
CBINDGEN_NAME=$( [[ $(uname -m) = "x86_64" ]] && echo "ubuntu22.04" || echo "ubuntu22.04-aarch64" )
CBINDGEN_URL=https://github.com/mozilla/cbindgen/releases/download/0.29.0/cbindgen-$CBINDGEN_NAME
wget -qO- --show-progress $CBINDGEN_URL > ~/.cargo/bin/cbindgen
chmod +x ~/.cargo/bin/cbindgen

View File

@ -107,7 +107,7 @@ cp "${COOKBOOK_BUILD}/initfs/bin/zerod" "${COOKBOOK_BUILD}/initfs/bin/nulld"
cp "${COOKBOOK_SYSROOT}/usr/bin/redoxfs" "${COOKBOOK_BUILD}/initfs/bin"
ARCH="$(echo "${GNU_TARGET}" | cut -d - -f1)"
cargo \
RUSTFLAGS="$RUSTFLAGS -Ctarget-feature=+crt-static" cargo \
-Zbuild-std=core,alloc,compiler_builtins \
-Zbuild-std-features=compiler-builtins-mem build \
--target "${TARGET}" \

View File

@ -39,6 +39,7 @@ BINS=(
virtio-netd
xhcid
inputd
redoxerd
)
# Add additional drivers to the list to build, that are not in drivers-initfs
@ -60,7 +61,7 @@ export CARGO_PROFILE_RELEASE_PANIC=abort
$(for bin in "${BINS[@]}"; do echo "-p" "${bin}"; done)
for bin in "${BINS[@]}"
do
if [[ "${bin}" == "inputd" || "${bin}" == "pcid" || "${bin}" == "pcid-spawner" ]]; then
if [[ "${bin}" == "inputd" || "${bin}" == "pcid" || "${bin}" == "pcid-spawner" || "${bin}" == "redoxerd" ]]; then
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/bin"
else
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/lib/drivers"

View File

@ -1,7 +1,6 @@
[build]
dependencies=[
"liborbital",
"llvm18",
"mesa",
"mesa-glu",
"zlib",

View File

@ -6,7 +6,6 @@ upstream = "https://github.com/rust-windowing/glutin.git"
[build]
template = "custom"
dependencies = [
"llvm18",
"mesa",
"zlib"
]

View File

@ -2,7 +2,6 @@
template = "custom"
dependencies = [
"liborbital",
"llvm18",
"mesa",
"mesa-glu",
"zlib"

View File

@ -13,6 +13,6 @@ autotools_recursive_regenerate
template = "custom"
script = """
DYNAMIC_INIT
cp -rp "$COOKBOOK_SOURCE/." ./
rsync -av --delete "$COOKBOOK_SOURCE/." ./
cookbook_configure
"""
"""

View File

@ -7,66 +7,105 @@ shallow_clone = true
[build]
template = "custom"
dependencies = [
"zlib"
"zlib",
"libxml2",
]
dev-dependencies = [
"libstdcxx",
"host:xz",
"host:libarchive", # workaround for cmake error
]
script = """
DYNAMIC_INIT
# https://llvm.org/docs/CMake.html
case "${TARGET}" in
x86-unknown-redox)
LLVM_TARGETS_TO_BUILD="X86"
;;
x86_64-unknown-redox)
LLVM_TARGETS_TO_BUILD="X86"
;;
aarch64-unknown-redox)
LLVM_TARGETS_TO_BUILD="AArch64"
;;
riscv64gc-unknown-redox)
LLVM_TARGETS_TO_BUILD="RISCV"
;;
*)
LLVM_TARGETS_TO_BUILD="host"
;;
esac
COOKBOOK_CMAKE_FLAGS+=(
-DCMAKE_CXX_FLAGS="--std=gnu++11"
-DBUILD_SHARED_LIBS=False
-DLLVM_LINK_LLVM_DYLIB=On
-DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath "${COOKBOOK_RECIPE}/native.cmake")"
-DLLVM_BUILD_BENCHMARKS=Off
-DLLVM_BUILD_EXAMPLES=Off
-DLLVM_BUILD_TESTS=Off
-DLLVM_BUILD_UTILS=Off
-DLLVM_BUILD_UTILS=On
-DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}"
-DLLVM_ENABLE_LTO=Off
-DLLVM_ENABLE_RTTI=On
-DLLVM_ENABLE_THREADS=On
-DLLVM_ENABLE_ZSTD=Off
-DLLVM_INCLUDE_BENCHMARKS=Off
-DLLVM_INCLUDE_EXAMPLES=Off
-DLLVM_INCLUDE_TESTS=Off
-DLLVM_INCLUDE_UTILS=Off
-DLLVM_INSTALL_UTILS=On
-DLLVM_OPTIMIZED_TABLEGEN=On
-DLLVM_TARGET_ARCH="$(echo "${TARGET}" | cut -d - -f1)"
-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS_TO_BUILD}"
-DLLVM_TOOL_LLVM_COV_BUILD=Off
-DLLVM_TOOL_LLVM_LTO_BUILD=Off
-DLLVM_TOOL_LLVM_LTO2_BUILD=Off
-DLLVM_TOOL_LLVM_PROFDATA_BUILD=Off
-DLLVM_TOOL_LLVM_RTDYLD_BUILD=Off
-DLLVM_TOOL_LLVM_XRAY_BUILD=Off
-DLLVM_TOOL_LLI_BUILD=Off
-DLLVM_TOOL_LTO_BUILD=Off
-DLLVM_TARGETS_TO_BUILD="X86;AArch64"
-DLLVM_TOOL_LLVM_COV_BUILD=On
-DLLVM_TOOL_LLVM_PROFDATA_BUILD=On
-DLLVM_TOOLS_INSTALL_DIR=bin
-DLLVM_UTILS_INSTALL_DIR=bin
-DLIBCLANG_BUILD_STATIC=On
-DUNIX=1
-DLLVM_ENABLE_PROJECTS="llvm"
-DLLVM_ENABLE_PROJECTS="llvm;clang;clang-tools-extra;lld"
)
# Native tablegen build fails with too many jobs, limit to 16
COOKBOOK_MAKE_JOBS="$(( ${COOKBOOK_MAKE_JOBS} > 16 ? 16 : ${COOKBOOK_MAKE_JOBS} ))"
cookbook_cmake "${COOKBOOK_SOURCE}/llvm"
COOKBOOK_SOURCE="$COOKBOOK_SOURCE/llvm"
cookbook_cmake
"""
# clang library and runtime
[[optional-packages]]
name = "clang"
dependencies = [ ".runtime" ]
files = [
"usr/bin/clang*",
"usr/libexec/**",
"usr/lib/libclang-cpp.so*",
"usr/lib/libclang.so*",
"usr/lib/clang/**",
"usr/lib/libear/**",
"usr/lib/libscanbuild/**",
"usr/share/clang*/**",
]
# lld runtime (no library)
[[optional-packages]]
name = "lld"
dependencies = [ ".runtime" ]
files = [
"usr/bin/*.lld",
"usr/bin/*-ld",
"usr/bin/lld*",
]
# llvm runtime
[[optional-packages]]
name = "runtime"
files = [
"usr/bin/**",
]
[[optional-packages]]
name = "clang-dev"
dependencies = [ ".clang" ]
files = [
"usr/include/clang*/**",
"usr/lib/libclang*.a",
"usr/lib/cmake/clang/**",
]
[[optional-packages]]
name = "lld-dev"
dependencies = [ ".lld" ]
files = [
"usr/include/lld*/**",
"usr/lib/liblld*.a",
"usr/lib/cmake/lld/**",
]
[[optional-packages]]
name = "dev"
dependencies = [ ".runtime" ]
files = [
"usr/include/llvm*/**",
"usr/lib/libLLVM*.a",
"usr/lib/cmake/llvm/**",
]

View File

@ -1,5 +1,6 @@
[source]
tar = "https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz"
tar = "https://www.python.org/ftp/python/3.12.12/Python-3.12.12.tar.xz"
blake3 = "29636fdae3e0ee8d0fe585e528c9376fe43876f5f3f0f7892140567946fd907b"
patches = [
"redox.patch"
]
@ -11,7 +12,6 @@ dependencies = [
"libffi",
"libuuid",
"openssl3",
"ncurses",
"ncursesw",
"readline",
"sqlite3",
@ -19,63 +19,47 @@ dependencies = [
"xz",
"zstd",
]
dev-dependencies = [
"host:python312"
]
script = """
DYNAMIC_INIT
# Build host python3
mkdir -p host
pushd host
#TODO: easier way to build for host?
HOST_ENV=(
env
--unset=AR
--unset=AS
--unset=CC
--unset=CFLAGS
--unset=CPPFLAGS
--unset=CXX
--unset=GNU_TARGET
--unset=LD
--unset=LDFLAGS
--unset=NM
--unset=OBJCOPY
--unset=OBJDUMP
--unset=PKG_CONFIG
--unset=PKG_CONFIG_ALLOW_CROSS
--unset=PKG_CONFIG_FOR_BUILD
--unset=PKG_CONFIG_LIBDIR
--unset=PKG_CONFIG_PATH
--unset=PKG_CONFIG_SYSROOT_DIR
--unset=PREFIX_RUSTFLAGS
--unset=RANLIB
--unset=READELF
--unset=STRIP
--unset=TARGET
)
"${HOST_ENV[@]}" "${COOKBOOK_CONFIGURE}" --prefix="${PWD}/usr"
"${HOST_ENV[@]}" "${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}"
"${HOST_ENV[@]}" "${COOKBOOK_MAKE}" altinstall
popd
export PYTHONDONTWRITEBYTECODE=1
ARCH="${TARGET%%-*}"
OS=$(echo "${TARGET}" | cut -d - -f3-4)
# Packages are considerably larger because of this issue
# https://gitlab.redox-os.org/redox-os/relibc/-/issues/227
export MODULE_BUILDTYPE=static
if [ "$TARGET" != "$COOKBOOK_HOST_TARGET" ]; then
COOKBOOK_CONFIGURE_FLAGS=(
--prefix=/usr
--disable-ipv6
--host=${GNU_TARGET}
--build="$ARCH"
--with-build-python="${COOKBOOK_TOOLCHAIN}/usr/bin/python3.12"
--with-ensurepip=install
--disable-test-modules
ac_cv_file__dev_ptmx=no
ac_cv_file__dev_ptc=no
)
else
COOKBOOK_CONFIGURE_FLAGS=(--prefix=/usr)
fi
COOKBOOK_CONFIGURE_FLAGS=(
--prefix=/usr
--enable-shared
--disable-ipv6
--host=${GNU_TARGET}
--build="$ARCH"
--with-build-python="${PWD}/host/usr/bin/python3.12"
--with-ensurepip=install
--disable-test-modules
ac_cv_file__dev_ptmx=no
ac_cv_file__dev_ptc=no
)
if [ "${COOKBOOK_DYNAMIC}" != "1" ]; then
export MODULE_BUILDTYPE=static
COOKBOOK_CONFIGURE_FLAGS+=( --enable-shared )
fi
cookbook_configure
# A same file to save 60MB
(cd "${COOKBOOK_STAGE}/usr/lib/python3.12/config-3.12-$ARCH-$OS" && \
rm -f libpython3.12.a && ln -s ../../libpython3.12.a)
"""
[[optional-packages]]
name = "dev"
files = [
"usr/lib/python3.12/config-*/**",
"usr/lib/libpython*.a"
]

View File

@ -1,7 +1,7 @@
diff -ruwN source/configure source-new/configure
--- source/configure 2023-10-02 05:48:14.000000000 -0600
+++ source-new/configure 2025-09-28 13:44:57.914820310 -0600
@@ -4276,6 +4276,9 @@
--- source/configure 2025-10-09 18:07:00.000000000 +0700
+++ source-new/configure 2025-12-09 22:14:30.781035339 +0700
@@ -4283,6 +4283,9 @@
*-*-wasi)
ac_sys_system=WASI
;;
@ -11,7 +11,7 @@ diff -ruwN source/configure source-new/configure
*)
# for now, limit cross builds to known configurations
MACHDEP="unknown"
@@ -4300,6 +4303,7 @@
@@ -4307,6 +4310,7 @@
case $MACHDEP in
aix*) MACHDEP="aix";;
linux*) MACHDEP="linux";;
@ -19,7 +19,7 @@ diff -ruwN source/configure source-new/configure
cygwin*) MACHDEP="cygwin";;
darwin*) MACHDEP="darwin";;
'') MACHDEP="unknown";;
@@ -4311,7 +4315,7 @@
@@ -4327,7 +4331,7 @@
if test "$cross_compiling" = yes; then
case "$host" in
@ -28,7 +28,7 @@ diff -ruwN source/configure source-new/configure
case "$host_cpu" in
arm*)
_host_cpu=arm
@@ -6746,6 +6750,7 @@
@@ -6762,6 +6766,7 @@
#undef cris
#undef fr30
#undef linux
@ -36,7 +36,7 @@ diff -ruwN source/configure source-new/configure
#undef hppa
#undef hpux
#undef i386
@@ -6891,6 +6896,18 @@
@@ -6907,6 +6912,18 @@
# endif
#elif defined(__gnu_hurd__)
i386-gnu
@ -55,7 +55,7 @@ diff -ruwN source/configure source-new/configure
#elif defined(__APPLE__)
darwin
#elif defined(__VXWORKS__)
@@ -7488,7 +7505,7 @@
@@ -7507,7 +7524,7 @@
PY3LIBRARY=libpython3.so
fi
;;
@ -64,8 +64,8 @@ diff -ruwN source/configure source-new/configure
LDLIBRARY='libpython$(LDVERSION).so'
BLDLIBRARY='-L. -lpython$(LDVERSION)'
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
@@ -12753,7 +12770,7 @@
Emscripten|WASI)
@@ -12815,7 +12832,7 @@
Emscripten*|WASI*)
LDSHARED='$(CC) -shared'
LDCXXSHARED='$(CXX) -shared';;
- Linux*|GNU*|QNX*|VxWorks*|Haiku*)
@ -73,7 +73,7 @@ diff -ruwN source/configure source-new/configure
LDSHARED='$(CC) -shared'
LDCXXSHARED='$(CXX) -shared';;
FreeBSD*)
@@ -12839,7 +12856,7 @@
@@ -12901,7 +12918,7 @@
else CCSHARED="+z";
fi;;
Linux-android*) ;;
@ -82,7 +82,7 @@ diff -ruwN source/configure source-new/configure
Emscripten*|WASI*)
if test "x$enable_wasm_dynamic_linking" = xyes
then :
@@ -12877,7 +12894,7 @@
@@ -12939,7 +12956,7 @@
LINKFORSHARED="-Wl,-E -Wl,+s";;
# LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
Linux-android*) LINKFORSHARED="-pie -Xlinker -export-dynamic";;
@ -92,8 +92,8 @@ diff -ruwN source/configure source-new/configure
Darwin/*)
LINKFORSHARED="$extra_undefs -framework CoreFoundation"
diff -ruwN source/Include/pyport.h source-new/Include/pyport.h
--- source/Include/pyport.h 2023-10-02 05:48:14.000000000 -0600
+++ source-new/Include/pyport.h 2025-09-28 13:44:57.916856922 -0600
--- source/Include/pyport.h 2025-10-09 18:07:00.000000000 +0700
+++ source-new/Include/pyport.h 2025-12-09 22:14:30.781035339 +0700
@@ -684,7 +684,7 @@
# error "Py_TRACE_REFS ABI is not compatible with release and debug ABI"
#endif
@ -104,8 +104,8 @@ diff -ruwN source/Include/pyport.h source-new/Include/pyport.h
// See _Py_GetLocaleEncoding(), PyUnicode_DecodeLocale()
// and PyUnicode_EncodeLocale().
diff -ruwN source/Modules/_cryptmodule.c source-new/Modules/_cryptmodule.c
--- source/Modules/_cryptmodule.c 2023-10-02 05:48:14.000000000 -0600
+++ source-new/Modules/_cryptmodule.c 2025-09-28 13:44:57.917139387 -0600
--- source/Modules/_cryptmodule.c 2025-10-09 18:07:00.000000000 +0700
+++ source-new/Modules/_cryptmodule.c 2025-12-09 22:14:30.781035339 +0700
@@ -38,13 +38,7 @@
/*[clinic end generated code: output=0512284a03d2803c input=0e8edec9c364352b]*/
{
@ -121,9 +121,9 @@ diff -ruwN source/Modules/_cryptmodule.c source-new/Modules/_cryptmodule.c
return PyErr_SetFromErrno(PyExc_OSError);
}
diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c
--- source/Modules/posixmodule.c 2023-10-02 05:48:14.000000000 -0600
+++ source-new/Modules/posixmodule.c 2025-09-28 13:44:57.918070573 -0600
@@ -2610,8 +2610,7 @@
--- source/Modules/posixmodule.c 2025-10-09 18:07:00.000000000 +0700
+++ source-new/Modules/posixmodule.c 2025-12-09 22:14:30.781035339 +0700
@@ -2695,8 +2695,7 @@
#ifdef HAVE_FSTATAT
if ((dir_fd != DEFAULT_DIR_FD) || !follow_symlinks) {
if (HAVE_FSTATAT_RUNTIME) {
@ -133,7 +133,7 @@ diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c
} else {
fstatat_unavailable = 1;
@@ -3083,8 +3082,6 @@
@@ -3186,8 +3185,6 @@
if (HAVE_FACCESSAT_RUNTIME) {
int flags = 0;
@ -142,7 +142,7 @@ diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c
if (effective_ids)
flags |= AT_EACCESS;
result = faccessat(dir_fd, path->narrow, mode, flags);
@@ -3369,8 +3366,7 @@
@@ -3472,8 +3469,7 @@
* support dir_fd and follow_symlinks=False. (Hopefully.)
* Until then, we need to be careful what exception we raise.
*/
@ -152,7 +152,7 @@ diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c
/*
* But wait! We can't throw the exception without allowing threads,
* and we can't do that in this nested scope. (Macro trickery, sigh.)
@@ -3747,8 +3743,7 @@
@@ -3850,8 +3846,7 @@
#ifdef HAVE_FCHOWNAT
if ((dir_fd != DEFAULT_DIR_FD) || (!follow_symlinks)) {
if (HAVE_FCHOWNAT_RUNTIME) {
@ -162,7 +162,7 @@ diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c
} else {
fchownat_unsupported = 1;
}
@@ -14598,8 +14593,7 @@
@@ -14727,8 +14722,7 @@
#ifdef HAVE_FSTATAT
if (HAVE_FSTATAT_RUNTIME) {
Py_BEGIN_ALLOW_THREADS
@ -173,8 +173,8 @@ diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c
} else
diff -ruwN source/Modules/resource.c source-new/Modules/resource.c
--- source/Modules/resource.c 2023-10-02 05:48:14.000000000 -0600
+++ source-new/Modules/resource.c 2025-09-28 13:44:57.919295094 -0600
--- source/Modules/resource.c 2025-10-09 18:07:00.000000000 +0700
+++ source-new/Modules/resource.c 2025-12-09 22:14:30.781035339 +0700
@@ -216,7 +216,7 @@
{
struct rlimit rl;
@ -202,15 +202,3 @@ diff -ruwN source/Modules/resource.c source-new/Modules/resource.c
PyErr_SetString(PyExc_ValueError,
"invalid resource specified");
return NULL;
diff -ruwN source/Modules/timemodule.c source-new/Modules/timemodule.c
--- source/Modules/timemodule.c 2023-10-02 05:48:14.000000000 -0600
+++ source-new/Modules/timemodule.c 2025-09-28 13:45:28.513234796 -0600
@@ -1494,7 +1494,7 @@
#elif defined(HAVE_CLOCK_GETTIME) && \
defined(CLOCK_PROCESS_CPUTIME_ID) && \
- !defined(__EMSCRIPTEN__) && !defined(__wasi__)
+ !defined(__EMSCRIPTEN__) && !defined(__wasi__) && !defined(__redox__)
#define HAVE_THREAD_TIME
#if defined(__APPLE__) && defined(__has_attribute) && __has_attribute(availability)

View File

@ -1,11 +1,9 @@
#TODO: use sed to replace hardcoded paths into env
[llvm]
download-ci-llvm = false
static-libstdcpp = false
targets = "X86"
experimental-targets = ""
# TODO: This currently must need to be set manually.
# If you like to build llvm with sccache, uncomment:
# ccache = "sccache"
[build]
host = ["x86_64-unknown-redox"]
@ -30,3 +28,10 @@ ar = "x86_64-unknown-redox-ar"
linker = "x86_64-unknown-redox-gcc"
rpath = false
crt-static = false
llvm-config = "/mnt/redox/recipes/dev/rust/target/x86_64-unknown-redox/sysroot/bin/llvm-config"
[target.aarch64-unknown-linux-gnu]
llvm-config = "/mnt/redox/recipes/dev/rust/target/x86_64-unknown-redox/toolchain/bin/llvm-config"
[target.x86_64-unknown-linux-gnu]
llvm-config = "/mnt/redox/recipes/dev/rust/target/x86_64-unknown-redox/toolchain/bin/llvm-config"

View File

@ -7,8 +7,16 @@ shallow_clone = true
template = "custom"
dependencies = [
"llvm21",
"zlib"
"zlib",
]
dev-dependencies = [
"llvm21.dev",
"llvm21.runtime",
"host:llvm21",
"host:llvm21.dev",
"host:llvm21.runtime",
]
script = """
DYNAMIC_INIT
# Linker flags for stage2 compiler (host -> target)
@ -17,6 +25,15 @@ export CARGO_TARGET_X86_64_UNKNOWN_REDOX_RUSTFLAGS="\
-Clink-args=-L${COOKBOOK_SYSROOT}/lib \
-Clink-args=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib \
-Clink-args=-lz"
# Hack for Rust errorneusly running `llvm-config --version` on cross compiled llvm-config
cat "${COOKBOOK_ROOT}/bin/x86_64-unknown-redox-llvm-config" > "${COOKBOOK_SYSROOT}/bin/llvm-config"
# Linker flags for stage1 compiler (host -> host)
export RUSTFLAGS_BOOTSTRAP="\
-Clink-args=-L${COOKBOOK_TOOLCHAIN}/lib \
-Clink-args=-Wl,-rpath-link,${COOKBOOK_TOOLCHAIN}/lib"
export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="${RUSTFLAGS_BOOTSTRAP}"
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="${RUSTFLAGS_BOOTSTRAP}"
# Don't poison the stage1 compiler (host -> host)
unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS STRIP
python3 "${COOKBOOK_SOURCE}/x.py" install \

View File

@ -7,7 +7,6 @@ dependencies = [
"curl",
"libiconv",
"liborbital",
"llvm18",
"mesa",
"nghttp2",
"openssl1",

View File

@ -11,7 +11,6 @@ dependencies = [
#TODO: libflac
"libiconv",
"liborbital",
"llvm18",
"mesa",
"sdl2",
"zlib",

View File

@ -8,7 +8,6 @@ dependencies = [
"freetype2",
"liborbital",
"libpng",
"llvm18",
"mesa",
"mesa-glu",
"sdl2",

View File

@ -6,7 +6,6 @@ template = "custom"
dependencies = [
"liborbital",
"libretro-super",
"llvm18",
"mesa",
"openssl1",
"sdl2",

View File

@ -5,7 +5,6 @@ git = "https://github.com/jackpot51/ClassiCube.git"
template = "custom"
dependencies = [
"liborbital",
"llvm18",
"mesa",
"sdl2",
"zlib",

View File

@ -11,7 +11,6 @@ dependencies = [
"liborbital",
"libjpeg",
"libpng",
"llvm18",
"openssl1",
"mesa",
"nghttp2",

View File

@ -6,7 +6,6 @@ upstream = "https://github.com/PistonDevelopers/hematite.git"
[build]
template = "custom"
dependencies = [
"llvm18",
"mesa",
"zlib"
]

View File

@ -13,7 +13,6 @@ dependencies = [
"liborbital",
"libpng",
"libvorbis",
"llvm18",
"mesa",
"sdl2",
"sdl2-ttf",

View File

@ -8,7 +8,6 @@ dependencies = [
"libjpeg",
"liborbital",
"libpng",
"llvm18",
"mesa",
"sdl2",
"zlib",

View File

@ -14,7 +14,6 @@ patches = [ "redox.patch" ]
[build]
template = "custom"
dependencies = [
"llvm18",
"liborbital",
"mesa",
"sdl2",

View File

@ -10,7 +10,6 @@ rev = "cc32abe09ed417ce3be10af300d2dc2f686349ba"
[build]
template = "custom"
dependencies = [
"llvm18",
"libiconv",
"libogg",
"liborbital",

View File

@ -5,7 +5,6 @@ git = "https://github.com/jackpot51/sm64ex.git"
template = "custom"
dependencies = [
"liborbital",
"llvm18",
"mesa",
"sdl2",
"zlib",

View File

@ -9,7 +9,6 @@ dependencies = [
"libogg",
"liborbital",
"libvorbis",
"llvm18",
"mesa",
"sdl2",
"sdl2-mixer",

View File

@ -5,7 +5,7 @@ dependencies = [
"cargo",
"gcc13",
"gcc13.cxx",
"llvm18",
"llvm21",
"gnu-binutils",
"gnu-make",
"gnu-grep",

View File

@ -10,7 +10,6 @@ patches = [
template = "custom"
dependencies = [
"liborbital",
"llvm18",
"mesa",
"sdl2",
"zlib",

View File

@ -1,6 +1,8 @@
[build]
template = "custom"
script = """
if [ "$TARGET" != "$COOKBOOK_HOST_TARGET" ]; then
mkdir -p "${COOKBOOK_STAGE}/lib"
cp -av ${COOKBOOK_HOST_SYSROOT}/${GNU_TARGET}/lib/libstdc++.so* ${COOKBOOK_STAGE}/lib/
fi
"""

View File

@ -3,7 +3,7 @@ tar = "https://archive.mesa3d.org/glu/glu-9.0.3.tar.xz"
blake3 = "beed1665ed983540e7502289ec50c7e66d840820af3e9ef21c9c4a7e9686ab9f"
[build]
dependencies = ["mesa", "zlib"]
dependencies = ["mesa"]
template = "custom"
script = """
DYNAMIC_INIT

View File

@ -9,9 +9,14 @@ dependencies = [
"expat",
"libdrm",
"liborbital",
"llvm18",
"llvm21",
"zlib",
]
dev-dependencies = [
"llvm21.dev",
"host:llvm21.dev",
"host:llvm21.runtime",
]
script = """
DYNAMIC_INIT

View File

@ -1,9 +1,5 @@
[source]
tar = "https://ftp.gnu.org/gnu/ncurses/ncurses-6.4.tar.gz"
blake3 = "0d1c9fdf53c0ca4bd66ba707d49a079d2dd6f5a960cdec74a56e29952c4ffe73"
patches = [
"redox.patch"
]
same_as = "../ncurses"
[build]
template = "custom"

View File

@ -1,12 +0,0 @@
diff -ruwN source/configure source-new/configure
--- source/configure 2022-11-06 04:13:26.000000000 +0700
+++ source-new/configure 2025-09-17 21:14:28.163192730 +0700
@@ -6386,7 +6386,7 @@
fi
cf_cv_rm_so_locs=yes
;;
- (linux*|gnu*|k*bsd*-gnu)
+ (linux*|gnu*|k*bsd*-gnu|redox*)
if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"

View File

@ -13,6 +13,9 @@ dependencies = [
script = """
DYNAMIC_INIT
cookbook_configure
ln -s "libhistory.so.7" "${COOKBOOK_STAGE}"/usr/lib/libhistory.so
ln -s "libreadline.so.7" "${COOKBOOK_STAGE}"/usr/lib/libreadline.so
OS=$(echo "${TARGET}" | cut -d - -f3)
if [ "${OS}" = "redox" ]; then
ln -s "libhistory.so.7" "${COOKBOOK_STAGE}"/usr/lib/libhistory.so
ln -s "libreadline.so.7" "${COOKBOOK_STAGE}"/usr/lib/libreadline.so
fi
"""

View File

@ -10,7 +10,6 @@ dependencies = [
"freetype2",
"liborbital",
"libpng",
"llvm18",
"mesa",
"sdl2",
"zlib",

View File

@ -7,7 +7,6 @@ dependencies = [
"libjpeg",
"liborbital",
"libpng",
"llvm18",
"mesa",
"sdl2",
"zlib",

View File

@ -7,7 +7,6 @@ template = "custom"
dependencies = [
"sdl2",
"liborbital",
"llvm18",
"mesa",
"zlib",
"libogg",

View File

@ -13,7 +13,6 @@ dependencies = [
"libdrm",
"liborbital",
"libpng",
"llvm18",
"mesa",
"sdl2",
"zlib",

View File

@ -6,7 +6,6 @@ git = "https://gitlab.redox-os.org/redox-os/sdl2.git"
template = "custom"
dependencies = [
"liborbital",
"llvm18",
"mesa",
"zlib",
]

View File

@ -11,10 +11,10 @@ DYNAMIC_INIT
# The static lib is preferred according to the README because it's faster
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
"${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" \
AR="${TARGET}-ar" \
CC="${CC_WRAPPER} ${TARGET}-gcc" \
AR="${AR}" \
CC="${CC}" \
RANLIB="${RANLIB}" \
PREFIX="${COOKBOOK_STAGE}" \
RANLIB="${TARGET}-ranlib" \
install
# However, distros distribute libbz2 as well so we'll support it too
@ -24,10 +24,10 @@ rsync -av --delete "${COOKBOOK_SOURCE}/" ./
# This DOES NOT build/clobber the binaries already built above
"${COOKBOOK_MAKE}" -f Makefile-libbz2_so \
-j"${COOKBOOK_MAKE_JOBS}" \
AR="${TARGET}-ar" \
CC="${CC_WRAPPER} ${TARGET}-gcc" \
PREFIX="${COOKBOOK_STAGE}" \
RANLIB="${TARGET}-ranlib"
AR="${AR}" \
CC="${CC}" \
RANLIB="${RANLIB}" \
PREFIX="${COOKBOOK_STAGE}"
cp -av libbz2.so* "${COOKBOOK_STAGE}/lib"
ln -sr "${COOKBOOK_STAGE}/lib/libbz2.so.1.0" "${COOKBOOK_STAGE}/lib/libbz2.so.1"

View File

@ -6,7 +6,6 @@ upstream = "https://github.com/servo/pathfinder.git"
[build]
template = "custom"
dependencies = [
"llvm18",
"mesa",
"zlib",
]

View File

@ -1,6 +1,7 @@
#TODO compiled but not tested
[source]
git = "https://github.com/BLAKE3-team/BLAKE3"
shallow_clone = true
[build]
template = "custom"
script = """

View File

@ -0,0 +1,5 @@
#TODO not compiled or tested
[source]
git = "https://github.com/tinywatcher/tinywatcher"
[build]
template = "cargo"

View File

@ -1,17 +0,0 @@
#TODO can't find the configure script
#TODO build instructions - https://github.com/openjdk/jdk11u/blob/master/doc/building.md
[source]
git = "https://github.com/openjdk/jdk11u"
rev = "09b402a6bcecce976ee17ce358b0a90ea127ab69"
[build]
template = "custom"
dependencies = [
"fontconfig",
]
script = """
chmod a+x configure
COOKBOOK_CONFIGURE_FLAGS+=(
--enable-headless-only=yes
)
cookbook_configure
"""

View File

@ -0,0 +1,15 @@
#TODO not compiled or tested
# build instructions: https://github.com/openjdk/jdk11u/blob/master/doc/building.md
[source]
git = "https://github.com/openjdk/jdk11u"
rev = "jdk-11.0.29-ga"
shallow_clone = true
script = "chmod a+x configure"
[build]
template = "configure"
configureflags = [
"--enable-headless-only=yes",
]
dependencies = [
"fontconfig",
]

View File

@ -1,17 +0,0 @@
#TODO build instructions - https://github.com/openjdk/jdk17u/blob/master/doc/building.md
#TODO add supported autoconf options
[source]
git = "https://github.com/openjdk/jdk17u"
rev = "b78a848cc7ae5787d9ec9ea0ce843cd63b06efec"
[build]
template = "custom"
dependencies = [
"fontconfig",
]
script = """
chmod a+x configure
COOKBOOK_CONFIGURE_FLAGS+=(
--enable-headless-only=yes
)
cookbook_configure
"""

View File

@ -0,0 +1,15 @@
#TODO not compiled or tested
# build instructions: https://github.com/openjdk/jdk17u/blob/master/doc/building.md
[source]
git = "https://github.com/openjdk/jdk17u"
rev = "jdk-17.0.17-ga"
shallow_clone = true
script = "chmod a+x configure"
[build]
template = "configure"
configureflags = [
"--enable-headless-only=yes",
]
dependencies = [
"fontconfig",
]

View File

@ -1,17 +0,0 @@
#TODO build instructions - https://github.com/openjdk/jdk21u/blob/master/doc/building.md
#TODO can't find the configure script
[source]
git = "https://github.com/openjdk/jdk21u"
rev = "060c4f7589e7f13febd402f4dac3320f4c032b08"
[build]
template = "custom"
dependencies = [
"fontconfig",
]
script = """
chmod a+x configure
COOKBOOK_CONFIGURE_FLAGS+=(
--enable-headless-only=yes
)
cookbook_configure
"""

View File

@ -0,0 +1,15 @@
#TODO not compiled or tested
# build instructions: https://github.com/openjdk/jdk21u/blob/master/doc/building.md
[source]
git = "https://github.com/openjdk/jdk21u"
rev = "jdk-21.0.9-ga"
shallow_clone = true
script = "chmod a+x configure"
[build]
template = "configure"
configureflags = [
"--enable-headless-only=yes",
]
dependencies = [
"fontconfig",
]

View File

@ -1,10 +0,0 @@
#TODO build instructions - https://github.com/openjdk/jdk8u/blob/master/doc/building.md
#TODO require the headless option
[source]
git = "https://github.com/openjdk/jdk8u"
rev = "9c9d6b267c41e4c713cacc41befb66007cdb2601"
[build]
template = "custom"
dependencies = [
"freetype2",
]

View File

@ -0,0 +1,15 @@
#TODO not compiled or tested
# build instructions: https://github.com/openjdk/jdk8u/blob/master/doc/building.md
[source]
git = "https://github.com/openjdk/jdk8u"
rev = "jdk8u472-ga"
shallow_clone = true
script = "chmod a+x configure"
[build]
template = "configure"
configureflags = [
"--enable-headless-only=yes",
]
dependencies = [
"freetype2",
]

View File

@ -34,10 +34,10 @@ dev-dependencies = [
script = """
DYNAMIC_INIT
export PYTHONDONTWRITEBYTECODE=1
export PYTHONDONTWRITEBYTECODE=1 COOKBOOK_NOSTRIP=true
export CC_host="$CC_WRAPPER gcc" CXX_host="$CC_WRAPPER g++"
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
rsync -av "${COOKBOOK_SOURCE}/" ./
case "${TARGET}" in
x86_64-unknown-linux-gnu) export NODE_CPU=x64 NODE_OS=linux;;
@ -58,6 +58,10 @@ COOKBOOK_CONFIGURE_FLAGS=(
--shared-nghttp3
--shared-openssl
--shared-zlib
--disable-shared-readonly-heap
--without-node-snapshot
--without-node-code-cache
--v8-lite-mode
# TODO: Find a way to separate host and target flags instead?
# --shared-zlib-includes="${COOKBOOK_TOOLCHAIN}/include"
--shared-openssl-includes="${COOKBOOK_SYSROOT}/include"

View File

@ -179,7 +179,7 @@ diff -ruwN source/deps/v8/src/base/platform/platform-posix.cc source-new/deps/v8
#endif
+#if defined(__redox__)
+ #define PTHREAD_STACK_MIN 4096
+ #define PTHREAD_STACK_MIN 1024 * 1024
+#endif
+
#if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT)
@ -392,6 +392,40 @@ diff -ruwN source/src/node_credentials.cc source-new/src/node_credentials.cc
return value.As<Uint32>()->Value();
} else {
Utf8Value name(isolate, value);
diff -ruwN source/src/node_dotenv.cc source-new/src/node_dotenv.cc
--- source/src/node_dotenv.cc 2024-04-10 19:46:14.000000000 +0700
+++ source-new/src/node_dotenv.cc 2025-11-30 23:39:21.486092041 +0700
@@ -16,10 +16,14 @@
* The inspiration for this implementation comes from the original dotenv code,
* available at https://github.com/motdotla/dotenv
*/
+
+// redox crash on compiling this regex
+#if !defined(__redox__)
const std::regex LINE(
"\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^']"
")*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\r\n]+)?\\s*(?"
":#.*)?"); // NOLINT(whitespace/line_length)
+#endif
std::vector<std::string> Dotenv::GetPathFromArgs(
const std::vector<std::string>& args) {
@@ -102,6 +106,7 @@
}
void Dotenv::ParseContent(const std::string_view content) {
+#if !defined(__redox__)
std::string lines = std::string(content);
lines = std::regex_replace(lines, std::regex("\r\n?"), "\n");
@@ -131,6 +136,7 @@
store_.insert_or_assign(std::string(key), value);
lines = match.suffix();
}
+#endif
}
Dotenv::ParseResult Dotenv::ParsePath(const std::string_view path) {
diff -ruwN source/src/node_report.cc source-new/src/node_report.cc
--- source/src/node_report.cc 2024-04-10 19:46:14.000000000 +0700
+++ source-new/src/node_report.cc 2025-10-10 13:46:05.190512964 +0700

View File

@ -0,0 +1,10 @@
#TODO not compiled or tested
[source]
git = "https://github.com/AfaanBilal/NanoCore"
[build]
template = "custom"
script = """
cookbook_cargo
mkdir -pv "${COOKBOOK_STAGE}/usr/share/nanocore"
cp -rv "${COOKBOOK_SOURCE}"/programs/* "${COOKBOOK_STAGE}/usr/share/nanocore"
"""

View File

@ -7,7 +7,6 @@ tar = "https://github.com/hrydgard/ppsspp/releases/download/v1.19.3/ppsspp-1.19.
template = "custom"
dependencies = [
#"liborbital",
"llvm18",
"mesa",
"mesa-glu",
"sdl2",

View File

@ -7,7 +7,6 @@ template = "custom"
dependencies = [
"curl",
"liborbital",
"llvm18",
"mesa",
"mesa-glu",
"nghttp2",

View File

@ -0,0 +1,5 @@
#TODO not compiled or tested
[source]
git = "https://github.com/io12/unf"
[build]
template = "cargo"

View File

@ -15,7 +15,6 @@ dependencies = [
"libpng",
"libtheora",
"libvorbis",
"llvm18",
"luajit",
"openal",
"mesa",

View File

@ -32,5 +32,4 @@ cp -rv "${COOKBOOK_SOURCE}/shaders" "${COOKBOOK_STAGE}/home/user/systemshock/sha
"""
[package]
dependencies = [
"llvm18",
]

View File

@ -15,7 +15,6 @@ dependencies = [
"sdl2-mixer",
"sdl2",
"liborbital",
"llvm18",
"mesa",
"mesa-glu",
"zlib",

View File

@ -24,7 +24,6 @@ dependencies = [
"liborbital",
"libpng",
"libvorbis",
"llvm18",
"mesa",
"mesa-glu",
"pcre",

View File

@ -13,7 +13,6 @@ dependencies = [
"freetype2",
"glew",
"imath",
"llvm18",
"lz4",
"libffi",
"libjpeg",

View File

@ -10,7 +10,6 @@ template = "custom"
dependencies = [
"liborbital",
"libsndfile",
"llvm18",
"mesa",
"sdl2",
"zlib",

View File

@ -29,7 +29,6 @@ dependencies = [
"libpthread-stubs",
"fontconfig",
"expat",
"llvm18",
"gcc13",
]

View File

@ -13,7 +13,6 @@ dependencies = [
"libxext",
"libxfixes",
"libxxf86vm",
"llvm18",
"mesa-x11",
"x11proto",
"zlib",

View File

@ -1,7 +1,9 @@
[source]
tar = "https://sourceforge.net/projects/libuuid/files/libuuid-1.0.3.tar.gz/download"
blake3 = "ac6582304401d2be6e5db4570c0d9d6d1500f12c918591a05066679bb2e41e55"
patches = [
"redox.patch"
]
[build]
template = "configure"

View File

@ -40,6 +40,19 @@ diff -ruwN source/configure source-new/configure
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
diff -ruwN source/gen_uuid.c source-new/gen_uuid.c
--- source/gen_uuid.c 2014-08-12 04:07:18.000000000 -0400
+++ source-new/gen_uuid.c 2025-12-09 10:49:12.580466005 -0500
@@ -59,9 +59,7 @@
#include <sys/time.h>
#endif
#include <sys/stat.h>
-#ifdef HAVE_SYS_FILE_H
#include <sys/file.h>
-#endif
#ifdef HAVE_SYS_IOCTL_H
#include <sys/ioctl.h>
#endif
diff -ruwN source/randutils.c source-new/randutils.c
--- source/randutils.c 2014-08-12 15:07:18.000000000 +0700
+++ source-new/randutils.c 2025-09-19 21:11:57.907659403 +0700

View File

@ -1,14 +1,12 @@
#TODO probably wrong script, see https://github.com/wxWidgets/wxWidgets/blob/master/docs/gtk/install.md
#TODO not compiled or tested
# build instructions: https://github.com/wxWidgets/wxWidgets/blob/master/docs/gtk/install.md
[source]
tar = "https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.4/wxWidgets-3.2.4.tar.bz2"
[build]
template = "custom"
template = "configure"
configureflags = [
"--with-gtk",
]
dependencies = [
"gtk3",
]
script = """
COOKBOOK_CONFIGURE_FLAGS+=(
--with-gtk
)
cookbook_configure
"""

View File

@ -0,0 +1,5 @@
#TODO not compiled or tested
[source]
git = "https://github.com/akiomik/nostui"
[build]
template = "cargo"

View File

@ -5,7 +5,6 @@ git = "https://github.com/maxcurzi/tplay"
template = "cargo"
dependencies = [
"ffmpeg6",
"llvm18",
"openssl1",
"opencv4",
]

View File

@ -0,0 +1,13 @@
#TODO not compiled or tested
#TODO resource packaging: https://github.com/lockedmutex/rhyolite/blob/master/Cargo.toml#L43
[source]
git = "https://github.com/lockedmutex/rhyolite"
[build]
template = "custom"
dependencies = [
"freetype2",
"fontconfig",
]
script = """
cookbook_cargo --profile release
"""

View File

@ -0,0 +1,5 @@
#TODO not compiled or tested
[source]
git = "https://github.com/Epistates/treemd"
[build]
template = "cargo"

View File

@ -14,7 +14,6 @@ dependencies = [
"liborbital",
"libpng",
"libstdcxx",
"llvm18",
"mesa",
"nghttp2",
"openssl1",

View File

@ -0,0 +1,8 @@
#TODO not compiled or tested
[source]
git = "https://github.com/bearcove/dodeca"
[build]
template = "custom"
script = """
cookbook_cargo_packages dodeca
"""

View File

@ -36,7 +36,9 @@ PREFIX_INCLUDE="$COOKBOOK_HOST_SYSROOT/$TARGET/include"
export CLANGFLAGS="-I $PREFIX_INCLUDE/c++/13.2.0 -I $PREFIX_INCLUDE/c++/13.2.0/$TARGET -I $PREFIX_INCLUDE/c++/13.2.0/backward -I $PREFIX_INCLUDE"
#Mozjs specifics
unset CC_WRAPPER
export CARGO_MAKEFLAGS="-j $COOKBOOK_MAKE_JOBS" CCACHE="sccache"
unset CC_WRAPPER
PACKAGE_PATH="ports/servoshell" cookbook_cargo

View File

@ -0,0 +1,11 @@
[source]
tar = "https://gitlab.freedesktop.org/emersion/drm_info/-/archive/v2.9.0/drm_info-v2.9.0.tar.gz"
blake3 = "48ff592b206a85c1d946abfe2f8a4e7ef40f9f1ee7d3d5ee454a33390f86d8cb"
patches = ["redox.patch"]
[build]
dependencies = [
"json-c",
"libdrm",
]
template = "meson"

View File

@ -0,0 +1,12 @@
diff -ruwN source-old/meson.build source/meson.build
--- source-old/meson.build 2025-11-16 10:35:59.000000000 -0700
+++ source/meson.build 2025-12-11 15:29:28.845861423 -0700
@@ -68,7 +68,7 @@
elif libdrm.type_name() == 'internal'
fourcc_h = meson.current_source_dir() / 'subprojects/libdrm/include/drm/drm_fourcc.h'
else
- fourcc_h = libdrm.get_variable(pkgconfig: 'pc_sysrootdir') + libdrm.get_variable(pkgconfig: 'includedir') / 'libdrm/drm_fourcc.h'
+ fourcc_h = libdrm.get_variable(pkgconfig: 'includedir') / 'libdrm/drm_fourcc.h'
endif
# The DRM_BUS_FAUX bus and its information is included in libdrm v2.4.127

View File

@ -36,7 +36,6 @@ dependencies = [
"libxrandr",
"libxrender",
"libxxf86vm",
"llvm18",
"mesa-x11",
"pango",
"pcre",

View File

@ -39,7 +39,6 @@ dependencies = [
"libxrandr",
"libxrender",
"libxxf86vm",
"llvm18",
"mesa-x11",
"pango",
"pcre",

View File

@ -41,7 +41,6 @@ dependencies = [
"libxrandr",
"libxrender",
"libxxf86vm",
"llvm18",
"mesa-x11",
"pango",
"pcre",

View File

@ -5,23 +5,12 @@ patches = ["redox.patch"]
[build]
dependencies = [
"expat",
"libpthread-stubs",
"libstdcxx",
"libx11",
"libxau",
"libxcb",
"libxext",
"libxfixes",
"libxml2",
"libxxf86vm",
"llvm18",
"mesa-x11",
"mesa-glu-x11",
"x11proto",
"xextproto",
"zlib",
]
dev-dependencies = [
"libstdcxx",
]
template = "custom"
script = """
DYNAMIC_INIT

View File

@ -4,15 +4,7 @@ blake3 = "beed1665ed983540e7502289ec50c7e66d840820af3e9ef21c9c4a7e9686ab9f"
[build]
dependencies = [
"libpthread-stubs",
"libx11",
"libxau",
"libxcb",
"libxext",
"libxfixes",
"libxxf86vm",
"mesa-x11",
"x11proto",
]
template = "custom"
script = """

View File

@ -6,19 +6,22 @@ template = "custom"
dependencies = [
"expat",
"libdrm",
"libpthread-stubs",
"libx11",
"libxau",
"libxcb",
"libxext",
"libxfixes",
"libxrandr",
"libxshmfence",
"libxxf86vm",
"llvm18",
"x11proto",
"llvm21",
"zlib",
]
dev-dependencies = [
"llvm21.dev",
"host:llvm21.dev",
"host:llvm21.runtime",
]
script = """
DYNAMIC_INIT
cookbook_meson \

View File

@ -55,3 +55,6 @@ set +x
sync
echo "Finished installing Redox OS dual boot"
echo ""
echo "To mount the RedoxFS partition, run:"
echo " ./scripts/mount-redoxfs.sh ${DISK}"

119
scripts/mount-redoxfs.sh Executable file
View File

@ -0,0 +1,119 @@
#!/usr/bin/env bash
set -e
MOUNT_POINT="/mnt/redoxfs"
DISK_DEVICE=""
show_help() {
echo "Usage: $0 [options] <device>"
echo ""
echo "Mount or unmount a RedoxFS partition"
echo ""
echo "Options:"
echo " -u, --unmount Unmount the RedoxFS partition"
echo " -m, --mount-point PATH Custom mount point (default: /mnt/redoxfs)"
echo " -h, --help Show this help"
echo ""
echo "Examples:"
echo " $0 /dev/sda3 Mount /dev/sda3"
echo " $0 -u Unmount from default location"
echo " $0 -m /mnt/my-redox /dev/sda3 Mount to custom location"
}
unmount_fs() {
if mountpoint -q "$MOUNT_POINT" 2>/dev/null; then
echo "Unmounting RedoxFS from $MOUNT_POINT..."
fusermount -u "$MOUNT_POINT" || fusermount3 -u "$MOUNT_POINT"
echo "Successfully unmounted"
else
echo "Nothing mounted at $MOUNT_POINT"
fi
exit 0
}
check_dependencies() {
# Try to find redoxfs in multiple locations
REDOXFS_BIN=""
if [ -x "build/fstools/bin/redoxfs" ]; then
REDOXFS_BIN="build/fstools/bin/redoxfs"
elif [ -x "$(dirname "$0")/../build/fstools/bin/redoxfs" ]; then
REDOXFS_BIN="$(dirname "$0")/../build/fstools/bin/redoxfs"
elif command -v redoxfs &> /dev/null; then
REDOXFS_BIN="redoxfs"
fi
if [ -z "$REDOXFS_BIN" ]; then
echo "Error: redoxfs command not found"
echo "Please build it first with: make fstools"
exit 1
fi
if ! ldconfig -p 2>/dev/null | grep -q "libfuse3"; then
echo "Error: libfuse 3.x is not installed"
echo "Please install it:"
if command -v apt-get &> /dev/null; then
echo " sudo apt-get install fuse3 libfuse3-dev"
elif command -v dnf &> /dev/null; then
echo " sudo dnf install fuse3-devel"
elif command -v pacman &> /dev/null; then
echo " sudo pacman -S fuse3"
else
echo " (check your package manager for fuse3)"
fi
exit 1
fi
}
UNMOUNT=false
while [[ $# -gt 0 ]]; do
case $1 in
-u|--unmount)
UNMOUNT=true
shift
;;
-m|--mount-point)
MOUNT_POINT="$2"
shift 2
;;
-h|--help)
show_help
exit 0
;;
*)
DISK_DEVICE="$1"
shift
;;
esac
done
if [ "$UNMOUNT" = true ]; then
unmount_fs
fi
if [ -z "$DISK_DEVICE" ]; then
DISK_DEVICE="/dev/disk/by-partlabel/REDOX_INSTALL"
if [ ! -b "$DISK_DEVICE" ]; then
echo "Error: No device specified and default partition not found"
echo ""
show_help
exit 1
fi
fi
if [ ! -b "$DISK_DEVICE" ] && [ ! -f "$DISK_DEVICE" ]; then
echo "Error: $DISK_DEVICE is not a block device or file"
exit 1
fi
check_dependencies
mkdir -p "$MOUNT_POINT"
echo "Mounting $DISK_DEVICE to $MOUNT_POINT..."
"$REDOXFS_BIN" "$DISK_DEVICE" "$MOUNT_POINT"
echo "RedoxFS successfully mounted at $MOUNT_POINT"
echo "To unmount, run: $0 -u"

View File

@ -498,46 +498,47 @@ fn parse_args(args: Vec<String>) -> anyhow::Result<(CliConfig, CliCommand, Vec<C
if let Some(conf) = config.filesystem.as_ref()
&& !command.is_cleaning()
{
for recipe in recipes.iter_mut() {
if let Some(recipe_conf) = conf.packages.get(recipe.name.as_str()) {
match recipe_conf {
// build from source as usual
PackageConfig::Build(rule) if rule == "source" => {}
// keep local changes
PackageConfig::Build(rule) if rule == "local" => recipe.recipe.source = None,
// download from remote build
PackageConfig::Build(rule) if rule == "binary" => {
recipe.recipe.source = None;
recipe.recipe.build.set_as_remote();
}
// don't build this recipe (unlikely to go here unless some deps need it)
// TODO: Note that we're assuming this being ignored from e.g. metapackages
// TODO: Will totally broke build if this recipe needed as some other build dependencies
PackageConfig::Build(rule) if rule == "ignore" => {
recipe.recipe.source = None;
recipe.recipe.build.set_as_none();
}
PackageConfig::Build(rule) => {
bail!(
// Fail fast because we could risk losing local changes if "local" was typo'ed
"Invalid pkg config {} = \"{}\"\nExpecting either 'source', 'local', 'binary' or 'ignore'",
recipe.name.as_str(),
rule
);
}
let repo_binary = conf.general.repo_binary == Some(true);
let mut last_rule = if repo_binary { "binary" } else { "source" };
// Use rev() so recipes that don't listed in config is inherited from parent
for recipe in recipes.iter_mut().rev() {
if let Some(conf) = conf.packages.get(recipe.name.as_str()) {
last_rule = match conf {
PackageConfig::Build(rule) => &rule,
_ => {
if conf.general.repo_binary == Some(true) {
// same reason as Build("binary")
recipe.recipe.source = None;
recipe.recipe.build.set_as_remote();
if repo_binary {
"binary"
} else {
"source"
}
}
}
} else {
if conf.general.repo_binary == Some(true) {
};
match last_rule {
// build from source as usual
"source" => {}
// keep local changes
"local" => recipe.recipe.source = None,
// download from remote build
"binary" => {
recipe.recipe.source = None;
recipe.recipe.build.set_as_remote();
}
// don't build this recipe (unlikely to go here unless some deps need it)
// TODO: Note that we're assuming this being ignored from e.g. metapackages
// TODO: Will totally broke build if this recipe needed as some other build dependencies
"ignore" => {
recipe.recipe.source = None;
recipe.recipe.build.set_as_none();
}
rule => {
bail!(
// Fail fast because we could risk losing local changes if "local" was typo'ed
"Invalid pkg config {} = \"{}\"\nExpecting either 'source', 'local', 'binary' or 'ignore'",
recipe.name.as_str(),
rule
);
}
}
}
}

View File

@ -98,7 +98,7 @@ fn publish_packages(config: &CliConfig) -> anyhow::Result<()> {
for package in cookbook_recipe.recipe.get_packages_list() {
let (stage_dir, pkgar_src, toml_src) =
cook_package::package_stage_paths(package, &target_dir);
let recipe_name = recipe.without_host();
let recipe_name = cook_package::get_package_name(recipe.name(), package);
let pkgar_dst = repo_path.join(format!("{}.pkgar", recipe_name));
let toml_dst = repo_path.join(format!("{}.toml", recipe_name));

View File

@ -21,7 +21,7 @@ use std::{
use crate::{is_redox, log_to_pty};
fn auto_deps_from_dynamic_linking(
stage_dirs: &Vec<PathBuf>,
stage_dirs: &[PathBuf],
target_dir: &Path,
dep_pkgars: &BTreeSet<(PackageName, PathBuf)>,
logger: &PtyOut,
@ -188,12 +188,13 @@ pub fn build(
let mut dep_pkgars = BTreeSet::new();
let mut dep_host_pkgars = BTreeSet::new();
let mut build_deps =
CookRecipe::get_build_deps_recursive(&recipe.build.dependencies, false, false)
.map_err(|e| format!("{:?}", e))?;
for dep in &recipe.build.dev_dependencies {
build_deps.push(CookRecipe::from_name(dep.clone()).map_err(|e| format!("{:?}", e))?);
}
let build_deps = [
&recipe.build.dependencies[..],
&recipe.build.dev_dependencies[..],
]
.concat();
let build_deps = CookRecipe::get_build_deps_recursive(&build_deps, false, false)
.map_err(|e| format!("{:?}", e))?;
for dependency in build_deps.iter() {
let (_, pkgar, _) = dependency.stage_paths();
if dependency.name.is_host() {
@ -600,7 +601,7 @@ mod tests {
);
let entries = super::auto_deps_from_dynamic_linking(
&root,
&vec![root.clone()],
&root.join(".."),
&Default::default(),
&None,

View File

@ -72,19 +72,8 @@ pub fn package(
.map_err(|err| format!("failed to create pkgar archive: {:?}", err))?;
}
let deps = if let Some(package) = package {
let mut b = BTreeSet::new();
for dep in &package.dependencies {
let dep_name = if dep.name() == "" {
PackageName::new(format!("{}.{}", name.name(), package.name))
.map_err(|e| format!("{}", e))?
} else {
dep.clone()
};
b.insert(dep_name);
}
b.insert(name.clone());
b
let deps = if package.is_some() {
BTreeSet::from([name.without_host()])
} else {
auto_deps.clone()
};
@ -96,7 +85,17 @@ pub fn package(
None => name.clone(),
};
let package_deps = match package {
Some(p) => p.dependencies.clone(),
Some(p) => p
.dependencies
.iter()
.map(|dep| {
if dep.name().is_empty() {
name.with_suffix(dep.suffix())
} else {
dep.clone()
}
})
.collect(),
None => recipe.package.dependencies.clone(),
};
package_toml(

View File

@ -12,6 +12,8 @@ function DYNAMIC_INIT {
case "${TARGET}" in
"x86_64-unknown-redox")
;;
"aarch64-unknown-redox")
;;
"x86_64-unknown-linux-gnu")
;;
"aarch64-unknown-linux-gnu")

View File

@ -15,7 +15,7 @@ use serde::{
use crate::{WALK_DEPTH, cook::package as cook_package};
/// Specifies how to download the source for a recipe
#[derive(Debug, Clone, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[serde(untagged)]
pub enum SourceRecipe {
/// Reuse the source directory of another package
@ -450,7 +450,7 @@ mod tests {
#[test]
fn git_cargo_recipe() {
use crate::recipe::{BuildKind, BuildRecipe, PackageRecipe, Recipe, SourceRecipe};
use crate::recipe::{BuildKind, BuildRecipe, Recipe, SourceRecipe};
let recipe: Recipe = toml::from_str(
r#"
@ -470,9 +470,12 @@ mod tests {
Recipe {
source: Some(SourceRecipe::Git {
git: "https://gitlab.redox-os.org/redox-os/acid.git".to_string(),
upstream: None,
branch: Some("master".to_string()),
rev: Some("06344744d3d55a5ac9a62a6059cb363d40699bbc".to_string()),
..Default::default()
patches: Vec::new(),
script: None,
shallow_clone: None,
}),
build: BuildRecipe::new(BuildKind::Cargo {
package_path: None,
@ -485,7 +488,7 @@ mod tests {
#[test]
fn tar_custom_recipe() {
use crate::recipe::{BuildKind, BuildRecipe, PackageRecipe, Recipe, SourceRecipe};
use crate::recipe::{BuildKind, BuildRecipe, Recipe, SourceRecipe};
let recipe: Recipe = toml::from_str(
r#"
@ -544,7 +547,7 @@ mod tests {
build: BuildRecipe::new(BuildKind::None),
package: PackageRecipe {
dependencies: vec![PackageName::new("gcc13").unwrap()],
....Default::default()
..Default::default()
},
..Default::default()
}