Conversation with #inferno at Sun Mar 28 20:03:45 2010 on powerman-asdf@irc.freenode.net (irc) (20:03:45) #inferno: mode (+ns ) by leguin.freenode.net (20:09:39) #inferno: mode (-o powerman-asdf ) by leguin.freenode.net (20:09:39) leguin.freenode.net: (notice) *** Notice -- TS for #inferno changed from 1269795825 to 1233034323 (20:09:39) #inferno: mode (+t ) by leguin.freenode.net (20:09:39) olegfink [~olegfink@snupt.com] entered the room. (20:09:39) anth_x [~a@adsl-99-25-148-5.dsl.bcvloh.sbcglobal.net] entered the room. (20:09:39) eno [~eno@nslu2-linux/eno] entered the room. (20:09:39) vsriniva1 [~venkatesh@c-68-50-218-93.hsd1.md.comcast.net] entered the room. (20:09:39) mkmks [~nf@90-230-91-71-no148.tbcn.telia.com] entered the room. (20:09:39) soul9 [~none@unaffiliated/johnnybuoy] entered the room. (20:09:39) uriel [~uriel@li43-28.members.linode.com] entered the room. (20:09:39) maht [~maht__@85.189.31.174.proweb.managedbroadband.co.uk] entered the room. (20:09:39) Fish-- [~Fish@86.65.182.207] entered the room. (20:09:39) mjf- [~mjf@tech.cas.ip-anywhere.net] entered the room. (20:09:39) mycroftiv [~ircguy@h69-128-47-242.mdsnwi.dedicated.static.tds.net] entered the room. (20:09:39) visof [~visof@41.233.118.102] entered the room. (20:09:39) te [tao@gateway/shell/blinkenshell.org/x-tfelxgvnloridbjv] entered the room. (20:09:39) andguent [~andguent@qcx.be] entered the room. (20:09:39) C-Keen [ckeen@pestilenz.org] entered the room. (20:09:39) yiyus [1242712427@je.je.je] entered the room. (20:09:39) sqweek [~none@203-214-5-122.dyn.iinet.net.au] entered the room. (20:09:39) EthanG [~EthanG@sourcemage/guru/eekee] entered the room. (20:09:39) jas [~jas@adsl-69-215-39-41.dsl.chcgil.ameritech.net] entered the room. (20:09:39) mjl- [~mjl@82-171-55-43.ip.telfort.nl] entered the room. (20:09:39) leguin.freenode.net: leguin.freenode.net has changed the topic to: Inferno-os http://code.google.com/p/inferno-os/ || Download http://code.google.com/p/inferno-os/source/checkout || Let us join hands || kum by ya. (20:10:03) sepeth [~sepeth@88.234.125.12] entered the room. (20:10:37) visof left the room (quit: Quit: Leaving). (20:15:17) sqweek left the room (quit: *.net *.split). (20:15:17) yiyus left the room (quit: *.net *.split). (20:15:17) C-Keen left the room (quit: *.net *.split). (20:22:15) yiyus [1242712427@je.je.je] entered the room. (20:22:15) C-Keen [ckeen@pestilenz.org] entered the room. (20:25:44) vsriniva1 is now known as vsrinivas (20:29:40) j123m [~quassel@94.190.64.110] entered the room. (20:30:53) uriel left the room (quit: Write error: Connection reset by peer). (20:34:11) bvalek2 [~bela@unaffiliated/bvalek2] entered the room. (20:36:10) uriel [~uriel@li43-28.members.linode.com] entered the room. (20:46:06) less1 [~pravin@32.97.110.63] entered the room. (20:47:31) te_ [tao@gateway/shell/blinkenshell.org/x-regumsinhqzxsyvs] entered the room. (20:48:23) te left the room (quit: Ping timeout: 252 seconds). (21:28:14) wrtp [~rog@89.242.175.228] entered the room. (22:26:25) vsrinivas left the room (quit: Ping timeout: 264 seconds). (22:32:42) bvalek2 left the room (quit: Quit: I've seen things you people wouldn't believe). (23:01:57) sepeth left the room (quit: Quit: leaving). (00:16:18) wrtp left the room (quit: Quit: wrtp). (00:17:19) wrtp [~rog@89.242.175.228] entered the room. (00:17:37) wrtp left the room (quit: Client Quit). (01:03:17) anth_x left the room (quit: Read error: Connection reset by peer). (01:20:41) visof [~visof@41.238.232.222] entered the room. (01:42:13) visof left the room (quit: Remote host closed the connection). (02:53:15) less1 left the room (quit: Quit: Leaving.). (04:00:18) vsrinivas [~me@c-68-50-218-93.hsd1.md.comcast.net] entered the room. (04:00:22) vsrinivas: evening world (05:44:25) vsrinivas left the room (quit: Quit: leaving). (06:00:27) mkmks left the room (quit: Ping timeout: 258 seconds). (06:48:06) anth_x [~a@adsl-99-25-148-5.dsl.bcvloh.sbcglobal.net] entered the room. (07:59:47) robot12 [~robot12@szhilkin.broker.freenet6.net] entered the room. (08:14:22) robot12 left the room (quit: Read error: Operation timed out). (08:16:41) robot12 [~robot12@robot12.kgts.ru] entered the room. (08:59:15) vsrinivas [~me@c-68-50-218-93.hsd1.md.comcast.net] entered the room. (09:01:02) vsrinivas: hiyo world (09:11:28) te_ left the room (quit: *.net *.split). (09:11:29) soul9 left the room (quit: *.net *.split). (09:11:30) mjf- left the room (quit: *.net *.split). (09:11:31) anth_x left the room (quit: *.net *.split). (09:11:31) Fish-- left the room (quit: *.net *.split). (09:11:32) maht left the room (quit: *.net *.split). (09:11:33) j123m left the room (quit: *.net *.split). (09:29:09) wrtp [~rog@89.242.175.228] entered the room. (09:29:57) anth_x [~a@adsl-99-25-148-5.dsl.bcvloh.sbcglobal.net] entered the room. (09:29:57) te_ [tao@gateway/shell/blinkenshell.org/x-regumsinhqzxsyvs] entered the room. (09:29:57) j123m [~quassel@94.190.64.110] entered the room. (09:29:57) mjf- [~mjf@tech.cas.ip-anywhere.net] entered the room. (09:29:57) Fish-- [~Fish@86.65.182.207] entered the room. (09:29:57) maht [~maht__@85.189.31.174.proweb.managedbroadband.co.uk] entered the room. (09:29:57) soul9 [~none@unaffiliated/johnnybuoy] entered the room. (10:27:43) bvalek2 [~c11a2f4b@gateway/web/freenode/x-vriaypatjrxorync] entered the room. (11:13:49) mjl-: hi vsrinivas :) (11:32:24) ***uriel read 'evening world' as 'ending world' (11:38:03) mjl-: yo uriel (11:38:06) mjl-: anything up? (11:42:27) mjl-: blegh, devsdio.c on kirkwood is starting to be good at reading sd cards. now it needs to hook into devsd.c (11:42:41) mjl-: i don't want to do any of the scsi stuff (11:46:04) C-Keen: yo mjl- yo uriel (11:48:41) mjl-: yo c-keen! (12:11:04) robot12 left the room. (12:11:09) robot12 [~robot12@robot12.kgts.ru] entered the room. (14:54:05) mkmks [~nf@90-230-91-71-no148.tbcn.telia.com] entered the room. (15:47:30) robot12 left the room. (16:01:20) bvalek2 left the room (quit: Ping timeout: 252 seconds). (16:08:32) powerman: anyone keep track of "[9fans] Man pages for add-ons" thread? i just wanna make sure I understand it correctly. looks like available options are: (16:08:32) powerman: a) "one true version model": you expected to know complete right solution for your task, implement and test it with great care, release only one version of your app (maybe with rare small fixes later), bother to avoid possible name conflicts because it will be installed in /; ... fgb's contrib is enough solution to manage packages implemented this way (16:08:32) powerman: b) "let user organize his shit": just provide your app and don't bother how and where user will install it, it's his task to manage all files to become available in their default locations (again, in /), he has to find some way to track/uninstall files if he need this; ... one of possible this way's solutions is install everything in $user/bin/ and then bind few dirs to / (16:08:32) powerman: c) "/opt/APP/": this lunix shit is overly flexible and too complex for plan9, thus considered harmful (16:17:55) powerman: I think b) can be good or bad: if app was implemented as "one true version", then it's ease for user to manage such apps in any way he like; but if app isn't so good, this "solution" is actually just way to ignore problem which have to be solved (16:18:22) powerman: so, we actually have just two options: "a)" and "lunix" (16:24:43) powerman: and I'm seriously doubt it's possible to implement _all_ apps using "a)" way - especially apps which should be used by non-developers: which should solve some real tasks and be useful enough for ordinary users. if not because of any other reasons, then just because it's impossible to know complete right solution (either at all, or until you'll develop several versions and they will be used for some time by real users) (16:26:25) EthanG: powerman-asdf: A is certainly one position that's being argued, except that the majority opinion seems to be that FGB's contrib isn't particularly an important component anyway (16:27:08) EthanG: yeah all the points fit (16:28:08) EthanG: it's unbelievable, it really is, but as uriel just said to me in #cat-v "you imply plan 9 has a future, it has not had one for a long time" (16:28:19) anth_x: powerman-asdf: i think that's close. (16:28:44) anth_x: EthanG: i think fgb's contrib is actually pretty central to that model. i know it is for erik's version, at least. (16:28:59) anth_x: also, uriel's wrong, and has been for the whole time he's been saying that. (16:29:26) anth_x: easily demonstrable, since we're in the future from when he started saying it, and plan9's still around. (16:29:56) anth_x: powerman-asdf: option C also sorta includes /usr/local. (16:30:07) EthanG: anth_x: maybe I'm getting the models mixed, or, looking again, maybe I'm just seeing the B model (16:30:27) mjf-: b) (16:30:34) powerman: anth_x: /usr/local is more like $user/bin, and so option "b)", I think (16:30:55) EthanG: anth_x: existence in the future != has developed over time (16:30:56) anth_x: kinda, except with special machinery to include a $user who isn't you. (16:31:24) anth_x: EthanG: i know. and he's still wrong. note patches applied. note kirkwood. note coraid. (16:31:39) EthanG: mmhmm (16:32:31) anth_x: anyway, #inferno tends to have a lot less of this sort of discussion than #plan9, and i'd like to keep it that way. back to the actual point at hand. (16:33:01) anth_x: as i told fgb yesterday, i'd be okay with the /usr/local model (whether you consider that a flavor of b or c) if i expected to *only* install things using contrib. (16:33:03) powerman: sorry, I don't track #plan9, my bad (16:33:15) anth_x: but i don't think that's a reasonable expectation to make. (16:33:43) anth_x: powerman-asdf: oh, you're not expected to! that was aimed at EthanG and i discussing silly navel gazing. (16:34:00) anth_x: i think the conversation you started is a good topic. (16:34:36) anth_x: another thing i pointed out about my prefered setup on unix systems: (16:35:10) anth_x: i use the /opt model wherever i can (although some packages are harder to rip away from /usr/local than others) (16:35:28) anth_x: i also use MacPorts, which is kinda an OS X version of the ports/pkgsrc system. (16:35:36) anth_x: it gets installed in /opt/MacPorts. (16:36:06) anth_x: internally, it's structured in the same "overlay-ish" fashion as every other /opt package: it's got /bin, /etc, and so on. (16:36:21) anth_x: but it's really several packages in one, all managed by the macports tools. (16:36:35) EthanG: /opt/MacPorts is like another /usr/local except with package management. (16:36:50) anth_x: largely, yes. exactly. (16:36:56) anth_x: i think doing something similar with contrib would be entirely sensible: stick it in /opt/contrib. (16:37:15) EthanG: could do... (16:37:19) anth_x: from an external interface standpoint, it can conform to the /opt/ package model, but retain what people are looking for from contib's benefits. (16:37:30) EthanG: no (16:37:35) anth_x: and if people like, they can *only* use that, with no detriment. (16:37:59) EthanG: it you want the /opt package model each package would go in a seperate dir (16:38:11) anth_x: but it tolerates mixed-use well, potentially serving as an optimization for things which have contrib packages. (16:38:18) EthanG: yeah... (16:38:45) anth_x: EthanG: but how do you firmly define "package" for /opt? (16:38:55) EthanG: indeed (16:39:07) anth_x: certainly we wouldn't be upset if some /opt package included optional components, or scripts/tools to update itself. (16:39:46) anth_x: as long as a package management system is good about constraining itself (as contrib is), i don't think it's bad to have a meta-package under /opt. (16:39:53) anth_x: as long as it matches the structure. (16:40:24) anth_x: (/opt/$pkgname/(bin dis lib whatever)). (16:40:30) EthanG: For source mage linux it was as far as possible one upstream tarball -> one package, but they only used opt for things that would really conflict, like older versions of gcc (16:42:03) mjf-: and bind from /opt/$package/bin/ to /usr/local/bin ? (16:42:03) EthanG: I'm getting fed up with thinking about it actually. XD One dir per app plus some way of finding and starting any necessary programs within it, that's what I want. (16:42:25) anth_x: mjf-: no, no /usr/local in sight. bind to /bin. (16:42:31) EthanG: I guess bind would be the plan 9 way, yes. (16:42:40) mjf-: anth_x: ah, uff, ok (16:42:42) mjf-: anth_x: :() (16:42:57) anth_x: (really bind from /opt/$pkgname/rc/bin and /opt/$pkgname/$objtype/bin to /bin) (16:43:07) EthanG: old gcc versions were only "bound" (really put in $PATH) when compiling packages which needed them (16:43:31) anth_x: no need to expand $path, everything expecting to find your executable under /(bin dis) remain happy. (16:43:51) anth_x: EthanG: yeah, i think that's sensible. (16:43:59) mennis [~mennis@adsl-068-016-104-079.sip.asm.bellsouth.net] entered the room. (16:44:09) anth_x: for example, i'd like to have the python port available, but i don't really want it in my default namespace for all users. (16:44:45) anth_x: it should be easy to "rc /opt/$pkgname/lib/namespace.$pkgname" (for example) and get the namespace constructed ad-hoc. (16:45:05) anth_x: which is my one doubt about the meta-package. i'm not sure how best to manage those namespace snippets. (16:45:45) powerman: anth_x: and another one - sometimes it's not enough to bind (16:45:49) anth_x: we don't really have to worry about that in inferno today, of course, since we have nothing like the contrib tools, and certainly nothing with an existing base of packages. (16:45:53) powerman: for example, there man's INDEX (16:46:30) anth_x: powerman-asdf: i've not checked inferno, but plan9's will just reply "need /sys/man/whatever" if something's missing, which seems fine. (16:46:33) powerman: and other files which should be updated sometimes - especially for kernel drivers (yeah, I mean OPT kernel driver! :)) (16:47:32) anth_x: powerman-asdf: /opt kernel drivers would work fine. i'd suggest using a different kernel config file. makes sense, since you're including an optional component. (16:47:50) anth_x: and if you expect to always be including it, stick it in your default namespace and the issue goes away again. (16:48:06) powerman: how about including two? (16:48:24) ericvh [~ericvh@2002:467b:802c:0:223:6cff:fe93:c616] entered the room. (16:48:25) powerman: I think right solution for such thing is turn single file into directory (16:48:34) anth_x: some folks in the 9fans discussion seemed to be of the attitude "yeah, that'd be sorta okay, but you wouldn't do that for kernel stuff". i think that's silly. either it's a sensible general-purpose solution or it's broken. (16:48:35) powerman: sorta /etc/env.d/ (16:49:23) EthanG: *nods* (16:49:26) anth_x: powerman-asdf: including two is fine. if they're in your default namespace, then when you modify the kernel config file you'll always be modifying the same one. no issue. (16:49:48) anth_x: if they're not, then you'll be doing the bind yourself, and the effects should be obvious (and are certainly predictable). (16:50:06) anth_x: but, again, as a "best practice" i'd suggest using your own kernel config file. (16:50:37) anth_x: i have no idea what you mean with /etc/env.d. is that some linux thing i ought to know about? (16:52:17) powerman: /etc/some.d/ idea is simple. instead of having text file /etc/some you have /etc/some.d/ dir with many files, and then `cat /etc/some.d/* > /etc/some` (16:52:32) EthanG: sounds like profile.d, aka bunch of files sourced by /etc/profile to set package-specific environment variables (16:52:33) EthanG: aye (16:52:48) powerman: this way optional components may install /etc/some.d/myoptapp instead of editing /etc/some (16:53:29) EthanG: I'd rather see one variable per package, and that one variable says "this is where your config file is". Otherwise it gets messy (16:54:21) powerman: actually, it's more clear and useful than usual text file with complex config - with config.d/ you can easily edit that config using ls/cp/rm/echo (16:54:23) anth_x: i don't see what that's aimed at. (16:55:43) powerman: it's just like /env/{var1,var2,...} instead of /etc/profile (16:56:25) anth_x: but what files do you think would benefit from this treatment in inferno? (16:56:57) anth_x: the only thing i can think of is the namespace construction, if we continue down this /opt road. (16:59:49) anth_x: i really think what we discussed a week or so ago is pretty much all that's needed. now we just need to play with a couple of these and find any rough edges. (17:00:11) anth_x: everyone know the best way to find rough edges on anything is to hand it to kids to play with. :-) (17:00:31) powerman: files, which should be edited to include optional components. for example, libinterp/mkfile. it can be modified to '<$ROOT/libinterp/mkfile.d/*' (17:00:58) powerman: i mean, add this line at end if libinterp/mkfile (17:01:07) powerman: (if it will work with *) (17:01:28) anth_x: i think it'd be safer to do explicitly anyway. (17:01:32) anth_x: (if you're going to do it) (17:01:57) anth_x: that will, of course, complicate your binds, as you have more subdirs to worry about. (17:02:11) anth_x: that's why i suggested providing /lib/namespace.$pkgname. (17:02:50) anth_x: the worst that'll do is crowd an ls of /lib. that's not a big deal. (17:05:30) powerman: what's not explicit enough to have libinterp/mkfile.d/re2 file with this content (I'll not split each to several lines to avoid cluttering irc)? (17:05:30) powerman: OFILES=$OFILES re2.$O (17:05:30) powerman: MODULES=$MODULES ../module/re2.m (17:05:30) powerman: re2mod.h:D: $MODULES (17:05:30) powerman: rm -f $target && limbo -t Re2 -I../module ../module/runt.m > $target (17:05:30) powerman: re2.$O: re2mod.h (17:06:20) anth_x: what i meant was i'd list them explicitly in libinterp/mkfile, rather than using mkfile.d/*. (17:06:30) anth_x: no comment intended on the contents thereof. (17:07:03) powerman: isn't `ls /libinterp/mkfile.d/` much more explicit? (17:07:30) powerman: especiall, few years later, when you forget which optional drivers you have installed before (17:07:52) anth_x: i'm not sure you're understanding me. (17:08:54) anth_x: i'm saying /libinterp/mkfile should have lines like "<$ROOT/libinterp/mkfile.d/re2" and "<$ROOT/libinterp/mkfile.d/whateverelse" rather than "<$ROOT/libinterp/mkfile.d/*". (17:09:19) anth_x: explicitly listing what you want in your config seems like a better idea than saying you always want everything which is *available*. (17:09:54) anth_x: (as a separate refinement, i suggest you might what mk.$pkgname rather than mkfile.d/$pkgname, to simplify your binds) (17:10:22) powerman: hmm. isn't adding file to mkfile.d/ is no less explicit than adding line to mkfile? (17:10:45) powerman: separate files are ease to manage than lines in text files (17:10:53) powerman: except this, there no differences (17:11:54) powerman: to add file into mkfile.d/ you probably will have to explicitly bind /opt/pkg/libinterp/mkfile.d/ /libinterp/mkfile.d/ (17:11:54) anth_x: oh, you're saying do the addition manually, rather than have it constructed by binds? (17:12:29) anth_x: i'm not sure i agree that files are easier to manage than lines of text. (17:12:46) anth_x: at this level of complexity, anyway. (17:13:15) anth_x: your model scales with very complex mkfiles better, but i don't know that plan9 or inferno includes anything i'd consider sufficently complex to warrant it. (17:15:05) anth_x: okay, i have to go take care of a friend's dog. back later. (17:15:16) powerman: i think that's much ease way to install/uninstall optional components with several binds than this one: https://code.google.com/p/inferno-re2/source/browse/re2wrap.patch (17:44:55) powerman: anyway. until there will be several optional kernel drivers for inferno, and managing them become a headache, there no needs in inventing mkfile.d/. and /opt as it is now, is good enough for optional limbo apps, which we already have many enough. providing /opt/APP/lib/namespace is reasonable, but, again, there no real needs in that now - there no apps which need custom binds, so you can just bind all /opt/*/dis/ and /opt/*/man/*/ dirs for now. chances are this will be enough for long time, and we'll back to this discussion when we'll have at least several real apps which need custom binds (17:54:47) mkmks left the room (quit: Ping timeout: 276 seconds). (17:56:50) bvalek2 [~c11a2f4b@gateway/web/freenode/x-rvycnukermfkecmo] entered the room. (18:18:01) less1 [~pravin@32.97.110.63] entered the room. (18:58:02) bvalek2 left the room (quit: Quit: Page closed). (20:23:44) mkmks [~nf@90-230-91-71-no148.tbcn.telia.com] entered the room. (21:16:01) less1 left the room (quit: Remote host closed the connection). (21:16:32) less1 [~pravin@32.97.110.63] entered the room. (22:04:30) bvalek2 [~bela@unaffiliated/bvalek2] entered the room. (22:57:28) visof [~visof@41.238.233.102] entered the room. (23:12:16) visof left the room (quit: Ping timeout: 246 seconds). (23:21:32) mjl- left the room (quit: Ping timeout: 258 seconds). (23:22:53) visof [~visof@41.238.233.102] entered the room. (23:22:59) mjl- [~mjl@82-171-55-43.ip.telfort.nl] entered the room. (23:49:20) visof left the room (quit: Ping timeout: 246 seconds). (00:18:16) mjl-: i was just wondering about something: (00:18:39) mjl-: are there tools that analyse machine code, and tell you where potential inefficient instruction scheduling was done? (00:18:59) mjl-: eg where pipeline bubbles can occur, and/or hints to prevent them (00:20:46) mjl-: it would all be very cpu-specific of course (00:23:58) powerman: mjl-: i read about few some time ago (00:24:45) powerman: afair it was custom tools used by one well-known hacker to find CPU bugs (00:26:23) powerman: also such tools may exists to help testing gcc (or other similar compilers) optimization logic, so you may ask their devs (00:29:16) mjl-: thanks for the hint (00:29:42) mjl-: i was thinking of optimising some code, for fun & learning (00:29:57) mjl-: tools to help would be goo d:) (00:45:30) wrtp left the room (quit: Quit: wrtp). (00:52:08) bvalek2 left the room (quit: Quit: I've seen things you people wouldn't believe). (01:11:25) mennis left the room (quit: Quit: mennis). (01:34:33) visof [~visof@41.206.155.154] entered the room. (02:35:26) less1 left the room (quit: Quit: Leaving.). (02:37:22) visof left the room (quit: Ping timeout: 268 seconds). (02:51:41) visof [~visof@41.238.233.102] entered the room. (02:52:36) visof left the room (quit: Read error: Connection reset by peer). (02:52:52) visof [~visof@41.238.233.102] entered the room. (03:47:25) visof left the room (quit: Ping timeout: 264 seconds). (04:35:41) ericvh left the room. (04:43:00) olegfink left the room (quit: Read error: Operation timed out). (04:44:42) olegfink [~olegfink@snupt.com] entered the room. (04:44:42) olegfink left the room (quit: Excess Flood). (04:45:14) olegfink [~olegfink@snupt.com] entered the room. (04:45:15) olegfink left the room (quit: Excess Flood). (04:45:46) olegfink [~olegfink@snupt.com] entered the room. (04:45:46) olegfink left the room (quit: Excess Flood). (04:46:18) olegfink [~olegfink@snupt.com] entered the room. (04:46:19) olegfink left the room (quit: Excess Flood). (04:46:50) olegfink [~olegfink@snupt.com] entered the room. (04:46:50) olegfink left the room (quit: Excess Flood). (04:47:22) olegfink [~olegfink@snupt.com] entered the room. (04:47:23) olegfink left the room (quit: Excess Flood). (04:47:55) olegfink [~olegfink@snupt.com] entered the room. (04:47:55) olegfink left the room (quit: Excess Flood). (04:48:27) olegfink [~olegfink@snupt.com] entered the room. (04:48:28) olegfink left the room (quit: Excess Flood). (04:49:00) olegfink [~olegfink@snupt.com] entered the room. (04:49:00) olegfink left the room (quit: Excess Flood). (04:49:32) olegfink [~olegfink@snupt.com] entered the room. (04:49:32) olegfink left the room (quit: Excess Flood). (04:50:04) olegfink [~olegfink@snupt.com] entered the room. (04:50:04) olegfink left the room (quit: Excess Flood). (04:50:37) olegfink [~olegfink@snupt.com] entered the room. (06:57:20) robot12 [~robot12@robot12.kgts.ru] entered the room. (07:23:46) olegfink left the room (quit: Quit: WeeChat 0.2.6.3). (07:23:48) olegfink [~olegfink@snupt.com] entered the room. (07:23:48) olegfink left the room (quit: Excess Flood). (07:24:20) olegfink [~olegfink@snupt.com] entered the room. (07:24:20) olegfink left the room (quit: Excess Flood). (07:24:52) olegfink [~olegfink@snupt.com] entered the room. (07:24:52) olegfink left the room (quit: Excess Flood). (07:26:54) anth [none@cpe-76-189-197-62.neo.res.rr.com] entered the room. (07:30:08) olegfink [~olegfink@snupt.com] entered the room. (07:30:08) olegfink left the room (quit: Excess Flood). (08:59:46) mkmks left the room (quit: Ping timeout: 264 seconds). (09:07:05) olegfink [~olegfink@snupt.com] entered the room. (09:07:05) olegfink left the room (quit: Excess Flood). (09:10:55) olegfink [~olegfink@snupt.com] entered the room. (09:10:55) olegfink left the room (quit: Excess Flood). (09:47:32) wrtp [~rog@92.25.199.145] entered the room. (10:14:39) bvalek2 [~c11a2f4d@gateway/web/freenode/x-ufrflnmaambfgrnc] entered the room. (12:39:05) robot12 left the room. (15:03:01) soul9: ∠yone know how i can make an ns that has read-only access to most stuff, except one or two directories? (15:04:58) anth: soul9: the easiest way, of course, is just use the file permissions. (15:05:28) anth: given the obviousness, i assume you're asking what to do in cases where that's not appropriate/possible. (15:05:56) soul9: yeah (15:06:08) soul9: this is just for construction a namespace for a specific unsafe application (15:06:25) soul9: that could rm -rf /, which i obviously don't want it to do (15:06:33) soul9: but i also don't want to make all of / read-only (15:07:41) anth: an example, assuming you have /foo with a bunch of stuff in it, and you want /foo/bar and /foo/baz r/w but the rest r/o. (15:08:56) anth: bind /foo /n/dir-to-export # note no -c (15:09:16) soul9: the specific example would be an irc bot that uses ircfs and evals sh expressions. it has one directory where it stores triggers and the likes, which should be writable, and the irc directory should be writable, the rest read-only (15:09:21) anth: bind -bc /foo/bar /n/dir-to-export/bar # with -c, replaces the previous. (15:09:37) anth: bind -bc /foo/baz /n/dir-to-export/baz # same (15:09:46) anth: then export (srvfs or whatever) /n/dir-to-export (15:09:51) anth: i believe that should work. (15:10:29) soul9: so i could just rebind all dirs to /n/ircbot read-only, then rebind the writable ones with -c, then rebind /n/ircbot to / for the bot? (15:13:17) anth: sure, i think that should work. (15:13:54) soul9: thanks (15:13:56) soul9: i'll try that (15:14:06) anth: just to note, you might want to add a writable /tmp. (15:14:48) soul9: yeah, i'll figure that out, tha basic logic is what i was interested in (15:14:59) soul9: i knew it could be done, wasn't sure about the bind flags (15:15:36) anth: test it out. i might be on crack. (15:16:05) vsrinivas left the room (quit: Ping timeout: 258 seconds). (15:16:09) anth: it's early yet, i didn't sleep at home, and have had hardly any caffine (15:16:22) vsrinivas [~me@c-68-50-218-93.hsd1.md.comcast.net] entered the room. (15:21:02) anth: okay, no, i was definitely wrong (at least in part). (15:21:12) anth: you'll need to do slightly more setup, but he model's the same. (15:21:32) anth: mount -c isn't sufficent to make the tree read-only (obviously, now that i'm slightly less bleary-eyed) (15:22:33) soul9 left the room (quit: Ping timeout: 248 seconds). (15:23:16) anth: but it's not that bad. instead of "bind /foo /n/dir-to-export", do "srvfs -R newfoo /foo && mount /srv/newfoo /dir-to-export" (15:23:31) anth: then do the binds from /foo of stuff you want to be r/w as described above. (15:26:01) mjl-: you might also want to do the pctl that refuses new attaches (15:26:14) mjl-: otherwise the bot might somehow bind '#U' somewhere along the way (15:29:49) anth: yeah, great point. (15:31:53) cane9 [~none@unaffiliated/johnnybuoy] entered the room. (15:34:08) wrtp: i don't think srvfs exists in inferno (15:35:09) wrtp: but i did write a styx filter in inferno that makes a namespace read only (15:35:30) cane9: man, did i just miss a discussion about what i asked? (15:35:38) wrtp: can't remember quite where it ended up. it might be in one of the standard commands. i'll have a look (15:36:01) cane9 is now known as soul9 (15:36:03) wrtp: cane9: were you soul9? (15:36:08) wrtp: oh ok (15:36:14) soul9: :) (15:36:24) soul9: new freenode services got me confuzed (15:36:28) soul9: sed* (15:37:26) soul9: can anyone send me the logs please? johnny@r0x0r.me (15:37:30) anth: the two key bits: (15:37:36) soul9: ah, thanks (15:37:43) anth: [08:21:32] mount -c isn't sufficent to make the tree read-only (obviously, now that i'm slightly less bleary-eyed) (15:37:43) anth: [08:23:16] but it's not that bad. instead of "bind /foo /n/dir-to-export", do "srvfs -R newfoo /foo && mount /srv/newfoo /dir-to-export" (15:37:51) anth: and (15:37:59) anth: [08:26:01] you might also want to do the pctl that refuses new attaches (15:38:00) anth: [08:26:14] otherwise the bot might somehow bind '#U' somewhere along the way (15:38:09) soul9: yeah (15:38:13) soul9: definitely, good point (15:38:15) anth: we used more words the first time. :-) (15:38:25) wrtp: but as i said, if you're using inferno, you haven't got srvfs -R (15:39:30) soul9: wrtp: so what would be an equivalent, i'd be surprised if inferno didn't have one⋯ (15:39:37) wrtp: and i haven't found my code that gives the same functionality yet (15:39:40) wrtp: i'm looking! (15:39:47) soul9: o thank you! (15:41:56) anth: er, right. good point. :-/ (15:42:40) ***wrtp hates it when you know you've written the code but can't remember any keywords to find it again (15:45:09) ***soul9 nods (15:52:26) wrtp: ah, found it (15:52:35) wrtp: it's not in the standard distribution... (15:52:49) soul9: aww (15:53:00) wrtp: i can give it to you anyway! (15:53:25) wrtp: it's in a version of styxlisten that processes the styx messages directly rather than handing off to export (15:54:14) soul9: is there a manpage? :P (15:54:20) wrtp: nope :-) (15:54:38) wrtp: it basically adds one option to styxlisten (which does have a man page) (15:54:44) wrtp: -U userfile (15:54:48) powerman: I suppose one more possible way - put read-only content into kfs image and then mount with kfs -R (15:54:49) soul9: so no way i can know how to use it? (15:55:07) soul9: that's complicated.. (15:55:10) wrtp: where userfile contains a list of usernames - if the authenticated user is in the list, then they get read-write access (15:55:13) powerman: wrtp: wanna learn some asciidoc to make writing man pages ease? :) (15:55:33) wrtp: so use /dev/null and everything's readonly (15:55:43) soul9: :) (15:56:01) soul9: wrtp: allright i'll take the code. not sure i'll motivate on it tho, that bot is not high on my ToDo (15:56:28) wrtp: it's not difficult, but it is designed for listening on a port, not for binding into a namespace (15:57:04) wrtp: so thinking about it, it probably doesn't fit your problem very well. (15:57:09) soul9: yeah, i understood that part (15:57:27) soul9: oh well, i'll just export / with it on localhost i guess (15:57:40) soul9: that's fine, easier than creating a kfs imagfe (15:57:43) soul9: image* (15:58:16) wrtp: yeah, that should do it (15:58:33) wrtp: i'll just make sure it works :-) (15:58:44) soul9: thanks (16:05:05) wrtp: ok, it's at http://www.morgyhill.talktalk.net/styxlisten.noexport.b (16:05:47) wrtp: you can use it like this: styxlisten.noexport -U /dev/null -A tcp!127.0.0.1!1236 export / (16:05:56) soul9: is there a hget in inferno? (16:06:01) wrtp: wget :-( (16:06:11) soul9: er (16:06:16) soul9: ☺ (16:06:16) wrtp: oh no (16:06:19) wrtp: webgrab (16:06:21) soul9: os wget (16:06:22) soul9: ahh (16:06:32) wrtp: hget would be better (16:06:48) wrtp: there's one bug that needs fixing, i see (16:06:59) wrtp: if you remove a file, it'll muck up the fid space. (16:07:07) wrtp: i'll just have a look. (16:07:21) soul9: yeah (16:07:25) soul9: i don't need rm tho (16:09:36) wrtp: yeah, but that happens if a client does an rm and gets permission denied (16:09:44) wrtp: (because it's read-only) (16:12:14) soul9: ah :) (16:12:29) soul9: does it do anything harmful? (16:13:06) wrtp: well it'll muck up the connection because the client expects the fid to be clunked, but it isn't (16:13:12) wrtp: i've almost fixed it, hang on a mo (16:19:37) mjl-: hget: http://www.ueber.net/hg/http/files/tip/appl/cmd/hget.b (16:20:32) soul9: :) (16:26:55) wrtp: i *think* i've got the right fix - just testing (16:32:30) wrtp: ok, if you re-download, that should work (16:32:47) wrtp: the fix was a little bit more tricky than i'd thought (16:32:56) wrtp: (that's probably why i didn't do it before) (16:38:55) ericvh [~ericvh@32.97.110.63] entered the room. (16:39:17) soul9: thanks (16:47:31) mkmks [~nf@90-230-91-71-no148.tbcn.telia.com] entered the room. (17:31:48) mennis [~mennis@adsl-068-016-104-079.sip.asm.bellsouth.net] entered the room. (17:32:42) mennis left the room (quit: Read error: Connection reset by peer). (17:32:43) jmpnz [~mennis@adsl-068-016-104-079.sip.asm.bellsouth.net] entered the room. (18:28:52) anth_x left the room (quit: Quit: Leaving.). (18:43:57) less1 [~pravin@32.97.110.63] entered the room. (18:54:03) bvalek2 left the room (quit: Quit: Page closed). (19:31:49) bvalek2 [~bela@unaffiliated/bvalek2] entered the room. (19:32:50) bvalek2 left the room (quit: Remote host closed the connection). (19:32:54) bvalek2_ [~bela@103.7bec54.tvnetwork.hu] entered the room. (19:34:43) bvalek2_ left the room (quit: Client Quit). (19:35:46) bvalek2 [~bela@unaffiliated/bvalek2] entered the room. (21:20:55) soul9 left the room (quit: Ping timeout: 252 seconds). (21:50:40) soul9 [~none@unaffiliated/johnnybuoy] entered the room. (22:06:42) uriel left the room (quit: Ping timeout: 276 seconds). (22:09:40) jmpnz left the room (quit: Quit: Swine Flu!!). (22:11:11) wrtp left the room (quit: Quit: wrtp). (22:13:12) uriel [~uriel@209.123.234.28] entered the room. (22:58:16) jas left the room (quit: Ping timeout: 252 seconds). (00:48:51) EthanG left the room. (01:28:16) bvalek2 left the room (quit: Quit: I've seen things you people wouldn't believe). (01:48:54) ericvh left the room (quit: Quit: ericvh). (02:29:46) j123m left the room (quit: Ping timeout: 264 seconds). (02:32:52) j123m [~quassel@94.190.64.110] entered the room. (05:23:06) jas [~jas@adsl-69-215-39-41.dsl.chcgil.ameritech.net] entered the room. (06:49:05) less1 left the room (quit: Quit: Leaving.). (06:49:25) robot12 [~robot12@robot12.kgts.ru] entered the room. (07:36:44) maht left the room (quit: Ping timeout: 240 seconds). (09:50:26) mkmks left the room (quit: Ping timeout: 260 seconds). (10:09:58) bvalek2 [~c11a2f4b@gateway/web/freenode/x-zyfouwptjabfwloi] entered the room. (10:21:49) wrtp [~rog@92.25.199.145] entered the room. (11:01:44) The account has disconnected and you are no longer in this chat. You will be automatically rejoined in the chat when the account reconnects.