homebrew-core/Formula/evince.rb
2019-04-29 23:44:44 +08:00

90 lines
3.7 KiB
Ruby

class Evince < Formula
desc "GNOME document viewer"
homepage "https://wiki.gnome.org/Apps/Evince"
url "https://download.gnome.org/sources/evince/3.30/evince-3.30.2.tar.xz"
sha256 "a95bbdeb452c9cc910bba751e7c782ce60ffe7972c461bccbe8bbcdb8ca5f24c"
revision 2
bottle do
sha256 "47f74e9d5ea7d016b8d8eb13f0ac8d5879b08254d7831ff6aa81685b117e6c23" => :mojave
sha256 "18cacf368d603f4b15fe26a38bf468c4ca979206b226a609ca7091a99463e80a" => :high_sierra
sha256 "7d7fea09c433f50734de80cbd63bb719196fd45ec0b3e651857d5f1d57b5b54e" => :sierra
end
depends_on "gobject-introspection" => :build
depends_on "intltool" => :build
depends_on "itstool" => :build
depends_on "pkg-config" => :build
depends_on "adwaita-icon-theme"
depends_on "djvulibre"
depends_on "gspell"
depends_on "gtk+3"
depends_on "hicolor-icon-theme"
depends_on "libarchive"
depends_on "libsecret"
depends_on "libspectre"
depends_on "libxml2"
depends_on "poppler"
depends_on "python"
# patch submitted upstream at https://gitlab.gnome.org/GNOME/evince/merge_requests/154
patch :DATA
def install
# Fix build failure "ar: illegal option -- D"
# Reported 15 Sep 2017 https://bugzilla.gnome.org/show_bug.cgi?id=787709
inreplace "configure", "AR_FLAGS=crD", "AR_FLAGS=r"
# Add MacOS mime-types to the list of supported comic book archive mime-types
# Submitted upstream at https://gitlab.gnome.org/GNOME/evince/merge_requests/157
inreplace "configure", "COMICS_MIME_TYPES=\"",
"COMICS_MIME_TYPES=\"application/x-rar;application/zip;application/x-cb7;application/x-7z-comperssed;application/x-tar;"
# forces use of gtk3-update-icon-cache instead of gtk-update-icon-cache. No bugreport should
# be filed for this since it only occurs because Homebrew renames gtk+3's gtk-update-icon-cache
# to gtk3-update-icon-cache in order to avoid a collision between gtk+ and gtk+3.
inreplace "data/Makefile.in", "gtk-update-icon-cache", "gtk3-update-icon-cache"
xy = Language::Python.major_minor_version "python3"
ENV.append_path "PYTHONPATH", "#{Formula["libxml2"].opt_lib}/python#{xy}/site-packages"
system "./configure", "--disable-debug",
"--disable-dependency-tracking",
"--disable-silent-rules",
"--prefix=#{prefix}",
"--disable-nautilus",
"--disable-schemas-compile",
"--enable-introspection",
"--enable-djvu",
"--disable-browser-plugin"
system "make", "install"
end
def post_install
system "#{Formula["glib"].opt_bin}/glib-compile-schemas", "#{HOMEBREW_PREFIX}/share/glib-2.0/schemas"
system "#{Formula["gtk+3"].opt_bin}/gtk3-update-icon-cache", "-f", "-t", "#{HOMEBREW_PREFIX}/share/icons/hicolor"
end
test do
assert_match version.to_s, shell_output("#{bin}/evince --version")
end
end
__END__
diff --git a/libdocument/ev-document-factory.c b/libdocument/ev-document-factory.c
index ca1aeeb..4f7f40b 100644
--- a/libdocument/ev-document-factory.c
+++ b/libdocument/ev-document-factory.c
@@ -58,8 +58,12 @@ get_backend_info_for_mime_type (const gchar *mime_type)
guint i;
for (i = 0; mime_types[i] != NULL; ++i) {
- if (g_content_type_is_mime_type (mime_type, mime_types[i]))
+ gchar *content_type = g_content_type_from_mime_type(mime_type);
+ if (g_content_type_is_mime_type (content_type, mime_types[i])) {
+ g_free(content_type);
return info;
+ }
+ g_free(content_type);
}
}