Repository navigation
Conversation
GNU M4 wraps its own upstream autotools build (./configure && make &&
make install via ExternalProject_Add) through the cmeel build-backend,
same shape already proven here by cmeel-fmt/cmeel-gmp/cmeel-gklib/
cmeel-cppad/cmeel-coinutils/cmeel-lapack: one has-sitelib=false py3-none
wheel holding only the bin/m4 binary, no Python extension to build per
interpreter. m4 is a build-time tool declared as an extra == "build"
dependency by several other cmeel-* wrappers (cmeel-autoconf/
cmeel-automake/cmeel-gettext/cmeel-texinfo), not a library other
packages link against at runtime.
GPL-3.0-only (GNU m4 itself). Re-read patching-and-licensing.md
directly rather than from memory: the documented GPL procedure (the
collect-gpl-sources job) is scoped to GPL components pulled in from our
own build environment (e.g. the manylinux image's gcc), not to porting
a project whose own upstream source happens to be GPL-licensed. The
actual applicable check is the doc's ordinary two bullets ("wheel
carries upstream LICENSE" + "linked libraries' own licence reqs met"),
same as every other license in this repo. Confirmed against the real
published x86_64 wheel (cmeel_m4-1.4.20-0-py3-none-manylinux_2_28_x86_64.whl,
unzip -l) that it ships no LICENSE/COPYING file at all - a genuine gap
in the upstream wrapper itself, present on every platform, not
riscv64-specific. GNU m4's own release tarball ships COPYING at its top
level (confirmed: tar -tJf m4-1.4.20.tar.xz). This wrapper's
ExternalProject_Add(m4 ...) uses BUILD_IN_SOURCE ON with no explicit
SOURCE_DIR, so CMake's own documented default applies (confirmed
against the real ExternalProject.cmake module source and its
extractfile.cmake.in single-top-level-directory-rename logic, not
guessed): SOURCE_DIR = <CMAKE_CURRENT_BINARY_DIR>/m4-prefix/src/m4, so
COPYING lands there once the build step runs, before the top-level
install() rules execute. Added a second install(FILES ...) rule beside
the wrapper's existing "dummy README.md" one, pointing at that path -
patching the build to add the missing LICENSE, per
patching-and-licensing.md's documented remedy; will send the same fix
upstream to cmake-wheel/cmeel-m4.
No architectural riscv64 concern: GNU m4 is portable C with no
SIMD/arch-specific code path, already built on every Linux distro's
riscv64 port. Verified against the real published x86_64 wheel that the
actual binary is bin/m4 (plus a scripts/ entry point), no .so to link
cross-package.
docs/packages/cmeel-m4.yaml: license GPL-3.0-only; the built wheel now
carries GNU m4's own COPYING via the CMakeLists.txt patch above.
This branch has not been deployed
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.
cmeel-m41.4.20Wraps GNU M4 through the cmeel build-backend, producing a py3-none wheel holding only the
bin/m4binary. Upstream publishes no riscv64 wheel. m4 is a build-time tool several othercmeel-*wrappers declare as anextra == "build"dependency (cmeel-autoconf/cmeel-automake/cmeel-gettext/cmeel-texinfo), not a library linked at runtime.Mirrors upstream's
release.yml, manylinux leg only.Differs from upstream
COPYINGat its top level. The wrapper'sExternalProject_Add(m4 ...)extracts into<bin>/m4-prefix/src/m4(confirmed against CMake's ownExternalProject.cmakemodule source, not guessed), so a secondinstall(FILES ...)rule beside the existing "dummy README.md" one picks it up into the wheel. Will send the same fix upstream.Testing
m4 --versionafter installing the wheel into a venv.License: GPL-3.0-only. No special GPL procedure applies here (that's scoped to GPL components pulled from our own build environment, e.g. gcc) — this is the repo's ordinary "wheel carries upstream LICENSE" check, same as any other license.
Built on cp312.