Re: make debian in 4.04/02

From: Christian Holm Christensen <cholm_at_nbi.dk>
Date: Mon, 23 May 2005 17:38:55 +0200


Hi all,

On Fri, 2005-05-20 at 13:04 -0700, Chris Roat wrote:
> I made it past the previous errors (I think correctly). But I ran up
> against issues with the debian make scripts after the build completed.
>
> Chris
>
>
> find debian/tmp -name "CVS" | xargs rm -fr
> find debian/tmp -name ".cvsignore" | xargs rm -fr
> ./debian/rules pkglists
> *** Warning *** Unknown package root-plugin-asimage - please
> update ./build/package/lib/makebuilddepend.sh

This is because someone commented out the line that reads

  *asimage) echo -n ", libafterimage-dev" ;;

in the above mentioned script. That is _not_ the right way to disable the package. It is outlined in `build/package/debian/README.Debian' how to add a package. To remove a package, do the inverse! In fact, the only thing one needs to do to disable a package, is to comment out the line         

  test "x$enable_foo" = "xyes" && pkglist="$pkglist root-plugin-foo"

in `configure'.

> cp: cannot stat `debian/tmp/usr/lib/root/libXrdSec.so.4': No such file
> or directory
> dh_install: command returned error code 256

Hmm. This error puzzles me. Maybe the XRootd guys changed something. Digging ... Ah, it seems the patch I sent some time ago to actually include the version number in the so name for the shared libraries of XRootd didn't make it into the official branch. Hmm. OK, a patch is attached.

>
> On 5/20/05, Chris Roat <chris.roat_at_gmail.com> wrote:
> Hi all,
>
> I appreciate you all checking into this. I believed
> Stanislav's changes were for against the production version,
> and so they work for me. In addition to those changes, I
> commented out the asimage dependency from the build scripts
> and tried again.

Arg! No. That's not the way to do it. If you want to build the `root-plugin-asimage' package, using the libAfterImage shipped with ROOT, you should edit `build/package/debian/rules' and take out `--disable-builtin-afterimage' from the `configure' command line.

> I encountered a couple more errors; see below. I was able to
> fix the first and last one by altering the casts from CARD8 to
> CARD32, but I don't have the expertise to handle the final two
> (lines 4582 & 4583). Any thoughts?
>
> Thanks,
> Chris
>
>
> g++ -O -I/usr/include/freetype2 -pipe -Wall -W
> -Woverloaded-virtual -fPIC -Iinclude -DHAVE_CONFIG -pthread
> -Iasimage/src/libAfterImage -o asimage/src/TASImage.o -c
> asimage/src/TASImage.cxx
> asimage/src/TASImage.cxx: In function `ASDrawContext*
> create_draw_context_argb32(ASImage*, ASDrawTool*)':
> asimage/src/TASImage.cxx:4578: error: cannot convert `CARD8*'
> to `CARD32*' in
> assignment
> asimage/src/TASImage.cxx:4582: error: invalid conversion from
> `void
> (*)(ASDrawContext*, int, int, int, unsigned char)' to `void
> (*)(ASDrawContext*, int, int, int, long unsigned int)'

The function prototype must have changed. A cast to the proper function prototype should do the trick.

  fptr = ((*)(ASDrawContext*, int, int, int, long unsigned int))(f);

> asimage/src/TASImage.cxx:4583: error: invalid conversion from
> `void
> (*)(ASDrawContext*, int, int, unsigned char)' to `void
> (*)(ASDrawContext*,
> int, int, long unsigned int)'

Similar.

> asimage/src/TASImage.cxx: In member function `void
> TASImage::DrawWideLine(unsigned int, unsigned int, unsigned
> int, unsigned
> int, unsigned int, unsigned int)':
> asimage/src/TASImage.cxx:4612: error: cannot convert `CARD8*'
> to `CARD32*' in
> assignment
>
>
>
> On 5/20/05, Valeriy Onuchin <Valeri.Onoutchine_at_cern.ch> wrote:
> Hi Stanislav,
> your patch is not against the current CVS and
> important note -
> at the moment ROOT's version (located at
> asimage./src/) of libAfterImage
> is significantely different from "official"
> libAfterImage shipped with debian.

Why?

Hmm. This is exactly what I've been warning the ROOT team over and over again. If you insist on shipping third-party code with ROOT, you run into a huge maintenance problem.  

> I'm going to send a patch with our modifications to
> Sasha Vasko ASAP.
> So, use ROOT built-in version of libAfterImage.
>
> Regards. Valeriy
>
>
> Stanislav Nesterov wrote:
>
> > Hi Cris,
> >
> > I've made short patch for TASImage.cxx and
> libAfterImage for
> > Debian-testing to compile. You can try to change
> temporary the sources
> > until Christian changes building scripts.

I think changing the build scripts is a really _really_ bad idea. Instead, `configure' should check that the version of the libAfterImage installed on the system is compatible with TASImage (actually the other way around, but OK).  

> > And I would like to ask Christian somehow modify
> `changelog' file to
> > reflect current ROOT version correctly.

That's difficult. Previously, I had a few lines that automatically added changelog entires to the `debian/changelog' file. However, that file is meant solely for the maintainers, not for the occasional users. Also, there's the problem that the changes made automatically on a user machine is not automatically propagated back to the CVS repository. In stead, I would suggest that the ROOT maintainers changed that file as part of changing the version number. It should be that hard to, as I guess they have a script that does that stuff for them anyway. What needs to be added to the file `build/package/debian/changelog' is lines like

  root (5.01.01) unstable; urgency=low   

where `New upstream' is a changelog message, and the name and email should be that of the person doing the update.

> > Fons Rademakers wrote:
> >
> > > Hi Chris,
> > >
> > > we cannot use anymore the system provided
> libAfterImage due to the
> > > many mods we had to make in it (we hope in a later
> stage to go back
> > > into sync).

Hopefully soon, yes?

> > > Can you try building the built-in libAfterImage?

>

> > > Christian (Holm), can you fix the debian package
> files such that we
> > > always use the ROOT provided libAfterImage (I've
> already disabled
> > > this option in ./configure in the head).
What if a user has an older version of libAfterImage installed, and still would like to use that one? libAfterImage comes with the script `afterimage-config' which can tell
you the version number of the installed libAfterImage. Why not use that script to check whether the library is too new, and possibly get the right preprocessor and linker flags?  

The attached patch checks that libAfterImage is older than 1.04, and uses the bundled code if it isn't.

> > > Cheers, Fons.
> > >
> > >
> > >
> > > Chris Roat wrote:
> > >
> > >> Hi,
> > >>
> > >> I'm having difficulty compiling the afterimage
> part of ROOT using
> > >> "make debian". The build proceeds through
> libRGL.so, and then gives
> > >> the warnings below. I'm using
> sarge(testing). Any idea what has
> > >> gone wrong? My afterimage library is
> up-to-date:
> > >>
> > >> [beta] ~/MultiFit > dpkg --list libafterimage-dev
> > >> Desired=Unknown/Install/Remove/Purge/Hold
> > >> |
> > >>
> Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
> > >> |/
> Err?=(none)/Hold/Reinst-required/X=both-problems
> (Status,Err:
> > >> uppercase=bad)
> > >> ||/ Name
> Version Description
> > >>
> +++-==================-==================-====================================================
> > >>
> > >> ii libafterimage-dev 2.00.04-3 imaging
> library designed
> > >> for AfterStep - development

This package reports version number `1.04' (via `afterimage-config --version'), same as the included libAfterImage. It is not very nice that these actually doesn't correspond.

The patch also fixes a problem in TProofPEAC. The patch is made against CVS HEAD as of a few hours ago.

Yours,

-- 
 ___  |  Christian Holm Christensen 
  |_| |  -------------------------------------------------------------
    | |  Address: Sankt Hansgade 23, 1. th.  Phone:  (+45) 35 35 96 91
     _|           DK-2200 Copenhagen N       Cell:   (+45) 24 61 85 91
    _|            Denmark                    Office: (+45) 353  25 404
 ____|   Email:   cholm_at_nbi.dk               Web:    www.nbi.dk/~cholm
 | |

Received on Mon May 23 2005 - 17:39:13 MEST

This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:08 MET