aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorBalint Reczey <balint@balintreczey.hu>2013-03-06 13:31:08 +0000
committerBalint Reczey <balint@balintreczey.hu>2013-03-06 13:31:08 +0000
commita8f543b56b86e1ac5246c70918dc7cb0f372ed77 (patch)
tree5aa30d8c53957d915c3ef987af3ee5bff4893adf /tools
parent974c0e18b9af3da1fdea4363f4abe37259238498 (diff)
Merge asn2deb and idl2deb from official Debian package
svn path=/trunk/; revision=48133
Diffstat (limited to 'tools')
-rwxr-xr-xtools/asn2deb219
-rwxr-xr-xtools/idl2deb216
2 files changed, 435 insertions, 0 deletions
diff --git a/tools/asn2deb b/tools/asn2deb
new file mode 100755
index 0000000000..e61f1dfe33
--- /dev/null
+++ b/tools/asn2deb
@@ -0,0 +1,219 @@
+#!/usr/bin/env python
+
+# asn2deb - quick hack by W. Borgert <debacle@debian.org> to create
+# Debian GNU/Linux packages from ASN.1 files for Wireshark.
+# Copyright 2004, W. Borgert
+
+# ASN.1 module for Wireshark, use of snacc type table:
+# Copyright 2003, Matthijs Melchior <matthijs.melchior@xs4all.nl>
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.com>
+# Copyright 1998 Gerald Combs
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+import getopt, os, string, sys, time
+
+scriptinfo = """asn2deb version 2004-02-17
+Copyright 2004, W. Borgert
+Free software, released under the terms of the GPL."""
+
+options = {'asn': None,
+ 'dbopts': "",
+ 'email': "invalid@invalid.invalid",
+ 'help': 0,
+ 'name': "No Name",
+ 'preserve': 0,
+ 'version': 0}
+
+def bootstrap():
+ """Generate Makefile.in and configure script."""
+ os.system("aclocal-1.7")
+ os.system("autoconf")
+ os.system("automake-1.7 --add-missing --copy --foreign")
+
+def create_file(filename, content, mode = None):
+ """Create a file with given content."""
+ global options
+ if options['preserve'] and os.path.isfile(filename):
+ return
+ f = open(filename, 'w')
+ f.write(content)
+ f.close()
+ if mode:
+ os.chmod(filename, mode)
+
+def create_files(version, deb, email, asn, name, iso, rfc):
+ """Create all files for the .deb build process."""
+ base = asn.lower()[:-5]
+ create_file("Makefile.am", """#
+
+BUILT_SOURCES = %s.tt
+asn1ttdir = $(datadir)/wireshark/asn1
+asn1tt_DATA = %s.tt
+
+%s.tt: """ % ((base,) * 3) + asn + """
+ snacc -u /usr/include/snacc/asn1/asn-useful.asn1 -T $@ $<
+""")
+
+ create_file("configure.ac", """AC_INIT(%s, 1.0)
+AM_INIT_AUTOMAKE
+AM_MAINTAINER_MODE
+AC_PROG_INSTALL
+SNACC=\"`type -p snacc`\"
+AC_SUBST(SNACC)
+dnl WIRESHARK_VERSION=\"%s\"
+dnl plugindir=\"$prefix/share/wireshark/asn.1\"
+dnl AC_SUBST(plugindir)
+AC_OUTPUT([Makefile])
+""" % (base, version))
+
+ if not os.path.isdir("debian"):
+ os.mkdir("debian")
+
+ create_file("debian/rules", """#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/autotools.mk
+
+PREFIX=`pwd`/debian/wireshark-asn1-%s
+
+binary-post-install/wireshark-asn1-%s::
+ rm -f $(PREFIX)/usr/lib/wireshark/plugins/%s/*.a
+""" % (base, base, version), 0755)
+
+ create_file("debian/control", """Source: wireshark-asn1-%s
+Section: net
+Priority: optional
+Maintainer: %s <%s>
+Standards-Version: 3.6.1.0
+Build-Depends: snacc, autotools-dev, debhelper, cdbs
+
+Package: wireshark-asn1-%s
+Architecture: all
+Depends: wireshark (= %s)
+Description: ASN.1/BER dissector for %s
+ This package provides a type table for decoding BER (Basic Encoding
+ Rules) data over TCP or UDP, described by an ASN.1 (Abstract Syntax
+ Notation 1) file '%s.asn1'.
+""" % (base, name, email, base, deb, base, base))
+
+ create_file("debian/changelog",
+ """wireshark-asn1-%s (0.0.1-1) unstable; urgency=low
+
+ * Automatically created package.
+
+ -- %s <%s> %s
+""" % (base, name, email, rfc + "\n (" + iso + ")"))
+
+ create_file("debian/copyright",
+ """This package has been created automatically be asn2deb on
+%s for Debian GNU/Linux.
+
+Wireshark: http://www.wireshark.com/
+
+Copyright:
+
+GPL, as evidenced by existence of GPL license file \"COPYING\".
+(the GNU GPL may be viewed on Debian systems in
+/usr/share/common-licenses/GPL)
+""" % (iso))
+
+def get_wrs_version():
+ """Detect version of wireshark-dev package."""
+ deb = os.popen(
+ "dpkg-query -W --showformat='${Version}' wireshark-dev").read()
+ debv = string.find(deb, "-")
+ if debv == -1: debv = len(deb)
+ version = deb[string.find(deb, ":")+1:debv]
+ return version, deb
+
+def get_time():
+ """Detect current time and return ISO and RFC time string."""
+ currenttime = time.gmtime()
+ return time.strftime("%Y-%m-%d %H:%M:%S +0000", currenttime), \
+ time.strftime("%a, %d %b %Y %H:%M:%S +0000", currenttime)
+
+def main():
+ global options
+ process_opts(sys.argv)
+ iso, rfc = get_time()
+ version, deb = get_wrs_version()
+ create_files(version, deb,
+ options['email'], options['asn'], options['name'],
+ iso, rfc)
+ bootstrap()
+ os.system("dpkg-buildpackage " + options['dbopts'])
+
+def process_opts(argv):
+ """Process command line options."""
+ global options
+ try:
+ opts, args = getopt.getopt(argv[1:], "a:d:e:hn:pv",
+ ["asn=",
+ "dbopts=",
+ "email=",
+ "help",
+ "name=",
+ "preserve",
+ "version"])
+ except getopt.GetoptError:
+ usage(argv[0])
+ sys.exit(1)
+ for o, a in opts:
+ if o in ("-a", "--asn"):
+ options['asn'] = a
+ if o in ("-d", "--dbopts"):
+ options['dbopts'] = a
+ if o in ("-e", "--email"):
+ options['email'] = a
+ if o in ("-h", "--help"):
+ options['help'] = 1
+ if o in ("-n", "--name"):
+ options['name'] = a
+ if o in ("-p", "--preserve"):
+ options['preserve'] = 1
+ if o in ("-v", "--version"):
+ options['version'] = 1
+ if options['help']:
+ usage(argv[0])
+ sys.exit(0)
+ if options['version']:
+ print scriptinfo
+ sys.exit(0)
+ if not options['asn']:
+ print "mandatory ASN.1 file parameter missing"
+ sys.exit(1)
+ if not os.access(options['asn'], os.R_OK):
+ print "ASN.1 file not accessible"
+ sys.exit(1)
+
+def usage(name):
+ """Print usage help."""
+ print "Usage: " + name + " <parameters>\n" + \
+ "Parameters are\n" + \
+ " --asn -a asn1file, ASN.1 file to use (mandatory)\n" + \
+ " --dbopts -d opts, options for dpkg-buildpackage\n" + \
+ " --email -e address, use e-mail address\n" + \
+ " --help -h, print help and exit\n" + \
+ " --name -n name, use user name\n" + \
+ " --preserve -p, do not overwrite files\n" + \
+ " --version -v, print version and exit\n" + \
+ "Example:\n" + \
+ name + " -e me@foo.net -a bar.asn1 -n \"My Name\" " + \
+ "-d \"-rfakeroot -uc -us\""
+if __name__ == '__main__':
+ main()
diff --git a/tools/idl2deb b/tools/idl2deb
new file mode 100755
index 0000000000..b857be3670
--- /dev/null
+++ b/tools/idl2deb
@@ -0,0 +1,216 @@
+#!/usr/bin/env python
+
+# idl2deb - quick hack by W. Martin Borgert <debacle@debian.org> to create
+# Debian GNU/Linux packages from idl2wrs modules for Wireshark.
+# Copyright 2003, 2008, W. Martin Borgert
+
+# Makefile.am and configure.ac code by:
+# Copyright 2001, Ericsson Inc.
+# Frank Singleton <frank.singleton@ericsson.com>
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.com>
+# Copyright 1998 Gerald Combs
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+import optparse
+import os
+import string
+import sys
+import time
+
+scriptinfo = """idl2deb version 2008-03-10
+Copyright 2003, 2008, W. Martin Borgert
+Free software, released under the terms of the GPL."""
+
+def bootstrap():
+ """Generate Makefile.in and configure script."""
+ os.system("aclocal")
+ os.system("autoconf")
+ os.system("libtoolize --automake --copy --force")
+ os.system("automake --add-missing --copy --foreign")
+
+def create_file(preserve, filename, content, mode = None):
+ """Create a file with given content."""
+ if preserve and os.path.isfile(filename):
+ return
+ f = open(filename, 'w')
+ f.write(content)
+ f.close()
+ if mode:
+ os.chmod(filename, mode)
+
+def create_files(version, deb, email, idl, name, preserve, iso, rfc):
+ """Create all files for the .deb build process."""
+ base = os.path.basename(idl.lower().split(".idl")[0])
+ create_file(preserve, "Makefile.am", """#
+
+plugindir = @plugindir@
+
+plugin_LTLIBRARIES = %s.la
+%s_la_SOURCES = packet-%s.c
+%s_la_LDFLAGS = -module -avoid-version
+
+GLIB_CFLAGS = `pkg-config --cflags glib-2.0`
+GLIB_LIBS = `pkg-config --libs glib-2.0`
+BUILT_SOURCES = packet-%s.c
+INCLUDES = -DHAVE_CONFIG -DHAVE_SYS_TYPES_H -DHAVE_SYS_TIME_H \\
+ -DHAVE_STDARG_H -D_U_=\"__attribute__((unused))\" \\
+ -I/usr/include/wireshark -DWS_VAR_IMPORT=extern $(GLIB_CFLAGS)
+LDADD = $(GLIB_LIBS)
+
+# Libs must be cleared, or else libtool won't create a shared module.
+# If your module needs to be linked against any particular libraries,
+# add them here.
+LIBS =
+
+%s_la_DEPENDENCIES = packet-%s-static.o
+
+packet-%s-static.o: packet-%s.c
+ $(LTCOMPILE) -c -o packet-%s-static.o \\
+ -D__WIRESHARK_STATIC__ packet-%s.c
+
+packet-%s.c: """ % ((base,) * 12) + idl + """
+ $(IDL2WRS) -I. $< > $@
+""")
+
+ create_file(preserve, "configure.ac", """AC_INIT(%s, 1.0)
+AC_PROG_LIBTOOL
+AM_INIT_AUTOMAKE
+AM_MAINTAINER_MODE
+AC_PROG_CC
+AC_STDC_HEADERS
+AC_PROG_INSTALL
+AC_SUBST(CFLAGS)
+AC_SUBST(CPPFLAGS)
+AC_SUBST(LDFLAGS)
+PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.2.2)
+AC_SUBST(GLIB_CFLAGS)
+AC_SUBST(GLIB_LIBS)
+IDL2WRS=\"`type -p idl2wrs`\"
+AC_SUBST(IDL2WRS)
+WIRESHARK_VERSION=\"%s\"
+plugindir=\"$libdir/wireshark/plugins/$WIRESHARK_VERSION\"
+AC_SUBST(plugindir)
+AC_OUTPUT([Makefile])
+""" % (base, version))
+
+ if not os.path.isdir("debian"):
+ os.mkdir("debian")
+
+ create_file(preserve, "debian/rules", """#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/autotools.mk
+
+PREFIX=`pwd`/debian/wireshark-giop-%s
+
+binary-post-install/wireshark-giop-%s::
+ rm -f $(PREFIX)/usr/lib/wireshark/plugins/%s/*.a
+""" % (base, base, version), 0755)
+
+ create_file(preserve, "debian/control", """Source: wireshark-giop-%s
+Section: net
+Priority: optional
+Maintainer: %s <%s>
+Standards-Version: 3.6.1.0
+Build-Depends: wireshark-dev, autotools-dev, debhelper, cdbs
+
+Package: wireshark-giop-%s
+Architecture: any
+Depends: wireshark (= %s), ${shlibs:Depends}
+Description: GIOP dissector for CORBA interface %s
+ This package provides a dissector for GIOP (General Inter-ORB
+ Protocol) for the Wireshark protocol analyser. It decodes the CORBA
+ (Common Object Request Broker Architecture) interfaces described
+ in the IDL (Interface Definition Language) file '%s.idl'.
+""" % (base, name, email, base, deb, base, base))
+
+ create_file(preserve, "debian/changelog",
+ """wireshark-giop-%s (0.0.1-1) unstable; urgency=low
+
+ * Automatically created package.
+
+ -- %s <%s> %s
+""" % (base, name, email, rfc))
+
+ create_file(preserve, "debian/copyright",
+ """This package has been created automatically by idl2deb on
+%s for Debian GNU/Linux.
+
+Wireshark: http://www.wireshark.org/
+
+Copyright:
+
+GPL, as evidenced by existence of GPL license file \"COPYING\".
+(the GNU GPL may be viewed on Debian systems in
+/usr/share/common-licenses/GPL)
+""" % (iso))
+
+def get_wrs_version():
+ """Detect version of wireshark-dev package."""
+ deb = os.popen(
+ "dpkg-query -W --showformat='${Version}' wireshark-dev").read()
+ debv = string.find(deb, "-")
+ if debv == -1: debv = len(deb)
+ version = deb[string.find(deb, ":")+1:debv]
+ return version, deb
+
+def get_time():
+ """Detect current time and return ISO and RFC time string."""
+ currenttime = time.gmtime()
+ return time.strftime("%Y-%m-%d %H:%M:%S +0000", currenttime), \
+ time.strftime("%a, %d %b %Y %H:%M:%S +0000", currenttime)
+
+def main():
+ opts = process_opts(sys.argv)
+ iso, rfc = get_time()
+ version, deb = get_wrs_version()
+ create_files(version, deb,
+ opts.email, opts.idl, opts.name, opts.preserve,
+ iso, rfc)
+ bootstrap()
+ os.system("dpkg-buildpackage " + opts.dbopts)
+
+def process_opts(argv):
+ """Process command line options."""
+ parser = optparse.OptionParser(
+ version=scriptinfo,
+ description="""Example:
+%prog -e me@foo.net -i bar.idl -n \"My Name\" -d \"-rfakeroot -uc -us\"""")
+ parser.add_option("-d", "--dbopts",
+ default="", metavar="opts",
+ help="options for dpkg-buildpackage")
+ parser.add_option("-e", "--email", metavar="address",
+ default="invalid@invalid.invalid",
+ help="use e-mail address")
+ parser.add_option("-i", "--idl", metavar="idlfile",
+ help="IDL file to use (mandatory)")
+ parser.add_option("-n", "--name", default="No Name",
+ help="use user name", metavar="name")
+ parser.add_option("-p", "--preserve", action="store_true",
+ help="do not overwrite files")
+ opts, args = parser.parse_args()
+ if not opts.idl:
+ print "mandatory IDL file parameter missing"
+ sys.exit(1)
+ if not os.access(opts.idl, os.R_OK):
+ print "IDL file not accessible"
+ sys.exit(1)
+ return opts
+
+if __name__ == '__main__':
+ main()