From e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 22:34:10 +0200 Subject: Adding upstream version 4.2.2. Signed-off-by: Daniel Baumann --- tools/idl2deb | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100755 tools/idl2deb (limited to 'tools/idl2deb') diff --git a/tools/idl2deb b/tools/idl2deb new file mode 100755 index 0000000..18f1b05 --- /dev/null +++ b/tools/idl2deb @@ -0,0 +1,141 @@ +#!/usr/bin/env python3 + +# idl2deb - quick hack by W. Martin Borgert to create +# Debian GNU/Linux packages from idl2wrs modules for Wireshark. +# Copyright 2003, 2008, W. Martin Borgert + +# Wireshark - Network traffic analyzer +# By Gerald Combs +# Copyright 1998 Gerald Combs + +# SPDX-License-Identifier: GPL-2.0-or-later + +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 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]) + + if not os.path.isdir("packaging/debian"): + os.mkdir("packaging/debian") + + create_file(preserve, "packaging/debian/rules", """#!/usr/bin/make -f + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/autotools.mk + +PREFIX=`pwd`/packaging/debian/wireshark-giop-%s + +binary-post-install/wireshark-giop-%s:: + rm -f $(PREFIX)/usr/lib/wireshark/plugins/%s/*.a +""" % (base, base, version), 0o755) + + create_file(preserve, "packaging/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, "packaging/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, "packaging/debian/copyright", + """This package has been created automatically by idl2deb on +%s for Debian GNU/Linux. + +Wireshark: https://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) + 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() -- cgit v1.2.3