summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-libs/openctm/Manifest1
-rw-r--r--media-libs/openctm/files/openctm-1.0.3-create-lib-with-correct-soname-and-symlinks.patch30
-rw-r--r--media-libs/openctm/files/openctm-1.0.3-do-not-set-rpath.patch19
-rw-r--r--media-libs/openctm/files/openctm-1.0.3-escape-hyphens-in-ctmconv-man-page.patch11
-rw-r--r--media-libs/openctm/files/openctm-1.0.3-fix-install-paths.patch32
-rw-r--r--media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-only-with-necessary-gtk-libs.patch13
-rw-r--r--media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-with-libGL.patch11
-rw-r--r--media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-with-libGLU.patch11
-rw-r--r--media-libs/openctm/files/openctm-1.0.3-no-strip.patch32
-rw-r--r--media-libs/openctm/files/openctm-1.0.3-respect-flags.patch79
-rw-r--r--media-libs/openctm/files/openctm-1.0.3-use-system-libs.patch81
-rw-r--r--media-libs/openctm/metadata.xml3
-rw-r--r--media-libs/openctm/openctm-1.0.3-r1.ebuild57
13 files changed, 380 insertions, 0 deletions
diff --git a/media-libs/openctm/Manifest b/media-libs/openctm/Manifest
index af6b78d69938..2ec444b8cdaa 100644
--- a/media-libs/openctm/Manifest
+++ b/media-libs/openctm/Manifest
@@ -1 +1,2 @@
+DIST openctm-1.0.3-src.tar.bz2 1507603 BLAKE2B 379dad88ef3b069ee4167bdee8c1e86c6f1250c0db7bb108d12b6005f0cd19a4cafcaae51a8e1eddde7566fc9c8e361472268edb1806a5383f536d070ea4354a SHA512 fdfa08d19ecbfea99ba01aa2032e941ed6313394a96bd69f8984c2d2d079d836c616471d2bdf6f40175e75659f3ad0ba41502bc3d8224091472f40893ea8746e
DIST openctm_1.0.3+dfsg1.orig.tar.bz2 179792 BLAKE2B 446fedc14e646b7cfc0aaac2d4f9b224482d74bf4faadd866b7121392e3863e3e42fe57f35654d4e9d7c056b3b8069dfb4668660d97ce7266d7850026654a88c SHA512 4ea8c9230e01b57fce4d741df77713df8fb0493fbb20c8d4b183e3e8cec16f97e8003d2569b1c7cac07a17d334711673c0fed0c6c050bbdb901028ee9f6c32f6
diff --git a/media-libs/openctm/files/openctm-1.0.3-create-lib-with-correct-soname-and-symlinks.patch b/media-libs/openctm/files/openctm-1.0.3-create-lib-with-correct-soname-and-symlinks.patch
new file mode 100644
index 000000000000..6b91f43aff7b
--- /dev/null
+++ b/media-libs/openctm/files/openctm-1.0.3-create-lib-with-correct-soname-and-symlinks.patch
@@ -0,0 +1,30 @@
+--- a/lib/Makefile.linux
++++ b/lib/Makefile.linux
+@@ -33,7 +33,11 @@
+ RM = rm -f
+ DEPEND = $(CPP) -MM
+
+-DYNAMICLIB = libopenctm.so
++VERSION = 1.0.3
++SOVERSION = 1
++LIBNAME = libopenctm.so
++SONAME = $(LIBNAME).$(SOVERSION)
++DYNAMICLIB = $(LIBNAME).$(VERSION)
+
+ OBJS = openctm.o \
+ stream.o \
+@@ -64,10 +68,12 @@
+ all: $(DYNAMICLIB)
+
+ clean:
+- $(RM) $(DYNAMICLIB) $(OBJS) $(LZMA_OBJS)
++ $(RM) $(DYNAMICLIB) $(SONAME) $(LIBNAME) $(OBJS) $(LZMA_OBJS)
+
+ $(DYNAMICLIB): $(OBJS) $(LZMA_OBJS)
+- gcc -shared -s -Wl,-soname,$@ -o $@ $(OBJS) $(LZMA_OBJS) -lm
++ gcc -shared -s -Wl,-soname,$(SONAME) -o $@ $(OBJS) $(LZMA_OBJS) -lm
++ ln -s $(DYNAMICLIB) $(SONAME)
++ ln -s $(DYNAMICLIB) $(LIBNAME)
+
+ %.o: %.c
+ $(CC) $(CFLAGS) $<
diff --git a/media-libs/openctm/files/openctm-1.0.3-do-not-set-rpath.patch b/media-libs/openctm/files/openctm-1.0.3-do-not-set-rpath.patch
new file mode 100644
index 000000000000..e80e5cf34b4c
--- /dev/null
+++ b/media-libs/openctm/files/openctm-1.0.3-do-not-set-rpath.patch
@@ -0,0 +1,19 @@
+--- a/tools/Makefile.linux
++++ b/tools/Makefile.linux
+@@ -43,13 +43,13 @@
+ rm -f ctmconv ctmviewer ctmbench $(CTMCONVOBJS) $(CTMVIEWEROBJS) $(CTMBENCHOBJS) bin2c phong_frag.h phong_vert.h
+
+ ctmconv: $(CTMCONVOBJS)
+- $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMCONVOBJS) -Wl,-rpath,. -lopenctm -ltinyxml
++ $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMCONVOBJS) -lopenctm -ltinyxml
+
+ ctmviewer: $(CTMVIEWEROBJS)
+- $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMVIEWEROBJS) -Wl,-rpath,. -lopenctm -ltinyxml -ljpeg -lpnglite -lz -lglut -lGLU -lGLEW `pkg-config --libs gtk+-2.0`
++ $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMVIEWEROBJS) -lopenctm -ltinyxml -ljpeg -lpnglite -lz -lglut -lGLU -lGLEW `pkg-config --libs gtk+-2.0`
+
+ ctmbench: $(CTMBENCHOBJS)
+- $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMBENCHOBJS) -Wl,-rpath,. -lopenctm
++ $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMBENCHOBJS) -lopenctm
+
+ %.o: %.cpp
+ $(CPP) $(CPPFLAGS) -o $@ $<
diff --git a/media-libs/openctm/files/openctm-1.0.3-escape-hyphens-in-ctmconv-man-page.patch b/media-libs/openctm/files/openctm-1.0.3-escape-hyphens-in-ctmconv-man-page.patch
new file mode 100644
index 000000000000..4f0a5d598898
--- /dev/null
+++ b/media-libs/openctm/files/openctm-1.0.3-escape-hyphens-in-ctmconv-man-page.patch
@@ -0,0 +1,11 @@
+--- a/doc/ctmconv.1
++++ b/doc/ctmconv.1
+@@ -24,7 +24,7 @@
+ Scale the mesh by a scalar factor.
+ .TP
+ .B --upaxis arg
+-Set up axis (X, Y, Z, -X, -Y, -Z). If != Z, the mesh will be flipped.
++Set up axis (X, Y, Z, \-X, \-Y, \-Z). If != Z, the mesh will be flipped.
+ .TP
+ .B --flip
+ Flip triangle orientation.
diff --git a/media-libs/openctm/files/openctm-1.0.3-fix-install-paths.patch b/media-libs/openctm/files/openctm-1.0.3-fix-install-paths.patch
new file mode 100644
index 000000000000..dd2e0c425f7b
--- /dev/null
+++ b/media-libs/openctm/files/openctm-1.0.3-fix-install-paths.patch
@@ -0,0 +1,32 @@
+--- a/Makefile.linux
++++ b/Makefile.linux
+@@ -47,19 +47,21 @@
+
+
+ # Installation settings
+-LIBDIR = /usr/lib/
+-INCDIR = /usr/local/include/
+-BINDIR = /usr/local/bin/
+-MAN1DIR = /usr/local/share/man/man1/
+-CP = cp
++LIBDIR = $(DESTDIR)/usr/$GENTOO_LIBDIR@/$(DEB_HOST_MULTIARCH)
++INCDIR = $(DESTDIR)/usr/include/
++BINDIR = $(DESTDIR)/usr/bin/
++MAN1DIR = $(DESTDIR)/usr/share/man/man1/
++CP = cp -P
+ MKDIR = mkdir -p
+
+-install:
+- $(CP) lib/libopenctm.so $(LIBDIR)
++$(LIBDIR) $(INCDIR) $(BINDIR) $(MAN1DIR):
++ $(MKDIR) -p "$@"
++
++install: $(LIBDIR) $(INCDIR) $(BINDIR) $(MAN1DIR)
++ $(CP) lib/libopenctm.so* $(LIBDIR)
+ $(CP) lib/openctm.h $(INCDIR)
+ $(CP) lib/openctmpp.h $(INCDIR)
+ $(CP) tools/ctmconv $(BINDIR)
+ $(CP) tools/ctmviewer $(BINDIR)
+- $(MKDIR) $(MAN1DIR)
+ $(CP) doc/ctmconv.1 $(MAN1DIR)
+ $(CP) doc/ctmviewer.1 $(MAN1DIR)
diff --git a/media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-only-with-necessary-gtk-libs.patch b/media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-only-with-necessary-gtk-libs.patch
new file mode 100644
index 000000000000..370960721b5c
--- /dev/null
+++ b/media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-only-with-necessary-gtk-libs.patch
@@ -0,0 +1,13 @@
+--- a/tools/Makefile.linux
++++ b/tools/Makefile.linux
+@@ -46,7 +46,9 @@
+ $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMCONVOBJS) -lopenctm -ltinyxml
+
+ ctmviewer: $(CTMVIEWEROBJS)
+- $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMVIEWEROBJS) -lopenctm -ltinyxml -ljpeg -lpnglite -lz -lglut -lGLU -lGLEW `pkg-config --libs gtk+-2.0`
++ $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMVIEWEROBJS) -lopenctm \
++ -ltinyxml -ljpeg -lpnglite -lz -lglut -lGLU -lGLEW \
++ -lgtk-x11-2.0 -lgobject-2.0 -lglib-2.0
+
+ ctmbench: $(CTMBENCHOBJS)
+ $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMBENCHOBJS) -lopenctm
diff --git a/media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-with-libGL.patch b/media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-with-libGL.patch
new file mode 100644
index 000000000000..b8409d4423d4
--- /dev/null
+++ b/media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-with-libGL.patch
@@ -0,0 +1,11 @@
+--- a/tools/Makefile.linux
++++ b/tools/Makefile.linux
+@@ -47,7 +47,7 @@
+
+ ctmviewer: $(CTMVIEWEROBJS)
+ $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMVIEWEROBJS) -lopenctm \
+- -ltinyxml -ljpeg -lpnglite -lz -lglut -lGLU -lGLEW \
++ -ltinyxml -ljpeg -lpnglite -lz -lGL -lglut -lGLU -lGLEW \
+ -lgtk-x11-2.0 -lgobject-2.0 -lglib-2.0
+
+ ctmbench: $(CTMBENCHOBJS)
diff --git a/media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-with-libGLU.patch b/media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-with-libGLU.patch
new file mode 100644
index 000000000000..1bf5d03e02d0
--- /dev/null
+++ b/media-libs/openctm/files/openctm-1.0.3-link-ctmviewer-with-libGLU.patch
@@ -0,0 +1,11 @@
+--- a/tools/Makefile.linux
++++ b/tools/Makefile.linux
+@@ -56,7 +56,7 @@
+ $(CPP) -s -o $@ -L$(OPENCTMDIR) -L$(TINYXMLDIR) $(CTMCONVOBJS) -Wl,-rpath,. -lopenctm -ltinyxml
+
+ ctmviewer: $(CTMVIEWEROBJS) $(JPEGDIR)/libjpeg.a $(TINYXMLDIR)/libtinyxml.a $(ZLIBDIR)/libz.a libopenctm.so
+- $(CPP) -s -o $@ -L$(OPENCTMDIR) -L$(TINYXMLDIR) -L$(JPEGDIR) -L$(ZLIBDIR) $(CTMVIEWEROBJS) -Wl,-rpath,. -lopenctm -ltinyxml -ljpeg -lz -lglut `pkg-config --libs gtk+-2.0`
++ $(CPP) -s -o $@ -L$(OPENCTMDIR) -L$(TINYXMLDIR) -L$(JPEGDIR) -L$(ZLIBDIR) $(CTMVIEWEROBJS) -Wl,-rpath,. -lopenctm -ltinyxml -ljpeg -lz -lglut -lGLU `pkg-config --libs gtk+-2.0`
+
+ ctmbench: $(CTMBENCHOBJS) libopenctm.so
+ $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMBENCHOBJS) -Wl,-rpath,. -lopenctm
diff --git a/media-libs/openctm/files/openctm-1.0.3-no-strip.patch b/media-libs/openctm/files/openctm-1.0.3-no-strip.patch
new file mode 100644
index 000000000000..e42165c520bb
--- /dev/null
+++ b/media-libs/openctm/files/openctm-1.0.3-no-strip.patch
@@ -0,0 +1,32 @@
+--- a/lib/Makefile.linux
++++ b/lib/Makefile.linux
+@@ -71,7 +71,7 @@
+ $(RM) $(DYNAMICLIB) $(SONAME) $(LIBNAME) $(OBJS) $(LZMA_OBJS)
+
+ $(DYNAMICLIB): $(OBJS) $(LZMA_OBJS)
+- $(CC) $(LDFLAGS) -shared -s -Wl,-soname,$(SONAME) -o $@ $(OBJS) $(LZMA_OBJS) -lm
++ $(CC) $(LDFLAGS) -shared -Wl,-soname,$(SONAME) -o $@ $(OBJS) $(LZMA_OBJS) -lm
+ ln -s $(DYNAMICLIB) $(SONAME)
+ ln -s $(DYNAMICLIB) $(LIBNAME)
+
+--- a/tools/Makefile.linux
++++ b/tools/Makefile.linux
+@@ -42,15 +42,15 @@
+ rm -f ctmconv ctmviewer ctmbench $(CTMCONVOBJS) $(CTMVIEWEROBJS) $(CTMBENCHOBJS) bin2c phong_frag.h phong_vert.h
+
+ ctmconv: $(CTMCONVOBJS)
+- $(CXX) $(LDFLAGS) -s -o $@ -L$(OPENCTMDIR) $(CTMCONVOBJS) -lopenctm -ltinyxml
++ $(CXX) $(LDFLAGS) -o $@ -L$(OPENCTMDIR) $(CTMCONVOBJS) -lopenctm -ltinyxml
+
+ ctmviewer: $(CTMVIEWEROBJS)
+- $(CXX) $(LDFLAGS) -s -o $@ -L$(OPENCTMDIR) $(CTMVIEWEROBJS) -lopenctm \
++ $(CXX) $(LDFLAGS) -o $@ -L$(OPENCTMDIR) $(CTMVIEWEROBJS) -lopenctm \
+ -ltinyxml -ljpeg -lpnglite -lz -lGL -lglut -lGLU -lGLEW \
+ -lgtk-x11-2.0 -lgobject-2.0 -lglib-2.0
+
+ ctmbench: $(CTMBENCHOBJS)
+- $(CXX) $(LDFLAGS) -s -o $@ -L$(OPENCTMDIR) $(CTMBENCHOBJS) -lopenctm
++ $(CXX) $(LDFLAGS) -o $@ -L$(OPENCTMDIR) $(CTMBENCHOBJS) -lopenctm
+
+ %.o: %.cpp
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
diff --git a/media-libs/openctm/files/openctm-1.0.3-respect-flags.patch b/media-libs/openctm/files/openctm-1.0.3-respect-flags.patch
new file mode 100644
index 000000000000..4a406d0caf88
--- /dev/null
+++ b/media-libs/openctm/files/openctm-1.0.3-respect-flags.patch
@@ -0,0 +1,79 @@
+--- a/lib/Makefile.linux
++++ b/lib/Makefile.linux
+@@ -27,9 +27,9 @@
+ ###############################################################################
+
+ LZMADIR = liblzma
+-CC = gcc
+-CFLAGS = -O3 -W -Wall -c -fPIC -DOPENCTM_BUILD -I$(LZMADIR) -DLZMA_PREFIX_CTM -std=c99 -pedantic
+-CFLAGS_LZMA = -O3 -W -Wall -c -fPIC -DLZMA_PREFIX_CTM -std=c99 -pedantic
++CFLAGS += -W -Wall -c -fPIC -std=c99 -pedantic
++INCDEF = -DOPENCTM_BUILD -I$(LZMADIR) -DLZMA_PREFIX_CTM
++INCDEF_LZMA = -DLZMA_PREFIX_CTM
+ RM = rm -f
+ DEPEND = $(CPP) -MM
+
+@@ -71,15 +71,15 @@
+ $(RM) $(DYNAMICLIB) $(SONAME) $(LIBNAME) $(OBJS) $(LZMA_OBJS)
+
+ $(DYNAMICLIB): $(OBJS) $(LZMA_OBJS)
+- gcc -shared -s -Wl,-soname,$(SONAME) -o $@ $(OBJS) $(LZMA_OBJS) -lm
++ $(CC) $(LDFLAGS) -shared -s -Wl,-soname,$(SONAME) -o $@ $(OBJS) $(LZMA_OBJS) -lm
+ ln -s $(DYNAMICLIB) $(SONAME)
+ ln -s $(DYNAMICLIB) $(LIBNAME)
+
+ %.o: %.c
+- $(CC) $(CFLAGS) $<
++ $(CC) $(CPPFLAGS) $(CFLAGS) $(INCDEF) $<
+
+ %.o: $(LZMADIR)/%.c
+- $(CC) $(CFLAGS_LZMA) $<
++ $(CC) $(CPPFLAGS) $(CFLAGS) $(INCDEF_LZMA) $<
+
+ depend:
+ $(DEPEND) $(SRCS) $(LZMA_SRCS) > make.depend
+--- a/tools/Makefile.linux
++++ b/tools/Makefile.linux
+@@ -29,8 +29,7 @@
+ GLEWDIR = /usr/include/GL
+ RPLYDIR = rply
+
+-CPP = g++
+-CPPFLAGS = -c -O3 -W -Wall `pkg-config --cflags gtk+-2.0` -I$(OPENCTMDIR) -I$(RPLYDIR) -I$(GLEWDIR)
++CXXFLAGS += -W -Wall `pkg-config --cflags gtk+-2.0` -I$(OPENCTMDIR) -I$(RPLYDIR) -I$(GLEWDIR)
+
+ MESHOBJS = mesh.o meshio.o ctm.o ply.o rply.o stl.o 3ds.o dae.o obj.o lwo.o off.o wrl.o
+ CTMCONVOBJS = ctmconv.o common.o systimer.o convoptions.o $(MESHOBJS)
+@@ -43,18 +42,18 @@
+ rm -f ctmconv ctmviewer ctmbench $(CTMCONVOBJS) $(CTMVIEWEROBJS) $(CTMBENCHOBJS) bin2c phong_frag.h phong_vert.h
+
+ ctmconv: $(CTMCONVOBJS)
+- $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMCONVOBJS) -lopenctm -ltinyxml
++ $(CXX) $(LDFLAGS) -s -o $@ -L$(OPENCTMDIR) $(CTMCONVOBJS) -lopenctm -ltinyxml
+
+ ctmviewer: $(CTMVIEWEROBJS)
+- $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMVIEWEROBJS) -lopenctm \
++ $(CXX) $(LDFLAGS) -s -o $@ -L$(OPENCTMDIR) $(CTMVIEWEROBJS) -lopenctm \
+ -ltinyxml -ljpeg -lpnglite -lz -lGL -lglut -lGLU -lGLEW \
+ -lgtk-x11-2.0 -lgobject-2.0 -lglib-2.0
+
+ ctmbench: $(CTMBENCHOBJS)
+- $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMBENCHOBJS) -lopenctm
++ $(CXX) $(LDFLAGS) -s -o $@ -L$(OPENCTMDIR) $(CTMBENCHOBJS) -lopenctm
+
+ %.o: %.cpp
+- $(CPP) $(CPPFLAGS) -o $@ $<
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
+
+ ctmconv.o: ctmconv.cpp systimer.h convoptions.h mesh.h meshio.h
+ ctmviewer.o: ctmviewer.cpp common.h image.h systimer.h sysdialog.h mesh.h meshio.h phong_vert.h phong_frag.h icons/icon_open.h icons/icon_save.h icons/icon_help.h
+@@ -83,7 +82,7 @@
+ ./bin2c phong.frag phongFragSrc > $@
+
+ bin2c: bin2c.cpp
+- $(CPP) -Os -W -Wall -o $@ $<
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -Os -W -Wall -o $@ $<
+
+ rply.o: $(RPLYDIR)/rply.c
+- gcc -c -O2 -W -I$(RPLYDIR) -o $@ $<
++ $(CC) $(CPPFLAGS) $(CFLAGS) -c -O2 -W -I$(RPLYDIR) -o $@ $<
diff --git a/media-libs/openctm/files/openctm-1.0.3-use-system-libs.patch b/media-libs/openctm/files/openctm-1.0.3-use-system-libs.patch
new file mode 100644
index 000000000000..e6d158c6c3b1
--- /dev/null
+++ b/media-libs/openctm/files/openctm-1.0.3-use-system-libs.patch
@@ -0,0 +1,81 @@
+--- a/tools/Makefile.linux
++++ b/tools/Makefile.linux
+@@ -26,39 +26,29 @@
+ ###############################################################################
+
+ OPENCTMDIR = ../lib
+-GLEWDIR = glew
+-JPEGDIR = jpeg
++GLEWDIR = /usr/include/GL
+ RPLYDIR = rply
+-TINYXMLDIR = tinyxml
+-ZLIBDIR = zlib
+-PNGLITEDIR = pnglite
+
+ CPP = g++
+-CPPFLAGS = -c -O3 -W -Wall `pkg-config --cflags gtk+-2.0` -I$(OPENCTMDIR) -I$(RPLYDIR) -I$(JPEGDIR) -I$(TINYXMLDIR) -I$(GLEWDIR) -I$(ZLIBDIR) -I$(PNGLITEDIR)
++CPPFLAGS = -c -O3 -W -Wall `pkg-config --cflags gtk+-2.0` -I$(OPENCTMDIR) -I$(RPLYDIR) -I$(GLEWDIR)
+
+ MESHOBJS = mesh.o meshio.o ctm.o ply.o rply.o stl.o 3ds.o dae.o obj.o lwo.o off.o wrl.o
+ CTMCONVOBJS = ctmconv.o common.o systimer.o convoptions.o $(MESHOBJS)
+-CTMVIEWEROBJS = ctmviewer.o common.o image.o systimer.o sysdialog_gtk.o convoptions.o glew.o pnglite.o $(MESHOBJS)
+-CTMBENCHOBJS = ctmbench.o systimer.o
++CTMVIEWEROBJS = ctmviewer.o common.o image.o systimer.o sysdialog_gtk.o convoptions.o $(MESHOBJS)
++ CTMBENCHOBJS = ctmbench.o systimer.o
+
+ all: ctmconv ctmviewer ctmbench
+
+ clean:
+ rm -f ctmconv ctmviewer ctmbench $(CTMCONVOBJS) $(CTMVIEWEROBJS) $(CTMBENCHOBJS) bin2c phong_frag.h phong_vert.h
+- cd $(JPEGDIR) && $(MAKE) -f makefile.linux clean
+- cd $(TINYXMLDIR) && $(MAKE) -f Makefile.linux clean
+- cd $(ZLIBDIR) && $(MAKE) -f Makefile.linux clean
+
+-libopenctm.so: $(OPENCTMDIR)/libopenctm.so
+- cp $< $@
++ctmconv: $(CTMCONVOBJS)
++ $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMCONVOBJS) -Wl,-rpath,. -lopenctm -ltinyxml
+
+-ctmconv: $(CTMCONVOBJS) $(TINYXMLDIR)/libtinyxml.a libopenctm.so
+- $(CPP) -s -o $@ -L$(OPENCTMDIR) -L$(TINYXMLDIR) $(CTMCONVOBJS) -Wl,-rpath,. -lopenctm -ltinyxml
++ctmviewer: $(CTMVIEWEROBJS)
++ $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMVIEWEROBJS) -Wl,-rpath,. -lopenctm -ltinyxml -ljpeg -lpnglite -lz -lglut -lGLU -lGLEW `pkg-config --libs gtk+-2.0`
+
+-ctmviewer: $(CTMVIEWEROBJS) $(JPEGDIR)/libjpeg.a $(TINYXMLDIR)/libtinyxml.a $(ZLIBDIR)/libz.a libopenctm.so
+- $(CPP) -s -o $@ -L$(OPENCTMDIR) -L$(TINYXMLDIR) -L$(JPEGDIR) -L$(ZLIBDIR) $(CTMVIEWEROBJS) -Wl,-rpath,. -lopenctm -ltinyxml -ljpeg -lz -lglut -lGLU `pkg-config --libs gtk+-2.0`
+-
+-ctmbench: $(CTMBENCHOBJS) libopenctm.so
++ctmbench: $(CTMBENCHOBJS)
+ $(CPP) -s -o $@ -L$(OPENCTMDIR) $(CTMBENCHOBJS) -Wl,-rpath,. -lopenctm
+
+ %.o: %.cpp
+@@ -68,7 +58,7 @@
+ ctmviewer.o: ctmviewer.cpp common.h image.h systimer.h sysdialog.h mesh.h meshio.h phong_vert.h phong_frag.h icons/icon_open.h icons/icon_save.h icons/icon_help.h
+ ctmbench.o: ctmbench.cpp systimer.h
+ common.o: common.cpp common.h
+-image.o: image.cpp image.h common.h $(JPEGDIR)/libjpeg.a
++image.o: image.cpp image.h common.h
+ systimer.o: systimer.cpp systimer.h
+ sysdialog_gtk.o: sysdialog_gtk.cpp sysdialog.h
+ convoptions.o: convoptions.cpp convoptions.h
+@@ -93,20 +83,5 @@
+ bin2c: bin2c.cpp
+ $(CPP) -Os -W -Wall -o $@ $<
+
+-$(JPEGDIR)/libjpeg.a:
+- cd $(JPEGDIR) && $(MAKE) -f makefile.linux libjpeg.a
+-
+-$(ZLIBDIR)/libz.a:
+- cd $(ZLIBDIR) && $(MAKE) -f Makefile.linux
+-
+-glew.o: $(GLEWDIR)/glew.c
+- gcc -c -Os -W -I$(GLEWDIR) -o $@ $<
+-
+ rply.o: $(RPLYDIR)/rply.c
+ gcc -c -O2 -W -I$(RPLYDIR) -o $@ $<
+-
+-pnglite.o: $(PNGLITEDIR)/pnglite.c
+- gcc -c -O2 -W -I$(PNGLITEDIR) -o $@ $<
+-
+-$(TINYXMLDIR)/libtinyxml.a:
+- cd $(TINYXMLDIR) && $(MAKE) -f Makefile.linux
diff --git a/media-libs/openctm/metadata.xml b/media-libs/openctm/metadata.xml
index 2dcfe570b108..770fe31ee810 100644
--- a/media-libs/openctm/metadata.xml
+++ b/media-libs/openctm/metadata.xml
@@ -8,6 +8,9 @@
<email>3dprint@gentoo.org</email>
<name>Gentoo 3D print</name>
</maintainer>
+ <slots>
+ <subslots>soname major version number</subslots>
+ </slots>
<longdescription>
OpenCTM - the Open Compressed Triangle Mesh file format - is a file format, a software library and a tool set for compression of 3D triangle meshes.
</longdescription>
diff --git a/media-libs/openctm/openctm-1.0.3-r1.ebuild b/media-libs/openctm/openctm-1.0.3-r1.ebuild
new file mode 100644
index 000000000000..60585930f8ea
--- /dev/null
+++ b/media-libs/openctm/openctm-1.0.3-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils multilib flag-o-matic toolchain-funcs
+
+MY_P=OpenCTM-${PV}
+
+DESCRIPTION="OpenCTM - the Open Compressed Triangle Mesh."
+HOMEPAGE="http://openctm.sourceforge.net"
+SRC_URI="https://downloads.sourceforge.net/project/openctm/${MY_P}/${MY_P}-src.tar.bz2 -> ${P}-src.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0/1"
+KEYWORDS="~amd64 ~x86"
+
+IUSE=""
+DEPEND="
+ dev-libs/tinyxml
+ media-libs/glew:0=
+ media-libs/pnglite
+ sys-libs/zlib
+ virtual/jpeg:0
+ media-libs/freeglut
+ virtual/opengl
+ x11-libs/gtk+:2"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-escape-hyphens-in-ctmconv-man-page.patch"
+ "${FILESDIR}/${P}-link-ctmviewer-with-libGLU.patch"
+ "${FILESDIR}/${P}-use-system-libs.patch"
+ "${FILESDIR}/${P}-do-not-set-rpath.patch"
+ "${FILESDIR}/${P}-link-ctmviewer-only-with-necessary-gtk-libs.patch"
+ "${FILESDIR}/${P}-link-ctmviewer-with-libGL.patch"
+ "${FILESDIR}/${P}-create-lib-with-correct-soname-and-symlinks.patch"
+ "${FILESDIR}/${P}-fix-install-paths.patch"
+ "${FILESDIR}/${P}-respect-flags.patch"
+ "${FILESDIR}/${P}-no-strip.patch"
+)
+
+src_prepare() {
+ edos2unix lib/Makefile.linux
+
+ default
+}
+
+src_compile() {
+ emake CC=$(tc-getCC) CXX="$(tc-getCXX)" -f Makefile.linux
+}
+
+src_install() {
+ emake DESTDIR="${ED}" LIBDIR="${ED}/usr/$(get_libdir)" -f Makefile.linux install
+}