-
Notifications
You must be signed in to change notification settings - Fork 568
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
1 changed file
with
166 additions
and
159 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 <lua> | ||
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 <lua> | ||
--# 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 <lua> | ||
--# 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 <[email protected]> - 1.1-20 | ||
|