%global debug_package %{nil} Name: filesystem Version: 2026.06.10 Release: 1 Summary: Base directory layout for Varclen Linux License: Unknown URL: https://gitlab.com/varclen/base/filesystem BuildArch: noarch %description This package provides the base directory structure for Varclen Linux. It creates all top-level and essential subdirectories, symlinks, and permissions required before any other package is installed. %prep %build %install # --- Top-level directories --- install -d %{buildroot}/{boot,dev,home,media,mnt,opt,proc,root,run,srv,sys,tmp} # --- /usr hierarchy --- install -d %{buildroot}/usr/{bin,include,lib,lib64,libexec,local,sbin,share,src} install -d %{buildroot}/usr/local/{bin,include,lib,lib64,libexec,sbin,share} install -d %{buildroot}/usr/share/{doc,info,locale,man,misc,terminfo,zoneinfo} install -d %{buildroot}/usr/share/man/man{1,2,3,4,5,6,7,8} # --- /etc hierarchy --- install -d %{buildroot}/etc/{default,opt,profile.d,skel,sysconfig} install -d %{buildroot}/etc/X11 # --- /var hierarchy --- install -d %{buildroot}/var/{cache,db,empty,games,lib,lock,log,mail,opt,run,spool,tmp} install -d %{buildroot}/var/lib/{color,games,misc} install -d %{buildroot}/var/spool/{mail,cron} # --- /run (tmpfs at runtime, but seed the structure) --- install -d %{buildroot}/run/{lock,user} # --- Legacy FHS symlinks (merged-usr layout) --- # /bin, /sbin, /lib, /lib64 -> /usr/... ln -sfn usr/bin %{buildroot}/bin ln -sfn usr/sbin %{buildroot}/sbin ln -sfn usr/lib %{buildroot}/lib ln -sfn usr/lib64 %{buildroot}/lib64 # /var/run, /var/lock -> /run/... ln -sfn ../run %{buildroot}/var/run ln -sfn ../run/lock %{buildroot}/var/lock # --- Permissions --- # root home: only root may enter chmod 0750 %{buildroot}/root # world-sticky tmp directories chmod 1777 %{buildroot}/tmp chmod 1777 %{buildroot}/var/tmp # --- /etc baseline files --- # /etc/os-release is provided by varclen-release; leave a placeholder cat > %{buildroot}/etc/shells << 'EOF' /bin/sh /bin/bash EOF cat > %{buildroot}/etc/fstab << 'EOF' # /etc/fstab — edit to match your system # EOF cat > %{buildroot}/etc/profile << 'EOF' # /etc/profile — sourced by login shells for f in /etc/profile.d/*.sh; do [ -r "$f" ] && . "$f" done unset f EOF cat > %{buildroot}/etc/hostname << 'EOF' localhost EOF cat > %{buildroot}/etc/hosts << 'EOF' 127.0.0.1 localhost ::1 localhost EOF cat > %{buildroot}/etc/group << 'EOF' root:x:0: bin:x:1: daemon:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: mem:x:8: kmem:x:9: wheel:x:10: users:x:100: EOF cat > %{buildroot}/etc/passwd << 'EOF' root:x:0:0:root:/root:/bin/sh daemon:x:2:2:daemon:/:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin nobody:x:65534:65534:nobody:/:/sbin/nologin EOF cat > %{buildroot}/etc/shadow << 'EOF' root:!:0:0:99999:7::: daemon:*:0:0:99999:7::: bin:*:0:0:99999:7::: nobody:*:0:0:99999:7::: EOF chmod 0640 %{buildroot}/etc/shadow cat > %{buildroot}/etc/gshadow << 'EOF' root::: bin::: daemon::: nobody::: EOF chmod 0640 %{buildroot}/etc/gshadow rm -rf /var/run/run %files # --- Top-level directories --- %dir /boot %dir /dev %dir /home %dir /media %dir /mnt %dir /opt %dir /proc %attr(0750,root,root) %dir /root %dir /run %dir /run/lock %dir /run/user %dir /srv %dir /sys %attr(1777,root,root) /tmp # --- Legacy symlinks --- /bin /sbin /lib /lib64 # --- /usr --- %dir /usr %dir /usr/bin %dir /usr/include %dir /usr/lib %dir /usr/lib64 %dir /usr/libexec %dir /usr/local %dir /usr/local/bin %dir /usr/local/include %dir /usr/local/lib %dir /usr/local/lib64 %dir /usr/local/libexec %dir /usr/local/sbin %dir /usr/local/share %dir /usr/sbin %dir /usr/share %dir /usr/share/doc %dir /usr/share/info %dir /usr/share/locale %dir /usr/share/man %dir /usr/share/man/man1 %dir /usr/share/man/man2 %dir /usr/share/man/man3 %dir /usr/share/man/man4 %dir /usr/share/man/man5 %dir /usr/share/man/man6 %dir /usr/share/man/man7 %dir /usr/share/man/man8 %dir /usr/share/misc %dir /usr/share/terminfo %dir /usr/share/zoneinfo %dir /usr/src # --- /etc --- %dir /etc %dir /etc/default %dir /etc/opt %dir /etc/profile.d %dir /etc/skel %dir /etc/sysconfig %dir /etc/X11 /etc/shells /etc/fstab /etc/profile /etc/hostname /etc/hosts /etc/group /etc/passwd %attr(0640,root,shadow) /etc/shadow %attr(0640,root,shadow) /etc/gshadow # --- /var --- %dir /var %dir /var/cache %dir /var/db %dir /var/empty %dir /var/games %dir /var/lib %dir /var/lib/color %dir /var/lib/games %dir /var/lib/misc %dir /var/log %dir /var/mail %dir /var/opt %dir /var/run %dir /var/spool %dir /var/spool/cron %dir /var/spool/mail %attr(1777,root,root) /var/tmp /var/lock %changelog * Wed Jun 10 2026 Rain Xelelo - 2026.06.10-1 - Initial filesystem layout