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