-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create org.pitivi.Pitivi.json #52
Conversation
org.pitivi.Pitivi.json
Outdated
{ | ||
"app-id": "org.pitivi.Pitivi", | ||
"runtime": "org.gnome.Platform", | ||
"runtime-version": "3.22", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any reason why not 3.24?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this version has been developed and mostly tested on 3.22, only in current master we support 3.24 (fixed minor warning and stuff).
We also provide master (build on every commit) on http://flatpak.pitivi.org/ which is based on Sdk 3.24.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would strongly recommend 3.24 as it has had numerous improvements like supporting theming, VAAPI support, GStreamer 1.10 and other dependencies you use, etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do not want vaapi (not robust enough for us), our official development environment is flatpak and for a specific release we target a specific runtime/sdk version, changing randomly afterward is like what used to happen with distro, and this is really something I do not want.
org.pitivi.Pitivi.json
Outdated
"finish-args": ["--command=pitivi", | ||
"--share=ipc", | ||
"--socket=x11", | ||
"--socket=session-bus", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ideally only grant what you need rather than blanket access.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ipc, is the onlyone that might not be required, am I missing something else?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
--socket=session-bus
gives you unrestricted access to the dbus session. You should be using --talk-name=foo.bar
instead.
org.pitivi.Pitivi.json
Outdated
}, | ||
"modules": [ | ||
{ | ||
"name": "yasm", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is in the Sdk.
org.pitivi.Pitivi.json
Outdated
"build-options": { | ||
"build-args": ["--share=network"], | ||
"cflags": "-O0 -g -L/usr/lib -Lbuild/temp.linux-x86_64-3.4 -I/usr/include -I/usr/include/python3.4m/", | ||
"env": {"ARCHFLAGS": "-arch x86_64"} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Flathub supports multiple arches so hardcoding this is wrong unless you only support that one arch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
org.pitivi.Pitivi.json
Outdated
{ | ||
"name": "numpy", | ||
"build-options": { | ||
"build-args": ["--share=network"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Flathub is sandboxed, you cannot grant network access. You have to fix their build system to work offline.
This applies to many of the other modules too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is that? What does it change to access the network from the host or from withing the sandbox?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was mentioned on IRC but we want everything to be reproducable and it stops any possibility of any malicious network use.
org.pitivi.Pitivi.json
Outdated
] | ||
}, | ||
{ | ||
"name": "meson", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is in the 3.24 Sdk.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, but we do not use 3.24 :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bump as it was rebased to the 3.24 Sdk.
] | ||
}, | ||
{ | ||
"name": "gst-plugins-good", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gstreamer 1.10 is In the 3.24 Sdk.
If you only need to build a few extra plugins specify so in the config-opts. Same goes for most of the other gstreamer modules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bump as it was rebased to the 3.24 Sdk.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need our own build of Gst as we have backported patches that are not in the 1.12 branch and we build quite many more plugins than what is provided in the Sdk.
org.pitivi.Pitivi.json
Outdated
"name": "pitivi", | ||
"buildsystem": "meson", | ||
"builddir": true, | ||
"config-opts": ["--libdir=lib", "--prefix=/app"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't need to pass prefix manually.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True.
Updated with the following changes:
|
Anything missing? |
No. Looks good to me (although I dislike that you are using 3.22, but I see your point); I scheduled a test build. |
Build failed since 3.22 isn't available on the builders. |
I tested with |
Why not? |
Also a very good question! :-) |
Probably because nobody needed it yet and 3.24 has a lot of improvements. I imagine Alex isn't against adding it though. |
Wasn't meant as sarcasm, but rather, I thought the whole point is that flatpak would allow application authors to target different runtimes, thus not breaking apps if gnome moves faster than they do for example. Personally, I think you should just get on the latest, but I understand both sides :) |
I was not taking it as sarcasm, just stating that it would also be good to have.
Well we have but it is not released yet.
(How) could we get that done? |
@thiblahute I'm curious where the regression you have is? Because they should have the same Gtk version (3.24 doesn't exist), they should have the same GStreamer since you build it yourself, etc. |
We have an issue in latest meson (we could workaround that), and in Gtk between 3.22.6 (Sdk 3.22.0) and 3.22.14 in the new Sdk. |
Hmm, well it is probably just chance that the old Sdk didn't get those Gtk3 updates anyway. As you mention Meson is trivial to workaround. |
OK, |
org.pitivi.Pitivi.json
Outdated
@@ -0,0 +1,497 @@ | |||
{ | |||
"app-id": "org.pitivi.Pitivi", | |||
"branch": "1.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Set it to stable
or remove altogether, our CI sets it on its own.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
org.pitivi.Pitivi.json
Outdated
"--socket=x11", | ||
"--socket=pulseaudio", | ||
"--socket=wayland", | ||
"--socket=session-bus", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it need access to entire session bus?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, without it Pitivi doesn't start and we get:
Failed to register: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown
but I must be missing something, couldn't figure out what :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably just patch this to use the correct app-id: https://github.com/GNOME/pitivi/blob/ed321acfa2e84b67ce2ff7754ad135674b0aa74a/pitivi/application.py#L72
org.pitivi.Pitivi.json
Outdated
"branch": "1.0", | ||
"runtime": "org.gnome.Platform", | ||
"runtime-version": "3.24", | ||
"finish-args": ["--command=pitivi", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use command
top level property instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
org.pitivi.Pitivi.json
Outdated
"rename-icon": "pitivi", | ||
"copy-icon": true, | ||
"build-options": { | ||
"cflags": "-O0 -g", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, a nitpick… Why not -O2
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed for releases.
org.pitivi.Pitivi.json
Outdated
"GST_PLUGIN_SYSTEM_PATH": "/app/lib/gstreamer-1.0/", | ||
"FREI0R_PATH": "/app/lib/frei0r-1/" | ||
}, | ||
"strip": false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's the default.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remains from the past :-)
{ | ||
"name": "numpy", | ||
"buildsystem": "simple", | ||
"ensure-writable": ["easy-install.pth"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@TingPing does it look right to you?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
He suggested the trick :-)
org.pitivi.Pitivi.json
Outdated
] | ||
}, | ||
{ | ||
"name": "sound-theme-freedesktop", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's in the runtime since a while.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed.
org.pitivi.Pitivi.json
Outdated
}, | ||
{ | ||
"name": "x265", | ||
"cmake": true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use "buildsystem": "cmake"
, cmake
as key is marked as deprecated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
] | ||
}, | ||
{ | ||
"name": "gst-plugins-good", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bump as it was rebased to the 3.24 Sdk.
org.pitivi.Pitivi.json
Outdated
] | ||
}, | ||
{ | ||
"name": "meson", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bump as it was rebased to the 3.24 Sdk.
Just now when we're about to switch to 3.26! :) We need some things to be changed, but I started a test build though: https://flathub.org/builds/#/builders/1/builds/451 |
Well, Pitivi 1.0 is not going to be based on it ;) And thanks for the review! |
Looks like |
To me the issue is the usage of |
Can you trigger a rebuild please? |
OK, works only on 64bits whch is the only one I care about for now (only tested one), I added a flathub.json so that it is the only one built for now, is that ok? |
You would need to fix lame not building on all architectures the same way as com.github.JannikHv.Gydl and org.audacityteam.Audacity. This will be the third application that has to solve the same issue. I will hence repeat my suggestion to make it a shared module. |
@AsavarTzeth, Seems acceptable, want to open a PR against flathub/shared-modules |
@TingPing Sure, I could do it right away. Should not take long. |
What about building only x64-64 for now? My problem is that I am not sure how to test other arch (and I am not sure I care so much right now). |
It is acceptable for now, you probably still want to use the lame version just added to shared-modules though. |
org.pitivi.Pitivi.json
Outdated
"sources": [ | ||
{ | ||
"type": "git", | ||
"branch": "1.12.3", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you want 1.12 now the 3.26 runtime is out, so why wouldn't you use that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"We need our own build of Gst as we have backported patches that are not in the 1.12 branch and we build quite many more plugins than what is provided in the Sdk."
org.pitivi.Pitivi.json
Outdated
"name": "pitivi", | ||
"buildsystem": "meson", | ||
"builddir": true, | ||
"config-opts": ["--libdir=lib"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can drop all of these --libdir=lib
now, this was patched in the Sdk.
"--disable-libmfx", | ||
"--disable-libnpp", | ||
"--disable-iconv", | ||
"--disable-jni", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might be more manageable for you to pass --disable-everything
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am just copy/pasting what is done in the gst-libav
statically build ffmpeg
submodule.
org.pitivi.Pitivi.json
Outdated
}, | ||
{ | ||
"name": "gsound", | ||
"ensure-writable": ["easy-install.pth"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I imagine this doesn't need to be here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
org.pitivi.Pitivi.json
Outdated
"finish-args": ["--socket=x11", | ||
"--socket=pulseaudio", | ||
"--socket=wayland", | ||
"--socket=session-bus", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No reason to pass through entire bus.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ping? |
You made a typo:
|
Sorry about that! I am now using Could you trigger a rebuild? |
Repository has been created: https://github.com/flathub/org.pitivi.Pitivi |
switch from tar to deb
Update qtkeychain to 0.10.0
* Added some more stuff to the AppData * Add the keyword `ablaze` to `.desktop` * 11.10.2.1 --------- Co-authored-by: typeling1578 <pub@typeling1578.dev>
Update to 19.12.1
No description provided.