Hi Jan,

You uncovered a number of bugs.  I assume you are using --autodeps?

The problem seems to be that you are trying to build a package
that depends on FOSSreadline, so autodeps tries to locate a
spec file that defines it, but FOSSreadline.spec defines a
package called "readline", not "FOSSreadline".

Defining SUNW_Pkg should fix it, but like you discovered,
pkgtool doesn't check if SUNW_Pkg is defined when it records
the package names defined in the spec file.  So your fix looks
correct.

I also fixed the assertion error below.  These will be in the
next version of pkgbuild.

Thanks,
Laca

On Sat, 2009-04-11 at 19:48 +0200, Jan Hnatek wrote:
> Hi Adriaan,
> 
> is there any reason not to start using pkgbuild 1.3.98 with this repo?
> (http://solaris.bionicmutton.org/hg/kde4-specs-42/)
> 
> In fact, I prepared myself a build environment based on osol-111,
> cbe 1.6.2 and pkgbuild 1.3.98 and tried to build kde-42 repo.
> This is probably what sourcejuicer uses.
> I also added --ips to Makefile.config.
> 
> Then found this mess in dependency resolution:
> $ make FOSSunixodbc
> ===
> INFO: Processing spec file FOSSreadline.spec
> INFO: Unfortunately, 
> /export/home/test/src/kde4-specs-42/specs/FOSSreadline.spec does not define 
> FOSSreadline
> ERROR: Assertion failed: check_dependency: return 0
> WARNING: unixodbc won't be built as it requires FOSSreadline
> INFO: Trying to find spec file for FOSSreadline
> INFO: Looking for FOSSreadline.spec
> INFO:     ... in /export/home/test/src/kde4-specs-42/specs
> INFO: Found /export/home/test/src/kde4-specs-42/specs/FOSSreadline.spec
> INFO: /export/home/test/src/kde4-specs-42/specs/FOSSreadline.spec was already 
> loaded
> WARNING: unixodbc won't be built as it requires FOSSreadline
> ===
> FOSSreadline was added to deps, built, installed and failed to be recognized.
> 
> pkgbuild new features lists:
> * IPS dependencies are determined from the SVr4 package names by translating
> the legacy actions to IPS FMRIs. This means that spec files can continue to 
> use 
> SVr4 package names in the Requires/BuildRequires lines and pkgbuild will 
> convert 
> them to IPS dependencies on the fly when publishing to IPS. 
> 
> I tried adding:
> SUNW_Pkg:               FOSSreadline
> to FOSSreadline.spec, but it didn't help :(
> 
> Same thing happened with FOSSspro-libraries as FOSSqt dep.
> 
> Funny thing that pkgtool.pl states along with this error msg:
>     # should not happen
>     msg_error("Assertion failed: check_dependency: return 0");
> so this looks like pkgtool has a problem with --autodeps / legacy actions / 
> SUNW_Pkg feature.
> 
> ..
> 
> After digging a bit further, pkgtool.pl is not aware of SUNW_Pkg tag at all.
> Roughly fixed by:
> $ diff /export/home/test/src/pkgbuild-1.3.98/pkgtool.pl 
> /opt/dtbld/lib/pkgbuild-1.3.98/pkgtool.pl
> 2855c2855,2857
> <       my $pkgname = $pkg->get_name();
> ---
> >       #my $pkgname = $pkg->get_name();
> >       my $pkgname = $pkg->get_tag ('SUNW_Pkg');
> >       $pkgname = "$pkg" unless $pkgname;
> 
> (cc-ing Laca)
> 
> Sorry for the length.
> 
> hnhn
> 
> Adriaan de Groot wrote:
> > Hi Hajma,
> > 
> > I see you've been working on Qt 4.5.0 some more. I did the same in the KDE 
> > 4.2.2 repo which I mentioned recently. I think I've finished :)
> 


Reply via email to