tests: extract daemon early quit test to a separate file
[platform/core/system/dlog.git] / packaging / dlog.spec
index 8d3806e..0acacf8 100644 (file)
@@ -1,16 +1,12 @@
-%define _with_dlog_dynamic_filters on
-%bcond_with dlog_dynamic_filters
-
 Name:       dlog
 Summary:    Logging service
-Version:    6.5.8
+Version:    8.0.6
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0, MIT
 Source0:    %{name}-%{version}.tar.gz
 Source101:  packaging/dlog.manifest
 Source501:  packaging/01-dlog.rules
-Source502:  packaging/logger-devices.conf
 
 # NOTE: hardcoded instead of a build dependency on libudev.
 #       Needed to prevent a cyclic build dependency in case
@@ -23,6 +19,11 @@ BuildRequires: automake
 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
@@ -67,6 +68,9 @@ Summary:    Logger service
 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
@@ -74,10 +78,14 @@ Summary:    print log data to the screen
 Group:      Development/Libraries
 %description -n dlogutil
 
-%package    config-backend-logger
-Summary:    Android-logger backend selection for dlog
-%description config-backend-logger
-Change dlog backend to logger backend. Require kernel support (Android-logger)
+%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
@@ -118,6 +126,14 @@ Group:    Development/Libraries
 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
 
@@ -127,9 +143,9 @@ CFLAGS="-Wno-gnu-variable-sized-type-not-at-end -g"
 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
 
@@ -143,10 +159,8 @@ cp %{SOURCE101} .
 
 %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}\"'
@@ -159,13 +173,8 @@ make check 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/
@@ -188,22 +197,18 @@ ln -s ../dlog_dev-log.socket %{buildroot}%{_unitdir}/sockets.target.wants/dlog_d
 mkdir -p %{buildroot}%{_udevrulesdir}
 install -m 0644 %SOURCE501 %{buildroot}%{_udevrulesdir}/01-dlog.rules
 
-mkdir -p %{buildroot}%{_unitdir}/dlog_logger.service.d
-install -m 0644 %SOURCE502 %{buildroot}%{_unitdir}/dlog_logger.service.d/logger-devices.conf
-
 mkdir -p %{buildroot}/var/log/dlog
 
 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
-install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
+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
@@ -215,15 +220,10 @@ install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
 %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
 
@@ -241,6 +241,9 @@ chsmack -e 'System' %{_libexecdir}/dlog-log-critical
 %license LICENSE.APACHE2.0
 %{_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
@@ -268,18 +271,27 @@ chsmack -e 'System' %{_libexecdir}/dlog-log-critical
 %{_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-logger
+%files config-backend-zero-copy
 %manifest dlog.manifest
 %license LICENSE.APACHE2.0 LICENSE.MIT
-%{_sysconfdir}/dlog.conf.d/25-logger.conf
-%{_unitdir}/dlog_logger.service.d/logger-devices.conf
+/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
@@ -302,22 +314,40 @@ chsmack -e 'System' %{_libexecdir}/dlog-log-critical
 %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
@@ -325,12 +355,12 @@ chsmack -e 'System' %{_libexecdir}/dlog-log-critical
 %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