[12:40] Hi, I'm trying to distribute GWE via Snap (https://forum.snapcraft.io/t/help-porting-gwe-nvidia-info-and-overclock-app-to-snap/9440) and I was wondering if someone here can give me some real time support. [12:48] diddledan, popey told me that you have done some gnome stuff recently, do you have some time to help me getting started? [14:45] leinardi: maybe during the week...? [14:45] people go outside for the weekend [14:47] Chipaca, I work during the week but I can be available after 18:00 CET. I work on this project on my free time so, usually, during the weekend. [14:47] hey leinardi happy to help [14:47] popey: go outside! i hear there's icecream [14:47] Chipaca: what's this "outside" you speak of [14:47] :D [14:48] I went outside. Didn't like it much. [14:48] ah, fair enough [14:48] There's bees and stuff out there [14:48] did you say beer [14:48] * Chipaca runs [14:48] BEES! [14:49] leinardi: snap install gnome-3-26-1604 [14:49] I have seen that error too [14:49] it tells you the wrong content snap to use, right? [14:49] popey: https://youtu.be/Nni0rTLg5B8?t=40 [14:50] ooh oooh, i know wht [14:50] *why [14:50] leinardi: how are you building this given your snap/snapcraft.yaml isn't in the root of the project but buried in dist? [14:51] popey, yep, that's the error, but I don't get why should I install both gnome-3-26-1604 and gnome-3-30-1804, is that normal? [14:51] no, i know why it's happening and want to build here on my laptop to prove it [14:51] on my local branch is on the root, but I would like to move it to dist if possible [14:52] I can push another commit so that we have the same location for the snapcraft.yaml [14:52] how can i get the latest source and yaml? [14:55] popey, ok just pushed, you can checkout the branch feature/snap [14:55] ok, lemme have a play [14:56] sure, thanks! [15:02] PR snapd#6436 opened: interfaces: add system-backup interface [15:17] https://www.irccloud.com/pastebin/5aQABZPM/ [15:18] ^ leinardi [15:19] https://www.irccloud.com/pastebin/iwsIb2xx/meson-log.txt [15:20] popey, could it be that you are missing some of the dependencies? Are you able to run GWE with the ./run.sh? [15:20] deps: sudo apt install python3-pip libcairo2-dev libgirepository1.0-dev libglib2.0-dev libdazzle-1.0-dev gir1.2-gtksource-3.0 gir1.2-appindicator3-0.1 python3-gi-cairo [15:20] thats me building it as a snap [15:20] will check those are build-packages.. [15:24] Dependency gtk+-3.0 found: NO found '3.22.30' but need: '>=3.24' [15:24] :( [15:24] do you really need 3.24? [15:26] popey, unfortunately yes, due to libdazzle [15:26] This is a bit of a blocker. There's ways around it though. [15:26] https://gitlab.gnome.org/GNOME/libdazzle/issues/31 [15:27] One way is to add a ppa from the ubuntu desktop team, which pulls in newer GTK [15:27] Another way is to build gtk (and whatever else) from sauce [15:28] I believe there is work ongoing to fix this [15:28] kenvandine and diddledan are working on a gnome extension for snapcraft [15:29] the ppa needs to be added to the host machine, right? I guess is needed only for Ubuntu < 18.10. I'm on 18.10 I have the right version [15:29] Well... [15:29] Build for core18 [15:29] Snaps are built against a runtime. The main ones are core(16) and core18 [15:29] kenvandine: i am building for core18 [15:29] Is my recommendation [15:30] but this app needs newer gtk [15:30] Oh [15:30] The future build snap will help there... But not ready yet [15:30] You can also build you own gtk part [15:31] got any examples? [15:31] I'm confused, what is the gnome-3-30-1804 that I have in the snapcraft.yaml? Isn't that providing gtk 3.24? [15:33] That's used at runtime, to provide some support libs and a launcher [15:33] We're (I'm) stuck at the "building" part [15:33] When you built on 18.10, you're going to likely end up with a snap that won't run on anything [15:33] Because it will be built against newer libc and friends. [15:34] I see [15:34] We recommend building in a clean container or vm running 18.04 or 16.04 [15:34] now, 16.04 is too old for your application, so prefer 18.04. [15:34] http://paste.ubuntu.com/p/rtv4V37Ddm/ [15:35] that's the yaml I have so far, note the addition of "base: core18" which tells snapcraft to build against core 18 which is ~ ubuntu 18.04 [15:36] Unless we go down the path of building the world from scratch, starting with newer GTK, we may have to put this on pause. [15:36] I mean, I'm happy to help you move forward, and build these bits to get you moving :) [15:36] until the work ken mentioned is done. [15:37] This is a pitfall of having a beautiful app on the bleeding edge :) [15:37] but you'd likely have to build quite a bit of gtk / gnome / gi to get this working. [15:38] is there any ETA it? Are we talking about weeks, months or 20.04? [15:38] *for it [15:39] Great question. Might be faster to build those parts :S [15:39] :) [15:39] I was hoping kenvandine might have a repo on gitlab somewhere which we can steal parts from :) [15:40] sorry for the silly question but it is still not clear to me: shouldn't be enough to have the proper runtime and just build on a host that has GTK 3.24? [15:40] 18.10 for example? No, because it will be built against the libc that's in 18.10 [15:41] So someone on 16.04 installs your snap and it will fall over with horrible LIBC errors in capital letters [15:42] https://gitlab.gnome.org/Community/Ubuntu/gnome-3-28-1804-sdk/blob/master/snapcraft.yaml#L297 [15:43] GOOD LORD [15:43] That's a gtk part, just ignore the build-environment line [15:43] and bump source-branch? [15:43] But, you might run into issues [15:43] haha, no shit :) [15:44] I gotta run now.. but I can help out on Monday [15:44] thanks! [15:45] mmm please be patient, just need to ask more questions to better understand :) When we are talking about building, we are talking just about libdazzle, right? Because My app is a PyGOpject app, so I don't have to build anything beside libdazzle, or not? [15:46] what I am expecting is that gnome-3-30-1804 is providing all the gnome 3.30 support, but I still need to provide libdazzle since is not part of it [15:46] or am I missing something? [15:47] gnome-3-30-1804 doesn't provide the stuff needed at *build* time. [15:47] only runtime components [15:48] The problem is that you're targetting 3.24 which isn't available in Ubuntu 18.04 repos [15:48] (I mean, libdazzle needs that) [15:50] ok but, I don't get why for a user with gnome-3-30-1804 installed would be a problem to run the snap build on my machine, if I bundle libdazzle binary (I'm an Android dev, so not really familiar with C dependencies) [15:53] if you build on a system which has newer libc, it likely won't work on a system with older libc [15:53] this is part of the reason snaps exist at all. You build in a specific environment (core 16 ~ Ubuntu 16.04, or core 18 ~ Ubuntu 18.04). [15:54] When the user instals the snap, they get core16 or core18 which contains the libc the app was built against, no matter what they install the snap on [15:54] So whether they install your snap on fedora 28 or arch bleeding edge, your snap works because along comes core18 or core16 snap "runtime" [15:54] That's all fine, and isn't the problem we need to solve today. [15:54] The problem is *building* the thing at all on 18.04 (not 18.10) [15:56] ok, now I think is clear, thanks :) [15:56] :) [15:58] I'll have a chat with Ken on Monday. I'll add it to discuss in our regular catch up meeting to see what our options are, okay? [15:58] (and reply on the forum) [15:58] that would be awesome, thanks a lot! [16:00] left a placeholder reply on the forum so others don't waste time on it. [16:01] sorry I don't have a quick answer for you [16:03] no worries, I'm glad to be getting some help, I can work on other thing while we figure out how to build on 18.04 :) [16:05] popey, one last question for today: do you know if this is possible? https://forum.snapcraft.io/t/specify-custom-build-directory/9671 [16:12] popey: leinardi: building against core18 should give you gnome 3.28 from the 18.04 repo (that's what bionic has natively) [16:13] diddledan, correct, but I need gnome 3.30 / gtk 3.24 [16:15] aah, gtk. sorry, I misunderstood [16:25] in that case then popey is right that the only way currently to get a more recent gtk is to rebuild it from source [16:29] diddledan, I see, thanks. Do you know if it's possible to specify a custom directory for the build output of snapcraft? I'm talking about the parts, prime and stage directories. I'd like to have them inside a build folder. [16:29] that's not possible [16:31] note I tweaked your yaml to not have references to snap in the prefix [16:31] the idea is that you use a throwaway build system, e.g. a vm, that does everything internally to the vm [16:31] it shouldn't be needed [16:31] yeah, base: core18 will use multipass to build in an 18.04 vm [16:31] * diddledan goes to find a multipass pic [16:32] https://cdn.instructables.com/FTJ/CYOV/IEB8CSW1/FTJCYOVIEB8CSW1.LARGE.jpg?auto=webp [16:32] oh ok. popey: thanks, I have already pushed your changes to the feature/snap branch [16:32] diddledan, :D