diff --git a/.azure/OneBranch.Official.yml b/.azure/OneBranch.Official.yml index 9f023aaa2d..80de7ea1e9 100644 --- a/.azure/OneBranch.Official.yml +++ b/.azure/OneBranch.Official.yml @@ -78,10 +78,10 @@ extends: - container: linux_build_container # Default container image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-20.04-cross' type: Linux - - container: ubuntu_2204_cross + - container: kernel5_15_cross image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-22.04-cross' type: Linux - - container: ubuntu_2404_cross + - container: kernel6_8_cross image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-24.04-cross' type: Linux @@ -179,23 +179,23 @@ extends: - template: .azure/obtemplates/build-linux.yml@self parameters: config: Release - os: ubuntu_2204 + kernel: "kernel5_15" tls: openssl3 - template: .azure/obtemplates/build-linux.yml@self parameters: config: Debug - os: ubuntu_2204 + kernel: "kernel5_15" tls: openssl3 - template: .azure/obtemplates/build-linux.yml@self parameters: config: Release - os: ubuntu_2404 + kernel: "kernel6_8" tls: openssl3 xdp: "-UseXdp" - template: .azure/obtemplates/build-linux.yml@self parameters: config: Debug - os: ubuntu_2404 + kernel: "kernel6_8" tls: openssl3 xdp: "-UseXdp" diff --git a/.azure/OneBranch.Package.yml b/.azure/OneBranch.Package.yml index 051dd6e3fe..46a17fcec2 100644 --- a/.azure/OneBranch.Package.yml +++ b/.azure/OneBranch.Package.yml @@ -95,7 +95,7 @@ extends: ob_createvpack_owneralias: quicdev ob_createvpack_description: msquic.$(Build.SourceBranchName) ob_createvpack_versionAs: string - ob_createvpack_version: 2.4.3-$(Build.BuildId) + ob_createvpack_version: 2.4.4-$(Build.BuildId) steps: - task: DownloadPipelineArtifact@2 inputs: diff --git a/.azure/OneBranch.Publish.yml b/.azure/OneBranch.Publish.yml index 9df1a6cc88..56d8e2e993 100644 --- a/.azure/OneBranch.Publish.yml +++ b/.azure/OneBranch.Publish.yml @@ -15,73 +15,83 @@ variables: DisableDockerDetector: true parameters: -- name: opensslrpmcblrepos +- name: debug # debug mode will not actually upload and publish packages + type: boolean + default: false + + # build on ubuntu 20.04 openssl 1.1 +- name: kernel5_4rpmcblrepos type: object default: - cbl-mariner-1.0-prod-Microsoft-x86_64-rpms-yum - cbl-mariner-2.0-prod-Microsoft-x86_64-yum - cbl-mariner-2.0-prod-Microsoft-aarch64-yum -- name: opensslrpmrepos +- name: kernel5_4rpmrepos type: object default: - - microsoft-sles12-prod-yum - - microsoft-sles15-prod-yum - - microsoft-centos7-prod-yum - - microsoft-centos8-prod-yum - - microsoft-opensuse15-prod-yum - - microsoft-fedora32-prod-yum - - microsoft-fedora33-prod-yum - - microsoft-fedora34-prod-yum - - microsoft-fedora37-prod-yum - - microsoft-rhel7.3-prod-yum - - microsoft-rhel8.0-prod-yum - - microsoft-rhel8.1-prod-yum -- name: openssldebrepos + - microsoft-sles12-prod-yum # 12 3.12 + - microsoft-sles15-prod-yum # 15 4.12 + - microsoft-centos7-prod-yum # 7 3.10 + - microsoft-centos8-prod-yum # 8 4.18 + - microsoft-opensuse15-prod-yum # 15 4.12 + - microsoft-fedora32-prod-yum # 32 5.6 + - microsoft-fedora33-prod-yum # 33 5.8 + - microsoft-fedora34-prod-yum # 34 5.11 + - microsoft-fedora35-prod-yum # 35 5.14 + - microsoft-rhel7.3-prod-yum # 7.3 3.10 + - microsoft-rhel8.0-prod-yum # 8.0 4.18 + - microsoft-rhel8.1-prod-yum # 8.1 4.18 +- name: kernel5_4debrepos type: object default: - - microsoft-debian-stretch-prod-apt - - microsoft-debian-buster-prod-apt - - microsoft-debian-bullseye-prod-apt -- name: openssl3debrepos + - microsoft-ubuntu-xenial-prod-apt # 16.04 4.4 + - microsoft-ubuntu-bionic-prod-apt # 18.04 4.15 + - microsoft-ubuntu-focal-prod-apt # 20.04 5.4 + - microsoft-ubuntu-groovy-prod-apt # 20.10 5.8 + - microsoft-ubuntu-hirsute-prod-apt # 21.04 5.11 + - microsoft-debian-stretch-prod-apt # 9 4.9 + - microsoft-debian-buster-prod-apt # 10 4.19 + - microsoft-debian-bullseye-prod-apt # 11 5.10 + + # built on ubuntu 22.04, openssl3 +- name: kernel5_15rpmrepos type: object default: - - microsoft-debian-bookworm-prod-apt -- name: openssl3rpmrepos + - microsoft-fedora36-prod-yum # 36 5.17 + - microsoft-fedora37-prod-yum # 37 6.0 + - microsoft-fedora38-prod-yum # 38 6.2 + - microsoft-fedora39-prod-yum # 39 6.5 + - microsoft-rhel9.0-prod-yum # 9.0 5.14 +- name: kernel5_15debrepos type: object default: - - microsoft-fedora36-prod-yum - - microsoft-fedora38-prod-yum - - microsoft-fedora39-prod-yum - - microsoft-rhel9.0-prod-yum -- name: debug # debug mode will not actually upload and publish packages - type: boolean - default: false -- name: ubuntu20repos + - microsoft-ubuntu-jammy-prod-apt # 22.04 5.15 + - microsoft-ubuntu-kinetic-prod-apt # 22.10 5.19 + - microsoft-ubuntu-lunar-prod-apt # 23.04 6.2 + - microsoft-ubuntu-mantic-prod-apt # 23.10 6.5 + - microsoft-debian-bookworm-prod-apt # 12 6.1 + + # built on ubuntu 24.04 openssl3 XDP +- name: kernel6_8cblrpmrepos type: object default: - - microsoft-ubuntu-xenial-prod-apt - - microsoft-ubuntu-bionic-prod-apt - - microsoft-ubuntu-focal-prod-apt - - microsoft-ubuntu-groovy-prod-apt - - microsoft-ubuntu-hirsute-prod-apt -- name: ubuntu22repos + - azurelinux-3.0-prod-ms-oss-x86_64-yum # 3.0 6.6 + - azurelinux-3.0-prod-ms-oss-aarch64-yum # 3.0 6.6 +- name: kernel6_8rpmrepos type: object default: - - microsoft-ubuntu-jammy-prod-apt - - microsoft-ubuntu-kinetic-prod-apt - - microsoft-ubuntu-lunar-prod-apt - - microsoft-ubuntu-mantic-prod-apt -- name: ubuntu24repos + - microsoft-fedora40-prod-yum # 40 6.8 +- name: kernel6_8debrepos type: object default: - - microsoft-ubuntu-noble-prod-apt + - microsoft-ubuntu-noble-prod-apt # 24.04 6.8 stages: - stage: UploadPackage_stage condition: or(startsWith(variables['Build.SourceBranch'], 'refs/tags/'), eq(variables['Build.Reason'], 'Manual')) jobs: - - job: UploadPackage_openssl_debs - displayName: Upload openSSL based DEB packages to repos + - job: UploadPackage_kernel5_4_debs + displayName: Upload kernel5_4 based DEB packages to repos timeoutInMinutes: 120 workspace: clean: all @@ -98,20 +108,20 @@ stages: preferTriggeringPipeline: true runVersion: specific runId: $(resources.pipeline.onebranch.runID) - artifact: drop_package_linux_distribution_ubuntu_2004_openssl - path: $(Build.SourcesDirectory)/artifacts/signed/openssl + artifact: drop_package_linux_distribution_kernel5_4 + path: $(Build.SourcesDirectory)/artifacts/signed/kernel5_4 - task: DownloadSecureFile@1 name: pmcv4cert displayName: 'Download cert for PMC v4' inputs: secureFile: 'auth.pem' - - ${{ each repo in parameters.openssldebrepos }}: - - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/openssl/gen -r ${{ repo }} -n "*.deb" + - ${{ each repo in parameters.kernel5_4debrepos }}: + - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel5_4/gen -r ${{ repo }} -n "*.deb" condition: eq(${{ parameters.debug }}, false) displayName: ${{ repo }} continueOnError: true - - job: UploadPackage_openssl_rpms - displayName: Upload openSSL based RPM packages to repos + - job: UploadPackage_kernel5_4_rpms + displayName: Upload kernel5_4 based RPM packages to repos timeoutInMinutes: 120 workspace: clean: all @@ -128,20 +138,20 @@ stages: preferTriggeringPipeline: true runVersion: specific runId: $(resources.pipeline.onebranch.runID) - artifact: drop_package_linux_distribution_ubuntu_2004_openssl - path: $(Build.SourcesDirectory)/artifacts/signed/openssl + artifact: drop_package_linux_distribution_kernel5_4 + path: $(Build.SourcesDirectory)/artifacts/signed/kernel5_4 - task: DownloadSecureFile@1 name: pmcv4cert displayName: 'Download cert for PMC v4' inputs: secureFile: 'auth.pem' - - ${{ each repo in parameters.opensslrpmrepos }}: - - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/openssl/gen -r ${{ repo }} -n "*.rpm" + - ${{ each repo in parameters.kernel5_4rpmrepos }}: + - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel5_4/gen -r ${{ repo }} -n "*.rpm" condition: eq(${{ parameters.debug }}, false) displayName: ${{ repo }} continueOnError: true - - job: UploadPackage_openssl_rpms_cbl - displayName: Upload openSSL based RPM packages to CBL repos + - job: UploadPackage_kernel5_4_rpms_cbl + displayName: Upload kernel5_4 based RPM packages to CBL repos timeoutInMinutes: 120 workspace: clean: all @@ -158,20 +168,20 @@ stages: preferTriggeringPipeline: true runVersion: specific runId: $(resources.pipeline.onebranch.runID) - artifact: drop_package_linux_distribution_ubuntu_2004_openssl - path: $(Build.SourcesDirectory)/artifacts/signed/openssl + artifact: drop_package_linux_distribution_kernel5_4 + path: $(Build.SourcesDirectory)/artifacts/signed/kernel5_4 - task: DownloadSecureFile@1 name: pmcv4cert displayName: 'Download cert for PMC v4' inputs: secureFile: 'auth.pem' - - ${{ each repo in parameters.opensslrpmcblrepos }}: - - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/openssl/cbl -r ${{ repo }} -n "*.rpm" + - ${{ each repo in parameters.kernel5_4rpmcblrepos }}: + - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel5_4/cbl -r ${{ repo }} -n "*.rpm" condition: eq(${{ parameters.debug }}, false) displayName: ${{ repo }} continueOnError: true - - job: UploadPackage_openssl3_debs - displayName: Upload openSSL3 based DEB packages to repos + - job: UploadPackage_kernel6_8_rpms_cbl + displayName: Upload kernel6_8 based RPM packages to CBL repos timeoutInMinutes: 120 workspace: clean: all @@ -188,20 +198,20 @@ stages: preferTriggeringPipeline: true runVersion: specific runId: $(resources.pipeline.onebranch.runID) - artifact: drop_package_linux_distribution_ubuntu_2204_openssl3 - path: $(Build.SourcesDirectory)/artifacts/signed/openssl3 + artifact: drop_package_linux_distribution_kernel6_8 + path: $(Build.SourcesDirectory)/artifacts/signed/kernel6_8 - task: DownloadSecureFile@1 name: pmcv4cert displayName: 'Download cert for PMC v4' inputs: secureFile: 'auth.pem' - - ${{ each repo in parameters.openssl3debrepos }}: - - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/openssl3/gen -r ${{ repo }} -n "*.deb" + - ${{ each repo in parameters.kernel6_8cblrpmrepos }}: + - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel6_8/cbl -r ${{ repo }} -n "*.rpm" condition: eq(${{ parameters.debug }}, false) displayName: ${{ repo }} continueOnError: true - - job: UploadPackage_ubuntu20 - displayName: Upload Ubuntu 20 packages to repos + - job: UploadPackage_kernel5_15_debs + displayName: Upload kernel5_15 based DEB packages to repos timeoutInMinutes: 120 workspace: clean: all @@ -218,20 +228,20 @@ stages: preferTriggeringPipeline: true runVersion: specific runId: $(resources.pipeline.onebranch.runID) - artifact: drop_package_linux_distribution_ubuntu_2004_openssl - path: $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2004_openssl + artifact: drop_package_linux_distribution_kernel5_15 + path: $(Build.SourcesDirectory)/artifacts/signed/kernel5_15 - task: DownloadSecureFile@1 name: pmcv4cert displayName: 'Download cert for PMC v4' inputs: secureFile: 'auth.pem' - - ${{ each repo in parameters.ubuntu20repos }}: - - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2004_openssl/gen -r ${{ repo }} -n "*.deb" + - ${{ each repo in parameters.kernel5_15debrepos }}: + - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel5_15/gen -r ${{ repo }} -n "*.deb" condition: eq(${{ parameters.debug }}, false) displayName: ${{ repo }} continueOnError: true - - job: UploadPackage_ubuntu22 - displayName: Upload Ubuntu 22 packages to repos + - job: UploadPackage_kernel6_8_debs + displayName: Upload kernel6_8 based DEB packages to repos timeoutInMinutes: 120 workspace: clean: all @@ -248,20 +258,20 @@ stages: preferTriggeringPipeline: true runVersion: specific runId: $(resources.pipeline.onebranch.runID) - artifact: drop_package_linux_distribution_ubuntu_2204_openssl3 - path: $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2204_openssl3 + artifact: drop_package_linux_distribution_kernel6_8 + path: $(Build.SourcesDirectory)/artifacts/signed/kernel6_8 - task: DownloadSecureFile@1 name: pmcv4cert displayName: 'Download cert for PMC v4' inputs: secureFile: 'auth.pem' - - ${{ each repo in parameters.ubuntu22repos }}: - - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2204_openssl3/gen -r ${{ repo }} -n "*.deb" + - ${{ each repo in parameters.kernel6_8debrepos }}: + - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel6_8/gen -r ${{ repo }} -n "*.deb" condition: eq(${{ parameters.debug }}, false) displayName: ${{ repo }} continueOnError: true - - job: UploadPackage_ubuntu24 - displayName: Upload Ubuntu 24 packages to repos + - job: UploadPackage_kernel5_15_rpms + displayName: Upload kernel5_15 based RPM packages to repos timeoutInMinutes: 120 workspace: clean: all @@ -278,20 +288,20 @@ stages: preferTriggeringPipeline: true runVersion: specific runId: $(resources.pipeline.onebranch.runID) - artifact: drop_package_linux_distribution_ubuntu_2404_openssl3 - path: $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2404_openssl3 + artifact: drop_package_linux_distribution_kernel5_15 + path: $(Build.SourcesDirectory)/artifacts/signed/kernel5_15 - task: DownloadSecureFile@1 name: pmcv4cert displayName: 'Download cert for PMC v4' inputs: secureFile: 'auth.pem' - - ${{ each repo in parameters.ubuntu24repos }}: - - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2404_openssl3/gen -r ${{ repo }} -n "*.deb" + - ${{ each repo in parameters.kernel5_15rpmrepos }}: + - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel5_15/gen -r ${{ repo }} -n "*.rpm" condition: eq(${{ parameters.debug }}, false) displayName: ${{ repo }} continueOnError: true - - job: UploadPackage_openssl3_rpms - displayName: Upload openSSL3 based RPM packages to repos + - job: UploadPackage_kernel6_8_rpms + displayName: Upload kernel6_8 based RPM packages to repos timeoutInMinutes: 120 workspace: clean: all @@ -308,15 +318,15 @@ stages: preferTriggeringPipeline: true runVersion: specific runId: $(resources.pipeline.onebranch.runID) - artifact: drop_package_linux_distribution_ubuntu_2204_openssl3 - path: $(Build.SourcesDirectory)/artifacts/signed/openssl3 + artifact: drop_package_linux_distribution_kernel6_8 + path: $(Build.SourcesDirectory)/artifacts/signed/kernel6_8 - task: DownloadSecureFile@1 name: pmcv4cert displayName: 'Download cert for PMC v4' inputs: secureFile: 'auth.pem' - - ${{ each repo in parameters.openssl3rpmrepos }}: - - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/openssl3/gen -r ${{ repo }} -n "*.rpm" + - ${{ each repo in parameters.kernel6_8rpmrepos }}: + - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel6_8/gen -r ${{ repo }} -n "*.rpm" condition: eq(${{ parameters.debug }}, false) displayName: ${{ repo }} continueOnError: true diff --git a/.azure/OneBranch.PullRequest.yml b/.azure/OneBranch.PullRequest.yml index 26b049c9df..d81a433355 100644 --- a/.azure/OneBranch.PullRequest.yml +++ b/.azure/OneBranch.PullRequest.yml @@ -74,10 +74,10 @@ extends: - container: linux_build_container # Default container image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-20.04-cross' type: Linux - - container: ubuntu_2204_cross + - container: kernel5_15_cross image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-22.04-cross' type: Linux - - container: ubuntu_2404_cross + - container: kernel6_8_cross image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-24.04-cross' type: Linux @@ -175,23 +175,23 @@ extends: - template: .azure/obtemplates/build-linux.yml@self parameters: config: Release - os: ubuntu_2204 + kernel: "kernel5_15" tls: openssl3 - template: .azure/obtemplates/build-linux.yml@self parameters: config: Debug - os: ubuntu_2204 + kernel: "kernel5_15" tls: openssl3 - template: .azure/obtemplates/build-linux.yml@self parameters: config: Release - os: ubuntu_2404 + kernel: "kernel6_8" tls: openssl3 xdp: "-UseXdp" - template: .azure/obtemplates/build-linux.yml@self parameters: config: Debug - os: ubuntu_2404 + kernel: "kernel6_8" tls: openssl3 xdp: "-UseXdp" diff --git a/.azure/obtemplates/build-distribution.yml b/.azure/obtemplates/build-distribution.yml index 377a6ce3bb..da280a297e 100644 --- a/.azure/obtemplates/build-distribution.yml +++ b/.azure/obtemplates/build-distribution.yml @@ -13,39 +13,39 @@ jobs: - template: ./download-artifacts.yml parameters: platform: linux - linuxos: ubuntu_2004 + kernel: kernel5_4 config: Release tls: openssl - template: ./download-artifacts.yml parameters: platform: linux - linuxos: ubuntu_2004 + kernel: kernel5_4 config: Debug tls: openssl - template: ./download-artifacts.yml parameters: platform: linux - linuxos: ubuntu_2204 + kernel: kernel5_15 config: Release tls: openssl3 - template: ./download-artifacts.yml parameters: platform: linux - linuxos: ubuntu_2204 + kernel: kernel5_15 config: Debug tls: openssl3 - template: ./download-artifacts.yml parameters: platform: linux - linuxos: ubuntu_2404 + kernel: kernel6_8 config: Release tls: openssl3 - template: ./download-artifacts.yml parameters: platform: linux - linuxos: ubuntu_2404 + kernel: kernel6_8 config: Debug tls: openssl3 diff --git a/.azure/obtemplates/build-linux-packages.yml b/.azure/obtemplates/build-linux-packages.yml index 7dee1aa9f4..d23327603f 100644 --- a/.azure/obtemplates/build-linux-packages.yml +++ b/.azure/obtemplates/build-linux-packages.yml @@ -7,19 +7,16 @@ jobs: strategy: matrix: ubuntu_2004: - os: ubuntu_2004 - tls: openssl + kernel: "kernel5_4" ubuntu_2204: - os: ubuntu_2204 - tls: openssl3 + kernel: "kernel5_15" ubuntu_2404: - os: ubuntu_2404 - tls: openssl3 + kernel: "kernel6_8" pool: type: linux variables: ob_outputDirectory: $(Build.SourcesDirectory)/artifacts/dist - ob_artifactSuffix: _$(os)_$(tls) + ob_artifactSuffix: _$(kernel) # drop_package_linux_${{ jobname }}_${{ kernel }} steps: - task: PowerShell@2 displayName: Prepare Build Machine @@ -29,12 +26,12 @@ jobs: arguments: -ForContainerBuild - task: DownloadPipelineArtifact@2 inputs: - artifact: drop_build_linux_build_$(os)_$(tls)_Debug + artifact: drop_build_linux_$(kernel)_Debug path: $(Build.SourcesDirectory)/artifacts/bin/linux pattern: '*.tar' - task: DownloadPipelineArtifact@2 inputs: - artifact: drop_build_linux_build_$(os)_$(tls)_Release + artifact: drop_build_linux_$(kernel)_Release path: $(Build.SourcesDirectory)/artifacts/bin/linux pattern: '*.tar' - script: | # rebuild artifacts with correct permissions and symlink attributes. @@ -46,7 +43,6 @@ jobs: inputs: pwsh: false filePath: scripts/package-distribution.ps1 - arguments: -OS $(os) - script: | # prepare 2 sets of packages for signing with different keys (gen = general purpose, cbl = cbl-mariner) mkdir $(Build.SourcesDirectory)/artifacts/dist/gen find $(Build.SourcesDirectory)/artifacts/dist -type f -exec mv -t $(Build.SourcesDirectory)/artifacts/dist/gen/ {} + diff --git a/.azure/obtemplates/build-linux.yml b/.azure/obtemplates/build-linux.yml index 5fd6f8e054..6eb4e59819 100644 --- a/.azure/obtemplates/build-linux.yml +++ b/.azure/obtemplates/build-linux.yml @@ -2,12 +2,12 @@ parameters: config: '' tls: 'openssl' platform: 'linux' - os: 'ubuntu_2004' + kernel: 'kernel5_4' xdp: '' jobs: -- job: build_${{ parameters.os }}_${{ parameters.tls }}_${{ parameters.config }} - displayName: ${{ parameters.os }} ${{ parameters.tls }} ${{ parameters.config }} +- job: ${{ parameters.kernel }}_${{ parameters.config }} # this job name becomes artifact suffix in the build pipeline + displayName: ${{ parameters.platform }} ${{ parameters.kernel }} ${{ parameters.tls }} ${{ parameters.config }} pool: type: linux variables: @@ -17,48 +17,48 @@ jobs: steps: - task: PowerShell@2 displayName: Prepare Build Machine - ${{ if eq(parameters.os, 'ubuntu_2004') }}: + ${{ if eq(parameters.kernel, 'kernel5_4') }}: target: linux_build_container - ${{ elseif eq(parameters.os, 'ubuntu_2204') }}: - target: ubuntu_2204_cross + ${{ elseif eq(parameters.kernel, 'kernel5_15') }}: + target: kernel5_15_cross ${{ else }}: - target: ubuntu_2404_cross + target: kernel6_8_cross inputs: pwsh: true filePath: scripts/prepare-machine.ps1 arguments: -Tls ${{ parameters.tls }} -ForContainerBuild - task: PowerShell@2 displayName: x64 - ${{ if eq(parameters.os, 'ubuntu_2004') }}: + ${{ if eq(parameters.kernel, 'kernel5_4') }}: target: linux_build_container - ${{ elseif eq(parameters.os, 'ubuntu_2204') }}: - target: ubuntu_2204_cross + ${{ elseif eq(parameters.kernel, 'kernel5_15') }}: + target: kernel5_15_cross ${{ else }}: - target: ubuntu_2404_cross + target: kernel6_8_cross inputs: pwsh: true filePath: scripts/build.ps1 arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} ${{ parameters.xdp }} -Arch x64 -CI -UseSystemOpenSSLCrypto -OneBranch -OfficialRelease - task: PowerShell@2 displayName: arm64 - ${{ if eq(parameters.os, 'ubuntu_2004') }}: + ${{ if eq(parameters.kernel, 'kernel5_4') }}: target: linux_build_container - ${{ elseif eq(parameters.os, 'ubuntu_2204') }}: - target: ubuntu_2204_cross + ${{ elseif eq(parameters.kernel, 'kernel5_15') }}: + target: kernel5_15_cross ${{ else }}: - target: ubuntu_2404_cross + target: kernel6_8_cross inputs: pwsh: true filePath: scripts/build.ps1 arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} -Arch arm64 -CI -UseSystemOpenSSLCrypto -OneBranch -OfficialRelease - task: PowerShell@2 displayName: arm - ${{ if eq(parameters.os, 'ubuntu_2004') }}: + ${{ if eq(parameters.kernel, 'kernel5_4') }}: target: linux_build_container - ${{ elseif eq(parameters.os, 'ubuntu_2204') }}: - target: ubuntu_2204_cross + ${{ elseif eq(parameters.kernel, 'kernel5_15') }}: + target: kernel5_15_cross ${{ else }}: - target: ubuntu_2404_cross + target: kernel6_8_cross inputs: pwsh: true filePath: scripts/build.ps1 diff --git a/.azure/obtemplates/download-artifacts.yml b/.azure/obtemplates/download-artifacts.yml index d6a92f31dd..7958379514 100644 --- a/.azure/obtemplates/download-artifacts.yml +++ b/.azure/obtemplates/download-artifacts.yml @@ -2,7 +2,7 @@ parameters: platform: '' - linuxos: 'ubuntu_2004' + kernel: 'kernel5_4' tls: '' config: '' @@ -16,7 +16,7 @@ steps: runVersion: specific runId: $(resources.pipeline.onebranch.runID) ${{ if eq(parameters.platform, 'linux') }}: - artifact: drop_build_${{ parameters.platform }}_build_${{ parameters.linuxos }}_${{ parameters.tls }}_${{ parameters.config }} + artifact: drop_build_${{ parameters.platform }}_${{ parameters.kernel }}_${{ parameters.config }} ${{ else }}: artifact: drop_build_${{ parameters.platform }}_build_${{ parameters.platform }}_${{ parameters.tls }}_${{ parameters.config }} path: $(Build.SourcesDirectory)/artifacts/bin/${{ parameters.platform }} diff --git a/.github/workflows/package-linux.yml b/.github/workflows/package-linux.yml index 18e3846969..7b07fff506 100644 --- a/.github/workflows/package-linux.yml +++ b/.github/workflows/package-linux.yml @@ -58,13 +58,6 @@ jobs: ] runs-on: ${{ matrix.vec.os }} steps: - - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - with: - fetch-depth: 0 - - name: Prepare Machine - shell: pwsh - run: scripts/prepare-machine.ps1 -ForTest ${{ matrix.vec.xdp }} - name: Download Package uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 with: @@ -80,7 +73,7 @@ jobs: sudo apt-add-repository ppa:lttng/stable-2.13 sudo apt-get update sudo apt-get install -y lttng-tools - sudo find -name "*.deb" -exec dpkg -i {} \; + sudo find -name "*.deb" -exec sudo apt install -y ./{} \; rm artifacts/bin/linux/${{ matrix.vec.arch }}_${{ matrix.vec.config }}_${{ matrix.vec.tls }}/libmsquic.so* ls artifacts/bin/linux/${{ matrix.vec.arch }}_${{ matrix.vec.config }}_${{ matrix.vec.tls }} - name: Test diff --git a/.github/workflows/package-reuse-linux.yml b/.github/workflows/package-reuse-linux.yml index 6f4118d6e2..9a5872d28b 100644 --- a/.github/workflows/package-reuse-linux.yml +++ b/.github/workflows/package-reuse-linux.yml @@ -96,7 +96,7 @@ jobs: find -name "*.tar" -exec tar -xvf '{}' \; - name: Build Package shell: pwsh - run: scripts/package-distribution.ps1 + run: scripts/package-distribution.ps1 -OS ${{ inputs.os }} - name: Upload build artifacts uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b with: diff --git a/CMakeLists.txt b/CMakeLists.txt index 12d1c26dd5..c20dcd1a1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,7 +56,7 @@ message(STATUS "Platform version: ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}") message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") set(QUIC_MAJOR_VERSION 2) -set(QUIC_FULL_VERSION 2.4.3) +set(QUIC_FULL_VERSION 2.4.4) if (WIN32) set(CX_PLATFORM "windows") diff --git a/Cargo.toml b/Cargo.toml index 7fe377c83b..5a30f3abd6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "msquic" -version = "2.4.3-beta" +version = "2.4.4-beta" edition = "2018" authors = ["Microsoft"] description = "Microsoft implementation of the IETF QUIC protocol" diff --git a/scripts/make-packages.sh b/scripts/make-packages.sh index c6afc20235..c60375221a 100755 --- a/scripts/make-packages.sh +++ b/scripts/make-packages.sh @@ -139,18 +139,41 @@ echo "ARCH=$ARCH PKGARCH=$PKGARCH ARTIFACTS=$ARTIFACTS" mkdir -p ${OUTPUT} if [ "$OS" == "linux" ]; then + # RedHat/CentOS + FILES="${ARTIFACTS}/libmsquic.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}=/usr/${LIBDIR}/libmsquic.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}" + FILES="${FILES} ${ARTIFACTS}/libmsquic.${LIBEXT}.${VER_MAJOR}=/usr/${LIBDIR}/libmsquic.${LIBEXT}.${VER_MAJOR}" + if [ -e "$ARTIFACTS/libmsquic.lttng.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}" ]; then + FILES="${FILES} ${ARTIFACTS}/libmsquic.lttng.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}=/usr/${LIBDIR}/libmsquic.lttng.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}" + fi + if [ "$PKGARCH" == 'aarch64' ] || [ "$PKGARCH" == 'x86_64' ]; then + BITS='64bit' + fi # XDP is only validated on Ubuntu 24.04 and x64 - if [ "$XDP" == "False" ] || [[ "$ARCH" == arm* ]]; then + if [ "$XDP" == "True" ] && [[ "$ARCH" == x* ]]; then + echo "Building rpm package (XDP)" + fpm \ + --force \ + --input-type dir \ + --output-type rpm \ + --architecture ${PKGARCH} \ + --name ${NAME} \ + --provides ${NAME} \ + --depends "libcrypto.so.${TLSVERSION}()(${BITS})" \ + --depends "libnuma.so.1()(${BITS})" \ + --depends "libxdp >= 1.4.0" \ + --depends "libnl3 >= 3.0" \ + --conflicts ${CONFLICTS} \ + --version ${VER_MAJOR}.${VER_MINOR}.${VER_PATCH} \ + --description "${DESCRIPTION}" \ + --vendor "${VENDOR}" \ + --maintainer "${MAINTAINER}" \ + --package "${OUTPUT}" \ + --license MIT \ + --url https://github.com/microsoft/msquic \ + --log error \ + ${FILES} ${ARTIFACTS}/datapath_raw_xdp_kern.o=/usr/${LIBDIR}/datapath_raw_xdp_kern.o + else echo "Building rpm package" - # RedHat/CentOS - FILES="${ARTIFACTS}/libmsquic.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}=/usr/${LIBDIR}/libmsquic.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}" - FILES="${FILES} ${ARTIFACTS}/libmsquic.${LIBEXT}.${VER_MAJOR}=/usr/${LIBDIR}/libmsquic.${LIBEXT}.${VER_MAJOR}" - if [ -e "$ARTIFACTS/libmsquic.lttng.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}" ]; then - FILES="${FILES} ${ARTIFACTS}/libmsquic.lttng.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}=/usr/${LIBDIR}/libmsquic.lttng.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}" - fi - if [ "$PKGARCH" == 'aarch64' ] || [ "$PKGARCH" == 'x86_64' ]; then - BITS='64bit' - fi fpm \ --force \ --input-type dir \ diff --git a/scripts/package-distribution.ps1 b/scripts/package-distribution.ps1 index be6ed4759a..7e29f20934 100644 --- a/scripts/package-distribution.ps1 +++ b/scripts/package-distribution.ps1 @@ -6,19 +6,6 @@ #> -param ( - [Parameter(Mandatory = $false)] - [ValidateSet("ubuntu_2404", "ubuntu_2204", "ubuntu_2004", "")] - [string]$OS = "" -) - -$UseXdp = $false -$Time64Distro = $false -if ($OS -eq "ubuntu_2404") { - $UseXdp = $true - $Time64Distro = $true -} - Set-StrictMode -Version 'Latest' $PSDefaultParameterValues['*:ErrorAction'] = 'Stop' @@ -32,7 +19,7 @@ $ArtifactsBinDir = Join-Path $BaseArtifactsDir "bin" # All direct subfolders are OS's $Platforms = Get-ChildItem -Path $ArtifactsBinDir -$Version = "2.4.3" +$Version = "2.4.4" $WindowsBuilds = @() $AllBuilds = @() @@ -128,6 +115,17 @@ foreach ($Build in $AllBuilds) { $Libraries += Join-Path $ArtifactsDir "msquic.lib" } + # if datapath_raw_xdp_kern.o exists under $ArtifactsDir, $UseXdp to be true + $Time64Distro = $false + $UseXdp = $false + if ($Platform -eq "linux") { + $XdpBin = Join-Path $ArtifactsDir "datapath_raw_xdp_kern.o" + if (Test-Path $XdpBin) { + $UseXdp = $true + $Time64Distro = $true + } + } + # Copy items into temp folder that can be zipped in 1 command $IncludeDir = Join-Path $TempDir "include" diff --git a/scripts/package-nuget.ps1 b/scripts/package-nuget.ps1 index a2e7762e44..d74cbf9fa4 100644 --- a/scripts/package-nuget.ps1 +++ b/scripts/package-nuget.ps1 @@ -153,7 +153,7 @@ $DistDir = Join-Path $BaseArtifactsDir "dist" $CurrentCommitHash = Get-GitHash -RepoDir $RootDir $RepoRemote = Get-GitRemote -RepoDir $RootDir -$Version = "2.4.3" +$Version = "2.4.4" $BuildId = $env:BUILD_BUILDID if ($null -ne $BuildId) { diff --git a/scripts/write-versions.ps1 b/scripts/write-versions.ps1 index 884413de22..55d412b644 100644 --- a/scripts/write-versions.ps1 +++ b/scripts/write-versions.ps1 @@ -26,7 +26,7 @@ $ArtifactsDir = $BuildConfig.ArtifactsDir $SourceVersion = $env:BUILD_SOURCEVERSION; $SourceBranch = $env:BUILD_SOURCEBRANCH; $BuildId = $env:BUILD_BUILDID; -$VersionNumber = "2.4.3"; +$VersionNumber = "2.4.4"; class BuildData { [string]$SourceVersion; diff --git a/src/distribution/Info.plist b/src/distribution/Info.plist index 3d9dd9fada..6b8f47cf8b 100644 --- a/src/distribution/Info.plist +++ b/src/distribution/Info.plist @@ -19,7 +19,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleVersion - 2.4.3 + 2.4.4 NSHumanReadableCopyright MIT CFBundleGetInfoString diff --git a/src/inc/msquic.ver b/src/inc/msquic.ver index aee4b42a0d..fb198f1ad9 100644 --- a/src/inc/msquic.ver +++ b/src/inc/msquic.ver @@ -12,7 +12,7 @@ #endif #ifndef VER_PATCH -#define VER_PATCH 3 +#define VER_PATCH 4 #endif #ifndef VER_BUILD_ID diff --git a/version.json b/version.json index 3aca5b8ca3..a07c62f6f6 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -{ "major": 2, "minor": 4, "patch": 3 } +{ "major": 2, "minor": 4, "patch": 4 }