sortix-mirror/ports/libfontconfig/libfontconfig.patch

262 lines
7.7 KiB
Diff

diff -Paur --no-dereference -- libfontconfig.upstream/fc-blanks/Makefile.in libfontconfig/fc-blanks/Makefile.in
--- libfontconfig.upstream/fc-blanks/Makefile.in
+++ libfontconfig/fc-blanks/Makefile.in
@@ -350,7 +350,8 @@
$(TMPL) \
$(NULL)
-DISTCLEANFILES = $(BLANKS_H)
+# PATCH: fc-blanks.py doesn't work on Sortix (python2 urllib issues).
+DISTCLEANFILES =
all: all-am
.SUFFIXES:
diff -Paur --no-dereference -- libfontconfig.upstream/fontconfig.pc.in libfontconfig/fontconfig.pc.in
--- libfontconfig.upstream/fontconfig.pc.in
+++ libfontconfig/fontconfig.pc.in
@@ -14,5 +14,6 @@
Requires: @PKGCONFIG_REQUIRES@
Requires.private: @PKGCONFIG_REQUIRES_PRIVATELY@
Libs: -L${libdir} -lfontconfig
-Libs.private: @EXPAT_LIBS@ @FREETYPE_LIBS@ @ICONV_LIBS@ @LIBXML2_LIBS@
-Cflags: -I${includedir} @EXPAT_CFLAGS@ @FREETYPE_CFLAGS@ @ICONV_CFLAGS@ @LIBXML2_CFLAGS@
+Libs.private: @ICONV_LIBS@
+# PATCH: These were provided by the above Requires and were not cross safe.
+Cflags: -I${includedir} @ICONV_CFLAGS@
diff -Paur --no-dereference -- libfontconfig.upstream/Makefile.in libfontconfig/Makefile.in
--- libfontconfig.upstream/Makefile.in
+++ libfontconfig/Makefile.in
@@ -434,7 +434,8 @@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-SUBDIRS = fontconfig fc-blanks fc-case fc-lang fc-glyphname src \
+# PATCH: fc-blanks is a python script that doesn't run on Sortix right now.
+SUBDIRS = fontconfig fc-case fc-lang fc-glyphname src \
fc-cache fc-cat fc-list fc-match fc-pattern fc-query fc-scan \
fc-validate conf.d test $(am__append_1)
ACLOCAL_AMFLAGS = -I m4
diff -Paur --no-dereference -- libfontconfig.upstream/src/fccache.c libfontconfig/src/fccache.c
--- libfontconfig.upstream/src/fccache.c
+++ libfontconfig/src/fccache.c
@@ -38,6 +38,9 @@
#if defined(_WIN32)
#include <sys/locking.h>
#endif
+#if defined(__has_include) && __has_include(<sys/file.h>)
+#include <sys/file.h>
+#endif
#ifndef O_BINARY
#define O_BINARY 0
@@ -1266,7 +1269,11 @@
#if defined(_WIN32)
if (_locking (fd, _LK_LOCK, 1) == -1)
goto bail;
-#else
+/* PATCH: Sortix refuses to implement crap file locking. */
+#elif defined(LOCK_EX)
+ if (flock(fd, LOCK_EX) == -1)
+ goto bail;
+#elif !defined(__sortix__)
struct flock fl;
fl.l_type = F_WRLCK;
@@ -1276,17 +1283,21 @@
fl.l_pid = getpid ();
if (fcntl (fd, F_SETLKW, &fl) == -1)
goto bail;
+#else
+#define FcDirCacheLock_NOBAIL
#endif
break;
}
}
FcStrListDone (list);
return fd;
+#ifndef FcDirCacheLock_NOBAIL
bail:
FcStrListDone (list);
if (fd != -1)
close (fd);
return -1;
+#endif
}
void
@@ -1296,7 +1307,10 @@
{
#if defined(_WIN32)
_locking (fd, _LK_UNLCK, 1);
-#else
+/* PATCH: Sortix refuses to implement crap file locking. */
+#elif defined(LOCK_EX)
+ flock(fd, LOCK_UN);
+#elif !defined(__sortix__)
struct flock fl;
fl.l_type = F_UNLCK;
diff -Paur --no-dereference -- libfontconfig.upstream/src/fccompat.c libfontconfig/src/fccompat.c
--- libfontconfig.upstream/src/fccompat.c
+++ libfontconfig/src/fccompat.c
@@ -164,69 +164,8 @@
int32_t
FcRandom(void)
{
- int32_t result;
-
-#if HAVE_RANDOM_R
- static struct random_data fcrandbuf;
- static char statebuf[256];
- static FcBool initialized = FcFalse;
-#ifdef _AIX
- static char *retval;
- long res;
-#endif
-
- if (initialized != FcTrue)
- {
-#ifdef _AIX
- initstate_r (time (NULL), statebuf, 256, &retval, &fcrandbuf);
-#else
- initstate_r (time (NULL), statebuf, 256, &fcrandbuf);
-#endif
- initialized = FcTrue;
- }
-
-#ifdef _AIX
- random_r (&res, &fcrandbuf);
- result = (int32_t)res;
-#else
- random_r (&fcrandbuf, &result);
-#endif
-#elif HAVE_RANDOM
- static char statebuf[256];
- char *state;
- static FcBool initialized = FcFalse;
-
- if (initialized != FcTrue)
- {
- state = initstate (time (NULL), statebuf, 256);
- initialized = FcTrue;
- }
- else
- state = setstate (statebuf);
-
- result = random ();
-
- setstate (state);
-#elif HAVE_LRAND48
- result = lrand48 ();
-#elif HAVE_RAND_R
- static unsigned int seed = time (NULL);
-
- result = rand_r (&seed);
-#elif HAVE_RAND
- static FcBool initialized = FcFalse;
-
- if (initialized != FcTrue)
- {
- srand (time (NULL));
- initialized = FcTrue;
- }
- result = rand ();
-#else
-# error no random number generator function available.
-#endif
-
- return result;
+ /* PATCH: Use good random. */
+ return arc4random_uniform (INT32_MAX);
}
#ifdef _WIN32
diff -Paur --no-dereference -- libfontconfig.upstream/src/fcname.c libfontconfig/src/fcname.c
--- libfontconfig.upstream/src/fcname.c
+++ libfontconfig/src/fcname.c
@@ -506,17 +506,17 @@
case FcTypeVoid:
return FcTrue;
case FcTypeInteger:
- sprintf ((char *) temp, "%d", v.u.i);
+ snprintf ((char *) temp, sizeof (temp), "%d", v.u.i);
return FcNameUnparseString (buf, temp, 0);
case FcTypeDouble:
- sprintf ((char *) temp, "%g", v.u.d);
+ snprintf ((char *) temp, sizeof (temp), "%g", v.u.d);
return FcNameUnparseString (buf, temp, 0);
case FcTypeString:
return FcNameUnparseString (buf, v.u.s, escape);
case FcTypeBool:
return FcNameUnparseString (buf, v.u.b ? (FcChar8 *) "True" : (FcChar8 *) "False", 0);
case FcTypeMatrix:
- sprintf ((char *) temp, "%g %g %g %g",
+ snprintf ((char *) temp, sizeof (temp), "%g %g %g %g",
v.u.m->xx, v.u.m->xy, v.u.m->yx, v.u.m->yy);
return FcNameUnparseString (buf, temp, 0);
case FcTypeCharSet:
@@ -526,7 +526,7 @@
case FcTypeFTFace:
return FcTrue;
case FcTypeRange:
- sprintf ((char *) temp, "[%g %g)", v.u.r->begin, v.u.r->end);
+ snprintf ((char *) temp, sizeof (temp), "[%g %g)", v.u.r->begin, v.u.r->end);
return FcNameUnparseString (buf, temp, 0);
}
return FcFalse;
diff -Paur --no-dereference -- libfontconfig.upstream/src/fcobjs.c libfontconfig/src/fcobjs.c
--- libfontconfig.upstream/src/fcobjs.c
+++ libfontconfig/src/fcobjs.c
@@ -24,11 +24,12 @@
#include "fcint.h"
+/* TODO: Stick with existing fcobjshash.h regardless of system gperf. */
static unsigned int
-FcObjectTypeHash (register const char *str, register FC_GPERF_SIZE_T len);
+FcObjectTypeHash (register const char *str, register size_t len);
static const struct FcObjectTypeInfo *
-FcObjectTypeLookup (register const char *str, register FC_GPERF_SIZE_T len);
+FcObjectTypeLookup (register const char *str, register size_t len);
#include "fcobjshash.h"
diff -Paur --no-dereference -- libfontconfig.upstream/src/Makefile.in libfontconfig/src/Makefile.in
--- libfontconfig.upstream/src/Makefile.in
+++ libfontconfig/src/Makefile.in
@@ -496,7 +496,6 @@
stamp-fcstdint \
fcstdint.h \
stamp-fcobjshash.gperf \
- fcobjshash.h \
fcobjshash.gperf
all: $(BUILT_SOURCES)
@@ -912,9 +911,10 @@
' - > $@.tmp && \
mv -f $@.tmp fcobjshash.gperf && touch $@ || ( $(RM) $@.tmp && false )
-fcobjshash.h: Makefile fcobjshash.gperf
- $(AM_V_GEN) $(GPERF) --pic -m 100 fcobjshash.gperf > $@.tmp && \
- mv -f $@.tmp $@ || ( $(RM) $@.tmp && false )
+# PATCH: Sortix doesn't have gperf at the moment.
+#fcobjshash.h: Makefile fcobjshash.gperf
+# $(AM_V_GEN) $(GPERF) --pic -m 100 fcobjshash.gperf > $@.tmp && \
+# mv -f $@.tmp $@ || ( $(RM) $@.tmp && false )
@ENABLE_SHARED_TRUE@install-data-local: install-ms-import-lib install-libtool-import-lib
diff -Paur --no-dereference -- libfontconfig.upstream/test/test-migration.c libfontconfig/test/test-migration.c
--- libfontconfig.upstream/test/test-migration.c
+++ libfontconfig/test/test-migration.c
@@ -22,6 +22,8 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
+/* PATCH: Need HAVE_FOO macros.. */
+#include "../config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>