Skip to content
This repository has been archived by the owner on Jul 4, 2023. It is now read-only.

Fontforge 20141014 #33174

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
86 changes: 50 additions & 36 deletions Library/Formula/fontforge.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@ class Fontforge < Formula
homepage "https://fontforge.github.io"

stable do
url "https://github.com/fontforge/fontforge/archive/2.0.20140101.tar.gz"
sha1 "abce297e53e8b6ff6f08871e53d1eb0be5ab82e7"

depends_on "cairo" => :optional
depends_on :python => :optional
url "https://github.com/fontforge/fontforge/releases/download/20141014/fontforge-20141014.tar.gz"
sha1 "b366293e423a94d213824368460fa80f9a1ad810"

# Upstream commit allowing non-/Applications app bundle to run.
# Doesn't actually work for me yet in stable - Keep an eye on that.
patch do
url "https://github.com/fontforge/fontforge/commit/bce235d23b8.diff"
sha1 "8ec20f07bbf5f93c052bed7304c6e667046910ef"
end
end

bottle do
Expand All @@ -17,19 +21,14 @@ class Fontforge < Formula
sha1 "f1ff364ff4e0dc54483a370a8ea54abf150f4f22" => :lion
end

head do
url "https://github.com/fontforge/fontforge.git"

depends_on "zeromq"
depends_on "czmq"
depends_on "cairo"
depends_on :python if MacOS.version <= :snow_leopard
end
head "https://github.com/fontforge/fontforge.git"

option 'with-gif', 'Build with GIF support'
option 'with-x', 'Build with X11 support, building the app bundle'
option 'with-python', 'Build with Python extensions and scripting'
option "with-gif", "Build with GIF support"
option "with-x", "Build with X11 support, building the app bundle"

# Autotools are required to build from source in all releases.
# I have upstreamed a request to change this, so keep monitoring the situation.
# Libtool must be :libltdl or bottling errors occur.
depends_on "autoconf" => :build
depends_on "automake" => :build
depends_on "pkg-config" => :build
Expand All @@ -44,22 +43,39 @@ class Fontforge < Formula
depends_on "giflib" if build.with? "gif"
depends_on "libspiro" => :optional
depends_on "fontconfig"
# The below two below dependencies are highly unrecommended for now
# https://github.com/fontforge/fontforge/issues/1837
# They should be made recommended again when functional.
depends_on "zeromq" => :optional
depends_on "czmq" if build.with? "zeromq"
depends_on "cairo"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All non-optional?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also unclear. The ./configure script calls them optional, but they've been non-optional in the HEAD for a while and Fontforge hits errors on loading without them present.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As of this release and going forwards these are non optional.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. Perhaps that was the cause of my build error the other day. Will try again with the mandatory cairo shortly.

depends_on :python if MacOS.version <= :snow_leopard

fails_with :llvm do
build 2336
cause "Compiling cvexportdlg.c fails with error: initializer element is not constant"
end

# Fix Fontforge collab tools causing folder to build inside bin
# That folder causes audit build failures
# https://github.com/fontforge/fontforge/pull/1838
if build.with? "zeromq"
patch do
url "https://github.com/fontforge/fontforge/pull/1838.diff"
sha1 "5e7a848fd035b5b2aa18e9398f755feeb0bfafbb"
end
end

def install
args = ["--prefix=#{prefix}"]
args << "--with-x" if build.with? 'x'

unless build.head?
# Cairo & Python are still optional in stable, but not in HEAD.
args << "--without-cairo" if build.without? "cairo"
args << "--disable-python-extension" if build.without? "python"
args << "--disable-python-scripting" if build.without? "python"
end
args << "--with-x" if build.with? "x"

args << "--without-libpng" if build.without? "libpng"
args << "--without-libjpeg" if build.without? "jpeg"
args << "--without-libtiff" if build.without? "libtiff"
args << "--without-giflib" if build.without? "giflib"
args << "--without-libspiro" if build.without? "libspiro"

# Fix linker error; see: http://trac.macports.org/ticket/25012
ENV.append "LDFLAGS", "-lintl"
Expand All @@ -69,27 +85,25 @@ def install
ENV.append "ZLIB_LIBS", "-L/usr/lib -lz"

# And finding Homebrew's Python
if build.with? "python"
ENV.append_path "PKG_CONFIG_PATH", "#{HOMEBREW_PREFIX}/Frameworks/Python.framework/Versions/2.7/lib/pkgconfig/"
ENV.prepend "LDFLAGS", "-L#{%x(python-config --prefix).chomp}/lib"
end
ENV.append_path "PKG_CONFIG_PATH", "#{HOMEBREW_PREFIX}/Frameworks/Python.framework/Versions/2.7/lib/pkgconfig/"
ENV.prepend "LDFLAGS", "-L#{%x(python-config --prefix).chomp}/lib"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also: non-optional?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup. Crashes on launch without Python now.


# Reset ARCHFLAGS to match how we build
ENV["ARCHFLAGS"] = "-arch #{MacOS.preferred_arch}"

system "./autogen.sh" if build.stable?
system "./bootstrap" if build.head?
# Fontforge is *really* bad at finding the ossp-uuid dependency. Help it.
# It wildly ignores the uuid pkg-config file, so manually give it flags.
ENV.prepend "LIBUUID_CFLAGS", "-I#{Formula["ossp-uuid"].include}"
ENV.prepend "LIBUUID_LIBS", "-L#{Formula["ossp-uuid"].lib}"

# Bootstrap in every build. See the link below.
system "./bootstrap" #https://github.com/fontforge/fontforge/issues/1806
system "./configure", *args
system "make"
system "make", "install"

# Fix the broken fontforge_package_name issue
# This is fixed in the HEAD build.
if build.stable?
mv "#{include}/fontforge_package_name", "#{include}/fontforge"
mv "#{share}/fontforge_package_name", "#{share}/fontforge"
mv "#{share}/doc/fontforge_package_name", "#{share}/doc/fontforge"
end
# Link this to enable symlinking into /Applications with brew linkapps.
ln_s "#{share}/fontforge/osx/Fontforge.app", "#{prefix}"
end

test do
Expand Down
20 changes: 10 additions & 10 deletions Library/Formula/lilypond.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
require 'formula'
require "formula"

class Lilypond < Formula
homepage "http://lilypond.org/"
url "http://download.linuxaudio.org/lilypond/sources/v2.18/lilypond-2.18.2.tar.gz"
sha1 "09d3a1e0e9fadeb8ef6e279227a2b30812c7ee9b"
revision 2
revision 3
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this because a library name changes or something else? Just curious why it's just lilypond here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only lilypond because lilypond was the only response to brew uses fontforge.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, that surprises me. Cool!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there was only one other thing before and that no longer applies because they use their own customised Fontforge library.


devel do
url "http://download.linuxaudio.org/lilypond/source/v2.19/lilypond-2.19.15.tar.gz"
Expand All @@ -19,7 +19,7 @@ class Lilypond < Formula

env :std

option 'with-doc', "Build documentation in addition to binaries (may require several hours)."
option "with-doc", "Build documentation in addition to binaries (may require several hours)."

# Dependencies for LilyPond
depends_on :tex
Expand All @@ -29,7 +29,7 @@ class Lilypond < Formula
depends_on "pango"
depends_on "ghostscript"
depends_on "mftrace"
depends_on "fontforge" => ["with-x", "with-cairo"]
depends_on "fontforge" => ["with-x"]
depends_on "fondu"
depends_on "texinfo"

Expand Down Expand Up @@ -57,20 +57,20 @@ class Lilypond < Formula
end

fails_with :clang do
cause 'Strict C99 compliance error in a pointer conversion.'
cause "Strict C99 compliance error in a pointer conversion."
end

def install
# The contents of the following block are taken from the guile18 formula
# in homebrew/versions.
resource('guile18').stage do
resource("guile18").stage do
system "./configure", "--disable-dependency-tracking",
"--prefix=#{prefix}",
"--with-libreadline-prefix=#{Formula["readline"].opt_prefix}"
system "make", "install"
# A really messed up workaround required on OS X --mkhl
lib.cd { Dir["*.dylib"].each {|p| ln_sf p, File.basename(p, ".dylib")+".so" }}
ENV.prepend_path 'PATH', "#{bin}"
ENV.prepend_path "PATH", "#{bin}"
end

gs = Formula["ghostscript"]
Expand All @@ -83,8 +83,8 @@ def install
system "./configure", *args

# Separate steps to ensure that lilypond's custom fonts are created.
system 'make all'
system "make install"
system "make all"
system "make", "install"

# Build documentation if requested.
if build.with? "doc"
Expand All @@ -102,7 +102,7 @@ def caveats; <<-EOS.undent
end

test do
(testpath/'test.ly').write <<-EOS.undent
(testpath/"test.ly").write <<-EOS.undent
\\header { title = "Do-Re-Mi" }
{ c' d' e' }
EOS
Expand Down