diff --git a/SPECS/filesystem/filesystem.spec b/SPECS/filesystem/filesystem.spec index 15125b25564..c0f40386ae4 100644 --- a/SPECS/filesystem/filesystem.spec +++ b/SPECS/filesystem/filesystem.spec @@ -22,195 +22,202 @@ the directories. %prep %build %install -# -# 6.5. Creating Directories -# -install -vdm 755 %{buildroot}/{dev,run/{media/{floppy,cdrom},lock}} -install -vdm 755 %{buildroot}/{etc/{opt,sysconfig},home,mnt} -install -vdm 700 %{buildroot}/boot -install -vdm 755 %{buildroot}/{var} -install -vdm 755 %{buildroot}/opt -install -vdm 755 %{buildroot}/media -install -dv -m 0750 %{buildroot}/root -install -dv -m 1777 %{buildroot}/tmp %{buildroot}/var/tmp -install -vdm 755 %{buildroot}/usr/{,local/}{bin,include,lib,sbin,src} -install -vdm 755 %{buildroot}/usr/{,local/}share/{color,dict,doc,info,locale,man} -install -vdm 755 %{buildroot}/usr/{,local/}share/{misc,terminfo,zoneinfo} -install -vdm 755 %{buildroot}/usr/libexec -install -vdm 755 %{buildroot}/usr/{,local/}share/man/man{1..8} -install -vdm 755 %{buildroot}/etc/profile.d -install -vdm 755 %{buildroot}/usr/lib/debug/{lib,bin,sbin,usr,.dwz} +rm -rf %{buildroot} +mkdir %{buildroot} -ln -svfn usr/lib %{buildroot}/lib -ln -svfn usr/bin %{buildroot}/bin -ln -svfn usr/sbin %{buildroot}/sbin +cd %{buildroot} -ln -svfn ../bin %{buildroot}/usr/lib/debug/usr/bin -ln -svfn ../sbin %{buildroot}/usr/lib/debug/usr/sbin -ln -svfn ../lib %{buildroot}/usr/lib/debug/usr/lib +Paths=( + boot dev \ + etc/{xdg/autostart,opt,pm/{config.d,power.d,sleep.d},skel,sysconfig,keys/ima,pki,bash_completion.d,rwtab.d,statetab.d} \ + home media mnt opt root run srv tmp \ + usr/{bin,include,%{_lib}/{bpf,pm-utils/{module.d,power.d,sleep.d}},lib/{debug/{.dwz,usr},locale,modules,sysimage,systemd/{system,user},sysusers.d,tmpfiles.d},libexec,local/{bin,etc,lib,%{_lib}/bpf,sbin,src,share/{applications,man/man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x},info},libexec,include},sbin,share/{aclocal,appdata,applications,backgrounds,bash-completion{,/completions,/helpers},dict,doc,empty,help,icons,idl,info,licenses,locale,man/man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x,0p,1p,3p},metainfo,mime-info,misc,omf,pixmaps,sounds,themes,zsh/site-functions},src,src/kernels,src/debug} \ + var/{adm,empty,ftp,lib/{misc,rpm-state},local,log,nis,preserve,spool/{mail,lpd},tmp,db,cache/bpf,opt,yp} +) +for i in "${Paths[@]}"; do + mkdir -p "$i" +done - ln -svfn usr/lib %{buildroot}/lib64 - ln -svfn lib %{buildroot}/usr/lib64 - ln -svfn lib %{buildroot}/usr/local/lib64 - ln -svfn lib %{buildroot}/usr/lib/debug/lib64 - ln -svfn ../lib %{buildroot}/usr/lib/debug/usr/lib64 - ln -svfn ../.dwz %{buildroot}/usr/lib/debug/usr/.dwz +ln -snf ../var/tmp usr/tmp +ln -snf spool/mail var/mail +ln -snf usr/bin bin +ln -snf usr/sbin sbin +ln -snf usr/lib lib +ln -snf usr/%{_lib} %{_lib} +ln -snf ../run var/run +ln -snf ../run/lock var/lock +ln -snf usr/bin usr/lib/debug/bin +ln -snf usr/lib usr/lib/debug/lib +ln -snf usr/%{_lib} usr/lib/debug/%{_lib} +ln -snf ../.dwz usr/lib/debug/usr/.dwz +ln -snf usr/sbin usr/lib/debug/sbin -install -vdm 755 %{buildroot}/var/{log,mail,spool,mnt,srv} - -ln -svfn var/srv %{buildroot}/srv -ln -svfn ../run %{buildroot}/var/run -ln -svfn ../run/lock %{buildroot}/var/lock -install -vdm 755 %{buildroot}/var/{opt,cache,lib/{color,misc,locate},local} -install -vdm 755 %{buildroot}/mnt/cdrom -install -vdm 755 %{buildroot}/mnt/hgfs - -# -# -# chapter 9.1. The End -# - -# Since these following symlinks are ghosted entries, create them manually upon -# package installation. - -# Use Lua to achieve this since when filesystem installs, there may not be any -# other packages installed if this is a new environment. -%post -p -posix.symlink("lib", "/usr/lib/debug/lib64") -posix.symlink("../bin", "/usr/lib/debug/usr/bin") -posix.symlink("../sbin", "/usr/lib/debug/usr/sbin") -posix.symlink("../lib", "/usr/lib/debug/usr/lib") -posix.symlink("../lib", "/usr/lib/debug/usr/lib64") -posix.symlink("../.dwz", "/usr/lib/debug/usr/.dwz") -return 0 +for i in man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x,0p,1p,3p}; do + echo "/usr/share/man/$i" >>$RPM_BUILD_DIR/filelist +done %pretrans -p +--# If we are running in pretrans in a fresh root, there is no /usr and +--# symlinks. We cannot be sure, to be the very first rpm in the +--# transaction list. Let's create the needed base directories and symlinks +--# here, to place the files from other packages in the right locations. +--# When our rpm is unpacked by cpio, it will set all permissions and modes +--# later. +posix.mkdir("/usr") +posix.mkdir("/usr/bin") +posix.mkdir("/usr/sbin") +posix.mkdir("/usr/lib") +posix.mkdir("/usr/lib/debug") +posix.mkdir("/usr/lib/debug/usr/") +posix.mkdir("/usr/lib/debug/usr/bin") +posix.mkdir("/usr/lib/debug/usr/sbin") +posix.mkdir("/usr/lib/debug/usr/lib") +posix.mkdir("/usr/lib/debug/usr/%{_lib}") +posix.mkdir("/usr/%{_lib}") +posix.symlink("usr/bin", "/bin") +posix.symlink("usr/sbin", "/sbin") +posix.symlink("usr/lib", "/lib") +posix.symlink("usr/bin", "/usr/lib/debug/bin") +posix.symlink("usr/lib", "/usr/lib/debug/lib") +posix.symlink("usr/%{_lib}", "/usr/lib/debug/%{_lib}") +posix.symlink("../.dwz", "/usr/lib/debug/usr/.dwz") +posix.symlink("usr/sbin", "/usr/lib/debug/sbin") +posix.symlink("usr/%{_lib}", "/%{_lib}") +posix.mkdir("/run") posix.mkdir("/proc") posix.mkdir("/sys") posix.chmod("/proc", 0555) posix.chmod("/sys", 0555) +st = posix.stat("/media") +if st and st.type == "link" then + os.remove("/media") +end +posix.mkdir("/var") +posix.symlink("../run", "/var/run") +posix.symlink("../run/lock", "/var/lock") return 0 +%posttrans -p +--# we need to restorecon on some dirs created in %pretrans or by other packages +if posix.access ("/usr/sbin/restorecon", "x") then + rpm.execute("/usr/sbin/restorecon", "/var", "/var/run", "/var/lock", "/sys", "/boot", "/dev", "/media") + rpm.execute("/usr/sbin/restorecon", "-r", "/usr/lib/debug") +end + %files -%defattr(-,root,root) -# Root filesystem +%defattr(0755,root,root,0755) +%dir %attr(555,root,root) / /bin -%dir /boot -%dir /dev +%attr(555,root,root) /boot +/dev %dir /etc -%dir /home +/etc/xdg +/etc/opt +/etc/pm +/etc/skel +/etc/sysconfig +/etc/keys +/etc/pki +/etc/bash_completion.d/ +%dir /etc/rwtab.d +%dir /etc/statetab.d +/home /lib -%dir /opt - +%ifarch x86_64 ppc64 sparc64 s390x aarch64 ppc64le mips64 mips64el riscv64 +/%{_lib} +%endif /media %dir /mnt +%dir /opt %ghost %attr(555,root,root) /proc -%dir /root -%dir /run +%attr(550,root,root) /root +/run /sbin /srv %ghost %attr(555,root,root) /sys -%dir /tmp +%attr(1777,root,root) /tmp %dir /usr -%dir /var -# etc fileystem -%dir /etc/opt -%dir /etc/sysconfig -%dir /etc/profile.d -# media filesystem -%dir /run/media/cdrom -%dir /run/media/floppy -# run filesystem -%dir /run/lock -# usr filesystem -%dir /mnt/cdrom -%dir /mnt/hgfs -%dir /usr/bin -%dir /usr/include -%dir /usr/lib +%attr(555,root,root) /usr/bin +/usr/include +%dir %attr(555,root,root) /usr/lib +%dir /usr/lib/sysimage +%dir /usr/lib/systemd +/usr/lib/systemd/system +/usr/lib/systemd/user +%dir /usr/lib/sysusers.d +%dir /usr/lib/tmpfiles.d +%dir /usr/lib/locale +%dir /usr/lib/modules %dir /usr/lib/debug -%dir /usr/lib/debug/bin -%dir /usr/lib/debug/lib -%dir /usr/lib/debug/sbin -%dir /usr/lib/debug/usr %dir /usr/lib/debug/.dwz -%dir /usr/libexec -%dir /usr/local -%dir /usr/local/bin -%dir /usr/local/include -%dir /usr/local/lib -%dir /usr/local/sbin -%dir /usr/local/share -%dir /usr/local/share/color -%dir /usr/local/share/dict -%dir /usr/local/share/doc -%dir /usr/local/share/info -%dir /usr/local/share/locale -%dir /usr/local/share/man -%dir /usr/local/share/man/man1 -%dir /usr/local/share/man/man2 -%dir /usr/local/share/man/man3 -%dir /usr/local/share/man/man4 -%dir /usr/local/share/man/man5 -%dir /usr/local/share/man/man6 -%dir /usr/local/share/man/man7 -%dir /usr/local/share/man/man8 -%dir /usr/local/share/misc -%dir /usr/local/share/terminfo -%dir /usr/local/share/zoneinfo -%dir /usr/local/src -%dir /usr/sbin -%dir /usr/share -%dir /usr/share/color -%dir /usr/share/dict -%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 - -# ghosted /usr/lib/debug symlinks. -# -# Ghost them to allow others packages to create/provide files -# inside the symlinks without conflicting with this package. -%ghost /usr/lib/debug/lib64 +%ghost /usr/lib/debug/bin +%ghost /usr/lib/debug/lib +%ghost /usr/lib/debug/%{_lib} +%ghost %dir /usr/lib/debug/usr %ghost /usr/lib/debug/usr/bin -%ghost /usr/lib/debug/usr/lib -%ghost /usr/lib/debug/usr/lib64 %ghost /usr/lib/debug/usr/sbin +%ghost /usr/lib/debug/usr/lib +%ghost /usr/lib/debug/usr/%{_lib} %ghost /usr/lib/debug/usr/.dwz - -# var filesystem +%ghost /usr/lib/debug/sbin +%ifarch x86_64 ppc64 sparc64 s390x aarch64 ppc64le mips64 mips64el riscv64 +%attr(555,root,root) /usr/%{_lib} +%else +%attr(555,root,root) /usr/lib/bpf +%attr(555,root,root) /usr/lib/pm-utils +%endif +/usr/libexec +/usr/local +%attr(555,root,root) /usr/sbin +%dir /usr/share +/usr/share/aclocal +/usr/share/appdata +/usr/share/applications +/usr/share/backgrounds +%dir /usr/share/bash-completion +/usr/share/bash-completion/completions +/usr/share/bash-completion/helpers +/usr/share/dict +/usr/share/doc +%attr(555,root,root) %dir /usr/share/empty +/usr/share/help +/usr/share/icons +/usr/share/idl +/usr/share/info +%dir /usr/share/licenses +%dir /usr/share/locale +%dir /usr/share/man +/usr/share/metainfo +/usr/share/mime-info +/usr/share/misc +/usr/share/omf +/usr/share/pixmaps +/usr/share/sounds +/usr/share/themes +/usr/share/zsh +/usr/src +/usr/tmp +%dir /var +/var/adm %dir /var/cache -%dir /var/lib -%dir /var/lib/color -%dir /var/lib/locate -%dir /var/lib/misc -%dir /var/local -%dir /var/log -%dir /var/mail -%dir /var/mnt -%dir /var/srv -%dir /var/opt +/var/cache/bpf +/var/db +/var/empty +/var/ftp +/var/lib +/var/local +%ghost /var/lock +/var/log +/var/mail +/var/nis +/var/opt +/var/preserve +%ghost /var/run %dir /var/spool -%dir /var/tmp -/var/lock -/var/run - -/lib64 -/usr/lib64 -/usr/local/lib64 +%attr(755,root,root) /var/spool/lpd +%attr(775,root,mail) /var/spool/mail +%attr(1777,root,root) /var/tmp +/var/yp %changelog * Mon Mar 04 2024 Dan Streetman - 1.1-20