Opened 3 years ago

Closed 3 years ago

#56417 closed defect (fixed)

transcode @1.1.7_21 fails to build with ffmpeg 4

Reported by: tehcog (tehcog) Owned by: Liontooth (David Liontooth)
Priority: Normal Milestone:
Component: ports Version: 2.4.3
Keywords: Cc: dbevans (David B. Evans)
Port: transcode

Description (last modified by ryandesign (Ryan Schmidt))

See #56412 and attached log file.

Attachments (8)

main.log (133.7 KB) - added by tehcog (tehcog) 3 years ago.
main.log
Portfile (8.0 KB) - added by ajdudman 3 years ago.
This Portfile patches transcode for ffmpeg 4 and as needed ImageMagick 7.
avilib-avidump.c.diff (380 bytes) - added by ajdudman 3 years ago.
This is patch-avilib-avidump.c.diff renamed and prefixed.
configure.in.diff (335 bytes) - added by ajdudman 3 years ago.
This is patch-configure.diff renamed, prefixed, and retargeted to configure.in from configure.
filter-subtitler-load_font.c.diff (349 bytes) - added by ajdudman 3 years ago.
This is patch-freetype-2.5.1.diff renamed and prefixed.
main.2.log (339.0 KB) - added by bunk3m (Bunk3m) 3 years ago.
log of build for sudo port install transcode +a52dec +experimental +faac +freetype +full +imagemagick +libdv +libogg +libpostproc +libquicktime +libtheora +libvorbis +libxml2 +lzo +mjpegtools +x11 +x264 +xvid -libsdl
Portfile.diff (4.3 KB) - added by ajdudman 3 years ago.
This unified diff ignoring white space of Portfile patches transcode for ffmpeg 4 and as needed ImageMagick 7.
main.3.log (2.2 MB) - added by ajdudman 3 years ago.
This is a log of my successful build of transcode for ffmeg 4.

Change History (20)

Changed 3 years ago by tehcog (tehcog)

Attachment: main.log added

main.log

comment:1 Changed 3 years ago by ryandesign (Ryan Schmidt)

Description: modified (diff)
Keywords: mavericks removed
Summary: transcode @1.1.7_21 fails to build on maverickstranscode @1.1.7_21 fails to build with ffmpeg 4

Changed 3 years ago by ajdudman

Attachment: Portfile added

This Portfile patches transcode for ffmpeg 4 and as needed ImageMagick 7.

Changed 3 years ago by ajdudman

Attachment: avilib-avidump.c.diff added

This is patch-avilib-avidump.c.diff renamed and prefixed.

Changed 3 years ago by ajdudman

Attachment: configure.in.diff added

This is patch-configure.diff renamed, prefixed, and retargeted to configure.in from configure.

Changed 3 years ago by ajdudman

This is patch-freetype-2.5.1.diff renamed and prefixed.

comment:2 Changed 3 years ago by ajdudman

Linux may have fixed this, while FreshPorts may be lagging somewhat. Arch Linux is easiest for me to follow. Is it okay to do this? Additionally, I have the universal variant working. Since the newer patches need patch prefix stripping, I renamed and adjusted 3 MacPorts patches. By the way, http-style uri parsing for path and query must be used to fetch the newer patches.

comment:3 Changed 3 years ago by mf2k (Frank Schima)

@ajdudman: Thanks. Per the guidelines, please instead attach a unified diff of the Portfile so we can easily see what changes you are proposing. Or better yet, submit a pull request.

Last edited 3 years ago by mf2k (Frank Schima) (previous) (diff)

comment:4 Changed 3 years ago by pmetzger (Perry E. Metzger)

Indeed, a GitHub Pull Request is much easier for us to process. Please submit one if possible.

Changed 3 years ago by bunk3m (Bunk3m)

Attachment: main.2.log added

log of build for sudo port install transcode +a52dec +experimental +faac +freetype +full +imagemagick +libdv +libogg +libpostproc +libquicktime +libtheora +libvorbis +libxml2 +lzo +mjpegtools +x11 +x264 +xvid -libsdl

comment:5 Changed 3 years ago by bunk3m (Bunk3m)

I've had a similar build issue but my main.log is 4039 lines long.

Install command: sudo port install transcode +a52dec +experimental +faac +freetype +full +imagemagick +libdv +libogg +libpostproc +libquicktime +libtheora +libvorbis +libxml2 +lzo +mjpegtools +x11 +x264 +xvid -libsdl

In addition to ffmpeg failure there is a problem with Imagemagick during the ffmpeg make.

Line 3906

:info:build ffmpeg_cfg.c:96:22: error: use of undeclared identifier 'FF_DEFAULT_QUANT_BIAS'

Line 3924

:info:build ffmpeg_cfg.c:136:56: error: use of undeclared identifier 'CODEC_FLAG_4MV'

etc.

See attached main.2.log

comment:6 Changed 3 years ago by mf2k (Frank Schima)

Cc: Liontooth removed
Owner: set to Liontooth
Status: newassigned

Changed 3 years ago by ajdudman

Attachment: Portfile.diff added

This unified diff ignoring white space of Portfile patches transcode for ffmpeg 4 and as needed ImageMagick 7.

Changed 3 years ago by ajdudman

Attachment: main.3.log added

This is a log of my successful build of transcode for ffmeg 4.

comment:7 Changed 3 years ago by ajdudman

Sorry for my slow response with the Portfile.diff attachment. I do not have a GitHub account.

Hello bunk3m, you have ffmpeg 4 installed and are using the current Portfile and its patches designed for ffmpeg 3.

See attached main.3.log for a successful build log of transcode using my submitted attachments and ffmpeg 4.

port -svd build transcode build.jobs=1

Still remaining, code should be added to reject ffmpeg 3.

It is a shame upstream has no checks nor tests to be run.

comment:8 Changed 3 years ago by mf2k (Frank Schima)

Can this line:

checksums       transcode-1.1.7.tar.bz2 \

be changed to:

checksums       ${distfiles} \

To be generic?

Last edited 3 years ago by mf2k (Frank Schima) (previous) (diff)

comment:9 Changed 3 years ago by mf2k (Frank Schima)

The attached patchfiles should follow the standard naming convention and prepend "patch-".

Can you please clarify which patchfiles should be removed?

It looks like at least

patch-ffmpeg-0.11.diff
patch-ffmpeg-2.0.diff	
patch-ffmpeg-2.4.diff	
patch-ffmpeg-3.0.diff

comment:10 Changed 3 years ago by ajdudman

Hello mf2k,

My answer to comment:8 is yes, but it obscures which file is checksummed.

My answer to comment:9 is all current patches should be removed, unless you know a way to set patch.pre_args on a per patch basis. The patches sourced from git.archlinux.org require patch to use different patch prefix stripping level. I.E., patch.pre_args to be -p1, while the current ones -p0, the default. Current patches patch-avilib-avidump.c.diff and patch-freetype-2.5.1.diff might remain. I adjusted the prefixes to conform to -p1 patch prefix stripping, and renamed the altered patches, thinking I would avoid confusion. I would be most happy for patches to follow standard naming convention, but three out of six of the patches are sourced from git.archlinux.org with different, non-standard names.

comment:11 in reply to:  10 Changed 3 years ago by ryandesign (Ryan Schmidt)

Replying to mf2k:

The attached patchfiles should follow the standard naming convention and prepend "patch-".

I'm happy as long as the local patchfile names end with ".diff" or ".patch". Eventually I'll get around to relaxing port lint to match that.

Replying to ajdudman:

My answer to comment:9 is all current patches should be removed, unless you know a way to set patch.pre_args on a per patch basis.

patch.pre_args applies to all of a port's patchfiles. All patchfiles must use the same -p setting.

I would be most happy for patches to follow standard naming convention, but three out of six of the patches are sourced from git.archlinux.org with different, non-standard names.

Names of patchfiles we're downloading from remove servers are obviously not under our control so whatever their names are is fine.

comment:12 Changed 3 years ago by mf2k (Frank Schima)

Resolution: fixed
Status: assignedclosed

In 6eac63c764b6d1b0f30b59260312bb49df548b3f/macports-ports (master):

transcode: Fix build for ffmpeg 4

Fixes: #56417

Note: See TracTickets for help on using tickets.