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