2021-02-18 18:30:04 +00:00
|
|
|
%bcond_without tests
|
|
|
|
|
2019-09-12 20:11:45 +00:00
|
|
|
Name: oomd
|
|
|
|
Summary: Userspace Out-Of-Memory (OOM) killer
|
2021-06-24 14:57:27 +00:00
|
|
|
Version: 0.5.0
|
2023-01-19 22:40:50 +00:00
|
|
|
Release: 7%{dist}
|
2019-09-12 20:11:45 +00:00
|
|
|
License: GPLv2
|
|
|
|
URL: https://github.com/facebookincubator/oomd/
|
|
|
|
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
2021-06-24 14:57:27 +00:00
|
|
|
# Check return value for mkstemp()
|
|
|
|
Patch0: %{url}/commit/076af42b270388f38055fdf60dccbb3001de723a.patch
|
|
|
|
# Fix ODR violation in tests
|
|
|
|
Patch1: %{url}/commit/3989e169fc0da9c29da8dd692427d4f4c1ace413.patch
|
2022-08-09 20:33:23 +00:00
|
|
|
# Resolved a compiler error due to lacking include
|
|
|
|
Patch2: %{url}/commit/83a6742f08349fbc93f459228dcc3d1f56eac411.patch
|
2021-06-24 14:57:27 +00:00
|
|
|
|
2019-09-12 20:11:45 +00:00
|
|
|
|
2019-09-12 21:04:45 +00:00
|
|
|
ExcludeArch: i686 armv7hl
|
|
|
|
|
2019-09-12 20:11:45 +00:00
|
|
|
BuildRequires: gcc-c++
|
|
|
|
BuildRequires: meson >= 0.45
|
|
|
|
BuildRequires: pkgconfig(jsoncpp)
|
|
|
|
BuildRequires: pkgconfig(libsystemd)
|
2021-02-18 18:30:04 +00:00
|
|
|
%if %{with tests}
|
|
|
|
BuildRequires: gmock-devel
|
|
|
|
BuildRequires: gtest-devel
|
|
|
|
%endif
|
2019-09-12 20:29:06 +00:00
|
|
|
BuildRequires: systemd-rpm-macros
|
|
|
|
%{?systemd_requires}
|
2019-09-12 20:11:45 +00:00
|
|
|
|
|
|
|
%description
|
|
|
|
Out of memory killing has historically happened inside kernel space. On a
|
|
|
|
memory overcommitted linux system, malloc(2) and friends usually never fail.
|
|
|
|
However, if an application dereferences the returned pointer and the system has
|
|
|
|
run out of physical memory, the linux kernel is forced take extreme measures,
|
|
|
|
up to and including killing processes. This is sometimes a slow and painful
|
|
|
|
process because the kernel can spend an unbounded amount of time swapping in
|
|
|
|
and out pages and evicting the page cache. Furthermore, configuring policy is
|
|
|
|
not very flexible while being somewhat complicated.
|
|
|
|
|
|
|
|
oomd aims to solve this problem in userspace. oomd leverages PSI and cgroupv2
|
|
|
|
to monitor a system holistically. oomd then takes corrective action in
|
|
|
|
userspace before an OOM occurs in kernel space. Corrective action is configured
|
|
|
|
via a flexible plugin system, in which custom code can be written. By default,
|
|
|
|
this involves killing offending processes. This enables an unparalleled level
|
|
|
|
of flexibility where each workload can have custom protection rules.
|
|
|
|
Furthermore, time spent livedlocked in kernelspace is minimized.
|
|
|
|
|
|
|
|
%prep
|
2020-10-30 20:23:23 +00:00
|
|
|
%autosetup -p1
|
2019-09-12 20:11:45 +00:00
|
|
|
|
|
|
|
%build
|
|
|
|
%meson
|
|
|
|
%meson_build
|
|
|
|
|
2021-02-18 18:30:04 +00:00
|
|
|
%if %{with tests}
|
2019-09-12 20:11:45 +00:00
|
|
|
%check
|
|
|
|
%meson_test
|
2021-02-18 18:30:04 +00:00
|
|
|
%endif
|
2019-09-12 20:11:45 +00:00
|
|
|
|
|
|
|
%install
|
|
|
|
%meson_install
|
|
|
|
|
|
|
|
%files
|
|
|
|
%license LICENSE
|
|
|
|
%doc README.md CONTRIBUTING.md CODE_OF_CONDUCT.md docs/
|
|
|
|
%{_bindir}/oomd
|
|
|
|
%{_unitdir}/oomd.service
|
2020-02-14 23:12:39 +00:00
|
|
|
%{_mandir}/man1/oomd.*
|
2019-09-12 20:11:45 +00:00
|
|
|
%config(noreplace) %{_sysconfdir}/oomd/
|
|
|
|
|
|
|
|
%post
|
|
|
|
%systemd_post oomd.service
|
|
|
|
|
|
|
|
%preun
|
|
|
|
%systemd_preun oomd.service
|
|
|
|
|
|
|
|
%postun
|
|
|
|
%systemd_postun_with_restart oomd.service
|
|
|
|
|
|
|
|
%changelog
|
2023-01-19 22:40:50 +00:00
|
|
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-7
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
|
|
|
2022-08-09 20:35:38 +00:00
|
|
|
* Tue Aug 09 2022 Davide Cavalca <dcavalca@fedoraproject.org> - 0.5.0-6
|
2022-08-09 20:33:23 +00:00
|
|
|
- Backport upstream commit to add a missing include
|
|
|
|
Fixes: RHBZ#2113559
|
|
|
|
|
2022-07-22 01:55:03 +00:00
|
|
|
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-5
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
|
|
|
2022-01-20 22:14:07 +00:00
|
|
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-4
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
|
|
|
2021-11-03 19:24:04 +00:00
|
|
|
* Wed Nov 03 2021 Björn Esser <besser82@fedoraproject.org> - 0.5.0-3
|
|
|
|
- Rebuild (jsoncpp)
|
|
|
|
|
2021-07-22 17:06:14 +00:00
|
|
|
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-2
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
|
|
|
2021-06-24 14:57:27 +00:00
|
|
|
* Wed Jun 23 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 0.5.0-1
|
|
|
|
- Update to 0.5.0
|
|
|
|
|
2021-03-02 15:13:11 +00:00
|
|
|
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.4.0-6
|
|
|
|
- Rebuilt for updated systemd-rpm-macros
|
|
|
|
See https://pagure.io/fesco/issue/2583.
|
|
|
|
|
2021-02-18 18:30:04 +00:00
|
|
|
* Wed Feb 17 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 0.4.0-5
|
|
|
|
- Build for EPEL 8
|
|
|
|
- Make tests conditional
|
|
|
|
- Replace gcc-11 patch with upstream commits
|
|
|
|
|
2021-01-26 22:23:28 +00:00
|
|
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.0-4
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
|
|
|
2020-10-30 20:23:23 +00:00
|
|
|
* Fri Oct 30 2020 Jeff Law <law@redhat.com> - 0.4.0-3
|
|
|
|
- Fix missing #includes for gcc-11
|
|
|
|
|
2020-07-28 12:35:22 +00:00
|
|
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.0-2
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
|
|
|
2020-06-04 16:31:28 +00:00
|
|
|
* Thu Jun 4 2020 Filipe Brandenburger <filbranden@gmail.com> - 0.4.0-1
|
|
|
|
- Upgrade to v0.4.0
|
|
|
|
|
2020-05-30 13:02:28 +00:00
|
|
|
* Sat May 30 2020 Björn Esser <besser82@fedoraproject.org> - 0.3.2-2
|
|
|
|
- Rebuild (jsoncpp)
|
|
|
|
|
2020-02-19 20:59:03 +00:00
|
|
|
* Wed Feb 19 2020 Filipe Brandenburger <filbranden@gmail.com> - 0.3.2-1
|
|
|
|
- Update to v0.3.2
|
|
|
|
|
2020-02-14 23:12:39 +00:00
|
|
|
* Tue Feb 18 2020 Filipe Brandenburger <filbranden@gmail.com> - 0.3.1-1
|
|
|
|
- Update to v0.3.1
|
|
|
|
|
2020-01-29 20:07:36 +00:00
|
|
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.0-6
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
|
|
|
2019-11-14 19:39:04 +00:00
|
|
|
* Thu Nov 14 2019 Björn Esser <besser82@fedoraproject.org> - 0.2.0-5
|
|
|
|
- Rebuild (jsoncpp)
|
|
|
|
|
2019-09-12 21:04:45 +00:00
|
|
|
* Thu Sep 12 2019 Filipe Brandenburger <filbranden@gmail.com> - 0.2.0-4
|
|
|
|
- First official build for Fedora
|
|
|
|
- Exclude 32-bit architectures, which fail to build.
|
|
|
|
|
2019-09-12 20:11:45 +00:00
|
|
|
* Tue Sep 10 2019 Filipe Brandenburger <filbranden@gmail.com> - 0.2.0-3
|
|
|
|
- Initial release of oomd RPM package
|