# NOTE # - do not use any other user/group than "root", as then we have to depend on "setup" package. # see the gid_xxx macros and post scriptlet # FIXME: verify shows changed groups of dirs changed this way Summary: Common directories Summary(pl.UTF-8): Wspólne katalogi Name: filesystem Version: 4.1 Release: 15 License: GPL Group: Base BuildRequires: automake BuildRequires: mktemp BuildRequires: rpm >= 4.4.9-56 Requires: FHS >= 3.0 Provides: browser-plugins(%{_target_base_arch}) %ifarch %{x8664} Provides: browser-plugins(i386) %endif Provides: filesystem-debuginfo = %{version}-%{release} Obsoletes: filesystem-debuginfo < 3.0-36 Conflicts: X11-libs < 1:7.7 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) # Adapter: This file does not like to be adapterized! # disable rpm generated debug package, we handle it differently here %define _enable_debug_packages 0 %if "%{_lib}" == "lib64" %define with_lib64 1 %endif # avoid rpm 4.4.9 adding rm -rf buildroot %define __spec_clean_body %{nil} # directory for "privilege separation" chroot %define _privsepdir /usr/share/empty # directory for *.idl files (for CORBA implementations) %define _idldir /usr/share/idl # we have to use numeric uids/groups. see comment beginning of the spec %define gid_logs 124 %define gid_crontab 117 %description This package contains common directories for packages that extend some programs functionality, but don't require them themselves. %description -l pl.UTF-8 Ten pakiet zawiera wspólne katalogi dla pakietów rozszerzających funkcjonalność programów, ale nie wymagających ich. %prep %setup -qcT %install rm -rf $RPM_BUILD_ROOT install -d \ $RPM_BUILD_ROOT/{initrd,selinux} \ $RPM_BUILD_ROOT/etc/{NetworkManager/dispatcher.d,X11/xinit/{xinput,xinitrc}.d,certs,cron.d,default,logrotate.d,fonts/conf.d,modprobe.d,modules-load.d,pki/{CA,tls},security,skel,sysconfig,sysctl.d,tmpwatch,xdg/colors} \ $RPM_BUILD_ROOT/home/{users,services} \ $RPM_BUILD_ROOT/lib/{firmware,security,udev/{hwdb.d,rules.d}} \ $RPM_BUILD_ROOT/usr/include/{security,X11} \ $RPM_BUILD_ROOT/usr/lib/{ConsoleKit/run-session.d,browser-plugins,cgi-bin,cmake,mozilla/extensions,pkcs11,pkgconfig,initrd} \ $RPM_BUILD_ROOT/usr/share/{appdata,augeas/lenses/tests,backgrounds,cmake/Modules,defaults,factory/etc/pam.d,fontconfig/conf.avail,gnome/help,mate/help,man/man{n,l},man/pl/mann,metainfo,pkgconfig,soundfonts,sounds,themes/Default,thumbnailers,vala/vapi,wallpapers,wayland-sessions,xdg-desktop-portal/portals,xsessions,zsh/site-functions} \ $RPM_BUILD_ROOT/usr/src/examples \ $RPM_BUILD_ROOT/var/lock/subsys \ $RPM_BUILD_ROOT/var/log/archive \ $RPM_BUILD_ROOT%{_aclocaldir} \ $RPM_BUILD_ROOT%{_fontsdir}/{{100,75}dpi,OTF,Speedo,Type1/{afm,pfm},TTF,cyrillic,local,misc} \ $RPM_BUILD_ROOT{%{_idldir},%{_privsepdir}} \ $RPM_BUILD_ROOT/boot/efi/EFI \ $RPM_BUILD_ROOT/etc/OpenCL/vendors # XDG Autostart specs: https://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html install -d $RPM_BUILD_ROOT/etc/xdg/autostart # XDG Desktop Menus specs: https://specifications.freedesktop.org/menu-spec/menu-spec-latest.html # (+custom AppDir hierarchy) install -d $RPM_BUILD_ROOT{/etc/xdg/menus/applications-merged,/usr/share/desktop-directories,%{_desktopdir}/{docklets,screensavers}} # XDG Icon Theme specs: https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html # (top level only) install -d $RPM_BUILD_ROOT{%{_iconsdir},%{_pixmapsdir}} # XDG Sound Theme specs: https://specifications.freedesktop.org/sound-theme-spec/sound-theme-spec-latest.html # (top level only) install -d $RPM_BUILD_ROOT/usr/share/sounds > %{name}.lang install -d $RPM_BUILD_ROOT/usr/share/help/C for lang in aa aa@saaho af ak am an ang anp ar ar_TN as ast az az_IR \ be be@latin be@tarask bem bg bho bn bn_IN bo br brx bs byn \ ca ca@valencia ce chr ckb cmn crh cs csb cv cy \ da de de_AT de_CH doi dv dz \ el en en_AU en_CA en_GB en_NZ en@shaw en_US eo es \ es_AR es_CL es_CO es_CR es_DO es_EC es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_SV es_UY es_VE \ et eu fa ff fi fil fo fr fr_BE fr_CA fr_CH fur fy ga gd gez gl gu gv \ ha he hi hne hr hsb ht hu hy ia id ig ik is it it_CH iu ja \ ka kab kg kk kl km kn ko kok ks ks@devanagari ku kw ky la lb lg li ln lo lt lv \ mai mg mhr mi mk ml mn mni mr ms mt my nb nds ne nl nl_BE nn nr nso oc om or \ pa pap pl ps pt pt_BR quz rm ro ru rw \ sa sat sc sd sd@devanagari se shn si sid sk sl so sq \ sr sr@ijekavian sr@ijekavianlatin sr@latin ss st sv sw szl \ ta te tg th ti tig tk tl tlh tn tpi tr ts tt tt@iqtelif \ ug uk ur uz uz@cyrillic ve vi wa wal wo xh yi yo zh_CN zh_HK zh_TW zu; do install -d $RPM_BUILD_ROOT/usr/share/help/${lang} echo "%%lang($lang) %dir /usr/share/help/${lang}" >> %{name}.lang done %if %{with lib64} install -d \ $RPM_BUILD_ROOT/lib64/security \ $RPM_BUILD_ROOT/usr/lib64/{browser-plugins,cmake,initrd,mozilla/extensions,pkcs11,pkgconfig} \ $RPM_BUILD_ROOT/usr/lib/debug/lib64/security %endif install -d \ $RPM_BUILD_ROOT/usr/lib/debug/%{_lib} \ $RPM_BUILD_ROOT/usr/lib/debug%{_libdir} \ $RPM_BUILD_ROOT/usr/lib/debug/{bin,sbin} \ $RPM_BUILD_ROOT/usr/lib/debug/usr/{bin,sbin} \ $RPM_BUILD_ROOT/usr/lib/debug/lib/security \ $RPM_BUILD_ROOT/usr/src/debug %clean cd $RPM_BUILD_ROOT check_filesystem_dirs() { RPMFILE=%{_rpmdir}/%{name}-%{version}-%{release}.%{_target_cpu}.rpm TMPFILE=$(mktemp) # note: we must exclude from check all existing dirs belonging to FHS find | sed -e 's|^\.||g' -e '/^$/d' | LC_ALL=C sort | grep -v $TMPFILE | \ grep -E -v '^/(boot|etc|etc/X11|home|lib|lib64|libx32|usr|usr/include|usr/lib|usr/lib64|usr/libx32|usr/share|usr/share/man|usr/share/man/pl|usr/src|var|var/lib|var/lock|var/log)$' > $TMPFILE if rpm -qpl $RPMFILE | grep -v '^/$' | LC_ALL=C sort | diff -u $TMPFILE - ; then rm -rf $RPM_BUILD_ROOT else echo -e "\nNot so good, some directories are not included in package\n" exit 1 fi rm -f $TMPFILE } check_filesystem_dirs %pretrans -p -- this needs to be a dir if posix.stat("/usr/include/X11", "type") == "link" then posix.umask("0755"); os.rename("/usr/include/X11", "/usr/include/X11.rpmsave") posix.mkdir("/usr") posix.mkdir("/usr/include") posix.mkdir("/usr/include/X11") oldpwd = posix.getcwd() posix.chdir("/usr/include/X11.rpmsave") for i,j in pairs(posix.glob("*")) do os.rename(j, "/usr/include/X11/" .. j) end posix.chdir(oldpwd) end %post -p posix.chown("/var/log/archive", 0, %{gid_logs}) posix.chown("/etc/cron.d", 0, %{gid_crontab}) %files -f %{name}.lang %defattr(644,root,root,755) %dir /boot/efi %dir /boot/efi/EFI %dir /etc/X11/xinit %dir /etc/X11/xinit/xinitrc.d %dir /etc/X11/xinit/xinput.d %dir /etc/OpenCL %dir /etc/OpenCL/vendors %attr(751,root,root) %dir /etc/certs %dir /etc/cron.d %dir /etc/default %dir /etc/fonts %dir /etc/fonts/conf.d %dir /etc/logrotate.d %dir /etc/modprobe.d %dir /etc/modules-load.d %dir /etc/pki %dir /etc/pki/CA %dir /etc/pki/tls %attr(751,root,root) %dir /etc/security %dir /etc/skel %dir /etc/sysconfig %dir /etc/sysctl.d %dir /etc/tmpwatch %dir /etc/xdg %dir /etc/xdg/autostart %dir /etc/xdg/colors %dir /etc/xdg/menus %dir /etc/xdg/menus/applications-merged %dir /etc/NetworkManager %dir /etc/NetworkManager/dispatcher.d %dir /home/users %dir /home/services %dir /initrd %dir /lib/firmware %dir /lib/security # for library packages or other software with optional udev support not to pull udev %dir /lib/udev %dir /lib/udev/hwdb.d %dir /lib/udev/rules.d %dir /selinux %dir /usr/include/X11 %dir /usr/include/security %dir /usr/lib/ConsoleKit %dir /usr/lib/ConsoleKit/run-session.d %dir /usr/lib/browser-plugins %dir /usr/lib/cgi-bin %dir /usr/lib/cmake %dir /usr/lib/initrd %dir /usr/lib/mozilla %dir /usr/lib/mozilla/extensions %dir /usr/lib/pkcs11 %dir /usr/lib/pkgconfig %dir /usr/share/appdata %dir /usr/share/augeas %dir /usr/share/augeas/lenses %dir /usr/share/augeas/lenses/tests %dir /usr/share/backgrounds %dir /usr/share/cmake %dir /usr/share/cmake/Modules %dir /usr/share/defaults %dir /usr/share/desktop-directories %dir /usr/share/factory %dir /usr/share/factory/etc %dir /usr/share/factory/etc/pam.d %dir /usr/share/fontconfig %dir /usr/share/fontconfig/conf.avail %dir /usr/share/gnome %dir /usr/share/gnome/help %dir /usr/share/mate %dir /usr/share/mate/help %dir /usr/share/metainfo %dir /usr/share/help %dir /usr/share/help/C %dir /usr/share/man/man[nl] %lang(pl) %dir /usr/share/man/pl/mann %dir /usr/share/pkgconfig %dir /usr/share/soundfonts %dir /usr/share/sounds %dir /usr/share/themes %dir /usr/share/themes/Default %dir /usr/share/thumbnailers %dir /usr/share/vala %dir /usr/share/vala/vapi %dir /usr/share/wallpapers %dir /usr/share/wayland-sessions %dir /usr/share/xdg-desktop-portal %dir /usr/share/xdg-desktop-portal/portals %dir /usr/share/xsessions %dir /usr/share/zsh %dir /usr/share/zsh/site-functions %dir /usr/src/examples %attr(700,root,root) %dir /var/lock/subsys %attr(751,root,root) %dir /var/log/archive %dir %{_aclocaldir} %dir %{_desktopdir} %dir %{_desktopdir}/docklets %dir %{_desktopdir}/screensavers %dir %{_iconsdir} %dir %{_pixmapsdir} %{_fontsdir} %dir %{_idldir} %dir %{_privsepdir} %if %{with lib64} %dir /lib64/security %dir /usr/lib64/browser-plugins %dir /usr/lib64/cmake %dir /usr/lib64/initrd %dir /usr/lib64/mozilla %dir /usr/lib64/mozilla/extensions %dir /usr/lib64/pkcs11 %dir /usr/lib64/pkgconfig %endif # debuginfo %dir /usr/lib/debug /usr/lib/debug/* %dir /usr/src/debug