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