Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Root package terminix contains reference to invalid package gtk-d >=3.3.0 <3.4.0 #304

Closed
Mailaender opened this issue May 6, 2016 · 6 comments

Comments

@Mailaender
Copy link
Contributor

Mailaender commented May 6, 2016

I packaged gtk-d https://build.opensuse.org/request/show/394029 and it doesn't seem to matter. Neither version 3.3.0 nor 3.3.1 are accepted by Terminix:

[  194s] + cd terminix-0.59.0
[  194s] + dub build --build=release
[  194s] Selected package gtk-d 3.3.1 doesn't exist. Using latest matching version instead.
[  194s] Root package terminix contains reference to invalid package gtk-d >=3.3.0 <3.4.0

You can look at the complete build logs by clicking on failed at https://build.opensuse.org/package/show/home:Mailaender:branches:devel:languages:D/terminix

@gnunn1
Copy link
Owner

gnunn1 commented May 6, 2016

Unfortunately that error message isn't very descriptive, I'm not having any issues on my local machine with it and lot's of other people build from source without issue. The current version of GtkD in Dub is 3.3.1 so it should not being having an issue finding it.

Can you try running dub in verbose mode?

dub --build=release --verbose

@ximion
Copy link
Collaborator

ximion commented May 6, 2016

@Mailaender: This might be due to dub not reading any packages from distro paths, see dlang/dub#811

@Mailaender
Copy link
Contributor Author

I see. Closing here then.

@dsboger-zz
Copy link
Contributor

I've taken a look at your script and logs and I see one possible problem: Using the system installed gtkd with dub is not possible, at least not like a dub package. The descriptor package.json is required by dub and not installed. Also dub tries to build the package inside the same directory (it seems dub is a development tool, not a packaging one, something like make without make install). I'm surprised that the call dub add-local %{_includedir}/d/gtkd-3 3.3.1 in the script finished properly, as I get the following error when I try it: No package file found in /usr/include/d/gtkd-3/, expected one of dub.json/dub.sdl/package.json.

You can try using dynamic linking configuration, but that will not work also because gtkd in https://build.opensuse.org/package/view_file/home:Simmphonie/gtkd/gtkd.spec?expand=1 is built with ldc and terminix requires dmd and they have incompatible ABIs. I've tried building terminix with ldc but it does not work, but it is possible to compile gtkd shared libs with dmd. Also, the gtkd package in does not install vted source, as make targets install-shared-vte and install-headers-vte must be called explicitly in the command line.

In the terminix-git in AUR I clone the GtkD git repo directly and use dub add-local on that. The git tree includes package.json, and it is the same thing dub does, actually.

@Mailaender
Copy link
Contributor Author

What I did in my gtkd package is:

# required for dub
install package.json %{buildroot}%{_includedir}/d/gtkd-3
mv src %{buildroot}%{_includedir}/d/gtkd-3
mv srcgl %{buildroot}%{_includedir}/d/gtkd-3
mv srcgstreamer %{buildroot}%{_includedir}/d/gtkd-3
mv srcsv %{buildroot}%{_includedir}/d/gtkd-3
mv srcvte %{buildroot}%{_includedir}/d/gtkd-3

until I realized that it doesn't work as well. Now you tell me that even the different compilers are incompatible. Quite a nightmare for downstream packagers. :(

@ximion
Copy link
Collaborator

ximion commented May 7, 2016

@Mailaender: I blogged about it this a few days ago ^^ - for distro packagers, D is still a bit of a pain.
I was able to build the appstream-generator properly for Debian by doing some symlink-tricks to make the build process find the dependencies, and patching dub.json as part of the packaging process to not search for those packages (see http://sources.debian.net/src/appstream-generator/0.2.0-2/debian/ ).
It's terrible, terrible packaging, and I hope this gets fixed in dub soon so we can have D code in distros properly.
Btw, while Debian at time uses GDC as default D compiler, LDC seems to be the overall better choice due to it supporting a much more recent Phobos version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants