On Friday, 18 December 2020, Tom Stellard <tstel...@redhat.com> wrote:

> On 12/17/20 11:05 AM, Ben Cotton wrote:
>
>> https://fedoraproject.org/wiki/Changes/Enable_Spec_File_Preprocessing
>>
>>
>> == Summary ==
>> This change should enable an opt-in spec file preprocessor in Fedora
>> infrastructure for the benefit of packagers. The preprocessor allows
>> some very neat tricks that were impossible before, for example
>> generate changelog and release automatically from git metadata or pack
>> the entire dist-git repository into an rpm-source tarball (effectively
>> allowing unpacked repos to live in DistGit).
>>
>> == Owner ==
>> * Name: [[User:clime| Michal Novotný]]
>> * Email: cl...@fedoraproject.org
>>
>>
>> == Detailed Description ==
>>
>> There is a recently added feature into mock:
>> [https://github.com/rpm-software-management/mock/wiki/Plugin
>> -rpkg-preprocessor
>> the rpkg preprocessor] which, if enabled, introduces an intermediate
>> step just before srpm building. This step consists of running the spec
>> file through a text preprocessing engine that includes an already
>> present library of macros designed specifically for rpm spec file
>> generation from git metadata. This library is called
>> [https://docs.pagure.org/rpkg-util/v3/macro_reference.html
>> rpkg-macros]. The macros there allow packagers to have their
>> `%changelog`, `Release`, `Version`, `VCS` tag, or even `Source` fields
>> automatically generated from dist-git repository data and metadata.
>> The library can be easily extended in future to support more packager
>> use-cases or even a completely new library can be developed that
>> doesn't look at git metadata at all and instead, for example, analyses
>> already present tarball content to render spec file based on upstream
>> information. This doesn't mean it will happen but the framework is
>> generic enough to support that. There is also support for user-defined
>> macros that are loaded on-demand from a file placed alongside the
>> package sources, maintained by packager. This feature wouldn't be
>> enabled by this change from start but it's an example of freedom that
>> the preprocessing framework is able to provide. Enabling this change
>> should be very easy, basically adding:
>>
>> <pre>
>> config_opts['plugin_conf']['rpkg_preprocessor_enable'] = True
>> </pre>
>>
>> into mock configuration of Koji builders and using at least mock 2.7.
>> Some very minor change may be also needed in Koji regarding the spec
>> file lookup.
>>
>> Even if the change is enabled on the infrastructure level like this,
>> the packager will still need to opt-in to use the preprocessor. The
>> opting-in is done by placing `rpkg.conf` file into the package
>> top-level directory with the following content:
>>
>> <pre>
>> [rpkg]
>> preprocess_spec = True
>> </pre>
>>
>> When this is done by a packager, the preprocessor will be finally
>> enabled for the given package.
>>
>> Alongside, there is an ongoing work to add the preprocessor support
>> into the `rpkg` python library so that a packager can easily work with
>> the spec files containing the preprocessor (rpkg) macros:
>> https://pagure.io/rpkg/pull-request/530
>>
>>
> Is this pull request needed so that the preprocessor will run if I do
> `fedpkg mockbuild` or does fedpkg already do this if the preprocessor is
> enabled?


The pull request is needed for it. fedpkg doesn't currently have support
for preprocessing.

Cheers
clime


>
> -Tom
>
> _______________________________________________
> 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.or
> g/archives/list/devel@lists.fedoraproject.org
>
_______________________________________________
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

Reply via email to