358feff
Summary:       A high-performance MySQL proxy
358feff
Name:          proxysql
Igor Raits 57a0551
Version:       2.4.8
d3cda05
Release:       4%{?dist}
881bda0
# Proxysql Google group for free community support: https://groups.google.com/g/proxysql
Igor Raits 57a0551
URL:           https://proxysql.com/
f91bee6
# GPL-3.0-or-later
f91bee6
# deps/jemalloc: BSD-2-Clause
f91bee6
# deps/mariadb-connector-c: LGPL-2.1-or-later
f91bee6
# deps/prometheus-cpp: MIT
f91bee6
# deps/re2: BSD-3-Clause
f91bee6
License:       GPL-3.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause AND BSD-2-Clause AND MIT
358feff
9af3351
BuildRequires: make, automake
9af3351
BuildRequires: cmake, gcc-c++
9af3351
BuildRequires: systemd-rpm-macros
9af3351
9af3351
# Required by proxysql code
9af3351
BuildRequires: libtool
9af3351
BuildRequires: pcre-devel
23dd3be
BuildRequires: zlib-devel
9af3351
BuildRequires: libev-devel
9af3351
BuildRequires: sqlite-devel
9af3351
BuildRequires: openssl-devel
9af3351
BuildRequires: libcurl-devel
9af3351
BuildRequires: libdaemon-devel
f91bee6
BuildRequires: libconfig-devel
f91bee6
BuildRequires: lz4-devel
f91bee6
BuildRequires: libuuid-devel
9af3351
9af3351
# Used by provided (scripts) tools
9af3351
BuildRequires: perl
f91bee6
BuildRequires: python3
9af3351
9af3351
# Specific dependency for Fedora/RHEL/Centos
fd78e68
BuildRequires: gnutls-devel
358feff
441e163
Suggests: mariadb, community-mysql
441e163
358feff
# Build in other architectures aside from x86 is not yet supported due to some
358feff
# use of assembly code, but is on the upstream roadmap to support them.
358feff
# https://github.com/sysown/proxysql/issues/977
ce8a914
ce8a914
# Update 8/2021
ce8a914
# Support for arm64 has been added.
ce8a914
ExcludeArch:   %{power64} s390x
358feff
a633007
Provides:      bundled(jemalloc) = 5.2.0
24a2dbf
Provides:      bundled(mariadb-connector-c) = 3.1.9
24a2dbf
Provides:      bundled(re2) = 20200706
f91bee6
Provides:      bundled(clickhouse-cpp) = 2.1.0
f91bee6
Provides:      bundled(prometheus-cpp) = 0.9.0
a633007
Provides:      bundled(cityhash) = 1.1.1
fd78e68
Provides:      bundled(libhttpserver) = 0.18.1
24a2dbf
Provides:      bundled(libmicrohttpd) = 0.9.68
a633007
0e75f2a
# There is inconsistency between name and URL of file and main unpacked source folder
Igor Raits 57a0551
Source0:       https://github.com/sysown/proxysql/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
9554405
# Manpage for binary is missing. Instead we provide it manually.
9554405
# Link for tracking current status in upstream:
9554405
# https://github.com/sysown/proxysql/issues/3564
f91bee6
Source1:       proxysql.1
358feff
24a2dbf
# The upstream code bundles multiple libraries: libconfig, libdaemon, sqlite3, re2,
24a2dbf
# mariadb-connector-c, pcre, clickhouse-cpp, prometheus-cpp, lz4, cityhash, microhttpd, curl
a633007
# ev, coredumper, libssl and jemalloc.
a633007
# This patch de-bundles 8 of these libraries: libconfig, libdaemon and sqlite3,
a633007
# libsl, pcre, curl, lz4, ev
358feff
# The remaining libraries are not de-bundled due to different reasons (mainly
358feff
# being patched, more info here: https://bugzilla.redhat.com/show_bug.cgi?id=1457929).
a633007
# Other remaining libraries are not maintained in Fedora (clickhouse-cpp,
24a2dbf
# cityhash, prometheus-cpp)
358feff
f91bee6
Patch0001: 0001-Unbundle-system-deps.patch
f91bee6
Patch0002: 0002-Enable-tcp_fastopen-in-bundled-libhttpserver.patch
f91bee6
Patch0003: 0003-Simplify-proxysql.service.patch
6d42ed8
358feff
%description
358feff
ProxySQL is a high performance, high availability, protocol aware proxy for
358feff
MySQL and forks (like Percona Server and MariaDB).
358feff
358feff
%prep
e46d112
%autosetup -p1
f91bee6
# Remove sources of debundled libraries
754bcd7
rm -r deps/{libssl,pcre,curl,lz4,libev,libconfig,libdaemon,sqlite3}
a633007
358feff
%build
f91bee6
export GIT_VERSION=%{version}
358feff
%global _configure :
a633007
%configure help
358feff
export CPPFLAGS=$CXXFLAGS
99c5773
%make_build
358feff
358feff
%install
9a31274
install -p -D -m 0755 src/proxysql %{buildroot}%{_bindir}/proxysql
9a31274
install -p -D -m 0640 etc/proxysql.cnf %{buildroot}%{_sysconfdir}/proxysql.cnf
9a31274
install -p -D -m 0755 tools/proxysql_galera_checker.sh %{buildroot}%{_datadir}/%{name}/tools/proxysql_galera_checker.sh
9a31274
install -p -D -m 0755 tools/proxysql_galera_writer.pl %{buildroot}%{_datadir}/%{name}/tools/proxysql_galera_writer.pl
f91bee6
install -p -D -m 0644 systemd/system/proxysql.service %{buildroot}%{_unitdir}/proxysql.service
f91bee6
install -p -D -m 0644 systemd/system/proxysql-initial.service %{buildroot}%{_unitdir}/proxysql-initial.service
9a31274
install -p -D -m 0644 README.md %{buildroot}%{_docdir}/proxysql/README.md
9a31274
install -p -D -m 0644 RUNNING.md %{buildroot}%{_docdir}/proxysql/RUNNING.md
9a31274
install -p -D -m 0644 FAQ.md %{buildroot}%{_docdir}/proxysql/FAQ.md
a633007
install -p -D -m 0644 doc/release_notes/*.md -t %{buildroot}%{_docdir}/proxysql
a633007
install -p -D -m 0644 doc/internal/*.txt -t %{buildroot}%{_docdir}/proxysql
f91bee6
install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_mandir}/man1/%{name}.1
9a31274
install -d -m 0755 %{buildroot}%{_sharedstatedir}/proxysql
358feff
358feff
%pre
358feff
/usr/sbin/groupadd -r proxysql >/dev/null 2>&1 || :
358feff
/usr/sbin/useradd  -g proxysql -r -d /var/lib/proxysql -s /sbin/nologin \
358feff
    -c "ProxySQL" proxysql >/dev/null 2>&1 || :
358feff
358feff
%post
358feff
%systemd_post proxysql.service
358feff
358feff
%preun
358feff
%systemd_preun proxysql.service
358feff
358feff
%postun
358feff
%systemd_postun_with_restart proxysql.service
358feff
358feff
%files
358feff
%license LICENSE
f91bee6
%{_bindir}/proxysql
f91bee6
%{_unitdir}/proxysql.service
f91bee6
%{_unitdir}/proxysql-initial.service
f91bee6
%{_datadir}/proxysql/
f91bee6
%{_docdir}/proxysql/
f91bee6
%{_mandir}/man1/proxysql.1*
f91bee6
%attr(-,proxysql,proxysql) %{_sharedstatedir}/proxysql/
f91bee6
%attr(-,proxysql,root) %config(noreplace) %{_sysconfdir}/proxysql.cnf
358feff
358feff
%changelog
d3cda05
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.8-4
d3cda05
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
d3cda05
aeb743b
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.8-3
aeb743b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
aeb743b
6d0e324
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.8-2
6d0e324
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
6d0e324
Igor Raits 57a0551
* Thu Feb 23 2023 Igor Raits <igor@gooddata.com> - 2.4.8-1
Igor Raits 57a0551
- Update to 2.4.8
Igor Raits 57a0551
1a43bd5
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-2
1a43bd5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
1a43bd5
f91bee6
* Fri Nov 25 2022 Igor Raits <igor@gooddata.com> - 2.4.4-1
f91bee6
- Update to 2.4.4
f91bee6
9b0a7b8
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.2-5
9b0a7b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
9b0a7b8
f91bee6
* Mon Feb 14 2022 Marek Kulik <mkulik@redhat.com> - 2.3.2-4
c8bdc92
- Fix FTBFS for gcc12 (Resolves: #2053629)
c8bdc92
63f91b4
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.2-3
63f91b4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
63f91b4
8194f50
* Fri Sep 24 2021 Marek Kulik <mkulik@redhat.com> - 2.3.2-1
8194f50
- Updated to ProxySQL 2.3.2
8194f50
93bd1cf
* Mon Sep 20 2021 Marek Kulik <mkulik@redhat.com> - 2.3.1-1
93bd1cf
- Updated to ProxySQL 2.3.1
93bd1cf
3d6094d
* Wed Sep 15 2021 Marek Kulik <mkulik@redhat.com> - 2.3.0-1
3d6094d
- Updated to ProxySQL 2.3.0
3d6094d
c35b776
* Wed Sep 15 2021 Marek Kulik <mkulik@redhat.com> - 2.2.2-1
c35b776
- Updated to ProxySQL 2.2.2
c35b776
0f1f159
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 2.2.1-2
0f1f159
- Rebuilt with OpenSSL 3.0.0
0f1f159
256e592
* Mon Sep 06 2021 Marek Kulik <mkulik@redhat.com> - 2.2.1-1
256e592
- Updated to ProxySQL 2.2.1
256e592
24a2dbf
* Tue Aug 10 2021 Marek Kulik <mkulik@redhat.com> - 2.2.0-1
24a2dbf
- Updated to ProxySQL 2.2.0
24a2dbf
- Add new bundled library (prometheus-cpp) - new dependencies
24a2dbf
- Fix gcc compatibility - missing headers
24a2dbf
- Rework Patch1 - move execution to patch macro
ce8a914
- Add arm rpm builds
24a2dbf
6d42ed8
* Mon Aug 09 2021 Marek Kulik <mkulik@redhat.com> - 2.0.13-7
6d42ed8
- Fix FTBFS due to cmake syntax change
6d42ed8
08083c3
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.13-6
08083c3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
08083c3
4d69772
* Wed Mar 31 2021 Jonathan Wakely <jwakely@redhat.com> - 2.0.13-5
4d69772
- Rebuilt for removed libstdc++ symbols (#1937698)
4d69772
23b025d
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.0.13-4
23b025d
- Rebuilt for updated systemd-rpm-macros
23b025d
  See https://pagure.io/fesco/issue/2583.
23b025d
cea0fbc
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.13-3
cea0fbc
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
cea0fbc
3700f30
* Fri Dec 04 2020 Jeff Law <law@redhat.com> - 2.0.13-2
3700f30
- Replace "swap" in mariadb library with my_swap to avoid conflict with C++
3700f30
  standard headers
3700f30
fd78e68
* Tue Aug 04 2020 Filip Januš <fjanus@redhat.com> - 2.0.13-1
fd78e68
- Rebase onto version 2.0.13
fd78e68
- Add new patch to port bundled libinjection to python 3
fd78e68
- Fix debundle patch, new bundled library (libhttpserver) - new dependencies
fd78e68
- Remove bundled google-coredumper
fd78e68
e9103b4
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-6
e9103b4
- Second attempt - Rebuilt for
e9103b4
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
e9103b4
d1248af
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-5
d1248af
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
d1248af
441e163
* Mon Mar 02 2020 Lukas Javorsky <ljavorsk@redhat.com> - 2.0.9-4
441e163
- Add mariadb and mysql client to suggests
441e163
a9f6631
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-3
a9f6631
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
a9f6631
594eabc
* Thu Jan 16 2020 Filip Januš <fjanus@redhat.com> - 2.0.9-2
594eabc
- .service file path fix
594eabc
6fa3a34
* Tue Nov 19 2019 Filip Januš <fjanus@redhat.com> - 2.0.9-1
6fa3a34
- Upstream released ProxySQL 2.0.9
6fa3a34
- Patch0 was modified - lib/Makefile was modified
6fa3a34
62a5430
* Tue Oct 15 2019 Filip Januš <fjanus@redhat.com> - 2.0.8-1
62a5430
- Upstream released ProxySQL 2.0.8
62a5430
62a5430
* Mon Sep 23 2019 Filip Januš <fjanus@redhat.com> - 2.0.7-1
a633007
- Updated to ProxySQL 2.0.7
a633007
- De-bundled new libraries (Update patch)
a633007
- Fix path to doc
a633007
- Fix man page path (bug #1722350)
a633007
23dd3be
* Thu Sep 12 2019 Petr Pisar <ppisar@redhat.com> - 1.3.7-11
23dd3be
- Build-require zlib-devel (bug #1727136)
23dd3be
f7320c7
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.7-10
f7320c7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
f7320c7
98dc380
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.7-9
98dc380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
98dc380
7f072c4
* Tue Jul 24 2018 Adam Williamson <awilliam@redhat.com> - 1.3.7-8
7f072c4
- Rebuild for new libconfig
7f072c4
9c2e127
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.7-7
9c2e127
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
9c2e127
789c653
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.7-6
789c653
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
789c653
9a31274
* Tue Sep 26 2017 Augusto Caringi <acaringi@redhat.com> 1.3.7-5
9a31274
- Made install commands in install section compatible with epel7
9a31274
0fb6b50
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.7-4
0fb6b50
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
0fb6b50
b480f54
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.7-3
b480f54
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
b480f54
358feff
* Thu Jun 15 2017  Augusto Caringi <acaringi@redhat.com> 1.3.7-2
358feff
- Fixed build flags through exporting CPPFLAGS variable
358feff
- Remove unused bundled libraries
358feff
- Fixed configuration file ownership
358feff
- Replaced default login shell of proxysql user from /bin/false to /sbin/nologin
358feff
358feff
* Wed Jun 14 2017  Augusto Caringi <acaringi@redhat.com> 1.3.7-1
358feff
- Updated to ProxySQL 1.3.7
358feff
- De-bundled some libraries
358feff
- Added man page
358feff
- Updated license field
358feff
- Adopted proxysql user/group
358feff
- Improvements in spec file
358feff
358feff
* Tue May 16 2017  Augusto Caringi <acaringi@redhat.com> 1.3.6-1
358feff
- Initial build