2 # - do not use any other user/group than "root", as then we have to depend on "setup" package.
3 # see the gid_xxx macros and post scriptlet
4 # FIXME: verify shows changed groups of dirs changed this way
6 # disable rpm generated debug package, we handle it differently here
7 %define _enable_debug_packages 0
9 # avoid rpm 4.4.9 adding rm -rf buildroot
10 %define __spec_clean_body %{nil}
11 Summary: Common directories
12 Summary(pl.UTF-8): Wspólne katalogi
18 BuildRequires: automake
20 BuildRequires: rpm >= 4.4.9-56
21 Requires: FHS >= 2.3-15
22 Provides: browser-plugins(%{_target_base_arch})
24 Provides: browser-plugins(i386)
26 Provides: filesystem-debuginfo = %{version}-%{release}
27 Obsoletes: filesystem-debuginfo < 3.0-36
28 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
30 # Adapter: This file does not like to be adapterized!
32 %if "%{_lib}" == "lib64"
36 # directory for "privilege separation" chroot
37 %define _privsepdir /usr/share/empty
38 # directory for *.idl files (for CORBA implementations)
39 %define _idldir /usr/share/idl
41 # we have to use numeric uids/groups. see comment beginning of the spec
43 %define gid_crontab 117
46 This package contains common directories for packages that extend some
47 programs functionality, but don't require them themselves.
49 %description -l pl.UTF-8
50 Ten pakiet zawiera wspólne katalogi dla pakietów rozszerzających
51 funkcjonalność programów, ale nie wymagających ich.
57 rm -rf $RPM_BUILD_ROOT
60 $RPM_BUILD_ROOT/{initrd,selinux,run,sys} \
61 $RPM_BUILD_ROOT/etc/{NetworkManager/dispatcher.d,X11/xinit/{xinput,xinitrc}.d,certs,cron.d,default,init,logrotate.d,fonts/conf.d,modprobe.d,modules-load.d,pki/{CA,tls},security,skel,sysconfig,sysctl.d,tmpwatch,xdg/{autostart,menus}} \
62 $RPM_BUILD_ROOT/home/{users,services} \
63 $RPM_BUILD_ROOT/lib/{firmware,security,udev/{hwdb.d,rules.d}} \
64 $RPM_BUILD_ROOT/usr/include/{security,X11} \
65 $RPM_BUILD_ROOT/usr/lib/{ConsoleKit/run-session.d,browser-plugins,cgi-bin,cmake,mozilla/extensions,pkcs11,pkgconfig,initrd,tmpfiles.d} \
66 $RPM_BUILD_ROOT/usr/share/{appdata,augeas/lenses/tests,backgrounds,cmake/Modules,color/icc,fontconfig/conf.avail,gnome/help,mate/help,man/man{n,l},man/pl/mann,ppd,pkgconfig,soundfonts,sounds,themes/Default,thumbnailers,vala/vapi,wallpapers,wayland-sessions,xsessions} \
67 $RPM_BUILD_ROOT/usr/src/examples \
68 $RPM_BUILD_ROOT/var/lib/color/icc \
69 $RPM_BUILD_ROOT/var/lock/subsys \
70 $RPM_BUILD_ROOT/var/log/archive \
71 $RPM_BUILD_ROOT{%{_aclocaldir},%{_desktopdir}/{docklets,screensavers},%{_iconsdir},%{_pixmapsdir}} \
72 $RPM_BUILD_ROOT%{_fontsdir}/{{100,75}dpi,OTF,Speedo,Type1/{afm,pfm},TTF,cyrillic,local,misc} \
73 $RPM_BUILD_ROOT{%{_idldir},%{_privsepdir}} \
74 $RPM_BUILD_ROOT/boot/efi/EFI \
75 $RPM_BUILD_ROOT/etc/OpenCL/vendors
78 install -d $RPM_BUILD_ROOT/usr/share/help/C
80 for lang in ar as ast bg bn_IN ca cs da de el en_GB es eu fa fi fr gl gu he hi hr hu id it ja ko kn lt lv mk ml mr nb nds nl oc pa pl ps pt pt_BR ro ru sk sl sr sr@latin sv ta te th tr uk vi zh_CN zh_HK zh_TW; do
81 install -d $RPM_BUILD_ROOT/usr/share/help/${lang}
82 echo "%%lang($lang) %dir /usr/share/help/${lang}" >> %{name}.lang
87 $RPM_BUILD_ROOT/lib64/security \
88 $RPM_BUILD_ROOT/usr/lib64/{browser-plugins,cmake,initrd,mozilla/extensions,pkcs11,pkgconfig} \
89 $RPM_BUILD_ROOT/usr/lib/debug/lib64/security
93 $RPM_BUILD_ROOT/usr/lib/debug/%{_lib} \
94 $RPM_BUILD_ROOT/usr/lib/debug%{_libdir} \
95 $RPM_BUILD_ROOT/usr/lib/debug/{bin,sbin} \
96 $RPM_BUILD_ROOT/usr/lib/debug/usr/{bin,sbin} \
97 $RPM_BUILD_ROOT/usr/lib/debug/lib/security \
98 $RPM_BUILD_ROOT/usr/src/debug
100 # create this for %clean
101 tar -cf checkfiles.tar -C $RPM_BUILD_ROOT .
104 mkdir -p $RPM_BUILD_ROOT
105 tar -xf checkfiles.tar -C $RPM_BUILD_ROOT
108 check_filesystem_dirs() {
109 RPMFILE=%{_rpmdir}/%{name}-%{version}-%{release}.%{_target_cpu}.rpm
110 RPMFILE2=%{?with_debuginfo:%{_rpmdir}/%{name}-debuginfo-%{version}-%{release}.%{_target_cpu}.rpm}
112 # note: we must exclude from check all existing dirs belonging to FHS
113 find | sed -e 's|^\.||g' -e 's|^$||g' | LC_ALL=C sort | grep -v $TMPFILE | \
114 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
116 # find finds also '.', so use option -B for diff
117 rpm -qpl $RPMFILE $RPMFILE2 | grep -v '^/$' | LC_ALL=C sort | diff -uB - $TMPFILE || :
122 check_filesystem_dirs
125 -- this needs to be a dir
126 if posix.stat("/usr/include/X11", "type") == "link" then
128 os.rename("/usr/include/X11", "/usr/include/X11.rpmsave")
130 posix.mkdir("/usr/include")
131 posix.mkdir("/usr/include/X11")
132 oldpwd = posix.getcwd()
133 posix.chdir("/usr/include/X11.rpmsave")
134 for i,j in pairs(posix.glob("*")) do
135 os.rename(j, "/usr/include/X11/" .. j)
141 posix.chown("/var/log/archive", 0, %{gid_logs})
142 posix.chown("/etc/cron.d", 0, %{gid_crontab})
144 %files -f %{name}.lang
145 %defattr(644,root,root,755)
149 %dir /etc/X11/xinit/xinitrc.d
150 %dir /etc/X11/xinit/xinput.d
152 %dir /etc/OpenCL/vendors
153 %attr(751,root,root) %dir /etc/certs
158 %dir /etc/fonts/conf.d
159 %dir /etc/logrotate.d
161 %dir /etc/modules-load.d
165 %attr(751,root,root) %dir /etc/security
171 %dir /etc/xdg/autostart
173 %dir /etc/NetworkManager
174 %dir /etc/NetworkManager/dispatcher.d
180 # for library packages or other software with optional udev support not to pull udev
182 %dir /lib/udev/hwdb.d
183 %dir /lib/udev/rules.d
184 # tmpfs mounted by rc-scripts
185 %attr(1777,root,root) %dir /run
188 %dir /usr/include/X11
189 %dir /usr/include/security
190 %dir /usr/lib/ConsoleKit
191 %dir /usr/lib/ConsoleKit/run-session.d
192 %dir /usr/lib/browser-plugins
193 %dir /usr/lib/cgi-bin
196 %dir /usr/lib/mozilla
197 %dir /usr/lib/mozilla/extensions
199 %dir /usr/lib/pkgconfig
200 %dir /usr/lib/tmpfiles.d
201 %dir /usr/share/appdata
202 %dir /usr/share/augeas
203 %dir /usr/share/augeas/lenses
204 %dir /usr/share/augeas/lenses/tests
205 %dir /usr/share/backgrounds
206 %dir /usr/share/cmake
207 %dir /usr/share/cmake/Modules
208 %dir /usr/share/color
209 %dir /usr/share/color/icc
210 %dir /usr/share/fontconfig
211 %dir /usr/share/fontconfig/conf.avail
212 %dir /usr/share/gnome
213 %dir /usr/share/gnome/help
215 %dir /usr/share/mate/help
217 %dir /usr/share/help/C
218 %dir /usr/share/man/man[nl]
219 %lang(pl) %dir /usr/share/man/pl/mann
220 %dir /usr/share/pkgconfig
222 %dir /usr/share/soundfonts
223 %dir /usr/share/sounds
224 %dir /usr/share/themes
225 %dir /usr/share/themes/Default
226 %dir /usr/share/thumbnailers
228 %dir /usr/share/vala/vapi
229 %dir /usr/share/wallpapers
230 %dir /usr/share/wayland-sessions
231 %dir /usr/share/xsessions
232 %dir /usr/src/examples
234 %dir /var/lib/color/icc
235 %attr(700,root,root) %dir /var/lock/subsys
236 %attr(751,root,root) %dir /var/log/archive
239 %dir %{_desktopdir}/docklets
240 %dir %{_desktopdir}/screensavers
248 %dir /usr/lib64/browser-plugins
249 %dir /usr/lib64/cmake
250 %dir /usr/lib64/initrd
251 %dir /usr/lib64/mozilla
252 %dir /usr/lib64/mozilla/extensions
253 %dir /usr/lib64/pkcs11
254 %dir /usr/lib64/pkgconfig
257 %dir /libx32/security
258 %dir /usr/libx32/browser-plugins
259 %dir /usr/libx32/cmake
260 %dir /usr/libx32/initrd
261 %dir /usr/libx32/mozilla
262 %dir /usr/libx32/mozilla/extensions
263 %dir /usr/libx32/pkcs11
264 %dir /usr/libx32/pkgconfig