Basic Directory Layout

Edit Package filesystem

This package installs the basic directory structure. It also includes
the home directories of system users.

Refresh
Refresh
Source Files
Filename Size Changed
LICENSE.txt 0000001023 1023 Bytes
directory.list 0000004023 3.93 KB
directory.list64 0000000104 104 Bytes
filesystem.changes 0000067041 65.5 KB
filesystem.spec 0000008543 8.34 KB
ghost.list 0000000857 857 Bytes
ghost.list64 0000000032 32 Bytes
languages 0000000563 563 Bytes
languages.man 0000000084 84 Bytes
Revision 159 (latest revision is 173)
Dominique Leuenberger's avatar Dominique Leuenberger (dimstar_suse) accepted request 909691 from Ludwig Nussel's avatar Ludwig Nussel (lnussel) (revision 159)
- Leave subdirectories of /srv mode 755 as the apache openqa test relies on it
  atm. Only set /srv itself to 555

- implement mkdir_p for ghost files as components may not exist
- move usrmerge conversion to %pre instead of %pretrans (boo#1188847)
- get rid of usrmerged macro usage, usrmerge is on in Factory always

- Mark /boot, /home, /mnt, /opt, /srv and /usr/local as
  %ghost and create from lua in case mounted eg from a read-only fs
  such as NFS. Except for the latter also mark them as 0555 while we
  are at it (boo#1186894)
Comments 1

Stefan Kluth's avatar

Dear filesystem,

I have a somewhat tricky problem with this package: when building a singularity container image with singularity build --fakeroot <name>.sif <name>.def an error

error: unpacking of archive failed on file /dev: cpio: chown

is thrown. Everything else installs fine.

Looking at the "directory.list" there is an entry

0755 root root /dev

which could possibly be the source of the error.

In a container, /dev is by default bind-mounted from the host and thus trying to create /dev during the install causes the error. Other bind-mounted directories exist (/tmp, /proc, /sys), with different permissions from /dev in your .list files, and these don't cause problems.

Do you think filesystem could be made to test if a /dev already exists (because it installs in a container with /dev bind-mounted from the host) and then don't install, or use different permissions, or do something else graceful?

Regards, Stefan

openSUSE Build Service is sponsored by