#! /bin/sh /usr/share/dpatch/dpatch-run ## 01_idl2deb.dpatch by ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: idl2deb - create Debian packages from idl2eth modules @DPATCH@ diff -urNad --exclude=CVS --exclude=.svn ./idl2deb /tmp/dpep-work.K2bQz4/ethereal-0.10.11/idl2deb --- ./idl2deb 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/dpep-work.K2bQz4/ethereal-0.10.11/idl2deb 2005-07-17 19:35:08.000000000 +0200 @@ -0,0 +1,252 @@ +#!/usr/bin/env python + +# idl2deb - quick hack by W. Borgert to create +# Debian GNU/Linux packages from idl2eth modules for Ethereal. +# Copyright 2003, W. Borgert + +# Makefile.am and configure.ac code by: +# Copyright 2001, Ericsson Inc. +# Frank Singleton +# +# 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 = """idl2deb version 2003-10-03 +Copyright 2003, W. Borgert +Free software, released under the terms of the GPL.""" + +options = {'dbopts': "", + 'email': "invalid@invalid.invalid", + 'help': 0, + 'idl': None, + 'name': "No Name", + 'preserve': 0, + 'version': 0} + +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(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, idl, name, iso, rfc): + """Create all files for the .deb build process.""" + base = idl.lower()[:-4] + create_file("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/ethereal -DETH_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__ETHEREAL_STATIC__ packet-%s.c + +packet-%s.c: """ % ((base,) * 12) + idl + """ + $(IDL2ETH) $< > $@ +""") + + create_file("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) +IDL2ETH=\"`type -p idl2eth`\" +AC_SUBST(IDL2ETH) +ETHEREAL_VERSION=\"%s\" +plugindir=\"$libdir/ethereal/plugins/$ETHEREAL_VERSION\" +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/ethereal-giop-%s + +binary-post-install/ethereal-giop-%s:: + rm -f $(PREFIX)/usr/lib/ethereal/plugins/%s/*.a +""" % (base, base, version), 0755) + + create_file("debian/control", """Source: ethereal-giop-%s +Section: net +Priority: optional +Maintainer: %s <%s> +Standards-Version: 3.6.1.0 +Build-Depends: ethereal-dev, autotools-dev, debhelper, cdbs + +Package: ethereal-giop-%s +Architecture: any +Depends: ethereal (= %s), ${shlibs:Depends} +Description: GIOP dissector for CORBA interface %s + This package provides a dissector for GIOP (General Inter-ORB + Protocol) for the Ethereal 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("debian/changelog", + """ethereal-giop-%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 idl2deb on +%s for Debian GNU/Linux. + +Ethereal: http://www.ethereal.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_eth_version(): + """Detect version of ethereal-dev package.""" + deb = os.popen( + "dpkg-query -W --showformat='${Version}' ethereal-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_eth_version() + create_files(version, deb, + options['email'], options['idl'], 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:], "d:e:hi:n:pv", + ["dbopts=", + "email=", + "help", + "idl=", + "name=", + "preserve", + "version"]) + except getopt.GetoptError: + usage(argv[0]) + sys.exit(1) + for o, a in opts: + 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 ("-i", "--idl"): + options['idl'] = a + 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['idl']: + print "mandatory IDL file parameter missing" + sys.exit(1) + if not os.access(options['idl'], os.R_OK): + print "IDL file not accessible" + sys.exit(1) + +def usage(name): + """Print usage help.""" + print "Usage: " + name + " \n" + \ + "Parameters are\n" + \ + " --dbopts -d opts, options for dpkg-buildpackage\n" + \ + " --email -e address, use e-mail address\n" + \ + " --idl -i idlfile, IDL file to use (mandatory)\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 -i bar.idl -n \"My Name\" " + \ + "-d \"-rfakeroot -uc -us\"" +if __name__ == '__main__': + main() diff -urNad --exclude=CVS --exclude=.svn ./idl2deb.dbk /tmp/dpep-work.K2bQz4/ethereal-0.10.11/idl2deb.dbk --- ./idl2deb.dbk 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/dpep-work.K2bQz4/ethereal-0.10.11/idl2deb.dbk 2005-07-17 19:35:08.000000000 +0200 @@ -0,0 +1,157 @@ + +idl2deb"> + debacle@debian.org"> + + Debian GNU/Linux"> +]> + + + +
+ &email; +
+ + W. + Borgert + + + 2003 + 2005 + &author; + + 2003-08-17 + + CORBA + IDL + Ethereal + + + + 2003-08-17 + 2003-08-17 + debacle + First version. + + +
+ + idl2deb + + 1 + + + idl2deb + + create a Debian package for CORBA monitoring from IDL + + + + &command; + + + + + -i idlfile + --idl=idlfile + + + + + + + + + + + + Description + + This manual page documents briefly the + idl2deb command. + + &command; takes an CORBA IDL file as input and creates a + Debian package from it. The package contains a loadable module + for the ethereal network analyser. + + + Options + + + + + + + options for dpkg-buildpackage. + + + + + + + use e-mail address. + + + + + + + IDL file to use (mandatory). + + + + + + + + print help and exit. + + + + + + + use user name. + + + + + + + do not overwrite files. + + + + + + + print version and exit. + + + + + Example: + + /usr/bin/idl2deb -e me@foo.net -i bar.idl \ +-n "My Name" -d "-rfakeroot -uc -us" + + + + See Also + + A lot of tools are used, which you have to + apt-get install: ethereal-dev, python, + cdbs, autotools-dev, debhelper, dpkg-dev. + + + + 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. + +