Trying to package Firedragon browser for fedora and having build errors

First like 30 builds failed due to invalid rpm spec file , which i got fixed up now
Latest build has this as an error inside of the log

 0:07.49 creating ./config.data
 0:07.50 Traceback (most recent call last):
 0:07.50   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/configure.py", line 346, in <module>
 0:07.50     sys.exit(main(sys.argv))
 0:07.50              ^^^^^^^^^^^^^^
 0:07.50   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/configure.py", line 128, in main
 0:07.50     sandbox.run(os.path.join(os.path.dirname(__file__), "moz.configure"))
 0:07.50   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/python/mozbuild/mozbuild/configure/__init__.py", line 567, in run
 0:07.50     func(*args)
 0:07.50   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/python/mozbuild/mozbuild/configure/__init__.py", line 618, in _value_for
 0:07.50     return self._value_for_depends(obj)
 0:07.50            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 0:07.51   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/python/mozbuild/mozbuild/util.py", line 1063, in method_call
 0:07.51     cache[args] = self.func(instance, *args)
 0:07.51                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
 0:07.51   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/python/mozbuild/mozbuild/configure/__init__.py", line 627, in _value_for_depends
 0:07.51     value = obj.result()
 0:07.51             ^^^^^^^^^^^^
 0:07.51   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/python/mozbuild/mozbuild/util.py", line 1063, in method_call
 0:07.51     cache[args] = self.func(instance, *args)
 0:07.51                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
 0:07.51   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/python/mozbuild/mozbuild/configure/__init__.py", line 163, in result
 0:07.51     return self._func(*resolved_args)
 0:07.51            ^^^^^^^^^^^^^^^^^^^^^^^^^^
 0:07.51   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/python/mozbuild/mozbuild/configure/__init__.py", line 1310, in wrapped
 0:07.51     return new_func(*args, **kwargs)
 0:07.51            ^^^^^^^^^^^^^^^^^^^^^^^^^
 0:07.51   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/build/moz.configure/old.configure", line 299, in old_configure
 0:07.51     exec(code, raw_config)
 0:07.51   File "config.data", line 69, in <module>
 0:07.51     (''' STL_FLAGS ''', list(split(r''' -I/builddir/build/BUILD/firedragon-109.0/firefox-109.0/%{PWD@Q}/obj/dist/stl_wrappers '''))),
 0:07.51                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 0:07.51   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/python/mozbuild/mozbuild/shellutil.py", line 176, in split
 0:07.51     return _ClineSplitter(s).result
 0:07.51            ^^^^^^^^^^^^^^^^^
 0:07.51   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/python/mozbuild/mozbuild/shellutil.py", line 66, in __init__
 0:07.51     self._parse_unquoted()
 0:07.51   File "/builddir/build/BUILD/firedragon-109.0/firefox-109.0/python/mozbuild/mozbuild/shellutil.py", line 117, in _parse_unquoted
 0:07.51     raise MetaCharacterException(match["special"])
 0:07.51 mozbuild.shellutil.MetaCharacterException: {
 Config object not found by mach.
*** Fix above errors and then restart with "./mach build"
error: Bad exit status from /var/tmp/rpm-tmp.0He76r (%build)

Here is the rpm spec file firedragon-rpmspec/firedragon.spec at main · pieckenst/firedragon-rpmspec · GitHub
And here is the repository where i have been trying to compile the browser rsncra/firedragon Copr

"A fork of librewolf by folk at garuda linux , build for fedora"

Why do you do that?
Firedragon is in chaotic-aur.

pacman -Qi firedragon
Name                     : firedragon
Version                  : 109.0-1
Beschreibung             : Librewolf fork build using custom branding, settings & KDE patches by OpenSUSE
1 Like

Because im using fedora - and i doubt the chaotic-aur one will just work on it
So trying to compile it specifically for what im using

Oh, seems better to ask about in fedora forums, if you do not use Garuda (arch-based) Linux.


I over read the headline, sorry.

2 Likes

Well i doubt folk there would be able to help with compiling a firefox fork that’s not exactly much of anywhere outside of garuda linux - so i went here for support with building it

1 Like

Maybe @dr460nf1r3 can help.

3 Likes

I noticed the GitHub issue, I'll have a look once I find some spare time :slight_smile:

3 Likes

Alright , thank you :slight_smile: , ill be waiting for what ya find then

I tend to agree with @SGS, it doesn't seem reasonable to expect the Garuda dev to spend time trying to make Dragonfire work on Fedora.

While I like Fedora, I haven't used it as a daily driver for many years and am just not familiar with it anymore. I'm sure this may be the case with many others on the team as well. After switching to Arch (and its dervatives) the desire to use other flavours of Linux has evaporated. It's not too fair IMO to expect porting of Garuda apps to distros that aren't even running on an Arch base.

2 Likes

I actually don't mind taking a look since it increase the user base of the browser, though learning Fedora packaging is far out of scope :stuck_out_tongue:

I'm not sure whether you were aware of it's existence, but you could take the Fedora build of Librewolf as reference:

4 Likes

Thanks for the pointer to that script:) ill try and edit it out , and see how it goes

Thanks to a pointer from a person in fedora related discord i might have found the problem - it seems the MOZ_OBJDIR line in spec file caused build to freak out , and made the path too large
time to see if it builds after fixing that line

2 Likes

Build 5387411 in rsncra/firedragon this build looks like it might not fail?? guess will find out in 5 hours , considering copr is slow at building things

So now im stuck on this error inside the logs

0:03.84 creating cache ./config.cache
0:03.85 checking host system type... x86_64-pc-linux-gnu
0:03.86 checking target system type... x86_64-pc-linux-gnu
0:03.86 checking build system type... x86_64-pc-linux-gnu
0:03.87 checking for Cygwin environment... no
0:03.88 checking for mingw32 environment... no
0:03.90 checking for executable suffix... configure: error: installation or configuration problem: compiler cannot create executables.
0:03.90 DEBUG: <truncated - see config.log for full output>
0:03.90 DEBUG: #endif
0:03.90 DEBUG: return __CYGWIN__;
0:03.90 DEBUG: ; return 0; }
0:03.90 DEBUG: configure:761: checking for mingw32 environment
0:03.90 DEBUG: configure:773: /usr/bin/gcc -std=gnu99 -c -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection  conftest.c 1>&5
0:03.90 DEBUG: configure: In function 'main':
0:03.90 DEBUG: configure:769:8: error: '__MINGW32__' undeclared (first use in this function)
0:03.90 DEBUG: configure:769:8: note: each undeclared identifier is reported only once for each function it appears in
0:03.90 DEBUG: configure: failed program was:
0:03.90 DEBUG: #line 766 "configure"
0:03.90 DEBUG: #include "confdefs.h"
0:03.90 DEBUG:
0:03.90 DEBUG: int main() {
0:03.90 DEBUG: return __MINGW32__;
0:03.90 DEBUG: ; return 0; }
0:03.90 DEBUG: configure:792: checking for executable suffix
0:03.90 DEBUG: configure:802: /usr/bin/gcc -std=gnu99 -o conftest -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection  -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -static -Wl,--no-keep-memory  conftest.c  1>&5
0:03.90 DEBUG: /usr/bin/ld: cannot find -lc: No such file or directory
0:03.90 DEBUG: collect2: error: ld returned 1 exit status
0:03.90 DEBUG: configure: error: installation or configuration problem: compiler cannot create executables.
0:03.90 ERROR: old-configure failed
*** Fix above errors and then restart with "./mach build"
ошибка: Неверный код возврата из /var/tmp/rpm-tmp.yKAHR3 (%build)

RPM build warnings:
   source_date_epoch_from_changelog set but %changelog is missing

RPM build errors:
   Неверный код возврата из /var/tmp/rpm-tmp.yKAHR3 (%build)```

Judging from some search results, I'd suspect too old compiler versions to be the issue?

configure: error: installation or configuration problem: compiler cannot create executables.

/usr/bin/ld: cannot find -lc: No such file or directory

This looks like the linker is not finding libc.a in the library path for some reason.
Is glibc-static installed?

error: '__MINGW32__' undeclared

No idea :frowning:

Maybe someone can make sense of the full config.log, try uploading it to termbin.

ill try installing glibc-static , and see if it gives that a working build - that's thankfully in fedora repositories


That started it) thanks for glibc-static pointer
And then it quickly failed build

 0:51.62                  from /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/accessible/generic/HyperTextAccessible.h:13,
 0:51.62                  from /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/accessible/atk/HyperTextAccessibleWrap.h:10,
 0:51.62                  from /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/accessible/generic/DocAccessible.h:11,
 0:51.62                  from /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/accessible/generic/LocalAccessible-inl.h:10,
 0:51.62                  from /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/accessible/atk/nsMaiInterfaceSelection.cpp:9:
 0:51.62 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj/dist/include/FrameProperties.h: In instantiation of ‘static mozilla::FrameProperties::PropertyType<T> mozilla::FrameProperties::ReinterpretHelper<T>::FromInternalValue(uint64_t) [with T = mozilla::SmallValueHolder<mozilla::FrameBidiData>; mozilla::FrameProperties::PropertyType<T> = mozilla::FrameBidiData; uint64_t = long unsigned int]’:
 0:51.62 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj/dist/include/FrameProperties.h:202:51:   required from ‘mozilla::FrameProperties::PropertyType<T> mozilla::FrameProperties::Get(Descriptor<T>, bool*) const [with T = mozilla::SmallValueHolder<mozilla::FrameBidiData>; PropertyType<T> = mozilla::FrameBidiData; Descriptor<T> = const mozilla::FramePropertyDescriptor<mozilla::SmallValueHolder<mozilla::FrameBidiData> >*]’
 0:51.62 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/layout/generic/nsIFrame.h:4209:27:   required from ‘mozilla::FrameProperties::PropertyType<T> nsIFrame::GetProperty(mozilla::FrameProperties::Descriptor<T>, bool*) const [with T = mozilla::SmallValueHolder<mozilla::FrameBidiData>; mozilla::FrameProperties::PropertyType<T> = mozilla::FrameBidiData; mozilla::FrameProperties::Descriptor<T> = const mozilla::FramePropertyDescriptor<mozilla::SmallValueHolder<mozilla::FrameBidiData> >*]’
 0:51.62 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/layout/generic/nsIFrame.h:1383:50:   required from here
 0:51.62 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj/dist/include/FrameProperties.h:302:13: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘mozilla::FrameProperties::PropertyType<mozilla::SmallValueHolder<mozilla::FrameBidiData> >’ {aka ‘struct mozilla::FrameBidiData’} from an array of ‘uint64_t’ {aka ‘long unsigned int’} [-Wclass-memaccess]
 0:51.62   302 |       memcpy(&value, &aInternalValue, sizeof(value));
 0:51.62       |       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 0:51.62 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/layout/generic/nsIFrame.h:395:8: note: ‘mozilla::FrameProperties::PropertyType<mozilla::SmallValueHolder<mozilla::FrameBidiData> >’ {aka ‘struct mozilla::FrameBidiData’} declared here
 0:51.62   395 | struct FrameBidiData {
 0:51.62       |        ^~~~~~~~~~~~~
 0:54.24 gmake[4]: Leaving directory '/var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj/accessible/base'
 0:55.02 gmake[4]: Leaving directory '/var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj/accessible/generic'
 0:56.24 In file included from /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/layout/generic/nsIFrame.h:53,
 0:56.24                  from /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/accessible/generic/HyperTextAccessible.h:13,
 0:56.24                  from /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/accessible/atk/HyperTextAccessibleWrap.h:10,
 0:56.24                  from /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/accessible/generic/DocAccessible.h:11,
 0:56.24                  from /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/accessible/generic/LocalAccessible-inl.h:10,
 0:56.24                  from /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/accessible/atk/nsMaiInterfaceText.cpp:10:
 0:56.24 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj/dist/include/FrameProperties.h: In instantiation of ‘static mozilla::FrameProperties::PropertyType<T> mozilla::FrameProperties::ReinterpretHelper<T>::FromInternalValue(uint64_t) [with T = mozilla::SmallValueHolder<mozilla::FrameBidiData>; mozilla::FrameProperties::PropertyType<T> = mozilla::FrameBidiData; uint64_t = long unsigned int]’:
 0:56.24 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj/dist/include/FrameProperties.h:202:51:   required from ‘mozilla::FrameProperties::PropertyType<T> mozilla::FrameProperties::Get(Descriptor<T>, bool*) const [with T = mozilla::SmallValueHolder<mozilla::FrameBidiData>; PropertyType<T> = mozilla::FrameBidiData; Descriptor<T> = const mozilla::FramePropertyDescriptor<mozilla::SmallValueHolder<mozilla::FrameBidiData> >*]’
 0:56.24 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/layout/generic/nsIFrame.h:4209:27:   required from ‘mozilla::FrameProperties::PropertyType<T> nsIFrame::GetProperty(mozilla::FrameProperties::Descriptor<T>, bool*) const [with T = mozilla::SmallValueHolder<mozilla::FrameBidiData>; mozilla::FrameProperties::PropertyType<T> = mozilla::FrameBidiData; mozilla::FrameProperties::Descriptor<T> = const mozilla::FramePropertyDescriptor<mozilla::SmallValueHolder<mozilla::FrameBidiData> >*]’
 0:56.24 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/layout/generic/nsIFrame.h:1383:50:   required from here
 0:56.24 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj/dist/include/FrameProperties.h:302:13: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘mozilla::FrameProperties::PropertyType<mozilla::SmallValueHolder<mozilla::FrameBidiData> >’ {aka ‘struct mozilla::FrameBidiData’} from an array of ‘uint64_t’ {aka ‘long unsigned int’} [-Wclass-memaccess]
 0:56.24   302 |       memcpy(&value, &aInternalValue, sizeof(value));
 0:56.24       |       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 0:56.24 /var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/layout/generic/nsIFrame.h:395:8: note: ‘mozilla::FrameProperties::PropertyType<mozilla::SmallValueHolder<mozilla::FrameBidiData> >’ {aka ‘struct mozilla::FrameBidiData’} declared here
 0:56.24   395 | struct FrameBidiData {
 0:56.24       |        ^~~~~~~~~~~~~
 0:57.40 gmake[4]: Leaving directory '/var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj/accessible/atk'
 0:57.41 gmake[3]: Leaving directory '/var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj'
 0:57.41 gmake[2]: *** [/var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/config/recurse.mk:34: compile] Error 2
 0:57.41 gmake[2]: Leaving directory '/var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj'
 0:57.41 gmake[1]: *** [/var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/firefox-109.0/config/rules.mk:361: default] Error 2
 0:57.41 gmake[1]: Leaving directory '/var/home/rsncra/rpmbuild/BUILD/firedragon-109.0/obj'
 0:57.41 gmake: *** [client.mk:60: build] Error 2
 0:57.43 0 compiler warnings present.

with this in log in console

config.log on pastebin INFO: Adding configure options from /var/home/rsncra/rpmbuild/BUILD/firedragon-1 - Pastebin.com
gcc in fedora is at version 12.2.1-4
rust - 1.67.0.2