On Thu, Jan 31, 2019 at 12:23 PM Pete Walter <walter.pete(a)yandex.com> wrote:
I've noticed that someone created a flatpak build for one of my
packages (feedreader), but it's horribly out of date: flatpak has 2.5.1 vs rpm has
2.7.0. I've been trying to update the flatpak build, but not much luck here. The
documentation is pretty verbose, but seems to miss some crucial steps and nothing really
works.
Thanks for trying it out, and sorry that you are having problems!
[...]
Up until here everything seems to check out and download correctly,
but then when I do:
$ flatpak-module local-build --install
[...]
module_build_service.errors.UnprocessableEntity: None of the base
module (platform) streams in the buildrequires section could be found
This is a poor error message. What it means is that your buildrequires
is missing:
platform: [f29]
(for other modules, you may want platform: [] to build against all
streams, but that doesn't make so much sense for Flatpaks, where a
single build will work on multiple Fedora versions.)
Requiring all modules to depend directly on platform instead of just
indirectly through (in this case, flatpak-runtime) is a change in MBS
as aof a few months ago, 'fedmod rpm2flatpak' will now add this
dependency automatically but the feedreader.yaml modulemd file is old.
You can run
'fedmod rpm2flatpak --force --flatpak-common --flathub=feedreader
feedreader' to update the files in modules/feedreader, and commit the
changes if they look good. (I've turned over modules/feedreader to you
in
src.fedoraproject.org.)
- buildrequires:
flatpak-runtime: [f29]
requires:
flatpak-runtime: [f29]
so I've tried to do 'dnf install flatpak-runtime' but the package doesn't
seem to be available.
These are module buildrequires, not package buildrequires. But as
above, it's just a really confusing error message.
Next, I thought I'd try building it in koji. Not sure how to do
that, the docs are fairly vague, mentioning 'git push origin master' but I
don't have anything really to push, the existing git doesn't seem to refer to
package versions or anything. I figured that maybe it somehow magically connects it to
dist-git rpms/feedreader and gets the sources there
If you look at feedreader.yaml, the different components have 'ref:
f29' - this means "use the f29 branch of dist-git/rpms/<foo>". The
way
that the module-build-service works however, the *first time* a
particular git commit of modules/<foo> is done, the
module-build-service code freezes the versions of all components
remembers them if you try to build the same commit again. So building
again without a change would have built 2.5.1 again. A useful thing to
know is:
git commit --allow-empty -m "Rebuild for newer feedreader" ; git push origin
Note that you do need to fix up the platform dependency of
feedreader.yaml, so it's not important here.
so I've tried just 'fedpkg module-build' without pushing
anything to modules/flatpak, but that fails again with the familiar missing buildrequires
error:
$ fedpkg module-build
Submitting the module build...
Could not execute module_build: The build failed with:
None of the base module (platform or bootstrap) streams in the buildrequires section
could be found
Yes, that's the same error.
Is the flatpak building actually working for anyone? What am I doing
wrong? How do I specify what version to actually build?
It is currently working, yes. And rebuilding it (with fixes) will
automatically use the latest versions of the branch. I'm trying to
work now on a small application to show a status page for the Flatpaks
in Fedora that will highlight cases where the RPMs are newer than
what's in the Flatpaks.
Owen