File: ucommon.spec.in

package info (click to toggle)
ucommon 7.0.0-16
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 4,736 kB
  • sloc: cpp: 45,905; sh: 11,645; ansic: 698; makefile: 177
file content (164 lines) | stat: -rw-r--r-- 4,962 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#
# spec file for package ucommon
#
# Copyright (c) 2015 Cherokees of Idaho.
# Copyright (c) 2008-2014 David Sugar, Tycho Softworks.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

%define libname	libucommon8
%if %{_target_cpu} == "x86_64"
%define	build_docs	1
%else
%define	build_docs	0
%endif
Name:           ucommon
Version:        @VERSION@
Release:        1
Summary:        Portable C++ runtime for threads and sockets
License:        LGPL-3.0+
Group:          Productivity/Other
Url:            http://www.gnu.org/software/commoncpp
Source:         %{name}-%{version}.tar.gz
BuildRequires:  cmake
BuildRequires:  doxygen
BuildRequires:  gcc-c++
BuildRequires:  graphviz-gd
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(openssl)
Requires:       %{libname}%{_isa} = %{version}-%{release}
# historically we used a -bin for ucommon applications...
Obsoletes:      %{name}-bin < %{version}-%{release}
Provides:       %{name}-bin = %{version}-%{release}
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
GNU uCommon C++ is a lightweight library to facilitate using C++ design
patterns even for very deeply embedded applications, such as for systems using
uClibc along with POSIX threading support. For this reason, uCommon disables
language features that consume memory or introduce runtime overhead. uCommon
introduces some design patterns from Objective-C, such as reference counted
objects, memory pools, and smart pointers.  GNU uCommon introduces some new
concepts for handling of thread locking and synchronization.

%package -n %{libname}
Summary:        GNU ucommon runtime library
Group:          System/Libraries

%description -n %{libname}
GNU uCommon C++ is a lightweight library to facilitate using C++ design
patterns even for very deeply embedded applications, such as for systems using
uClibc along with POSIX threading support. For this reason, uCommon disables
language features that consume memory or introduce runtime overhead. uCommon
introduces some design patterns from Objective-C, such as reference counted
objects, memory pools, and smart pointers.  GNU uCommon introduces some new
concepts for handling of thread locking and synchronization.

%package devel
Summary:        Headers for building ucommon applications
Group:          Development/Libraries/C and C++
Requires:       %{libname}%{_isa} = %{version}-%{release}
Requires:       gcc-c++
Requires:       libopenssl-devel%{_isa}
Requires:       pkgconfig

%description devel
This package provides header and support files needed for building
applications that use the uCommon library and frameworks.

%if %{build_docs}

%package doc
Summary:        Generated class documentation for ucommon
Group:          Documentation/HTML
BuildArch:      noarch

%description doc
Generated class documentation for GNU uCommon library from header files,
html browsable.
%endif

%prep
%setup -q

%build
%cmake \
    -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_sysconfdir} \
    -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=%{_localstatedir}

make %{?_smp_mflags}
%if	%{build_docs}
rm -rf doc/html
make doc %{?_smp_mflags}
%endif

%install
%cmake_install
chmod 0755 %{buildroot}%{_bindir}/ucommon-config
chmod 0755 %{buildroot}%{_bindir}/commoncpp-config

%files -n %{libname}
%defattr(-,root,root,-)
%{_libdir}/libucommon.so.*
%{_libdir}/libusecure.so.*
%{_libdir}/libcommoncpp.so.*

%files
%defattr(-,root,root,-)
%doc AUTHORS README COPYING COPYING.LESSER COPYRIGHT NEWS SUPPORT ChangeLog
%{_bindir}/args
%{_bindir}/car
%{_bindir}/keywait
%{_bindir}/scrub-files
%{_bindir}/mdsum
%{_bindir}/sockaddr
%{_bindir}/zerofill
%{_bindir}/pdetach
%{_bindir}/urlout
%{_mandir}/man1/args.*
%{_mandir}/man1/car.*
%{_mandir}/man1/scrub-files.*
%{_mandir}/man1/mdsum.*
%{_mandir}/man1/sockaddr.*
%{_mandir}/man1/zerofill.*
%{_mandir}/man1/keywait.*
%{_mandir}/man1/pdetach.*
%{_mandir}/man1/urlout.*

%files devel
%defattr(-,root,root,-)
%{_libdir}/*.so
%{_includedir}/ucommon/
%{_includedir}/commoncpp/
%{_libdir}/pkgconfig/*.pc
%{_bindir}/ucommon-config
%{_bindir}/commoncpp-config
%{_mandir}/man1/ucommon-config.*
%{_mandir}/man1/commoncpp-config.*

%dir %{_datadir}/ucommon
%dir %{_datadir}/ucommon/cmake
%{_datadir}/ucommon/cmake/Cape*.cmake

%if %{build_docs}

%files doc
%defattr(-,root,root,-)
%doc build/doc/html/*
%endif

%post -n %{libname} -p /sbin/ldconfig

%postun -n %{libname} -p /sbin/ldconfig

%changelog