IRC logs for #buildstream for Friday, 2017-11-24

gitlab-br-botbuildstream: issue #161 ("Stack trace while removing device files, fuse related") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/16105:35
*** tristan has joined #buildstream05:36
gitlab-br-botbuildstream: issue #162 ("Add --unsafe option to bst checkout") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/16206:09
*** tristan has quit IRC06:35
*** tristan has joined #buildstream06:55
*** bochecha has joined #buildstream08:35
*** bochecha has left #buildstream08:35
*** bochecha has joined #buildstream08:39
*** tristan has quit IRC08:43
*** valentind has joined #buildstream08:45
*** bethw has joined #buildstream09:23
*** bochecha_ has joined #buildstream09:47
*** bochecha has quit IRC09:50
*** bochecha_ is now known as bochecha09:50
*** valentind has quit IRC09:50
*** jonathanmaw has joined #buildstream10:00
*** ssam2 has joined #buildstream10:18
*** tpollard has quit IRC10:29
*** tpollard has joined #buildstream10:33
*** bochecha_ has joined #buildstream11:05
*** bochecha has quit IRC11:07
*** bochecha_ is now known as bochecha11:07
*** saxa has joined #buildstream13:09
saxahi, I want to start using buildstream to buildmy project. I would like to know few things.13:09
saxaFirst thing is that I saw it requires Ostree13:10
saxaI use Slackware for my project13:10
saxaand i probably will need to build os tree separately13:10
saxais ostree a must ?13:10
ssam2it's possible to use buildstream without, to a point13:11
saxaAnother thing whichinterests me is that I want to be able to get the installable packages of the stuff I build.13:11
ssam2but you will miss out on (a) being able to pull from OStree remote sources, (b) being able to share artifacts with remote caches, and (c) deduplication in your local artifact cache13:11
saxainstallable packages made for Slackware13:11
ssam2that can be done13:12
saxassam2: I see13:12
saxamost probably for creating a package I will need to write a plugin13:12
ssam2probably13:12
saxaso let me explain better about my project.13:12
ssam2you can play around with the 'script' plugin to begin with13:13
ssam2and just have a script which generates your package. from there you can decide whether it's useful to write a dedicated plugin for slackware packages13:13
saxaI am building gnome packages for slackware, see www.droplinegnome.org13:14
ssam2oh, cool13:14
saxaso I have an build system but I would like to switch and start using buildstream13:15
* ssam2 used to use dropline GNOME many years ago :-)13:15
saxa:)13:15
saxassam2: so you are a slackware man :)13:15
saxaanyway, I will have to do some tests before, as now we have also python3 in the upcoming slackware release13:16
saxaand this will ease a bit the things for me13:16
saxathere is already lots of updated gnome stuff in slackware too, so I wouldlike to avoid duplicating what is not really necessary to duplicate13:17
saxamostly base stuff is in there, glib, gtk, some themes and so on13:17
ssam2i guess you'll have a pipeline which builds all GNOME modules, and then produces a package *For each module* ?13:17
saxacorrect13:17
ssam2I'm not yet sure the best way to do that13:17
saxathis is what I want to achieve13:17
ssam2the obvious way is to have a -pkg element for each thing you build, I guess13:17
ssam2so you have 'gnome-session.bst', for example,  then 'gnome-session-pkg.bst' which produces a package from that13:18
saxabuild the full gnome desktop, or the modules I choose to, and have the resulting slackware .txz package done13:18
ssam2and add the end you can have a 'dropline-gnome.bst' package, which depends on every -pkg element13:18
ssam2and when you check that out, you get a directory full of Slackware packages13:18
ssam2a 'dropline-gnome.bst' element, I mean13:19
saxai see13:19
saxaseems logical yes13:19
saxaI now use my own build list, which is made each gnome release by hand13:19
saxaone by one13:19
ssam2ouch13:19
saxaand this is tireing13:19
ssam2I see where you are going with this13:20
saxaso I would like to use the gnome release team stuff possibly13:20
ssam2and it should be possible ... we are working on "recursive pipelines" support, which basically means you can have one BuildStream project depend on another one13:20
saxasince its already done by somebody is no sense to duplicate it :)13:20
ssam2so you would need to maintain a project of *-pkg.bst elements, and those could depend on the upstream GNOME project13:20
saxathats good to hear13:20
ssam2this is something we really want to support in BuildStream, by the way13:20
saxayeah this is what i understood from the various mails i saw on the desktop ML13:21
saxaanyway I never had the time to try it yet, but I will set up a testing machine and since it is in python and I know some python stuff, not much though, I can also write some plugins and  things needed to make this go.13:22
ssam2great! if you look at the existing element plugins you should get a good idea of what's needed. we don't have any elements that produce packages yet, but that is planned13:22
saxawhat mostly intrigues me is how to make it output the .txz slackware package, most probably .xz stuff is already supported in BS.13:23
ssam2how do you produce slackware packages now ?13:23
ssam2i expect you'd just have an element that calls the program you use now, and treats the resulting package as its build output13:23
ssam2the 'compose' element is also relevant here; it supports splitting up build output from another element according to globs13:24
ssam2so you can include only "runtime" stuff, or only devel headers, or only debug info, etc.13:24
ssam2although I think slackware doesn't do a runtime/devel package split ? It's been a while since i used it :-)13:24
saxassam2: sorry i was busy over here in my office13:44
saxai use the dropline build system13:44
saxaa set of scripts which create the final package.13:44
saxait is written in bash13:45
saxawww.sf.net/p/dropline-gnome13:45
ssam2ok, so you already have the code to create the package; that can just be wrapped up in an element13:45
ssam2an element plugin, rather13:45
ssam2build elements are all actually glorified shell scripts :-)13:45
saxai think its not good to go calling the atual build system.13:46
ssam2what do you mean by "the actual build system" ?13:46
saxasince i have to create and modify everytime the build scripts version and patches and such things13:46
saxathebuild system i use to create the gnome packages13:47
ssam2Can you separate out the bit that creates the actual package?13:47
saxai think you are talking about the slackwares build system ?13:47
ssam2separate that from the part that produces the binaries from the source code13:47
saxaok slackwares package is a source code build up with make for example and installed into a temp dir, then all is tarred and xzipped with makepkgcommand on slackware13:48
saxathe makepkg command then checks for symlinks, and creates a simple install script13:49
saxaand then it gzips all together with the package description file13:49
saxaand you get a resulting .txz13:49
ssam2ah ok13:49
ssam2so you could have a 'slackware_pkg' element which wraps `makepkg`13:50
saxawhich is then installable with installpkg or upgradepkg shell scripts13:50
saxaprobably13:50
saxaso dropline build system, in short DBS is using this tools to create the actual package13:50
saxaits also a mess because now slackware uses slackbuilds to create the packages, slackbuilds are simple scripts in bash which runs all the needed commands, configure, make etc...13:51
saxawhen dropline was born at the time there were no slackbuilds yet afair13:52
saxabut i am looking for a way to use as much as possible of what you have in build stream already13:52
saxaslackware next release will also have meson and ninja which is another good addition for me13:53
saxasine i wont need to install separately thosetools just to get gnome build.13:53
saxabut my idea is to have one centralized list or build order or whatever plugin which could simply download, untar, uncompress, configure, build , install and packagize the stuff13:54
saxaand al lthat done n buildstream if it is achivable13:55
saxaand all that done in buildstream if it is achivable13:55
saxahttps://sourceforge.net/p/dropline-gnome/code/HEAD/tree/dbs/branches/DLG_3_20/13:56
saxa^^ here is the scripts and build system I used for building gnome 3.2013:57
saxawhich is the last one I build up.13:57
saxahttps://sourceforge.net/p/dropline-gnome/code/HEAD/tree/dbs/branches/DLG_3_20/etc/compile-order13:57
saxa^^ this is the compile order file, which if you issue ./dbs build_all you get the gnome installed on your slackware and the packages in txz format in the /tmp/DLG/packages dir.13:59
saxaso basically i would like to achieve the same goal but with buildstream.13:59
saxanow in the scripts dir you have the build scripts, changelog, description file and patches needed for each individual package.14:01
ssam2right; so if you want to reuse the upstream project that will need to change a bit14:19
ssam2patches are a tricky one; obviously the best approach is to upstream them :-) otherwise you'll need to duplicate the element in your own project so that it builds your way14:20
*** semanticdesign has joined #buildstream14:20
ssam2overriding configure options might be something we need to think about ...14:20
ssam2as i guess you won't always the upstream configure options14:21
ssam2the changelog and description for each one would go in your downstream element14:21
ssam2the best person to discuss this with is tristan, but i think he's travelling the next few days14:21
ssam2maybe you could start a thread on to buildstream-list@gnome.org14:22
saxassam2: ok, I can leave without the ChangeLog file , but description have to be done for each package, otherwise the package14:26
saxais not 100% correct14:26
saxaalthough slackware tools wont complain.14:26
saxafor the patches there must be a way to apply them since many times gnome does not think in the way slackware does and some things needs to be heavily patched to get built14:27
ssam2sounds like you'll need to maintain a fork of the upstream build instructions in that case14:28
ssam2which shouldn't be too hard, everything is in Git after all14:28
saxaI will first try to play a bit with build stream and try to install it and build some sources to see how it works in practice14:28
saxathen i can have a good idea if it is worth investing time and work in that direction.14:29
ssam2sounds good14:29
saxai will subscribe to the buildstream ML too.14:30
saxathanks for now for your good intro and help14:30
saxaok see ya soon, bye14:39
*** mcatanzaro has joined #buildstream14:39
*** semanticdesign has quit IRC14:45
tlaterIf I understand asyncio correctly, we can never run anything using it in any context outside of the scheduler?14:50
* tlater wanted to launch shell commands for event hooks using it so we don't block the main thread with user commands14:51
ssam2there needs to be some kind of main loop running for it to work14:53
ssam2multiprocessing might be your friend there14:53
tlaterssam2: Yeah, that was my first solution, but unfortunately it seems that my processes get killed if buildstream finishes just before them14:54
ssam2ouch14:54
ssam2maybe some magic flag you can set, or something you could run on cleanup to check they have finished ?14:55
tlaterI didn't see any magic flags, but the latter should be possible14:55
* tlater will go for that and see how much it adds14:55
*** bochecha has quit IRC15:25
*** mcatanzaro has quit IRC15:38
gitlab-br-botpush on buildstream@132-loading-external-plugins-works-without-explicit-requirement-in-project-conf (by Jonathan Maw): 2 commits (last: Make external plugin loading require explicit configuration in project.conf) https://gitlab.com/BuildStream/buildstream/commit/0cf9d2ccd3253d5c3bf77760d62308b4b4c5080e15:39
gitlab-br-botbuildstream: merge request (132-loading-external-plugins-works-without-explicit-requirement-in-project-conf->master: WIP: Resolve "Loading external plugins works without explicit requirement in project.conf") #125 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12515:39
jjardon[m]Hi, would16:22
jjardon[m]config:16:23
jjardon[m]  configure-commands:16:23
jjardon[m]  - %{configure} --enable-foo16:23
jjardon[m]be valid using autotools build system?16:23
jjardon[m]or I have to manually write down: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/plugins/elements/autotools.yaml#L1816:24
ssam2depends if anything defines %{configure}16:28
ssam2looks like %{conf-cmd} is actually what you should use16:28
ssam2ah, no, %{configure} is defined lower down16:28
ssam2so yeah that should work. does it not ?16:28
ssam2assuming your element is of kind 'autotools' of course16:29
jjardon[m]ok thanks, only wanted to confirm as the def2bst conversion script doesnt do that16:35
jjardon[m](using %{configure})16:35
*** bethw has quit IRC16:49
*** tpollard has quit IRC16:52
*** ssam3 has joined #buildstream17:00
*** tiagogomes has quit IRC17:01
*** ssam2 has quit IRC17:01
*** mcatanzaro has joined #buildstream17:04
*** ssam3 has quit IRC17:57
*** ssam3 has joined #buildstream17:57
*** ssam3 has quit IRC18:19
*** jonathanmaw has quit IRC18:35
*** jonathanmaw has joined #buildstream18:36
*** jonathanmaw has quit IRC18:37
*** valentind has joined #buildstream18:54
gitlab-br-botbuildstream: merge request (fix-compose-delete-with-symlink-in-path->master: Remove non canonical path from manifest after integration commands in compose plugin.) #161 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16118:56
*** mcatanzaro has quit IRC19:32
*** bochecha has joined #buildstream19:35
*** cs_shadow has quit IRC21:04
gitlab-br-botbuildstream: merge request (lzip->master: Add support for lzip in tar source) #162 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/16221:22
*** tristan has joined #buildstream21:22
valentindtristan, where can I get the integration tests?21:24
valentindA test failed, I would like to run it locally to see what is happening.21:25
valentindAh sorry.21:25
valentindDid not see it was in the same repository.21:26
*** xtq has joined #buildstream22:29
xtqCALL 415-349-5666 L0DE RADIO HOUR22:29
xtqhttps://www.youtube.com/watch?v=DIZqYgaOchY22:29
xtqtristan bochecha valentind saxa jude juergbi ironfoot brlogger persia ptomato[m] waltervargas[m] mrmcq2u[m] mattiasb kailueke[m] cgmcintyre[m] jjardon[m] benbrown pro[m] inigomartinez csoriano gitlab-br-bot hergertme tlater nexus paulsherwood laurenceurhegyi22:29
*** xtq has left #buildstream22:29
tristanvalentind, instead of the private _output_file(), thats what Plugin.call() is for: http://buildstream.gitlab.io/buildstream/buildstream.plugin.html#buildstream.plugin.Plugin.call22:31
tristanvalentind, also, use utils.get_host_tool() in Plugin.preflight() to find a host tool, like here: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/plugins/sources/git.py#L24922:33
tristanthat will ensure that the user gets a nice error message at startup time (not after 40 mins of building), if ever the user needs lzip but doesnt have it22:34
tristangit plugin also uses Plugin.call() extensively (for reference)22:35
tristanfor calling host tools, it also ensures the process suspend / resume / force terminate works well22:36
tristanas well as redirecting output to the appropriate log file22:36
tristanoh, but of course the .lz is special I guess (you only need utils.get_host_tool('lzip') if you're really gonna use it, which I guess you cant know from the `.lz` extension in the configured url22:39
tristan)22:39
tristans/you cant/you can22:40
* tristan gets some sleep22:40
* tristan zzzzZZZZZZ22:40
*** valentind has quit IRC23:07

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!