Bug 2387518 - Review Request: foundry - IDE library and command-line companion tool
Summary: Review Request: foundry - IDE library and command-line companion tool
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Michael Catanzaro
QA Contact: Fedora Extras Quality Assurance
URL: https://gitlab.gnome.org/GNOME/foundry
Whiteboard:
Depends On:
Blocks: 2396590
TreeView+ depends on / blocked
 
Reported: 2025-08-10 22:44 UTC by Fabio Valentini
Modified: 2025-09-21 15:02 UTC (History)
4 users (show)

Fixed In Version: foundry-1.0.0-1.fc44
Clone Of:
Environment:
Last Closed: 2025-09-21 15:02:25 UTC
Type: ---
Embargoed:
mcatanza: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 9395863 to 9571305 (4.50 KB, patch)
2025-09-18 21:08 UTC, Fedora Review Service
no flags Details | Diff

Description Fabio Valentini 2025-08-10 22:44:53 UTC
Spec URL: https://decathorpe.fedorapeople.org/foundry.spec
SRPM URL: https://decathorpe.fedorapeople.org/foundry-1.0~beta-1.fc42.src.rpm

Description:
This tool aims to extract much of what makes GNOME Builder an IDE into a
library and companion command-line tool.

Fedora Account System Username: decathorpe

Comment 1 Fabio Valentini 2025-08-10 22:46:14 UTC
koji scratch build for rawhide:
https://koji.fedoraproject.org/koji/taskinfo?taskID=135914385

Comment 2 Fedora Review Service 2025-08-10 23:15:53 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9395863
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2387518-foundry/fedora-rawhide-x86_64/09395863-foundry/fedora-review/review.txt

Found issues:

- License file foundry-license.h is not marked as %license
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_license_text

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 3 Michael Catanzaro 2025-08-11 21:51:41 UTC
Thanks for packaging. This is approved.


Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======

%{_libdir}/pkgconfig/libfoundry{,-gtk}-1.pc should move to the devel subpackage.

I think the GPL-3.0-or-later license is probably a mistake that we should be able to remove. Created https://gitlab.gnome.org/GNOME/foundry/-/issues/14 to confirm. Let's wait for Christian to respond to this to make sure we get the License tag right.

My recommendation is to removed the Provides: bundled(eggbitset) and bundled(timsort). I know it's sometimes hard to decide where to draw the line, but this seems too granular to me. It's a stretch to treat these little copylibs as equivalent to bundled libraries just because they happen to have their own meson.build and are two source files each instead of just one. You wisely don't add Provides for all the other egg files because it wouldn't scale well and the list would inevitably become stale.

I've created https://gitlab.gnome.org/GNOME/foundry/-/issues/15 to request a man page and https://gitlab.gnome.org/GNOME/foundry/-/merge_requests/8 to placate the incorrect FSF address warning.

===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

Generic:
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: I removed fedora-review's comment here because it doesn't understand
     the foundry license API and is thinking that a bunch of random licenses apply.
     I manually ran fedora-review myself and inspected the licensecheck output. The
     only inconsistency I found is already fixed by
     https://gitlab.gnome.org/GNOME/foundry/-/commit/0a82a4e642c65de89fa3d4eec9efbfc9b53d150b
[x]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[!]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[ ]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[-]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[!]: Package is not known to require an ExcludeArch tag.
     Note: ExcludeArch for i686 is encouraged. The review criterion is wrong.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10399 bytes in 2 files.
     Note: The above comment is written by fedora-review. Not sure what it thinks is documentation. Probably false positive.
[ ]: Package complies to the Packaging Guidelines
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: The License field must be a valid SPDX expression.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[x]: Reviewer should test that the package builds in mock.
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: The placement of pkgconfig(.pc) files are correct.
     Note: foundry : /usr/lib64/pkgconfig/libfoundry-1.pc foundry :
     /usr/lib64/pkgconfig/libfoundry-gtk-1.pc
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
     Note: GNOME doesn't publish signatures.
[-]: Package should compile and build into binary rpms on all supported
     architectures.
     Note: not evaluated for most architectures. Fail because i686 is
     intentionally excluded.
[x]: %check is present and all tests pass.
[ ]: Packages should try to preserve timestamps of original installed
     files.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 1955840 bytes in /usr/share
     Note: I think this is not big enough to warrant creating a noarch subpackage.
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
     Note: I think fedora-review's use of rpmlint has been broken for a long time.
     I think it's only running on the SRPM rather than on installed packages.


Rpmlint
-------
Checking: foundry-1.0~beta-1.fc43.x86_64.rpm
          foundry-devel-1.0~beta-1.fc43.x86_64.rpm
          foundry-1.0~beta-1.fc43.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.0
configuration:
    /usr/lib/python3.13/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmp8irwfls_')]
checks: 32, packages: 3

foundry.x86_64: W: no-manual-page-for-binary foundry
foundry-devel.x86_64: W: no-documentation
foundry.x86_64: E: incorrect-fsf-address /usr/share/licenses/foundry/COPYING
foundry.x86_64: W: devel-file-in-non-devel-package /usr/lib64/pkgconfig/libfoundry-1.pc
foundry.x86_64: W: devel-file-in-non-devel-package /usr/lib64/pkgconfig/libfoundry-gtk-1.pc
 3 packages and 0 specfiles checked; 1 errors, 4 warnings, 29 filtered, 1 badness; has taken 0.7 s 




Rpmlint (debuginfo)
-------------------
Checking: foundry-debuginfo-1.0~beta-1.fc43.x86_64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.0
configuration:
    /usr/lib/python3.13/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpvhlx249l')]
checks: 32, packages: 1

 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 14 filtered, 0 badness; has taken 0.7 s 





Rpmlint (installed packages)
----------------------------
(none): E: there is no installed rpm "foundry-debuginfo".
(none): E: there is no installed rpm "foundry-devel".
============================ rpmlint session starts ============================
rpmlint: 2.7.0
configuration:
    /usr/lib/python3.14/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 3

 0 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 filtered, 0 badness; has taken 0.0 s 
(none): E: there is no installed rpm "foundry".
There are no files to process nor additional arguments.
Nothing to do, aborting.



Source checksums
----------------
https://download.gnome.org/sources/foundry/1.0/foundry-1.0.beta.tar.xz :
  CHECKSUM(SHA256) this package     : 1a80ecbbfb9e3c3ecc834e98cc4fea20145068e5d8cae3cb781c7cede766a8bd
  CHECKSUM(SHA256) upstream package : 1a80ecbbfb9e3c3ecc834e98cc4fea20145068e5d8cae3cb781c7cede766a8bd


Requires
--------
foundry (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    libc.so.6()(64bit)
    libcmark.so.0.30.3()(64bit)
    libdex-1.so.1()(64bit)
    libflatpak.so.0()(64bit)
    libfoundry-1.so.1()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgio-2.0.so.0()(64bit)
    libgit2.so.1.9()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libgom-1.0.so.0()(64bit)
    libgtk-4.so.1()(64bit)
    libgtksourceview-5.so.0()(64bit)
    libjson-glib-1.0.so.0()(64bit)
    libjson-glib-1.0.so.0(libjson-glib-1.0.so.0)(64bit)
    libm.so.6()(64bit)
    libpango-1.0.so.0()(64bit)
    libpeas-2.so.0()(64bit)
    libspelling-1.so.2()(64bit)
    libtemplate_glib-1.0.so.0()(64bit)
    libvte-2.91-gtk4.so.0()(64bit)
    libwebkitgtk-6.0.so.4()(64bit)
    libxml2.so.2()(64bit)
    libxml2.so.2(LIBXML2_2.4.30)(64bit)
    libxml2.so.2(LIBXML2_2.5.0)(64bit)
    libxml2.so.2(LIBXML2_2.5.2)(64bit)
    libxml2.so.2(LIBXML2_2.5.7)(64bit)
    libxml2.so.2(LIBXML2_2.6.0)(64bit)
    libyaml-0.so.2()(64bit)
    pkgconfig(flatpak)
    pkgconfig(gio-2.0)
    pkgconfig(gio-unix-2.0)
    pkgconfig(gom-1.0)
    pkgconfig(gtk4)
    pkgconfig(gtksourceview-5)
    pkgconfig(json-glib-1.0)
    pkgconfig(libcmark)
    pkgconfig(libdex-1)
    pkgconfig(libfoundry-1)
    pkgconfig(libgit2)
    pkgconfig(libpeas-2)
    pkgconfig(libspelling-1)
    pkgconfig(libssh2)
    pkgconfig(libxml-2.0)
    pkgconfig(sysprof-capture-4)
    pkgconfig(template-glib-1.0)
    pkgconfig(vte-2.91-gtk4)
    pkgconfig(webkitgtk-6.0)
    pkgconfig(yaml-0.1)
    rtld(GNU_HASH)

foundry-devel (rpmlib, GLIBC filtered):
    foundry(x86-64)
    libfoundry-1.so.1()(64bit)
    libfoundry-gtk-1.so.1()(64bit)



Provides
--------
foundry:
    bundled(eggbitset)
    bundled(timsort)
    foundry
    foundry(x86-64)
    libfoundry-1.so.1()(64bit)
    libfoundry-gtk-1.so.1()(64bit)
    pkgconfig(libfoundry-1)
    pkgconfig(libfoundry-gtk-1)

foundry-devel:
    foundry-devel
    foundry-devel(x86-64)

Comment 4 Christian Hergert 2025-08-11 22:04:11 UTC
LGPLv2.1+ is definitely the intended license. Anything that is not is an accident.

I do want to suggest that things get broken up into the following:

 * "foundry" CLI tool (which statically links libfoundry)
 * "libfoundry" and "libfoundry-devel" which is just the core API (e.g. no GTK integration)
 * "libfoundry-gtk" and "libfoundry-gtk-devel" which is the GTK integration

Comment 5 Michael Catanzaro 2025-08-11 22:34:59 UTC
(In reply to Christian Hergert from comment #4)
> LGPLv2.1+ is definitely the intended license. Anything that is not is an
> accident.

Thanks.

eggbitset and timsort are both Apache-2.0, so you would need to remove them both if you want LGPLv2.1+ to be the only license.
 
> I do want to suggest that things get broken up into the following:
> 
>  * "foundry" CLI tool (which statically links libfoundry)
>  * "libfoundry" and "libfoundry-devel" which is just the core API (e.g. no
> GTK integration)
>  * "libfoundry-gtk" and "libfoundry-gtk-devel" which is the GTK integration

Sounds reasonable. I doubt Fabio will object to that? This is a significant change, so I'll review this again after the subpackages have been added.

Comment 6 Michael Catanzaro 2025-08-11 22:36:32 UTC
(In reply to Michael Catanzaro from comment #3)
> My recommendation is to removed the Provides: bundled(eggbitset) and
> bundled(timsort).

For avoidance of doubt: I recommend we remove the Provides. (I don't care whether upstream keeps these files and the Apache-2.0 license or not. That doesn't cause any problems.)

Comment 7 Christian Hergert 2025-08-11 22:38:25 UTC
> eggbitset and timsort are both Apache-2.0, so you would need to remove them both if you want LGPLv2.1+ to be the only license.

How is that handled in GTK? Both of those files come from GTK (though s/gtk/egg/g for bitset).

$ sudo dnf info gtk4
...
Name            : gtk4
...
License         : LGPL-2.0-or-later

Comment 8 Michael Catanzaro 2025-08-12 00:09:31 UTC
The gtk4 package's license field is wrong and should be fixed. (This is *very* common. Never actually trust the license field. If they are ever correct, then they'll become outdated before long. But at least we can get it correct when the package is reviewed!)

Comment 9 Michael Catanzaro 2025-08-12 01:46:52 UTC
(I decided to actually work on updating the gtk4 package's license. I think it will look approximately like this:

LGPL-2.0-or-later AND LGPL-2.1-or-later AND Apache-2.0 AND CC0-1.0 AND MIT AND MIT-open-group AND GPL-1.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND HPND-sell-variant AND OFL-1.1-no-RFN

But I'm not ready to create a pull request yet, because there are a few problems to fix upstream first.)

Comment 10 Michael Catanzaro 2025-08-12 23:11:22 UTC
I created https://src.fedoraproject.org/rpms/gtk4/pull-request/21 to correct the gtk4 package's license field, following the rules in https://docs.fedoraproject.org/en-US/legal/license-field/ which do not allow us to "simplify" the license. Reviews are welcome from anybody brave enough to attempt it.

Comment 11 Jeremy Bicha 2025-09-10 19:04:25 UTC
> "foundry" CLI tool (which statically links libfoundry)

Why does it statically link it? From a distro perspective, libfoundry is "right there".

There are some files — translations (don't exist yet but the framework is in place so they are coming soon), gsettings schemas, and perhaps /usr/share/foundry/language-defaults — that I believe are needed by both foundry and libfoundry. Debian has a convention of using a "-common" binary package for this situation but I guess this is uncommon 😉 in Fedora. If it wasn't statically linked, you could just have libfoundry supply these files and have foundry depend on libfoundry and I believe things would work.

Comment 12 Christian Hergert 2025-09-10 19:28:18 UTC
It's probably fine at this point to dynamically link to `libfoundry`. Ultimately, I had a long term goal of being able to "push" the binary to an external system like an agent/remote-control for remove development. But for the 1.0, we're just not there yet. Also, statically linking anything with glib/glibc involved is a nightmare.

Comment 13 Christian Hergert 2025-09-10 19:31:17 UTC
Currently, if we changed to shared library, we'll get a link failure:

/usr/bin/ld: foundry.p/foundry.c.o: in function `shutdown_cb':
/home/christian/Projects/foundry/build/../foundry.c:40:(.text+0x4b): undefined reference to `_foundry_context_shutdown_all'

but we can probably work around that with an exported (but private) API.

Comment 15 Michael Catanzaro 2025-09-10 21:03:24 UTC
Thanks. Dynamic linking is certainly better.

(In reply to Christian Hergert from comment #4)
>  * "foundry" CLI tool (which statically links libfoundry)
>  * "libfoundry" and "libfoundry-devel" which is just the core API (e.g. no
> GTK integration)
>  * "libfoundry-gtk" and "libfoundry-gtk-devel" which is the GTK integration

Looks like we still need to implement this subpackage split.

Comment 16 Fabio Valentini 2025-09-18 20:23:41 UTC
Sorry for the radio silence here - getting a new package reviewed has been very low priority with updates for existing packages being more important.

Thank you both for your comments, I'll be making some adjustments to address the feedback in the previous comments, and bump the package to the 1.0.0 final release.

> %{_libdir}/pkgconfig/libfoundry{,-gtk}-1.pc should move to the devel subpackage(s).

Good catch, I added this to the wrong package. I moved it to the -devel package.

> I think the GPL-3.0-or-later license is probably a mistake that we should be able to remove. Created https://gitlab.gnome.org/GNOME/foundry/-/issues/14 to confirm. Let's wait for Christian to respond to this to make sure we get the License tag right.

Looks like this was resolved upstream between the 1.0.beta and the 1.0.0 release, I've adjusted the License tag accordingly. Thank you for filing the upstream ticket!

> My recommendation is to removed the Provides: bundled(eggbitset) and bundled(timsort). I know it's sometimes hard to decide where to draw the line, but this seems too granular to me. It's a stretch to treat these little copylibs as equivalent to bundled libraries just because they happen to have their own meson.build and are two source files each instead of just one. You wisely don't add Provides for all the other egg files because it wouldn't scale well and the list would inevitably become stale.

IMO having bundled "Provides" is *exactly* what you *should* do for copylibs. But to be fair, I really wasn't sure where / how to draw the line which ones to add, since it's a bit hard to tell where those even come from. "timsort" is just so ubiquitous that a web search didn't help at all. I'm fine with removing them if you think it makes more sense to draw the line of "what constitutes a bundled library" to the left of eggbitset and timsort :)

> I've created https://gitlab.gnome.org/GNOME/foundry/-/issues/15 to request a man page and https://gitlab.gnome.org/GNOME/foundry/-/merge_requests/8 to placate the incorrect FSF address warning.

Thank you!

As for the package split - I will try to work on that, and will upload updated .spec and SRPM files when that's ready.

Comment 17 Jeremy Bicha 2025-09-18 20:30:35 UTC
This timsort was copied from GTK. https://salsa.debian.org/gnome-team/foundry/-/blob/debian/latest/debian/copyright#L44

Comment 18 Fabio Valentini 2025-09-18 20:46:32 UTC
Spec URL: https://decathorpe.fedorapeople.org/foundry.spec
SRPM URL: https://decathorpe.fedorapeople.org/foundry-1.0.0-1.fc42.src.rpm

- updated to version 1.0.0
- moved .pc file to -devel subpackages
- removed bundled() Provides for some stuff
- split subpackages into libfoundry, libfoundry-gtk, libfoundry-devel, and libfoundry-gtk-devel, based on upstream recommendation

Some things that I was not sure about:

1. What are the GSettings schemas used for? Are they used by the library, or only by the CLI?
   I've currently put them into the libfoundry package (which is the bottom of the dependency tree),
   so as it is now, they would always be availalable regardless of which packages are installed (which is the safest approach).

2. What is /usr/share/foundry/language-defaults thing used for? CLI or library? (basically, same question as 1.)

3. What is /usr/lib*/libfoundry-1/include/libfoundry-config.h for?
   It's a C header file that's installed in a rather unusual location.
   Right now I've put /usr/lib*/libfoundry-1/ directory and all its contents into libfoundry-devel.
   Is that correct? Or is that header file used at runtime by foundry CLI / libfoundry too?

Comment 19 Fedora Review Service 2025-09-18 21:08:03 UTC
Created attachment 2106959 [details]
The .spec file difference from Copr build 9395863 to 9571305

Comment 20 Fedora Review Service 2025-09-18 21:08:05 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9571305
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2387518-foundry/fedora-rawhide-x86_64/09571305-foundry/fedora-review/review.txt

Found issues:

- License file foundry-license.h is not marked as %license
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_license_text

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 21 Christian Hergert 2025-09-18 21:35:12 UTC
> - License file foundry-license.h is not marked as %license

FoundryLicense represents a license, that can be selected in the project/etc.

>  What are the GSettings schemas used for?

The library uses them.

> What is /usr/share/foundry/language-defaults

The library uses them for default language settings, allowing users to manually override.

> What is /usr/lib*/libfoundry-1/include/libfoundry-config.h for?

It's meant to be somewhat akin to the ${prefix}/lib*/glib-2.0/include/glibconfig.h

Comment 22 Fabio Valentini 2025-09-18 21:40:18 UTC
(In reply to Christian Hergert from comment #21)
> > - License file foundry-license.h is not marked as %license
> 
> FoundryLicense represents a license, that can be selected in the project/etc.

:+1:

> >  What are the GSettings schemas used for?
> 
> The library uses them.
> 
> > What is /usr/share/foundry/language-defaults
> 
> The library uses them for default language settings, allowing users to
> manually override.

Thanks for confirming, that means they're in the correct place already.

> > What is /usr/lib*/libfoundry-1/include/libfoundry-config.h for?
> 
> It's meant to be somewhat akin to the
> ${prefix}/lib*/glib-2.0/include/glibconfig.h

Let's ... assume that I don't know what that means? :)

Comment 23 Christian Hergert 2025-09-18 23:27:37 UTC
>> It's meant to be somewhat akin to the
>> ${prefix}/lib*/glib-2.0/include/glibconfig.h
>
> Let's ... assume that I don't know what that means? :)

Right now it just has some compile time constants. But the eventual goal, is that is where our architecture-specific constants that require determination at compile time will go.

Comment 24 Michael Catanzaro 2025-09-19 17:33:49 UTC
(In reply to Christian Hergert from comment #21)
> It's meant to be somewhat akin to the
> ${prefix}/lib*/glib-2.0/include/glibconfig.h

I didn't know about this. The problem is the GLib header is architecture-dependent, so it can't go under /usr/include. I think the libfoundary header is not actually arch-dependent, but maybe it could be in the future, so the location seems reasonable. libfoundary-devel was the correct choice for where to put it.

Comment 25 Michael Catanzaro 2025-09-19 17:40:31 UTC
Regarding the globs in the file list:

%{_libdir}/libfoundry-1.so.1{,.0.0}
%{_libdir}/libfoundry-gtk-1.so.1{,.0.0}

Isn't this a little strict? Doesn't that mean we have to update the file list each time the library version changes at all? I think what we want to do is fail only if the first component of the library version changes, like:

%{_libdir}/libfoundry-1.so.1{,.*}
%{_libdir}/libfoundry-gtk-1.so.1{,.*}

I don't see any other problems, so I'll approve this package.

Comment 26 Fabio Valentini 2025-09-21 14:28:39 UTC
Thanks for your feedback and the review!

Regarding the ".1{,.0.0}" patterns -- I think you're right, but they're also not *wrong* right now, so I'll leave them as-is for now.

Comment 27 Fedora Admin user for bugzilla script actions 2025-09-21 14:29:16 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/foundry

Comment 28 Fabio Valentini 2025-09-21 15:02:25 UTC
Imported and built:
https://bodhi.fedoraproject.org/updates/FEDORA-2025-867dc61fa6

The GNOME Manuals review should be unblocked (as soon as foundry is available in the rawhide repos).


Note You need to log in before you can comment on or make changes to this bug.