Releases: getsolus/ypkg
The Splittening
This release contains a couple of big changes to help bring us closer to AerynOS. The project is now also PEP517 compatible, using the Hatch build system! This should make packaging ypkg
easier, along with adding unit testing in the future.
CLI overhaul
As a consequence of making ypkg
PEP517 compatible, there had to be significant changes to the CLI. In older versions, ypkg
was a set of separate scripts that all called into the ypkg2
module. In short, that approach no longer really works. So, we now have a new CLI using Typer!
Macro file split
The macros that we use in packaging have been split out to separate files. Doing this makes it much easier to iterate on macros. Macros are organized largely by build system, e.g. cargo.yaml
for Rust/Cargo macros, autotools.yaml
for Autotools, etc. All the definition files are installed to a new directory: /usr/share/ypkg/macros
, in the actions
subdirectory. This also makes it easier to add your own macros! Just add a .yaml
file in /usr/share/macros/actions
with definitions matching the schema of the other files, and it will be loaded by ypkg
.
New cbuild
Cargo macros
A couple of new Cargo macros have been added to build Rust projects that offer a C-compatible ABI for their libraries. The macros are: %cargo_cbuild
and %cargo_cinstall
.
What's Changed
- ypkg: Adapt to clang rename by @ReillyBrogan in #98
- Make Python macros work for directories with spaces in them by @Staudey in #99
- examine: Fix runpath detection by @ReillyBrogan in #100
- rc.yml: Python3 macro adjustments by @joebonrichie in #103
- rc.yml: Also check for setup.cfg in PEP517 macros by @joebonrichie in #106
- rc.yml: Pass --overwrite-existing to the python installer module by @joebonrichie in #107
- Compress man pages with zstd, enable mancompress by default by @ReillyBrogan in #75
- Switch from readfp to read_file by @HarveyDevel in #110
- Split macros and definitions into separate files by @EbonJaeger in #108
- build: Port to pyproject.toml by @EbonJaeger in #114
- macros: Add cargo_cbuild and cargo_cinstall macros by @EbonJaeger in #112
- github: Add issue and PR templates by @EbonJaeger in #119
- Bump version to 35.0.0 by @EbonJaeger in #117
New Contributors
- @HarveyDevel made their first contribution in #110
Full Changelog: v34...v35.0.0
v34
With this release, ypkg defaults to using eopkg.py3
for ypkg-install-deps
, but can be made to use e.g. eopkg.bin
when called from solbuild
, which in turn serves to make builds more robust in the face of CPython 3.x interpreter upgrades.
What's Changed
- ypkg2: Replace old domain by @davidjharder in #95
- ypkg-install-deps: Add -e/--eopkg-cmd argument by @ermo in #96
New Contributors
- @davidjharder made their first contribution in #95
Full Changelog: v33...v34
v33
What's Changed
- yupdate: Only update the first element in list by @joebonrichie in #83
- ccache: Set CCACHE_BASEDIR to improve hit rates by @ReillyBrogan in #87
- ypkg2: Enable support for automagic rust PGO builds by @joebonrichie in #85
- Drop fatfakeroot by @joebonrichie in #93
- ypkg: Move GIR files to devel by @ReillyBrogan in #88
- Allow multiple arguments to %cargo_install by @Staudey in #90
- ypkg: Allow a custom build directory by @joebonrichie in #94
Full Changelog: v32...v33
v32
What's Changed
- support updating package.ymls that use git sources by @yacn in #14
- Make sure lib32/cmake/ files get added to 32-bit-devel packages by @Staudey in #34
- Update %meson_configure macro to call meson setup by @ermo in #37
- ypkg2: Only enable fakeroot during the install & check steps by @joebonrichie in #36
- main: Use ConfigParser instead of ConfigObj to parse packager config by @joebonrichie in #38
- Fix warning not emitted when no sccache by @GZGavinZhao in #27
- Add support for disabling frame pointer flags by @ReillyBrogan in #39
- rc: new Haskell macros for Nix-style Cabal builds by @GZGavinZhao in #35
- rc.yml: Haskell's checks can't parallelize by @GZGavinZhao in #41
- Fix URL for README.Solus file by @EbonJaeger in #42
- Adjust from legacy to current glibc hwcaps by @joebonrichie in #40
- Add checkdeps field to package.yml by @GZGavinZhao in #45
- ybump, yupdate: use max line length of input yaml for output width by @Staudey in #46
- Handle .prl/pri files for qt5/qt6 by @ReillyBrogan in #49
- Fix panic in kernel analysis by @ReillyBrogan in #48
- Add more qt6 patterns by @ReillyBrogan in #51
- rc.yml: Define AMDGPUTARGETS by @GZGavinZhao in #55
- Remove old, wrong man3 pattern by @Staudey in #58
- rc.yml: Provide cargo_{fetch,build,install,test} macros by @joebonrichie in #52
- perl macros: Update to check for Makefile.PL first by @TraceyC77 in #66
- ypkg2/packages: Fix patterns for 32bit-devel subpackages by @joebonrichie in #69
- Add macro to check for broken symlinks in installdir by @Staudey in #62
- rc.yml: reduce AMDGPU targets to save compile time by @GZGavinZhao in #56
- rc.yml: update Haskell macros to adapt to new directory layout by @GZGavinZhao in #61
- metadata: Do not use escaped file paths when creating package by @joebonrichie in #70
- Export xattrs info to files.xml internally in our eopkg by @ReillyBrogan in #72
- ybump/yupdate: Adjust to ruamel 0.18 API by @Staudey in #73
- Build with fat LTO objects by default and strip LTO bytecode from static archives by @joebonrichie in #74
- rc.yml: Update bolt optimization flags by @joebonrichie in #80
- rust: Add RUSTFLAGS by @ReillyBrogan in #82
New Contributors
- @yacn made their first contribution in #14
- @ermo made their first contribution in #37
- @ReillyBrogan made their first contribution in #39
- @TraceyC77 made their first contribution in #66
Full Changelog: v31...v32
Release v31.0.0
What's Changed
- Teach qml_cache macro how to handle spaces by @kyrios123 in #7
- Add optional linker flag icf={safe,all} to optimizations by @joebonrichie in #20
- Export environmental variables for pgo_gen and pgo_use build contexts by @joebonrichie in #21
- Ensure LTO for GCC runs in parallel by @joebonrichie in #9
- Remove deprecated meson macros by @joebonrichie in #25
- Adjust width-param so ybump doesn't set summary to 80 cols by @Staudey in #8
- Implement sccache by @GZGavinZhao in #26
- Profile instrumentation flags must also be added to LDFLAGS by @joebonrichie in #10
- Adjust python macros for PEP 517 by @joebonrichie in #24
- Allow for renaming of simple source files by @JacekJagosz in #29
- Switch to IR based instrumentation for clang PGO builds
- Add experimental BOLT macros
- Add python3_avx2_lib_shift macro for experimental python avx2 lib support by @joebonrichie in #19
- Add manpage compression by @EbonJaeger in #31
New Contributors
- @joebonrichie made their first contribution in #19
- @GZGavinZhao made their first contribution in #26
- @JacekJagosz made their first contribution in #29
- @EbonJaeger made their first contribution in #31
Full Changelog: v30...v31
v30
v29
- Use SSE2 for 32bit builds resulting in a significant performance boost in some tests
- New python test macros
- No longer install 32bit clang as it is deprecated
- Use llvm-objcopy to strip ar archives with clang
- Remove setting locale as it is set already via solbuild
- Add environment key which exports content to all ypkg build steps
- Use flag for avx2 builds that supports clang and gcc