Bug 239768

Summary: print/fontforge: Update to 20190801
Product: Ports & Packages Reporter: kunda <luzpaz>
Component: Individual Port(s)Assignee: Niclas Zeising <zeising>
Status: Closed FIXED    
Severity: Affects Only Me CC: cyberbotx, zeising
Priority: --- Keywords: needs-patch, needs-qa
Version: LatestFlags: cyberbotx: maintainer-feedback+
Hardware: Any   
OS: Any   
URL: https://github.com/fontforge/fontforge/releases/tag/20190801
Bug Depends on:    
Bug Blocks: 240377    
Attachments:
Description Flags
fontforge-20190801.patch cyberbotx: maintainer-approval+

Comment 1 Kubilay Kocak freebsd_committer freebsd_triage 2019-08-11 02:56:47 UTC
Standout notes from changelog (please review them all)

Python 2 support is deprecated. It is strongly recommended to build with Python 3 support. Python 2 support will be removed in a future release.

FontForge no longer uses gnulib

The build system now expects libuninameslist to be present, and will fail if it is not found. Building without libuninameslist must be explcititly specified using --without-libuninameslist
Comment 2 Naram Qashat 2019-08-18 20:49:54 UTC
So I'm finally getting around to looking into this and it'll take me some time. They moved from autotools to CMake for their build system as well.

I'm also wondering if I should make more things optional in the port instead of forcing them as is currently being done. Examples of what could be optional now:

* libspiro
* libuninameslist (as described by koobs)
* giflib
* jpeg
* png
* readline
* tiff

Also the 'tile path' command (formerly using the --enable-tile-path flag to configure) could be optional instead of forced.

The GUI toolkit can be chosen between either a GTK3-based one or one that uses plain X11 (or even disabling it which I think would only give command-line tools).

Making cairo optional seems to no longer be a thing (only required by fontforge itself when not using GTK3).

There's an option for Fontforge's native scripting, not sure if that should be an option in the port.

The changes are listed here:

https://github.com/fontforge/fontforge/wiki/CMake-guide-for-FontForge

And for reference, the previous version's configure.ac:

https://github.com/fontforge/fontforge/blob/20190413/configure.ac

So before going forward, I'd like advice on how to proceed with such a big change. Most likely to keep the port's packaging somewhat consistent, I'd set the above points as default options.
Comment 3 Kubilay Kocak freebsd_committer freebsd_triage 2019-08-23 03:11:54 UTC
(In reply to Naram Qashat from comment #2)

Make then OPTION'al, but leave them in OPTIONS_DEFAULT to make the changes a NOOP in the immediate term, until there is a better sense / idea of what can/should be made default/non-default in a separate issue

^Triage: Leave maintainer-feedback ? as we're still pending QA/patches
Comment 4 Naram Qashat 2019-09-02 02:03:34 UTC
Created attachment 207084 [details]
fontforge-20190801.patch

So, I realized after I started trying to make the port use CMake that they have not YET moved to CMake for the current release, it was done shortly after the release.

In any case, the attached patch moves to make most of the stuff options instead of required, with the previously required things being default options. I decided against making the native scripting optional.

* Update to 20190801
* Update distinfo
* Update pkg-plist
* Move most required things to options (only required LIB_DEPENDS is freetype2 and only required GNOME use is glib20 and libxml2)
* USES autoreconf no longer needs to have the build argument because they made their bootstrap be just running autoreconf and not all the other junk it did before
* USES localbase in favor of setting CPPFLAGS and LDFLAGS to those
* iconv is forced on despite being an option as the build fails without iconv for some reason
* Included options for some things that were not options before but are configurable via GNU configure
* Removed patches from files: patch-Makefile.am (uthash not used anymore), patch-fontforge_cvexport.c and patch-fontforge_print.c (that code was removed and the patch is not needed anymore), patch-fontforge_splinefont.h (looking at SVN history, this was added to fix build for 8.x, but that isn't supported anymore and it builds without this)
* Added patch to files: patch-m4-fontforge__arg__enable.m4 (without this, woff2 was always being enabled regardless of --enable/disable-woff2 being set)

Changelog:

https://github.com/fontforge/fontforge/releases/tag/20190801

Tested all the options in poudriere for 12-amd64, tested the default options in poudriere for 12-i386, 11-amd64 and 11-i386. Passes portlint (other than it complaining about no NLS option which I don't think I can do).

I did keep my work I did for making the port use CMake so when the next release happens, I'll have a bit of a head start on that.
Comment 5 commit-hook freebsd_committer freebsd_triage 2019-09-06 22:20:45 UTC
A commit references this bug:

Author: zeising
Date: Fri Sep  6 22:20:08 UTC 2019
New revision: 511370
URL: https://svnweb.freebsd.org/changeset/ports/511370

Log:
  print/fontforge: Update to 20190801

  * Update to 20190801
  * Update distinfo
  * Update pkg-plist
  * Move most required things to options (only required LIB_DEPENDS is
    freetype2 and only required GNOME use is glib20 and libxml2)
  * USES autoreconf no longer needs to have the build argument because they
    made their bootstrap be just running autoreconf and not all the other
    junk it did before
  * USES localbase in favor of setting CPPFLAGS and LDFLAGS to those
  * iconv is forced on despite being an option as the build fails without
    iconv for some reason
  * Included options for some things that were not options before but are
    configurable via GNU configure
  * Removed patches from files: patch-Makefile.am (uthash not used anymore),
    patch-fontforge_cvexport.c and patch-fontforge_print.c (that code was
    removed and the patch is not needed anymore),
    patch-fontforge_splinefont.h (looking at SVN history, this was added
    to fix build for 8.x, but that isn't supported anymore and it builds
    without this)
  * Added patch to files: patch-m4-fontforge__arg__enable.m4 (without this,
    woff2 was always being enabled regardless of --enable/disable-woff2
    being set)

  Changelog:

  https://github.com/fontforge/fontforge/releases/tag/20190801

  PR:		239768
  Submitted by:	kunda
  Approved by:	Naram Qashat (maintainer)

Changes:
  head/print/fontforge/Makefile
  head/print/fontforge/distinfo
  head/print/fontforge/files/patch-Makefile.am
  head/print/fontforge/files/patch-fontforge_cvexport.c
  head/print/fontforge/files/patch-fontforge_print.c
  head/print/fontforge/files/patch-fontforge_splinefont.h
  head/print/fontforge/files/patch-m4_fontforge__arg__enable.m4
  head/print/fontforge/pkg-plist
Comment 6 Niclas Zeising freebsd_committer freebsd_triage 2019-09-06 22:27:14 UTC
Committed, thanks!