Hello,

Thanks for the update. Nice.  This seems to me to be the best way
to handle the issue.

I haven't looked at your full spec file for quite some time and since
it is different from the one in the source code, I will just mention that
in the last one I saw, the RedHat package did not have the necessary
code to automatically generate unique random passwords at initial
installation time.  You may already have this, but if not, it is relatively
easy to do and improves security for users considerable.  The project
spec files (now probably quite out of date) with the necessary code
can be found in <bacula>/platforms/rpms/redhat/bacula.spec.in. 
In particular search for XXX_REPLACE  and you will see how we
do it.

One thing I didn't like about spec files is that we had to duplicate similar
code in a number of places, and I saw no way of creating a sort of
macro or function inside the spec file (I guess it can be done by some
sort of included files).  If you have a better way of resolving that issue
please let me know -- I survive, but I am far from being good at writing
rpm spec files.

Best regards,
Kern

On 03/04/2013 10:33 AM, Petr Hracek wrote:
> Hello,
>
> Yes I think that separate package would be good in spec file
> I have made modifications against upstream:
> diff --git a/bacula.spec b/bacula.spec
> index cc5c31c..3bd79ad 100644
> --- a/bacula.spec
> +++ b/bacula.spec
> @@ -212,9 +212,50 @@ verification of computer data across a network of 
> different computers. It is
>   based on a client/server architecture.
>
>   This package contains the storage daemon, the daemon responsible for 
> writing
> -the data received from the clients onto tape drives or other mass storage
> -devices.
> +the data received from the clients onto other mass storage devices.
>
> +%package storage-tape
> +Summary:                Bacula storage daemon files
> +Group:                  System Environment/Daemons
> +Requires:               bacula-common%{?_isa} = %{version}-%{release}
> +# Storage backends merged into core.
> +Provides:               bacula-storage-common = %{version}-%{release}
> +Obsoletes:              bacula-storage-common < 5.2.2-2
> +Provides:               bacula-storage-mysql = %{version}-%{release}
> +Obsoletes:              bacula-storage-mysql < 5.2.0
> +Provides:               bacula-storage-sqlite = %{version}-%{release}
> +Obsoletes:              bacula-storage-sqlite < 5.2.0
> +Provides:               bacula-storage-postgresql = %{version}-%{release}
> +Obsoletes:              bacula-storage-postgresql < 5.2.0
> +Requires:               mt-st
> +
> +%if 0%{?fedora} == 17
> +Requires(post):         systemd-units
> +Requires(preun):        systemd-units
> +Requires(postun):       systemd-units
> +%endif
> +
> +%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
> +Requires(post):         systemd-sysv
> +Requires(post):         systemd
> +Requires(preun):        systemd
> +Requires(postun):       systemd
> +%endif
> +
> +%if 0%{?rhel} == 5 || 0%{?rhel} == 6
> +Requires(post):         /sbin/chkconfig
> +Requires(preun):        /sbin/chkconfig
> +Requires(preun):        /sbin/service
> +Requires(postun):       /sbin/service
> +%endif
> +
> +%description storage-tape
> +Bacula is a set of programs that allow you to manage the backup, 
> recovery, and
> +verification of computer data across a network of different computers. 
> It is
> +based on a client/server architecture.
> +
> +This package contains the storage daemon, the daemon responsible for 
> writing
> +the data received from the clients onto tape drives devices.
>
>   %package client
>   Summary:                Bacula backup client
> @@ -844,6 +885,11 @@ fi
>   %{_mandir}/man8/bscan.8.*
>   %{_mandir}/man8/btape.8.*
>
> +%files storage-tape
> +%defattr(-,root,root,-)
> +%{_libexecdir}/%{name}/mtx-changer
> +%{_libexecdir}/%{name}/mtx-changer.conf
> +
>   %files client
>   %defattr(-,root,root,-)
>   %{_sbindir}/bacula-fd
>
> [stone@kiasportyw 5.fc19(master)]$ rpm -qpl 
> bacula-storage-tape-5.2.13-5.fc19.i686.rpm
> /usr/libexec/bacula/mtx-changer
> /usr/libexec/bacula/mtx-changer.conf
> [stone@kiasportyw 5.fc19(master)]$ rpm -qpl --requires
> rpm: no arguments given for query
> [stone@kiasportyw 5.fc19(master)]$ rpm -qpl --requires 
> bacula-storage-tape-5.2.13-5.fc19.i686.rpm
> /bin/sh
> bacula-common(x86-32) = 5.2.13-5.fc19
> mt-st
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(FileDigests) <= 4.6.0-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> systemd
> systemd
> systemd
> systemd-sysv
> rpmlib(PayloadIsXz) <= 5.2-1
> /usr/libexec/bacula/mtx-changer
> /usr/libexec/bacula/mtx-changer.conf
> [stone@kiasportyw 5.fc19(master)]$
>
> Would it be OK?
>
> On 03/01/2013 11:37 PM, Kern Sibbald wrote:
>> Hello,
>>
>> Yes, I have been aware of the dependency problem for
>> some time.  The problem is that if the user wants only a disk
>> based backup, which is becoming more and more prevalent,
>> such a dependency forces the user to load a package that
>> may never be used.
>>
>> Possibly the right way to do it is to have a separate Bacula
>> package that adds tape backup.
>>
>> Nothing really pleases me, so in such situations, I usually
>> do nothing until the right solution arises.
>>
>> What do you think?
>>
>> Best regards,
>> Kern
>>
>> On 03/01/2013 10:56 AM, Petr Hracek wrote:
>>> Hi,
>>>
>>> on the base of that bug:
>>> https://bugzilla.redhat.com/show_bug.cgi?id=911573
>>>
>>> Means that when mt command is not existing on the system them mtx-change
>>> does not work.
>>> /usr/libexec/bacula/mtx-changer
>>> or causes problem.
>>>
>>> I have prepared patch which should solve that problem.
>>>
>>> diff --git a/bacula.spec b/bacula.spec
>>> index 8d518a0..a13d35e 100644
>>> --- a/bacula.spec
>>> +++ b/bacula.spec
>>> @@ -185,6 +185,7 @@ Provides:               bacula-storage-sqlite =
>>> %{version}-%{release}
>>>    Obsoletes:              bacula-storage-sqlite < 5.2.0
>>>    Provides:               bacula-storage-postgresql = %{version}-%{release}
>>>    Obsoletes:              bacula-storage-postgresql < 5.2.0
>>> +Requires:               mt-st
>>>
>>>    %if 0%{?fedora} == 17
>>>    Requires(post):         systemd-units
>>>
>>> What do you think about that?
>>>


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to