**** BEGIN LOGGING AT Fri Oct 23 02:59:58 2015 Oct 23 07:12:54 good morning Oct 23 07:24:48 greetings all :-) Oct 23 07:48:11 morning mckoan, parrot2, all Oct 23 08:11:33 <[Sno]> RP: around? or someone else who's familiar with the sdk-wrapper created eg. for perl? Oct 23 08:11:57 <[Sno]> I run into a similar problem hacking recipes for perl6 and need some guidance Oct 23 08:13:13 [Sno]: kind of Oct 23 08:13:46 <[Sno]> as said, I run into similar problem one might had when doing perl in nqp (perl6) Oct 23 08:14:39 <[Sno]> I need an sdk-wrapper calling sdkroot nqp with sysroot libs ;) Oct 23 08:15:27 [Sno]: those wrappers are generated by create_wrapper in the recipes iirc Oct 23 08:15:50 <[Sno]> RP: see nqp-j for sdkroot http://nopaste.linux-dev.org/?784693 Oct 23 08:16:01 <[Sno]> rp: they're ;) Oct 23 08:16:45 <[Sno]> RP: it's more: (1) where to place the target-root-wrapper to distinguish from sdkroot one? Oct 23 08:17:18 [Sno]: sdk ones are done in the nativesdk namespace? Oct 23 08:17:35 <[Sno]> let me google for nativesdk namespace doc ;) Oct 23 08:18:04 [Sno]: in recipes you'll see things like _class-nativesdk Oct 23 08:18:24 <[Sno]> RP: and how do I depend on those? Oct 23 08:19:18 [Sno]: If you look at the perl5 recipe itself, there is an example of a wrapper for class-nativesdk ? Oct 23 08:19:34 The do_install_append_class-nativesdk Oct 23 08:19:48 <[Sno]> I don't get it entirely - but with those answers I retry and see how far I get ... Oct 23 08:20:00 <[Sno]> maybe there is some magic I don't see Oct 23 08:20:11 [Sno]: I'm still not quite understanding the question :/ Oct 23 08:20:35 <[Sno]> well, I think when I can phrase the question, I can answer myself ^^ Oct 23 08:21:17 [Sno]: "native" overrides apply to things used during the build process itself. "nativesdk" apply to things in the sdk. "class-target" would be things that run on the target device Oct 23 08:21:57 <[Sno]> so - do_install_append_class-nativesdk is run automatically when? Oct 23 08:22:19 <[Sno]> how does this fit into sstate-cache? Oct 23 08:22:20 [Sno]: when nativesdk-perl is built and the do_install task runs Oct 23 08:22:46 [Sno]: However when the sdk is relocated at install time, the paths in it are adjusted automatically Oct 23 08:23:40 <[Sno]> RP: When nativesdk-nqp is built on machine A, and I build rakudo-star relying on nqp in machine B (with common sstate-cache), install for sdk is run on machine B? Oct 23 08:24:06 [Sno]: no :/ Oct 23 08:24:29 [Sno]: that do_install is run when nativesdk-perl is built Oct 23 08:24:50 its the step where "make install" is run against the compiled source Oct 23 08:24:54 <[Sno]> how do I install nativesdk-nqp on machine B on building rakudo-star? Oct 23 08:25:08 <[Sno]> or is it rebuilt in that case? Oct 23 08:25:40 [Sno]: are you building with the SDK or with the main build system? Oct 23 08:26:07 <[Sno]> currently with the main build system, but I miss some files I see when e.g. perl is build ;) Oct 23 08:26:30 <[Sno]> and I want to provide same support for sstate-cache and sdk as perl5 does Oct 23 08:26:33 [Sno]: so you'd want nqp-native in that case, the SDK isn't involved Oct 23 08:27:17 <[Sno]> RP: for the moment, nqp-native installs a tmp/sysroots/x86_64-linux/usr/bin/nqp-j -- bit nqp doesn't do the same in any $target-arch sysroot Oct 23 08:27:50 [Sno]: by default target binaries aren't installed into the sysroot Oct 23 08:28:00 since you can't run then Oct 23 08:28:07 them Oct 23 08:28:20 <[Sno]> that's why the somehow wrapper ... ;) Oct 23 08:28:54 <[Sno]> rakudo-star needs to extract some values from nqp-libs for target Oct 23 08:29:14 [Sno]: so how are you planning to run it? under qemu? Oct 23 08:29:45 <[Sno]> they're jar files - I can run them with host java (as perl modules with host perl) Oct 23 08:30:09 [Sno]: so you're missing the jar files in the sysroot? Oct 23 08:30:27 [Sno]: or you want to install a wrapper? Oct 23 08:30:28 <[Sno]> RP: the script loading the jar files Oct 23 08:30:33 <[Sno]> both Oct 23 08:31:00 <[Sno]> I want to install a wrapper doing some basic stuff with the jar files Oct 23 08:32:08 [Sno]: ok, so I think the best example to look at is something simple like recipes-graphics/xorg-font/font-util_1.3.1.bb Oct 23 08:32:16 The SYSROOT_PREPROCESS_FUNCS += "fontutil_sysroot_preprocess" Oct 23 08:32:29 you can see what the default is in classes/staging.bbclass Oct 23 08:32:31 <[Sno]> I detected some other issue with the cross-build and the target settings, either - so I might need do more complex stuff later: compile and link-flags contain target's sysroot (but that shouldn't get deployed) Oct 23 08:32:51 and then that function in fontutil installs some extra files into the sysroot Oct 23 08:33:02 <[Sno]> RP: that's it! thanks Oct 23 08:33:27 <[Sno]> for b - different flags for host/target deployment - that might be the answer, too Oct 23 08:34:06 [Sno]: basically there you can install extra files, or tweak the files for cross usage Oct 23 08:34:28 [Sno]: just try not to overuse this ;-) Oct 23 08:34:34 <[Sno]> sure Oct 23 08:34:50 Ideally things installed in the sysroot should match the target Oct 23 08:35:12 <[Sno]> yeah - it's just a bunch of path's I have to modify Oct 23 08:38:01 hi folks, I want to do something like "if I define on my shell "FOO=v1.2" then fetch my sources with branch=foo;tag=v1.2 Oct 23 08:38:07 what is wrong with this paste? http://pastebin.com/Qi1AYjgN Oct 23 08:39:02 <[Sno]> LocutusOfBorg1: have a try with BB_ENV_EXTRAWHITE might help ... Oct 23 08:40:57 <[Sno]> RP: can you have a look on https://github.com/rehsack/meta-jens/tree/master/recipes-extended/daemontools btw. https://github.com/rehsack/meta-jens/tree/master/recipes-extended/daemontools-encore whether it can be added to poky after jethro? Oct 23 08:41:31 <[Sno]> RP: and https://github.com/rehsack/meta-jens/blob/master/scripts/bashrc -- I already talked to bluelightning about that, but didn't talk about the way to submit it Oct 23 08:41:51 [Sno]: Question is which layer it should go to, meta-oe or core Oct 23 08:41:52 I want my customer to be able to build a particular tag of all his branches Oct 23 08:42:01 maybe there is a better approach Oct 23 08:42:47 <[Sno]> RP: with https://github.com/rehsack/meta-jens/blob/master/scripts/bashrc - one can source it and then do "oe_builddir use ..." or "oe_builddir prune ..." to switch builddir or start fresh etc. Oct 23 08:43:04 <[Sno]> instead of sourcing oe_setup again and again Oct 23 08:44:23 <[Sno]> LocutusOfBorg1: use inc file and a bunch of *.bb files for each particular tag? Oct 23 08:44:27 [Sno]: lets discuss after 2.0 please. I need to try and actually make the release work Oct 23 08:45:17 [Sno], well, changing with an export foo the fetch branch/tag is easier Oct 23 08:45:22 I don't have to change recipes at each tag Oct 23 08:51:58 <[Sno]> RP: when is 2.0 - jethro? Oct 23 08:52:46 <[Sno]> LocutusOfBorg1: either BB_ENV_EXTRAWHITE or exra recipe per tag - that are 2 sane proposals ;) Oct 23 08:53:00 <[Sno]> pick one or explain why both are insane for your usecase Oct 23 08:53:01 yes thanks Oct 23 08:53:11 the first one is the best one Oct 23 08:53:17 [Sno]: basically now, as soon as we get several key things fixed Oct 23 08:54:46 <[Sno]> RP: I'd prefer my perl changes in jethro (2.0), since they fix some really insane quirks Oct 23 08:55:11 <[Sno]> as well as the basics for openjdk-8 support (autotools, llvm 3.5+) Oct 23 08:55:43 <[Sno]> got to run, back in 20 min & Oct 23 08:55:51 thanks Oct 23 09:00:14 hello everybody Oct 23 09:03:34 i'm quite new to systemd, on my small embeded device i've just installed systemd, and trying to interract with it usnig serial console Oct 23 09:03:43 the problem (unlike the same system with sysvinit) is that for some reason i'm not able to write on my serial debug console Oct 23 09:03:50 http://pastebin.com/i5iMx2yH is the last log i have with " A start job is running for dev-ttymxc0.device" Oct 23 09:04:03 i dont know what to do to be able to communicate with my device using serial console, any help please ? Oct 23 09:04:06 bluelightning: ping Oct 23 09:05:08 parrot2: pong Oct 23 09:08:39 bluelightning: I've been encountering errors like in http://pastebin.com/g7JXQbSD Oct 23 09:10:20 and actually the missing cmake files are available within the source file itself...so I'm not sure if I should append the source's cmake directory to CMAKE_MODULE_PATH or it's mistake from the app developer itself. Oct 23 09:11:26 what I did was I copied the cmake files inside the source dir's cmake directory to the CMAKE_MODULE_PATH and all is well again. But O Oct 23 09:11:40 I'm not sure if that's an elegant way? Oct 23 09:23:46 nayone have a begining of idea ? Oct 23 09:25:47 ohmy: do you have access to the machine other than through the serial terminal? Oct 23 09:27:31 bluelightning: can be possible using ethernet, but since i dont know the IP adress of the target i cannot ssh Oct 23 09:27:42 hmm ok Oct 23 09:29:57 bluelightning: "A start job is running for dev-ttymxc0.device" i dont know what this job is all about :( Oct 23 09:30:23 bluelightning: i pass console=ttymxc0,115200 to kernel during startup Oct 23 09:31:01 I'm not much of a systemd expert either I'm afraid Oct 23 09:32:32 the hostname of the target is usually the MACHINE name, you should be able to ssh with that Oct 23 09:32:50 * joshuagl never ssh's to the machine's IP address Oct 23 09:35:50 bluelightning, quick question Oct 23 09:36:11 I usually build on my recipes with SRCREV="${AUTOREV}" on branch foo Oct 23 09:36:25 now, my customer wants to rebuild a particular tag, and I did something like this Oct 23 09:36:38 whitelist some bash export FOO=tagv1 Oct 23 09:36:50 BB_ENV_EXTRAWHITE FOO Oct 23 09:37:40 ohmy: check that you have CONFIG_FHANDLE enabled in the kernel Oct 23 09:38:12 http://pastebin.com/W82cbjmF Oct 23 09:38:17 this seems to be not working Oct 23 09:39:12 wait, why wouldn't you just set SRCREV to tag? Oct 23 09:43:26 ohmy: this used to be a problem with older fsl kernels, CONFIG_FHANDLE was not enabled in the kernel what resulted in systemd not being able to start getty on your console port, it was fixed with this patch http://git.yoctoproject.org/cgit/cgit.cgi/meta-fsl-arm/commit/?id=b8a95eac05672a31065116544d973e482abd1e36 but if you're running an older or a custom kernel you might still get this problem Oct 23 09:43:30 joshuagl, you might be right :) Oct 23 09:43:34 checking right now Oct 23 09:45:30 bboozzoo: i'm using meta fsl arm master branch Oct 23 09:46:34 aa ok, so it might not be cause after all :) Oct 23 09:47:06 bboozzoo: checking if that option is there anyway (using linux kernel 3.14.1) Oct 23 10:20:37 bboozzoo: this falg was available on all kernels but the one i'm using, it solves the issue, many thanks Oct 23 11:15:48 Can I create recipes for separate applications which live in the same git repo and still avoid re-downloading the repo twice? Oct 23 11:18:45 rrva: that should happen automatically Oct 23 11:19:15 although if they start fetching at the same time, it may not Oct 23 11:19:28 what mechanism prevents this? Oct 23 11:20:19 and also, can I specify a narrow checkout (parts of tree) as a source? (git sparse checkout) Oct 23 11:23:25 rrva: we don't support sparse checkouts; we can cut out a directory from the checkout of a repo (using ;subpath= ) but the entire repo will still be downloaded Oct 23 11:43:17 ok, nice. and the parts where you do not double-download, it's standard bitbake behavior? Oct 23 11:53:48 so yocto does not force you to split each app into separate repos at the recipe boundary? Oct 23 11:54:22 bluelightning: this was claimed by our yocto guy that yocto needs multirepo structure Oct 23 13:08:45 <_gpg_> hello Oct 23 13:09:18 <_gpg_> i'd like to have your help please, i'm trying to understand how yocto-layer and recipetool works together Oct 23 13:09:54 _gpg_: hi Oct 23 13:10:10 <_gpg_> i want to create a recipe for git://git.projects.genivi.org/wayland-ivi-extension.git Oct 23 13:10:13 <_gpg_> bluelightning: hi Oct 23 13:10:29 they don't directly connect to eachother, but you can use recipetool to create recipes / bbappend files after having created a layer using yocto-layer Oct 23 13:10:45 <_gpg_> creating layer is trivial, simply by doing yocto-layer create wayland-ivi-extension Oct 23 13:11:18 <_gpg_> later i call "recipetool create -o wayland-ivi-extension -x ../sources/meta-wayland-ivi-extension/ -b git://git.projects.genivi.org/wayland-ivi-extension.git" Oct 23 13:11:50 _gpg_: you'll need .bb on the end of the argument you are passing to -o Oct 23 13:12:04 <_gpg_> i hope that understand "recipetool create", isn't it meant to create "recipe-" folder etc ? Oct 23 13:12:32 _gpg_: correct, it won't, you need to put the recipe in the appropriate/desired locaton afterwards Oct 23 13:13:29 <_gpg_> bluelightning: thanks, the thing is that it does not create any "recipe-" folder Oct 23 13:13:38 no, it won't do that Oct 23 13:13:44 _gpg_: meta-ivi already has a recipe for wayland-ivi-extension, maybe you can use that as a reference Oct 23 13:13:47 <_gpg_> bluelightning: i see the .bb file, also a git folder inside my layer but no recipe folder Oct 23 13:14:04 <_gpg_> fredcadete: yes indeed, i was thinking about, thanks Oct 23 13:14:14 it can't do that, because it can't tell what category the recipe will need to go into Oct 23 13:14:19 so it leaves that part to you Oct 23 13:14:28 <_gpg_> bluelightning: ah ok, thanks Oct 23 13:14:48 <_gpg_> fredcadete: meta ivi looks quite old btw Oct 23 13:15:15 yes, it's a few versions behind Oct 23 13:16:56 I guess it could just hardcode it (or guess), but there's no code written to do that Oct 23 13:25:26 hey Oct 23 13:25:55 (14:24) < qknight> hey. i have problems building qtwebkit 5.2.1 on ppc64 -> http://paste.ubuntu.com/12902103/ #error "The MacroAssembler is not supported on this platform." Oct 23 13:25:58 (14:25) < qknight> how can i disable JIT in qtwebkit? didn't find the switch yet as the buildsystem seems to be a mixture of qmake and CMake ;-) Oct 23 13:26:01 (14:25) < qknight> https://lists.webkit.org/pipermail/webkit-dev/2012-March/019943.html <- is this really the way to do it? Oct 23 13:26:11 i checked https://lists.webkit.org/pipermail/webkit-dev/2012-March/019943.html and that didn't fix the issue on ppc Oct 23 13:26:15 anyone an idea how to go on? Oct 23 14:00:02 lo Oct 23 14:00:38 will there be an update of the valgrind recipe to 3.11.0? Oct 23 14:04:36 RP: rburton: autobuilder doesn't look too busy, OK for me to run a fido build? Oct 23 14:08:10 hey guys Oct 23 14:08:32 how can I append ntpdate to crontab file? Oct 23 14:10:32 crontab -e will start crontab editor so google that. Oct 23 14:10:40 iirc. Oct 23 14:11:33 Snert__: I mean during the build Oct 23 14:14:40 jaeckel: not until after the YP 2.0 release (which is very soon) Oct 23 14:14:53 ty bluelightning Oct 23 14:33:09 zloy: at the image level, you could make a shell function that appends your line to crontab. Then add that function to ROOTFS_POSTPROCESS_COMMAND Oct 23 14:33:35 there are many ways to skin that cat Oct 23 14:36:46 fredcadete: in ntpdate bb file there is a fucntion called pkg_postinst_ntpdate Oct 23 14:37:13 where there is such string: echo "30 * * * * ${bindir}/ntpdate-sync silent" >> $D/var/spool/cron/root Oct 23 14:37:53 fredcadete: I thought to make bbappend file for ntp and append the stuff to crontab file Oct 23 14:41:03 zloy: that's also possible Oct 23 14:41:31 you can override or append to the pkg_postinst_ntpdate Oct 23 14:44:07 http://ix.io/lzt here is the full function Oct 23 15:03:53 joshuagl: sure Oct 23 15:06:30 * ulf` waves to rburton and joshuagl Oct 23 15:06:58 hi ulf` Oct 23 15:07:04 thanks rburton Oct 23 15:07:10 * joshuagl waves to ulf` Oct 23 16:32:17 hey. how to use devshell with a rather complicated build system like qtwebkit? Oct 23 16:32:28 i do get a shell but then i don't know what to do Oct 23 16:32:32 any manual somewhere? Oct 23 16:37:10 devshell just gives you a shell in the source tree Oct 23 16:37:15 what you do with it is entirely up to you Oct 23 16:45:08 kergoth: ah, so there are no helpers as in gentoo where you can use 'ebuild' to go into a certain stage assisted by the foo-1.2.3.ebuild you are currently trying to package Oct 23 16:46:00 not really, no. you can bitbake -c configure the recipe before you -c devshell, then in ../temp/ will be a run. shell script for do_configure which you could run to re-run the configure on demand Oct 23 16:46:02 but thats about it Oct 23 16:46:12 (same for compile, of course) Oct 23 16:59:35 why?! oh why do I have to suffer with meta-qt5 each time there is a new version? Oct 23 17:37:39 abelloni: this is called karma Oct 23 17:47:27 abelloni: since you are using qt5, could you please give me all your conf/local.config values you are using? Oct 23 17:47:47 abelloni: i'm curious, are you installing qt5 with qmake into the target system so you can then build software using qt5 from there? Oct 23 17:49:24 i want to do that but i don't understand if i should supply a list of packages or use CORE_IMAGE_EXTRA_INSTALL with http://paste.ubuntu.com/12904822/ Oct 23 17:49:39 abelloni: just see the paste where i've added a OR between the options i Oct 23 18:27:48 qknight: I'm never installing a toolchain on the target Oct 23 18:28:00 this is a really really bad practice Oct 23 18:29:20 lol Oct 23 18:29:46 yeah, i'm also all against development machines ;-) Oct 23 18:29:57 who knows what these ppl do with their computers... Oct 23 18:57:10 what happens if you put (specify) a package in an image but not a package that it RDEPENDS on? does it get added automatically? do you get an error? Oct 23 18:57:29 yes, it will install its dependencies. if that wasn't the case, none of our images would work at all Oct 23 18:57:36 we don't list every dep in IMAGE_INSTALL Oct 23 18:57:50 yeah, sounds reasonable Oct 23 18:58:57 Guys, when running: runqemu qemux86 (Can you modify KERNCMDLINE='vga=0 uvesafb.mode_option=640x48-32') Oct 23 18:59:16 To run a different mode_option=1024x768-32?? Oct 23 18:59:37 From the command line, of course. Oct 23 19:03:52 how would you define "sysroot" btw? just a directory with typical /-like contents (usr/, lib/, etc/, etc.)? that's the way i've understood it, but maybe it's even more specific. :) Oct 23 19:03:58 or it's supposed to be clear from context Oct 23 19:04:09 i usually do more coding than package management and configuration Oct 23 19:04:30 pretty much, yes. in this context our sysroot used for recipes to find files from their dependencies. Oct 23 19:04:59 yeah Oct 23 19:06:37 Looks like: runqemu qemux86 bootparams="uvesafb.mode_option=1024x768-32" Works great. I actually prefer 1280x1024-32. Oct 23 19:06:57 nice Oct 23 19:07:29 Those small frame buffers are for young guys! Oct 23 19:07:43 heh Oct 23 19:08:20 root Oct 23 19:08:38 Oops. Wrong terminal. LOL Oct 23 19:09:06 why would you type that by itself? :P Oct 23 19:09:16 unless it's a really crappy password Oct 23 19:09:37 username at a login prompt, presumably Oct 23 19:09:45 login username and Oct 23 19:10:26 been a long time since i logged in directly as root Oct 23 19:11:00 i do it all the time in qemu testing embedded images from yocto, which is most likely what mrk377 was just doing.. Oct 23 19:11:10 lots of embedded distros don't create main users, though they should Oct 23 19:12:22 Yeah, logging in as root is often for me. You should look at the "Bow before me, for I am root" t-shirts. They are hilarious. Oct 23 19:12:47 classic. Oct 23 19:13:57 https://store-xkcd-com.myshopify.com/products/sudo is also appropos Oct 23 19:14:02 :) Oct 23 19:15:01 sudo doesn't work at my house. lol :) Oct 23 19:15:26 sadly common.. Oct 23 19:20:29 How can I compile a "Hello World" externally to be installed on a Yocto rootfs? Oct 23 19:24:47 kergoth, how do you change the size of your output qemux86 image to say 10GB? Where is the conf file? Oct 23 19:26:16 see IMAGE_ROOTFS_EXTRA_SPACE, it's in the reference manual Oct 23 20:02:07 I have been reading through the Application Developers Guide, and I am confused about the differences between the ADT, SDK, use of the build directory directly, etc... I just want to cross-compile "Hello World" for my target, scp it to the device, and watch it run. What is the easiest way to do that? Oct 23 20:11:16 wpd: when you have the sdk.sh, install it by running it. then in your shell, source it e.g. source /opt/poky/1.8/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi. Oct 23 20:11:33 then in that same shell, you can compile (use ${CC} hello.c -o hello) Oct 23 20:13:09 adt is useful if you want to build in eclipse, if you want commandline compilation directly, use the sdk, otherwise you can create a recipe for it and add it to your image, but that's higher overhead, so you might want to compile directly for now and create ar ecipe later Oct 23 20:17:55 psidhu: Thank you. Eclipse isn't really an option for me -- I have a rather large codebase that I would like to bring up on a Yocto rootfs. Unfortunately, it is not autotools based, so I just want some way to specify ${CC} and let it build. Long term, I will have to decide whether I should create a recipe for that code base, or have the codebbase generate the Yocto rootfs. Too tough to tell right now. Oct 23 20:18:18 It would be nice if I could use the gcc from the build directory, which I think is also possible. Oct 23 20:19:11 *not* a good idea Oct 23 20:19:21 can be done, but the internals of tmp are for bitbake's use, not yours Oct 23 20:19:28 Oh yeah... and I have no need for QEMU in this environment. Oct 23 20:19:34 and you have to pass the correct arguments to CC, which is taken care of by the sdk environment setup script Oct 23 20:20:21 kergoth: I think (from reading the guide) that it sounds like meta-ide-support gets me that. But, as I said, I am a bit confused by the different options. Oct 23 20:20:47 that's correct, meta-ide-support + build dir could be viable if you want to avoid use of an sdk. i wouldn't really advise it, but doable Oct 23 20:21:07 Why do you advise against it? Oct 23 20:21:27 look up a few lines Oct 23 20:22:56 Doesn't meta-ide-support create an environment setup script as well? Oct 23 20:24:29 yes. that doesn't change the fact that the contents of tmp are not intended for external use. it'll probably work, but i wouldn't do it personally. others probably would, just my personal view Oct 23 20:24:47 does poky use any chroot magic during the build process by the way, or is it just a matter of passing correct paths everywhere? Oct 23 20:25:09 ok, thanks. I'll give it a spin and see where it takes me... Oct 23 20:26:10 Ulfalizer: no, chroot isn't used. chroot requires root, unless you do ld preload bits, we didn't want to require root to do builds Oct 23 20:26:17 Ulfalizer: --sysroot= is passed to CC, etc Oct 23 20:26:33 ah, yeah, didn't think of that Oct 23 20:27:32 there is a fakechroot which is an LD_PRELOAD hook I believe, but of course we already use a preloaded lib for pseudo/fakeroot. would be added complexity Oct 23 20:27:49 (as if we aren't complex enough already :) Oct 23 20:29:19 bit ugly that you have to do that pretend-to-be-root stuff to get things done. feels like a workaround for tool (e.g., tar) limitations. :/ Oct 23 20:29:58 though i can't think of nicer ways off the top of my head Oct 23 20:30:32 seems there must be nicer possilities at least :P Oct 23 20:30:45 +bi Oct 23 20:31:48 basically pseudo acts as a communication mechanism between chmod/etc in our do_install and the packaging tools. Many of the packaging tools can have permissions specified, but even if they do, then you'd have to manually express the permissions/ownership somewhere rather than being able to run chmod/chown (or better yet, let the 'make install' do it) in do_install Oct 23 20:32:22 of course, other tools deal with this in other ways. e.g. the spec file format for source rpms includes permissions lines, iirc Oct 23 20:32:51 automating it by capturing the POSIX semantics is way nicer then having to manually specify everything i.e. spec files Oct 23 20:34:01 the psuedo project itself was originally started to work with the user mode NFS server.. since 'fakeroot / fakechroot' wasn't enough Oct 23 20:34:18 this allowed the usermode NFS server to serve files from a non-root user without the other side knowing that Oct 23 20:34:37 ah, that's interesting, didn't know the history Oct 23 20:35:10 that is partially why it's "so complete" of an emulation.. since then the usage has morphed.. and it's more used for the Yocto Project steps.. Oct 23 20:35:22 but we do still use it for the usermode NFS server.. (and other filesystem generation tasks) Oct 23 20:35:29 I wonder what is the overhead of pseudo Oct 23 20:35:35 have it been measured Oct 23 20:35:41 depends on the operation.. and yes.. it's been measured Oct 23 20:35:46 adding a fakechroot capability or combining its use with pseudo could be interesting coupled with per-recipe sysroots, but then we'd need a way to inject host binaries, so non-trivial Oct 23 20:36:11 that it why it's only enabled in select locations.. pseudo itself is fairly small -- but pseudo having to parse path names is really expensive.. so some operations are quick, some not so quick.. Oct 23 20:36:21 seebs has actual details ont he profiling work that has been done Oct 23 20:36:52 It would be interesting to disable it globally and do a build using root user Oct 23 20:36:56 explains why it tends to track and use inodes Oct 23 20:36:57 pseudo has full fakechroot capability.. it does this by permitting the exec to run on the core system (outside the chroot) but limits the running items to seeing only the chroot Oct 23 20:36:59 was wondering about that Oct 23 20:37:01 and then do the same thnk without root user Oct 23 20:37:15 AFAIK the build won't complete as root.. Oct 23 20:37:16 fray: huh, interesting Oct 23 20:37:26 why ? Oct 23 20:37:41 there are lots of things that whenc onfigured/built they check root uid 0/gid 0 and refuse to run Oct 23 20:37:43 lots of buildsystems are going to issue fatal errors if they detect building as root Oct 23 20:37:59 pseudo is only used in select areas.. (do_install through packaging.. an do_rootfs) Oct 23 20:38:44 this si also why pseudo has a disabled and unload option.. if we're going ot be running stuff, where we will eventually want pseudo.. we can run in disabled mode.. (it fast paths and there is almost no overhead.. it's only a few instructions before it jumps to the real version) Oct 23 20:39:07 in the unload mode, on the next fork/exec it will remove itself from the LD_PRELOAD environment variable, so subsequent fork/execs won't get it Oct 23 20:39:51 pseudo of course doesn't work for static binaries.. (there was some research into syscall (via ptrace) injection.. but that was very slow and proved to not be nearly as useful as just intercepting via LD_PRELOAD) Oct 23 20:40:08 yes I know we have facilities like that, I wonder if we are overusing it in some places or not. If there was any work in that area Oct 23 20:40:33 I think we've profiled it enough at this point that the disable and unload and good where they are.. Oct 23 20:40:36 or easy way to figure where its tapping in Oct 23 20:40:48 may be it dumps into logs or somehting like that Oct 23 20:40:58 most of the time in pseudo these days is spent resolving partial pathnames, inodes and file descriptors into canonicalize pathnames Oct 23 20:41:37 there are a number of logging options available.. generally though logging is disabled in recent versions, as that was a speedup.. (logging required a round trip IPC call.. which could block..) Oct 23 20:41:57 normal pseudo msging only requires a round trip call if it's looking up file stat data.. otherwise one way is usually good.. (just to update the DB) Oct 23 20:42:00 Linux user namespaces could be used to solve the same problem of being "fake" root Oct 23 20:42:02 recent linux kernels have user namespaces. i wonder if those could be used to solve the "can't change user/group to whatever before packaging files" problem. Oct 23 20:42:06 even then the IPC can be short-circuited using xattrs.. Oct 23 20:42:10 would still need a solution for older systems Oct 23 20:42:23 Ulfalizer you still need root permissions (lcap) to be able to setup namespaces and such.. Oct 23 20:42:31 neverpanic: heh, jinx Oct 23 20:42:34 so it doesn't really help Oct 23 20:42:36 fray: no, not really Oct 23 20:43:08 That does work without root privileges on most modern distros these days; on Debian you need to toggle a flag as root once, Arch Linux doesn't have it at all Oct 23 20:43:12 But others work out of the box. Oct 23 20:43:13 the namespace protection I've seen.. you are given an area that is yours, walled off.. so you need to have a copy of the executables.. (bind mount MIGHT make that possible).. Oct 23 20:43:34 and then you'd need permission to uplift to something that can set disk perms and other things that pseudo is intercepting at certain points.. Oct 23 20:43:46 You can freely bind-mount anything you can read (well, you can bind-mount other stuff too, but you won't be able to read them) Oct 23 20:44:03 the problem is that most commecial users are given a system by their IT departments and not given root, configuration capabilities, etc.. Oct 23 20:44:09 pseudo solves that problem.. it just "works" Oct 23 20:44:21 Yes. I agree it's the better solution for this task at the moment. Oct 23 20:44:48 That being said, we're using a user namespace approach for our SDK and it seems to hold up reasonably well at this point. Oct 23 20:45:22 And if you really want to get permissions right you need subuids and subgids as well, which I haven't really looked into in detail Oct 23 20:45:37 sounds like a possibly viable option for the future, but likely not a priority compared to all the other issues we have to deal with :) Oct 23 21:26:55 What is the best way to have yocto write a /etc/resolv.conf file during bitbake? Is there script that handles this easily? Oct 23 22:09:56 arg I hate people that ask questions and disappear Oct 23 22:20:02 heh Oct 23 22:20:26 I'm so used to being on irc 24/7 that it seems foreign and weird to disconnect ever Oct 23 23:00:27 I'm naked without my smartphone too. Oct 23 23:22:28 hm why can't python read my mind and let me have def foo(d, optional=True, *args) Oct 23 23:37:11 kergoth: you're my barometer for evil python. http://pastebin.com/2bvWiTs7 constructs a gpg command given arguments and has a magic keyword argument to toggle between lists for subprocess and escaped strings for shell Oct 23 23:38:03 i've got this in a shell task ${@sstate_build_gpg_command(d, "foo", "bar", "foo bar", flatten=True)} **** ENDING LOGGING AT Sat Oct 24 02:59:59 2015