Migrate to meson, vcpkg and cibuildwheels#432
Open
shauneccles wants to merge 203 commits intoaubio:masterfrom
Open
Migrate to meson, vcpkg and cibuildwheels#432shauneccles wants to merge 203 commits intoaubio:masterfrom
shauneccles wants to merge 203 commits intoaubio:masterfrom
Conversation
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>
AV_INPUT_BUFFER_MIN_SIZE was removed with upstream commit https://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=1d66a122df9fd5d8400b05c74462d0082990fc01 A similar fix is used by Arch Linux: https://gitlab.archlinux.org/archlinux/packaging/packages/aubio/-/commit/bdf858e4291aa170a23c470ac1caf2c827bfd01d
* 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
Add test sounds
…luding the current build directory
…atic library for portable wheels
- 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
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>
…ate Python version
Add GitHub Actions workflow for development environment setup
…elopment environment
Move copilot setup yaml and rename
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.