Hi all, I'm excited to announce the preview availability of declarative Maven RPM builds in Fedora 43 -- a new approach to RPM packaging for Maven-based Java projects that focuses on simplicity, consistency, and future automation. This functionality is already usable today, though it is still under active development and not yet feature-complete. The preview is intended to gather early feedback and prepare for broader adoption.
Declarative Maven builds let you define packaging logic entirely as structured data using BuildOption tags (available in RPM 4.20 and later). This eliminates the need for %prep, %build, and %install scriptlets. The build process still uses XMvn internally, but the declarative layer eliminates the need for RPM macros or shell scripting. Key features: - Declarative configuration: Build logic is expressed through structured tags, not executable code. - Cleaner spec files: Less boilerplate, easier to read and maintain. - Tooling-friendly: Pure data is easier to parse, validate, and transform, enabling better automation down the line. - Dynamic BuildRequires: Build dependencies are inferred automatically based on the project’s POM metadata, reducing manual maintenance and errors. - Interoperability: Packages built with declarative Maven builds remain fully compatible with traditional Java packages that use javapackages-tools. They can coexist and interoperate in the same dependency graph. This feature is currently in preview. So far, a single package "plexus-cipher" has been converted to use declarative Maven builds. It serves as a working example and proof of concept. The spec file of plexus-cipher can be seen at https://src.fedoraproject.org/rpms/plexus-cipher/blob/rawhide/f/plexus-cipher.spec More information can be found at upstream project at https://github.com/mizdebsk/dola Currently supported syntax for BuildOptions (subject to change) is documented at https://github.com/mizdebsk/dola/blob/master/SYNTAX.md More info about declarative RPM builds in general can be found at https://rpm-software-management.github.io/rpm/manual/buildsystem.html -- Mikolaj Izdebski -- _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue