Browse files

Added experimental RPM packaging stuff

  • Loading branch information...
1 parent 2d59809 commit ecb76b82385b821a1f98076ca0354305e69f81be @vihai committed Mar 20, 2006
Showing with 482 additions and 56 deletions.
  1. +19 −0 ChangeLog
  2. +3 −1 Makefile.am
  3. +8 −4 chan_visdn/chan_visdn.c
  4. +5 −5 modules/hfc-4s/st_port.c
  5. +5 −5 modules/hfc-pci/st_port.c
  6. +5 −5 modules/hfc-usb/st_port.c
  7. +193 −0 visdn-init
  8. +11 −0 visdn-sleep.diff
  9. +41 −0 visdn-sysconfig
  10. +192 −36 visdn.spec.in
View
19 ChangeLog
@@ -2,6 +2,25 @@
# arch-tag: automatic-ChangeLog--daniele@orlandi.com--2005/isdn--devel--0.1
#
+2006-03-20 08:35:04 GMT Daniele Orlandi <daniele@orlandi.com> patch-595
+
+ Summary:
+ Added experimental RPM packaging stuff
+ Revision:
+ isdn--devel--0.1--patch-595
+
+
+ new files:
+ .arch-ids/visdn-init.id .arch-ids/visdn-sleep.diff.id
+ .arch-ids/visdn-sysconfig.id visdn-init visdn-sleep.diff
+ visdn-sysconfig
+
+ modified files:
+ ChangeLog Makefile.am chan_visdn/chan_visdn.c
+ modules/hfc-4s/st_port.c modules/hfc-pci/st_port.c
+ modules/hfc-usb/st_port.c visdn.spec.in
+
+
2006-03-17 16:00:58 GMT Daniele Orlandi <daniele@orlandi.com> patch-594
Summary:
View
4 Makefile.am
@@ -6,10 +6,12 @@ EXTRA_DIST = \
$(astconf_DATA) \
$(noinst_DATA) \
visdn.spec \
+ visdn-init \
+ visdn-sleep.diff \
+ visdn-sysconfig \
modules/linux_compat/linux/kfifo.h \
modules/include/kernel_config.h.in \
modules/include/linux/lapd.h \
- modules/include/linux/lapd_dev.h \
modules/include/linux/vgsm.h \
modules/include/linux/visdn/*.h \
docs/*
View
12 chan_visdn/chan_visdn.c
@@ -2256,19 +2256,23 @@ static int visdn_mgmt_receive(struct visdn_intf *visdn_intf)
switch(hdr.primitive_type) {
case LAPD_MPH_ERROR_INDICATION:
- ast_log(LOG_NOTICE, "MPH-ERROR-INDICATION: %d\n", hdr.param1);
+ visdn_debug("%s: MPH-ERROR-INDICATION: %d\n",
+ visdn_intf->name, hdr.param1);
break;
case LAPD_MPH_ACTIVATE_INDICATION:
- visdn_debug("MPH-ACTIVATE-INDICATION\n");
+ visdn_debug("%s: MPH-ACTIVATE-INDICATION\n",
+ visdn_intf->name);
break;
case LAPD_MPH_DEACTIVATE_INDICATION:
- visdn_debug("MPH-DEACTIVATE-INDICATION\n");
+ visdn_debug("%s: MPH-DEACTIVATE-INDICATION\n",
+ visdn_intf->name);
break;
case LAPD_MPH_INFORMATION_INDICATION:
- visdn_debug("MPH-INFORMATION-INDICATION: %s\n",
+ visdn_debug("%s: MPH-INFORMATION-INDICATION: %s\n",
+ visdn_intf->name,
hdr.param1 == LAPD_MPH_II_CONNECTED ?
"CONNECTED" :
"DISCONNECTED");
View
10 modules/hfc-4s/st_port.c
@@ -529,12 +529,12 @@ static void hfc_st_port_state_change_te(
hfc_st_port_fifo_update(port);
if (old_state == 8)
- visdn_port_error_indication(&port->visdn_port, 0);
+ visdn_port_error_indication(&port->visdn_port, 2);
break;
case 6:
case 8:
- visdn_port_error_indication(&port->visdn_port, 0);
+ visdn_port_error_indication(&port->visdn_port, 2);
break;
case 7:
@@ -543,7 +543,7 @@ static void hfc_st_port_state_change_te(
hfc_st_port_fifo_update(port);
if (old_state == 6 || old_state == 8)
- visdn_port_error_indication(&port->visdn_port, 0);
+ visdn_port_error_indication(&port->visdn_port, 1);
del_timer(&port->timer_t3);
break;
@@ -730,12 +730,12 @@ void hfc_st_port_init(
init_timer(&port->timer_t1);
port->timer_t1.function = hfc_st_port_timer_t1;
port->timer_t1.data = (unsigned long)port;
- port->timer_t1_value = 5 * HZ;
+ port->timer_t1_value = 1 * HZ;
init_timer(&port->timer_t3);
port->timer_t3.function = hfc_st_port_timer_t3;
port->timer_t3.data = (unsigned long)port;
- port->timer_t3_value = 5 * HZ;
+ port->timer_t3_value = 1 * HZ;
port->nt_mode = FALSE;
port->clock_delay = HFC_DEF_TE_CLK_DLY;
View
10 modules/hfc-pci/st_port.c
@@ -459,12 +459,12 @@ static void hfc_st_port_state_change_te(
hfc_card_fifo_update(card);
if (old_state == 8)
- visdn_port_error_indication(&port->visdn_port, 0);
+ visdn_port_error_indication(&port->visdn_port, 2);
break;
case 6:
case 8:
- visdn_port_error_indication(&port->visdn_port, 0);
+ visdn_port_error_indication(&port->visdn_port, 2);
break;
case 7:
@@ -473,7 +473,7 @@ static void hfc_st_port_state_change_te(
hfc_card_fifo_update(card);
if (old_state == 6 || old_state == 8)
- visdn_port_error_indication(&port->visdn_port, 0);
+ visdn_port_error_indication(&port->visdn_port, 1);
del_timer(&port->timer_t3);
break;
@@ -639,12 +639,12 @@ void hfc_st_port_init(
init_timer(&port->timer_t1);
port->timer_t1.function = hfc_st_port_timer_t1;
port->timer_t1.data = (unsigned long)port;
- port->timer_t1_value = 5 * HZ;
+ port->timer_t1_value = 1 * HZ;
init_timer(&port->timer_t3);
port->timer_t3.function = hfc_st_port_timer_t3;
port->timer_t3.data = (unsigned long)port;
- port->timer_t3_value = 5 * HZ;
+ port->timer_t3_value = 1 * HZ;
port->nt_mode = FALSE;
port->clock_delay = HFC_DEF_TE_CLK_DLY;
View
10 modules/hfc-usb/st_port.c
@@ -586,12 +586,12 @@ static void hfc_st_port_state_change_te(
hfc_st_port_fifo_update(port);
if (old_state == 8)
- visdn_port_error_indication(&port->visdn_port, 0);
+ visdn_port_error_indication(&port->visdn_port, 2);
break;
case 6:
case 8:
- visdn_port_error_indication(&port->visdn_port, 0);
+ visdn_port_error_indication(&port->visdn_port, 2);
break;
case 7:
@@ -600,7 +600,7 @@ static void hfc_st_port_state_change_te(
hfc_st_port_fifo_update(port);
if (old_state == 6 || old_state == 8)
- visdn_port_error_indication(&port->visdn_port, 0);
+ visdn_port_error_indication(&port->visdn_port, 1);
break;
}
}
@@ -750,12 +750,12 @@ void hfc_st_port_init(
init_timer(&port->timer_t1);
port->timer_t1.function = hfc_st_port_timer_t1;
port->timer_t1.data = (unsigned long)port;
- port->timer_t1_value = 5 * HZ;
+ port->timer_t1_value = 1 * HZ;
init_timer(&port->timer_t3);
port->timer_t3.function = hfc_st_port_timer_t3;
port->timer_t3.data = (unsigned long)port;
- port->timer_t3_value = 5 * HZ;
+ port->timer_t3_value = 1 * HZ;
port->nt_mode = FALSE;
port->clock_delay = HFC_DEF_TE_CLK_DLY;
View
193 visdn-init
@@ -0,0 +1,193 @@
+#! /bin/sh
+# Copyright (c) 2004 Lele Forzani, Windmill Media, <lele@windmill.it>
+# All rights reserved.
+#
+# Author: Lele Forzani
+#
+# /etc/init.d/visdn
+# and its symbolic link
+# /sbin/visdn
+### BEGIN INIT INFO
+# Provides: visdn
+# Required-Start: $syslog
+# Should-Start:
+# Required-Stop: $syslog
+# Should-Stop:
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Short-Description: vISDN Telephony Interface
+# Description: Starts vISDN Telephony Subsystem drivers
+# vISDN is an ISDN Subsystem for Linux
+#
+### END INIT INFO
+# Check for missing binaries (stale symlinks should not happen)
+# Note: Special treatment of stop for LSB conformance
+
+VISDNCFG_BIN=/usr/sbin/visdn_configurator
+test -x $VISDNCFG_BIN || { echo "$VISDNCFG_BIN not installed";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 5; fi; }
+
+# Check for existence of needed config file and read it
+VISDN_CONFIG=/etc/sysconfig/visdn
+test -r $VISDN_CONFIG || { echo "$VISDN_CONFIG not existing";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 6; fi; }
+
+# Read config
+. $VISDN_CONFIG
+
+. /etc/rc.status
+
+# Reset status of this service
+rc_reset
+
+# Check that telephony is up.
+if [ "${TELEPHONY}" = "no" ]; then
+ exit 0
+fi
+
+if [ "${DEBUG}" = "yes" ]; then
+ ARGS="debug=1"
+fi
+
+
+case "$1" in
+ start)
+ echo -n "Starting vISDN Subsystem. "
+
+ modprobe visdn-netdev
+ modprobe visdn-streamport
+ modprobe visdn-ppp
+ modprobe visdn-timer-system
+ modprobe visdn-ec
+
+ # Load drivers
+ echo
+ echo -n "Loading visdn hardware modules: "
+
+ for x in $MODULES; do
+ if modprobe visdn_${x} ${ARGS} >& /dev/null; then
+ echo -n "$x "
+ fi
+ done
+ i=0
+ while [ ! -e /dev/zap/ctl ] && [ $i -lt 50 ]; do
+ echo -n .
+ : $((i++))
+ usleep 200000
+ done
+ echo
+ echo "Configuring visdn "
+ $VISDNCFG_BIN
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ stop)
+ echo -n "Shutting down visdn hardware modules: "
+
+ for x in $RMODULES; do
+ if rmmod visdn_${x} >& /dev/null; then
+ echo -n "$x "
+ fi
+ done
+ echo
+ echo -n "Shutting down visdn Subsystem "
+
+ rmmod visdn-ec
+ rmmod visdn-timer-system
+ rmmod visdn-ppp
+ rmmod visdn-streamport
+ rmmod visdn-netdev
+ rmmod visdn_softcxc
+ rmmod visdn_core
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ try-restart|condrestart)
+ ## Do a restart only if the service was active before.
+ ## Note: try-restart is now part of LSB (as of 1.9).
+ ## RH has a similar command named condrestart.
+ if test "$1" = "condrestart"; then
+ echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
+ fi
+ $0 status
+ if test $? = 0; then
+ $0 restart
+ else
+ rc_reset # Not running is not a failure.
+ fi
+ # Remember status and be quiet
+ rc_status
+ ;;
+ restart)
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ $0 stop
+ $0 start
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ ## Signal the daemon to reload its config. Most daemons
+ ## do this on signal 1 (SIGHUP).
+ ## If it does not support it, restart.
+
+ echo -n "Reload service zaptel "
+ ## if it supports it:
+
+ $VISDNCFG_BIN
+ rc_status -v
+
+ ## Otherwise:
+ #$0 try-restart
+ #rc_status
+ ;;
+ reload)
+ ## Like force-reload, but if daemon does not support
+ ## signaling, do nothing (!)
+
+ # If it supports signaling:
+ echo -n "Reload service zaptel "
+ $VISDNCFG_BIN
+ rc_status -v
+
+ ## Otherwise if it does not support reload:
+ #rc_failed 3
+ #rc_status -v
+ ;;
+ status)
+ echo -n "Checking for service FOO "
+ ## Check status with checkproc(8), if process is running
+ ## checkproc will return with exit status 0.
+
+ # Return value is slightly different for the status command:
+ # 0 - service up and running
+ # 1 - service dead, but /var/run/ pid file exists
+ # 2 - service dead, but /var/lock/ lock file exists
+ # 3 - service not running (unused)
+ # 4 - service status unknown :-(
+ # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
+
+ # NOTE: checkproc returns LSB compliant status values.
+ #checkproc $FOO_BIN
+ # NOTE: rc_status knows that we called this init script with
+ # "status" option and adapts its messages accordingly.
+ rc_status -v
+ ;;
+ probe)
+ ## Optional: Probe for the necessity of a reload, print out the
+ ## argument to this init script which is required for a reload.
+ ## Note: probe is not (yet) part of LSB (as of 1.9)
+
+ #test /etc/zaptel.conf -nt /var/run/FOO.pid && echo reload
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
+ exit 1
+ ;;
+esac
+rc_exit
View
11 visdn-sleep.diff
@@ -0,0 +1,11 @@
+diff -urN visdn-0.0.0-/scripts/visdn_configurator.in visdn-0.0.0/scripts/visdn_configurator.in
+--- visdn-0.0.0-/scripts/visdn_configurator.in 2006-02-24 00:48:59.000000000 +0100
++++ visdn-0.0.0/scripts/visdn_configurator.in 2006-02-24 01:08:34.810110224 +0100
+@@ -88,6 +88,7 @@
+ $VISDNCTL netdev create \
+ "$NETDEV_REQ_DEVNAME" \
+ "$NETDEV_PROTOCOL" || return
++ sleep 5
+
+ if [ "$NETDEV_TYPE" = "PRI" ] ; then
+ $VISDNCTL netdev \
View
41 visdn-sysconfig
@@ -0,0 +1,41 @@
+## Path: System/Telephony/vISDN
+## Description: Configuration of vISDN Subsystem
+## Type: yesno
+## Config: visdn
+## ServiceReload: visdn
+#
+# load telephony interface
+#
+TELEPHONY=yes
+
+## Path: System/Telephony/vISDN
+## Description: Configuration of vISDN Subsystem
+## Type: yesno
+## Config: visdn
+## ServiceReload: visdn
+#
+# want module debugging
+#
+#DEBUG=yes
+
+## Path: System/Telephony/vISDN
+## Description: Configuration of vISDN Subsystem
+## Type: string
+## Config: visdn
+## ServiceReload: visdn
+#
+# modules to load in load order
+#
+
+MODULES=""
+
+## Path: System/Telephony/vISDN
+## Description: Configuration of vISDN Subsystem
+## Type: string
+## Config: visdn
+## ServiceReload: visdn
+#
+# modules in unload order
+#
+
+RMODULES=""
View
228 visdn.spec.in
@@ -1,57 +1,213 @@
-#
-# spec file for vISDN
-#
-
-BuildRequires: aaa_base acl attr bash bzip2 coreutils cpio cpp devs diffutils filesystem findutils flex gawk glibc glibc-devel glibc-locale grep groff gzip libgcc libnscd libselinux m4 make man mktemp module-init-tools net-tools netcfg patch permissions procinfo procps sed autoconf automake binutils expat gcc libtool pkgconfig rpm
-
-Name: visdn
-License: GPL
-Group: Productivity/Networking/ISDN
-Autoreqprov: on
-Summary: Versatile ISDN framework for Linux
-Version: @PACKAGE_VERSION@
-Release: 1
-URL: http://www.orlandi.com/visdn/
-Source: http://www.orlandi.com/visdn/download/@PACKAGE_TARNAME@-@PACKAGE_VERSION@.tar.bz2
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+
+%define suse_rel %(rpm -q --queryformat='%{VERSION}' suse-release)
+%define name visdn
+%define version 0.0.0
+%define rev 3.20060227
+%define release wml
+%define group Hardware/Telephony
+%define copyright GPL
+
+# neededforbuild udev kernel-source
+
+# "uname -r" output of the kernel to build for, the running one
+# if none was specified with "--define 'kernel <uname -r>'"
+%{!?kernel: %{expand: %%define kernel %(uname -r)}}
+%define kpackage %(echo %{kernel} | sed -e 's#\\(.*\\)\\-\\(.*\\)\\-\\(.*\\)#\\3#' -)
+##%define kversion %(echo %{kernel} | sed -e s/smp/smp/ -)
+%define kversion %(echo %{kernel} | sed -e 's#\\(.*\\)\\-\\(.*\\)\\-\\(.*\\)#\\1-\\2#' -)
+%define krelver %(echo %{kversion} | tr -s '-' '_')
+%if %(echo %{kernel} | grep -c smp)
+ %{expand:%%define ksmp -smp}
+%endif
+%define koverdir %(echo %{kernel} | sed -e 's#\\(.*\\)\\-\\(.*\\)\\-\\(.*\\)#\\1-override-\\3#' -)
+
+
+summary : Linux ISDN Infrastructure
+name : %{name}
+version : %{version}
+release : %{release}.%{rev}
+group : %{group}
+copyright : %{copyright}
+URL : http://www.visdn.org/
+Vendor : Windmill Media <info@windmill.it>
+Packager : Lele Forzani <lele@windmill.it>
+Distribution : [:palantir] telephony toolbox
+
+PreReq: %insserv_prereq %fillup_prereq udev
+PreReq: /usr/sbin/useradd
+
+
+Provides: visdn
+BuildRequires: kernel-source
+
+Source0: %{name}-%{version}.tar.gz
+
+Source10: %{name}-init
+Source11: %{name}-sysconfig
+
+#Patch0: %{name}-sleep.diff
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
%description
-vISDN is an ISDN framework designed to be clean, general purpose, standards
-compliant, for voice and data applications.
+Versatile-ISDN (vISDN for short) is an attempt at writing an ISDN
+implementation for Linux.
+
+vISDN is officially certified from TiLAB (and conforms to TBR)
+Author: Daniele Orlandi <daniele@orlandi.com>
-Authors:
---------
- Daniele Orlandi <daniele@orlandi.com>
+%package -n visdn-asterisk
+Summary: visdn asterisk plugins
+Release: %{release}
+Group: Hardware/ISDN
+BuildRequires: asterisk-devel
+Requires: asterisk
+%description -n visdn-asterisk
+
+Plugins for vISDN support in Asterisk
+
+%package -n visdn-ppp-plugin
+Summary: visdn ppp plugin
+Release: %{release}
+Group: Hardware/ISDN
+BuildRequires: ppp-devel
+Requires: ppp
+%description -n visdn-ppp-plugin
+
+Plugin for vISDN support in pppd
+
+%package -n visdn-devel
+Summary: visdn developement packages
+Release: %{release}
+Group: Hardware/ISDN
+BuildRequires: ppp-devel
+Requires: ppp
+%description -n visdn-devel
+
+Developement files for software based on vISDN's libq931
+
+%package -n kernel%{?ksmp}-module-visdn
+Summary: visdn kernel modules
+Release: %{release}_%{krelver}_%{kpackage}
+Group: Hardware/ISDN
+BuildRequires: kernel-source
+Requires: visdn
+Requires: kernel-%{kpackage} = %{kversion}, /sbin/depmod
+Provides: kernel-modules
+%{?ksmp:Provides: kernel-module-visdn = %{version}-%{release}}
+
+%description -n kernel%{?ksmp}-module-visdn
+
+Infrastructure and Device Kernel Modules for vISDN
+
+package %{kversion} (%{_target_cpu}%{?ksmp:, SMP}).
-%debug_package
%prep
-%setup -q
+%setup -q -n visdn-%{version}
+
+#%patch -p1
%build
-./configure \
- --sysconfdir=/etc \
- --mandir=%{_mandir} \
- --libdir=/usr/%{_lib}
-make %{?jobs:-j%jobs}
+%configure --enable-kernel-modules --enable-pppd-plugin --enable-asterisk-modules \
+ --with-asterisk-modules=%{_libdir}/asterisk/modules
+#make KINCLUDES=/lib/modules/%{kversion}/build/include KSMP=%{?ksmp:-D__SMP__} \
+# KERNEL:=%{kernel}
+
+make
+
%install
-make "DESTDIR=$RPM_BUILD_ROOT" install
+#make install DESTDIR=%{buildroot} KERNEL=%{kernel} \
+# KINCLUDES=/lib/modules/%{kversion}/build/include KSMP=%{?ksmp:-D__SMP__} \
+# INSTALL_MOD_PATH=%{buildroot}
+make install DESTDIR=%{buildroot} INSTALL_MOD_PATH=%{buildroot}
+
+
+#remove useless trails
+rm -f %{buildroot}/usr/lib/pppd/*/*.a %{buildroot}/usr/lib/pppd/*/*.la
+rm -f %{buildroot}/%{_libdir}/asterisk/modules/*.a %{buildroot}/%{_libdir}/asterisk/modules/*.la
+
+# fix for older udev
+%if %suse_version < 1000
+install -m 644 samples/30-visdn.rules-oldudev %{buildroot}/%{_sysconfdir}/udev/rules.d/30-visdn.rules
+%endif
+
+# sorry, our isdn mgmnt group is 'asterisk'
+sed -i -e 's/pbx/asterisk/g' %{buildroot}/%{_sysconfdir}/udev/rules.d/30-visdn.rules
+
+
+install -D -m 644 samples/visdn.conf.sample %{buildroot}/%{_sysconfdir}/%{name}/visdn.conf.sample
+
+# comment away modprobes
+sed -i -e 's/^modprobe/#modprobe/g' %{buildroot}/%{_sbindir}/visdn_configurator
+
+# installs SuSE-style init scripts
+install -D -m 0755 %{SOURCE10} %{buildroot}%{_initrddir}/%{name}
+install -D -m 644 %{SOURCE11} %{buildroot}/etc/sysconfig/%{name}
+ln -s %{_initrddir}/%{name} %{buildroot}/%{_sbindir}/rc%{name}
%clean
-rm -rf %{buildroot}
+rm -rf $RPM_BUILD_ROOT
+
+%pre
%post
+
+%post -n kernel%{?ksmp}-module-visdn
+/sbin/depmod -a -F /boot/System.map-%{kernel} %{kernel} >/dev/null 2>&1 || :
+
+
+
+%preun
+if [ $1 -eq 0 ]; then
+ /sbin/service %{name} stop >/dev/null 2>&1
+ /sbin/chkconfig %{name} --del
+fi
+
%postun
+
+%postun -n kernel%{?ksmp}-module-visdn
+
+
%files
-%defattr(-,root,root)
-%doc AUTHORS COPYING ChangeLog FEATURES INSTALL NEWS
-/lib/*
+%defattr(-,root,root,-)
+%config(noreplace)%{_sysconfdir}/udev/rules.d/30-visdn.rules
+%config(noreplace) /etc/%{name}/
+%config(noreplace)%{_sysconfdir}/sysconfig/%{name}
+%doc ChangeLog
+%doc AUTHORS COPYING INSTALL NEWS README TODO
+%doc samples
+%{_libdir}/*.so
+%{_libdir}/*.so.*
+%{_sbindir}
+%{_initrddir}/%{name}
+
+%files -n visdn-asterisk
+%defattr(-,root,root,-)
+%{_libdir}/asterisk/modules/*.so
+
+%files -n visdn-ppp-plugin
+%defattr(-,root,root,-)
+/usr/lib/pppd/*/*.so
+
+%files -n visdn-devel
+%defattr(-,root,root,-)
+%{_libdir}/*.a
+%{_libdir}/*.la
+%{_includedir}/libq931/
+
+
+%files -n kernel%{?ksmp}-module-visdn
+%defattr(-,root,root,-)
+/lib/modules/
+
+
+%changelog
+* Thu Jan 13 2006 Lele Forzani <lele@windmill.it>
+- Initial release
-%changelog -n visdn
-* Thu Aug 25 2005 - daniele@orlandi.com
-- new package

0 comments on commit ecb76b8

Please sign in to comment.