Bug 195601

Summary: [patch] archivers/file-roller 3.14.1 fails to build on FreeBSD 8.4
Product: Ports & Packages Reporter: Don Lewis <truckman>
Component: Individual Port(s)Assignee: Don Lewis <truckman>
Status: Closed FIXED    
Severity: Affects Some People Flags: bugzilla: maintainer-feedback? (gnome)
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
patch to fix build of archivers/file-roller 3.14.1 on FreeBSD 8.4 none

Description Don Lewis freebsd_committer freebsd_triage 2014-12-03 08:00:41 UTC
Created attachment 150134 [details]
patch to fix build of archivers/file-roller 3.14.1 on FreeBSD 8.4

The archivers/file-roller version 3.14.1 port fails to build on FreeBSD 8.4:

  CC       fr-command-tar.o
fr-command-lrzip.c: In function 'list__process_line':
fr-command-lrzip.c:48: error: 'struct stat' has no member named 'st_mtim'
Makefile:720: recipe for target 'fr-command-lrzip.o' failed
gmake[4]: *** [fr-command-lrzip.o] Error 1
gmake[4]: *** Waiting for unfinished jobs....
gmake[4]: Leaving directory '/wrkdirs/usr/ports/archivers/file-roller/work/file-roller-3.14.1/src'
Makefile:753: recipe for target 'all-recursive' failed
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory '/wrkdirs/usr/ports/archivers/file-roller/work/file-roller-3.14.1/src'
Makefile:551: recipe for target 'all' failed
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory '/wrkdirs/usr/ports/archivers/file-roller/work/file-roller-3.14.1/src'
Makefile:496: recipe for target 'all-recursive' failed
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory '/wrkdirs/usr/ports/archivers/file-roller/work/file-roller-3.14.1'
Makefile:425: recipe for target 'all' failed
gmake: *** [all] Error 2
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop in /usr/ports/archivers/file-roller.


In FreeBSD 8.4 this member of struct stat is named st_mtimespec.  In the early days of FreeBSD 9 (after the branch but before 9.0-RELEASE), it was renamed to st_mtim in src rev r205792 for POSIX 2008 compliance.  This change was never merged back to 8-STABLE.  There was no corresponding bump of __FreeBSD_version, but the change happened between 900010 and 900011.

The attached patch tweaks the source to use the old name when building on FreeBSD 8.4.
Comment 1 Bugzilla Automation freebsd_committer freebsd_triage 2014-12-03 08:00:41 UTC
Auto-assigned to maintainer gnome@FreeBSD.org
Comment 2 commit-hook freebsd_committer freebsd_triage 2015-04-11 17:43:25 UTC
A commit references this bug:

Author: truckman
Date: Sat Apr 11 17:42:54 UTC 2015
New revision: 383819
URL: https://svnweb.freebsd.org/changeset/ports/383819

Log:
  n FreeBSD 8 the name of the mtime member of struct stat was st_mtimespec.
  In the early days of FreeBSD 9 (after the branch but before 9.0-RELEASE),
  it was renamed to st_mtim in src rev r205792 for POSIX 2008 compliance.
  This change was never merged back to 8-STABLE. There was no corresponding
  bump of __FreeBSD_version, but the change happened between r900010 and
  r900011.  Patch the source to use the old name when building on FreeBSD 8.

  Remove the BROKEN tag to allow the port to be built on FreeBSD 8.

  PR:		195601
  Differential Revision:	https://reviews.freebsd.org/D2281
  Reviewed by:	kwm
  Approved by:	mat (mentor)

Changes:
  head/archivers/file-roller/Makefile
  head/archivers/file-roller/files/patch-src_fr-command-patch-src_fr-command-lrzip.c