<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Feb 27, 2014 at 10:28 AM, Sean Darcy <span dir="ltr"><<a href="mailto:seandarcy2@gmail.com" target="_blank" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=seandarcy2@gmail.com&cc=&bcc=&su=&body=','_blank','location=yes,menubar=yes,resizable=yes,width=800,height=600');return false;">seandarcy2@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">On 02/26/2014 02:02 AM, Tzafrir Cohen wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
On Tue, Feb 25, 2014 at 05:04:26PM -0500, Sean Darcy wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
On 02/25/2014 02:03 PM, Ben Langfeld wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
After a conversation with Rusty last week, I've become aware that for a<br>
simple installation of asterisk (11) from the CentOS repositories at<br>
<a href="http://packages.asterisk.org/centos/" target="_blank">http://packages.asterisk.org/<u></u>centos/</a>, the 'current' repo at<br>
<a href="http://packages.digium.com/centos" target="_blank">http://packages.digium.com/<u></u>centos</a> is required to satisfy the dependency<br>
of the 'asterisk' package on 'asterisk-dahdi'.<br>
<br>
I understand that there are licensing reasons for this package to not be<br>
available from the community repo, and I'm not going to get into the<br>
complexity of that, but this situation is rather odd. It's required to<br>
add a total of three repos, from two different domains, just to do 'yum<br>
install asterisk' and get something from this decade. This seems<br>
excessively complex, and likely unnecessary.<br>
<br>
Is there anything that can be done to simplify this? Is the dependency<br>
on asterisk-dahdi really necessary? Is there a reason not to publish the<br>
contents of the 'current' repo to all of the 'asterisk-MAJOR' repos, to<br>
reduce the required repo-count to 1?<br>
<br>
Cheers,<br>
Ben Langfeld<br>
<br>
<br>
</blockquote>
Does there need to be a dependency on asterisk-dahdi? Asterisk works<br>
just fine without dahdi. Can it be an "add-on" if dahdi is wanted?<br>
Is it required to specify dahdi at compilation to use the dahdi<br>
package later?<br>
</blockquote>
<br>
dpkg has not only Depends but also Recommends (packages that SHOULD BE<br>
installed for the package to work properly, but can not a strict<br>
dependency) and Suggests (nice-to-have provisions).<br>
<br>
We currently have asterisk-dahdi as a Suggests.<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
If asterisk is built with dahdi, does it need the dahdi package? All<br>
of the dahdi package? or just the tools? Perhaps asterisk-dahdi<br>
could just be the tools (which would meet the Fedora criterion,<br>
right?), and the kernel modules an "add-on" package.<br>
</blockquote>
<br>
Asterisk uses libtonezone from dahdi-tools (right? Just chan_dahdi?).<br>
Asterisk-dahdi are all the modules that will not work without DAHDI<br>
support: chan_dahdi, app_meetme, res_timing_dahdi, codec_dahdi, and a<br>
few other minor modules.<br>
<br>
The kernel modules are from a different package that is independent of<br>
Asterisk. It is also a package that will not get into Fedora any time<br>
soon. It has two licensing issues:<br>
<br>
1. binary-only objects optionally used to build some of the modules.<br>
2. firmware files.<br>
<br>
(2) can be fixed in retrospect at distribution time. But (1) has to be<br>
tended to at build time. The Debian packages thus fail to include (1)[1]<br>
and sort-of-work-around (2) with a package in non-free[2].<br>
<br>
[1] <a href="http://patch-tracker.debian.org/patch/series/view/dahdi-linux/1:2.7.0.1~dfsg-1/no_firmware_download" target="_blank">http://patch-tracker.debian.<u></u>org/patch/series/view/dahdi-<u></u>linux/1:2.7.0.1~dfsg-1/no_<u></u>firmware_download</a><br>

<br>
[2] Debian's firmware policy is stricter than Fedora's, and some of the<br>
firmwares will be legal for Fedora. The ones not currently not even<br>
included in the Debian package will not.<br>
<br>
</blockquote>
<br>
Thanks for the description. I understand better now.<br>
<br>
If I understand correctly, to build asterisk with chan_dahdi selected in menuseelect, libtonezone from dahdi-tools is required. Once built, dahdi and it's various modules will only work if those modules, the firmware and the kernel modules are present. If they are not present, dahdi will just fail to load, the rest of asterisk will work just fine. Correct?<br>

<br>
<br>
If so, why can't Fedora (and Debian) have an asterisk package with chan_dahdi selected, requiring libtonezone.so, which doesn't cause any issues with the packaging criteria. This way, all users can run yum install asterisk from the fedora repo. If they need dahdi, they will need to specify another repo which would have a dahdi package with the modules and firmware.<span class=""><font color="#888888"><br>

<br></font></span></blockquote><div>That's how Fedora works today.  The asterisk-dahdi subpackage requires only asterisk and dahdi-tools.  Asterisk is built with the dahdi related modules but they're excluded from the main asterisk package and included in the separate dahdi package.  It's up to the installer to make sure the proper kernel modules and dahdi installation are present.</div>
<div><br></div><div><div>%files dahdi</div><div>%defattr(-,root,root,-)</div><div>%{_libdir}/asterisk/modules/app_flash.so</div><div>%{_libdir}/asterisk/modules/app_meetme.so</div><div>%{_libdir}/asterisk/modules/app_page.so</div>
<div>%{_libdir}/asterisk/modules/app_dahdibarge.so</div><div>%{_libdir}/asterisk/modules/app_dahdiras.so</div><div>#%{_libdir}/asterisk/modules/app_dahdiscan.so</div><div>%{_libdir}/asterisk/modules/chan_dahdi.so</div><div>
%{_libdir}/asterisk/modules/codec_dahdi.so</div><div>%{_libdir}/asterisk/modules/res_timing_dahdi.so</div></div><div><br></div><div><br></div><div><br></div></div></div></div>