On Thu, Feb 25, 2021 at 9:56 AM Andrius Rinkevicius <andrius...@gmail.com>
wrote:

> On Thu, Feb 25, 2021 at 3:45 AM John Ralls <jra...@ceridwen.us> wrote:
>
>>
>>
>> > On Feb 24, 2021, at 11:05 AM, Andrius Rinkevicius via
>> gtk-osx-users-list <gtk-osx-users-list@gnome.org> wrote:
>> >
>> > Hi all,
>> > I am getting crash when building my own program using custom moduleset.
>> > configure, build and install steps all are OK, however, jhbuild fails
>> at final move of build files to ~/gtk/inst/.
>> > The traceback is
>> > W: Ignoring uninstalled package: bluefish
>> > Traceback (most recent call last):
>> >   File "/Users/andrius/.new_local/libexec/run_jhbuild.py", line 17, in
>> <module>
>> >     jhbuild.main.main(sys.argv[1:])
>> >   File "/Users/andrius/Source/jhbuild/jhbuild/main.py", line 120, in
>> main
>> >     rc = jhbuild.commands.run(command, config, args, help=lambda:
>> print_help(parser))
>> >   File "/Users/andrius/Source/jhbuild/jhbuild/commands/__init__.py",
>> line 188, in run
>> >     return cmd.execute(config, args, help)
>> >   File "/Users/andrius/Source/jhbuild/jhbuild/commands/__init__.py",
>> line 56, in execute
>> >     return self.run(config, options, args, help)
>> >   File "/Users/andrius/Source/jhbuild/jhbuild/commands/base.py", line
>> 341, in run
>> >     return build.build()
>> >   File
>> "/Users/andrius/Source/jhbuild/jhbuild/frontends/buildscript.py", line 172,
>> in build
>> >     error, altphases = module.run_phase(self, phase)
>> >   File "/Users/andrius/Source/jhbuild/jhbuild/modtypes/__init__.py",
>> line 420, in run_phase
>> >     method(buildscript)
>> >   File "/Users/andrius/Source/jhbuild/jhbuild/modtypes/autotools.py",
>> line 320, in do_install
>> >     self.process_install(buildscript, self.get_revision())
>> >   File "/Users/andrius/Source/jhbuild/jhbuild/modtypes/__init__.py",
>> line 317, in process_install
>> >     new_contents = fileutils.accumulate_dirtree_contents(destdir_prefix)
>> >   File "/Users/andrius/Source/jhbuild/jhbuild/utils/fileutils.py", line
>> 44, in accumulate_dirtree_contents
>> >     _accumulate_dirtree_contents_recurse(path, contents)
>> >   File "/Users/andrius/Source/jhbuild/jhbuild/utils/fileutils.py", line
>> 26, in _accumulate_dirtree_contents_recurse
>> >     names = os.listdir(path)
>> > FileNotFoundError: [Errno 2] No such file or directory:
>> '/Users/andrius/gtk/inst/_jhbuild/root-bluefish/Users/andrius/gtk/inst'
>> >
>> > I looks strange that it appends prefix at the end of path, however, as
>> far as I can see this is done
>> fileutils.accumulate_dirtree_contents(destdir_prefix), it is intended.
>> > I am not sure if this is gtk-osx or jhbuild related bug, however, it
>> seems that there are no such a n errors reported on jhbuild bug tracker.
>> > I can see all build files located in
>> '/Users/andrius/gtk/inst/_jhbuild/root-bluefish, so why there is extra part
>> added is hard to say. From the other hand, I have build complete gkt+ stack
>> without any issues, just one particular program fails without apparent
>> reason.
>> > Another strange thing is that it says "W: Ignoring uninstalled package:
>> bluefish", while package is not uninstalled, it stays in source three.
>> However, since it was installed via svn type repo, there is no package in
>> pkgs folder.
>> > Any hints what to look for would be useful!
>>
>> Andrius,
>>
>> jhbuild does a two-step install. It first runs make or ninja install with
>> DESTDIR=$PREFIX/_jhbuild/root-project-name; make/ninja is supposed to
>> install to $DESTDIR/$PREFIX. Once make/ninja reports that the install
>> completed normally jhbuild moves everything to $PREFIX and deletes $DESTDIR.
>>
>> So if the files wound up as e.g. $DESTDIR/bin/bluefish instead of
>> $DESTDIR/$PREFIX/bin/bluefish then when jhbuild went back to do the move it
>> wouldn't be able to find the files. That's where I'd start investigating:
>>
>> 'Ignoring uninstalled package:' is from the triggers feature. I don't
>> know anything about that, but there's a triggers/README in the jhbuild
>> source tree with a brief description.
>>
>> Regards,
>> John Ralls
>>
>>
>> John,
> on occasion I learned more about jhbuild internals, which is nice. In the
> past I was doing some hacks for building, however, it seems that actually I
> could have used jhbuild functionality to do the same.
> I am using autotools (make) to build my program.
> It seems that jhbuild operates not exactly how you described.
> $PREFIX on my system is set to /Users/andrius/gtk/inst (judging by
> --prefix during autogen). This is getting set in jhbuildrc file, I think.
> Install is done with following command:
> make DESTDIR=/Users/andrius/gtk/inst/_jhbuild/root-bluefish install
> and then make adds its own prefix /usr/local (which is I think pretty
> standard for Linux program), so resulting install directory is
> /Users/andrius/gtk/inst/_jhbuild/root-bluefish/usr/local/ where bin, share
> etc folders are created.
> [image: image.png]
> In does not looks like install is done in $DESTDIR/$PREFIX, one also
> should take into account extra prefix added for Linux. While code of
> jhbuild uses the same $PREFIX for both DESTDIR, and install dir, which does
> not look right for me.
> Is there any workaroud?
> Andrius
>
> Have read once again make manual, and it seems that I am not passing
--prefix to configure correctly. Bluefish is using two-step configure
(first autogen.sh, and then configure), and it seems --prefix is getting
lost in between. Thats might be a cause why in uses /usr/local prefix.
Andrius
_______________________________________________
gtk-osx-users-list mailing list
gtk-osx-users-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-osx-users-list

Reply via email to