c-toxcore/c-toxcore.spec
Eric Schirra bf603aea71 Accepting request 954317 from home:ecsos:messenger:tox
- Update to 0.2.15
  * Bug Fixes
    - Reduce logging verbosity even more. @iphydf (#1984)
    - Reduce logging verbosity in TCP server. @iphydf (#1980)
- Update to 0.2.14
  * Features
    - Add WASM build for toxcore and websocket bootstrap node. @iphydf (#1950)
    - Add programs for creating savedata & bootstrap keys @nurupo (#1818)
    - Add automatic fuzz testing for c-toxcore @sudden6 (#1720)
  * Performance improvements
    - Make the key cracker a bit faster @sudden6 (#1622)
  * Bug Fixes
    - potential freeing of an immutable static buffer @nurupo (#1948)
    - Fix bootstrap on emscripten/wasm. @iphydf (#1945)
    - unintentional integer down-casts @JFreegman (#1928)
    - corruption in key files, making it unable to load when node starts. @Tha14 (#1923)
    - group av memory leak @JFreegman (#1926)
    - vbuffer overwrite in bootstrap config @JFreegman (#1917)
    - Fix toxav_basic_test buffer overflow. @iphydf (#1879)
    - don't count filetransfer as sending until accepted @sudden6 (#1878)
    - Fix some uninitialised memory errors found by valgrind. @iphydf (#1877)
    - a double-unlocking mutex in toxav @nurupo (#1832)
    - use correct sample size in toxav_basic_test @sudden6 (#1845)
    - possible unintended negative loop bound @JFreegman (#1836)
    - Fix file permission issue with toxchat/bootstrap-node Docker container @nurupo (#1765)
    - off-by-one error caused by integer division without proper cast @JFreegman (#1754)
    - Fixed uninitialised value copy. @iphydf (#1751)
  * Documentation
    - Add doxygen configuration and netlify publishing. @iphydf (#1974)
  * Maintenance (Grunt tasks)
    - Make the last few remaining top level comments doxygen style. @iphydf (#1972)
    - Sync all comments between header and source files. @iphydf (#1971)
    - Make run-infer script use docker. @iphydf (#1958)
    - Properly copy Node_format using serialized format @JFreegman (#1955)
    - Disable some cimple warnings for now. @iphydf (#1956)
    - use latest toktok-stack msan version @JFreegman (#1943)
    - Use latest instead of versioned toktok-stack image. @iphydf (#1940)
    - Rename bazel-release to -opt and -debug to -dbg. @iphydf (#1939)
    - Don't run sonar scan on pull requests. @iphydf (#1922)
    - Add a Bazel Buildifier CI job @robinlinden (#1933)
    - Add cpplint to the CI. @iphydf (#1914)
    - Run sonar scan on pull requests. @iphydf (#1918)
    - Add a make_single_file script, used for CI. @iphydf (#1916)
    - Expose public API headers as files in bazel. @iphydf (#1909)
    - Mark unsafe code as testonly. @iphydf (#1905)
    - Add mypy Python type check. @iphydf (#1884)
    - Add sonar-scan analysis on pushes. @iphydf (#1883)
    - Run static analysers in multiple variants. @iphydf (#1880)
    - Ignore some failures in bazel-tsan. @iphydf (#1876)
    - Add asan/tsan bazel builds. @iphydf (#1875)
    - Run tokstyle with 3 cores. @iphydf (#1866)
    - Enable layering check in all c-toxcore build files. @iphydf (#1873)
    - Enable compiler layering check. @iphydf (#1871)
    - Disable the OpenMP cracker in bazel for now. @iphydf (#1870)
    - Retry asan/tsan tests a few more times. @iphydf (#1867)
    - Get all* autotests working with MSVC @robinlinden (#1857)
    - Remove all references to Travis CI. @iphydf (#1862)
    - Add a GH Actions code coverage job @robinlinden (#1850)
    - Remove old travis docker scripts. @iphydf (#1840)
    - Add bazel-debug build. @iphydf (#1837)
    - Add "tcc" and "compcert" compiler targets. @iphydf (#1830)
    - Add macOS build. @iphydf (#1820)
    - Login to dockerhub before trying to push to dockerhub. @iphydf (#1813)
    - Only push versioned docker image on tag builds. @iphydf (#1812)
    - Add bootstrap daemon docker image build. @iphydf (#1811)
    - Remove apidsl comment from tox.h. @iphydf (#1810)
    - Don't run CI on master branch pushes. @iphydf (#1807)
    - merge friend_connections from NGC fork @JFreegman (#1798)
    - Fix up a few source code comment and style issues. @iphydf (#1801)
    - Move cmake-freebsd-stage2 back into the toxcore repo. @iphydf (#1794)
    - Add FreeBSD build to CI. @iphydf (#1793)
    - Add cross compilation CI targets. @iphydf (#1792)
    - Update toktok-stack version. @iphydf (#1779)
    - Tie down the use of doxygen comments. @iphydf (#1778)
    - Remove config.h. @iphydf (#1774)
    - merge tcp_connection changes from new groupchats fork @JFreegman (#1769)
    - Fix gen-file.sh: it wasn't globbing properly. @iphydf (#1773)
    - Add .cc files to the static analysis. @iphydf (#1772)
    - merge DHT changes from new groupchats fork @JFreegman (#1768)
    - Use docker for the autotools ci build. @iphydf (#1766)
    - Add autotools build; exempt crypto_pwhash from tokstyle. @iphydf (#1762)
    - Use an incrementing version number for coverity scans. @iphydf (#1752)
    - Add missing sudo to coverity apt-get calls. @iphydf (#1738)
    - Add clang-tidy review github workflow. @iphydf (#1746)
    - Minor cleanups of warnings given by cppcheck. @iphydf (#1743)
    - Add workflow for running coverity scan. @iphydf (#1736)
    - Add logger to onion and onion announce objects @JFreegman (#1734)
  * Maintenance (Code cleanup)
    - Ensure we limit the system headers included in .h files. @iphydf (#1968)
    - Don't pass the whole DHT object to lan discovery. @iphydf (#1964)
    - make functions take const pointer to IP_Port wherever possible @JFreegman (#1954)
    - Properly copy Node_format using serialized format @JFreegman (#1955)
    - Add some toxav bounds/sanity checks @JFreegman (#1942)
    - small refactor of DHT getnodes function @JFreegman (#1938)
    - remove brackets from ip_ntoa ipv6 formatting @JFreegman (#1937)
    - make some non-const pointers const @JFreegman (#1929)
    - unintentional integer down-casts @JFreegman (#1928)
    - refactor group audio packet data handling @JFreegman (#1920)
    - replace magic numbers with appropriately named constants @JFreegman (#1915)
    - Remove our only use of flexible array members in toxcore. @iphydf (#1910)
    - Remove uses of strcpy and sprintf. @iphydf (#1912)
    - Split large switch statement into functions. @iphydf (#1906)
    - Even more pointer-to-const parameters. @iphydf (#1903)
    - Remove old check Suite compat layer. @iphydf (#1900)
    - Make parameters pointers-to-const where possible. @iphydf (#1901)
    - Make Networking_Core pointer-to-const where possible. @iphydf (#1899)
    - Use pointer cast instead of memcpy in qsort callback. @iphydf (#1898)
    - Deduplicate a somewhat complex loop in DHT.c. @iphydf (#1894)
    - Merge crypto_core and crypto_core_mem. @iphydf (#1881)
    - Stop using strerror directly. @iphydf (#1889)
    - Remove our only use of sprintf. @iphydf (#1891)
    - refactor toxav_call_control @JFreegman (#1841)
    - replace all instances of atoi with strtol @JFreegman (#1874)
    - Remove extra parens around function arguments. @iphydf (#1865)
    - Don't use memcpy where assignment can be used. @iphydf (#1864)
    - Use calloc instead of malloc for struct allocations. @iphydf (#1861)
    - Fix calloc argument order. @iphydf (#1860)
    - Remove useless parentheses. @iphydf (#1853)
    - make struct typedefs have the same name as their struct @JFreegman (#1844)
    - remove dead code @JFreegman (#1835)
    - Reduce the scope of for-loop iterator variables. @iphydf (#1834)
    - Remove hardening code from DHT @zugz (#1673)
    - put breaks inside case braces @JFreegman (#1816)
    - Sync doc comments in a few more .c/.h files. @iphydf (#1802)
    - Move sodium.h include to front of network.c. @iphydf (#1797)
    - remove redundant (and incorrect) comments @JFreegman (#1790)
    - Remove apidsl; remove crypto_memcmp. @iphydf (#1786)
    - fix format-source @JFreegman (#1783)
    - Remove apidsl for everything except the public API. @iphydf (#1775)
    - remove unused function argument from set_tcp_connection_status() @JFreegman (#1776)
    - Remove crypto_pwhash import. @iphydf (#1777)
    - merge onion.c changes from new groupchats fork @JFreegman (#1770)
    - Don't include "config.h" unless needed. @iphydf (#1761)
    - address some unused return values @JFreegman (#1759)
    - use crypto_memzero to wipe secret keys when no longer in use @JFreegman (#1753)
    - Fix some clang-tidy warnings and make them errors. @iphydf (#1747)
    - Put fatal errors where API return values should be impossible @JFreegman (#1740)
    - Enforce for loop consistency. @iphydf (#1744)
    - Use static_assert instead of preprocessor #error. @iphydf (#1735)
    - Avoid endian-specific code in crypto_core. @iphydf (#1727)
    - Minor fixes in test code. @iphydf (#1733)
    - Refactor kill_nonused_tcp() @JFreegman (#1732)
    - Ensure that error codes are always initialised. @iphydf (#1729)
    - Fix last instance of -Wcast-align and enable the warning. @iphydf (#1730)
  * Maintenance (Refactoring)
    - use proper method for generating random numbers in a range @JFreegman (#1975)
    - Deduplicate a bunch of code in TCP client/server. @iphydf (#1897)
    - Extract some functions from the big run_auto_test function. @iphydf (#1819)
    - rename variable to clarify purpose @sudden6 (#1789)
    - Split toxav_iterate into audio and video part @sudden6 (#1307)
    - Clean up friend loading. @sudden6 (#1333)
    - Fix previous refactor @nurupo (#1737)
  * Maintenance (Tests)
    - separate run_auto_tests into a library (revival of #1505) @JFreegman (#1932)
    - refactor autotest live network bootstrapping @JFreegman (#1924)
    - Add two more bootstrap/TCP nodes to autotests @JFreegman (#1887)
    - add ability for autotests to use TCP connections @JFreegman (#1815)
    - Make ERROR logging fatal in tests. @iphydf (#1758)
    - Add a simple test for ip_ntoa. @iphydf (#1742)

OBS-URL: https://build.opensuse.org/request/show/954317
OBS-URL: https://build.opensuse.org/package/show/server:messaging/c-toxcore?expand=0&rev=36
2022-02-14 13:36:39 +00:00

172 lines
5.6 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.15
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
Source2: https://github.com/TokTok/c-toxcore/releases/download/v%{version}/%{name}-%{version}.tar.gz.asc
Source3: %{name}.keyring
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: libconfig-devel
BuildRequires: libopus-devel
BuildRequires: libsodium-devel
BuildRequires: libtool
BuildRequires: libvpx-devel
BuildRequires: pkgconfig
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
# 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
%{_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