Bug 74226

Summary: Upgrade multimedia/transcode from 0.6.12 to 0.6.14
Product: Ports & Packages Reporter: frank
Component: Individual Port(s)Assignee: Michael Johnson <ahze>
Status: Closed FIXED    
Severity: Affects Only Me CC: hendrik
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description frank 2004-11-22 05:30:27 UTC

    
Comment 1 Michael Johnson freebsd_committer freebsd_triage 2004-11-22 05:33:56 UTC
Responsible Changed
From-To: freebsd-ports-bugs->ahze

Grab
Comment 2 Peter Jeremy 2004-12-04 11:00:37 UTC
I have been experimenting with this patch and bumped into a problem
with the compilation on 4.10 - several libraries contain libtool
driver files instead of the actual object files.  The problem seems to
be some code in {aclib,bbmpeg}/Makefile.in that remames .lo files to
.o files and creates fake .lo files for libtool.  The only problem is
that these faked .lo files wind up being included in the actual
libraries (I don't understand why).  Applying the patch below allows
transcode to build, install and run.

I did notice when trying to build a package that the man pages are
incorrectly shown as uncompressed and there are some .so's missing
(see after the patch).

--- aclib/Makefile.in~	Sat Dec  4 21:07:55 2004
+++ aclib/Makefile.in	Sat Dec  4 21:09:22 2004
@@ -682,19 +682,6 @@
 # but libtool doesn't know that, so we fake it.
 .s.lo:
 	$(ASM) $(ASMFLAGS) -o $@ `test -f '$<' || echo '$(scrdir)/'`$<
-	@new_name=".libs/`echo $@ | sed -e 's,\.lo$$,\.o,'`" && \
-		 mv $@ $$new_name && \
-		 echo "# $@ - a libtool object file" >> $@ && \
-		 echo "# Generated by ltmain.sh - GNU libtool 1.5 (1.1220 2003/04/05 19:32:58)" >> $@ && \
-		 echo "#" >> $@ && \
-		 echo "# Please DO NOT delete this file!" >> $@ && \
-		 echo "# It is necessary for linking the library." >> $@ && \
-		 echo "" >> $@ && \
-		 echo "# Name of the PIC object." >> $@ && \
-		 echo "pic_object='$$new_name'" >> $@ && \
-		 echo "" >> $@ && \
-		 echo "# Name of the non-PIC object." >> $@ && \
-		 echo "non_pic_object=none" >> $@
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
--- bbmpeg/Makefile.in~	Sat Dec  4 21:07:55 2004
+++ bbmpeg/Makefile.in	Sat Dec  4 21:09:22 2004
@@ -884,19 +884,6 @@
 # but libtool doesn't know that, so we fake it.
 .s.lo:
 	$(ASM) $(ASMFLAGS) -o $@ `test -f '$<' || echo '$(scrdir)/'`$<
-	@new_name=".libs/`echo $@ | sed -e 's,\.lo$$,\.o,'`" && \
-		 mv $@ $$new_name && \
-		 echo "# $@ - a libtool object file" >> $@ && \
-		 echo "# Generated by ltmain.sh - GNU libtool 1.5 (1.1220 2003/04/05 19:32:58)" >> $@ && \
-		 echo "#" >> $@ && \
-		 echo "# Please DO NOT delete this file!" >> $@ && \
-		 echo "# It is necessary for linking the library." >> $@ && \
-		 echo "" >> $@ && \
-		 echo "# Name of the PIC object." >> $@ && \
-		 echo "pic_object='$$new_name'" >> $@ && \
-		 echo "" >> $@ && \
-		 echo "# Name of the non-PIC object." >> $@ && \
-		 echo "non_pic_object=none" >> $@
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:

pkg_create -b errors:
tar: lib/transcode/export_mov.so: Cannot stat: No such file or directory
tar: lib/transcode/export_net.so: Cannot stat: No such file or directory
tar: lib/transcode/import_mov.so: Cannot stat: No such file or directory
tar: lib/transcode/import_net.so: Cannot stat: No such file or directory
tar: man/man1/avifix.1: Cannot stat: No such file or directory
tar: man/man1/aviindex.1: Cannot stat: No such file or directory
tar: man/man1/avimerge.1: Cannot stat: No such file or directory
tar: man/man1/avisplit.1: Cannot stat: No such file or directory
tar: man/man1/avisync.1: Cannot stat: No such file or directory
tar: man/man1/tccat.1: Cannot stat: No such file or directory
tar: man/man1/tcdecode.1: Cannot stat: No such file or directory
tar: man/man1/tcdemux.1: Cannot stat: No such file or directory
tar: man/man1/tcextract.1: Cannot stat: No such file or directory
tar: man/man1/tcmodinfo.1: Cannot stat: No such file or directory
tar: man/man1/tcprobe.1: Cannot stat: No such file or directory
tar: man/man1/tcpvmexportd.1: Cannot stat: No such file or directory
tar: man/man1/tcscan.1: Cannot stat: No such file or directory
tar: man/man1/tcxmlcheck.1: Cannot stat: No such file or directory
tar: man/man1/transcode.1: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors
pkg_create: make_dist: tar command failed with code 512

-- 
Peter Jeremy
Comment 3 Hendrik Scholz 2004-12-05 14:06:06 UTC
Hi!

Looks good but needs some further testing. Please do not commit yet as 
it depends on the upgraded ffmpeg port (ports/74225) which has problems.
Instead I'll first fix the !i386 pkg-plist issue but my Netra is rather 
slow so it's gonna take some time.

Thanks,
	Hendrik
Comment 4 Hendrik Scholz 2004-12-08 20:26:54 UTC
Hi!

Now that ffmpeg has been updated I had a closer look and discovered some 
problems related to NASM.

Did you have nasm installed when building transcode?
Building with nasm and MMX didn't work for me (multiple errors - some of 
them already discussed on the mailing list) and compiling without 
results in a problem in libvo (see third patch).

What I've done to get it compiling was disabling nasm, mmx and 3dnow 
(--disable-nasm --disable-mmx and --disable-3dnow via CONFIGURE_ARGS in 
Makefile).
This disables all nice speed ups transcode provides and I won't upgrade 
the port until we have nasm/mmx back in place.
Here are the three patches that I used. The second one I've already send 
upstream.

I'm investigating further and on the way to check out a cvs snapshot 
that hopefully has some patches in there.

Hendrik

patch-aclib:tcmemcpy.c

--- aclib/tcmemcpy.c.orig       Wed Dec  8 20:45:35 2004
+++ aclib/tcmemcpy.c    Wed Dec  8 20:45:48 2004
@@ -10,6 +10,7 @@
         const char * method = "libc";

  /* these functions are nasm assembly */
+#undef HAVE_ASM_NASM
  #ifdef HAVE_ASM_NASM
         if((accel & MM_MMXEXT) || (accel & MM_SSE))
         {
patch-avilib:os.h

--- avilib/os.h.orig    Wed Dec  8 16:33:07 2004
+++ avilib/os.h Wed Dec  8 16:34:46 2004
@@ -19,7 +19,9 @@
  # define COMP_GCC
  # define SYS_UNIX
  # if defined(__bsdi__) || defined(__FreeBSD__)
-#  define SYS_BSD
+#  if !defined(SYS_BSD)
+#   define SYS_BSD
+#  endif
  # else
  #  define SYS_LINUX
  # endif
patch-libvo:yuv2rgb_mmx.c

--- libvo/yuv2rgb_mmx.c.orig    Wed Dec  8 20:59:04 2004
+++ libvo/yuv2rgb_mmx.c Wed Dec  8 20:59:15 2004
@@ -24,6 +24,7 @@

  #include "config.h"

+#define HAVE_MMX
  #ifdef HAVE_MMX

  #include <stdio.h>


-- 
Hendrik Scholz - <hscholz@raisdorf.net> - http://www.wormulon.net/
drag me, drop me - treat me like an object
Comment 5 frank 2005-01-24 06:05:33 UTC
I apologize for not having responded before, I didn't realize that you
had asked me a question.  Yes, I did have nasm installed when I built
transcode, on both 4-stable and 5-stable.  I'm rebuilding it now and
I'll see if I can reproduce (or avoid) your problem.
-- 
Frank Mayhar <frank@exit.com>
Exit Consulting
Comment 6 Michael Johnson freebsd_committer freebsd_triage 2005-02-21 18:29:33 UTC
State Changed
From-To: open->closed

Superseded by ports/77860