[cmake-developers] [CPack] CPackDeb and fakeroot
Raffi Enficiaud
raffi.enficiaud at mines-paris.org
Tue Aug 25 17:52:38 EDT 2015
Le 25/08/15 16:48, Eric Noulard a écrit :
> I would suggest checking (in CPackDeb generator code) whether if CPack
> has been called in a fakerootED environment. This can be done by
> checking whether if "FAKEROOTKEY" env var is defined or not.
> If fakeroot is already in action then one should not call fakeroot again
> (whatever the fakerootED user is).
Hmmm, unfortunately it does not work. This variable does not exist on
the fakerooted shell. I think there is no "good" way to detect that we
are in a fakerooted environment because their purpose is to mimic the
commands as if the real root user is entering them (and introspection
should not be possible by design).
I see two technical solutions:
- either using the system tar: this would not work in the case of cross
compilation (and in some circumstances only) but would work in the other
case. I believe that all the debian packaging tools are just using the
system provided tar, so this should closely mimic the debian-packaging
machinery better,
- or using a CPACK variable to avoid having fakeroot executed
I see several workarounds/hacks:
- executing with fakeroot in cpack first and in case of failure falling
back to run tar without fakeroot
- detect if the current user is root already
Raffi
More information about the cmake-developers
mailing list