2
0
Эх сурвалжийг харах

pkg/kamailio/fedora/fc16: Updated .spec file to work for both Fedora 16 and CentOS 6

- Also updated release number to pre3
Peter Dunkley 13 жил өмнө
parent
commit
79de354127

+ 164 - 79
pkg/kamailio/fedora/fc16/kamailio.spec

@@ -1,6 +1,6 @@
 %define name    kamailio
 %define ver     3.3.0
-%define rel     pre2.fc16
+%define rel     pre3%{dist}
 %define _sharedir %{_prefix}/share
 
 
@@ -19,17 +19,18 @@ BuildRoot:     %{_tmppath}/%{name}-%{ver}-buildroot
 Conflicts:     kamailio-mysql < %ver, kamailio-postgresql < %ver
 Conflicts:     kamailio-unixODBC < %ver, kamailio-bdb < %ver
 Conflicts:     kamailio-sqlite < %ver, kamailio-utils < %ver
-Conflicts:     kamailio-cpl < %ver, kamailio-radius < %ver
-Conflicts:     kamailio-snmpstats < %ver, kamailio-presence < %ver
-Conflicts:     kamailio-xmpp < %ver, kamailio-tls < %ver
-Conflicts:     kamailio-carrierroute < %ver, kamailio-purple < %ver
-Conflicts:     kamailio-ldap < %ver, kamailio-xmlrpc < %ver
-Conflicts:     kamailio-perl < %ver, kamailio-lua < %ver
-Conflicts:     kamailio-python < %ver, kamailio-GeoIP < %ver
-Conflicts:     kamailio-regex < %ver, kamailio-dialplan < %ver
-Conflicts:     kamailio-lcr < %ver, kamailio-xmlops < %ver
-Conflicts:     kamailio-redis < %ver, kamailio-json < %ver
-Conflicts:     kamailio-mono < %ver
+Conflicts:     kamailio-cpl < %ver, kamailio-snmpstats < %ver
+Conflicts:     kamailio-presence < %ver, kamailio-xmpp < %ver
+Conflicts:     kamailio-tls < %ver, kamailio-purple < %ver, kamailio-ldap < %ver
+Conflicts:     kamailio-xmlrpc < %ver, kamailio-perl < %ver, kamailio-lua < %ver
+Conflicts:     kamailio-python < %ver, kamailio-regex < %ver
+Conflicts:     kamailio-dialplan < %ver, kamailio-lcr < %ver
+Conflicts:     kamailio-xmlops < %ver
+%if 0%{?fedora}
+Conflicts:     kamailio-radius < %ver, kamailio-carrierroute < %ver
+Conflicts:     kamailio-redis < %ver, kamailio-json < %ver 
+Conflicts:     kamailio-mono < %ver, kamailio-GeoIP < %ver
+%endif
 BuildRequires: bison flex gcc make
 
 %description
@@ -115,20 +116,10 @@ BuildRequires: libxml2-devel
 CPL (Call Processing Language) interpreter for Kamailio.
 
 
-%package radius
-Summary:       Radius AAA API for Kamailio.
-Group:         System Environment/Daemons
-Requires:      radiusclient-ng, kamailio = %ver
-BuildRequires: radiusclient-ng-devel
-
-%description radius
-Radius AAA API for Kamailio.
-
-
 %package snmpstats
 Summary:       SNMP management interface (scalar statistics) for Kamailio.
 Group:         System Environment/Daemons
-Requires:      net-snmp-agent-libs, kamailio = %ver
+Requires:      net-snmp-libs, kamailio = %ver
 BuildRequires: lm_sensors-devel, net-snmp-devel
 
 %description snmpstats
@@ -165,26 +156,6 @@ BuildRequires: openssl-devel
 TLS transport for Kamailio.
 
 
-%package carrierroute
-Summary:       Routing, balancing, and blacklisting for Kamailio.
-Group:         System Environment/Daemons
-Requires:      libconfuse, kamailio = %ver
-BuildRequires: libconfuse-devel
-
-%description carrierroute
-Routing, balancing, and blacklisting for Kamailio.
-
-
-%package  purple
-Summary:  Multi-protocol IM and presence gateway module.
-Group:    System Environment/Daemons
-Requires: glib, libpurple, libxml2, kamailio = %ver, kamailio-presence = %ver
-BuildRequires: glib-devel, libpurple-devel, libxml2-devel
-
-%description purple
-Multi-protocol IM and presence gateway module.
-
-
 %package ldap
 Summary:       LDAP search interface for Kamailio.
 Group:         System Environment/Daemons
@@ -235,16 +206,6 @@ BuildRequires: python-devel
 Python extensions for Kamailio.
 
 
-%package GeoIP
-Summary:       Max Mind GeoIP real-time query support for Kamailio.
-Group:         System Environment/Daemons
-Requires:      GeoIP, kamailio = %ver
-BuildRequires: GeoIP-devel
-
-%description GeoIP
-Max Mind GeoIP real-time query support for Kamailio.
-
-
 %package regex
 Summary:       PCRE mtaching operations for Kamailio.
 Group:         System Environment/Daemons
@@ -285,6 +246,41 @@ BuildRequires: libxml2-devel
 XML operation functions for Kamailio.
 
 
+%package  purple
+Summary:  Multi-protocol IM and presence gateway module.
+Group:    System Environment/Daemons
+%if 0%{?fedora}
+Requires: glib, libpurple, libxml2, kamailio = %ver, kamailio-presence = %ver
+BuildRequires: glib-devel, libpurple-devel, libxml2-devel
+%else
+Requires: glib2, libpurple, libxml2, kamailio = %ver, kamailio-presence = %ver
+BuildRequires: glib2-devel, libpurple-devel, libxml2-devel
+%endif
+
+%description purple
+Multi-protocol IM and presence gateway module.
+
+%if 0%{?fedora}
+%package radius
+Summary:       Radius AAA API for Kamailio.
+Group:         System Environment/Daemons
+Requires:      radiusclient-ng, kamailio = %ver
+BuildRequires: radiusclient-ng-devel
+
+%description radius
+Radius AAA API for Kamailio.
+
+
+%package carrierroute
+Summary:       Routing, balancing, and blacklisting for Kamailio.
+Group:         System Environment/Daemons
+Requires:      libconfuse, kamailio = %ver
+BuildRequires: libconfuse-devel
+
+%description carrierroute
+Routing, balancing, and blacklisting for Kamailio.
+
+
 %package redis
 Summary:       REDIS NoSQL database connector for Kamailio.
 Group:         System Environment/Daemons
@@ -315,6 +311,17 @@ BuildRequires: mono-devel
 Mono extensions for Kamailio.
 
 
+%package GeoIP
+Summary:       Max Mind GeoIP real-time query support for Kamailio.
+Group:         System Environment/Daemons
+Requires:      GeoIP, kamailio = %ver
+BuildRequires: GeoIP-devel
+
+%description GeoIP
+Max Mind GeoIP real-time query support for Kamailio.
+%endif
+
+
 
 %prep
 %setup -n %{name}-%{ver}
@@ -326,12 +333,21 @@ make FLAVOUR=kamailio cfg prefix=/usr cfg_prefix=$RPM_BUILD_ROOT\
 	basedir=$RPM_BUILD_ROOT cfg_target=/%{_sysconfdir}/kamailio/\
 	modules_dirs="modules modules_k"
 make
+%if 0%{?fedora}
 make every-module skip_modules="auth_identity db_cassandra iptrtpproxy\
 	db_oracle memcached mi_xmlrpc osp" group_include="kstandard kmysql\
 	kpostgres kunixodbc kldap kperl kpython klua kutils kpurple ktls kxmpp\
 	kcpl ksnmpstats kcarrierroute kpresence kradius kgeoip kregex kdialplan\
 	klcr ksqlite kredis kjson kmono kberkeley" include_modules="xmlrpc\
 	xmlops"
+%else
+make every-module skip_modules="auth_identity db_cassandra iptrtpproxy\
+	db_oracle memcached mi_xmlrpc osp" group_include="kstandard kmysql\
+	kpostgres kunixodbc kldap kperl kpython klua kutils kpurple ktls kxmpp\
+	kcpl ksnmpstats kpresence kregex kdialplan\
+	klcr ksqlite kberkeley" include_modules="xmlrpc\
+	xmlops"
+%endif
 
 
 
@@ -339,6 +355,7 @@ make every-module skip_modules="auth_identity db_cassandra iptrtpproxy\
 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
 
 make install
+%if 0%{?fedora}
 make install-modules-all skip_modules="auth_identity db_cassandra iptrtpproxy\
 	db_oracle memcached mi_xmlrpc osp" group_include="kstandard kmysql\
 	kpostgres kunixodbc kldap kperl kpython klua kutils kpurple ktls kxmpp\
@@ -347,12 +364,28 @@ make install-modules-all skip_modules="auth_identity db_cassandra iptrtpproxy\
 	xmlops"
 
 mkdir -p $RPM_BUILD_ROOT/%{_unitdir}
-install -m644 pkg/kamailio/fedora/fc16/kamailio.service \
+install -m644 pkg/kamailio/fedora/fc%{?fedora}/kamailio.service \
 		$RPM_BUILD_ROOT/%{_unitdir}/kamailio.service
 
 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig
-install -m644 pkg/kamailio/fedora/fc16/kamailio.sysconfig \
+install -m644 pkg/kamailio/fedora/fc%{?fedora}/kamailio.sysconfig \
 		$RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/kamailio
+%else
+make install-modules-all skip_modules="auth_identity db_cassandra iptrtpproxy\
+	db_oracle memcached mi_xmlrpc osp" group_include="kstandard kmysql\
+	kpostgres kunixodbc kldap kperl kpython klua kutils kpurple ktls kxmpp\
+	kcpl ksnmpstats kpresence kregex kdialplan\
+	klcr ksqlite kberkeley" include_modules="xmlrpc\
+	xmlops"
+
+mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d
+install -m755 pkg/kamailio/centos/%{?centos}/kamailio.init \
+		$RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d/kamailio
+
+mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig
+install -m644 pkg/kamailio/centos/%{?centos}/kamailio.sysconfig \
+		$RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/kamailio
+%endif
 
 
 
@@ -369,14 +402,23 @@ rm -rf "$RPM_BUILD_ROOT"
 
 
 %post
+%if 0%{?fedora}
 /bin/systemctl --system daemon-reload
+%else
+/sbin/chkconfig --add kamailio
+%endif
 
 
 
 %preun
 if [ $1 = 0 ]; then
+%if 0%{?fedora}
 	/bin/systemctl stop kamailio.service
 	/bin/systemctl disable kamailio.service 2> /dev/null
+%else
+	/sbin/service kamailio stop > /dev/null 2>&1
+	/sbin/chkconfig --del kamailio
+%endif
 fi
 
 
@@ -479,7 +521,11 @@ fi
 
 %dir %{_sysconfdir}/kamailio
 %config(noreplace) %{_sysconfdir}/kamailio/*
+%if 0%{?fedora}
 %config %{_unitdir}/*
+%else
+%config %{_sysconfdir}/rc.d/init.d/*
+%endif
 %config %{_sysconfdir}/sysconfig/*
 
 %dir %{_libdir}/kamailio
@@ -673,18 +719,6 @@ fi
 %{_libdir}/kamailio/modules_k/cpl-c.so
 
 
-%files radius
-%defattr(-,root,root)
-%{_docdir}/kamailio/modules_k/README.acc_radius
-%{_docdir}/kamailio/modules_k/README.auth_radius
-%{_docdir}/kamailio/modules_k/README.misc_radius
-%{_docdir}/kamailio/modules/README.peering
-%{_libdir}/kamailio/modules_k/acc_radius.so
-%{_libdir}/kamailio/modules_k/auth_radius.so
-%{_libdir}/kamailio/modules_k/misc_radius.so
-%{_libdir}/kamailio/modules/peering.so
-
-
 %files snmpstats
 %defattr(-,root,root)
 %{_docdir}/kamailio/modules_k/README.snmpstats
@@ -741,12 +775,6 @@ fi
 %{_libdir}/kamailio/modules/tls.so
 
 
-%files carrierroute
-%defattr(-,root,root)
-%doc %{_docdir}/kamailio/modules/README.carrierroute
-%{_libdir}/kamailio/modules/carrierroute.so
-
-
 %files purple
 %defattr(-,root,root)
 %doc %{_docdir}/kamailio/modules_k/README.purple
@@ -807,12 +835,6 @@ fi
 %{_libdir}/kamailio/modules/app_python.so
 
 
-%files GeoIP
-%defattr(-,root,root)
-%doc %{_docdir}/kamailio/modules/README.geoip
-%{_libdir}/kamailio/modules/geoip.so
-
-
 %files regex
 %defattr(-,root,root)
 %doc %{_docdir}/kamailio/modules_k/README.regex
@@ -837,6 +859,25 @@ fi
 %{_libdir}/kamailio/modules/xmlops.so
 
 
+%if 0%{?fedora}
+%files radius
+%defattr(-,root,root)
+%{_docdir}/kamailio/modules_k/README.acc_radius
+%{_docdir}/kamailio/modules_k/README.auth_radius
+%{_docdir}/kamailio/modules_k/README.misc_radius
+%{_docdir}/kamailio/modules/README.peering
+%{_libdir}/kamailio/modules_k/acc_radius.so
+%{_libdir}/kamailio/modules_k/auth_radius.so
+%{_libdir}/kamailio/modules_k/misc_radius.so
+%{_libdir}/kamailio/modules/peering.so
+
+
+%files carrierroute
+%defattr(-,root,root)
+%doc %{_docdir}/kamailio/modules/README.carrierroute
+%{_libdir}/kamailio/modules/carrierroute.so
+
+
 %files redis
 %defattr(-,root,root)
 %doc %{_docdir}/kamailio/modules/README.ndb_redis
@@ -857,8 +898,52 @@ fi
 %{_libdir}/kamailio/modules/app_mono.so
 
 
+%files GeoIP
+%defattr(-,root,root)
+%doc %{_docdir}/kamailio/modules/README.geoip
+%{_libdir}/kamailio/modules/geoip.so
+%endif
+
+
 
 %changelog
+* Thu May 31 2012 Peter Dunkley <[email protected]>
+  - Updated rel to pre3
+  - Combined Fedora/CentOS .spec in preparation for Fedora 17
+* Sun May 20 2012 Peter Dunkley <[email protected]>
+  - First version created for Kamailio 3.3.0. Based on spec-file for Fedora
+    created by myself (in turn based on an older spec-file for CentOS created
+    by Ovidiu Sas).
+  - Tested with CentOS 6.2 x86_64.
+  - Builds all Kamailio 3.3.0 modules (modules/modules_k) except:
+    - modules/app_mono: Requires mono which is not in the CentOS 6 repo
+    - modules/auth_identity: Conflicts with TLS unless statically linked (which
+      requires changes to Makefile and is impractical for generic RPM building)
+    - modules/db_cassandra: Requires Cassandra and Thrift which are not in the
+      CentOS 6 repo
+    - modules/geoip: Requires GeoIP which is not in the CentOS 6 repo
+    - modules/iptrtpproxy: Needs local copy of iptables source to build
+      (impractical for generic RPM building)
+    - modules/json: Requires json-c whish is not in the CentOS 6 repo
+    - modules/jsonrpc-c: Requires json-c whish is not in the CentOS 6 repo
+    - modules/ndb_redis: Requires hiredis which is not in the CentOS 6 repo
+    - modules/peering: Requires radiusclient-ng which is not in the CentOS 6
+      repo
+    - modules_k/acc_radius: Requires radiusclient-ng which is not in the CentOS
+      6 repo
+    - modules_k/auth_radius: Required radiusclient-ng which is not in the
+      CentOS 6 repo
+    - modules_k/carrierroute: Requires libconfuse which is not in the CentOS 6
+      repo
+    - modules_k/db_oracle: Requires Oracle which is not in the CentOS 6 repo
+      (and is closed-source)
+    - modules_k/memcached: Module compilation appears to require an older
+      version of libmemcached-devel than the one in the CentOS 6 repo
+    - modules_k/mi_xmlrpc: Requires libxmlrpc-c3 which is not in the CentOS 6
+      repo
+    - modules_k/misc_radius: Requires radiusclient-ng which is not in the
+      CentOS 6 repo
+    - modules_k/osp: Requires OSP Toolkit which is not in the CentOS 6 repo
 * Fri May 18 2012 Peter Dunkley <[email protected]>
   - Added missing BuildRequires (gcc).
   - Added .fc16 to rel.  This makes it easy to tell which distribution the RPMs