packaging: Bump to 2.40.1
[platform/upstream/glib.git] / packaging / glib2.spec
1 %define baseline 2.40
2 %define with_systemtap 0
3 %define keepstatic 1
4
5 Name:           glib2
6 Version:        2.40.1
7 Release:        0
8 # FIXME: find out if tapsets should really be in devel package or in main package
9 Summary:        General-Purpose Utility Library
10 License:        LGPL-2.1+
11 Group:          Base/Libraries
12 Url:            http://www.gtk.org/
13 Source:         http://download.gnome.org/sources/glib/%{baseline}/%{name}-%{version}.tar.xz
14 Source1:        glib2.sh
15 Source2:        glib2.csh
16 # Not upstream file. Only proposes upstream packages:
17 Source4:        glib2-upstream-gnome_defaults.conf
18 Source6:        macros.glib2
19 # Not depending on gtk-doc shortens bootstrap compilation path.
20 # Please update this file from the latest gtk-doc package:
21 Source7:        gtk-doc.m4
22 Source99:       baselibs.conf
23 Source1001:     glib2.manifest
24 BuildRequires:  automake
25 BuildRequires:  fdupes
26 BuildRequires:  gcc-c++
27 BuildRequires:  pkg-config
28 BuildRequires:  python
29 BuildRequires:  gettext-tools
30 # gdbus-codegen is run during the build, so we need python-xml
31 BuildRequires:  python-xml
32 %if 0%{?with_systemtap}
33 BuildRequires:  systemtap-sdt-devel
34 %endif
35 # Needed for gresource
36 BuildRequires:  pkgconfig(libelf) >= 0.8.12
37 BuildRequires:  pkgconfig(libffi)
38 BuildRequires:  pkgconfig(libpcre)
39 BuildRequires:  pkgconfig(zlib)
40
41 %description
42 GLib is a general-purpose utility library, which provides many useful
43 data types, macros, type conversions, string utilities, file utilities,
44 a main loop abstraction, and so on.
45
46 %package tools
47 Summary:        General-Purpose Utility Library -- Tools
48
49 %description tools
50 GLib is a general-purpose utility library, which provides many useful
51 data types, macros, type conversions, string utilities, file utilities,
52 a main loop abstraction, and so on.
53
54 %package -n gio-branding-upstream
55 Summary:        Upstream definitions of default settings and applications
56 Requires:       libgio = %{version}
57 Provides:       %{name}-branding-upstream = %{version}
58 Obsoletes:      %{name}-branding-upstream < %{version}
59 Provides:       gio-branding = %{version}
60 Conflicts:      otherproviders(gio-branding)
61 Supplements:    packageand(libgio:branding-upstream)
62 BuildArch:      noarch
63 #BRAND: The /etc/gnome_defaults.conf allows to define arbitrary
64 #BRAND: applications as preferred defaults.
65 #BRAND: A /usr/share/glib-2.0/schemas/$NAME.gschema.override file can
66 #BRAND: be used to override the default value for GSettings keys. See
67 #BRAND: README.Gsettings-overrides for more details. The branding
68 #BRAND: package should then have proper Requires for features changed
69 #BRAND: with such an override file.
70 # NOTE: gnome_defaults is not an upstream feature, but a SuSE
71 # enhancement, but to conform branding conventions, the package is named
72 # as gio-branding-upstream.
73
74 %description -n gio-branding-upstream
75 This package provides upstream defaults for settings stored with
76 GSettings and applications used by the MIME system.
77
78 %package devel
79 #'
80 Requires:       %{name} = %{version}
81 Requires:       glibc-devel
82 Requires:       pkg-config
83 # Now require the subpackages too
84 Requires:       glib2-tools = %{version}
85 Requires:       libgio = %{version}
86 Requires:       libglib = %{version}
87 Requires:       libgmodule = %{version}
88 Requires:       libgobject = %{version}
89 Requires:       libgthread = %{version}
90 # Required by gdbus-codegen
91 Requires:       python-xml
92 Provides:       glib2-doc = 2.19.6
93 Obsoletes:      glib2-doc < 2.19.6
94 Summary:        General-Purpose Utility Library -- Development Files
95
96 %description devel
97 GLib is a general-purpose utility library, which provides many useful
98 data types, macros, type conversions, string utilities, file utilities,
99 a main loop abstraction, and so on.
100
101 This package contains the development files for GLib.
102
103 %package devel-static
104 Requires:       %{name}-devel = %{version}
105 Summary:        General-Purpose Utility Library -- Static Libraries
106
107 %description devel-static
108 GLib is a general-purpose utility library, which provides many useful
109 data types, macros, type conversions, string utilities, file utilities,
110 a main loop abstraction, and so on.
111
112 This package contains static versions of the GLib libraries.
113
114 %package -n libglib
115 Summary:        General-Purpose Utility Library
116 Provides:       %{name} = %{version}
117 Obsoletes:      %{name} < %{version}
118
119 %description -n libglib
120 GLib is a general-purpose utility library, which provides many useful
121 data types, macros, type conversions, string utilities, file utilities,
122 a main loop abstraction, and so on.
123
124 %package -n libgmodule
125 Summary:        General-Purpose Utility Library -- Library for Modules
126
127 %description -n libgmodule
128 GLib is a general-purpose utility library, which provides many useful
129 data types, macros, type conversions, string utilities, file utilities,
130 a main loop abstraction, and so on.
131
132 The libgmodule library provides a portable way to dynamically load
133 object files (commonly known as 'plug-ins').
134
135 %package -n libgio
136 Summary:        General-Purpose Utility Library -- Library for VFS
137 Requires:       gio-branding = %{version}
138 # bnc#555605: shared-mime-info is required by libgio to properly detect mime types.
139 Requires:       shared-mime-info
140 # bnc#678518: libgio interacts with others by means of dbus-launch
141 #Requires:       dbus-1-x11
142 Provides:       gio = %{version}
143
144 %description -n libgio
145 GLib is a general-purpose utility library, which provides many useful
146 data types, macros, type conversions, string utilities, file utilities,
147 a main loop abstraction, and so on.
148
149 GIO provides a modern, easy-to-use VFS API.
150
151
152 %package -n libgthread
153 Summary:        General-Purpose Utility Library -- Library for Threads
154
155 %description -n libgthread
156 GLib is a general-purpose utility library, which provides many useful
157 data types, macros, type conversions, string utilities, file utilities,
158 a main loop abstraction, and so on.
159
160 The libgthread library provides a portable way to write multi-threaded
161 software.
162
163 %package -n libgobject
164 Summary:        General-Purpose Utility Library -- Object-Oriented Framework for C
165
166 %description -n libgobject
167 GLib is a general-purpose utility library, which provides many useful
168 data types, macros, type conversions, string utilities, file utilities,
169 a main loop abstraction, and so on.
170
171 The GObject library provides an object-oriented framework for C.
172
173 %prep
174 %setup -q -n %{name}-%{version}
175 cp %{SOURCE1001} .
176 cp -a %{S:1} %{S:2} .
177 cp -a %{S:4} gnome_defaults.conf
178 if ! test -f %{_datadir}/aclocal/gtk-doc.m4 ; then
179     cp -a %{S:7} m4macros/
180 fi
181
182 %build
183 NOCONFIGURE=1 ./autogen.sh
184 %configure \
185     --enable-static \
186 %if 0%{?with_systemtap}
187     --enable-systemtap \
188 %endif
189     --with-pcre=system
190
191 %{__make} %{?_smp_mflags} V=1
192
193
194 %install
195 %make_install
196 %find_lang glib20 %{?no_lang_C}
197
198 mkdir -p %{buildroot}%{_sysconfdir}/profile.d
199 install -D -m0644 glib2.sh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.sh
200 install -D -m0644 glib2.csh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.csh
201 install -D -m0644 gnome_defaults.conf %{buildroot}%{_sysconfdir}/gnome_defaults.conf
202 # default apps magic
203 mkdir -p %{buildroot}%{_localstatedir}/cache/gio-2.0 %{buildroot}%{_datadir}/applications
204 touch %{buildroot}%{_localstatedir}/cache/gio-2.0/gnome-defaults.list
205 touch %{buildroot}%{_localstatedir}/cache/gio-2.0/xfce-defaults.list
206 touch %{buildroot}%{_localstatedir}/cache/gio-2.0/lxde-defaults.list
207 ln -s %{_localstatedir}/cache/gio-2.0/gnome-defaults.list %{buildroot}%{_datadir}/applications/defaults.list
208 # gio-querymodules magic
209 %if "%{_lib}" == "lib64"
210 mv %{buildroot}%{_bindir}/gio-querymodules %{buildroot}%{_bindir}/gio-querymodules-64
211 %endif
212 touch %{buildroot}%{_libdir}/gio/modules/giomodule.cache
213 # gsettings magic
214 touch %{buildroot}%{_datadir}/glib-2.0/schemas/gschemas.compiled
215 # remove files we don't care about
216 find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print
217 # Install rpm macros
218 mkdir -p %{buildroot}%{_sysconfdir}/rpm
219 cp %{S:6} %{buildroot}%{_sysconfdir}/rpm
220 %fdupes %{buildroot}
221
222
223 %post -n libglib -p /sbin/ldconfig
224
225 %post -n libgobject -p /sbin/ldconfig
226
227 %post -n libgthread -p /sbin/ldconfig
228
229 %post -n libgio -p /sbin/ldconfig
230
231 %post -n libgmodule -p /sbin/ldconfig
232
233 %postun -n libglib -p /sbin/ldconfig
234
235 %postun -n libgobject -p /sbin/ldconfig
236
237 %postun -n libgthread -p /sbin/ldconfig
238
239 %postun -n libgio -p /sbin/ldconfig
240
241 %postun -n libgmodule -p /sbin/ldconfig
242
243
244 %files tools
245 %manifest %{name}.manifest
246 %defattr(-,root,root)
247 %dir %{_datadir}/bash-completion
248 %dir %{_datadir}/bash-completion/completions
249 %{_datadir}/bash-completion/completions/gresource
250 %{_datadir}/bash-completion/completions/gsettings
251 %{_bindir}/gdbus
252 %{_bindir}/gio-querymodules*
253 %{_bindir}/glib-compile-schemas
254 %{_bindir}/gresource
255 %{_bindir}/gsettings
256 %{_bindir}/gapplication
257 # We put those files here, but they don't really belong here. They just don't
258 # have a better home... The zzz-glib2 scripts could arguably be in
259 # libglib but that would break the shared library policy.
260 %{_sysconfdir}/profile.d/zzz-glib2.*
261
262 %files -n gio-branding-upstream
263 %manifest %{name}.manifest
264 %defattr(-,root,root)
265 %config (noreplace) %{_sysconfdir}/gnome_defaults.conf
266
267 %files -n libglib
268 %manifest %{name}.manifest
269 %defattr(-, root, root)
270 %license COPYING
271 %{_libdir}/libglib*.so.*
272
273 %files -n libgmodule
274 %manifest %{name}.manifest
275 %defattr(-, root, root)
276 %{_libdir}/libgmodule*.so.*
277
278 %files -n libgobject
279 %manifest %{name}.manifest
280 %defattr(-, root, root)
281 %{_libdir}/libgobject*.so.*
282
283 %files -n libgthread
284 %manifest %{name}.manifest
285 %defattr(-, root, root)
286 %{_libdir}/libgthread*.so.*
287
288 %files -n libgio
289 %manifest %{name}.manifest
290 %defattr(-, root, root)
291 %{_libdir}/libgio*.so.*
292 %dir %{_libdir}/gio
293 %dir %{_libdir}/gio/modules
294 %ghost %{_libdir}/gio/modules/giomodule.cache
295 %dir %{_datadir}/glib-2.0/
296 %dir %{_datadir}/glib-2.0/schemas/
297 %ghost %{_datadir}/glib-2.0/schemas/gschemas.compiled
298 %{_datadir}/applications/defaults.list
299 %dir %{_localstatedir}/cache/gio-2.0
300 %ghost %{_localstatedir}/cache/gio-2.0/gnome-defaults.list
301 %ghost %{_localstatedir}/cache/gio-2.0/xfce-defaults.list
302 %ghost %{_localstatedir}/cache/gio-2.0/lxde-defaults.list
303
304
305 %lang_package -f glib20
306
307
308 %files devel
309 %manifest %{name}.manifest
310 %defattr(-,root,root)
311
312 %{_bindir}/gdbus-codegen
313 %{_datadir}/bash-completion/completions/*
314 %_datadir/glib-2.0/codegen
315
316 %{_bindir}/glib-compile-resources
317 %{_bindir}/glib-genmarshal
318 %{_bindir}/glib-gettextize
319 %{_bindir}/glib-mkenums
320 %{_bindir}/gobject-query
321 %{_bindir}/gtester
322 %{_bindir}/gtester-report
323 %dir %{_datadir}/aclocal
324 %{_datadir}/aclocal/glib-2.0.m4
325 %{_datadir}/aclocal/glib-gettext.m4
326 %{_datadir}/aclocal/gsettings.m4
327 %dir %{_datadir}/glib-2.0/
328 %{_datadir}/glib-2.0/gdb/
329 %{_datadir}/glib-2.0/gettext/
330 %{_datadir}/glib-2.0/schemas/gschema.dtd
331 %{_includedir}/glib-2.0
332 %{_includedir}/gio-unix-2.0
333 %{_libdir}/lib*.so
334 %dir %{_libdir}/glib-2.0/
335 %{_libdir}/glib-2.0/include/
336 %{_libdir}/pkgconfig/*.pc
337 %{_datadir}/gdb/auto-load/%{_libdir}/*-gdb.py
338 %if 0%{?with_systemtap}
339 %{_datadir}/systemtap/tapset/*.stp
340 %endif
341 %{_sysconfdir}/rpm/macros.glib2
342 # Own these directories to not depend on gdb
343 %dir %{_datadir}/gdb
344 %dir %{_datadir}/gdb/auto-load
345 %dir %{_datadir}/gdb/auto-load%{_prefix}
346 %dir %{_datadir}/gdb/auto-load%{_libdir}
347
348 %files devel-static
349 %manifest %{name}.manifest
350 %defattr(-,root,root)
351 %{_libdir}/lib*.a
352
353 %changelog