You are not logged in.

#151 2010-08-15 12:12:53

skanky
Member
From: WAIS
Registered: 2009-10-23
Posts: 1,847

Re: Put your $HOME in .home!

Sloonz wrote:

LD_PRELOAD=libetc.so VBoxSDL --startvm xp
Frack, another libetc-induced segfault...

LD_PRELOAD=/usr/lib/libetc.so VBoxSDL --startvm xp
WTF ?! works fine

LD_PRELOAD=libetc.so screen
Sure, works fine

LD_PRELOAD=/usr/lib/libetc.so screen
Totally ignore libetc.so now ! Doesn't make any sense !

LD_PRELOAD=libetc.so firefox/claws-mail/ls/xterm/whatever
works fine

LD_PRELOAD=/usr/bin/libetc.so firefox/claws-mail/ls/xterm/whatever
works fine, too

Okay, I give up. The LD_PRELOAD method has too many problem. I abandon libetc, and I'm starting a FUSE filesystem which will do the job without this kind of weird bug. Someone think it's worth making a "last" version of libetc (tagging current commit as 0.5 in git ?)

I think so yeah. Just make a not that it's now unsupported. smile
I think the FUSE fs approach will need to be explained to me....


"...one cannot be angry when one looks at a penguin."  - John Ruskin
"Life in general is a bit shit, and so too is the internet. And that's all there is." - scepticisle

Offline

#152 2010-10-17 18:55:29

tonyisnt
Member
Registered: 2008-03-18
Posts: 158

Re: Put your $HOME in .home!

So I'm not sure if Sloonz really did abandon libetc or not, but either way, I have a few issues.

First is a small one.  While using Firefox works for a while, randomly it stops opening entirely.  When I run it from a terminal it just loads for about a second and then crashes (nothing happens visually) and there are no error messages.  When I run 'firefox -safe-mode' and then exit I can run it normally the next time, but usually the time after that I need to do the safe mode trick again.  So I've added .mozilla to the LIBETC_IGNORE line and it runs fine every time.

The other is a more serious problem.  After my last update things seem to have gone wrong.  Not realizing libetc could have problems with the new Gnome stuff until earlier today I didn't try anything involving it as a fix.  Anyway, commenting out the LD_PRELOAD line (essentially disabling libetc) allowed everything to work normally again.  At this point running 'ps -eo user,cmd | grep conf' returned an instance of gconf.

So, still wanting to use libetc, I tried adding every folder this successful run created in ~ to the LIBETC_IGNORE line: .dbus, .gconf, .gconfd, .gnome2, .gnome2_private, .gvfs.  This didn't do it, and I still get the error messages.

Any tips?

Offline

#153 2010-10-17 19:16:43

Sloonz
Member
Registered: 2010-03-02
Posts: 38

Re: Put your $HOME in .home!

> So I'm not sure if Sloonz really did abandon libetc or not
Yes, but I maintain http://github.com/sloonz/rewritefs which can be used to replace libetc.

> Any tips ?
Have you tried to blacklist gconfd ? (fill LIBETC_BLACKLIST with value of /proc/(any working gconfd PID instance)/exe)

Offline

#154 2010-10-17 20:07:54

Dieter@be
Forum Fellow
From: Belgium
Registered: 2006-11-05
Posts: 2,000
Website

Re: Put your $HOME in .home!

Sloonz wrote:

> So I'm not sure if Sloonz really did abandon libetc or not
Yes, but I maintain http://github.com/sloonz/rewritefs which can be used to replace libetc.

wow.
looks great and elegant.  is this ready for production?


< Daenyth> and he works prolifically
4 8 15 16 23 42

Offline

#155 2010-10-17 20:35:42

tonyisnt
Member
Registered: 2008-03-18
Posts: 158

Re: Put your $HOME in .home!

Sloonz wrote:

Have you tried to blacklist gconfd ? (fill LIBETC_BLACKLIST with value of /proc/(any working gconfd PID instance)/exe)

Even though I know nothing about anything related to this, wouldn't this only be effective if the gconfd instance had the same PID every time?  Anyway, I tried it with a guest account and it didn't do anything.

Offline

#156 2010-10-17 22:28:02

Sloonz
Member
Registered: 2010-03-02
Posts: 38

Re: Put your $HOME in .home!

> is this ready for production?
Depends what you mean by "production" smile. I use it on my main computer since "initial commit" (14 august) with only one problem (with the android emulator, which is fixed… oops, forgot to upload the fix on github). I find it far more reliable than libetc (with libetc, there was always problems like "this suid program didn't used libetc" or "hell, how do I manage .zshrc/.xsession", "shit, that didn't work in this particular case). No problems like that here, since it's at filesystem level.

> wouldn't this only be effective if the gconfd instance had the same PID every time?
No, the goal is to blacklist the gconfd binary. libetc do that by comparing /proc/self/exe with LIBETC_BLACKLIST. But this value should be the same for all gconfd instances (unless you have multiple gnome installations on the same machine, but that's not a common setup wink)

> Anyway, I tried it with a guest account and it didn't do anything.
My mistake, it wasn't the /content/ of /proc/(gconfd)/exe but the file pointed by /proc/(gconfd)/exe. Which should be, BTW, the result of "which gconfd". What if you put "export LIBETC_BLACKLIST=`which gconfd`" just before your LD_PRELOAD ?
(if that doesn't work either, sorry, but I have no other idea)

Last edited by Sloonz (2010-10-17 22:38:10)

Offline

#157 2010-10-18 00:20:34

tonyisnt
Member
Registered: 2008-03-18
Posts: 158

Re: Put your $HOME in .home!

No luck.

I guess, since it's something of an annoyance, I could go back to cluttering ~ with dotfiles, or I could go back to my pacman log and downgrade any packages I think might have caused the problem to arise.  If rewritefs can do the same thing and is more reliable I could use that of course, but the problem is that it seems to be over my head.  I don't really understand what it does, I guess, so I wouldn't know how to tell it to do what I want it to do.

Offline

#158 2010-10-27 19:12:03

Sloonz
Member
Registered: 2010-03-02
Posts: 38

Re: Put your $HOME in .home!

> I don't really understand what it does, I guess, so I wouldn't know how to tell it to do what I want it to do.
There's a README file and a manpage — if you find them unclear, I can clarify them. Also, there's an example config file (config.simple) which is a config file intended to replace libetc features.

Offline

#159 2010-11-01 09:25:52

tonyisnt
Member
Registered: 2008-03-18
Posts: 158

Re: Put your $HOME in .home!

I think I got it working properly without any problems, but I'll keep my fingers crossed.  I didn't really look at the description very closely before.

I do have a question, though.  At first I didn't really understand what to do to make it work, but I copied your example of using /mnt/home.  First I tried remounting /mnt/home to /home, but doing this I was getting a lot of problems—thing simply not working, files being created with root ownership, and probably more.  With the ownership issues I tried it on a per-user basis, as you have done, and things work fine.  But I'm wondering if there is a way to do it that isn't per-user.  On another computer I have a single partition setup, for example, and so using the /mnt/home trick wouldn't work.

EDIT: I am experiencing some file ownership problems still.  So far I've run into issues with a Firefox add-on called Session Manager and with thumbnails (that go into ~/.thumbnails by default).  All thumbnails seem to be owned by root:root, and while for the most part this doesn't cause any issues Quod Libet spits out an error message every time it tries to show me album art.  When I have run into the root issues I've run 'rewritefs /mnt/home/tony /home/tony -o config=/mnt/home/tony/.config/rewritefs,nonempty' to basically restart rewritefs I guess, and that seems to work fine.  Should I maybe just run this when Openbox starts?  Right now I only have the lines in /etc/fstab.  It doesn't make sense that I should have to do it twice, but I don't know.  When I run the rewritefs command I also have two instances of /home/tony when I run df—one is listed as rewritefs for the filesystem, and the other is /dev/fuse.

If there is a better place to put these kind of things let me know.  It doesn't seem like this old thread is the best.

Last edited by tonyisnt (2010-11-02 21:53:03)

Offline

#160 2010-11-05 16:12:02

Acheron
Member
Registered: 2008-03-18
Posts: 12

Re: Put your $HOME in .home!

After spending far more time than I should have to get rewritefs working, I think the wording of the readme is unclear.  Maybe I'm just dumb for not thinking about the way this would work, but nowhere does it explicitly state that you need to first mount your home directories elsewhere, such as under /mnt in order for them to be redirected to their initial position (especially moving from libetc to this threw me off).  The phrasing, particularly "Let's say you have your raw home dirs in /mnt/home/$USER" led me to think having them under /mnt was just an idiosyncrasy of the creator.

Now, after getting it working using the sample config file, a number of dotfiles and directories still appear in my home directory.  Excluding the three that should exist, .dbus, .gconf, .gconfd, .gstreamer-0.10, .mozilla, .thunderbird, .uim.d, .wicd, .bash_history, .rxvt-unicode-<hostname>, .Xauthority, and .xinitrc all still appear.  Is this normal?  I wouldn't think so, but my track record with understanding rewritefs is not so great.

Offline

#161 2010-11-06 00:56:32

tonyisnt
Member
Registered: 2008-03-18
Posts: 158

Re: Put your $HOME in .home!

It doesn't seem like it's working for you at all then.

Questions:

Do you have a config file setup?  If you installed from AUR like I did it doesn't seem like the sample config files are included.  If they aren't there that's obviously why things aren't working.  I basically just used this: https://github.com/sloonz/rewritefs/blo … fig.simple

How are you telling rewritefs to run?  I tried a few different ways before I got it to work.  But most importantly, I had to make sure to specify the config file in the command line.  I thought maybe /etc/rewritefs or ~/.config/rewritefs would be automatically recognized, but that doesn't seem to be the case.  I have 'rewritefs#/mnt/home/tony /home/tony fuse config=/etc/rewritefs,default_permissions 0 0' in /etc/fstab and then, because I was occasionally running into ownership issues, 'rewritefs /mnt/home/tony /home/tony -o config=/etc/rewritefs,default_permissions,nonempty &' in my autostart.sh file for Openbox (obviously if you don't use Openbox you'd need to put it where it belongs).

Maybe those ideas will help.  If not, when/if Sloonz sees your post he can help you out.

Last edited by tonyisnt (2010-11-06 07:29:34)

Offline

#162 2011-02-13 13:08:53

akurei
Member
From: Bochum, NRW, Germany
Registered: 2009-05-25
Posts: 152
Website

Re: Put your $HOME in .home!

I am having problems with your rewritefs. It does not work at the moment. Here's what I did:

At first I moved all the dotfiles to .config:

mv ~/.* ~/.config
mv ~/.config/.cache ~/.config/.local ~/

I then changed my fstab:

/dev/mapper/arch-home /mnt/home jfs defaults 0 1
rewritefs#/mnt/home /home fuse config=/etc/rewritefs,allow_other 0 0

My /etc/rewritefs is:

m#^(?!\.)# .
m#^\.(cache|config|local)# .
m#^\.# .config/

I then rebooted and all was fine according to 'mount', but when I tried to login, it did not change the open() commands to point to the config files in .config.
Running rewritefs in debug mode also showed that it did not do what I wanted. Also all "new" files were owned by root:root.

Next thing I tried was:

umount /home
mkdir /home/akurei
rewritefs -d -c /etc/rewritefs -o allow_other /mnt/home/akurei /home/akurei

Which also did not work.

I will try to mount the whole stuff via pam_mount next and see if I can get it running that way.

Can you please help me fix that?

Last edited by akurei (2011-02-13 13:10:28)

Offline

Board footer

Powered by FluxBB