Re: gcc: RPM_ARCH not defined

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,
since i encountered this in the past and postponed it, I did a bit of a digging and found this:
As you probably found out by now it is caused by package-notes being dependent
on environment variables that are expected to be present during package build.
See the actual package-notes file contents:
$ cat /usr/lib/rpm/redhat/redhat-package-notes
*link:
+ --package-metadata={\"type\":\"rpm\",\"name\":\"%:getenv(RPM_PACKAGE_NAME \",\"version\":\"%:getenv(RPM_PACKAGE_VERSION -%:getenv(RPM_PACKAGE_RELEASE \",\"architecture\":\"%:getenv(RPM_ARCH \",\"osCpe\":\"cpe:/o:fedoraproject:fedora:38\"}))))

I took a look at your test and found out that your test uses rpmbuild to perform
preparation of sources:
        rlRun "rpmbuild -bp libarchive.spec"
        rlRun "rpmbuild -bc libarchive.spec"
        rlRun "popd"

This probably executes configure in a way that configures linking to be
done with "-specs=/usr/lib/rpm/redhat/redhat-package-notes" option and thus
you now need the environment variables that the file mentions. These variables
are defined and exported before build stage in macro defined in file
/usr/lib/rpm/macros and if you would have executed the check phase with
rpmbuild command, you would propably face no issue (did not verify this).
Unfortunately the test performs check manually:
                rlRun "make check &> $TmpDir/make_check.log" 0 "Make check"
                rlRun -s "./libarchive_test"
                rlAssertGrep "Tests failed:[[:blank:]]* 0" $rlRun_LOG
and thus there are no environment variables.
This can be fixed by a little bit of a hack. Add this line:
rlRun 'eval "$(rpm --eval %___build_pre)"; cd ~/rpmbuild/BUILD/libarchive-*' 0 "setting environment"

before the make check and you are good to go. This causes
that needed environment variables will be defined.

I hope that this helps you or based on this information you will be able
to find a better solution.

Best Regards.


On Mon, Jan 23, 2023 at 2:00 PM Mamoru TASAKA <mtasaka@xxxxxxxxxxxxxxxxx> wrote:
Mamoru TASAKA wrote on 2023/01/23 21:54:
> Lukas Javorsky wrote on 2023/01/23 21:39:
>> Hi,
>>
>> I've been looking at our upstreamed test [1] for libarchive package and it
>> started to fail since Fedora 37.
>>
>> The error is: "gcc: fatal error: environment variable 'RPM_ARCH' not defined
>> "
>>
>> Prior to the Fedora 37 the test was passing without any issue.
>>
>> Did anyone here had a similar problem?
>> Or could anyone help me find out what has changed so it's causing this
>> issue?
>>
>> [1]
>> https://src.fedoraproject.org/tests/libarchive/blob/main/f/Sanity/Basic-sanity-test-for-libarchive
>>
>> Thank you so much for your help
>
> Most possibly due to "package note".
>
> `rpmbuild -bc` defines  %{_package_note_flags}, embeds "-specs=/usr/lib/rpm/redhat/redhat-package-notes"
> to LDFLAGS, which needs "RPM_ARCH" environment. During rpmbuild process, this environment is provided,
> but then later "make" process does not define this automatically (because this process is not under
> "rpmbuild"), so embedded "-specs=/usr/lib/rpm/redhat/redhat-package-notes" LDFLAGS complains about
> missing environment.
>
> (Yes, I think this is annoying - sometimes rpmbuild fails with some reason, I try to fix compilation error
>   then try executing "make" locally, then I see linker complains about "'RPM_ARCH' not defined"...)
>
> I usually write "%_package_note_flags %nil" to ~/.rpmmacros, not sure if rpmbuild command line can
> undefine macros.
>

Or maybe changing to "rpmbuild --define '_package_note_flags %nil' -bc libarchive.spec" can fix the
issue you see.

Mamoru
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux