IRC log of #maemo for Sunday, 2018-06-03

*** florian_kc has joined #maemo00:02
*** florian has quit IRC00:03
*** florian_kc is now known as florian00:07
*** pagurus` has quit IRC00:32
*** pagurus has joined #maemo00:46
*** xy2_ has joined #maemo00:50
*** pagurus has quit IRC00:50
*** Venemo has quit IRC00:54
*** pagurus has joined #maemo01:15
*** pagurus has quit IRC01:19
*** sunshavi has quit IRC01:44
*** xy2_ has quit IRC01:46
*** sunshavi has joined #maemo01:58
*** florian has quit IRC02:12
*** Pali has quit IRC02:17
*** jonwil has joined #maemo02:19
*** freemangordon has quit IRC02:43
*** freemangordon has joined #maemo02:44
*** sunshavi has quit IRC03:04
*** M4rtinK has quit IRC03:11
*** infobot has quit IRC03:20
*** infobot has joined #maemo03:21
*** ChanServ sets mode: +v infobot03:21
*** jonwil has quit IRC04:02
*** LauRoman|Alt has joined #maemo04:21
*** LauRoman has quit IRC04:24
*** luke-jr has quit IRC04:25
*** luke-jr has joined #maemo04:31
*** vectis_ has quit IRC05:36
*** vectis_ has joined #maemo05:38
*** tm has quit IRC06:04
timelessDocScrutinizer: yes.06:06
*** tm has joined #maemo06:07
timelessUnfortunately, this is a basic flaw in the way Debian packages work. The binaries don't include enough information to capture how they were built06:10
timelessRomoxa (Oleg Romashin) most of the build optimizations and continued working on fennec for a while06:12
*** vahe has joined #maemo06:33
*** trx has quit IRC06:57
*** trx has joined #maemo07:02
*** trx has quit IRC07:02
*** trx has joined #maemo07:02
*** sunshavi has joined #maemo07:27
*** luke-jr has quit IRC07:43
*** luke-jr has joined #maemo07:44
*** Hurrian has quit IRC08:09
*** Hurrian has joined #maemo08:18
*** jonwil has joined #maemo09:05
*** danjackson has quit IRC10:04
*** danjackson has joined #maemo10:04
*** valdyn has left #maemo10:13
*** Kilroo has quit IRC10:19
*** vahe has quit IRC10:25
*** vahe has joined #maemo10:30
*** vahe has quit IRC10:30
*** vahe has joined #maemo10:31
*** vahe1 has joined #maemo11:12
*** vahe1 has quit IRC11:12
*** vahe1 has joined #maemo11:13
*** vahe is now known as Guest4582111:14
*** vahe1 is now known as vahe11:14
*** Guest45821 has quit IRC11:14
*** xy2_ has joined #maemo11:18
*** phlixi has quit IRC11:22
*** florian_kc has joined #maemo11:24
*** phlixi has joined #maemo11:24
*** Pali has joined #maemo11:29
*** phlixi has quit IRC11:29
*** phlixi has joined #maemo11:29
*** vectis_ has quit IRC11:31
*** florian_kc has quit IRC11:33
enyctimeless: hrrm... isn't that what '-dbg' and source packages are for?11:34
timelessno11:34
enyctimeless: reproducible-builds project being helpful, you can check you can rebuild he same checksum binary etc.?11:34
*** vectis has joined #maemo11:34
timelessthey don't provide a way to guarantee a complete build env11:35
timelessenyc: the problem is that a binary package doesn't tell you which precise versions of dependent packages11:35
timelessit doesn't tell you which version of the compiler was used11:35
timelessor the linker11:35
timelessor...11:35
enyctimeless: aaat the build-log i see11:35
timelessyes, if you manage to get matching checksums, you know that you reproduced things11:35
timelessbut, when you don't (which will happen 99.99% of the time, due to things that embed timecodes)11:36
timelessyou don't know anything11:36
enyctimeless: surely its' expected to use tha same common pbuilder / debian release11:36
enyctimeless: thats part of why they use pbuilder,  create new chroot with minimum deps for building  each time11:36
enycbut then i understand it depends what  'updates'  to a release were applied before/after a package was built11:37
enyce.g.  gcc with retpoline fixes -- has package been rebuilt-or-not, etc etc11:37
timelessenyc: anyway, the point is that debian packages do not encode enough info11:38
timelessif the package is from along time ago, (5-10 years), you're SOL if the build environment is long gone11:38
enychave you made a propased patch to dpkg/tools etc.?, oloked into options for build logs/info to be stored eithre separately or embedded in the debs in a way that won't affect existing systems installing them...?11:39
timelessno11:39
timelessfor one, i'm not sure it's entirely solvable11:39
timelessone could at least encode the version of installed packages11:39
enycthe pbuilder creates buildlogs11:40
DocScrutinizer05embeeded timestamps, HAHA great. I guess a VM with patched time_t time(time_t *t)  that simply returns a configurable constant might be useful11:40
timelessthere's a faketime module, i use it to talk to openssl11:41
enycwell acutalyl reproducible-builds work to get rid of all build times etc. of course11:41
timelessenyc: anyway, build logs that are on a server that don't persist aren't helpful11:42
MaxdamantusI think I've noticed that particular packages in nix have workarounds for removing build times from things that store them.11:42
timelessremember, DocScrutinizer05 is asking about packages from 5-10 years ago11:42
DocScrutinizer05actually jonwil is11:42
timelessthe source servers in a number of cases are gone11:42
timelessheck, even the build env distros are gone11:43
Maxdamantus(and as a standard feature, file times are all set to `0` after building a derivation in the store)11:43
timeless(which scratchbox,...)11:43
enycMaxdamantus: thats' to make the build reproducible ?11:43
Maxdamantusenyc: not exactly.11:44
Maxdamantusenyc: the build should be reproducible enough without that.11:44
timelessreally, to some extent, anything that isn't part of the shipping .deb is probably a bad thing to rely on11:44
timelessit's pretty easy to not end up w/ the associated "dbg" packages in case no one used them and the repo got lost11:44
enycwell you say the problem isn't solvab/e, mut didn't rcatch what parts ooyou want solved and why,  what the compatibilite problems would be, and how you do intend to solve those that should be solved.11:45
timelessanyway,... solvable? maybe, it'd probably require logging all installed package versions and checksums for all files11:45
timelessthe question is ~ can one rebuild a build env in order to rebuild a package?11:46
timelessthat's what's desired and in a number of cases desirable11:46
MaxdamantusThat should be relatively doable in nix.11:46
timelessa fun version of this problem:11:46
enyctimeless: hrrm like i mentiont to leste people they shouldn't be expecting to reply on current githumb for contributors .. if you want to keep and reprouce/upstream fixes you need things like copyright file and clear status... hey-ho.11:46
Maxdamantus(though that's not relevant in this case)11:47
timelessa package X depends on a build-dep Y w/ some vague version requirement (not absolute)11:47
timelessin one version of Y, it defines a macro w/ one value, in another, it defines it with a different value11:47
DocScrutinizer05could at least from now on make, cmake et al take care to include all info to the .deb per default?11:47
MaxdamantusWhat is "all info"? Every package on the build system?11:47
Maxdamantusor every package transitively reachable through the dependencies?11:48
timelessthe resulting X package will have totally different shapes depending on the define, which is not something that you can tell by looking at the package11:48
Maxdamantusor just the dependencies?11:48
DocScrutinizer05ouch11:48
timelessMaxdamantus: it would be safer if it did all packages, but for privacy reasons everyone would object to that11:49
timelessi think from a reproducible perspective, if your build env was able to record all packages that contributed to files that were opened during the build process11:49
timelessyou'd get something vaguely good11:49
DocScrutinizer05:nod:11:50
DocScrutinizer05augias task11:50
timelessand again, what do you do if something is modifying how you see files11:51
MaxdamantusI'm not sure how it normally works on debian-based systems, though I think it hasn't worked this way with maemo, but: if everyone agrees that all official packages are built only by an automatic build server, it should be fairly reproducible.11:51
timelessMaxdamantus: i worked on maemo11:51
timelessthe build servers more or less did things in parallel11:51
Maxdamantussince the build maintainers can just keep a git repository with all deb sources.11:51
timelessyou could have races where different packages were built/used in parallel11:51
timelesssuch things were real problems11:51
timelessspecifically, i tried to build a source code index of a given binary release11:52
MaxdamantusHeh, fun.11:52
timelessit wasn't really possible11:52
timelessbecause different binaries used different versions of dependent packages11:52
* DocScrutinizer05 idly muses about keeping complete VMs in source 'repo'11:52
DocScrutinizer05one for each package - OUUUFF11:52
timelessDocScrutinizer05: real professional projects do that, more or less11:52
timelessnot archiving the build env leads to problems like this11:53
Maxdamantustbh, the complete VMs thing doesn't seem particularly unattainable.11:53
MaxdamantusIf your storage mechanism involves deduplication, it should be fine.11:53
Maxdamantuseg, one obvious way of achieving that would be to fire off every build in an isolated snapshot of the filesystem.11:54
Maxdamantusthen you just save the filesystem tree as a git tree in a bit repo.11:54
timelessMaxdamantus: i used dedup on the source system to avoid blowing up space w/ my weekly index11:54
timeless(i used zfs)11:54
sparreAt one of my customers, we launch a VM on Amazon for every build-and-test run.11:55
MaxdamantusYeah, I was thinking of the "snapshot" part in terms of btrfs, but zfs works too.11:55
timelessthis was over a decade ago11:55
* DocScrutinizer05 looked into dedup solutions a lot, for local workstation (btrfs, ext4) - it's a PITA and nothing _really_ worked11:55
timelessin my case, since the files were generally predictably named, it was pretty easy11:55
timelessi built to a stage, got rid of the package versions from directory names11:56
timelessand then rsync'd over the previous week's files11:56
timelessand snapshotted11:56
*** florian_kc has joined #maemo11:56
DocScrutinizer05yeah, that's somewhat sustainable and feasible11:56
timelessbut, that didn't solve the stupid "x uses a@1; y uses a@2; z uses b@2 which uses a@?"11:57
DocScrutinizer05:nod:11:57
DocScrutinizer05the problem however feels like homegrown, the Godfathers of unix had a pretty clear notion about how to tackle this at very least on .SharedObject library level11:59
timelesssharedobjects are one things, but it doesn't cover macros11:59
DocScrutinizer05"new" stuff should strictly follow same principles11:59
DocScrutinizer05yeah, sure, that's why >>at least for...<<11:59
*** florian_kc has quit IRC12:00
timelessanyway.... it sucked... and was very frustrating not being able to answer questions about what a binary was thinking12:01
DocScrutinizer05coders would need to learn to *always* think fore/back-ward compatibility12:01
timelessgrr. cat wants to go out12:02
DocScrutinizer05but yeah, when you make a new (version of) package, you usually don't give a shit about backward and even less forward compatibility12:02
*** Hurrian has quit IRC12:08
* DocScrutinizer05 a few days ago looked into snap packages first time. Also sort of PITA, NFC where the apache running in snap env is keeping its vhost config12:18
DocScrutinizer05the damn nextcloud snap package even has a LetsEncrypt running, but I can't find how to enable apache HTTPS12:20
*** geaaru has quit IRC12:22
*** geaaru has joined #maemo12:23
timelessis mod_md in hat thing?12:30
*** M4rtinK has joined #maemo12:40
jonwilI think as far as build prerequisites go, the only option is to assume that if "configure" doesn't complain about stuff being out of date, its suitable to use.12:45
*** Hurrian has joined #maemo12:59
*** florian_kc has joined #maemo13:09
*** florian_kc has quit IRC13:13
*** M4rtinK has quit IRC13:19
*** vahe has quit IRC13:28
*** luke-jr has quit IRC13:38
*** luke-jr has joined #maemo13:38
*** vahe has joined #maemo13:39
*** Vajb has quit IRC13:41
*** xy2_ has quit IRC14:02
*** shentey has joined #maemo14:40
*** luke-jr has quit IRC14:55
*** Vajb has joined #maemo15:33
*** shentey has quit IRC16:27
*** luke-jr has joined #maemo16:47
*** jonwil has quit IRC17:09
*** florian has joined #maemo17:23
*** KotCzarny has quit IRC17:24
*** KotCzarny has joined #maemo17:24
*** M4rtinK has joined #maemo17:54
*** danjackson has quit IRC18:00
*** xes has quit IRC18:24
*** xes has joined #maemo18:51
*** xes has quit IRC19:29
*** TheKit has joined #maemo19:53
*** NeKit has quit IRC19:56
*** xes has joined #maemo20:05
*** xy2_ has joined #maemo20:26
*** vahe has quit IRC20:29
Vajbhehe interesting read of maemo builds back there23:24
Vajblast nite i wanted to prepare build enviroment for my upcoming android course...23:24
Vajbcan admit that i don't like android studio23:25
*** Kilroo has joined #maemo23:48

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