Laney | xnox: Seems complicated for the task of saving top-level things - couldn't you check for '/' in the path? | 16:14 |
---|---|---|
Laney | (moving here from release :P) | 16:14 |
xnox | Laney, this would only fix symlinks in the top-level dir though.... there might be symlinks to dirs in packages too, which should be copied..... | 16:15 |
Laney | why would they be blacklisted? | 16:15 |
xnox | or we can declare we don't care, than a '/' in relpath would do. | 16:16 |
xnox | Laney, because blacklisted package ships it as a dir; whilst top-level one decided to move e.g. plugins dir elsewhere, hence declares a symlink dir. | 16:16 |
Laney | doesn't your proposal do this 'bad' thing anyway? | 16:18 |
xnox | Laney, also i noticed that libgtk2.0-0 ships a broken symlink. | 16:19 |
xnox | $ ls /usr/share/doc/libgtk2.0-0/changelog.gz | 16:19 |
xnox | lrwxrwxrwx 1 root root 32 Sep 21 11:54 /usr/share/doc/libgtk2.0-0/changelog.gz -> ../libgtk2.0-common/changelog.gz | 16:19 |
xnox | Laney, with my proposal, the top-level package which is kept, will have its symlink installed into target. as is correct what dpkg did. | 16:19 |
xnox | Laney, to be fair this is all very hackish. ideally we'd be using stacked squashfs ;-) or like actually execute dpkg to remove packages. | 16:20 |
Laney | I see this "return '/' in relpath at the end" | 16:20 |
Laney | so I don't get why it would work | 16:20 |
xnox | Laney, but by that point all conditions above are true | 16:20 |
xnox | as in, it is a blacklisted filename, it is a symlink, it is a symlink to a dir, it is not a broken symlink, and it's not a top level one. | 16:21 |
xnox | and is kind of what infinity asked for | 16:21 |
xnox | funny he is not in this channel. | 16:21 |
Laney | yes and True means blacklisted no? | 16:21 |
xnox | yes | 16:21 |
xnox | horum. | 16:21 |
xnox | as in do not copy. | 16:22 |
xnox | argh | 16:22 |
xnox | i do wonder if all of the conditions in between simply reduce to to '/i' in relpath | 16:23 |
xnox | i do wonder if all of the conditions in between simply reduce to to '/' in relpath | 16:23 |
xnox | also not sure if we should be copying broken symlinks from /rofs to /target | 16:24 |
xnox | e.g. /usr/share/doc/libgtk2.0-0/changelog.gz | 16:25 |
Laney | if the deb has it, I'd say you should keep it | 16:25 |
xnox | right, it's just dirs and symlinks are funny. cause they exist in both list to keep and list to blacklist. | 16:25 |
xnox | i wonder this | 16:26 |
xnox | maybe directories should not be in the blacklist to begin with. | 16:26 |
xnox | i.e. /usr /usr/bin should not be in the blacklist..... | 16:26 |
Laney | they're all not considered anyway | 16:27 |
xnox | what do you mean? | 16:27 |
xnox | in this part of the code we decide what to copy from /rofs to /target | 16:27 |
Laney | ubiquity stats the things and if it's a directory skips blacklisting | 16:27 |
xnox | and /rofs has everything preinstalled. | 16:27 |
xnox | meaning we potentially install many empty redundant dirs in /target, if they are fully blacklisted. | 16:29 |
Laney | ref count them :-) | 16:30 |
Laney | really though, more than a minimal amount of fixing in ubiquity is probably not a great idea at this point | 16:30 |
Laney | given Installer NG™ | 16:31 |
xnox | Installer NG.io | 16:31 |
xnox | hahahahhahaha | 16:31 |
xnox | Laney, so i guess i should test this instead http://paste.ubuntu.com/p/kFPTzBMjNC/ | 16:33 |
xnox | cause this means our top-level tree stays. | 16:34 |
xnox | and it will break when we decide to do usr/sbin -> usr/bin | 16:34 |
xnox | kicking the can down the road. | 16:34 |
xnox | right | 16:34 |
xnox | so my long code works for nested symlinks to dirs. | 16:34 |
xnox | because it does a stat on the symlink target, and if that is a dir, it skips blacklisting. | 16:35 |
xnox | thus probably i never actually get to the '/' in relpath fallthrough. | 16:35 |
xnox | maybe | 16:35 |
Laney | how does usrmerge actually work? | 16:38 |
Laney | something ships the symlink and dpkg follows that when unpacking packages? | 16:38 |
xnox | Laney, debootstrap pre-creates /bin -> usr/bin symlink; dpkg never replaces a symlink with a dir; thus when it unpacks base-files or debs that ship /bin (dir) /bin/true (file) the `true` binary ends up in /usr/bin/true on disk | 16:46 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!