Skip to content

Migrate to meson, vcpkg and cibuildwheels#432

Open
shauneccles wants to merge 203 commits intoaubio:masterfrom
LedFx:main
Open

Migrate to meson, vcpkg and cibuildwheels#432
shauneccles wants to merge 203 commits intoaubio:masterfrom
LedFx:main

Conversation

@shauneccles
Copy link

@shauneccles shauneccles commented Nov 13, 2025

This PR is very large.

The commits are a mess as I used Copilot to learn about meson, vcpkg and building multiarch wheels - if you do merge I would squash and merge, it was a difficult experience as the commits suggest.

The outcome of this is https://pypi.org/project/aubio-ledfx/0.4.11/#files

These wheels are almost fully optioned as of today for all platforms and almost all archs - haven't tried for win-arm64 but honestly I don't care to build for that yet.

Incorporates many of the community PRs currently active here.

Moved from waf to meson as the build system.

Integrates vcpkg building for dependency management.

If you want to merge this I will update our fork to remove the changed name and get back to sync.

Thanks for the work - it was a great base to learn a new system on.

tperale and others added 30 commits September 22, 2024 15:10
On big endian architecture with libflac enabled the following error
would happen when cross-compiling aubio with buildroot.

```
[ 75/243] Linking build/tests/test-pitchshift
/home/autobuild/autobuild/instance-16/output-1/per-package/aubio/host/bin/../lib/gcc/mips64-buildroot-linux-gnu/13.3.0/../../../../mips64-buildroot-linux-gnu/bin/ld: src/libaubio.so: undefined reference to `SWAPS'
collect2: error: ld returned 1 exit status

Waf: Leaving directory `/home/autobuild/autobuild/instance-16/output-1/build/aubio-152d6819b360c2e7b379ee3f373d444ab3df0895/build'
Build failed
```

Indeed there is a missing definition of the `SWAPS` macro in
`/src/io/sink_flac.c` file.
This commit copy the `SWAPS` definition from the
`/src/io/sink_wavwrite.c` file in `sink_flac.c` to fix this issue.

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
* feat: add GitHub Actions workflow for building and publishing aubio-ledfx

* feat: additional optional build libraries and update workflow for doxygen

* feat: enhance GitHub Actions workflow for building aubio-ledfx with improved steps for source tarball and binary wheel creation

* feat: update publishing steps for PyPI and Test PyPI with trusted publishing options

* feat: enable conditional publishing to PyPI based on tag references

* feat: add testing steps for aubio-ledfx build process

* fix: correct command for setting up uv virtual environment in testing step

* fix: update testing steps to use wheel name output for pytest execution

* fix: update wheel name output to match any wheel in dist directory

* fix: update pytest command to use correct wheel name output

* nit: lowercase l

---------

Co-authored-by: spiro-c <spiroc@gmail.com>
Fix regex not using raw string
Refactor test assertions for floating point accuracy
[build] enable bash debugging for better logs in binary wheel job
[source_avcodec] fix build with ffmpeg 8.0
[sink_flac] missing SWAPS definition
swresample: stop using deprecated {in,out}_channel_layout options
add attribution LEDfx to README.md
Copilot AI and others added 15 commits November 16, 2025 00:29
- Fixed new_aubio_specdesc with comprehensive NULL checks and cleanup
- Fixed new_aubio_tempo, new_aubio_pitch, new_aubio_onset
- Fixed new_aubio_notes, new_aubio_pvoc, new_aubio_tss
- Fixed new_aubio_peakpicker, new_aubio_beattracking
- All 45 tests passing

Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
…ubio#433

- Added order parameter validation to new_aubio_filter (max 512)
- Updated SECURITY_REVIEW.md with comprehensive fix documentation
- CodeQL analysis: 0 alerts
- All 45 tests passing

Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
Fixed 37 additional files across all modules:
- Spectral: mfcc, filterbank, awhitening, dct*, fft (10 files)
- Pitch: yin, yinfast, yinfft, mcomb, schmitt, specacf, fcomb (7 files)
- I/O: sink/source variants, audio_unit (11 files)
- Effects: pitchshift, timestretch (2 files)
- Temporal: resampler (1 file)
- Synthesis: sampler, wavetable (2 files)
- Utils: hist, scale, parameter (4 files)

All 45 tests passing. Total: 51 files with NULL checks (14 previous + 37 new)

Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
Documents the complete code review response addressing all 51 aubio C files with memory allocations

Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
Created new test file that validates NULL pointer fixes for all 51 files:
- Tests 39 constructor functions across all modules
- Validates proper NULL returns for invalid parameters
- Tests: core vectors, filters, spectral, pitch, onset/tempo, notes, I/O, synthesis, utils
- All 46 tests passing (45 existing + 1 new)

Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
Documents comprehensive test coverage for all 51 fixed files with detailed breakdown of 39 constructor tests

Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
Fix NULL pointer dereferences in memory allocations with comprehensive test coverage (Issue aubio#433)
- Created SECURITY/ folder with comprehensive README.md index
- Moved and renamed security documents:
  - SECURITY_REVIEW.md -> SECURITY/REVIEW.md
  - SECURITY_STRENGTHENING_SUMMARY.md -> SECURITY/STRENGTHENING_SUMMARY.md
  - SECURITY_HARDENING.md -> SECURITY/HARDENING.md
  - DEFENSIVE_PROGRAMMING.md -> SECURITY/DEFENSIVE_PROGRAMMING.md
  - SANITIZERS.md -> SECURITY/SANITIZERS.md
- Enhanced document headers with metadata and quick reference sections
- Added clear purpose, audience, and "when to use" guidance to each doc
- Updated all internal references to new paths
- Updated copilot instructions with comprehensive security guidance

Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
[WIP] Move security documents to new SECURITY folder
…rk and strategic planning

Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
…iew document

Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
…-review

Add comprehensive security meta-review synthesizing historical vulnerabilities and strategic roadmap
spiro-c and others added 14 commits November 17, 2025 13:31
Simplify caching for macOSX and Windows
Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
…se system dependencies

Co-authored-by: shauneccles <21007065+shauneccles@users.noreply.github.com>
Add GitHub Actions workflow for development environment setup
Move copilot setup yaml and rename
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.

10 participants