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
5 # disable rpm generated debug package, we handle it differently here
6 %define _enable_debug_packages 0
8 # avoid rpm 4.4.9 adding rm -rf buildroot
9 %define __spec_clean_body %{nil}
10 Summary: Common directories
11 Summary(pl.UTF-8): Wspólne katalogi
17 BuildRequires: automake
19 BuildRequires: rpm >= 4.4.9-56
20 Requires: FHS >= 2.3-15
21 Provides: browser-plugins(%{_target_base_arch})
23 Provides: browser-plugins(i386)
26 Provides: browser-plugins(ppc)
29 Provides: browser-plugins(s390)
32 Provides: browser-plugins(sparc)
34 Provides: filesystem-debuginfo = %{version}-%{release}
35 Obsoletes: filesystem-debuginfo < 3.0-36
36 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
38 # Adapter: This file does not like to be adapterized!
40 # directory for "privilege separation" chroot
41 %define _privsepdir /usr/share/empty
42 # directory for *.idl files (for CORBA implementations)
43 %define _idldir /usr/share/idl
45 # we have to use numeric uids/groups. see comment beginning of the spec
47 %define gid_crontab 117
50 This package contains common directories for packages that extend some
51 programs functionality, but don't require them themselves.
53 %description -l pl.UTF-8
54 Ten pakiet zawiera wspólne katalogi dla pakietów rozszerzających
55 funkcjonalność programów, ale nie wymagających ich.
61 rm -rf $RPM_BUILD_ROOT
64 $RPM_BUILD_ROOT/{initrd,selinux,run,sys} \
65 $RPM_BUILD_ROOT/etc/{NetworkManager/dispatcher.d,X11/xinit/xinitrc.d,certs,cron.d,default,init,logrotate.d,modprobe.d,pki/{CA,tls},security,sysconfig,tmpwatch,xdg/{autostart,menus}} \
66 $RPM_BUILD_ROOT/home/{users,services} \
67 $RPM_BUILD_ROOT/lib/{firmware,security,udev/rules.d,systemd/system} \
68 $RPM_BUILD_ROOT/usr/include/{security,X11} \
69 $RPM_BUILD_ROOT/usr/lib/{ConsoleKit/run-session.d,browser-plugins,cgi-bin,cmake,mozilla/extensions,pkcs11,pkgconfig,initrd,tmpfiles.d} \
70 $RPM_BUILD_ROOT/usr/share/{appdata,augeas/lenses/tests,backgrounds,cmake/Modules,color/icc,gnome/help,mate/help,man/man{n,l},man/pl/mann,ppd,pkgconfig,soundfonts,sounds,themes/Default,thumbnailers,vala/vapi,wallpapers,wayland-sessions,xsessions} \
71 $RPM_BUILD_ROOT/usr/src/examples \
72 $RPM_BUILD_ROOT/var/lib/color/icc \
73 $RPM_BUILD_ROOT/var/lock/subsys \
74 $RPM_BUILD_ROOT/var/log/archive \
75 $RPM_BUILD_ROOT{%{_aclocaldir},%{_desktopdir}/{docklets,screensavers},%{_iconsdir},%{_pixmapsdir}} \
76 $RPM_BUILD_ROOT%{_fontsdir}/{{100,75}dpi,OTF,Speedo,Type1/{afm,pfm},TTF,cyrillic,local,misc} \
77 $RPM_BUILD_ROOT{%{_idldir},%{_privsepdir}} \
78 $RPM_BUILD_ROOT/boot/efi \
79 $RPM_BUILD_ROOT/etc/OpenCL/vendors
82 install -d $RPM_BUILD_ROOT/usr/share/help/C
84 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 sl sr sr@latin sv ta te th tr uk vi zh_CN zh_HK zh_TW; do
85 install -d $RPM_BUILD_ROOT/usr/share/help/${lang}
86 echo "%%lang($lang) %dir /usr/share/help/${lang}" >> %{name}.lang
89 %if "%{_lib}" == "lib64"
91 $RPM_BUILD_ROOT/lib64/security \
92 $RPM_BUILD_ROOT/usr/lib64/{browser-plugins,cmake,initrd,mozilla/extensions,pkcs11,pkgconfig}
95 %if "%{pld_release}" == "ac"
96 rmdir $RPM_BUILD_ROOT/usr/include/X11
98 install -d $RPM_BUILD_ROOT/usr/X11R6/share
99 for manp in man{1,2,3,4,5,6,7,8} ; do
100 install -d $RPM_BUILD_ROOT/usr/X11R6/man/$manp
101 for mloc in it ko pl; do
102 install -d $RPM_BUILD_ROOT/usr/X11R6/man/$mloc/$manp
105 install -d $RPM_BUILD_ROOT/usr/share/wm-properties
109 $RPM_BUILD_ROOT/usr/lib/debug/%{_lib} \
110 $RPM_BUILD_ROOT/usr/lib/debug%{_libdir} \
111 $RPM_BUILD_ROOT/usr/lib/debug/{bin,sbin} \
112 $RPM_BUILD_ROOT/usr/lib/debug/usr/{bin,sbin} \
113 $RPM_BUILD_ROOT/usr/lib/debug/lib/security \
114 $RPM_BUILD_ROOT/usr/src/debug
116 %if "%{_lib}" == "lib64"
118 $RPM_BUILD_ROOT/usr/lib/debug/lib64/security
121 # create this for %clean
122 tar -cf checkfiles.tar -C $RPM_BUILD_ROOT .
125 mkdir -p $RPM_BUILD_ROOT
126 tar -xf checkfiles.tar -C $RPM_BUILD_ROOT
129 check_filesystem_dirs() {
130 RPMFILE=%{_rpmdir}/%{name}-%{version}-%{release}.%{_target_cpu}.rpm
131 RPMFILE2=%{?with_debuginfo:%{_rpmdir}/%{name}-debuginfo-%{version}-%{release}.%{_target_cpu}.rpm}
133 # note: we must exclude from check all existing dirs belonging to FHS
134 find | sed -e 's|^\.||g' -e 's|^$||g' | LC_ALL=C sort | grep -v $TMPFILE | \
135 grep -E -v '^/(boot|etc|etc/X11|home|lib|lib64|usr|usr/include|usr/lib|usr/lib64|usr/share|usr/share/man|usr/share/man/pl|usr/src|var|var/lib|var/lock|var/log)$' > $TMPFILE
137 # find finds also '.', so use option -B for diff
138 rpm -qpl $RPMFILE $RPMFILE2 | grep -v '^/$' | LC_ALL=C sort | diff -uB - $TMPFILE || :
143 check_filesystem_dirs
145 %if "%{pld_release}" != "ac"
147 -- this needs to be a dir
148 if posix.stat("/usr/include/X11", "type") == "link" then
150 os.rename("/usr/include/X11", "/usr/include/X11.rpmsave")
152 posix.mkdir("/usr/include")
153 posix.mkdir("/usr/include/X11")
154 oldpwd = posix.getcwd()
155 posix.chdir("/usr/include/X11.rpmsave")
156 for i,j in pairs(posix.glob("*")) do
157 os.rename(j, "/usr/include/X11/" .. j)
164 posix.chown("/var/log/archive", 0, %{gid_logs})
165 posix.chown("/etc/cron.d", 0, %{gid_crontab})
167 %files -f %{name}.lang
168 %defattr(644,root,root,755)
171 %dir /etc/X11/xinit/xinitrc.d
173 %dir /etc/OpenCL/vendors
174 %attr(751,root,root) %dir /etc/certs
178 %dir /etc/logrotate.d
183 %attr(751,root,root) %dir /etc/security
187 %dir /etc/xdg/autostart
189 %dir /etc/NetworkManager
190 %dir /etc/NetworkManager/dispatcher.d
197 %dir /lib/systemd/system
199 %dir /lib/udev/rules.d
203 %if "%{pld_release}" != "ac"
204 %dir /usr/include/X11
206 %dir /usr/include/security
207 %dir /usr/lib/ConsoleKit
208 %dir /usr/lib/ConsoleKit/run-session.d
209 %dir /usr/lib/browser-plugins
210 %dir /usr/lib/cgi-bin
213 %dir /usr/lib/mozilla
214 %dir /usr/lib/mozilla/extensions
216 %dir /usr/lib/pkgconfig
217 %dir /usr/lib/tmpfiles.d
218 %dir /usr/share/appdata
219 %dir /usr/share/augeas
220 %dir /usr/share/augeas/lenses
221 %dir /usr/share/augeas/lenses/tests
222 %dir /usr/share/backgrounds
223 %dir /usr/share/cmake
224 %dir /usr/share/cmake/Modules
225 %dir /usr/share/color
226 %dir /usr/share/color/icc
227 %dir /usr/share/gnome
228 %dir /usr/share/gnome/help
230 %dir /usr/share/mate/help
232 %dir /usr/share/help/C
233 %dir /usr/share/man/man[nl]
234 %lang(pl) %dir /usr/share/man/pl/mann
235 %dir /usr/share/pkgconfig
237 %dir /usr/share/soundfonts
238 %dir /usr/share/sounds
239 %dir /usr/share/themes
240 %dir /usr/share/themes/Default
241 %dir /usr/share/thumbnailers
243 %dir /usr/share/vala/vapi
244 %dir /usr/share/wallpapers
245 %dir /usr/share/wayland-sessions
246 %dir /usr/share/xsessions
247 %dir /usr/src/examples
249 %dir /var/lib/color/icc
250 %attr(700,root,root) %dir /var/lock/subsys
251 %attr(751,root,root) %dir /var/log/archive
254 %dir %{_desktopdir}/docklets
255 %dir %{_desktopdir}/screensavers
261 %if "%{_lib}" == "lib64"
263 %dir /usr/lib64/browser-plugins
264 %dir /usr/lib64/cmake
265 %dir /usr/lib64/initrd
266 %dir /usr/lib64/mozilla
267 %dir /usr/lib64/mozilla/extensions
268 %dir /usr/lib64/pkcs11
269 %dir /usr/lib64/pkgconfig
272 %if "%{pld_release}" == "ac"
276 %lang(it) /usr/X11R6/man/it
277 %lang(ko) /usr/X11R6/man/ko
278 %lang(pl) /usr/X11R6/man/pl
279 %dir /usr/X11R6/share
281 %dir /usr/share/wm-properties