Skip to content

Commit

Permalink
fontforge 20141014
Browse files Browse the repository at this point in the history
Version bump & appropriate changes for the Fontforge formula. This is
another considerable update and consequently a lot has been moved
around, updated, dependencies shifted, and so on. See the code comments
for fuller details.

Lilypond also receives a revision due to changes in the way Fontforge
builds.

Closes Homebrew/legacy-homebrew#33174.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
  • Loading branch information
DomT4 authored and MikeMcQuaid committed Oct 23, 2014
1 parent d4f54d8 commit 0b80ded
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 46 deletions.
86 changes: 50 additions & 36 deletions Formula/fontforge.rb
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"
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"

# 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 Formula/lilypond.rb
@@ -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

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

0 comments on commit 0b80ded

Please sign in to comment.