File: ucommon.spec

package info (click to toggle)
ucommon 7.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 3,068 kB
  • sloc: cpp: 45,917; ansic: 714; sh: 226; makefile: 173
file content (158 lines) | stat: -rw-r--r-- 4,715 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
#
# spec file for package ucommon
#
# Copyright (c) 2015-2020 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.

%define libname	libucommon8
%if %{_target_cpu} == "x86_64"
%define	build_docs	1
%else
%define	build_docs	0
%endif
Name:           ucommon
Version:        7.0.1
Release:        1
Summary:        Runtime library for portable C++ threading and sockets
License:        LGPL-3.0-or-later
Group:          Development/Library/C and C++
Url:            http://www.gnu.org/software/commoncpp
Source:         %{name}-%{version}.tar.gz
BuildRequires:  cmake
BuildRequires:  doxygen
BuildRequires:  gcc-c++
BuildRequires:  graphviz-gd
BuildRequires:  pkg-config
BuildRequires:  pkgconfig(openssl)
Requires:       %{libname} = %{version}-%{release}
# historically we used a -bin for ucommon applications...
Obsoletes:      %{name}-bin < %{version}-%{release}
Provides:       %{name}-bin = %{version}-%{release}

%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.

This subpackage contains a collection of command line tools that use
various aspects of the ucommon library. Some may be needed to prepare
files or for development of applications.

%package -n %{libname}
Summary:    GNU uCommon Runtime library for portable C++ threading and sockets
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. 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} = %{version}-%{release}
Requires:       pkgconfig(openssl)
Requires:       gcc-c++

%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 a+x %{buildroot}%{_bindir}/ucommon-config
chmod a+x %{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