[Kimchi-devel] [PATCH v2] Fix make install for systemd systems

Ramon Medeiros ramonn at linux.vnet.ibm.com
Tue Jun 9 15:04:36 UTC 2015



On 06/09/2015 11:26 AM, Aline Manera wrote:
>
>
> On 08/06/2015 10:47, 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.
>>
>> Hi Aline,
>>
>> after installing kimchi without creating those files, i got an error 
>> at make check:
>>
>> make[3]: Entering directory '/home/ramonn/GitTrees/KIMCHI/tests'
>> /bin/mkdir -p ../data/screenshots
>> ./run_tests.sh
>> Loading YumUpdate features.
>> Loaded plugins: fastestmirror, ibm-repository, langpacks
>> libvirt: Storage Driver error : cannot open path 
>> '/var/lib/kimchi/isos': No such file or directory
>> Fatal: Unable to craete storage pool ISO. Please, check the 
>> configuration in /home/ramonn/GitTrees/KIMCHI/src/template.conf to 
>> ensure it has a valid storage pool.
>> Details: cannot open path '/var/lib/kimchi/isos': No such file or 
>> directory
>>
>
> When were this directory created before?
It was being created on rpm spec.
>
>> Seems that not all dirs are being created on the startup
>>>
>>>>   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?
>>>
>>>>   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 at br.ibm.com




More information about the Kimchi-devel mailing list