# K-3D at /usr/ports/graphics/k3d is out of date



## rhyous (Jan 24, 2010)

Hey all,

Anybody know who maintains the port for K-3D.

K-3D at /usr/ports/graphics/k3d is out of date it appears as they are putting out k3d-source-0.7.11.0.tar.gz while we are getting k3d-0.6.7.0-src.tar.gz.

The maintainer just says ports@freebsd.org, which is the mailing list.


----------



## rhyous (Jan 24, 2010)

So far I have modified Makefile and distinfo only enough fetch the latest version of source.

I am not sure about whether there are new dependencies. 

I am not sure how to update the pkg-plist or even whether I need to.

Also there are some patches in the files dir that I am not sure whether they still apply or not.


----------



## gordon@ (Jan 24, 2010)

If the maintainer is listed as ports@freebsd.org, it's unmaintained. If little has changed in how the software is maintained, you may just be able to do what you have done and get it to work. Otherwise, there will be some diagnostic to figure out how to get it working again.


----------



## rhyous (Jan 24, 2010)

Thank you for the response.

It definitely wouldn't work when I changed it to use the latest source files.  It crashed trying to apply the two patches saying it couldn't apply them cleanly.

They are using cmake to build and mercurial as their source management system.
http://developer.k-3d.org/
http://www.k-3d.org/wiki/CMake_Build

So I followed the steps to see if I could get it to compile (not with ports just how it says on the site) and it failed.


```
[ 14%] Building CXX object k3dsdk/CMakeFiles/k3dsdk.dir/uuid.cpp.o
/home/jared/Devel/k3d/k3d/k3dsdk/uuid.cpp:32:24: error: uuid/uuid.h: No such file or directory
/home/jared/Devel/k3d/k3d/k3dsdk/uuid.cpp: In static member function 'static const k3d::uuid k3d::uuid::random()':
/home/jared/Devel/k3d/k3d/k3dsdk/uuid.cpp:71: error: 'uuid_t' was not declared in this scope
/home/jared/Devel/k3d/k3d/k3dsdk/uuid.cpp:71: error: expected `;' before 'temp'
/home/jared/Devel/k3d/k3d/k3dsdk/uuid.cpp:72: error: 'temp' was not declared in this scope
/home/jared/Devel/k3d/k3d/k3dsdk/uuid.cpp:72: error: 'uuid_generate' was not declared in this scope
*** Error code 1

Stop in /usr/home/jared/Devel/k3d/k3d-build.
*** Error code 1

Stop in /usr/home/jared/Devel/k3d/k3d-build.
*** Error code 1

Stop in /usr/home/jared/Devel/k3d/k3d-build.
[jared@FBSD8 ~/Devel/k3d/k3d-build]$
```


I will try to get through this, but it may be a big learning curve.


----------



## rhyous (Jan 25, 2010)

Hey,

Just so anyone who reads this knows, I also started a post on the K-3D forum.
http://www.k-3d.org/forums/topic/updated-port-for-freebsd-8

I got passed the above error by installing a different version of uuid (described in the K-3D thread).

No I am getting a lot further but then getting this error:


```
[ 47%] Building CXX object modules/inotify/CMakeFiles/k3d-inotify.dir/file_change_notifier.cpp.o                                               
In file included from /home/jared/Devel/k3d/modules/inotify/file_change_notifier.cpp:25:                                                       
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:32:25: error: sys/inotify.h: No such file or directory                                     
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:36:34: error: sys/inotify-syscalls.h: No such file or directory                            
In file included from /home/jared/Devel/k3d/modules/inotify/file_change_notifier.cpp:25:                                                       
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h: In constructor 'InotifyEvent::InotifyEvent(const inotify_event*, InotifyWatch*)': 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:244: error: invalid use of incomplete type 'const struct inotify_event' 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:239: error: forward declaration of 'const struct inotify_event' 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:245: error: invalid use of incomplete type 'const struct inotify_event' 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:239: error: forward declaration of 'const struct inotify_event' 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:246: error: invalid use of incomplete type 'const struct inotify_event' 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:239: error: forward declaration of 'const struct inotify_event' 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:247: error: invalid use of incomplete type 'const struct inotify_event' 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:239: error: forward declaration of 'const struct inotify_event' 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:248: error: invalid use of incomplete type 'const struct inotify_event' 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:239: error: forward declaration of 'const struct inotify_event' 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h: At global scope: 
/home/jared/Devel/k3d/modules/inotify/inotify-cxx.h:873: error: invalid application of 'sizeof' to incomplete type 'inotify_event' 
/home/jared/Devel/k3d/modules/inotify/file_change_notifier.cpp: In member function 'virtual k3d::uint_t 
module::inotify::file_change_notifier::watch_file(const k3d::filesystem::path&, const sigc::slot<void, sigc::nil, sigc::nil, sigc::nil, 
sigc::nil, sigc::nil, sigc::nil, sigc::nil>&)': 
/home/jared/Devel/k3d/modules/inotify/file_change_notifier.cpp:80: error: 'IN_CLOSE_WRITE' was not declared in this scope                      
*** Error code 1                                                                                                                               

Stop in /usr/home/jared/Devel/k3d-build.
*** Error code 1                        

Stop in /usr/home/jared/Devel/k3d-build.
*** Error code 1                        

Stop in /usr/home/jared/Devel/k3d-build.
```

So it cannot find <sys/inotify.h> because it doesn't exist. So I have googled and haven't yet found what to install to make it exists, so if anybody in this forum already knows the answer, that could same me continued research time.


----------



## DutchDaemon (Jan 25, 2010)

```
tags, please  ... [url=http://forums.freebsd.org/showthread.php?t=8784]Posting and Editing in the FreeBSD Forums[/url].
```


----------



## rhyous (Jan 27, 2010)

So here is an update. 

<sys/inotify.h> is for linux only and FreeBSD doesn't have it but instead users kqueue.  

So this feature is actually a modular feature that can be enabled or disabled and K-3D has already responded to my post on their forum and fixed this so that this feature is detected as disabled on FreeBSD.

I am at the point where it is all compiling successfully.

There is an exception running the program and I will work with K-3D through their forums to get this resolved.

Here is the information on how I can build it.
http://rhyous.com/2010/01/26/how-to-compile-and-install-k-3d-0-7-12-on-freebsd-8/

Hopefully this can help us update the port.


----------



## gordon@ (Jan 27, 2010)

You can submit the port yourself and become the maintainer for it if you are interested. Read the porters handbook at http://www.freebsd.org/doc/en/books/porters-handbook/ for how to do that.


----------



## rhyous (Jan 27, 2010)

Agreed.  

I have already been reading that documentation.  I have modified a port manually when it has been something simple, but this will be my first big change where I have to do a complete rewrite.


----------



## rhyous (Feb 2, 2010)

Hey all,

I thought I would provide an update:

How to compile and install K-3D 0.7.12 on FreeBSD 8?

Pretty much, there are four errors, that maybe are bugs or maybe they could be missing dependencies or something:

Bug #1 - A check in k3d_main.cpp fails on FreeBSD 8.


```
ERROR: Gtk: g_hash_table_slist_values: assertion hash_table != NULL' failed
INFO: Saving options to /home/jared/.k3d/options.k3d
CRITICAL: Caught exception [std::runtime_error] - UI plugin module [/home/jared/k3d-build/lib/k3d/plugins/k3d-ngui.module] does not implement k3d::iuser_interface
*** Error code 1
```

Bug # 2 - Running K-3D on FreeBSD provides warnings about atk-bridge


```
(k3d:55092): atk-bridge-WARNING **: AT_SPI_REGISTRY was not started at session startup.

(k3d:55092): atk-bridge-WARNING **: IOR not set.

(k3d:55092): atk-bridge-WARNING **: Could not locate registry
```
Bug #3 - An unexpected character error

```
:1: error: unexpected character \241', expected keyword - e.g.style'
```

Bug #4 - Problem loading the VirtualOpenGLSDSFacePainter plugin on FreeBSD

```
ERROR: /home/jared/k3d/modules/virtual_opengl_painters/sds_point_painter.cpp line 73: assertion delegate' failed
ERROR: Error creating document plugin: VirtualOpenGLSDSPointPainter
ERROR: /home/jared/k3d/modules/virtual_opengl_painters/sds_edge_painter.cpp line 73: assertion `delegate' failed
ERROR: Error creating document plugin: VirtualOpenGLSDSEdgePainter
ERROR: /home/jared/k3d/modules/virtual_opengl_painters/sds_face_painter.cpp line 73: assertion `delegate' failed
ERROR: Error creating document plugin: VirtualOpenGLSDSFacePainter
```


If anyone recognizes any of these as not so much a bug but a missing library, that would be great. 

As of now, I can get the latest version of K-3D to compile and run if I bypass the errors in Bug #1 by commenting out a block of code that runs the check that causes this failure.


----------



## DutchDaemon (Feb 2, 2010)

Again: 
	
	



```
tags, please ... [url=http://forums.freebsd.org/showthread.php?t=8784]Posting and Editing in the FreeBSD Forums[/url].
```


----------



## rhyous (Feb 3, 2010)

Sorry, too much copy and pasting form too many different forums, blogs, etc...I will be more diligent.


----------



## rhyous (Feb 8, 2010)

Hey all,

Just an update.  I have been testing with the developer and K-3D now compiles and runs.  There is a big runtime issue that we will try to track down.  

My goal is that when K-3D version 8 comes out, there is a FreeBSD port for it.


----------



## rhyous (Feb 11, 2010)

Hey all,

The developer for K-3D says that we need to update the libgl port from mesa 7.4.4 to a later version such as 7.6.1.

I checked out the port's make file and it looks like all of them need to be updated at once:

```
...
# Remember to upgrade the following ports everytime you bump MESAVERSION:
#
#    - graphics/libGL
#    - graphics/libGLU
#    - graphics/libGLw
#    - graphics/dri
...
```


----------



## rhyous (Feb 11, 2010)

Or maybe I could just update my ports tree and see that they updated these ports three days ago, only you have to make it as follows to get it to use the new version, or else it will still use the old:

make WITHOUT_NOUVEAU=yes install


----------



## rhyous (Feb 11, 2010)

However, now when I launch K-3D, I get this:


```
INFO: Loading plugin NGUI
 INFO: Loading GTK resources from /etc/gtk-2.0/gtkrc
 INFO: Loading GTK resources from /home/jared/.gtkrc-2.0
 INFO: Loading GTK resources from
 INFO: Loading GTK resources from /usr/home/jared/.kde4/share/config/gtkrc-2.0
 INFO: Loading GTK resources from /home/jared/.k3d/gtkrc

(k3d:11301): GdkGLExt-WARNING **: Window system doesn't support OpenGL.
 ERROR: Could not initialize gtkglext
 INFO: Saving hotkeys to /home/jared/.k3d/hotkeys
 INFO: Saving options to /home/jared/.k3d/options.k3d
*** Error code 1

Stop in /usr/home/jared/build-k3d.
*** Error code 1

Stop in /usr/home/jared/build-k3d.
*** Error code 1

Stop in /usr/home/jared/build-k3d.
*** Error code 1

Stop in /usr/home/jared/build-k3d.
[jared@FBSD8 ~/build-k3d]$
```

Of course, I updated gtkglext but same issue.


----------



## adamk (Feb 19, 2010)

Please show us your /var/log/Xorg.0.log file.

Adam


----------



## rhyous (Feb 19, 2010)

Adamk,

Thanks, I wish I would have seen it, I would have responded. I looked through my email history an didn't see that response and I have cleared my spam so I don't know if it went there.


```
[jared@FBSD8 ~/build-k3d]$ glxinfo
name of display: :0.0
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Error: couldn't find RGB GLX visual or fbconfig

Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
```

Yeah, that output doesn't look good.

Attached is the output of my Xorg.0.log

It is the one from my VMWare machine

I have a physical machine too, I try to do things on both to make sure the issue is not just caused by using VMWare, so I will post those results maybe by tomorrow.


----------



## adamk (Feb 19, 2010)

I don't actually see any Xorg.0.log files  

Adam


----------



## rhyous (Feb 19, 2010)

Sorry, it was too big and didn't actually post, so I zipped it.


----------



## adamk (Feb 19, 2010)

The log file you attached...  That's from the machine that gave you the GLX error when you ran glxinfo?

Adam


----------



## rhyous (Feb 19, 2010)

Adamk,

Wow. The issue is not occurring anymore.

There portupgrade -a was running every night, so I have to assume that something updated.

K-3D now moves past that point where it was failing on gtkglext.


----------



## rhyous (Feb 19, 2010)

I currently have K-3D compiled with debugging and with tests enabled and it is failing on a test. So I will compile a release build without debugging and test and see if the 3D issues seen are fixed.


----------



## adamk (Feb 19, 2010)

Yeah, it sounds like your 3D drivers were not functioning properly if you were getting an error about the GLX extension not being available.  Though the vmware driver won't provide 3D acceleration (and I'm not sure if that's really necessary for k3d), it should at least load the GLX extension and give you some software accelerated 3D functionality.


----------



## adamk (Feb 19, 2010)

Also, for what it's worth, I pulled the k3d source via mercurial, built it, and it's running here just fine as far as I can tell.  It loaded the digital clock example.

EDIT:

OK, I can't actually get a preview of an animation because it defaults to the RenderMan Engine and when I change the setting to yafray and then check the setting again, it's back at RenderMan   But that may just be due to my limited experience with k3d.


----------

