[Kimchi-devel] [PATCH v2] Fix make install for systemd systems
Aline Manera
alinefm at linux.vnet.ibm.com
Fri Jun 5 14:35:06 UTC 2015
On 05/06/2015 11:32, Ramon Medeiros wrote:
>
>
> 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/
>
>
Yes, there are. Otherwise, the user would not be able to start the
server from a "make install" installation.
>
>>
>>> 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
OK. I'll try it.
>>
>>> 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
>>>
>>
>
More information about the Kimchi-devel
mailing list