c-toxcore/c-toxcore.spec
Eric Schirra ecf5b3826f Accepting request 985135 from home:ecsos:messenger:tox
- Update to 0.2.18
  * Features
    - Merge group announce portion of new groupchats implementation @JFreegman (#2230)
    - Allow overriding mono_time in tox_new. @iphydf (#2206)
    - Store announcements @zugz (#2147)
    - Add support for custom random number generator. @iphydf (#2190)
    - Merge moderation portion of new groupchats codebase @JFreegman (#2169)
    - Add support for overriding network functions. @iphydf (#2177)
    - Merge onion_announce changes from new groupchats fork @JFreegman (#2164)
  * Performance improvements
    - Make time move a lot faster in fuzzing runs. @iphydf (#2193)
  * Bug Fixes
    - remove the assert because buffer can be larger than UINT16_MAX. @zoff99 (#2299)
    - Don't allow onion paths to be built from real friends. @iphydf (#2287)
    - Fix potential array out-of-bounds in DHT onion path building. @iphydf (#2282)
    - Allow onion paths to be built from more random nodes. @iphydf (#2283)
    - Really fix overrun added in e49a477 @zugz (#2273)
    - Add missing return on error @JFreegman (#2272)
    - Fixed leak and overrun added in e49a477 @zugz (#2266)
    - Format IP as string again in error log. @iphydf (#2257)
    - Fix a stack overflow triggered by small DHT packets. @iphydf (#2255)
    - Don't crash if RNG init failed. @iphydf (#2246)
    - fix typo in git command in INSTALL.md @zugz (#2225)
    - Correct calculation of packet sent time @zugz (#2195)
    - Eliminate memory leak in toxav. @iphydf (#2155)
    - Allow port range in DHT_bootstrap.c. @iphydf (#2143)
  * Documentation
    - Add information regarding git submodules, cmp to INSTALL.md @Tha14 (#2201)
    - Put all the tox public api into a fake "tox" namespace. @iphydf (#2153)
  * Maintenance (Grunt tasks)
    - Release 0.2.18 @robinlinden (#2300)
    - Downgrade C++ version to 17 @JFreegman (#2275)
    - Upgrade to C++20 in CMake build. @iphydf (#2263)
    - Add initial ESP32 docker build. @iphydf (#2243)
    - Add MISRA-2012 check using cppcheck's misra addon. @iphydf (#2251)
    - Support producing shared libraries on Windows @robinlinden (#2204)
    - Add dependabot config. @iphydf (#2236)
    - Fix path to fuzzer binaries in clusterfuzz build. @iphydf (#2228)
    - Add uint8_t version of bin_pack for numbers. @iphydf (#2223)
    - Clone submodules in clusterfuzzlite Dockerfile. @iphydf (#2210)
    - Remove valgrind build. @iphydf (#2208)
    - Add third_party to toxcore-sources docker image. @iphydf (#2189)
    - Use "master" as the branch in toktok-fuzzer. @iphydf (#2173)
    - Enable memory sanitizer build. @iphydf (#2163)
    - Update the Appveyor build to VS2019 to work around conan issues @robinlinden (#2159)
    - Be even more explicit about integer range bounds. @iphydf (#2145)
    - Add testing/Dockerfile to the CI build. @iphydf (#2146)
  * Maintenance (Code cleanup)
    - remove unused field last_seen from Onion_Friend @zugz (#2297)
    - Avoid goto in msi.c. @iphydf (#2281)
    - Replace a series of if statements with a switch. @iphydf (#2233)
    - remove populate_path_nodes_tcp @zugz (#2250)
    - Use static_assert instead of assert where possible. @iphydf (#2242)
    - Make *_free and kill_* functions nullable. @iphydf (#2238)
    - Remove layers in the cmake build. @iphydf (#2229)
    - Add Network object parameter for addr_resolve. @iphydf (#2217)
    - Remove unused random_testing program. @iphydf (#2213)
    - Remove all uses of TOX_*_MAX_SIZE macros. @iphydf (#2214)
    - Add include for assert.h for the fuzzing build. @iphydf (#2224)
    - Move definitions of tox_private.h functions to tox_private.c. @iphydf (#2211)
    - Expand CONST_FUNCTION and remove the macro. @iphydf (#2212)
    - Mark Mono_Time const where possible. @iphydf (#2199)
    - Avoid name clash between struct field and function. @iphydf (#2202)
    - Add more null checks in tox_new. @iphydf (#2200)
    - Make addr_resolve a private function. @iphydf (#2188)
    - Use _Static_assert in gcc/clang. @iphydf (#2186)
    - improve CMakeLists.txt structure @sudden6 (#2101)
    - Expose struct Tox to internal code. @iphydf (#2158)
    - Reduce scope of array-typed variables where possible. @iphydf (#2167)
    - Reduce scope of variables as requested by cimple. @iphydf (#2166)
    - Avoid memset on structs. @iphydf (#2149)
    - Split the huge TCP client packet handler. @iphydf (#2157)
    - Sync doc comments between .h and .c files. @iphydf (#2156)
    - Move all the group.h structs into group.c. @iphydf (#2150)
    - Minor cleanups in TCP_connection.c. @iphydf (#2144)
    - Count re-adding an existing bootstrap node as success. @iphydf (#2142)
    - Disable LAN discovery in TCP-only mode. @iphydf (#2141)
    - Add assertion for decrypted data length. @iphydf (#2140)
  * Maintenance (Dependencies)
    - Use upstream cmp directly instead of our fork. @iphydf (#2240)
  * Maintenance (Refactoring)
    - Move crypto utilities from util to crypto_core. @iphydf (#2284)
    - Avoid static_cast in Fuzz_System functions. @iphydf (#2277)
    - Protect array unpacking against invalid lengths. @iphydf (#2261)
    - Rename announce functions into their own namespace. @iphydf (#2258)
    - Use a struct for the ip_ntoa buffer. @iphydf (#2248)
    - Allow NULL logger; make it no-op in NDEBUG. @iphydf (#2244)
    - Rename bin_pack/unpack functions the same as cmp funcs. @iphydf (#2219)
    - Use cmp instead of msgpack-c for events packing. @iphydf (#2175)
  * Maintenance (Tests)
    - Improve test hermeticity by using local TCP relay. @iphydf (#2280)
    - Add a Null_System used in toxsave_harness. @iphydf (#2289)
    - enable additional sanitizers for fuzzing @sudden6 (#2288)
    - Enable fuzzing for TCP. @iphydf (#2279)
    - Don't abort fuzz test when tox_new fails. @iphydf (#2285)
    - Improve error messages in toxav_basic_test. @iphydf (#2270)
    - Add more functionality to the bootstrap fuzz harness. @iphydf (#2234)
    - Improve stability of forwarding_test. @iphydf (#2249)
    - Add fuzzer support functions for internal toxcore objects. @iphydf (#2232)
    - Add DHT and tox_events fuzz tests to the cmake build. @iphydf (#2187)
    - Remove save_load_test from autotools build. @iphydf (#2196)
    - Enable more tests for msan. @iphydf (#2183)
    - Add some support functions to make writing fuzzers easier. @iphydf (#2184)
    - Improve stability of tox_many_tcp_test. @iphydf (#2182)
    - try to save the fuzzed save file again @sudden6 (#2176)
    - Add fuzzer tests to the bazel build. @iphydf (#2170)
    - Improve the stability of the save_load test @robinlinden (#2160)
    - Speed up toxav_many_test by using fake mono_time. @iphydf (#2154)
- Changes from 0.2.17
  * Performance improvements
    - Refactor onion_client.c do_friends() to reduce network traffic @JFreegman (#2078)
    - fix issue with friend finding taking too long after disconnects. @JFreegman (#2092)
  * Bug Fixes
    - Report failure to DHT bootstrap back to the client. @iphydf (#2104)
    - Null function pointer dereference. @iphydf (#2094)
    - out-of-memory condition by corrupted save file @sudden6 (#2084)
    - toxsave memory leak while loading groups @sudden6 (#2064)
  * Documentation
    - Clean up doxygen comments to be more doxygen-like. @iphydf (#2136)
  * Maintenance (Grunt tasks)
    - Enable a bunch more warnings in GCC builds. @iphydf (#2122)
    - remove cpufeatures.c @sudden6 (#2100)
    - remove DHT_test.c since it's unused @sudden6 (#2098)
    - Add a .clang-format that mostly agrees with astyle. @iphydf (#2075)
    - Make coverity scan a nightly job. @iphydf (#2074)
    - Simplify and speed up windows builds using docker image. @iphydf (#2072)
    - Fix build-args in win32/win64 docker build. @iphydf (#2073)
    - Add docker image builds for windows cross compiler. @iphydf (#2070)
  * Maintenance (Code cleanup)
    - Add explicit callback setters for MSI callbacks. @iphydf (#2134)
    - Split util.c out of the network library. @iphydf (#2131)
    - Remove redundant () around return expression. @iphydf (#2130)
    - Move test-only functions into tests. @iphydf (#2135)
    - Remove redundant Messenger and DHT tests. @iphydf (#2133)
    - Remove EAGAIN from the list of ignored errors. @iphydf (#2127)
    - Remove port from Broadcast_Info. @iphydf (#2126)
    - Don't reference local variables in macro bodies. @iphydf (#2125)
    - Remove some more implicit bool conversions. @iphydf (#2123)
    - Log at ERROR level when connect() fails. @iphydf (#2115)
    - Remove all boolean-int conversions. @iphydf (#2120)
    - Remove more boolean conversions (and a bugfix). @iphydf (#2116)
    - Comply with strict include ordering. @iphydf (#2117)
    - Avoid creating invalid enum values. @iphydf (#2114)
    - Remove superfluous parentheses on the rhs of assignments. @iphydf (#2113)
    - Change valid status of onion friend to bool. @iphydf (#2105)
    - Remove more implicit bool conversions. @iphydf (#2103)
    - Mark all local non-pointers as const where possible. @iphydf (#2102)
    - Reduce name shadowing; remove ptr-to-bool conversions. @iphydf (#2099)
    - Remove implicit conversions from uint32_t to bool. @iphydf (#2097)
    - Return boolean constants, not ints from bool functions. @iphydf (#2096)
    - Remove any disallowed casts. @iphydf (#2093)
    - Avoid casting function pointers. @iphydf (#2091)
    - Enable most cppcheck warnings as errors. @iphydf (#2086)
    - Remove all implicit bool conversions in if-conditions. @iphydf (#2088)
    - Remove unused execution trace library. @iphydf (#2079)
  * Maintenance (Refactoring)
    - Move tox_new_log to auto_test_support. @iphydf (#2090)
  * Maintenance (Tests)
    - Add unit test for create/handle request packets. @iphydf (#2128)
    - Add mallocfail and proxy test to our coverage runs. @iphydf (#2108)
    - Add test coverage docker build for local tests. @iphydf (#2106)
- Changes from 0.2.16
  * Features
    - Improve how we share TCP relays with friends @JFreegman (#2047)
    - add DHT queries to private API @JFreegman (#1935)
    - add bash-completion for tox-bootstrapd @nurupo (#2007)
    - Add unpacker functions for events structures. @iphydf (#1996)
    - Add binary packing functions for tox events. @iphydf (#1993)
    - Add async event handling (callbacks) code. @iphydf (#1952)
  * Performance improvements
    - Take advantage of fast networks for file transfers @zugz (#1668)
    - Reduce minimal encoding size of packed events. @iphydf (#2024)
  * Bug Fixes
    - properly deallocate frozen peers @sudden6 (#2058)
    - Fix return type of functions returning uint64_t. @iphydf (#2052)
    - file transfer bug introduced in commit 2073d02 @JFreegman (#2041)
    - remove bogus asserts in fuzzer harness @sudden6 (#2031)
    - syntax error introduced in 8bf3799 @sudden6 (#2028)
    - add continous fuzzing @sudden6 (#2027)
    - Coverty scan @nurupo (#2018)
    - shared toxcore autotools build failing @nurupo (#2015)
    - Conan build link failures @robinlinden (#2011)
  * Documentation
    - Add libmsgpack dependency in INSTALL.md @cryptogospod (#2016)
  * Maintenance (Grunt tasks)
    - Simplify and speed up nacl build using toxchat/nacl. @iphydf (#2069)
    - Add BUILD file for websockify. @iphydf (#2036)
    - fine tune fuzzing settings @sudden6 (#2035)
    - update the list of CMake options & Windows Docker build deps @nurupo (#2032)
    - expand fuzzing to toxsave @sudden6 (#2030)
    - Fix implicit declaration warning in fuzz build @robinlinden (#2026)
    - add continous fuzzing to our CI @sudden6 (#2025)
    - Set up an Android CI job @robinlinden (#1992)
    - Disable non-null attributes by default. @iphydf (#2021)
    - Silence clang compile warnings causing circle-ci/asan to fail @JFreegman (#2019)
    - Coverty scan @nurupo (#2018)
    - get skeletons out of the closet @nurupo (#2008)
    - shared toxcore autotools build failing @nurupo (#2015)
    - Remove duplicate source file in autotools build. @iphydf (#2010)
    - Add an undefined behaviour/integer sanitizer build. @iphydf (#2001)
    - Speed up cmake builds with UNITY_BUILD. @iphydf (#1999)
    - Add an easy way to run autotools and circleci builds locally. @iphydf (#1982)
    - Update readme header @robinlinden (#1979)
  * Maintenance (Code cleanup)
    - Enable tokstyle's -Wlarge-struct-params. @iphydf (#2053)
    - Avoid implicit bool conversions in logical operators. @iphydf (#2055)
    - Avoid implicit boolean and floating point conversions in decls. @iphydf (#2056)
    - Apply stronger type checks and fix errors. @iphydf (#2049)
    - Avoid implicit pointer-to-bool conversion in if in toxav. @iphydf (#2046)
    - Add some more error path logging to TCP server code. @iphydf (#2033)
    - Add wrapper library for msgpack pack functions @JFreegman (#2023)
    - Don't use VLAs for huge allocations. @iphydf (#2013)
    - Split tox_unpack into two smaller libs @JFreegman (#2022)
    - get skeletons out of the closet @nurupo (#2008)
    - Add more nonnull and nullable annotations. @iphydf (#2006)
    - Add nonnull annotations to function definitions. @iphydf (#2002)
    - Make LAN discovery thread-safe without data races. @iphydf (#1988)
    - Comply with new cimple callback rules. @iphydf (#1987)
    - Split msi callback array into 1 member per callback @robinlinden (#1985)
  * Maintenance (Refactoring)
    - Compare pointers in if conditions to nullptr. @iphydf (#2043)
    - Add a bit more logging; change WARNING to ERROR. @iphydf (#2039)
  * Maintenance (Tests)
    - Add a profiling script and Dockerfile. @iphydf (#2066)

OBS-URL: https://build.opensuse.org/request/show/985135
OBS-URL: https://build.opensuse.org/package/show/server:messaging/c-toxcore?expand=0&rev=37
2022-06-26 13:07:32 +00:00

180 lines
5.9 KiB
RPMSpec

#
# spec file for package c-toxcore
#
# Copyright (c) 2022 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#
# See also http://en.opensuse.org/openSUSE:Specfile_guidelines
%define _soversion 2
Name: c-toxcore
Version: 0.2.18
Release: 0
Summary: Secure decentralized instant messaging application
License: GPL-3.0-only
Group: Productivity/Networking/Instant Messenger
URL: https://tox.chat/
Source0: https://github.com/TokTok/c-toxcore/archive/v%{version}.tar.gz#./%{name}-%{version}.tar.gz
Source1: %{name}.tmpfiles.d
# Dont't find right key at this time. :(
#Source2: https://github.com/TokTok/c-toxcore/releases/download/v%%{version}/%%{name}-%%{version}.tar.gz.asc
Source3: %{name}.keyring
Source10: https://github.com/camgunz/cmp/archive/v20/cmp-v20.tar.gz
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: libconfig-devel
BuildRequires: libopus-devel
BuildRequires: libsodium-devel
BuildRequires: libtool
BuildRequires: libvpx-devel
BuildRequires: pkgconfig
BuildRequires: pkgconfig(msgpack)
BuildRequires: pkgconfig(systemd)
Requires(pre): shadow
%{?systemd_requires}
%description
Project Tox, also known as Tox, is a FOSS instant messaging
application aimed to replace Skype.
With the rise of government monitoring programs,
Tox provides an easy to use application that allows you to connect
with friends and family without anyone else listening in.
While other big-name services require you to pay for features,
Tox is totally free and comes without advertising
%package devel
Summary: Development files for %{name}
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
Requires: libtoxcore%{_soversion} = %{version}
%description devel
Development libraries and headers needed to build software using %{name}.
%package daemon
Summary: Bootstrap-daemon for toxcore
Group: Productivity/Networking/Instant Messenger
%description daemon
Bootstrap-daemon to dispose hashtable for toxcore.
%package -n libtoxcore%{_soversion}
Summary: Core library for toxcore
Group: System/Libraries
%description -n libtoxcore%{_soversion}
This are the Core library for toxcore.
%prep
%setup -q
# install submodules
pushd third_party/cmp
tar xvzf %{SOURCE10} --strip 1
popd
# change location of bootstrap bin
sed -ri 's:%{_prefix}/local/bin/tox-bootstrapd:%{_bindir}/tox-bootstrapd:g' other/bootstrap_daemon/tox-bootstrapd.service
# change user and of bootstrapd
sed -ri 's:User=tox-bootstrapd:User=tox:g' other/bootstrap_daemon/tox-bootstrapd.service
sed -ri 's:Group=tox-bootstrapd:Group=toxcmd:g' other/bootstrap_daemon/tox-bootstrapd.service
# change location of bootstrap kyes
sed -ri 's:%{_localstatedir}/lib/tox-bootstrapd/keys:%{_sysconfdir}/tox/bootstrapd/keys:g' other/bootstrap_daemon/tox-bootstrapd.conf
%build
pushd build
cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DBUILD_TOXAV=ON \
-DMUST_BUILD_TOXAV=ON \
-DBOOTSTRAP_DAEMON=ON \
-DDHT_BOOTSTRAP=ON \
-DENABLE_STATIC=OFF \
..
make %{?_smp_mflags}
popd
%install
make install -C build PREFIX=%_prefix DESTDIR=%buildroot
# Install dir /var/run/graylog2-server
install -d -m 0755 %{buildroot}%{_prefix}/lib/tmpfiles.d/
install -m 0644 %{SOURCE1} %{buildroot}%{_prefix}/lib/tmpfiles.d/tox-bootstrapd.conf
# Install dir /var/lib/tox-bootstrapd
install -d -m 0755 %{buildroot}%{_localstatedir}/lib/tox-bootstrapd/
# Install dir /etc/tox/bootstrapd/keys
install -d -m 0700 %{buildroot}%{_sysconfdir}/tox/bootstrapd/keys
# Install dir /etc and bootstrap-config
mkdir -p %{buildroot}/%{_sysconfdir}
install -D -m 0640 other/bootstrap_daemon/tox-bootstrapd.conf %{buildroot}%{_sysconfdir}/tox/bootstrapd/tox-bootstrapd.conf
# Install init-scripts
mkdir -p %{buildroot}/%{_sbindir}
install -D -m 0644 other/bootstrap_daemon/tox-bootstrapd.service %{buildroot}%{_unitdir}/tox-bootstrapd.service
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rctox-bootstrapd
%pre daemon
%service_add_pre tox-bootstrapd.service
# create tox-bootstrapd group
if ! getent group toxcmd >/dev/null; then
groupadd -r toxcmd
fi
# create tox-bootstrapd user
if ! getent passwd tox >/dev/null; then
useradd -r -g toxcmd -d %{_localstatedir}/lib/tox-bootstrapd \
-s /sbin/nologin -c "Tox Bootstrap" tox
fi
%post daemon
%service_add_post tox-bootstrapd.service
systemd-tmpfiles --create %{_prefix}/lib/tmpfiles.d/tox-bootstrapd.conf
%post -n libtoxcore%{_soversion} -p /sbin/ldconfig
%preun daemon
%service_del_preun tox-bootstrapd.service
%postun daemon
%service_del_postun tox-bootstrapd.service
%postun -n libtoxcore%{_soversion} -p /sbin/ldconfig
%files devel
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%dir %{_includedir}/tox
%{_includedir}/tox/*
%files
%license LICENSE
%doc README.md DONATORS CHANGELOG.md
%files daemon
%dir %{_sysconfdir}/tox
%dir %{_sysconfdir}/tox/bootstrapd
%config(noreplace) %{_sysconfdir}/tox/bootstrapd/tox-bootstrapd.conf
%{_datadir}/bash-completion/completions/tox-bootstrapd
%{_bindir}/DHT_bootstrap
%{_bindir}/tox-bootstrapd
%{_unitdir}/tox-bootstrapd.service
%{_tmpfilesdir}/tox-bootstrapd.conf
%{_sbindir}/rctox-bootstrapd
%dir %{_localstatedir}/lib/tox-bootstrapd
%dir %attr(0770,tox,toxcmd) %{_sysconfdir}/tox/bootstrapd/keys
%files -n libtoxcore%{_soversion}
%{_libdir}/libtoxcore.so.%{_soversion}*
%changelog