<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 24, 2019 at 10:44 PM David Boddie via Librem-5-dev <<a href="mailto:librem-5-dev@lists.community.puri.sm">librem-5-dev@lists.community.puri.sm</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Fri, 24 May 2019 20:57:11 +0300, rinigus wrote:<br>
<br>
> while Flatpak would probably work for most of the applications, we may need<br>
> once in a while to build applications with DEBs for L5. Examples include<br>
> testing, distribution of applications that are not matching Flatpak<br>
> restrictions, and maybe some other reasons. Right now, I am looking for it<br>
> to be able to distribute maps software for testing and distinguish issues<br>
> coming from flatpak packaging - something I cannot rule out.<br>
<br>
What kind of issues are you thinking of?<br></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">Its probably paranoia, but the thought is as follows. Flatpaks are build using some configuration settings - in my case at Flathub - that may not reflect fully hardware on which they run. In particular, I don't know how much of hardware-specific libs are used in such components like graphical stack (hw acceleration, for example). On PCs, we do have these nvidia flatpak packages, for example. On ARM, I don't know how much we do and how well L5 devkit is matched. But it maybe paranoia on my side induced by a lack of knowledge.</div></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">As for other reasons for DEBs (daemons, probably some other cases), there are probably several cases where flatpak is just not the best way for approaching it.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> I wonder whether we have any kind of build system that can be used now for<br>
> building "extra" deb packages that could run on L5/devkit? For Sailfish, we<br>
> have OBS that allows to compile complicated projects and distribute them<br>
> through its internal repositories.<br>
<br>
I don't know much about the Sailfish ecosystem, though I have heard of OBS.<br>
What kind of QA procedure is in place around this distribution system to<br>
ensure that the packages that get built are trusted? Do they become officially<br>
"blessed" packages, or is it just a convenient way of running the package<br>
building process to make third party packages for unofficial distribution or<br>
sideloading, like Personal Package Archives (PPA) with Ubuntu?<br></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">Good questions and there are things to learn from SFOS. On my side, I know very little about PPA (from developer's side) and had to look up how it works for developers. But let me reply to the questions one by one.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">On SFOS, there is an official store and packages in that store are blessed. The most of the restrictions are formulated via APIs that are allowed in the store. These APIs are checked for automatically when you upload your app. Next, app is checked manually by some officials in the store and only then released. What is done by that official and what is exactly is checked, I don't know. If something fails, you are told about it and you can resubmit new version. Such scheme works for closed- and open-sourced software and all work is done on compiled versions - whether by OBS or using SDK on PC.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Decent amount of software is distributed via alternative channels, mainly via OpenRepos. Compared to the official store, its a proper wild west. There are no checks, developers get their personal repositories (think of it as PPAs), developers can upload whatever they wish (could be taken down for copyright reasons), and all seems to work on trust. And, in my experience, this presence of trust works quite well for Sailfish. Community is small and if you release a decent software you start to build up the trust as well. </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Now OBS is very handy when you have to do something complicated and, in a way, it can be used to give some credibility to your packages and repositories. For mapping software, with large amount of components, its way easier to make your own repository and build the end-product that relies on some exotic libraries. In my case, its <a href="https://build.merproject.org/project/show/home:rinigus:maps">https://build.merproject.org/project/show/home:rinigus:maps</a> . If I change any of the packages, I can easily initiate rebuild as required to get the final result for different architectures and Sailfish versions. From PPA description, it seems to be similar to OBS. In practice, OBS is used by applications that are relatively complicated, by ports of SFOS to unofficial devices, and for extending / testing the core OS components. </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">As you can imagine, I would be happy to get something like OBS for L5. How to hook it with QA procedures, that's another story. In some respect, having a documented build (if used for open-sourced project), is a good start for QA as well.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Sorry for long post.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Cheers,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Rinigus </div><br></div><div> </div></div></div>