There's an "fpc" package, which is a compiler, and a "lazarus" package, which is a fancy IDE. Though not always, sometimes when compiling GUI applications, Lazarus recompiles parts of its codebase using FPC. Unfortunately, this makes the IDE dependent on a specific version of the compiler - if you install Lazarus compiled with FPC v. X.Y.Z, while you have FPC v. A.B.C installed, things are prone to break.
Now, I have submitted an update for FPC. When this update is pushed to stable, it will probably break Lazarus for some use cases, as detailed above. Is there any way I can perform a koji build for Lazarus using the not-yet-stable version of FPC, so I could then push both of them into bodhi as a single update? Or would my best course of action be to change Lazarus's "Requires: fpc" to a fully-versioned dependency, with a comment explaining why I did that?
As far as I can see, previously this wasn't an issue, since joost (fpc & lazarus maintainer) didn't usually perform FPC & Lazarus updates, preferring to build new versions in Rawhide / early branched and have them roll out with the next Fedora release.
You should create new override for fpc and fpc-src to F27 and F26 koji builds https://bodhi.fedoraproject.org/overrides/new
пн, 26 февр. 2018 г. в 11:25, Artur Iwicki suve@fedoraproject.org:
There's an "fpc" package, which is a compiler, and a "lazarus" package, which is a fancy IDE. Though not always, sometimes when compiling GUI applications, Lazarus recompiles parts of its codebase using FPC. Unfortunately, this makes the IDE dependent on a specific version of the compiler - if you install Lazarus compiled with FPC v. X.Y.Z, while you have FPC v. A.B.C installed, things are prone to break.
Now, I have submitted an update for FPC. When this update is pushed to stable, it will probably break Lazarus for some use cases, as detailed above. Is there any way I can perform a koji build for Lazarus using the not-yet-stable version of FPC, so I could then push both of them into bodhi as a single update? Or would my best course of action be to change Lazarus's "Requires: fpc" to a fully-versioned dependency, with a comment explaining why I did that?
As far as I can see, previously this wasn't an issue, since joost (fpc & lazarus maintainer) didn't usually perform FPC & Lazarus updates, preferring to build new versions in Rawhide / early branched and have them roll out with the next Fedora release. _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-leave@lists.fedoraproject.org
And for F28 now.
пн, 26 февр. 2018 г. в 11:30, Vascom vascom2@gmail.com:
You should create new override for fpc and fpc-src to F27 and F26 koji builds https://bodhi.fedoraproject.org/overrides/new
пн, 26 февр. 2018 г. в 11:25, Artur Iwicki suve@fedoraproject.org:
There's an "fpc" package, which is a compiler, and a "lazarus" package, which is a fancy IDE. Though not always, sometimes when compiling GUI applications, Lazarus recompiles parts of its codebase using FPC. Unfortunately, this makes the IDE dependent on a specific version of the compiler - if you install Lazarus compiled with FPC v. X.Y.Z, while you have FPC v. A.B.C installed, things are prone to break.
Now, I have submitted an update for FPC. When this update is pushed to stable, it will probably break Lazarus for some use cases, as detailed above. Is there any way I can perform a koji build for Lazarus using the not-yet-stable version of FPC, so I could then push both of them into bodhi as a single update? Or would my best course of action be to change Lazarus's "Requires: fpc" to a fully-versioned dependency, with a comment explaining why I did that?
As far as I can see, previously this wasn't an issue, since joost (fpc & lazarus maintainer) didn't usually perform FPC & Lazarus updates, preferring to build new versions in Rawhide / early branched and have them roll out with the next Fedora release. _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-leave@lists.fedoraproject.org
I believe that won't be necessary, as I took a look Lazarus's koji build for F28 (https://koji.fedoraproject.org/koji/taskinfo?taskID=25292607) and on all arches root.log says that fpc 3.0.4 was used during the build.
On 26/02/18 08:25, Artur Iwicki wrote:
Now, I have submitted an update for FPC. When this update is pushed to stable, it will probably break Lazarus for some use cases, as detailed above. Is there any way I can perform a koji build for Lazarus using the not-yet-stable version of FPC, so I could then push both of them into bodhi as a single update?
Yes - just use bodhi to register a buildroot override.
Or would my best course of action be to change Lazarus's "Requires: fpc" to a fully-versioned dependency, with a comment explaining why I did that?
You should probably do that as well.
Tom
Is there a way I can automatically do something like "BuildRequires: fpc (whatever version); Requires: fpc = version-used-during-build", or would I have to control this manually?
You must control this manually.
пн, 26 февр. 2018 г. в 14:54, Artur Iwicki suve@fedoraproject.org:
Is there a way I can automatically do something like "BuildRequires: fpc (whatever version); Requires: fpc = version-used-during-build", or would I have to control this manually? _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-leave@lists.fedoraproject.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
On Mon, 2018-02-26 at 12:21 +0000, Vascom wrote:
You must control this manually.
Until bodhi enablement for F28, this is not needed. Moreover, it won't work ;) - -- - -Igor Gnatenko
On 02/26/2018 12:53 PM, Artur Iwicki wrote:
Is there a way I can automatically do something like "BuildRequires: fpc (whatever version); Requires: fpc = version-used-during-build", or would I have to control this manually?
You can define an RPM macro for the version in fpc, e.g., by adding a file /usr/lib/rpm/macros.d/macros.fpc with the line
%_fpc_version X.Y.Z
and then use
Requires: fpc = %_fpc_version
in the Lazarus spec.
You will still need to update the macro definition on every FPC update.
Regards, Till
On Mon, Feb 26, 2018 at 6:42 AM, Till Hofmann thofmann@fedoraproject.org wrote:
On 02/26/2018 12:53 PM, Artur Iwicki wrote:
Is there a way I can automatically do something like "BuildRequires: fpc
(whatever version); Requires: fpc = version-used-during-build", or would I have to control this manually?
You can define an RPM macro for the version in fpc, e.g., by adding a file /usr/lib/rpm/macros.d/macros.fpc with the line
%_fpc_version X.Y.Z
and then use
Requires: fpc = %_fpc_version
in the Lazarus spec.
You will still need to update the macro definition on every FPC update.
You could automate it in the fpc spec file, something like this in %install:
mkdir -p %{buildroot}%{rpmmacrodir} cat > %{buildroot}%{rpmmacrodir}/macros.fpc << EOF # Some explanation here... %global _fpc_version %{version} EOF
Thanks, Richard
Il 26/02/2018 09:25, Artur Iwicki ha scritto:
As far as I can see, previously this wasn't an issue, since joost (fpc & lazarus maintainer) didn't usually perform FPC & Lazarus updates, preferring to build new versions in Rawhide / early branched and have them roll out with the next Fedora release. _______________________________________________
I would say that Joost was too conservative (very poor communication and very long time between the release of a FPC or Lazarus stable release and when they were built in Fedora), but now we're on the other side: I would have expected FPC 3.0.4 and Lazarus 1.8.0 to be released only on Rawhide and F28, not also in F27 and F26.
Since many packages depends on FPC and Lazarus, pushing new releases on older Fedora branches throws in some risks about breaking dependent package builds. If this is not needed to fix some urgent bug, it's better not to do so.
Anyway, the process to avoid a broken Lazarus to enter in repositories is: build FPC for the desired branch -> create a buildroot override in bodhi for the new FPC build -> wait for the overrided package to become active -> build Lazarus -> push a cumulative update for both packages
Regards Mattia
On Mon, Feb 26, 2018 at 10:49 AM, Mattia Verga mattia.verga@email.it wrote:
Il 26/02/2018 09:25, Artur Iwicki ha scritto:
As far as I can see, previously this wasn't an issue, since joost (fpc & lazarus maintainer) didn't usually perform FPC & Lazarus updates, preferring to build new versions in Rawhide / early branched and have them roll out with the next Fedora release. _______________________________________________
I would say that Joost was too conservative (very poor communication and
very long time between the release of a FPC or Lazarus stable release and when they were built in Fedora), but now we're on the other side: I would have expected FPC 3.0.4 and Lazarus 1.8.0 to be released only on Rawhide and F28, not also in F27 and F26.
Since many packages depends on FPC and Lazarus, pushing new releases on older Fedora branches throws in some risks about breaking dependent package builds. If this is not needed to fix some urgent bug, it's better not to do so.
I have to disagree a bit. If it's a major or minor update then we need to look at the pros vs cons, but a patch level update (assuming upstream is good about not making major ABI breaking changes) should be built for all released Fedora versions.
In the case of my package, cqrlog, they frequently use the latest modules so I would prefer they be available.
One option would be to do builds of both fpc and lazarus and submit buildroot overrides and let the maintainers of the other packages attempt to do scratch builds against them and report success or failure. Announcing on the devel list would take the least amount of effort but it would be nice to email all known maintainers of such packages using <package>- owner@fedoraproject.org if there's a way to reasonably semi-automate it.
Thanks, Richard