[Fedora-packaging] Refining today's "don't touch system fs" guideline

Axel Thimm Axel.Thimm at ATrpms.net
Thu Oct 12 18:20:03 UTC 2006


We voted today on

  "Build scripts of packages (%prep, %build, %install and %check) may
   only alter files (create, modify, delete) under %{buildroot},
   %{_builddir} and valid temporary locations like /tmp, /var/tmp (or
   $TMPDIR or %{_tmppath} as set by the rpmbuild process).

  Further clarification: That should hold true irrespective of the
  builder's uid"

But after thinking about it I'm not quite happy now. Since we go into
details naming what the build scripts are, we should make clear
that they are not equal in what they may or may not do. For example
%{buildroot} should only be modified by %install, not %prep/%build and
%check.

How about extending the rule and having a root/non-root rule, too,
e.g.

o Package builds should yield the same results irrespective of the
  packaging process' uid/gid, for example builds under root and
  non-root users should behave the same.

o Build scripts of packages (%prep, %build, %install and %check) may
  only alter files (create, modify, delete) under %{buildroot},
  %{_builddir} and valid temporary locations like /tmp, /var/tmp (or
  $TMPDIR or %{_tmppath} as set by the rpmbuild process).
  %{buildroot} should only be allowed to be altered in %install
  scripts.

  Note I: The first part of this rule is automatically
  fulfilled for typical non-user build process uids but the packager
  should not rely on that, since users may rebuild the src.rpm under
  root

  Note II: As a consequence $HOME and similar parts of the filesystem
  are not to be used directly. Of course some of the allowed write
  spaces like the builddir, buildroot or $TMPDIR may have been placed
  under $HOME, so indirectly a user may be writing under $HOME, but
  direct access to parts under $HOME are strictly forbidden.

  Note III: Cheating with relative paths (".." escapes) grants you a
  ticket to packaging hell.
-- 
Axel.Thimm at ATrpms.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/fedora-packaging/attachments/20061012/204ec3ed/attachment.sig>


More information about the Fedora-packaging mailing list