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