#! /bin/sh /usr/share/dpatch/dpatch-run ## 02_asn2deb.dpatch by ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: asn2deb - create Debian packages from ASN.1 files @DPATCH@ diff -urNad --exclude=CVS --exclude=.svn ./asn2deb /tmp/dpep-work.5BSR7A/wireshark-0.10.11/asn2deb --- ./asn2deb 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/dpep-work.5BSR7A/wireshark-0.10.11/asn2deb 2005-07-17 19:37:02.000000000 +0200 @@ -0,0 +1,219 @@ +#!/usr/bin/env python + +# asn2deb - quick hack by W. Borgert 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 +# +# Wireshark - Network traffic analyzer +# By Gerald Combs +# 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 + " \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 -urNad --exclude=CVS --exclude=.svn ./asn2deb.dbk /tmp/dpep-work.5BSR7A/wireshark-0.10.11/asn2deb.dbk --- ./asn2deb.dbk 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/dpep-work.5BSR7A/wireshark-0.10.11/asn2deb.dbk 2005-07-17 19:37:02.000000000 +0200 @@ -0,0 +1,158 @@ + +asn2deb"> + debacle@debian.org"> + + Debian GNU/Linux"> +]> + + + +
+ &email; +
+ + W. + Borgert + + + 2003 + 2005 + &author; + + 2004-02-18 + + ASN.1 + BER + Wireshark + + + + 1 + 2004-02-18 + debacle + First version. + + +
+ + asn2deb + + 1 + + + asn2deb + + create a Debian package for BER monitoring from ASN.1 + + + + &command; + -a ASN.1 file + --asn=ASN.1 file + + + + + + + + + + + + + + + + Description + + This manual page documents briefly the + asn2deb command. + + &command; takes an ASN.1 file as input and creates a Debian + package from it. The package contains a loadable type table file + for the wireshark network analyser. The type table is generated by + the ASN.1 compiler snacc. + + + Options + + + + + + + ASN.1 file to use (mandatory). + + + + + + + options for dpkg-buildpackage. + + + + + + + use e-mail address. + + + + + + + + print help and exit. + + + + + + + use user name. + + + + + + + do not overwrite files. + + + + + + + print version and exit. + + + + + Example: + + /usr/bin/asn2deb -e me@foo.net -a bar.asn1 \ +-n "My Name" -d "-rfakeroot -uc -us" + + + + See Also + + A lot of tools are used, which you have to + apt-get install: wireshark-dev, python, + cdbs, autotools-dev, debhelper, dpkg-dev, snacc. + + + + Copying + + This manual page was written by &author; &email; for + &debian; (but may be used by others). Permission is granted to + copy, distribute and/or modify this document under the terms of + the GNU General Public License, Version 2 or any later + version published by the Free Software Foundation. + +