AC_PROG_GCC_TRADITIONAL
AC_PROG_LIBTOOL
-__dlog_backends_selected=0
-
-# backend: pipe
-AC_ARG_ENABLE(pipe, AS_HELP_STRING([--enable-pipe], [enable pipe (log to pipe fd received via unix socket)]),
- [with_pipe=yes],
- with_pipe=no)
-if test "x$with_pipe" = "xyes"; then
- __dlog_backends_selected=$(($__dlog_backends_selected + 1))
-fi
-AM_CONDITIONAL(WITH_PIPE, [test "x$with_pipe" = "xyes"])
-
-# backend: kmsg (requires kernel patch)
-AC_ARG_ENABLE(kmsg, AS_HELP_STRING([--enable-kmsg], [enable kmsg (requires kmsg extension patch)]),
- [with_kmsg=yes],
- with_kmsg=no)
-if test "x$with_kmsg" = "xyes"; then
- __dlog_backends_selected=$(($__dlog_backends_selected + 1))
-fi
-AM_CONDITIONAL(WITH_KMSG, [test "x$with_kmsg" = "xyes"])
-
-# backend: android logger (requires kernel's CONFIG_ANDROID_LOGGER)
-AC_ARG_ENABLE(android_logger, AS_HELP_STRING([--enable-android-logger], [enable android logger (kernels CONFIG_ANDROID_LOGGER)]),
- [with_android_logger=yes],
- with_android_logger=no)
-if test "x$with_android_logger" = "xyes"; then
- __dlog_backends_selected=$(($__dlog_backends_selected + 1))
-fi
-AM_CONDITIONAL(WITH_ANDROID_LOGGER, [test "x$with_android_logger" = "xyes"])
-
-if test $__dlog_backends_selected -ne 1; then
- AC_MSG_ERROR([Exactly one backend needs to be selected.])
-fi
-
# check binary type for dlog debug mode
AC_ARG_ENABLE([debug_mode],
AS_HELP_STRING([--enable-debug_mode Turn on debug_mode]),
Source0: %{name}-%{version}.tar.gz
Source101: packaging/dlogutil.manifest
Source102: packaging/libdlog.manifest
+Source103: packaging/dlogbackend-kmsg.manifest
+Source104: packaging/dlogbackend-logger.manifest
Source301: packaging/dlog_logger.service
Source302: packaging/dlog_logger.path
Source401: packaging/dloginit.service
Source501: packaging/01-dlog.rules
-# Choose dlog backend log device
-# Warning : MUST be only one "ON" in below three switches
-%define backend_kmsg OFF
-%define backend_logger OFF
-%define backend_pipe ON
-
-# Do NOT touch switches below
-%if "%{?tizen_target_name}" == "TM1"
-%define backend_kmsg ON
-%define backend_logger OFF
-%define backend_pipe OFF
-%endif
-
-%if "%{?profile}" == "wearable" || "%{?_with_emulator}" == "1"
-%define backend_kmsg OFF
-%define backend_logger ON
-%define backend_pipe OFF
-%endif
-
%define upgrade_file_path /usr/share/upgrade
BuildRequires: autoconf
Group: Development/Libraries
%description -n libdlog
-dlog API library
+dlog API library. If dlogbackend isn't installed, pipe backend is selected.
%package -n libdlog-devel
Summary: Logging service dlog API
%description -n libdlog-devel
dlog API library
+%package -n dlogbackend-kmsg
+Summary: kmsg backend selection for dlog
+Requires: lib%{name} = %{?epoch:%{epoch}:}%{version}-%{release}
+Conflicts: dlogbackend-logger
+
+%description -n dlogbackend-kmsg
+Change dlog backend to kmsg backend. Require kernel support (multiple kmsg)
+
+%package -n dlogbackend-logger
+Summary: Android-logger backend selection for dlog
+Requires: lib%{name} = %{?epoch:%{epoch}:}%{version}-%{release}
+Conflicts: dlogbackend-kmsg
+
+%description -n dlogbackend-logger
+Change dlog backend to logger backend. Require kernel support (Android-logger)
%package -n dlogutil
Summary: print log data to the screen
cp %{SOURCE101} .
cp %{SOURCE102} .
+cp %{SOURCE103} .
+cp %{SOURCE104} .
%autogen --disable-static
%configure --disable-static \
- %if %{?backend_pipe} == ON
- --enable-pipe \
- %endif
- %if %{?backend_kmsg} == ON
- --enable-kmsg \
- %endif
- %if %{?backend_logger} == ON
- --enable-android-logger \
- %endif
--enable-debug_mode \
TZ_SYS_ETC=%{TZ_SYS_ETC}
make %{?jobs:-j%jobs} \
mkdir -p %{buildroot}/usr/bin/
mkdir -p %{buildroot}%{TZ_SYS_ETC}
+install -m 0644 configs/dlog.conf.pipe %{buildroot}%{TZ_SYS_ETC}/dlog.conf.pipe
+install -m 0644 configs/dlog.conf.kmsg %{buildroot}%{TZ_SYS_ETC}/dlog.conf.kmsg
+install -m 0644 configs/dlog.conf.logger %{buildroot}%{TZ_SYS_ETC}/dlog.conf.logger
mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants/
install -m 0644 %SOURCE301 %{buildroot}%{_unitdir}
install -m 0644 %SOURCE302 %{buildroot}%{_unitdir}/dlog_logger.path
ln -s ../dlog_logger.service %{buildroot}%{_unitdir}/multi-user.target.wants/dlog_logger.service
-%if %{?backend_pipe} == ON
-sed -e '/^Nice=/ d' -i %{buildroot}%{_unitdir}/dlog_logger.service
-%endif
-%if %{?backend_kmsg} == ON
mkdir -p %{buildroot}%{_unitdir}/sysinit.target.wants/
install -m 0644 %SOURCE401 %{buildroot}%{_unitdir}
ln -s ../dloginit.service %{buildroot}%{_unitdir}/sysinit.target.wants/dloginit.service
-%endif
mkdir -p %{buildroot}%{_udevrulesdir}
install -m 0644 %SOURCE501 %{buildroot}%{_udevrulesdir}/01-dlog.rules
mkdir -p %{buildroot}/var/log/dlog
install -D scripts/dlog_upgrade.sh %{buildroot}%{upgrade_file_path}/scripts/dlog_upgrade.sh
+mkdir -p %{buildroot}%{upgrade_file_path}/data
+install -m 0644 configs/dlog.conf.pipe %{buildroot}%{upgrade_file_path}/data/dlog.conf.pipe
+install -m 0644 configs/dlog.conf.kmsg %{buildroot}%{upgrade_file_path}/data/dlog.conf.kmsg
+install -m 0644 configs/dlog.conf.logger %{buildroot}%{upgrade_file_path}/data/dlog.conf.logger
%post
systemctl daemon-reload
%post -n libdlog
/sbin/ldconfig
chsmack -a System /var/log/dlog
+ln -s %{TZ_SYS_ETC}/dlog.conf.pipe %{TZ_SYS_ETC}/dlog.conf
+ln %{upgrade_file_path}/data/dlog.conf.pipe %{upgrade_file_path}/data/dlog.conf
%postun -n libdlog
/sbin/ldconfig
+rm %{TZ_SYS_ETC}/dlog.conf
+rm %{upgrade_file_path}/data/dlog.conf
+
+%pre -n dlogbackend-kmsg
+rm %{TZ_SYS_ETC}/dlog.conf
+rm %{upgrade_file_path}/data/dlog.conf
+
+%post -n dlogbackend-kmsg
+ln -s %{TZ_SYS_ETC}/dlog.conf.kmsg %{TZ_SYS_ETC}/dlog.conf
+ln %{upgrade_file_path}/data/dlog.conf.kmsg %{upgrade_file_path}/data/dlog.conf
+
+%postun -n dlogbackend-kmsg
+rm %{TZ_SYS_ETC}/dlog.conf
+ln -s %{TZ_SYS_ETC}/dlog.conf.pipe %{TZ_SYS_ETC}/dlog.conf
+rm %{upgrade_file_path}/data/dlog.conf
+ln %{upgrade_file_path}/data/dlog.conf.pipe %{upgrade_file_path}/data/dlog.conf
+
+%pre -n dlogbackend-logger
+rm %{TZ_SYS_ETC}/dlog.conf
+rm %{upgrade_file_path}/data/dlog.conf
+
+%post -n dlogbackend-logger
+ln -s %{TZ_SYS_ETC}/dlog.conf.logger %{TZ_SYS_ETC}/dlog.conf
+ln %{upgrade_file_path}/data/dlog.conf.logger %{upgrade_file_path}/data/dlog.conf
+
+%postun -n dlogbackend-logger
+rm %{TZ_SYS_ETC}/dlog.conf
+ln -s %{TZ_SYS_ETC}/dlog.conf.pipe %{TZ_SYS_ETC}/dlog.conf
+rm %{upgrade_file_path}/data/dlog.conf
+ln %{upgrade_file_path}/data/dlog.conf.pipe %{upgrade_file_path}/data/dlog.conf
%files -n dlogutil
%manifest dlogutil.manifest
%files -n libdlog
%manifest libdlog.manifest
+/usr/share/license/%{name}
/usr/share/license/libdlog
%{_libdir}/libdlog.so.0
%{_libdir}/libdlog.so.0.0.0
-%attr(664,log,log) %{TZ_SYS_ETC}/dlog.conf
-/usr/share/license/%{name}
-%if %{?backend_kmsg} == ON
-%attr(700,log,log) %{_sbindir}/dloginit
-%attr(-,log,log) %{_unitdir}/dloginit.service
-%{_unitdir}/sysinit.target.wants/dloginit.service
-%endif
+%attr(664,log,log) %{TZ_SYS_ETC}/dlog.conf.pipe
%attr(755,log,log) /var/log/dlog
%attr(750,log,log) %{_bindir}/dlog_logger
%{_unitdir}/multi-user.target.wants/dlog_logger.service
%{_unitdir}/dlog_logger.service
%{_unitdir}/dlog_logger.path
%attr(664,log,log) /usr/lib/tmpfiles.d/dlog-run.conf
+%{_udevrulesdir}/01-dlog.rules
# For upgrade
%{upgrade_file_path}/scripts/dlog_upgrade.sh
-%{upgrade_file_path}/data/dlog.conf
-%{_udevrulesdir}/01-dlog.rules
+%{upgrade_file_path}/data/dlog.conf.pipe
%files -n libdlog-devel
%{_includedir}/dlog/dlog.h
%{_includedir}/dlog/dlog-internal.h
%{_libdir}/pkgconfig/dlog.pc
%{_libdir}/libdlog.so
+
+%files -n dlogbackend-kmsg
+%manifest dlogbackend-kmsg.manifest
+%attr(664,log,log) %{TZ_SYS_ETC}/dlog.conf.kmsg
+%attr(700,log,log) %{_sbindir}/dloginit
+%attr(-,log,log) %{_unitdir}/dloginit.service
+%{_unitdir}/sysinit.target.wants/dloginit.service
+# For upgrade
+%{upgrade_file_path}/data/dlog.conf.kmsg
+
+%files -n dlogbackend-logger
+%manifest dlogbackend-logger.manifest
+%attr(664,log,log) %{TZ_SYS_ETC}/dlog.conf.logger
+# For upgrade
+%{upgrade_file_path}/data/dlog.conf.logger