On 06/05/2015 09:55 AM, Aline Manera wrote:
On 03/06/2015 10:39, Ramon Medeiros wrote:
> Make install now will install firewalld and systemctl service. Also,
> it will create base file structure to run kimchi (what was being created
> at rpm spec).
>
> Changes:
>
> v2:
> Use macros to determine systemd directory
> Do not use root permissions on make install script (like rebooting
> systemctl)
> ---
> Makefile.am | 50
> +++++++++++++++++++++++++++----------------
> configure.ac | 9 ++++++++
> contrib/kimchi.spec.fedora.in | 16 --------------
> contrib/kimchi.spec.suse.in | 18 ----------------
> 4 files changed, 41 insertions(+), 52 deletions(-)
>
> diff --git a/Makefile.am b/Makefile.am
> index 91a0fa2..46b0b5b 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -115,27 +115,41 @@ ChangeLog:
> fi
>
> install-data-local:
> - @if test -d /usr/lib/systemd/system/ ; then \
> - $(INSTALL_DATA) contrib/kimchid.service.fedora
> /usr/lib/systemd/system/kimchid.service; \
> - systemctl daemon-reload; \
> - elif test -d /etc/systemd/system; then \
> - $(INSTALL_DATA) contrib/kimchid.service.fedora
> /etc/systemd/system/kimchid.service; \
> - systemctl daemon-reload; \
> - else \
> - $(INSTALL_DATA) contrib/kimchid.sysvinit /etc/init.d/kimchid; \
> - chmod +x /etc/init.d/kimchid; \
> - fi
> + @if test -d $(systemdsystemunitdir) ; then \
> + mkdir -p $(DESTDIR)/$(systemdsystemunitdir); \
> + $(INSTALL_DATA) contrib/kimchid.service.fedora
> $(DESTDIR)/$(systemdsystemunitdir)/kimchid.service; \
> + else \
> + mkdir -p $(DESTDIR)/etc/init.d/ \
> + $(INSTALL_DATA) contrib/kimchid.sysvinit
> $(DESTDIR)/etc/init.d/kimchid; \
> + chmod +x $(DESTDIR)/etc/init.d/kimchid; \
> + fi; \
> + if test -d /usr/lib/firewalld/services/; then \
> + mkdir -p $(DESTDIR)/usr/lib/firewalld/services/; \
> + $(INSTALL_DATA) src/firewalld.xml
> $(DESTDIR)/usr/lib/firewalld/services/kimchid.xml; \
> + fi; \
> + mkdir -p
> $(DESTDIR)/var/lib/kimchi/{debugreports,screenshots,vnc-tokens,isos}
> + touch $(DESTDIR)/var/lib/kimchi/objectstore
> + mkdir -p $(DESTDIR)/var/log/kimchi/
> + touch $(DESTDIR)/var/log/kimchi/kimchi-access.log
> + touch $(DESTDIR)/var/log/kimchi/kimchi-error.log
> + mkdir -p $(DESTDIR)/etc/kimchi/
> + touch $(DESTDIR)/etc/nginx/conf.d/kimchi.conf
You don't need to create the above directories/files as they will be
created on demand on server start up.
which files you are saying? These files are
not created on startup:
mkdir -p
$(DESTDIR)/var/lib/kimchi/{debugreports,screenshots,vnc-tokens,isos}
touch $(DESTDIR)/var/lib/kimchi/objectstore
mkdir -p $(DESTDIR)/var/log/kimchi/
> uninstall-local:
> - @if test -f /usr/lib/systemd/system/kimchid.service; then \
> - $(RM) /usr/lib/systemd/system/kimchid.service; \
> - systemctl daemon-reload; \
> - elif test -f /etc/systemd/system/kimchid.service; then \
> - $(RM) /etc/systemd/system/kimchid.service; \
> + @if test -f $(systemdsystemunitdir)/kimchid.service; then \
> + $(RM) $(DESTDIR)/$(systemdsystemunitdir)/kimchid.service; \
> elif test -f /etc/init.d/kimchid; then \
> - $(RM) /etc/init.d/kimchid; \
> - fi
> -
> + $(RM) $(DESTDIR)/etc/init.d/kimchid; \
> + $(RM) $(DESTDIR)/etc/init/kimchi.conf; \
> + fi; \
> + if test -d /usr/lib/firewalld/services/; then \
> + $(RM) $(DESTDIR)/usr/lib/firewalld/services/kimchid.xml; \
> + fi; \
> + $(RM) -rf $(DESTDIR)/var/lib/kimchi
> + $(RM) -rf $(DESTDIR)/var/log/kimchi
> + $(RM) -rf $(DESTDIR)/etc/kimchi
> + $(RM) $(DESTDIR)/etc/nginx/conf.d/kimchi.conf
> +
> VERSION:
> @if test -d .git; then \
> git describe --abbrev=0 > $@; \
> diff --git a/configure.ac b/configure.ac
> index f5091b8..0261b5f 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -64,6 +64,15 @@ else
> AC_SUBST([ENABLE_SAMPLE], [False])
> fi
> +# check for systemd
> +PKG_PROG_PKG_CONFIG
> +AC_ARG_WITH([systemdsystemunitdir],
> + AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for
> systemd service files]),
> + [], [with_systemdsystemunitdir=$($PKG_CONFIG
> --variable=systemdsystemunitdir systemd)])
> +if test "x$with_systemdsystemunitdir" != xno; then
> + AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
> +fi
> +
So the user will need to pass that information during the build?
Don't we have other way to discover it automatically?
No, the user will not
need to pass it. Please, try to use it in your
system. After running ./autogen --system, you will see the variable
systemdsystemunitdir at Makefile
> AC_ARG_WITH(
> [spice-html5],
> [AS_HELP_STRING([--with-spice-html5],
> diff --git a/contrib/kimchi.spec.fedora.in
> b/contrib/kimchi.spec.fedora.in
> index 30f8417..dc5533a 100644
> --- a/contrib/kimchi.spec.fedora.in
> +++ b/contrib/kimchi.spec.fedora.in
> @@ -85,22 +85,6 @@ make DESTDIR=%{buildroot} install
>
> %if 0%{?with_systemd}
>
> -# create /var/lib/kimchi structure
> -mkdir -p
> %{buildroot}/%{_sharedstatedir}/kimchi/{debugreports,screenshots,vnc-tokens,isos}
> -touch %{buildroot}/%{_sharedstatedir}/kimchi/objectstore
> -
> -# create /var/log/kimchi structure
> -mkdir -p %{buildroot}/%{_localstatedir}/log/kimchi/
> -touch %{buildroot}/%{_localstatedir}/log/kimchi/kimchi-access.log
> -touch %{buildroot}/%{_localstatedir}/log/kimchi/kimchi-error.log
> -
> -# create /etc/kimchi structure
> -mkdir -p %{buildroot}/%{_sysconfdir}/kimchi/
> -touch %{buildroot}/%{_sysconfdir}/nginx/conf.d/kimchi.conf
> -
> -# Install the systemd scripts
> -install -Dm 0644 contrib/kimchid.service.fedora
> %{buildroot}%{_unitdir}/kimchid.service
> -install -Dm 0640 src/firewalld.xml
> %{buildroot}%{_prefix}/lib/firewalld/services/kimchid.xml
> %endif
>
> %if 0%{?rhel} == 6
> diff --git a/contrib/kimchi.spec.suse.in b/contrib/kimchi.spec.suse.in
> index bf85661..5681a60 100644
> --- a/contrib/kimchi.spec.suse.in
> +++ b/contrib/kimchi.spec.suse.in
> @@ -54,24 +54,6 @@ make
> rm -rf %{buildroot}
> make DESTDIR=%{buildroot} install
>
> -# create /var/lib/kimchi structure
> -mkdir -p
> %{buildroot}/%{_var}/lib/kimchi/{debugreports,screenshots,vnc-tokens,isos}
> -touch %{buildroot}/%{_var}/lib/kimchi/objectstore
> -
> -# create /var/log/kimchi structure
> -mkdir -p %{buildroot}/%{_localstatedir}/log/kimchi/
> -touch %{buildroot}/%{_localstatedir}/log/kimchi/kimchi-access.log
> -touch %{buildroot}/%{_localstatedir}/log/kimchi/kimchi-error.log
> -
> -# create /etc/kimchi structure
> -mkdir -p %{buildroot}/%{_sysconfdir}/kimchi/
> -
> -# create nginx configuration
> -touch %{buildroot}/%{_sysconfdir}/nginx/conf.d/kimchi.conf
> -
> -# Install the SysV init scripts
> -install -Dm 0755 contrib/kimchid.sysvinit
> %{buildroot}%{_initrddir}/kimchid
> -
> %post
> chkconfig kimchid on
>
--
Ramon Nunes Medeiros
Kimchi Developer
Linux Technology Center Brazil
IBM Systems & Technology Group
Phone : +55 19 2132 7878
ramonn(a)br.ibm.com