]> git.pld-linux.org Git - packages/filesystem.git/blob - filesystem.spec
15ad3868abe312f033e42ed0b737ca213238c0f2
[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 # 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
44
45 # we have to use numeric uids/groups. see comment beginning of the spec
46 %define         gid_logs        124
47 %define         gid_crontab     117
48
49 %description
50 This package contains common directories for packages that extend some
51 programs functionality, but don't require them themselves.
52
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.
56
57 %prep
58 %setup -qcT
59
60 %install
61 rm -rf $RPM_BUILD_ROOT
62
63 install -d \
64         $RPM_BUILD_ROOT/{initrd,selinux,run,sys} \
65         $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}} \
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
80
81 > %{name}.lang
82 install -d $RPM_BUILD_ROOT/usr/share/help/C
83
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
87 done
88
89 %if "%{_lib}" == "lib64"
90 install -d \
91         $RPM_BUILD_ROOT/lib64/security \
92         $RPM_BUILD_ROOT/usr/lib64/{browser-plugins,cmake,initrd,mozilla/extensions,pkcs11,pkgconfig}
93 install -d \
94         $RPM_BUILD_ROOT/usr/lib/debug/lib64/security
95 %ifarch %{x8664}
96 install -d \
97         $RPM_BUILD_ROOT/libx32/security \
98         $RPM_BUILD_ROOT/usr/libx32/{browser-plugins,cmake,initrd,mozilla/extensions,pkcs11,pkgconfig}
99 install -d \
100         $RPM_BUILD_ROOT/usr/lib/debug/libx32/security
101 %endif
102 %endif
103 %if "%{_lib}" == "libx32"
104 install -d \
105         $RPM_BUILD_ROOT/libx32/security \
106         $RPM_BUILD_ROOT/usr/libx32/{browser-plugins,cmake,initrd,mozilla/extensions,pkcs11,pkgconfig}
107 install -d \
108         $RPM_BUILD_ROOT/usr/lib/debug/libx32/security
109 %endif
110
111 %if "%{pld_release}" == "ac"
112 rmdir $RPM_BUILD_ROOT/usr/include/X11
113 # X11
114 install -d $RPM_BUILD_ROOT/usr/X11R6/share
115 for manp in man{1,2,3,4,5,6,7,8} ; do
116         install -d $RPM_BUILD_ROOT/usr/X11R6/man/$manp
117         for mloc in it ko pl; do
118                 install -d $RPM_BUILD_ROOT/usr/X11R6/man/$mloc/$manp
119         done
120 done
121 install -d $RPM_BUILD_ROOT/usr/share/wm-properties
122 %endif
123
124 install -d \
125         $RPM_BUILD_ROOT/usr/lib/debug/%{_lib} \
126         $RPM_BUILD_ROOT/usr/lib/debug%{_libdir} \
127         $RPM_BUILD_ROOT/usr/lib/debug/{bin,sbin} \
128         $RPM_BUILD_ROOT/usr/lib/debug/usr/{bin,sbin} \
129         $RPM_BUILD_ROOT/usr/lib/debug/lib/security \
130         $RPM_BUILD_ROOT/usr/src/debug
131
132 # create this for %clean
133 tar -cf checkfiles.tar -C $RPM_BUILD_ROOT .
134
135 %clean
136 mkdir -p $RPM_BUILD_ROOT
137 tar -xf checkfiles.tar -C $RPM_BUILD_ROOT
138 cd $RPM_BUILD_ROOT
139
140 check_filesystem_dirs() {
141         RPMFILE=%{_rpmdir}/%{name}-%{version}-%{release}.%{_target_cpu}.rpm
142         RPMFILE2=%{?with_debuginfo:%{_rpmdir}/%{name}-debuginfo-%{version}-%{release}.%{_target_cpu}.rpm}
143         TMPFILE=$(mktemp)
144         # note: we must exclude from check all existing dirs belonging to FHS
145         find | sed -e 's|^\.||g' -e 's|^$||g' | LC_ALL=C sort | grep -v $TMPFILE | \
146         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
147
148         # find finds also '.', so use option -B for diff
149         rpm -qpl $RPMFILE $RPMFILE2 | grep -v '^/$' | LC_ALL=C sort | diff -uB - $TMPFILE || :
150
151         rm -f $TMPFILE
152 }
153
154 check_filesystem_dirs
155
156 %if "%{pld_release}" != "ac"
157 %pretrans -p <lua>
158 -- this needs to be a dir
159 if posix.stat("/usr/include/X11", "type") == "link" then
160         posix.umask("0755");
161         os.rename("/usr/include/X11", "/usr/include/X11.rpmsave")
162         posix.mkdir("/usr")
163         posix.mkdir("/usr/include")
164         posix.mkdir("/usr/include/X11")
165         oldpwd = posix.getcwd()
166         posix.chdir("/usr/include/X11.rpmsave")
167         for i,j in pairs(posix.glob("*")) do
168                 os.rename(j, "/usr/include/X11/" .. j)
169         end
170         posix.chdir(oldpwd)
171 end
172 %endif
173
174 %post -p <lua>
175 posix.chown("/var/log/archive", 0, %{gid_logs})
176 posix.chown("/etc/cron.d", 0, %{gid_crontab})
177
178 %files -f %{name}.lang
179 %defattr(644,root,root,755)
180 %dir /boot/efi
181 %dir /etc/X11/xinit
182 %dir /etc/X11/xinit/xinitrc.d
183 %dir /etc/X11/xinit/xinput.d
184 %dir /etc/OpenCL
185 %dir /etc/OpenCL/vendors
186 %attr(751,root,root) %dir /etc/certs
187 %dir /etc/cron.d
188 %dir /etc/default
189 %dir /etc/init
190 %dir /etc/logrotate.d
191 %dir /etc/modprobe.d
192 %dir /etc/pki
193 %dir /etc/pki/CA
194 %dir /etc/pki/tls
195 %attr(751,root,root) %dir /etc/security
196 %dir /etc/sysconfig
197 %dir /etc/tmpwatch
198 %dir /etc/xdg
199 %dir /etc/xdg/autostart
200 %dir /etc/xdg/menus
201 %dir /etc/NetworkManager
202 %dir /etc/NetworkManager/dispatcher.d
203 %dir /home/users
204 %dir /home/services
205 %dir /initrd
206 %dir /lib/firmware
207 %dir /lib/security
208 %dir /lib/systemd
209 %dir /lib/systemd/system
210 %dir /lib/udev
211 %dir /lib/udev/rules.d
212 %dir /run
213 %dir /selinux
214 %dir /sys
215 %if "%{pld_release}" != "ac"
216 %dir /usr/include/X11
217 %endif
218 %dir /usr/include/security
219 %dir /usr/lib/ConsoleKit
220 %dir /usr/lib/ConsoleKit/run-session.d
221 %dir /usr/lib/browser-plugins
222 %dir /usr/lib/cgi-bin
223 %dir /usr/lib/cmake
224 %dir /usr/lib/initrd
225 %dir /usr/lib/mozilla
226 %dir /usr/lib/mozilla/extensions
227 %dir /usr/lib/pkcs11
228 %dir /usr/lib/pkgconfig
229 %dir /usr/lib/tmpfiles.d
230 %dir /usr/share/appdata
231 %dir /usr/share/augeas
232 %dir /usr/share/augeas/lenses
233 %dir /usr/share/augeas/lenses/tests
234 %dir /usr/share/backgrounds
235 %dir /usr/share/cmake
236 %dir /usr/share/cmake/Modules
237 %dir /usr/share/color
238 %dir /usr/share/color/icc
239 %dir /usr/share/gnome
240 %dir /usr/share/gnome/help
241 %dir /usr/share/mate
242 %dir /usr/share/mate/help
243 %dir /usr/share/help
244 %dir /usr/share/help/C
245 %dir /usr/share/man/man[nl]
246 %lang(pl) %dir /usr/share/man/pl/mann
247 %dir /usr/share/pkgconfig
248 %dir /usr/share/ppd
249 %dir /usr/share/soundfonts
250 %dir /usr/share/sounds
251 %dir /usr/share/themes
252 %dir /usr/share/themes/Default
253 %dir /usr/share/thumbnailers
254 %dir /usr/share/vala
255 %dir /usr/share/vala/vapi
256 %dir /usr/share/wallpapers
257 %dir /usr/share/wayland-sessions
258 %dir /usr/share/xsessions
259 %dir /usr/src/examples
260 %dir /var/lib/color
261 %dir /var/lib/color/icc
262 %attr(700,root,root) %dir /var/lock/subsys
263 %attr(751,root,root) %dir /var/log/archive
264 %dir %{_aclocaldir}
265 %dir %{_desktopdir}
266 %dir %{_desktopdir}/docklets
267 %dir %{_desktopdir}/screensavers
268 %dir %{_iconsdir}
269 %dir %{_pixmapsdir}
270 %{_fontsdir}
271 %dir %{_idldir}
272 %dir %{_privsepdir}
273 %if "%{_lib}" == "lib64"
274 %dir /lib64/security
275 %dir /usr/lib64/browser-plugins
276 %dir /usr/lib64/cmake
277 %dir /usr/lib64/initrd
278 %dir /usr/lib64/mozilla
279 %dir /usr/lib64/mozilla/extensions
280 %dir /usr/lib64/pkcs11
281 %dir /usr/lib64/pkgconfig
282 %ifarch %{x8664}
283 %dir /libx32/security
284 %dir /usr/libx32/browser-plugins
285 %dir /usr/libx32/cmake
286 %dir /usr/libx32/initrd
287 %dir /usr/libx32/mozilla
288 %dir /usr/libx32/mozilla/extensions
289 %dir /usr/libx32/pkcs11
290 %dir /usr/libx32/pkgconfig
291 %endif
292 %endif
293 %if "%{_lib}" == "libx32"
294 %dir /libx32/security
295 %dir /usr/libx32/browser-plugins
296 %dir /usr/libx32/cmake
297 %dir /usr/libx32/initrd
298 %dir /usr/libx32/mozilla
299 %dir /usr/libx32/mozilla/extensions
300 %dir /usr/libx32/pkcs11
301 %dir /usr/libx32/pkgconfig
302 %endif
303
304 %if "%{pld_release}" == "ac"
305 %dir /usr/X11R6
306 %dir /usr/X11R6/man
307 /usr/X11R6/man/man*
308 %lang(it) /usr/X11R6/man/it
309 %lang(ko) /usr/X11R6/man/ko
310 %lang(pl) /usr/X11R6/man/pl
311 %dir /usr/X11R6/share
312
313 %dir /usr/share/wm-properties
314 %endif
315
316 # debuginfo
317 %dir /usr/lib/debug
318 /usr/lib/debug/*
319
320 %dir /usr/src/debug
This page took 0.109517 seconds and 2 git commands to generate.