-%define _with_dlog_dynamic_filters on
-%bcond_with dlog_dynamic_filters
-
Name: dlog
Summary: Logging service
-Version: 7.0.1
+Version: 8.0.6
Release: 1
Group: System/Libraries
License: Apache-2.0, MIT
BuildRequires: libtool
BuildRequires: pkgconfig(capi-base-common)
BuildRequires: pkgconfig(libtzplatform-config)
+BuildRequires: linux-tizen-modules-headers
+%if 0%{?lowmem_notification:1}
+BuildRequires: pkgconfig(vconf)
+BuildRequires: pkgconfig(gio-2.0)
+%endif
%if 0%{?gcov:1}
BuildRequires: lcov
BuildRequires: zip
License: Apache-2.0
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
+%if 0%{?lowmem_notification:1}
+Requires: pkgconf(gio-2.0)
+%endif
%description logger
%package -n dlogutil
Group: Development/Libraries
%description -n dlogutil
+%package config-backend-zero-copy
+License: Apache-2.0
+Summary: Force usage of zero-copy dlog backend
+Group: Base/Startup
+%description config-backend-zero-copy
+Provides dlog config to enable zero-copy backend and tunes libdlog
+performance while sacrificing some of dlog features (static and
+dynamic filtering)
+
%package config-syslog
License: Apache-2.0
Summary: Logger: syslog-source logging via dlog
This package contains gcov code coverage/profiling files for libdlog.
%endif
+%package unittests
+Summary: Coverage tests
+
+%description unittests
+Not actually unit tests, named that way just to conform to specification
+
+%isu_package
+
%prep
%setup -q
TEST_CFLAGS="-Wno-gnu-variable-sized-type-not-at-end -Wno-logical-op-parentheses"
%if 0%{?gcov:1}
-export CFLAGS+=" -fprofile-arcs -ftest-coverage"
-export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
-export LDFLAGS+=" -lgcov"
+export CAPI_GCOV_CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
+export CAPI_GCOV_CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage"
+export CAPI_GCOV_LDFLAGS="$LDFLAGS -lgcov"
TEST_CFLAGS+=" -ftest-coverage"
%endif
%autogen --disable-static
%configure --disable-static \
-%if %{without dlog_dynamic_filters}
---disable-dynamic-filters
-%else
---enable-dynamic-filters
+%if 0%{?lowmem_notification:1}
+--enable-lowmem-notification
%endif
make %{?jobs:-j%jobs} CFLAGS+='-D__DLOG_VERSION=\"%{version}\" -D__DLOG_RELEASE=\"%{release}\"'
make dox
%if 0%{?gcov:1}
-mkdir -p gcov-obj
-find ./src/libdlog -name '*.gcno' -exec cp '{}' gcov-obj ';'
-%endif
-
-%if 0%{?gcov:1}
%check -n libdlog
-lcov -c --ignore-errors graph --no-external -q -d ./src/libdlog -o dlog.info
+lcov -c --ignore-errors graph --no-external -q -d ./src -o dlog.info
genhtml dlog.info -o dlog.out
zip -r dlog.zip dlog.out dlog.info
install -m 0644 dlog.zip %{buildroot}%{_datadir}/gcov/
mkdir -p %{buildroot}/var/lib/dlog-tests
mkdir -p %{buildroot}/usr/share/dlog-filters.conf.test
-
-%if %{without dlog_dynamic_filters}
-rm -f %{buildroot}%{_bindir}/dlogctl
-sed -i -e 's,^\(dynamic_config_path=\),#\1,g' -e 's,^\(limiter_apply_to_all_buffers=\),#\1,g' %{buildroot}%{_sysconfdir}/dlog.conf
-%endif
+mkdir -p %{buildroot}/var/lib/dlog-unittests
+mkdir -p %{buildroot}/usr/share/dlog-filters.conf.unittest
%if 0%{?gcov:1}
-mkdir -p %{buildroot}%{_datadir}/gcov/obj/%{name}
-install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj/%{name}
+builddir=$(basename $PWD)
+gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
+mkdir -p "$gcno_obj_dir"
+find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
%endif
%files -n dlogutil
%attr(750,log,log) %{_bindir}/dlogmetrics
%attr(755,log,log) %{_bindir}/dlog_redirect_stdout
%{_unitdir}/dlog_cleanup.service
-
-%if %{with dlog_dynamic_filters}
%attr(750,log,log) %{_bindir}/dlogctl
-%endif
%post -n dlogutil
-%if %{with dlog_dynamic_filters}
chsmack %{_bindir}/dlogctl -a "System::Tools"
-%endif
%post -n libdlog -p /sbin/ldconfig
%{_sysconfdir}/dlog.conf
%{_sysconfdir}/dlog.conf.d/20-pipe.conf
%{_sysconfdir}/dlog.conf.d/25-logger.conf
+# not in a separate package for debugging convenience
+%{_sysconfdir}/dlog.conf.d/86-disable-dlog.conf_inactive
%attr(755,log,log) /var/log/dlog
%attr(2551,log,log) %{_libexecdir}/dlog-log-critical
/usr/lib/tmpfiles.d/dlog-run.conf
%{_libdir}/pkgconfig/dlogutil.pc
%{_libdir}/pkgconfig/dlog-redirect-stdout.pc
+%files unittests
+%{_bindir}/tizen-unittests/%{name}/run-unittest.sh
+%{_bindir}/tizen-unittests/%{name}/test_capi_coverage
+%{_bindir}/tizen-unittests/%{name}/test_libdlogutil_cov
+%{_datadir}/dlog-coverage.conf
+%dir %attr(755,log,log) /var/lib/dlog-unittests
+%dir %attr(755,log,log) /usr/share/dlog-filters.conf.unittest
+
%files logger
%manifest dlog.manifest
%license LICENSE.APACHE2.0
%attr(750,log,log) %{_bindir}/dlog_logger
%{_unitdir}/basic.target.wants/dlog_logger.service
%{_unitdir}/dlog_logger.service
+/usr/lib/systemd/system-generators/dlog-unit-generator
+
+%files config-backend-zero-copy
+%manifest dlog.manifest
+%license LICENSE.APACHE2.0 LICENSE.MIT
+/usr/lib/modules/modules-load.d/tizen-modules-dlog-zero-copy.conf
+%{_sysconfdir}/dlog.conf.d/30-zero-copy.conf
%files config-syslog
%manifest dlog.manifest
%manifest dlog.manifest
%license LICENSE.APACHE2.0 LICENSE.MIT
%{_bindir}/dlog_test
+%{_bindir}/dlog_test_header
+%{_bindir}/dlog_test_daemon_early_quit
%{_bindir}/dlog_cpu
/usr/share/doc/dlog/README.testsuite
%{_libexecdir}/libdlog/perf_libdlog
%{_libexecdir}/libdlog/dlog_stdout_benchmark
+%{_libexecdir}/libdlog/dlog_compression_benchmark
%{_libexecdir}/libdlog/test_libdlog
%{_libexecdir}/libdlog/test_libdlogutil
+%{_libexecdir}/libdlog/test_verifytime
%{_libexecdir}/libdlog/test_libredirect
%{_libexecdir}/libdlog/test_libredirect_multi
%{_libexecdir}/libdlog/test_filters
+%{_libexecdir}/libdlog/test_config_redirect
%{_datadir}/dlog-pipe.conf.test
%{_datadir}/dlog-logger.conf.test
+%{_datadir}/dlog-zero-copy.conf.test
%{_datadir}/dlog-logger.conf.alias
%{_datadir}/dlog-pipe.conf.cpu
%{_datadir}/dlog-logger.conf.cpu
%{_datadir}/dlog-pipe.conf.qos
%{_datadir}/dlog-logger.conf.qos
+%{_datadir}/dlog-pipe.conf.plog
+%{_datadir}/dlog-logger.conf.plog
%{_datadir}/dlog-pipe.conf.autodetect
%{_datadir}/dlog-logger.conf.autodetect
+%{_datadir}/dlog-logger.conf.stdout_enable.1
+%{_datadir}/dlog-logger.conf.stdout_enable.2
+%{_datadir}/dlog-logger.conf.stdout_enable.3
+%{_datadir}/dlog-pipe.conf.stdout_enable.1
+%{_datadir}/dlog-pipe.conf.stdout_enable.2
+%{_datadir}/dlog-pipe.conf.stdout_enable.3
+%{_datadir}/dlog-logger.conf.compress
+%{_datadir}/dlog-pipe.conf.compress
%{_sysconfdir}/dlog.conf.d/99-dlog-logger.disable-platform-logging-for-testsuite.conf
%dir %attr(755,log,log) /var/lib/dlog-tests
%dir %attr(755,log,log) /usr/share/dlog-filters.conf.test
%post tests
chsmack -a System /var/lib/dlog-tests
echo "Warning! Installation of dlog-tests will break platform logging."
-echo "This is done intentionally, to make logger backend testing possible."
+echo "This is done intentionally, to make logger and zero-copy backend testing possible."
echo "To restore normal behavior, please uninstall dlog-tests package."
echo ""
echo "For more information please read the /usr/share/doc/dlog/README.testsuite file"
echo ""
-echo "A reboot is required to properly configure logger backend for testing."
+echo "A reboot is required to properly configure logger and zero-copy backend for testing."
%if 0%{?gcov:1}
%files gcov