Conversation with #inferno at Tue Mar 16 19:43:09 2010 on powerman-asdf@irc.freenode.net (irc) (19:55:00) anth_x: i don't follow. what does this give you? (19:58:18) powerman: few things (19:58:28) powerman: bind files, not dirs (19:59:27) powerman: bind to non-existing yet files, without having (root) permissions to create these files (usual story: inferno installed in /usr/inferno/ by root, but emu started by user, so user can't just `touch /dis/myfile`) (20:00:19) powerman: binding files, when we talk about /opt, give user better control over which files to bind (i.e. "export" from /opt package to global namespace) (20:00:58) powerman: also binding files avoid issue with useless binding subdirs (20:05:43) powerman: btw, am I understand correctly: it's impossible to have adt field named 'type' or variable named 'type'? (20:08:31) mjl-: yes, "type" is a keyword (20:08:31) anth_x: it's a reserved word. (20:08:41) anth_x: damn, too slow. :-) (20:08:45) mjl-: :P (20:09:18) mjl-: i have to look at the whole /opt discussion (20:12:09) anth: powerman-asdf: it seems like an awfully complex method to avoid a bit of discipline in making the namespace file. (20:12:31) anth: (bind conflicting subdirs first, then the parent dir after) (20:16:03) powerman: anth: yeah, sort of. but it solves existing issues in very infernish way :) (20:16:24) powerman: for example (20:16:40) anth: infernal? ;-) (20:16:49) powerman: we've /opt/1/dis/tool and /opt/2/dis/tool (20:16:57) powerman: i.e. name conflict (20:17:41) powerman: now, how to choose which one to use? also, in case there also /dis/tool (default one) and these two are improved versions of standard tool from different vendors? (20:17:58) powerman: quick answer is bind -b instead of bind -a (20:18:28) powerman: and it will works... until one of vendors decide to create /opt/1/dis/lib/ (20:19:06) powerman: now his /opt/1/dis/lib/ override global /dis/lib/ just because we wanna use /opt/1/dis/tool instead of default /dis/tool (20:19:08) anth: if the maker of /opt/2 is updateing an existing tool, i think it's a safe assumption that they know they're doing os. (20:19:33) anth: so they can just stick 'bind -b /opt/1/dis/tool /dis/tool' in their lib/namespace file. (20:20:01) powerman: you wanna say this vendor MUST NOT, Never, ever, ever create ./dis/lib/ subdir? ;-) (20:20:16) powerman: oh, you right (20:20:40) powerman: overriding existing tool make bind to files possible, I overlook it (20:21:03) anth: it seems like your proposed file server simply encapsulates policy. (20:21:23) anth: which isn't a crazy thing to do generally, but i think in this case the policy is simple enough that the cost isn't worth it. (20:23:15) powerman: I think we should try simple thing first. Let's start with namespace file, if that's turned out to be not enough we can try sh's profile file, and if that will not be enough too, implement sort of this "opt" file server (20:23:26) anth: so: should packages be designed such that they can also be installed in (untarred in or recursively bound over) / as well? (20:23:40) anth: i'm thinking of lib/namespace, initially. (20:23:55) anth: if each package has one, should it be lib/namespace or lib/namespace.pkg (or similar)? (20:24:11) anth: with the later, you could untar a package in / and not blow away your existing stuff. (20:24:22) powerman: /opt/PKG/dis/PKG/tool.dis.PKG :D (20:24:31) powerman: just to be REALLY safe :) (20:25:12) anth: if you're using the same name for a dis file, you're probably *intending* for it to be a replacement. (20:25:26) anth: it's then up to the site admin to decide whether they want it or not. (20:29:18) powerman: I think optional packages shouldn't be unpacked into /, they should live in /opt for ever. They shouldn't be recursively bind to /. Only few parts of optional package can be bind to / - most reasonable is /dis/ (to make calling applications from sh ease) and /man/*/ (to make man pages accessible at all). Even /dis/lib/ shouldn't be bind because there no reason to do it - path to modules are in PATH constant, and nobody bother about it value. (20:33:12) bvalek2 left the room (quit: Read error: No route to host). (20:37:00) visof left the room (quit: Ping timeout: 252 seconds). (20:41:17) visof [~visof@41.238.235.243] entered the room. (20:46:29) anth: i agree that's the best policy. (20:46:57) anth: what i'm asking is whether we should structure opt packages such that people with other policies (for whatever reason) can operate. (20:59:17) anth: i don't think we should contort the package to allow for it, but makeing the namespace file lib/ns.pkgname instead of lib/namespace seems like a small concession. (20:59:28) anth: i could be convinced it doesn't matter. :-) (21:07:54) bvalek2 [~bela@unaffiliated/bvalek2] entered the room. (21:23:59) visof left the room (quit: Quit: Leaving). (23:40:10) bvalek2 left the room (quit: Quit: I've seen things you people wouldn't believe). (00:03:09) less1 left the room (quit: Ping timeout: 240 seconds). (00:13:44) less1 [~pravin@cpe-66-68-151-36.austin.res.rr.com] entered the room. (00:16:56) less1 left the room (quit: Client Quit). (00:50:17) adelfino [~username@201-212-160-19.net.prima.net.ar] entered the room. (00:50:53) adelfino left the room (quit: Client Quit). (01:05:40) j123m left the room (quit: Ping timeout: 268 seconds). (01:06:44) j123m [~quassel@94.190.64.110] entered the room. (01:14:12) uriel left the room (quit: Ping timeout: 256 seconds). (01:14:29) uriel [~uriel@li43-28.members.linode.com] entered the room. (02:20:10) mennis left the room (quit: Quit: mennis). (02:30:08) smtms left the room (quit: Quit: leaving). (02:46:48) maht left the room (quit: Ping timeout: 268 seconds). (03:22:17) The account has disconnected and you are no longer in this chat. You will be automatically rejoined in the chat when the account reconnects.