Add multi-distribution ostree backport support for Ubuntu Noble and Debian Trixie
Some checks failed
Build libostree Backport / Build libostree Backport (push) Failing after 17m20s
Build ostree Backports / Build ostree Backport for noble (push) Failing after 2m37s

- Add main ostree-backport.sh script with distribution selection
- Add wrapper scripts: backport-noble.sh and backport-trixie.sh
- Add usage-guide.sh for comprehensive documentation
- Update CI/CD workflows with improved multi-distribution support
- Add test-build.yml workflow for quick validation
- Update README.md with multi-distribution documentation
- Add CI-CD-IMPROVEMENTS.md with detailed workflow documentation
- Remove old .deb files (steam.deb, wget_1.21.4-1ubuntu4.1_amd64.deb)

Features:
- Ubuntu Noble: Source from Questing, target Noble
- Debian Trixie: Source from sid, target Trixie
- Enhanced error handling and logging
- Manual triggers for single/all distributions
- Comprehensive CI/CD documentation
This commit is contained in:
robojerk 2025-08-05 09:33:14 -07:00
parent 23c2ad7ace
commit 38e017cef3
10 changed files with 1018 additions and 21 deletions

View file

@ -1,6 +1,6 @@
# libostree-dev Backport for Ubuntu Noble
# ostree Backport for Ubuntu Noble and Debian Trixie
This repository contains a backport of libostree 2025.2-1 for Ubuntu Noble (24.04 LTS).
This repository contains backports of ostree 2025.2-1 for Ubuntu Noble (24.04 LTS) and Debian Trixie (12).
## 📦 Package Status
@ -13,15 +13,30 @@ This repository contains a backport of libostree 2025.2-1 for Ubuntu Noble (24.0
- ✅ All dependencies resolved (Rust 1.82.0+, build tools)
- ✅ Successful package uploads to Forgejo Package Registry
- ✅ Automatic token authentication working
- ✅ Multi-distribution support (Ubuntu Noble + Debian Trixie)
### What Needs Manual Action
- 🔄 **Package Assignment**: Uploaded packages need to be manually assigned to this repository via the Forgejo web interface
## 🎯 Supported Distributions
### Ubuntu Noble (24.04 LTS)
- **Source**: Ubuntu Questing
- **Target**: Ubuntu Noble
- **Package Suffix**: `~noble1`
- **Usage**: `./backport-noble.sh` or `./ostree-backport.sh noble`
### Debian Trixie (12)
- **Source**: Debian sid
- **Target**: Debian Trixie
- **Package Suffix**: `~trixie1`
- **Usage**: `./backport-trixie.sh` or `./ostree-backport.sh trixie`
## 📥 Download Options
### Option 1: Manual Package Assignment (Recommended)
1. Go to [Forgejo Packages](https://git.raines.xyz/robojerk/-/packages)
2. Find the uploaded libostree packages (under 'debian' or 'generic')
2. Find the uploaded ostree packages (under 'debian' or 'generic')
3. Click on each package → Settings → Assign to repository
4. Select 'libostree-dev' repository
5. Packages will then appear at: https://git.raines.xyz/robojerk/libostree-dev/packages
@ -33,39 +48,66 @@ This repository contains a backport of libostree 2025.2-1 for Ubuntu Noble (24.0
4. Download the `release-assets` artifact containing all .deb files
### Option 3: Local Build
Run the local build script:
Run the local build script for your target distribution:
```bash
./libostree-dev_noble_backport.sh
# For Ubuntu Noble
./backport-noble.sh
# For Debian Trixie
./backport-trixie.sh
# Or use the main script directly
./ostree-backport.sh noble # Ubuntu Noble
./ostree-backport.sh trixie # Debian Trixie
```
## 🔧 Technical Details
### Build Environment
- **Base**: Ubuntu Noble (24.04 LTS)
- **Base**: Ubuntu Noble (24.04 LTS) or Debian Trixie (12)
- **Rust**: 1.82.0+ (installed via rustup)
- **Build Tools**: Full development environment with all dependencies
### Package Contents
- `libostree-dev_2025.2-1~noble1_amd64.deb` - Development headers and libraries
- `libostree-1-1_2025.2-1~noble1_amd64.deb` - Runtime libraries
- `ostree_2025.2-1~noble1_amd64.deb` - Command-line tools
- `gir1.2-ostree-1.0_2025.2-1~noble1_amd64.deb` - GObject introspection
- `libostree-doc_2025.2-1~noble1_all.deb` - Documentation
- `ostree-boot_2025.2-1~noble1_amd64.deb` - Boot utilities
- `ostree-tests_2025.2-1~noble1_amd64.deb` - Test suite
- `libostree-dev_2025.2-1~[distro]1_amd64.deb` - Development headers and libraries
- `libostree-1-1_2025.2-1~[distro]1_amd64.deb` - Runtime libraries
- `ostree_2025.2-1~[distro]1_amd64.deb` - Command-line tools
- `gir1.2-ostree-1.0_2025.2-1~[distro]1_amd64.deb` - GObject introspection
- `libostree-doc_2025.2-1~[distro]1_all.deb` - Documentation
- `ostree-boot_2025.2-1~[distro]1_amd64.deb` - Boot utilities
- `ostree-tests_2025.2-1~[distro]1_amd64.deb` - Test suite
## 🚀 CI/CD Workflow
## 🚀 CI/CD Workflows
The workflow automatically:
1. Sets up Ubuntu Noble environment
2. Installs Rust 1.82.0+ and build dependencies
3. Downloads and patches libostree source
4. Builds all packages
5. Uploads to Forgejo Package Registry
6. Provides assignment instructions
### Main Build Workflow (`build-ostree-backports.yml`)
The main workflow automatically:
1. Sets up Ubuntu environment for target distribution
2. Installs build dependencies and tools
3. Downloads ostree source from appropriate distribution (Questing for Noble, sid for Trixie)
4. Modifies changelog for backport versioning
5. Builds all packages for target distribution
6. Uploads to Forgejo Package Registry
7. Provides detailed upload summaries and assignment instructions
### Test Workflow (`test-build.yml`)
A simplified workflow for testing:
- Tests source download from both distributions
- Verifies source extraction and changelog modification
- Quick validation before full builds
### Manual Triggers
- **Single Distribution**: Build for specific distribution (noble/trixie)
- **All Distributions**: Build for both distributions simultaneously
- **Test Mode**: Quick validation of build process
## 📋 Recent Changes
- **2025-01-XX**: CI/CD workflows improved with better error handling and multi-distribution support
- **2025-01-XX**: Test workflow added for quick validation
- **2025-01-XX**: Manual triggers enhanced (single/all distributions)
- **2025-01-XX**: Multi-distribution support added (Ubuntu Noble + Debian Trixie)
- **2025-01-XX**: Source configuration updated (Questing → Noble, sid → Trixie)
- **2025-07-21**: Automatic token authentication implemented
- **2025-07-21**: Package uploads working (requires manual assignment)
- **2025-07-21**: Rust version compatibility resolved
@ -76,3 +118,8 @@ The workflow automatically:
- [Workflow Runs](https://git.raines.xyz/robojerk/libostree-dev/actions)
- [Forgejo Packages](https://git.raines.xyz/robojerk/-/packages)
- [Repository Packages](https://git.raines.xyz/robojerk/libostree-dev/packages) (after assignment)
## 📚 Source References
- [Debian sid ostree package](https://packages.debian.org/source/sid/ostree)
- [Ubuntu Questing ostree package](http://archive.ubuntu.com/ubuntu/pool/universe/o/ostree/)