Skip to content

Commit

Permalink
Reland "Reland "Update fontconfig to 6cc99d6a""
Browse files Browse the repository at this point in the history
This reverts commit 812edd0.

Reason for revert: libuuid1:i386 should now be installed on the bots (bug 853048)

Original change's description:
> Revert "Reland "Update fontconfig to 6cc99d6a""
> 
> This reverts commit 0c91664.
> 
> Reason for revert: Broke Linux Builder (dbg)(32)
> 
> Still missing libuuid:
> 
> https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Linux%20Builder%20%28dbg%29%2832%29/83697
> 
> [775/4337] ACTION //tools/v8_context_snapshot:generate_v8_context_snapshot(//build/toolchain/linux:clang_x86)
> FAILED: v8_context_snapshot.bin 
> python ../../build/gn_run_binary.py ./v8_context_snapshot_generator --output_file=v8_context_snapshot.bin
> ././v8_context_snapshot_generator: error while loading shared libraries: libuuid.so.1: cannot open shared object file: No such file or directory
> ./v8_context_snapshot_generator failed with exit code 127
> 
> Original change's description:
> > Reland "Update fontconfig to 6cc99d6a"
> > 
> > This is a reland of e6db40d
> > 
> > Reason for reland: All bots should now have libuuid1 installed (bug 853048).
> > 
> > Original change's description:
> > > Update fontconfig to 6cc99d6a
> > >
> > > Changelog [1].  This is necessary to pick up [2] for fixing undefined-shift
> > > UBSAN errors detected by clusterfuzz, [3] to allow removing a build workaround,
> > > [4] to fix a bug and clean up some log spam, [5] to fix CFI builds, and [6] to
> > > fix a use-after-free.
> > >
> > > Fontconfig also now requires libuuid as a dependency, so whitelist it as a
> > > dependency since we statically link fontconfig.
> > >
> > > [1] https://chromium.googlesource.com/external/fontconfig/+log/b546940435ebfb0df575bc7a2350d1e913919c34..6cc99d6a82ad67d2f5eac887b28bca13c0dfddde
> > > [2] https://chromium.googlesource.com/external/fontconfig/+/c60ed9ef66e59584f8b54323018e9e6c69925c7e
> > > [3] https://chromium.googlesource.com/external/fontconfig/+/b8a225b3c3495942480377b7b3404710c70be914
> > > [4] https://chromium.googlesource.com/external/fontconfig/+/7ad010e80bdf8e41303e322882ece908f5e04c74
> > > [5] https://chromium.googlesource.com/external/fontconfig/+/096e8019be595c2224aaabf98da630ee917ee51c
> > > [6] https://chromium.googlesource.com/external/fontconfig/+/6cc99d6a82ad67d2f5eac887b28bca13c0dfddde
> > >
> > > BUG=831146,822737,787020,829890,847323
> > > TBR=thestig,dnicoara
> > >
> > > Change-Id: Ic2d1bd19af8ca131c960a30d09246827c115ccec
> > > Reviewed-on: https://chromium-review.googlesource.com/1095538
> > > Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> > > Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
> > > Reviewed-by: Lei Zhang <thestig@chromium.org>
> > > Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#567445}
> > 
> > TBR=thestig,dnicoara
> > 
> > Bug: 831146, 822737, 787020, 829890, 847323, 853048
> > Change-Id: Id42738aaf5841bd219dc0e9209680c87e88f4869
> > Reviewed-on: https://chromium-review.googlesource.com/1104759
> > Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#568221}
> 
> TBR=thestig@chromium.org,robliao@chromium.org,dnicoara@chromium.org,thomasanderson@chromium.org
> 
> Change-Id: Icd39638df79083776546d4283675c3e172bbefe4
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 831146, 822737, 787020, 829890, 847323, 853048
> Reviewed-on: https://chromium-review.googlesource.com/1105539
> Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org>
> Commit-Queue: Giovanni Ortuño Urquidi <ortuno@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#568346}

TBR=thestig@chromium.org,robliao@chromium.org,dnicoara@chromium.org,ortuno@chromium.org,thomasanderson@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 831146, 822737, 787020, 829890, 847323, 853048
Change-Id: I5fe29b3ff4ba7ec81498878124a39c70d5e9a8be
Reviewed-on: https://chromium-review.googlesource.com/1112179
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Elliott Friedman <friedman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569800}
  • Loading branch information
tanderson-google committed Jun 22, 2018
1 parent 3804134 commit a0c1584
Show file tree
Hide file tree
Showing 18 changed files with 827 additions and 679 deletions.
2 changes: 1 addition & 1 deletion DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@ deps = {

# Used for embedded builds. CrOS & Linux use the system version.
'src/third_party/fontconfig/src': {
'url': Var('chromium_git') + '/external/fontconfig.git' + '@' + 'b546940435ebfb0df575bc7a2350d1e913919c34',
'url': Var('chromium_git') + '/external/fontconfig.git' + '@' + '6cc99d6a82ad67d2f5eac887b28bca13c0dfddde',
'condition': 'checkout_linux',
},

Expand Down
55 changes: 30 additions & 25 deletions base/test/fontconfig_util_linux.cc
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include <fontconfig/fontconfig.h>

#include "base/base_paths.h"
#include "base/environment.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/logging.h"
Expand Down Expand Up @@ -387,31 +388,35 @@ const char kFontsConfTemplate[] = R"(<?xml version="1.0"?>
} // namespace

void SetUpFontconfig() {
FilePath dir_module;
PathService::Get(DIR_MODULE, &dir_module);
FilePath font_cache = dir_module.Append("fontconfig_caches");
FilePath test_fonts = dir_module.Append("test_fonts");
std::string fonts_conf = ReplaceStringPlaceholders(
kFontsConfTemplate, {font_cache.value(), test_fonts.value()}, nullptr);

FcConfig* config = FcConfigCreate();
CHECK(config);
#if FC_VERSION >= 21205
CHECK(FcConfigParseAndLoadFromMemory(
config, reinterpret_cast<const FcChar8*>(fonts_conf.c_str()), FcTrue));
#else
FilePath temp;
CHECK(CreateTemporaryFile(&temp));
CHECK(WriteFile(temp, fonts_conf.c_str(), fonts_conf.size()));
CHECK(FcConfigParseAndLoad(
config, reinterpret_cast<const FcChar8*>(temp.value().c_str()), FcTrue));
CHECK(DeleteFile(temp, false));
#endif
CHECK(FcConfigBuildFonts(config));
CHECK(FcConfigSetCurrent(config));

// Decrement the reference count for |config|. It's now owned by fontconfig.
FcConfigDestroy(config);
// TODO(thomasanderson): Use FONTCONFIG_SYSROOT to avoid having to write
// a new fonts.conf with updated paths.
std::unique_ptr<Environment> env = Environment::Create();
if (!env->HasVar("FONTCONFIG_FILE")) {
// fonts.conf must be generated on-the-fly since it contains absolute paths
// which may be different if
// 1. The user moves/renames their build directory (or any parent dirs).
// 2. The build directory is mapped on a swarming bot at a location
// different from the one the buildbot used.
FilePath dir_module;
PathService::Get(DIR_MODULE, &dir_module);
FilePath font_cache = dir_module.Append("fontconfig_caches");
FilePath test_fonts = dir_module.Append("test_fonts");
std::string fonts_conf = ReplaceStringPlaceholders(
kFontsConfTemplate, {font_cache.value(), test_fonts.value()}, nullptr);

// Write the data to a different file and then atomically rename it to
// fonts.conf. This avoids the file being in a bad state when different
// parallel tests call this function at the same time.
FilePath fonts_conf_file_temp;
CHECK(CreateTemporaryFileInDir(dir_module, &fonts_conf_file_temp));
CHECK(
WriteFile(fonts_conf_file_temp, fonts_conf.c_str(), fonts_conf.size()));
FilePath fonts_conf_file = dir_module.Append("fonts.conf");
CHECK(ReplaceFile(fonts_conf_file_temp, fonts_conf_file, nullptr));
env->SetVar("FONTCONFIG_FILE", fonts_conf_file.value());
}

CHECK(FcInit());
}

void TearDownFontconfig() {
Expand Down
66 changes: 36 additions & 30 deletions chrome/installer/linux/debian/dist_package_versions.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,26 @@
"Debian 10 (Buster)": {
"libappindicator3-1": "0.4.92-5",
"libasound2": "1.1.3-5",
"libatk-bridge2.0-0": "2.26.1-1",
"libatk1.0-0": "2.26.1-3",
"libc6": "2.26-4",
"libcairo2": "1.15.8-3",
"libcups2": "2.2.6-4",
"libdbus-1-3": "1.12.2-1",
"libatk-bridge2.0-0": "2.26.2-1",
"libatk1.0-0": "2.28.1-1",
"libc6": "2.27-3",
"libcairo2": "1.15.10-1",
"libcups2": "2.2.7-2",
"libdbus-1-3": "1.12.6-2",
"libexpat1": "2.2.5-3",
"libgcc1": "1:7.2.0-19",
"libgdk-pixbuf2.0-0": "2.36.11-1",
"libglib2.0-0": "2.54.3-2",
"libgtk-3-0": "3.22.26-2",
"libnspr4": "2:4.16-1+b1",
"libnss3": "2:3.34.1-1",
"libpango-1.0-0": "1.40.14-1",
"libpangocairo-1.0-0": "1.40.14-1",
"libstdc++6": "7.2.0-19",
"libx11-6": "2:1.6.4-3",
"libx11-xcb1": "2:1.6.4-3",
"libxcb1": "1.12-1",
"libgcc1": "1:8-20180402-1",
"libgdk-pixbuf2.0-0": "2.36.11-2",
"libglib2.0-0": "2.56.0-4",
"libgtk-3-0": "3.22.29-3",
"libnspr4": "2:4.18-1",
"libnss3": "2:3.35-2",
"libpango-1.0-0": "1.42.0-1",
"libpangocairo-1.0-0": "1.42.0-1",
"libstdc++6": "8-20180402-1",
"libuuid1": "2.31.1-0.5",
"libx11-6": "2:1.6.5-1",
"libx11-xcb1": "2:1.6.5-1",
"libxcb1": "1.13-1",
"libxcomposite1": "1:0.4.4-2",
"libxcursor1": "1:1.1.15-1",
"libxdamage1": "1:1.1.4-3",
Expand All @@ -42,15 +43,16 @@
"libcups2": "1.7.5-11+deb8u1",
"libdbus-1-3": "1.8.22-0+deb8u1",
"libexpat1": "2.1.0-6+deb8u4",
"libgcc1": "1:4.9.2-10",
"libgcc1": "1:4.9.2-10+deb8u1",
"libgdk-pixbuf2.0-0": "2.31.1-2+deb8u7",
"libglib2.0-0": "2.42.1-1+b1",
"libgtk-3-0": "3.14.5-1+deb8u1",
"libnspr4": "2:4.12-1+debu8u1",
"libnss3": "2:3.26-1+debu8u3",
"libpango-1.0-0": "1.36.8-3",
"libpangocairo-1.0-0": "1.36.8-3",
"libstdc++6": "4.9.2-10",
"libstdc++6": "4.9.2-10+deb8u1",
"libuuid1": "2.25.2-6",
"libx11-6": "2:1.6.2-3+deb8u1",
"libx11-xcb1": "2:1.6.2-3+deb8u1",
"libxcb1": "1.10-3+b1",
Expand All @@ -72,18 +74,19 @@
"libatk1.0-0": "2.22.0-1",
"libc6": "2.24-11+deb9u1",
"libcairo2": "1.14.8-1",
"libcups2": "2.2.1-8",
"libdbus-1-3": "1.10.24-0+deb9u1",
"libcups2": "2.2.1-8+deb9u1",
"libdbus-1-3": "1.10.26-0+deb9u1",
"libexpat1": "2.2.0-2+deb9u1",
"libgcc1": "1:6.3.0-18",
"libgcc1": "1:6.3.0-18+deb9u1",
"libgdk-pixbuf2.0-0": "2.36.5-2+deb9u2",
"libglib2.0-0": "2.50.3-2",
"libgtk-3-0": "3.22.11-1",
"libnspr4": "2:4.12-6",
"libnss3": "2:3.26.2-1.1+deb9u1",
"libpango-1.0-0": "1.40.5-1",
"libpangocairo-1.0-0": "1.40.5-1",
"libstdc++6": "6.3.0-18",
"libstdc++6": "6.3.0-18+deb9u1",
"libuuid1": "2.29.2-1+deb9u1",
"libx11-6": "2:1.6.4-3",
"libx11-xcb1": "2:1.6.4-3",
"libxcb1": "1.12-1",
Expand All @@ -105,7 +108,7 @@
"libatk1.0-0": "2.10.0-2ubuntu2",
"libc6": "2.19-0ubuntu6.14",
"libcairo2": "1.13.0~20140204-0ubuntu1.1",
"libcups2": "1.7.2-0ubuntu1.7",
"libcups2": "1.7.2-0ubuntu1.9",
"libdbus-1-3": "1.6.18-0ubuntu4.4",
"libexpat1": "2.1.0-4ubuntu1.4",
"libgcc1": "1:4.9.3-0ubuntu4",
Expand All @@ -116,7 +119,8 @@
"libnss3": "2:3.28.4-0ubuntu0.14.04.3",
"libpango-1.0-0": "1.36.3-1ubuntu1.1",
"libpangocairo-1.0-0": "1.36.3-1ubuntu1.1",
"libstdc++6": "4.8.4-2ubuntu1~14.04.3",
"libstdc++6": "4.8.4-2ubuntu1~14.04.4",
"libuuid1": "2.20.1-5.1ubuntu20.9",
"libx11-6": "2:1.6.2-1ubuntu2",
"libx11-xcb1": "2:1.6.2-1ubuntu2",
"libxcb1": "1.10-2ubuntu1",
Expand All @@ -138,7 +142,7 @@
"libatk1.0-0": "2.18.0-1",
"libc6": "2.23-0ubuntu10",
"libcairo2": "1.14.6-1",
"libcups2": "2.1.3-4ubuntu0.3",
"libcups2": "2.1.3-4ubuntu0.4",
"libdbus-1-3": "1.10.6-1ubuntu3.1",
"libexpat1": "2.1.0-7ubuntu0.16.04.3",
"libgcc1": "1:6.0.1-0ubuntu1",
Expand All @@ -149,7 +153,8 @@
"libnss3": "2:3.28.4-0ubuntu0.16.04.3",
"libpango-1.0-0": "1.38.1-1",
"libpangocairo-1.0-0": "1.38.1-1",
"libstdc++6": "5.4.0-6ubuntu1~16.04.4",
"libstdc++6": "5.4.0-6ubuntu1~16.04.9",
"libuuid1": "2.27.1-6ubuntu3.4",
"libx11-6": "2:1.6.3-1ubuntu2",
"libx11-xcb1": "2:1.6.3-1ubuntu2",
"libxcb1": "1.11.1-1ubuntu1",
Expand All @@ -174,15 +179,16 @@
"libcups2": "2.2.4-7ubuntu3",
"libdbus-1-3": "1.10.22-1ubuntu1",
"libexpat1": "2.2.3-1",
"libgcc1": "1:7.2.0-8ubuntu3",
"libgcc1": "1:7.2.0-8ubuntu3.2",
"libgdk-pixbuf2.0-0": "2.36.11-1ubuntu0.1",
"libglib2.0-0": "2.54.1-1ubuntu1",
"libgtk-3-0": "3.22.25-0ubuntu0.1",
"libnspr4": "2:4.16-1ubuntu2",
"libnss3": "2:3.32-1ubuntu3",
"libpango-1.0-0": "1.40.12-1",
"libpangocairo-1.0-0": "1.40.12-1",
"libstdc++6": "7.2.0-8ubuntu3",
"libstdc++6": "7.2.0-8ubuntu3.2",
"libuuid1": "2.30.1-0ubuntu4.1",
"libx11-6": "2:1.6.4-3",
"libx11-xcb1": "2:1.6.4-3",
"libxcb1": "1.12-1ubuntu1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"libpango-1.0-0",
"libpangocairo-1.0-0",
"libstdc++6",
"libuuid1",
"libx11-6",
"libx11-xcb1",
"libxcb1",
Expand Down
28 changes: 28 additions & 0 deletions chrome/installer/linux/rpm/dist_package_provides.json
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,10 @@
"libstdc++.so.6(GLIBCXX_3.4.7)(64bit)",
"libstdc++.so.6(GLIBCXX_3.4.8)(64bit)",
"libstdc++.so.6(GLIBCXX_3.4.9)(64bit)",
"libuuid.so.1()(64bit)",
"libuuid.so.1(UUIDD_PRIVATE)(64bit)",
"libuuid.so.1(UUID_1.0)(64bit)",
"libuuid.so.1(UUID_2.20)(64bit)",
"libxcb.so.1()(64bit)",
"rtld(GNU_HASH)"
],
Expand Down Expand Up @@ -482,6 +486,10 @@
"libstdc++.so.6(GLIBCXX_3.4.7)(64bit)",
"libstdc++.so.6(GLIBCXX_3.4.8)(64bit)",
"libstdc++.so.6(GLIBCXX_3.4.9)(64bit)",
"libuuid.so.1()(64bit)",
"libuuid.so.1(UUIDD_PRIVATE)(64bit)",
"libuuid.so.1(UUID_1.0)(64bit)",
"libuuid.so.1(UUID_2.20)(64bit)",
"libxcb.so.1()(64bit)",
"rtld(GNU_HASH)"
],
Expand Down Expand Up @@ -729,6 +737,10 @@
"libstdc++.so.6(GLIBCXX_3.4.7)(64bit)",
"libstdc++.so.6(GLIBCXX_3.4.8)(64bit)",
"libstdc++.so.6(GLIBCXX_3.4.9)(64bit)",
"libuuid.so.1()(64bit)",
"libuuid.so.1(UUIDD_PRIVATE)(64bit)",
"libuuid.so.1(UUID_1.0)(64bit)",
"libuuid.so.1(UUID_2.20)(64bit)",
"libxcb.so.1()(64bit)",
"rtld(GNU_HASH)"
],
Expand Down Expand Up @@ -1179,6 +1191,14 @@
"libstdc++.so.6(GLIBCXX_3.4.8)(64bit)",
"libstdc++.so.6(GLIBCXX_3.4.9)",
"libstdc++.so.6(GLIBCXX_3.4.9)(64bit)",
"libuuid.so.1",
"libuuid.so.1()(64bit)",
"libuuid.so.1(UUIDD_PRIVATE)",
"libuuid.so.1(UUIDD_PRIVATE)(64bit)",
"libuuid.so.1(UUID_1.0)",
"libuuid.so.1(UUID_1.0)(64bit)",
"libuuid.so.1(UUID_2.20)",
"libuuid.so.1(UUID_2.20)(64bit)",
"libxcb.so.1",
"libxcb.so.1()(64bit)",
"rtld(GNU_HASH)"
Expand Down Expand Up @@ -1638,6 +1658,14 @@
"libstdc++.so.6(GLIBCXX_3.4.8)(64bit)",
"libstdc++.so.6(GLIBCXX_3.4.9)",
"libstdc++.so.6(GLIBCXX_3.4.9)(64bit)",
"libuuid.so.1",
"libuuid.so.1()(64bit)",
"libuuid.so.1(UUIDD_PRIVATE)",
"libuuid.so.1(UUIDD_PRIVATE)(64bit)",
"libuuid.so.1(UUID_1.0)",
"libuuid.so.1(UUID_1.0)(64bit)",
"libuuid.so.1(UUID_2.20)",
"libuuid.so.1(UUID_2.20)(64bit)",
"libxcb.so.1",
"libxcb.so.1()(64bit)",
"rtld(GNU_HASH)"
Expand Down
1 change: 1 addition & 0 deletions chrome/installer/linux/rpm/update_package_provides.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
"librt.so",
"libsmime3.so",
"libstdc++.so",
"libuuid.so",
"libxcb.so",
"rtld(GNU_HASH)",
]
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 13 additions & 5 deletions third_party/fontconfig/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ if (use_bundled_fontconfig) {
sources = [
"src/src/fcarch.h",
"src/src/fcatomic.c",
"src/src/fcblanks.c",
"src/src/fccache.c",
"src/src/fccfg.c",
"src/src/fccharset.c",
Expand All @@ -26,6 +25,7 @@ if (use_bundled_fontconfig) {
"src/src/fcformat.c",
"src/src/fcfreetype.c",
"src/src/fcfs.c",
"src/src/fchash.c",
"src/src/fcinit.c",
"src/src/fclang.c",
"src/src/fclist.c",
Expand All @@ -34,6 +34,7 @@ if (use_bundled_fontconfig) {
"src/src/fcname.c",
"src/src/fcobjs.c",
"src/src/fcpat.c",
"src/src/fcptrlist.c",
"src/src/fcrange.c",
"src/src/fcserialize.c",
"src/src/fcstat.c",
Expand All @@ -52,14 +53,17 @@ if (use_bundled_fontconfig) {
defines = [
"HAVE_CONFIG_H",
"FC_CACHEDIR=\"/var/cache/fontconfig\"",
"FC_TEMPLATEDIR=\"/usr/share/fontconfig/conf.avail\"",
"FONTCONFIG_PATH=\"/etc/fonts\"",
]

# This is a hack to remove visibility("default") annotations. Fontconfig
# symbols should not be exported from chrome, nacl_helper, or anything
# else.
# Fontconfig symbols should not be exported from chrome, nacl_helper, or
# anything else.
if (!is_component_build) {
defines += [ "visibility(x)=" ]
defines += [
"FC_ATTRIBUTE_VISIBILITY_HIDDEN=__attribute((visibility(\"hidden\")))",
"FC_ATTRIBUTE_VISIBILITY_EXPORT=__attribute((visibility(\"hidden\")))",
]
}

deps = [
Expand All @@ -82,6 +86,10 @@ if (use_bundled_fontconfig) {
"-Wno-pointer-bool-conversion",
]
}

if (!is_win) {
libs = [ "uuid" ]
}
}
} else {
config("fontconfig_config") {
Expand Down
1 change: 1 addition & 0 deletions third_party/fontconfig/OWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
spang@chromium.org
dnicoara@chromium.org
thomasanderson@chromium.org
8 changes: 5 additions & 3 deletions third_party/fontconfig/README.chromium
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Name: fontconfig
URL: http://www.freedesktop.org/wiki/Software/fontconfig/
Version: 2.12.6
Version: 6cc99d6a82ad67d2f5eac887b28bca13c0dfddde
License: MIT
License File: src/COPYING
Security Critical: yes
Expand All @@ -12,9 +12,11 @@ Modifications:
- None

To import a new snapshot of fontconfig:
- Checkout the latest release tag: git checkout 2.12.6
- Checkout the latest revision:
git fetch origin master
git checkout origin/master
- Change the DEPS entry to the newly checked out commit.
- Update generated files:
./autogen.sh --enable-libxml2 && make
./autogen.sh --enable-libxml2 --disable-docs && make
rsync -R $(git ls-files --others '*.h' '*/*.h') ../include
- Update this README to reflect the new version number.
Loading

0 comments on commit a0c1584

Please sign in to comment.