Skip to content

[POC] Enable Ubuntu 24.04 LTS support with GCC 13 compatibility#802

Draft
Nox-MSFT wants to merge 5 commits intodevelopfrom
user/nox-msft/enable-2404-build
Draft

[POC] Enable Ubuntu 24.04 LTS support with GCC 13 compatibility#802
Nox-MSFT wants to merge 5 commits intodevelopfrom
user/nox-msft/enable-2404-build

Conversation

@Nox-MSFT
Copy link
Collaborator

Major Changes:

  • Add Ubuntu 24.04 platform support with GCC 13.3.0
  • Disable Delivery Optimization (not available on 24.04)
  • Add Azure Storage SDK GCC 12+ compatibility patch
  • Update documentation for all supported platforms

Build System Changes:

  • scripts/install-deps.sh: GCC version detection and conditional patching

    • Skip gcc-8 installation on Ubuntu 24.04+
    • Auto-detect GCC version and apply Azure Storage SDK patch for GCC >= 12
    • Skip DO client installation on Ubuntu 24.04
    • Change workspace directory to .workspace/
    • Fix file ownership issues
  • scripts/build.sh: Ubuntu 24.04 detection

    • Auto-detect Ubuntu 24.04 and disable DO build
    • Update workspace path to .workspace/

CMake Changes:

  • CMakeLists.txt: Add ADUC_BUILD_WITH_DELIVERY_OPTIMIZATION option
  • src/extensions/content_downloaders/CMakeLists.txt: Conditional DO build
  • packages/CMakeLists.txt: Platform-specific package dependencies
  • cmake/agentRules.cmake: Conditional DO SDK linking

Package Changes:

  • packages/debian/postinst: Smart downloader registration
    • Register DO downloader if available, otherwise curl

Patches:

  • scripts/patches/azure-storage-sdk-base64-cstdint.patch: New patch
    • Fixes missing includes for GCC 12+
    • Applied to Azure Storage SDK base64.hpp, base64.cpp, uuid.hpp

Documentation:

  • README.md: Updated platform support table

    • Added Ubuntu 20.04, Debian 11/12 platforms
    • Added platform-specific notes for DO availability
    • Fixed Quick Start command to include unit tests flag
  • docs/agent-reference/how-to-build-agent-code.md: Comprehensive rewrite

    • Expanded platform support table with all distributions
    • Build dependencies table with LKG versions
    • Runtime dependencies section
    • Detailed per-dependency build instructions
    • GCC 12+ patch documentation with automatic detection
    • Platform-specific build notes for each OS version
    • Troubleshooting section

Tested:

  • Full build successful on Ubuntu 24.04 with GCC 13.3.0
  • All 148 unit tests passed (100%)
  • Debian package created: deviceupdate-agent_1.2.0_amd64.deb
  • curl content downloader registered as primary downloader

Nox-MSFT and others added 4 commits December 4, 2025 23:44
Major Changes:
- Add Ubuntu 24.04 platform support with GCC 13.3.0
- Disable Delivery Optimization (not available on 24.04)
- Add Azure Storage SDK GCC 12+ compatibility patch
- Update documentation for all supported platforms

Build System Changes:
- scripts/install-deps.sh: GCC version detection and conditional patching
  * Skip gcc-8 installation on Ubuntu 24.04+
  * Auto-detect GCC version and apply Azure Storage SDK patch for GCC >= 12
  * Skip DO client installation on Ubuntu 24.04
  * Change workspace directory to .workspace/
  * Fix file ownership issues

- scripts/build.sh: Ubuntu 24.04 detection
  * Auto-detect Ubuntu 24.04 and disable DO build
  * Update workspace path to .workspace/

CMake Changes:
- CMakeLists.txt: Add ADUC_BUILD_WITH_DELIVERY_OPTIMIZATION option
- src/extensions/content_downloaders/CMakeLists.txt: Conditional DO build
- packages/CMakeLists.txt: Platform-specific package dependencies
- cmake/agentRules.cmake: Conditional DO SDK linking

Package Changes:
- packages/debian/postinst: Smart downloader registration
  * Register DO downloader if available, otherwise curl

Patches:
- scripts/patches/azure-storage-sdk-base64-cstdint.patch: New patch
  * Fixes missing <cstdint> includes for GCC 12+
  * Applied to Azure Storage SDK base64.hpp, base64.cpp, uuid.hpp

Documentation:
- README.md: Updated platform support table
  * Added Ubuntu 20.04, Debian 11/12 platforms
  * Added platform-specific notes for DO availability
  * Fixed Quick Start command to include unit tests flag

- docs/agent-reference/how-to-build-agent-code.md: Comprehensive rewrite
  * Expanded platform support table with all distributions
  * Build dependencies table with LKG versions
  * Runtime dependencies section
  * Detailed per-dependency build instructions
  * GCC 12+ patch documentation with automatic detection
  * Platform-specific build notes for each OS version
  * Troubleshooting section

Tested:
- Full build successful on Ubuntu 24.04 with GCC 13.3.0
- All 148 unit tests passed (100%)
- Debian package created: deviceupdate-agent_1.2.0_amd64.deb
- curl content downloader registered as primary downloader
@Nox-MSFT Nox-MSFT changed the title Enable Ubuntu 24.04 LTS support with GCC 13 compatibility [POC] Enable Ubuntu 24.04 LTS support with GCC 13 compatibility Jan 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant