]> TLD Linux GIT Repositories - packages/filesystem.git/blob - filesystem.spec
- from PLD
[packages/filesystem.git] / filesystem.spec
1 # NOTE
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
5 # disable rpm generated debug package, we handle it differently here
6 %define         _enable_debug_packages  0
7
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
12 Name:           filesystem
13 Version:        4.0
14 Release:        34
15 License:        GPL
16 Group:          Base
17 BuildRequires:  automake
18 BuildRequires:  mktemp
19 BuildRequires:  rpm >= 4.4.9-56
20 Requires:       FHS >= 2.3-15
21 Provides:       browser-plugins(%{_target_base_arch})
22 %ifarch %{x8664}
23 Provides:       browser-plugins(i386)
24 %endif
25 %ifarch ppc64
26 Provides:       browser-plugins(ppc)
27 %endif
28 %ifarch s390x
29 Provides:       browser-plugins(s390)
30 %endif
31 %ifarch sparc64
32 Provides:       browser-plugins(sparc)
33 %endif
34 Provides:       filesystem-debuginfo = %{version}-%{release}
35 Obsoletes:      filesystem-debuginfo < 3.0-36
36 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
37
38 # Adapter: This file does not like to be adapterized!
39
40 %if "%{_lib}" == "lib64"
41 %define         with_lib64      1
42 %else
43 %define         with_lib64      0
44 %endif
45 %if "%{_lib}" == "libx32"
46 %define         with_libx32     1
47 %else
48 %ifarch %{x8664}
49 # x32 as additional ABI
50 %define         with_libx32     1
51 %endif
52 %endif
53
54 # directory for "privilege separation" chroot
55 %define         _privsepdir     /usr/share/empty
56 # directory for *.idl files (for CORBA implementations)
57 %define         _idldir         /usr/share/idl
58
59 # we have to use numeric uids/groups. see comment beginning of the spec
60 %define         gid_logs        124
61 %define         gid_crontab     117
62
63 %description
64 This package contains common directories for packages that extend some
65 programs functionality, but don't require them themselves.
66
67 %description -l pl.UTF-8
68 Ten pakiet zawiera wspólne katalogi dla pakietów rozszerzających
69 funkcjonalność programów, ale nie wymagających ich.
70
71 %prep
72 %setup -qcT
73
74 %install
75 rm -rf $RPM_BUILD_ROOT
76
77 install -d \
78         $RPM_BUILD_ROOT/{initrd,selinux,run,sys} \
79         $RPM_BUILD_ROOT/etc/{NetworkManager/dispatcher.d,X11/xinit/{xinput,xinitrc}.d,certs,cron.d,default,init,logrotate.d,modprobe.d,pki/{CA,tls},security,sysconfig,tmpwatch,xdg/{autostart,menus}} \
80         $RPM_BUILD_ROOT/home/{users,services} \
81         $RPM_BUILD_ROOT/lib/{firmware,security,udev/rules.d,systemd/system} \
82         $RPM_BUILD_ROOT/usr/include/{security,X11} \
83         $RPM_BUILD_ROOT/usr/lib/{ConsoleKit/run-session.d,browser-plugins,cgi-bin,cmake,mozilla/extensions,pkcs11,pkgconfig,initrd,tmpfiles.d} \
84         $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} \
85         $RPM_BUILD_ROOT/usr/src/examples \
86         $RPM_BUILD_ROOT/var/lib/color/icc \
87         $RPM_BUILD_ROOT/var/lock/subsys \
88         $RPM_BUILD_ROOT/var/log/archive \
89         $RPM_BUILD_ROOT{%{_aclocaldir},%{_desktopdir}/{docklets,screensavers},%{_iconsdir},%{_pixmapsdir}} \
90         $RPM_BUILD_ROOT%{_fontsdir}/{{100,75}dpi,OTF,Speedo,Type1/{afm,pfm},TTF,cyrillic,local,misc} \
91         $RPM_BUILD_ROOT{%{_idldir},%{_privsepdir}} \
92         $RPM_BUILD_ROOT/boot/efi \
93         $RPM_BUILD_ROOT/etc/OpenCL/vendors
94
95 > %{name}.lang
96 install -d $RPM_BUILD_ROOT/usr/share/help/C
97
98 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
99         install -d $RPM_BUILD_ROOT/usr/share/help/${lang}
100         echo "%%lang($lang) %dir /usr/share/help/${lang}" >> %{name}.lang
101 done
102
103 %if %{with lib64}
104 install -d \
105         $RPM_BUILD_ROOT/lib64/security \
106         $RPM_BUILD_ROOT/usr/lib64/{browser-plugins,cmake,initrd,mozilla/extensions,pkcs11,pkgconfig} \
107         $RPM_BUILD_ROOT/usr/lib/debug/lib64/security
108 %endif
109 %if %{with libx32}
110 install -d \
111         $RPM_BUILD_ROOT/libx32/security \
112         $RPM_BUILD_ROOT/usr/libx32/{browser-plugins,cmake,initrd,mozilla/extensions,pkcs11,pkgconfig} \
113         $RPM_BUILD_ROOT/usr/lib/debug/libx32/security
114 %endif
115
116 %if "%{pld_release}" == "ac"
117 rmdir $RPM_BUILD_ROOT/usr/include/X11
118 # X11
119 install -d $RPM_BUILD_ROOT/usr/X11R6/share
120 for manp in man{1,2,3,4,5,6,7,8} ; do
121         install -d $RPM_BUILD_ROOT/usr/X11R6/man/$manp
122         for mloc in it ko pl; do
123                 install -d $RPM_BUILD_ROOT/usr/X11R6/man/$mloc/$manp
124         done
125 done
126 install -d $RPM_BUILD_ROOT/usr/share/wm-properties
127 %endif
128
129 install -d \
130         $RPM_BUILD_ROOT/usr/lib/debug/%{_lib} \
131         $RPM_BUILD_ROOT/usr/lib/debug%{_libdir} \
132         $RPM_BUILD_ROOT/usr/lib/debug/{bin,sbin} \
133         $RPM_BUILD_ROOT/usr/lib/debug/usr/{bin,sbin} \
134         $RPM_BUILD_ROOT/usr/lib/debug/lib/security \
135         $RPM_BUILD_ROOT/usr/src/debug
136
137 # create this for %clean
138 tar -cf checkfiles.tar -C $RPM_BUILD_ROOT .
139
140 %clean
141 mkdir -p $RPM_BUILD_ROOT
142 tar -xf checkfiles.tar -C $RPM_BUILD_ROOT
143 cd $RPM_BUILD_ROOT
144
145 check_filesystem_dirs() {
146         RPMFILE=%{_rpmdir}/%{name}-%{version}-%{release}.%{_target_cpu}.rpm
147         RPMFILE2=%{?with_debuginfo:%{_rpmdir}/%{name}-debuginfo-%{version}-%{release}.%{_target_cpu}.rpm}
148         TMPFILE=$(mktemp)
149         # note: we must exclude from check all existing dirs belonging to FHS
150         find | sed -e 's|^\.||g' -e 's|^$||g' | LC_ALL=C sort | grep -v $TMPFILE | \
151         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
152
153         # find finds also '.', so use option -B for diff
154         rpm -qpl $RPMFILE $RPMFILE2 | grep -v '^/$' | LC_ALL=C sort | diff -uB - $TMPFILE || :
155
156         rm -f $TMPFILE
157 }
158
159 check_filesystem_dirs
160
161 %if "%{pld_release}" != "ac"
162 %pretrans -p <lua>
163 -- this needs to be a dir
164 if posix.stat("/usr/include/X11", "type") == "link" then
165         posix.umask("0755");
166         os.rename("/usr/include/X11", "/usr/include/X11.rpmsave")
167         posix.mkdir("/usr")
168         posix.mkdir("/usr/include")
169         posix.mkdir("/usr/include/X11")
170         oldpwd = posix.getcwd()
171         posix.chdir("/usr/include/X11.rpmsave")
172         for i,j in pairs(posix.glob("*")) do
173                 os.rename(j, "/usr/include/X11/" .. j)
174         end
175         posix.chdir(oldpwd)
176 end
177 %endif
178
179 %post -p <lua>
180 posix.chown("/var/log/archive", 0, %{gid_logs})
181 posix.chown("/etc/cron.d", 0, %{gid_crontab})
182
183 %files -f %{name}.lang
184 %defattr(644,root,root,755)
185 %dir /boot/efi
186 %dir /etc/X11/xinit
187 %dir /etc/X11/xinit/xinitrc.d
188 %dir /etc/X11/xinit/xinput.d
189 %dir /etc/OpenCL
190 %dir /etc/OpenCL/vendors
191 %attr(751,root,root) %dir /etc/certs
192 %dir /etc/cron.d
193 %dir /etc/default
194 %dir /etc/init
195 %dir /etc/logrotate.d
196 %dir /etc/modprobe.d
197 %dir /etc/pki
198 %dir /etc/pki/CA
199 %dir /etc/pki/tls
200 %attr(751,root,root) %dir /etc/security
201 %dir /etc/sysconfig
202 %dir /etc/tmpwatch
203 %dir /etc/xdg
204 %dir /etc/xdg/autostart
205 %dir /etc/xdg/menus
206 %dir /etc/NetworkManager
207 %dir /etc/NetworkManager/dispatcher.d
208 %dir /home/users
209 %dir /home/services
210 %dir /initrd
211 %dir /lib/firmware
212 %dir /lib/security
213 %dir /lib/systemd
214 %dir /lib/systemd/system
215 %dir /lib/udev
216 %dir /lib/udev/rules.d
217 %dir /run
218 %dir /selinux
219 %dir /sys
220 %if "%{pld_release}" != "ac"
221 %dir /usr/include/X11
222 %endif
223 %dir /usr/include/security
224 %dir /usr/lib/ConsoleKit
225 %dir /usr/lib/ConsoleKit/run-session.d
226 %dir /usr/lib/browser-plugins
227 %dir /usr/lib/cgi-bin
228 %dir /usr/lib/cmake
229 %dir /usr/lib/initrd
230 %dir /usr/lib/mozilla
231 %dir /usr/lib/mozilla/extensions
232 %dir /usr/lib/pkcs11
233 %dir /usr/lib/pkgconfig
234 %dir /usr/lib/tmpfiles.d
235 %dir /usr/share/appdata
236 %dir /usr/share/augeas
237 %dir /usr/share/augeas/lenses
238 %dir /usr/share/augeas/lenses/tests
239 %dir /usr/share/backgrounds
240 %dir /usr/share/cmake
241 %dir /usr/share/cmake/Modules
242 %dir /usr/share/color
243 %dir /usr/share/color/icc
244 %dir /usr/share/gnome
245 %dir /usr/share/gnome/help
246 %dir /usr/share/mate
247 %dir /usr/share/mate/help
248 %dir /usr/share/help
249 %dir /usr/share/help/C
250 %dir /usr/share/man/man[nl]
251 %lang(pl) %dir /usr/share/man/pl/mann
252 %dir /usr/share/pkgconfig
253 %dir /usr/share/ppd
254 %dir /usr/share/soundfonts
255 %dir /usr/share/sounds
256 %dir /usr/share/themes
257 %dir /usr/share/themes/Default
258 %dir /usr/share/thumbnailers
259 %dir /usr/share/vala
260 %dir /usr/share/vala/vapi
261 %dir /usr/share/wallpapers
262 %dir /usr/share/wayland-sessions
263 %dir /usr/share/xsessions
264 %dir /usr/src/examples
265 %dir /var/lib/color
266 %dir /var/lib/color/icc
267 %attr(700,root,root) %dir /var/lock/subsys
268 %attr(751,root,root) %dir /var/log/archive
269 %dir %{_aclocaldir}
270 %dir %{_desktopdir}
271 %dir %{_desktopdir}/docklets
272 %dir %{_desktopdir}/screensavers
273 %dir %{_iconsdir}
274 %dir %{_pixmapsdir}
275 %{_fontsdir}
276 %dir %{_idldir}
277 %dir %{_privsepdir}
278 %if %{with lib64}
279 %dir /lib64/security
280 %dir /usr/lib64/browser-plugins
281 %dir /usr/lib64/cmake
282 %dir /usr/lib64/initrd
283 %dir /usr/lib64/mozilla
284 %dir /usr/lib64/mozilla/extensions
285 %dir /usr/lib64/pkcs11
286 %dir /usr/lib64/pkgconfig
287 %endif
288 %if %{with libx32}
289 %dir /libx32/security
290 %dir /usr/libx32/browser-plugins
291 %dir /usr/libx32/cmake
292 %dir /usr/libx32/initrd
293 %dir /usr/libx32/mozilla
294 %dir /usr/libx32/mozilla/extensions
295 %dir /usr/libx32/pkcs11
296 %dir /usr/libx32/pkgconfig
297 %endif
298
299 %if "%{pld_release}" == "ac"
300 %dir /usr/X11R6
301 %dir /usr/X11R6/man
302 /usr/X11R6/man/man*
303 %lang(it) /usr/X11R6/man/it
304 %lang(ko) /usr/X11R6/man/ko
305 %lang(pl) /usr/X11R6/man/pl
306 %dir /usr/X11R6/share
307
308 %dir /usr/share/wm-properties
309 %endif
310
311 # debuginfo
312 %dir /usr/lib/debug
313 /usr/lib/debug/*
314
315 %dir /usr/src/debug