# lto is handled with cmakelists.txt internally
# with flag -DENABLE_LTO
%global _lto_cflags %nil

%if 0%{?fedora} || 0%{?rhel}
%global cmake_alias cmake3
%else
%global cmake_alias cmake
%endif

# on centos, nghttp2 sits in epel repo
# on opensuse, nghttp might be outdated
%if 0%{?fedora}
%global enable_system_nghttp2_opt on
%else
%global enable_system_nghttp2_opt off
%endif

# on centos, mbedtls sits in epel repo
# on opensuse, mbedtls might be outdated
%if 0%{?fedora}
%global enable_system_mbedtls_opt on
%else
%global enable_system_mbedtls_opt off
%endif

# requires nlohman json
%if 0%{?fedora} && !%{with use_libcxx}
%global enable_system_jsoncpp_opt on
%else
%global enable_system_jsoncpp_opt off
%endif

# test failed in copr
%bcond_with tests_dns
%if !%{with tests_dns}
%global yass_test_opt --no_cares_tests --no_doh_tests --no_dot_tests
%else
%global yass_test_opt %nil
%endif

# requires recent version of c-ares
%if 0%{?fedora}
%global enable_system_cares_opt on
%else
%global enable_system_cares_opt off
%endif

# libc++ is only built with clang now
%bcond_with use_libcxx
%if %{with use_libcxx}
%global enable_libcxx_opt on
%else
%global enable_libcxx_opt off
%endif

# cet is only enabled on fedora currently
%bcond_with use_cet
%if %{with use_cet}
%global enable_cet_opt on
%else
%global enable_cet_opt off
%endif

# disable some warnings on clang compiler in fedora
%bcond_with toolchain_clang
%if %{with toolchain_clang}
%global _clang_extra_ldflags %nil
%global toolchain clang
%else
%global toolchain gcc
%endif

# on centos 8, gperftools sits in epel repo
# and it is not compatible with custom libc++
%if 0%{?fedora} && !%{with use_libcxx}
%global enable_system_gperftools_opt on
%else
%global enable_system_gperftools_opt off
%endif

# lld is forced to be enabled if you are using external toolchain and so
%bcond_with disable_lld
%if %{with disable_lld}
%global enable_lld_opt off
%else
%global enable_lld_opt on
%endif

# use_qt6
%bcond_with use_qt6
%if %{with use_qt6}
%global enable_use_qt6_opt on
%else
%global enable_use_qt6_opt off
%endif

# use_qt5
%bcond_with use_qt5
%if %{with use_qt5}
%global enable_use_qt5_opt on
%else
%global enable_use_qt5_opt off
%endif

# use_gtk4
%bcond_with use_gtk4
%if !%{with use_qt6} && !%{with use_qt5} &&%{with use_gtk4}
%global enable_use_gtk4_opt on
%else
%global enable_use_gtk4_opt off
%endif

# force use old systemd unit files
%if 0%{?rhel} == 7
%global use_old_systemd_service on
%else
%global use_old_systemd_service off
%endif

Name:    yass
Version: 1.24.6
Release: 0%{?dist}
Summary: Lightweight and Secure http/socks4/socks5 Proxy

# fedora supports spdx license
# see /etc/xdg/rpmlint/fedora-spdx-licenses.toml
%if 0%{?fedora} || 0%{?sle_version}
License: GPL-2.0-only
%else
# old distributions don't
# see https://github.com/rpm-software-management/rpmlint/blob/main/configs/Fedora/licenses.toml
License: GPLv2
%endif
URL: https://github.com/hukeyue/%{name}
Source0: %{url}/releases/download/%{version}/%{name}-%{version}.tar.gz
%if %{with use_qt6} && !0%{?sle_version}
BuildRequires: qt6-qtbase-devel
%endif
%if %{with use_qt6} && 0%{?sle_version}
BuildRequires: qt6-base-devel
%endif
%if !%{with use_qt6} && %{with use_qt5} && !0%{?sle_version}
BuildRequires: qt5-qtbase-devel
%endif
%if !%{with use_qt6} && %{with use_qt5} && 0%{?sle_version}
BuildRequires: libqt5-qtbase-devel
%endif
%if !%{with use_qt6} && !%{with use_qt5} && %{with use_gtk4}
BuildRequires: gtk4-devel
%endif
%if !%{with use_qt6} && !%{with use_qt5} && !%{with use_gtk4}
BuildRequires: gtk3-devel
%endif
%if !%{with use_qt6} && !%{with use_qt5}
BuildRequires: glib2-devel
%endif
%if 0%{?rhel} < 9 || 0%{?fedora} || 0%{?sle_version}
BuildRequires: perl
%endif
%if 0%{?rhel} >= 8 || 0%{?fedora} || 0%{?sle_version}
BuildRequires: cmake >= 3.12, pkg-config
%endif
%if 0%{?rhel} == 7
BuildRequires: cmake3 >= 3.12, pkgconfig
%endif
%if 0%{?fedora}
BuildRequires: c-ares-devel
%endif
%if 0%{?fedora}
BuildRequires: mbedtls-devel
%endif
%if 0%{?fedora} && !%{with use_libcxx}
BuildRequires: gperftools-devel
%endif
%if 0%{?fedora} && !%{with use_libcxx}
BuildRequires: jsoncpp-devel
%endif
BuildRequires: zlib-devel
%if 0%{?fedora}
BuildRequires: libnghttp2-devel
%endif
BuildRequires: gcc, gcc-c++, golang >= 1.4
%if 0%{?sle_version}
BuildRequires: ninja
%else
BuildRequires: ninja-build
%endif
BuildRequires: curl-devel
BuildRequires: desktop-file-utils
BuildRequires: systemd
Requires:      hicolor-icon-theme
Requires:      ca-certificates

# required by opensuse
%if 0%{?sle_version}
%debug_package
%endif

%description
yass is a lightweight and secure http/socks proxy
for embedded devices and low end boxes.

%prep
%setup -q -n %{name}-%{version}

%build
mkdir build
cd build
# old c-ares doesn't contain ares_getaddrinfo api
# libcurl's nghttp2 dependency conflicts with our nghttp2.so
%cmake_alias -G Ninja -DOFFICIAL_BUILD=on -DCMAKE_BUILD_TYPE=Release \
   -DBUILD_BENCHMARKS=on -DBUILD_TESTS=on \
   -DUSE_QT6="%enable_use_qt6_opt" -DUSE_QT5="%enable_use_qt5_opt" \
   -DUSE_GTK4="%enable_use_gtk4_opt" -DGUI=on \
   -DCLI=on -DSERVER=on -DBUILD_DYLIB=on \
   -DUSE_OLD_SYSTEMD_SERVICE="%use_old_systemd_service" \
   -DUSE_TCMALLOC=on -DUSE_SYSTEM_TCMALLOC="%enable_system_gperftools_opt" \
   -DUSE_ZLIB=on -DUSE_SYSTEM_ZLIB=on \
   -DUSE_SYSTEM_NGHTTP2="%enable_system_nghttp2_opt" \
   -DUSE_SYSTEM_MBEDTLS="%enable_system_mbedtls_opt" \
   -DUSE_JSONCPP=on -DUSE_SYSTEM_JSONCPP="%enable_system_jsoncpp_opt" \
   -DUSE_CARES=on -DUSE_SYSTEM_CARES="%enable_system_cares_opt" \
   -DUSE_LIBCXX="%enable_libcxx_opt" \
   -DUSE_CET="%enable_cet_opt" \
   -DUSE_DEBUG_FISSION=OFF -DUSE_COMPRESS_DEBUG_SECTIONS=off \
   -DBUILD_SHARED_LIBS=on \
   -DUSE_CURL=off \
   -DENABLE_LTO=on -DENABLE_LLD="%enable_lld_opt" ..
ninja
cd ..

%check
cd build
./yass_test %yass_test_opt
./yass_benchmark
cd ..

%install
echo "Toolchain is %toolchain"
cd build
%cmake_alias -DCMAKE_INSTALL_PREFIX=%{buildroot}/usr -DCMAKE_INSTALL_SYSCONFDIR=%{buildroot}/etc ..
rm -rf %{buildroot}
ninja install
rm -rf %{buildroot}/%{_datadir}/doc
mkdir -p %{buildroot}/usr/libexec/%{name}
touch %{buildroot}/usr/libexec/%{name}/placeholder
cd ..
desktop-file-validate %{buildroot}%{_datadir}/applications/io.github.chilledheart.yass.desktop
%find_lang %{name}

%post
update-desktop-database

%files -f %{name}.lang
%defattr(-,root,root)
%dir /usr/share/icons/hicolor/
%dir /usr/share/applications/
%dir /usr/share/pixmaps/
%{_bindir}/yass
%{_datadir}/applications/io.github.chilledheart.yass.desktop
%{_datadir}/pixmaps/io.github.chilledheart.yass.png
%{_datadir}/icons/hicolor/16x16/apps/io.github.chilledheart.yass.png
%{_datadir}/icons/hicolor/22x22/apps/io.github.chilledheart.yass.png
%{_datadir}/icons/hicolor/24x24/apps/io.github.chilledheart.yass.png
%{_datadir}/icons/hicolor/32x32/apps/io.github.chilledheart.yass.png
%{_datadir}/icons/hicolor/48x48/apps/io.github.chilledheart.yass.png
%{_datadir}/icons/hicolor/128x128/apps/io.github.chilledheart.yass.png
%{_datadir}/icons/hicolor/256x256/apps/io.github.chilledheart.yass.png
%{_datadir}/icons/hicolor/512x512/apps/io.github.chilledheart.yass.png

%package server
Summary: Lightweight and Secure http/socks4/socks5 Proxy (Server Side)

%description server
yass is a lightweight and secure http/socks proxy
for embedded devices and low end boxes.

%files server
%defattr(-,root,root)
%{_bindir}/yass_server
%{_sysconfdir}/yass/server.json
%{_unitdir}/yass-server.service
%dir /usr/share/man/man1/
%{_mandir}/man1/yass_server.1*

%post server
%systemd_post yass-server.service

%preun server
%systemd_preun yass-server.service

%postun server
%systemd_postun_with_restart yass-server.service

%package client
Summary: Lightweight and Secure http/socks4/socks5 Proxy (Client Side)

%description client
yass is a lightweight and secure http/socks proxy
for embedded devices and low end boxes.

%files client
%defattr(-,root,root)
%{_bindir}/yass_cli
%{_sysconfdir}/yass/config.json
%{_sysconfdir}/yass/redir.json
%{_unitdir}/yass.service
%{_unitdir}/yass-redir.service
%dir /usr/share/man/man1/
%{_mandir}/man1/yass_cli.1*

%post client
%systemd_post yass.service
%systemd_post yass-redir.service

%preun client
%systemd_preun yass.service
%systemd_preun yass-redir.service

%postun client
%systemd_postun_with_restart yass.service
%systemd_postun_with_restart yass-redir.service

%package common
Summary: Lightweight and Secure http/socks4/socks5 Proxy (Common Libraries)

%description common
yass is a lightweight and secure http/socks proxy
for embedded devices and low end boxes.

%files common
%defattr(-,root,root)
%license build/LICENSE
%dir /usr/libexec/%{name}
/usr/libexec/%{name}/*
%dir /usr/lib64
/usr/lib64/libYASS-C.so

%package devel
Summary: Lightweight and Secure http/socks4/socks5 Proxy (Header Files)

%description devel
yass is a lightweight and secure http/socks proxy
for embedded devices and low end boxes.

%files devel
%defattr(-,root,root)
%dir /usr/include/%{name}
/usr/include/%{name}/*.h

%changelog
* Sun Apr 19 2026 Chilledheart <hukeyue@vip.163.com> - 1.24.6-1
  - make quiche and googleurl componently buildable
  - update nghttp2 to 1.68.1
  - update tcmalloc to 2.18.1
  - miscellaneous fixes
* Wed Apr 15 2026 Chilledheart <hukeyue@vip.163.com> - 1.24.5-1
  - miscellaneous fixes
* Mon Apr 13 2026 Chilledheart <hukeyue@vip.163.com> - 1.24.4-1
  - yass-c: add unstable C API and related packages (LGPL 2.1 permit)
  - miscellaneous fixes
* Wed Apr 8 2026 Chilledheart <hukeyue@vip.163.com> - 1.24.3-1
  - net: log server tag for multiple sites configuration
* Wed Apr 8 2026 Chilledheart <hukeyue@vip.163.com> - 1.24.2-1
  - miscellaneous fixes
* Sat Apr 4 2026 Chilledheart <hukeyue@vip.163.com> - 1.24.1-1
  - net: add --use_new_alps_codepoint_http2 option (default)
* Sat Apr 4 2026 Chilledheart <hukeyue@vip.163.com> - 1.24.0-1
  - bump to chromium 148 dependents
* Sat Apr 4 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.11-1
  - enable component build
  - miscellaneous fixes
* Sat Mar 28 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.10-1
  - miscellaneous fixes
* Fri Mar 27 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.9-1
  - tbbmalloc: introduce more fixes
  - miscellaneous fixes
* Thu Mar 26 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.8-1
  - tls: fix potential DoH and DoT resolve issue
  - tcmalloc: use shared library now
  - add the support of tbbmalloc
  - miscellaneous fixes
* Mon Mar 23 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.7-1
  - tls: fix broken https protocol
  - miscellaneous fixes
* Sun Mar 22 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.6-1
  - miscellaneous fixes
* Tue Mar 17 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.5-1
  - improve stability of https/http2 connection latency
  - miscellaneous fixes
* Mon Mar 16 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.4-1
  - miscellaneous fixes
* Sun Mar 15 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.3-1
  - miscellaneous fixes
* Sun Mar 15 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.2-1
  - support proxy-uri and listen-uri parameters (CLI only)
  - miscellaneous fixes
* Wed Mar 11 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.1-1
  - add the support of jemalloc
  - miscellaneous fixes
* Wed Mar 4 2026 Chilledheart <hukeyue@vip.163.com> - 1.22.0-1
  - bump to chromium 146 dependents
* Mon Mar 2 2026 Chilledheart <hukeyue@vip.163.com> - 1.20.5-1
  - miscellaneous fixes
* Fri Jan 2 2026 Chilledheart <hukeyue@vip.163.com> - 1.20.4-1
  - miscellaneous fixes
* Mon Dec 29 2025 Chilledheart <hukeyue@vip.163.com> - 1.20.3-1
  - miscellaneous fixes
* Fri Dec 26 2025 Chilledheart <hukeyue@vip.163.com> - 1.20.2-1
  - miscellaneous fixes
* Fri Dec 12 2025 Chilledheart <hukeyue@vip.163.com> - 1.20.1-1
  - miscellaneous fixes
* Mon Dec 8 2025 Chilledheart <hukeyue@vip.163.com> - 1.20.0-1
  - bump to chromium 144 dependents
  - generic: make source code CDDL-1.0 compatible
* Thu Sep 18 2025 Chilledheart <hukeyue@vip.163.com> - 1.17.2-1
  - tls: correct ECDSA verification for FIPS
* Wed Sep 17 2025 Chilledheart <hukeyue@vip.163.com> - 1.17.1-1
  - undocumented changes
* Tue Sep 16 2025 Chilledheart <hukeyue@vip.163.com> - 1.17.0-1
  - bump to chromium 141 dependents
  - net: replace folly::IOBuf with google::IOBuffer
  - tls: enable ML-KEM on all platforms by installation
  - undocumented changes
* Sun Dec 1 2024 Chilledheart <hukeyue@vip.163.com> - 1.16.2-1
  - cli: reduce memory usage per connection
  - base: use DCHECK_IS_ON for check_op
  - net: handle ip-address like hostname correctly
  - net: listen to EPOLLRDHUP/POLLRDHUP events
  - net: fix ssl socket re-use issus when trying different endpoint
  - net: avoid already_open error when opening next endpoint
  - tls: load very first ca-bundle file only
  - tls: update for fedora and rhel update
* Mon Nov 18 2024 Chilledheart <hukeyue@vip.163.com> - 1.16.1-1
  - tls: add adjust system trusted CA folder for linux
  - tls: --capath now accepts separated list of directories
  - cli: handle http/1.1 keepalive for different host properly
  - cli: increase nofile to 65536 (systemd)
  - network: increase parallel_max to 65535
  - network: apply keep alive on connections between client and browsers
  - tls: use builtin ca store universally
  - tls: ship GTS Root R4 with supplementary ca
* Tue Nov 12 2024 Chilledheart <hukeyue@vip.163.com> - 1.16.0-1
  - bump to chromium 132 dependents
  - build: add an option to enable/disable assertions
  - core: move logging and other modules to googleurl
  - http2: handle HTTP/2 status code in response
* Fri Nov 1 2024 Chilledheart <keeyou-cn@outlook.com> - 1.15.4-1
  - cli: reduce memory usage per connection
  - base: use DCHECK_IS_ON for check_op
  - net: handle ip-address like hostname correctly
  - net: listen to EPOLLRDHUP/POLLRDHUP events
  - net: fix ssl socket re-use issus when trying different endpoint
  - net: avoid already_open error when opening next endpoint
  - tls: load very first ca-bundle file only
  - tls: update for fedora and rhel update
  - tls: add adjust system trusted CA folder for linux
  - tls: --capath now accepts separated list of directories
  - cli: handle http/1.1 keepalive for different host properly
  - cli: increase nofile to 65536 (systemd)
  - network: increase parallel_max to 65535
  - network: apply keep alive on connections between client and browsers
  - tls: use builtin ca store universally
  - tls: ship GTS Root R4 with supplementary ca
  - http2: handle HTTP/2 status code in response
  - tls: enable reusable sessions
* Wed Oct 30 2024 Chilledheart <keeyou-cn@outlook.com> - 1.15.3-1
  - http2: handle HTTP/2 Push as soft error
  - tls: enable reusable sessions
  - tls: enable post quantum option for server-side
  - tls: support both of mlkem and kyber for server-side
  - tls: enable ALPS for HTTP/2 only
* Wed Oct 30 2024 Chilledheart <hukeyue@vip.163.com> - 1.15.3-1
  - http2: handle HTTP/2 Push as soft error
* Thu Oct 24 2024 Chilledheart <hukeyue@vip.163.com> - 1.15.2-1
  - some trivial changes
* Thu Oct 24 2024 Chilledheart <hukeyue@vip.163.com> - 1.15.1-1
  - build: add an option to enable/disable assertions
  - tls: enable post quantum option for server-side
  - tls: support both of mlkem and kyber for server-side
  - tls: enable ALPS for HTTP/2 only
  - core: move logging and other modules to googleurl
* Tue Oct 15 2024 Chilledheart <hukeyue@vip.163.com> - 1.15.0-1
  - bump to chromium 131 dependents
  - net: optimize yield algorithm
  - net: fix http proxy integration with qt 6.8
  - tls: support and enable ML-KEM by default
  - tls: support post quantumn key-agreements in server side
  - tls: fix crash due to dangling DoPeek call
  - cli: add stats for yield event
  - systemd: update sample config files
  - systemd: increase RestartSec to 5s
* Thu Oct 10 2024 Chilledheart <hukeyue@vip.163.com> - 1.14.4-1
  - net: fix http proxy integration with telegram
  - qt: fix translation with post quantumn key-agreements
* Tue Oct 8 2024 Chilledheart <hukeyue@vip.163.com> - 1.14.3-1
  - tls: support and enable ML-KEM by default
  - tls: support post quantumn key-agreements in server side
  - tls: fix crash due to dangling DoPeek call
* Sun Oct 6 2024 Chilledheart <hukeyue@vip.163.com> - 1.14.2-1
  - systemd: update sample config files
* Sun Sep 29 2024 Chilledheart <hukeyue@vip.163.com> - 1.14.1-1
  - gtk4: fix typo in icon name
  - mbedtls: fix searching algorithm (system library)
  - benchmark: use re2 now
  - systemd: increase RestartSec to 5s
  - net: optimize yield algorithm
  - cli: add stats for yield event
  - net: add some assertions
* Tue Sep 17 2024 Chilledheart <hukeyue@vip.163.com> - 1.14.0-1
  - bump to chromium 130 dependents
  - config: use jsoncpp for configuration reader and writer
  - net: apply tcp congestion only to connections between cli and server
  - c-ares: backport some patches from upstream
* Mon Sep 9 2024 Chilledheart <hukeyue@vip.163.com> - 1.13.2-1
  - some trivial changes
* Sun Sep 1 2024 Chilledheart <hukeyue@vip.163.com> - 1.13.1-1
  - ui: add tcp congestion algorithm in option dialog
  - qt: update windows title and shortcuts in menu
  - gtk: update windows title
* Tue Aug 20 2024 Chilledheart <hukeyue@vip.163.com> - 1.13.0-1
  - bump to chromium 129 dependents
* Wed Aug 7 2024 Chilledheart <hukeyue@vip.163.com> - 1.12.3-1
  - gtk4: fix crash
* Wed Aug 7 2024 Chilledheart <hukeyue@vip.163.com> - 1.12.2-1
  - transfer: optimize rate limit algorithm
  - replace app id
* Fri Jul 26 2024 Chilledheart <hukeyue@vip.163.com> - 1.12.1-1
  - ui: lower veritical spacing to 6 pixels
  - gtk4: close dialogs on signal SIGINT
* Wed Jul 24 2024 Chilledheart <hukeyue@vip.163.com> - 1.12.0-1
  - bump to chromium 128 dependents
  - gtk3: refine ui layout
  - qt5/qt6: refine ui layout
  - qt5/qt6: fix broken autostart feature
  - qt5/qt6: handle SIGINT signal properly
* Sat Jul 13 2024 Chilledheart <hukeyue@vip.163.com> - 1.11.4-1
  - gui: add limit rate option
  - gtk4: use cairo render for now
* Tue Jun 25 2024 Chilledheart <hukeyue@vip.163.com> - 1.11.3-1
  - gtk3: add libappindicator3 and legacy tray icon support
* Sat Jun 15 2024 Chilledheart <hukeyue@vip.163.com> - 1.11.2-1
  - add qt5 build profile
* Thu Jun 13 2024 Chilledheart <hukeyue@vip.163.com> - 1.11.1-1
  - miscellaneous fixes
  - add gtk3/gtk4/qt6 build profile (rpm)
* Tue Jun 11 2024 Chilledheart <hukeyue@vip.163.com> - 1.11.0-1
  - bump to chromium 127 dependents
  - add gtk3/gtk4/qt6 build profile (source)
* Mon Jun 3 2024 Chilledheart <hukeyue@vip.163.com> - 1.10.5-1
  - miscellaneous fixes
  - fix gtk3 wayland app icon issue
* Fri May 31 2024 Chilledheart <hukeyue@vip.163.com> - 1.10.4-1
  - miscellaneous fixes
* Sun May 26 2024 Chilledheart <hukeyue@vip.163.com> - 1.10.3-1
  - net: support https protocol via caddy.
* Thu May 23 2024 Chilledheart <hukeyue@vip.163.com> - 1.10.2-1
  - net: reduce memory footprint peak and cpu peak.
* Sun May 19 2024 Chilledheart <hukeyue@vip.163.com> - 1.10.1-1
  - net: improve buffer to 16k.
  - net: improve http2 send performance.
  - net: miscs fixes.
* Wed May 15 2024 Chilledheart <hukeyue@vip.163.com> - 1.10.0-1
  - bump to chromium 126 dependents.
  - net: support socks4/socks4a/socks5/socks5h cipher.
* Tue May 7 2024 Chilledheart <hukeyue@vip.163.com> - 1.9.5-1
  - ui: provide an option to turn on post quantum kyber.
* Mon May 6 2024 Chilledheart <hukeyue@vip.163.com> - 1.9.4-1
  - ui: provide an option to turn on post quantum kyber.
* Wed May 1 2024 Chilledheart <hukeyue@vip.163.com> - 1.9.3-1
  - bump to chromium 125 dependents (clang).
  - ca-certificates: update for 20240203.3.98 release.
* Mon Apr 29 2024 Chilledheart <hukeyue@vip.163.com> - 1.9.2-1
  - net: fix broken --certificate_chain_file flag
* Fri Apr 19 2024 Chilledheart <hukeyue@vip.163.com> - 1.9.1-1
  - net: fix cve-2024-32475
* Tue Apr 16 2024 Chilledheart <hukeyue@vip.163.com> - 1.9.0-1
  - bump to chromium 125 dependents.
* Mon Apr 8 2024 Chilledheart <hukeyue@vip.163.com> - 1.8.3-1
  - net: add dot support
* Fri Apr 5 2024 Chilledheart <hukeyue@vip.163.com> - 1.8.2-1
  - fix (nghttp2) CVE-2024-30255
* Tue Mar 26 2024 Chilledheart <hukeyue@vip.163.com> - 1.8.1-1
  - bump to chromium 124 dependents.
  - miscellaneous fixes
* Wed Mar 20 2024 Chilledheart <hukeyue@vip.163.com> - 1.8.0-1
  - bump to chromium 124 dependents.
* Mon Mar 18 2024 Chilledheart <hukeyue@vip.163.com> - 1.7.5-1
  - net: add doh support
* Sun Mar 17 2024 Chilledheart <hukeyue@vip.163.com> - 1.7.4-1
  - net: add doh support
* Thu Mar 7 2024 Chilledheart <hukeyue@vip.163.com> - 1.7.3-1
  - c-ares: fix CVE-2024-25629
* Thu Mar 7 2024 Chilledheart <hukeyue@vip.163.com> - 1.7.2-1
  - c-ares: fix CVE-2024-25629
* Sat Feb 24 2024 Chilledheart <hukeyue@vip.163.com> - 1.7.1-1
  - cli: turn off redir mode by default
* Tue Feb 20 2024 Chilledheart <hukeyue@vip.163.com> - 1.7.0-1
  - bump to chromium 123 dependents.
* Thu Feb 15 2024 Chilledheart <hukeyue@vip.163.com> - 1.6.4-1
  - ssl: add supplementary ca bundle support.
* Sun Feb 4 2024 Chilledheart <hukeyue@vip.163.com> - 1.6.3-1
  - bump to chromium 122 dependents.
* Wed Jan 31 2024 Chilledheart <hukeyue@vip.163.com> - 1.6.2-1
  - bump to chromium 122 dependents.
* Wed Jan 24 2024 Chilledheart <hukeyue@vip.163.com> - 1.6.1-1
  - bump to chromium 122 dependents.
* Fri Jan 19 2024 Chilledheart <hukeyue@vip.163.com> - 1.6.0-1
  - bump to chromium 122 dependents.
* Thu Jan 18 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.20-1
  - ca-certificates: update for 20230311.3.95 release.
* Tue Jan 16 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.19-1
  - gtk: quote the exec entry in autostart.
* Fri Jan 12 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.18-1
  - net: code refactor.
* Thu Jan 11 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.17-1
  - c-ares: defer c-ares init.
* Wed Jan 10 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.16-1
  - c-ares: defer c-ares init.
* Wed Jan 10 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.15-1
  - gcc: fix lto build under gold.
  - rpm: handle systemd scriptlet operations.
* Mon Jan 8 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.14-1
  - ssl: enable client-side ssl session cache.
  - ssl: deduplicate all ceritificates.
* Sun Jan 7 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.13-1
  - gtk: add server sni support.
* Sun Jan 7 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.12-1
  - gtk: add server sni support.
* Sat Jan 6 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.11-1
  - gtk: add server sni support.
* Fri Jan 5 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.10-1
  - gtk: add server sni support.
* Wed Jan 3 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.9-1
  - ca-certificates: load symbolic link as cert files.
* Wed Jan 3 2024 Chilledheart <hukeyue@vip.163.com> - 1.5.8-1
  - ca-certificates: load symbolic link as cert files.
* Wed Dec 27 2023 Chilledheart <hukeyue@vip.163.com> - 1.5.7-1
  - ca-certificates: update for 20230311.3.93 release.
* Tue Dec 19 2023 Chilledheart <hukeyue@vip.163.com> - 1.5.6-1
  - man: add yass_cli and yass_server man pages.
* Thu Dec 14 2023 Chilledheart <hukeyue@vip.163.com> - 1.5.5-1
  - ssl: use builtin ca bundle if system keystore fails.
* Wed Dec 13 2023 Chilledheart <hukeyue@vip.163.com> - 1.5.4-1
  - Fix bad F_SETFD calls.
  - gtk: update desktop database.
* Fri Dec 8 2023 Chilledheart <hukeyue@vip.163.com> - 1.5.3-1
  - Fix linux thread name setting.
* Tue Dec 5 2023 Chilledheart <hukeyue@vip.163.com> - 1.5.2-1
  - Bump to chromium 121 dependents (updated).
  - Fix RPM releases.
* Mon Dec 4 2023 Chilledheart <hukeyue@vip.163.com> - 1.5.1-1
  - Bump to chromium 121 dependents.
  - Fix use cached configuration issue.
  - Fix crash in resume from previous failure.
* Mon Dec 4 2023 Chilledheart <hukeyue@vip.163.com> - 1.5.0-1
  - New major release.
* Sat Dec 2 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.12-1
  - Fix bad F_SETFD calls.
  - gtk: update desktop database.
* Sat Dec 2 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.11-1
  - Bump Clang.
  - Fix use cached configuration issue.
  - Fix crash in resume from previous failure.
* Sat Dec 2 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.10-1
  - Bump Clang and Abseil-Cpp.
  - Use tcmalloc be default.
  - Misc fixes.
* Thu Nov 16 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.9-1
  - Fix startup failure on the first try since version 1.4.5.
* Thu Nov 16 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.8-1
  - Some trivial changes.
* Mon Nov 6 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.7-1
  - Bump to chromium 120 dependents.
* Mon Oct 23 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.6-1
  - Better handling with SIGTERM signal.
  - Bump to chromium 119 dependents.
* Thu Oct 5 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.5-1
  - Some trivial changes.
* Wed Sep 20 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.4-1
  - Add chinese translation (GTK4).
* Mon Sep 18 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.3-1
  - Add chinese translation.
* Fri Sep 15 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.2-1
  - New minor release.
* Thu Sep 14 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.1-1
  - Bump to chromium 118 dependents.
* Thu Aug 24 2023 Chilledheart <hukeyue@vip.163.com> - 1.4.0-1
  - New major release.
* Thu Aug 24 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.15-1
  - Add support for legacy shadowsocks stream ciphers.
  - Bump to chromium 117 dependents.
* Fri Aug 11 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.14-1
  - Prepare for downstream build.
* Wed Aug 9 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.13-1
  - Prepare for downstream build.
* Wed Aug 9 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.12-1
  - Prepare for downstream build.
* Sat Aug 5 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.11-1
  - Add system proxy support.
* Sun Jul 30 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.10-1
  - New bug-fix release.
* Sat Jul 22 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.9-1
  - Bump to chromium 116 dependents.
  - server: fix crash in hostname tlsext handling.
* Sun Jul 16 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.8-1
  - CVE/http: Fix memory leak in nghttp2 codec.
* Thu Jul 13 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.7-1
  - More complete IPv6 support.
* Tue Jul 4 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.6-1
  - Improvement of performance over http2 (client).
* Sun Jul 2 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.5-1
  - New bug-fix release.
* Fri May 26 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.4-1
  - New bug-fix release.
* Fri May 26 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.3-1
  - New bug-fix release.
* Wed Apr 26 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.2-1
  - New bug-fix release.
* Sun Apr 2 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.1-1
  - New bug-fix release.
* Mon Mar 13 2023 Chilledheart <hukeyue@vip.163.com> - 1.3.0-1
  - New HTTP TLS Implementation.
* Wed Mar 8 2023 Chilledheart <hukeyue@vip.163.com> - 1.2.7-1
  - New bug-fix release.
* Wed Mar 1 2023 Chilledheart <hukeyue@vip.163.com> - 1.2.6-1
  - New bug-fix release.
* Thu Feb 16 2023 Chilledheart <hukeyue@vip.163.com> - 1.2.5-1
  - New bug-fix release.
* Sat Feb 11 2023 Chilledheart <hukeyue@vip.163.com> - 1.2.4-1
  - New bug-fix release.
* Fri Feb 10 2023 Chilledheart <hukeyue@vip.163.com> - 1.2.3-1
  - New bug-fix release.
* Wed Feb 8 2023 Chilledheart <hukeyue@vip.163.com> - 1.2.2-1
  - New bug-fix release.
* Fri Feb 3 2023 Chilledheart <hukeyue@vip.163.com> - 1.2.1-1
  - New bug-fix release.
* Sun Jan 29 2023 Chilledheart <hukeyue@vip.163.com> - 1.2.0-1
  - New HTTP2 Tunnel Proxy Support.
* Tue Jan 10 2023 Chilledheart <hukeyue@vip.163.com> - 1.1.0-1
  - New bug-fix release.
* Sat Jan 22 2022 Chilledheart <hukeyue@vip.163.com> - 1.0.0-1
  - Initial release. (Closes: #4)
