Package: fakeroot
Version: 1.14.5-2
Severity: wishlist
Tags: patch

Fakeroot still uses essentially the same package description as it had
when it was an incompletely implemented idea in 1997.  It has had a
couple of paragraphs trimmed off the end (one of them because of my
own bugreport #231327), but the main body of the text is unchanged:

> Description: Gives a fake root environment
>  This package is intended to enable something like:
>    dpkg-buildpackage -rfakeroot
>  i.e. to remove the need to become root for a package build.
>  This is done by setting LD_PRELOAD to libfakeroot.so,
>  which provides wrappers around getuid, chown, chmod, mknod,
>  stat, and so on, thereby creating a fake root environment.
>  .
>  fakeroot requires SYSV IPC or TCP to operate.

Cue nitpicking bulletpoints:
 • rather than always using the ambiguous word "root" (cf. xsetroot
   and chroot) there should be some mention of superuser privileges;
 • post-Etch dpkg-buildpackage uses -rfakeroot by default, and is
   itself commonly invoked via debuild rather than directly;
 • there's no such library as libfakeroot.so;
 • it means chown(), not the chown on my PATH;
 • the standard capitalisation is "SysV", not "SYSV" - but it seems
   unlikely that a Debian system functional enough to install fakeroot
   onto is going to lack both SysV IPC and TCP anyway.

More generally, the above gives no hint that the main thing fakeroot
is used for is manipulating UIDs within archives.  That's something
even non-programmers might want to do - and the package is after all
filed under "utils", not "dev"... so I thought while I was brushing
the cobwebs off I'd try to clear up some of the developerese as well
(and make it DevRef6.2.2-compliant).  Compare this description from
Freshmeat:

> Fakeroot runs a command in an environment were it appears to have
> root privileges for file manipulation, by setting LD_PRELOAD to a
> library with alternative versions of getuid(), stat(), etc. This
> is useful for allowing users to create archives (tar, ar, .deb
> .rpm etc.) with files in them with root permissions/ownership.
> Without fakeroot one would have to have root privileges to create
> the constituent files of the archives with the correct permissions
> and ownership, and then pack them up, or one would have to
> construct the archives directly, without using the archiver. 

I suppose you could just adopt that version (give or take a
s/were/where/), but I'd suggest something more along the lines of:


 Description: tool for simulating superuser privileges
  fakeroot provides a fake "root environment" by means of LD_PRELOAD and
  SysV IPC (or TCP) trickery. It puts wrappers around getuid(), chown(),
  stat(), and other file-manipulation functions, so that unprivileged
  users can (for instance) populate .deb archives with root-owned files;
  various build tools use fakeroot for this by default.

-- 
JBR
Ankh kak! (Ancient Egyptian blessing)
diff -ru fakeroot-1.14.5.pristine/debian/control fakeroot-1.14.5/debian/control
--- fakeroot-1.14.5.pristine/debian/control	2010-12-05 19:04:54.000000000 +0000
+++ fakeroot-1.14.5/debian/control	2011-02-28 11:14:51.213258893 +0000
@@ -11,12 +11,9 @@
 Architecture: any
 Depends: ${shlibs:Depends}
 Conflicts: libc6-dev-i386 (<= 2.9-13), libc6-i386 (<= 2.9-13)
-Description: Gives a fake root environment
- This package is intended to enable something like:
-   dpkg-buildpackage -rfakeroot
- i.e. to remove the need to become root for a package build.
- This is done by setting LD_PRELOAD to libfakeroot.so,
- which provides wrappers around getuid, chown, chmod, mknod, 
- stat, and so on, thereby creating a fake root environment.
- .
- fakeroot requires SYSV IPC or TCP to operate.
+Description: tool for simulating superuser privileges
+ fakeroot provides a fake "root environment" by means of LD_PRELOAD and
+ SysV IPC (or TCP) trickery. It puts wrappers around getuid(), chown(),
+ stat(), and other file-manipulation functions, so that unprivileged
+ users can (for instance) populate .deb archives with root-owned files;
+ various build tools use fakeroot for this by default.

Reply via email to