[pacman-dev] [PATCH] pacman-lib /usr/sbin/chroot replace diff to chroot() (was in TODO)

Aurelien Foret aurelien at archlinux.org
Sat Nov 5 14:23:42 EST 2005


OK. Applied.

BTW, I added a call to waitpid() after the fork() one in the main 
process, so that it waits for the child death before resuming its 
operations.

Thanks
--
Aurelien


Aurelien Foret wrote:
> Christian Hamar wrote:
> 
>>Hello there.
>>
>>So i completed other entry which was in TODO.
>>
>>I hacked pacman-lib to use chroot() system calls and not the binary one.
>>Entry was in TODO.
>>
>>The attached patch is for latest checked pacman-lib, which is:
>>
>>2005-10-29 09:18  aurelien
>>        * src/pacman/: conf.c, conf.h: fixed parseconfig usage
>>
>>Patch description:
>>------------------
>>
>>Removed:
>>--------
>>  * Removed old chroot binary detection part
>>  * Removed global declaration for chrootbin.
>>
>>Added:
>>------
>>  * Added a complete new way to chroot and do things.
>>
>>Modified:
>>---------
>>  * Modified cmdline snprintf's to right way. Eliminated | (pipe) and
>>echo things, which looked terrible ugly :)
>>
>>As you need to know, this patch using a fork() and chroot() and execl()
>>instead of system() call. execl() looks better and safer. fork() is
>>required for chrooting in child process, if i do not do a fork() then
>>whole process stays in chrooted env. So fork is neccessary as i think. 
> 
> 
> That's exactly how I wanted it to be.
> 
> 
>>Please test it and see it, if it is ok, then commit it. (I tested it,
>>worked for me)
> 
> 
> I'll have a look at it...
> 
> --
> Aurelien
> 




More information about the pacman-dev mailing list