From d22517cbae1c8459977176334e0ca4230d56a6a6 Mon Sep 17 00:00:00 2001 From: Jared K. Smith Date: May 25 2017 01:56:44 +0000 Subject: Update to support systemd --- diff --git a/.gitignore b/.gitignore index 59a51a5..4f14b45 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,7 @@ dahdi-linux-2.3.0.1.tar.gz /dahdi-linux-2.10.0.tar.gz.asc /dahdi-tools-2.10.0.tar.gz /dahdi-tools-2.10.0.tar.gz.asc +/dahdi-tools-2.11.1.tar.gz +/dahdi-tools-2.11.1.tar.gz.asc +/dahdi-linux-2.11.1.tar.gz +/dahdi-linux-2.11.1.tar.gz.asc diff --git a/dahdi-tools.spec b/dahdi-tools.spec index 5e5dd17..85bf971 100644 --- a/dahdi-tools.spec +++ b/dahdi-tools.spec @@ -1,9 +1,9 @@ -%define tools_version 2.10.0 -%define linux_version 2.10.0 +%global tools_version 2.11.1 +%global linux_version 2.11.1 Name: dahdi-tools Version: %{tools_version} -Release: 8%{?dist} +Release: 3%{?dist} Summary: Userspace tools to configure the DAHDI kernel modules Group: System Environment/Libraries @@ -14,34 +14,34 @@ Source0: http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases Source1: http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases/dahdi-tools-%{tools_version}.tar.gz.asc Source2: http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases/dahdi-linux-%{linux_version}.tar.gz Source3: http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases/dahdi-linux-%{linux_version}.tar.gz.asc +# Add SystemD service file +Source4: dahdi.service # Add wcopenpci to initial blacklist Patch0: dahdi-tools-blacklist-wcopenpci.patch # Fix gcc warning (upgraded to error) for what was almost certainly # an incorrect use of the logical negation operator -Patch1: mpptalk-oper-fix.patch +#Patch1: mpptalk-oper-fix.patch # Fix GCC warning for unused variables, bug #1306634, # fixed in upstream after 2.11.0 -Patch2: dahdi-tools-2.10.0-Remove-unused-rcsid.patch +#Patch2: dahdi-tools-2.10.0-Remove-unused-rcsid.patch +# Fix Makefile.legacy so that it adds the -fPIC linker flag +Patch3: dahdi-tools_fix-legacy-make.patch + -BuildRequires: coreutils -BuildRequires: findutils -BuildRequires: gcc BuildRequires: libusb-devel -BuildRequires: make BuildRequires: newt-devel BuildRequires: perl BuildRequires: perl-podlators -BuildRequires: sed -BuildRequires: systemd +BuildRequires: perl-generators +BuildRequires: udev +%{?systemd_requires} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: dahdi-tools-libs%{?_isa} = %{version}-%{release} +Requires: systemd-udev Requires(pre): %{_sbindir}/useradd Requires(pre): %{_sbindir}/groupadd -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/chkconfig -Requires(preun): /sbin/service Conflicts: zaptel-utils @@ -63,6 +63,7 @@ The dahdi-tools-libs package contains libraries for accessing DAHDI hardware. Summary: Development files for DAHDI Group: Development/Libraries Requires: dahdi-tools-libs%{?_isa} = %{version}-%{release} +BuildRequires: chrpath %description devel The dahdi-devel package contains libraries and header files for @@ -71,29 +72,48 @@ developing applications that use DAHDI hardware. %prep %setup0 -q -n dahdi-tools-%{tools_version} -a 2 ln -s dahdi-linux-%{linux_version}/include include -%{__perl} -pi -e 's/chkconfig:\s([0-9]+)\s([0-9]+)\s([0-9]+)/chkconfig: - \2 \3/' dahdi.init %patch0 -p1 -b .blacklist -%patch1 -p0 -b .oper-fix -%patch2 -p1 -b .gcc6 + +%configure --with-dahdi=`pwd` --enable-shared --with-pic + +# Fix makefile to pass appropriate linker flags to Makefile.legacy +%patch3 -p1 -b .legacy-fix +# Fix perl directory in Makefile +sed -i -r -e 's"perllibdir = /usr/local/share/perl5"perllibdir = %{perl_vendorlib}"' Makefile # allow overrding the variable in Makefile -sed -i s/UDEVRULES_DIR:=/UDEVRULES_DIR=/ Makefile +#sed -i s/UDEVRULES_DIR:=/UDEVRULES_DIR=/ Makefile + +# Copy SystemD service file +cp -pa %{SOURCE4} dahdi.service + +# Fix incorrect FSF addresses +sed -i -e \ + 's/675 Mass Ave, Cambridge, MA 02139/51 Franklin St, Boston, MA 02110/' \ + xpp/*.c xpp/*.h xpp/xtalk/*.c xpp/xtalk/*.h xpp/xtalk/include/xtalk/*.h \ + xpp/waitfor_xpds xpp/xpp_fxloader + +sed -i -e \ + 's/59 Temple Place, Suite 330, Boston, MA 02111-1307/51 Franklin St, Boston, MA 02110/' \ + LICENSE + %build -%configure --with-dahdi=`pwd` +make %{?_smp_mflags} LDFLAGS="${LDFLAGS} -fPIC" -make %{?_smp_mflags} %install -mkdir -p %{buildroot}%{_initrddir} -%make_install config PERLLIBDIR=%{perl_vendorlib} UDEVRULES_DIR=%{_udevrulesdir} udevrulesdir=%{_udevrulesdir} +%make_install config PERLLIBDIR=%{perl_vendorlib} perllibdir=%{perl_vendorlib} UDEVRULES_DIR=%{_udevrulesdir} udevrulesdir=%{_udevrulesdir} install -D -p -m 0644 include/dahdi/user.h %{buildroot}%{_includedir}/dahdi/user.h install -D -p -m 0644 include/dahdi/user.h %{buildroot}%{_includedir}/dahdi/dahdi_config.h find %{buildroot} -name '*.a' -delete -ln -sf ../../..%{_datadir}/dahdi/xpp_fxloader %{buildroot}%{_sysconfdir}/hotplug/usb/xpp_fxloader rm -f %{buildroot}%{_sbindir}/sethdlc +rm -f %{buildroot}%{_libdir}/libtonezone.la +chrpath --delete %{buildroot}%{_sbindir}/dahdi_cfg +mkdir -p %{buildroot}%{_unitdir} +install -D -p -m 0644 dahdi.service %{buildroot}%{_unitdir}/dahdi.service %pre %{_sbindir}/groupadd -r dahdi &>/dev/null || : @@ -101,13 +121,13 @@ rm -f %{buildroot}%{_sbindir}/sethdlc -c 'DAHDI User' -g dahdi dahdi &>/dev/null || : %post -/sbin/chkconfig --add dahdi +%systemd_post dahdi.service %preun -if [ "$1" -eq "0" ]; then - /sbin/service dahdi stop > /dev/null 2>&1 || : - /sbin/chkconfig --del dahdi -fi +%systemd_preun dahdi.service + +%postun +%systemd_postun_with_restart dahdi.service %post libs -p /sbin/ldconfig @@ -119,18 +139,11 @@ fi %dir %{_sysconfdir}/dahdi %config(noreplace) %{_sysconfdir}/bash_completion.d/dahdi %config(noreplace) %{_sysconfdir}/dahdi/assigned-spans.conf.sample -%config(noreplace) %{_sysconfdir}/dahdi/genconf_parameters -%config(noreplace) %{_sysconfdir}/dahdi/init.conf -%config(noreplace) %{_sysconfdir}/dahdi/modules +%config(noreplace) %{_sysconfdir}/dahdi/modules.sample %config(noreplace) %{_sysconfdir}/dahdi/span-types.conf.sample -%config(noreplace) %{_sysconfdir}/dahdi/system.conf -%{_sysconfdir}/hotplug/usb/xpp_fxloader -%config(noreplace) %{_sysconfdir}/hotplug/usb/xpp_fxloader.usermap -%config(noreplace) %{_sysconfdir}/modprobe.d/dahdi.conf -%config(noreplace) %{_sysconfdir}/modprobe.d/dahdi.blacklist.conf +%config(noreplace) %{_sysconfdir}/dahdi/system.conf.sample %{_udevrulesdir}/dahdi.rules %{_udevrulesdir}/xpp.rules -%{_initrddir}/dahdi %{_sbindir}/astribank_allow %{_sbindir}/astribank_hexload %{_sbindir}/astribank_is_starting @@ -190,6 +203,9 @@ fi %{_mandir}/man8/xpp_sync.8.gz %{perl_vendorlib}/Dahdi.pm %{perl_vendorlib}/Dahdi +%{_sbindir}/xtalk_send +%{_mandir}/man8/xtalk_send.8.gz +%{_unitdir}/dahdi.service %files libs %license LICENSE LICENSE.LGPL @@ -201,6 +217,18 @@ fi %{_libdir}/*.so %changelog +* Wed May 24 2017 Jared Smith - 2.11.1-3 +- Add missing Requires and BuildRequires + +* Wed May 24 2017 Jared Smith - 2.11.1-2 +- Fix dependencies +- Replace defines with globals +- Fix incorrect FSF addresses with a little sed magic + +* Wed Mar 30 2016 Jared Smith - 2.11.1-1 +- Update to upstream 2.11.1 release +- Add systemd support + * Wed Mar 30 2016 Petr Pisar - 2.10.0-8 - Fix GCC warning for unused variables (bug #1306634) - Modernize spec file diff --git a/dahdi.service b/dahdi.service new file mode 100644 index 0000000..f2546a9 --- /dev/null +++ b/dahdi.service @@ -0,0 +1,44 @@ +[Unit] +Description=The DAHDI drivers allow you to use your linux computer to accept incoming data and voice interfaces +After=local-fs.target + +[Service] +Type=oneshot +RemainAfterExit=yes + +Environment=DAHDI_MODULES_FILE=/etc/dahdi/modules +Environment=DAHDI_CFG_CMD=/usr/sbin/dahdi_cfg +Environment=XPP_SYNC=auto +EnvironmentFile=-/etc/dahdi/init.conf + +ExecStartPre=/usr/bin/test -f ${DAHDI_MODULES_FILE} +ExecStartPre=/usr/bin/test -x ${DAHDI_CFG_CMD} +ExecStartPre=/usr/sbin/modprobe dahdi +# Note: Some of the commands in the following script are fatal, others are not. +ExecStart=/bin/sh -c '\ + /usr/bin/sed -e "s/#.*//" ${DAHDI_MODULES_FILE} | xargs -r -n1 /usr/sbin/modprobe ;\ + if [ "$ASTERISK_SUPPORTS_DAHDI_HOTPLUG" = "yes" ]; then \ + aas_param="/sys/module/dahdi/parameters/auto_assign_spans" ;\ + aas=$(cat "$aas_param" 2>/dev/null) ;\ + if [ "$aas" -ge 0 ]; then \ + /usr/share/dahdi/waitfor_xpds || exit 1 ;\ + fi ;\ + fi ;\ + /usr/share/dahdi/dahdi_auto_assign_compat ;\ + $DAHDI_CFG_CMD || exit 1 ;\ + [ -x /usr/sbin/fxotune ] && [ -r /etc/fxotune.conf ] && /usr/sbin/fxotune -s ;\ + [ -e /sys/bus/astribanks ] && LC_ALL=C /usr/sbin/xpp_sync "$XPP_SYNC" ;\ + if echo /var/lib/digium/licenses/HPEC-*.lic | grep -v "\*" | grep -q .; then \ + if [ ! -x /usr/sbin/dahdihpec_enable ]; then \ + echo "The dahdihpec_enable binary is not installed" ;\ + exit 1 ;\ + fi ;\ + /usr/sbin/dahdihpec_enable || exit 1 ;\ + fi ;\ + echo Done ;\ +' + +ExecStop=/bin/sh -c '/usr/sbin/modprobe -r $(/usr/bin/sed -e "s/#.*//" ${DAHDI_MODULES_FILE}) ${DAHDI_UNLOAD_MODULES}' + +[Install] +WantedBy=multi-user.target diff --git a/sources b/sources index dcbab0c..079dfd5 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -99a534861662471906cf1a06cdf92c29 dahdi-linux-2.10.0.tar.gz -054b1a965040c793f35e75f9ae790caa dahdi-linux-2.10.0.tar.gz.asc -220fceb696177d9bd6803a01fa0df37c dahdi-tools-2.10.0.tar.gz -2ad83490c1910d9511819421ce35c5e3 dahdi-tools-2.10.0.tar.gz.asc +SHA512 (dahdi-tools-2.11.1.tar.gz) = d13f799baeaecab4601a379fb703fc169906e873f71baa9d13d688b2a3f4490a1c59eea8bd50e1a08a0712b38e556f8a17d02a8ea5289a003ca91b570ae5b8a6 +SHA512 (dahdi-tools-2.11.1.tar.gz.asc) = 6d17c72f69989f0a1f01a2b2e767922ddbe2be9b94a8b3fb95ba15294f71894ededbaddd2d682eb9a202971dda1f66385c69607092a3572e49c1f9b4b1547ebe +SHA512 (dahdi-linux-2.11.1.tar.gz) = db15d9237f157b5349de8f4cdb45573ed42e1dd25c83f900835c7e15637a19e1e95c7c990dc786c1e3f37f32419f3d009e179d27b5d16421789ff9bc76f54224 +SHA512 (dahdi-linux-2.11.1.tar.gz.asc) = 42f071362a56ee6727e9fec4ac1a437391cb7888492aab934cdd82bb2a830ead87e3d36535461e627dea321eda3dc7cb8b91593e86bb5eed193ca612cd6be5d7