Debuginfo packages for Java

Andrew Haley aph at redhat.com
Tue Nov 27 11:27:18 UTC 2007


Gary Benson writes:
 > Andrew Haley wrote:
 > > Jason L Tibbitts III writes:
 > > > I'm having problems reviewing a package for some software written
 > > > in Java.  The problem is that the debuginfo package is generated
 > > > without any source.
 > > 
 > > The fix is to change /usr/lib/python2.5/site-packages/aotcompile.py,
 > > which doesn't put the right pathnames into the object files.
 > > 
 > > I've attached a patch.  gbenson, please look this over.  This is
 > > my first ever Python hack, so You Have Been Warned.  Input about
 > > my (doubtless execrable) Python style welcome.
 > 
 > I'd prefer to see this in aot-compile-rpm rather than aotcompile.py,
 > my reason being that it relies on the fact that the sources are in the
 > current directory which is true for rpm builds but not necessarily so
 > otherwise.  Something like the attached?

That works just as well as my patch for the RPM case, but is still
broken for non-RPM builds.  However, I will go along with this if it's
the only way to get the fix in.  We must stop generating bad debuginfo
for gcj-compiled packages.

Andrew.


 > 
 > Cheers,
 > Gary
 > 
 > PS I don't read fedora-devel-list so please Cc me.
 > --- aot-compile-rpm.orig	2007-10-12 09:05:38.000000000 +0100
 > +++ aot-compile-rpm	2007-11-27 10:41:44.000000000 +0000
 > @@ -28,6 +28,17 @@
 >          raise aotcompile.Error, "%s: unexpected output" % cmd
 >      return dir
 >  
 > +def writeSourceList(srcdir, dstpath):
 > +    def visit(fp, dir, items):
 > +        for item in items:
 > +            path = os.path.join(dir, item)
 > +            if os.path.isfile(path):
 > +                print >>fp, path
 > +    dstdir = os.path.dirname(dstpath)
 > +    if not os.path.isdir(dstdir):
 > +        os.makedirs(dstdir)
 > +    os.path.walk(srcdir, visit, open(dstpath, "w"))
 > +
 >  def copy(srcdir, dstdir, suffix):
 >      srcdir = os.path.join(srcdir, suffix.lstrip(os.sep))
 >      dstdir = os.path.join(dstdir, suffix.lstrip(os.sep))
 > @@ -72,6 +83,10 @@
 >              os.path.basename(sys.argv[0]))
 >          sys.exit(1)
 >  
 > +    sourcelist = os.path.join(tmpdir, "sources.list")
 > +    writeSourceList(os.getcwd(), sourcelist)
 > +    compiler.gcjflags.append("-fsource-filename=" + sourcelist)
 > +
 >      compiler.compile()
 >      copy(tmpdir, srcdir, dstdir)
 >  

-- 
Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, UK
Registered in England and Wales No. 3798903




More information about the fedora-devel-list mailing list