Opened 20 years ago

Closed 20 years ago

#2889 closed defect (fixed)

NEW: inventor-2.1.5-10

Reported by: cssdev@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.0
Keywords: Cc:
Port:

Description

inventor-2.1.5-10

the portfile can be found here: ATTACHED

Description: This Portfile builds SGI's Open Inventor graphics library, an object-oriented 3D toolkit that uses X11 and OpenGL. The main issue in getting this working with dports is the fact that the library expects a 'make install' during the build process. I patched several makefiles to include the working directory during the build. I also made a source code change to account for Freetype2 changes (see BUG #2832). Additionally, some preprocessor changes were required to account for gcc 3.3 (the distribution works with gcc 3.1)--thanks to Edward Patel's changes at http://www.memention.com/ivscript/. I also adjusted the install paths so that all extras go into ${prefix}/share/inventor. The cvs variant fetches the latest version from SGI's cvs server, but note that as of 2005-04-12 the repository does not address any of the issues resolved by the patchfiles.

Homepage: http://oss.sgi.com/projects/inventor/

Comments: I still use the original OIV sources for some projects, and it's a large project to try to track all the files on my own. The ability to activate and deactivate ports is a real advantage when working on a machine that might use similar libaries (such as Coin3D from http://www.coin3d.org/). The Inventor Mentor and Inventor Toolmaker book examples are currently not built or installed. This library is very IRIX and Linux centric, so there are likely still a few bugs when running on Mac OS X.

Attachments (3)

inventor.tar.bz2 (3.5 KB) - added by cssdev@… 20 years ago.
inventor Portfile and its associated patchfiles
Portfile (2.3 KB) - added by jmpp@… 20 years ago.
Portfile
patch-ivcommondefs.diff (1.5 KB) - added by cssdev@… 20 years ago.
Patch for ivcommondefs

Download all attachments as: .zip

Change History (12)

Changed 20 years ago by cssdev@…

Attachment: inventor.tar.bz2 added

inventor Portfile and its associated patchfiles

comment:1 Changed 20 years ago by jmpp@…

From an initial skim over, the Portfile seems quite good, I haven't checked the patch files though. Two comments however:

1) I'd like someone more knowledgeable than me to comment on the need of the line "build.env DYLD_LIBRARY_PATH=${worksrcpath}/lib", as far as I know playing with DYLD_* variables can sometimes lead to unexpected and unwanted results; 2) cvs variants are strongly counter recommended, it's a very bad practice changing the version number inside the Portfile, along with all the hurdles implied by building cvs sources (moving target, non- deterministic builds, unexpected results, borkage, etc...). For this we recommend making a <portname>-devel port, one that builds a *static* checkout of the beta software.

Other than that, this seems good, thanks for the contribution!

-jmpp.

comment:2 Changed 20 years ago by cssdev@…

1) Part of the build process relies on a tool (ivman) that generates the man pages using the dynamic library. That's where the DYLD_LIBRARY_PATH comes into play, allowing the build to complete since the tool requires the presence of the just-built dynamic library. Ideally, the port should probably establish the libraries' install_names, but that would take some more tweaking. That might not solve the problem though, as the install_name wouldn't match the build location. It's an unfortunate characteristic of the source itself (see inventor/README after port extract).

2) An info-inventor-dev post indicated that the cvs repository has some gcc fixes, so I quickly put the variant into place for my own testing. Source snapshots are very infrequent, so it might still be useful to have a +devel variant (ala editors/emacs). The version number could probably safely retain consistency with the rest of the Portfile. If there's not any significant interest, I can just manage that locally on my own computer. I have used this variant to create patches for submission back to SGI, but it's probably not of general interest.

comment:3 Changed 20 years ago by jmpp@…

Hey Chris! So from your comments in reply to mine, I understand that the DYLD variable is needed because the build procedure generates the man pages straight out of the recently built libraries, whose install_name key would be useless at the moment because they wouldn't be found there, but in the buildir instead becasue they haven't been installed yet, right? If that's the case then I guess the variable is indeed needed, in lack f any other way to pass the libraries build location to the man pages generating procedure. In any case, that's a very weird way to generate man pages, but then again I've seen stranger things...

As for the cvs variant, I still strongly discourage you to use it. I'd advise you instead to create a snapshot yourself and host it somewhere, and use that for the <portname>-devel port. Take a look at my aqua/NmapFE port, that's exactly what I do (the tarball I created is hosted in my OD ~jmpp webspace).

Now, if you tell me the Portfile is done and ready I can commit it for you if you like, unless you want somebody else to test it first. If I commit this I would ask you to please open up a bugzilla account from the same email address as your maintainer one, so that request/complaints against this port can be properly channeled to you.

Regards,

-jmpp

comment:4 Changed 20 years ago by cssdev@…

I'll just hold off on any CVS variant. My bugzilla account duplicates the maintainer email address. Here's the Portfile with the variant removed:

# $Id: $

PortSystem 1.0 name inventor version 2.1.5-10 revision 0 categories graphics x11 devel maintainers cssdev@…

description SGI Open InventorTM graphics toolkit

long_description Open InventorTM is an object-oriented 3D toolkit \

offering a comprehensive solution to interactive \ graphics programming problems. It presents a \ programming model based on a 3D scene database \ that dramatically simplifies graphics programming. \ It includes a rich set of objects such as cubes, \ polygons, text, materials, cameras, lights, \ trackballs, handle boxes, 3D viewers, and editors \ that speed up your programming time and extend \ your 3D programming capabilities.

homepage http://oss.sgi.com/projects/inventor/ platforms darwin

master_sites ftp://oss.sgi.com/projects/inventor/download/ distname ${name}-${version}.src worksrcdir ${name} checksums md5 82208096f1e0b111160e864e239c3a51

depends_lib lib:libX11.6:XFree86 \

lib:libXm.4:openmotif \ lib:XXXX:freetype \ lib:libjpeg.62:jpeg \ lib:libdl:dlcompat

patchfiles patch-BarChart-GNUmakefile.diff \

patch-Decal-GNUmakefile.diff \ patch-GeneralizedCylinder-GNUmakefile.diff \ patch-SceneViewer-GNUmakefile.diff \ patch-drop-GNUmakefile.diff \ patch-flfreetype.h.diff \ patch-gview-GNUmakefile.diff \ patch-ivcat-GNUmakefile.diff \ patch-ivcommondefs.diff \ patch-ivdowngrade-GNUmakefile.diff \ patch-ivfix-GNUmakefile.diff \ patch-ivinfo-GNUmakefile.diff \ patch-ivman-GNUmakefile.diff \ patch-ivview-GNUmakefile.diff \ patch-localrules.apple.diff \ patch-maze-GNUmakefile.diff \ patch-noodle-GNUmakefile.diff \ patch-qmorf-GNUmakefile.diff \ patch-revo-GNUmakefile.diff \ patch-soxt-GNUmakefile.diff \ patch-textomatic-GNUmakefile.diff \ patch-widgets-GNUmakefile.componentTest.diff

post-patch {

reinplace "s|PREFIX|${prefix}|" \ ${worksrcpath}/make/ivcommondefs

}

build.type gnu use_configure no build.env DYLD_LIBRARY_PATH=${worksrcpath}/lib \

IVROOT=${destroot}

destroot.env ${build.env}

post-destroot {

xinstall -m 755 -d ${destroot}${prefix}/share/${name} xinstall -m 644 -W ${worksrcpath} COPYING FAQ.misc KNOWN.BUGS \

${destroot}${prefix}/share/${name}

}

comment:5 Changed 20 years ago by jmpp@…

Here's a revised Portfile, with some general retabbing and unnecessary options removed. Please review, test, build, install, etc... and let me know how it goes. If it works I can commit it.

Please, next time don't post the Portfile inlined, it's a real nuissance. Thanks for the contribution!

-jmpp

Changed 20 years ago by jmpp@…

Attachment: Portfile added

Portfile

comment:6 Changed 20 years ago by jmpp@…

attachments.isobsolete: 01

comment:7 Changed 20 years ago by jmpp@…

Just built the port off my latest revision to your Portfile and everything seems fine, except that man pages are being installed onto ${prefix}/man but they need to go in ${prefix}/share/man. Could you please correct this?

-jmpp

comment:8 Changed 20 years ago by cssdev@…

I modified the IVMAN1DIR and IVMAN3DIR variables in ivcommondefs to install man pages into ${prefix}/share.

Changed 20 years ago by cssdev@…

Attachment: patch-ivcommondefs.diff added

Patch for ivcommondefs

comment:9 Changed 20 years ago by jmpp@…

Resolution: fixed
Status: newclosed

Port built, installed and verified, hence committed, thanks for the addition (keep 'em coming ;-)!

-jmpp

Note: See TracTickets for help on using tickets.