Wireshark-dev: Re: [Wireshark-dev] RPM package error on Fedora-30

From: Ben Greear <greearb@xxxxxxxxxxxxxxx>
Date: Sat, 6 Apr 2024 09:18:53 -0700
On 4/5/24 17:38, John Thacker wrote:

On Fri, Apr 5, 2024 at 8:06 PM Ben Greear <greearb@xxxxxxxxxxxxxxx <mailto:greearb@xxxxxxxxxxxxxxx>> wrote:

    Hello,

    I cloned latest wireshark today, and tried to build an RPM package
    on an fedora-30 system.

    It fails with this error below..any ideas?

    Fedora-36 worked as expected, and F30 could build with 'make', just not 'make wireshark_rpm'

    ....
    -- Build files have been written to: /home/greearb/btbits/x64_btbits/3plibs/wireshark/build/packaging/rpm/BUILD/wireshark-4.3.0
    + %cmake_build
    /var/tmp/rpm-tmp.IEg59q: line 87: fg: no job control
    error: Bad exit status from /var/tmp/rpm-tmp.IEg59q (%build)


    RPM build errors:
          Bad exit status from /var/tmp/rpm-tmp.IEg59q (%build)
    make[3]: *** [CMakeFiles/wireshark_rpm.dir/build.make:78: CMakeFiles/wireshark_rpm] Error 1
    make[2]: *** [CMakeFiles/Makefile2:4057: CMakeFiles/wireshark_rpm.dir/all] Error 2
    make[1]: *** [CMakeFiles/Makefile2:4064: CMakeFiles/wireshark_rpm.dir/rule] Error 2
    make: *** [Makefile:297: wireshark_rpm] Error 2


That error is because Fedora 30 doesn't have the %cmake_build macro (which is defined in /usr/lib/rpm/macros.d/macros.cmake in most Fedora systems).
You might be able to get it to build by tweaking the spec file template in packaging/rpm/wireshark.spec.in <http://wireshark.spec.in> to be similar on what's done for earlier branches
before we dropped support for RHEL 7 (or before RHEL 8 added the %cmake_build macros - see this commit
https://gitlab.com/wireshark/wireshark/-/commit/92c8c2f7a09c68489f5c2272f8f6bb9ab0b0aed9 <https://gitlab.com/wireshark/wireshark/-/commit/92c8c2f7a09c68489f5c2272f8f6bb9ab0b0aed9> )
and using one of the other macros instead (%ninja_build if you're using ninja, something else with make.

Fedora 30 has officially been EOL since 2020-05-26 ( https://docs.fedoraproject.org/en-US/releases/eol/ <https://docs.fedoraproject.org/en-US/releases/eol/> ) so most of the assumptions in the spec file in the last development branch are that people will be using Fedora 33 or later (which itself has been EOL for 2.5 years), even though Fedora 30 is roughly similar to RHEL 8 and thus is able to build, RHEL8 (in 8.4) gained support for the cmake macros and Fedora 30 didn't, being EOL at the time that RHEL 8.4 was released.

Thanks for the pointers and quick response.

Not to complain overly, but it is exactly the older un-supported platforms that would need
to compile their own newer wireshark anyway...

Since it will do a normal build on Fedora-30, I think I'll just stick with
that for now.  The rpm build works on Fedora 34 and other newer systems we build on
(we are not building for F31-33 at this point, not sure if any of those work).

In case someone wants to spin a patch that could allow it to build rpms on F30
again, I'd be happy to test.

Thanks,
--Ben

--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc  http://www.candelatech.com