feat: update user configuration example and add development package support

- Enhanced the user.depot.toml.example file with additional comments and options for user-local preferences.
- Bumped version from 0.35.0 to 0.35.1 in meson.build.
- Introduced a new option for DEPOT_DEVELOPMENT_PACKAGE in meson_options.txt.
- Added functions to handle the requested development package in build_options.rs.
- Updated various builder files (autotools.rs, cmake.rs, custom.rs, meson.rs, perl.rs) to support passing build flags.
- Implemented checks for the required development package during source builds in commands.rs and commands/build_cmd.rs.
- Added tests to ensure the correct behavior of development package requirements and source build warnings.
- Modified manual source handling in source/mod.rs to validate local manual sources before proceeding with builds.
- Updated cargo build and test scripts to accept a new development package argument.
- Added VSCode settings to disable automatic configuration on open.
This commit is contained in:
2026-04-04 17:02:42 -05:00
parent 135514acb3
commit 34d52d11a9
24 changed files with 866 additions and 164 deletions
+31 -14
View File
@@ -1,28 +1,45 @@
[flags]
# Default build flags applied to all packages via /etc/depot.d/build.toml
# Compiler selection
cc = "gcc"
# Example /etc/depot.d/build.toml
#
# Drop-in build defaults. This file is a good place for policy that should
# apply everywhere without crowding the main /etc/depot.toml.
# Default CFLAGS
# Toolchain selection.
cc = "clang"
# cxx = "clang++"
# ar = "ar"
# ld = "ld.lld"
# Compiler defaults. These are merged with package-level flags unless a package
# explicitly replaces them.
cflags = ["-O2"]
cflags += ["-pipe"]
# cxxflags = ["-O2", "-pipe"]
# Optional install directory overrides for supported builders
#bindir = "/usr/bin"
#libdir = "/usr/lib"
#sysconfdir = "/etc"
# Default LDFLAGS
# Linker defaults.
ldflags = ["-Wl,-O1"]
# Default LTOFLAGS and automatic injection into CFLAGS/CXXFLAGS/LDFLAGS.
# Link-time optimization policy.
ltoflags = ["-flto=auto"]
# Rust-specific LTO flags appended only to RUSTFLAGS when use_lto is enabled.
#RUSTLTOFLAGS = ["-Clinker-plugin-lto"]
# rustltoflags = ["-Clinker-plugin-lto"]
use_lto = true
# CARCH short name (can be overridden per-package)
# Architecture defaults. Packages may still override this when needed.
carch = "x86_64"
# chost = "x86_64-sfg-linux-gnu"
# cbuild = "x86_64-sfg-linux-gnu"
# Example of appending per-package cflags: (will be exposed as build.cflags appends)
# Optional install directory overrides for supported builders.
# bindir = "/usr/bin"
# libdir = "/usr/lib"
# sysconfdir = "/etc"
# Example of additive layering in depot.d:
# cflags += ["-fstack-clash-protection"]
# ldflags += ["-Wl,-z,relro", "-Wl,-z,now"]
# Avoid host-specific tuning such as -march=native in shared system configs
# unless every package built on this machine is intended only for this machine.
# cflags += ["-march=native"]
+16 -3
View File
@@ -1,6 +1,19 @@
[package]
# System-wide package overrides. Example: set default provides or package metadata
# name = ""
# Example /etc/depot.d/package.toml
#
# System-wide package metadata overrides. Use this sparingly: this is best for
# policy defaults or local compatibility shims, not for rewriting package specs.
# Example: provide a virtual runtime package name to satisfy runtime deps
# Example fields you might override globally in a controlled environment:
# homepage = "https://mirror.example.org/packages"
# license = ["MIT"]
# Example: provide a virtual package name to satisfy dependency expressions.
# This can be useful on systems with a local compatibility package.
# provides = ["filesystem"]
# Example: declare that local packages replace an older naming scheme.
# replaces = ["old-filesystem"]
# Example: force a conflict relationship across locally maintained packages.
# conflicts = ["legacy-filesystem"]
+27
View File
@@ -1,22 +1,38 @@
# Example /etc/depot.d/repos.toml
#
# Repository configuration for source specs and binary package feeds.
# Lower priority numbers win first when multiple repos provide the same package.
[settings]
# Prefer binary packages when both a binary package and a source spec exist.
# Set this to false if you want source specs to be preferred by default.
prefer_binary = true
[source.vertex]
# Source repository used for spec lookup and source-build planning.
url = "https://gitlab.com/vertex-linux/packages.git"
enabled = true
priority = 50
# Restrict scanning to selected subdirectories inside the source repo.
subdirs = ["core", "extra"]
# Example:
# branch = "main"
[binary.core]
# Binary repository for core packages.
url = "https://repo.sfgos.net/core"
enabled = true
priority = 10
repo_db = "repo.db.zst"
[binary.core.arch.x86_64]
# Enable this repo for x86_64 systems.
enabled = true
[binary.extra]
# Secondary binary repository for additional packages.
url = "https://repo.sfgos.net/extra"
enabled = true
priority = 20
@@ -24,3 +40,14 @@ repo_db = "repo.db.zst"
[binary.extra.arch.x86_64]
enabled = true
# Additional examples:
#
# [binary.testing]
# url = "https://repo.example.org/testing"
# enabled = false
# priority = 5
# repo_db = "repo.db.zst"
#
# [binary.testing.arch.x86_64]
# enabled = true