add packaging
[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 %configure \
201     --enable-static \
202 %if 0%{?with_systemtap}
203     --enable-systemtap \
204 %endif
205     --with-pcre=system
206
207 %{__make} %{?_smp_mflags} V=1
208 %if 0%{?BUILD_FROM_VCS}
209 %{__make} ChangeLog
210 %endif
211
212 %check
213 # make check does not work on x86_64. See http://bugzilla.gnome.org/show_bug.cgi?id=554969
214 # %{__make} %{?jobs:-j%jobs} check
215
216 %install
217 %make_install
218 %find_lang %{_name}20 %{?no_lang_C}
219 mv %{_name}20.lang %{_name}2.lang
220 mkdir -p %{buildroot}%{_sysconfdir}/profile.d
221 install -D -m0644 glib2.sh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.sh
222 install -D -m0644 glib2.csh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.csh
223 install -D -m0644 gnome_defaults.conf %{buildroot}%{_sysconfdir}/gnome_defaults.conf
224 # default apps magic
225 mkdir -p %{buildroot}%{_localstatedir}/cache/gio-2.0 %{buildroot}%{_datadir}/applications
226 touch %{buildroot}%{_localstatedir}/cache/gio-2.0/gnome-defaults.list
227 touch %{buildroot}%{_localstatedir}/cache/gio-2.0/xfce-defaults.list
228 touch %{buildroot}%{_localstatedir}/cache/gio-2.0/lxde-defaults.list
229 ln -s %{_localstatedir}/cache/gio-2.0/gnome-defaults.list %{buildroot}%{_datadir}/applications/defaults.list
230 # gio-querymodules magic
231 %if "%{_lib}" == "lib64"
232 mv %{buildroot}%{_bindir}/gio-querymodules %{buildroot}%{_bindir}/gio-querymodules-64
233 %endif
234 touch %{buildroot}%{_libdir}/gio/modules/giomodule.cache
235 # gsettings magic
236 touch %{buildroot}%{_datadir}/glib-2.0/schemas/gschemas.compiled
237 # remove files we don't care about
238 find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print
239 # Install rpm macros
240 mkdir -p %{buildroot}%{_sysconfdir}/rpm
241 cp %{S:6} %{buildroot}%{_sysconfdir}/rpm
242 %fdupes %{buildroot}
243
244
245 %post -n libglib -p /sbin/ldconfig
246
247 %post -n libgobject -p /sbin/ldconfig
248
249 %post -n libgthread -p /sbin/ldconfig
250
251 %post -n libgio -p /sbin/ldconfig
252
253 %post -n libgmodule -p /sbin/ldconfig
254
255 %postun -n libglib -p /sbin/ldconfig
256
257 %postun -n libgobject -p /sbin/ldconfig
258
259 %postun -n libgthread -p /sbin/ldconfig
260
261 %postun -n libgio -p /sbin/ldconfig
262
263 %postun -n libgmodule -p /sbin/ldconfig
264
265
266 %files tools
267 %defattr(-,root,root)
268 %dir %{_datadir}/bash-completion
269 %dir %{_datadir}/bash-completion/completions
270 %{_datadir}/bash-completion/completions/gdbus
271 %{_datadir}/bash-completion/completions/gresource
272 %{_datadir}/bash-completion/completions/gsettings
273 %{_bindir}/gdbus
274 %{_bindir}/gio-querymodules*
275 %{_bindir}/glib-compile-schemas
276 %{_bindir}/gresource
277 %{_bindir}/gsettings
278 # We put those files here, but they don't really belong here. They just don't
279 # have a better home... The zzz-glib2 scripts could arguably be in
280 # libglib but that would break the shared library policy.
281 %{_sysconfdir}/profile.d/zzz-glib2.*
282
283 %files -n gio-branding-upstream
284 %defattr(-,root,root)
285 %config (noreplace) %{_sysconfdir}/gnome_defaults.conf
286
287 %files -n libglib
288 %defattr(-, root, root)
289 %doc COPYING
290 %{_libdir}/libglib*.so.*
291
292 %files -n libgmodule
293 %defattr(-, root, root)
294 %{_libdir}/libgmodule*.so.*
295
296 %files -n libgobject
297 %defattr(-, root, root)
298 %{_libdir}/libgobject*.so.*
299
300 %files -n libgthread
301 %defattr(-, root, root)
302 %{_libdir}/libgthread*.so.*
303
304 %files -n libgio
305 %defattr(-, root, root)
306 %{_libdir}/libgio*.so.*
307 %dir %{_libdir}/gio
308 %dir %{_libdir}/gio/modules
309 %ghost %{_libdir}/gio/modules/giomodule.cache
310 %dir %{_datadir}/glib-2.0/
311 %dir %{_datadir}/glib-2.0/schemas/
312 %ghost %{_datadir}/glib-2.0/schemas/gschemas.compiled
313 %{_datadir}/applications/defaults.list
314 %dir %{_localstatedir}/cache/gio-2.0
315 %ghost %{_localstatedir}/cache/gio-2.0/gnome-defaults.list
316 %ghost %{_localstatedir}/cache/gio-2.0/xfce-defaults.list
317 %ghost %{_localstatedir}/cache/gio-2.0/lxde-defaults.list
318
319
320 %lang_package
321
322 %docs_package
323
324 %files devel
325 %defattr(-,root,root)
326 %doc ChangeLog
327 %{_bindir}/gdbus-codegen
328 %{_bindir}/glib-compile-resources
329 %{_bindir}/glib-genmarshal
330 %{_bindir}/glib-gettextize
331 %{_bindir}/glib-mkenums
332 %{_bindir}/gobject-query
333 %{_bindir}/gtester
334 %{_bindir}/gtester-report
335 %dir %{_datadir}/aclocal
336 %{_datadir}/aclocal/glib-2.0.m4
337 %{_datadir}/aclocal/glib-gettext.m4
338 %{_datadir}/aclocal/gsettings.m4
339 %dir %{_datadir}/glib-2.0/
340 %{_datadir}/glib-2.0/gdb/
341 %{_datadir}/glib-2.0/gettext/
342 %{_datadir}/glib-2.0/schemas/gschema.dtd
343 %{_includedir}/glib-2.0
344 %{_includedir}/gio-unix-2.0
345 %{_libdir}/lib*.so
346 %dir %{_libdir}/glib-2.0/
347 %dir %{_libdir}/gdbus-2.0/
348 %{_libdir}/gdbus-2.0/codegen/
349 %{_libdir}/glib-2.0/include/
350 %{_libdir}/pkgconfig/*.pc
351 %{_datadir}/gtk-doc/html/gio
352 %{_datadir}/gtk-doc/html/glib
353 %{_datadir}/gtk-doc/html/gobject
354 %{_datadir}/gdb/auto-load/%{_libdir}/*-gdb.py
355 %if 0%{?with_systemtap}
356 %{_datadir}/systemtap/tapset/*.stp
357 %endif
358 %{_sysconfdir}/rpm/macros.glib2
359 # Own these directories to not depend on gtk-doc while building:
360 %dir %{_datadir}/gtk-doc
361 %dir %{_datadir}/gtk-doc/html
362 # Own these directories to not depend on gdb
363 %dir %{_datadir}/gdb
364 %dir %{_datadir}/gdb/auto-load
365 %dir %{_datadir}/gdb/auto-load%{_prefix}
366 %dir %{_datadir}/gdb/auto-load%{_libdir}
367
368 %files devel-static
369 %defattr(-,root,root)
370 %{_libdir}/lib*.a
371
372 %changelog