sync with OpenBSD -current

This commit is contained in:
purplerain 2025-01-10 01:40:29 +00:00
parent 4b49aefbb1
commit 1fd36b57f8
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
945 changed files with 81965 additions and 59988 deletions

View file

@ -1,3 +1,92 @@
commit 6b29ee45a794e459d53643ee72a82442cd30d4e8
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Oct 12 10:28:05 2024 -0700
fonttosfnt 1.2.4
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 2a6a5574001d7a9959ba4d924522b96f8cc57b43
Author: Bernhard M. Wiedemann <bwiedemann@suse.de>
Date: Wed Jul 24 16:28:43 2024 +0200
Allow to override build date with SOURCE_DATE_EPOCH
to make builds reproducible.
See https://reproducible-builds.org/ for why this is good
and https://reproducible-builds.org/specs/source-date-epoch/
for the definition of this variable.
This patch was done while working on reproducible builds for openSUSE, sponsored by the NLnet NGI0 fund.
Part-of: <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/merge_requests/22>
commit 5fb8b61537b832561f074a6d400956c8cb6b31a5
Author: Bernhard M. Wiedemann <bwiedemann@suse.de>
Date: Wed Jul 24 16:27:35 2024 +0200
Use long long for timestamp diff
to avoid integer overflows in the future
Part-of: <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/merge_requests/22>
commit e3971be7b20580a54b3c26281a5912433b9a7319
Author: Jan Friesse <jfriesse@gmail.com>
Date: Wed Nov 2 09:41:57 2022 +0100
Use FONT_UNITS_FLOOR for ascent/descent
Before version 1.49.3 the pango was using (probably) values from BLC
table, since 1.49.3 pango uses harfbuzz for metrics and it seems
harfbuzz is using OS2 table. Result is font with 1px extra for
ascend/descent.
Solution seems to be to use FONT_UNITS_FLOOR instead of FONT_UNITS_CEIL
when storing file.
Fixes: #7
Part-of: <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/merge_requests/18>
commit 7532e3ad70441041395c77d12424edd31cf63a42
Author: philg314 <philg314@fastmail.com>
Date: Thu Aug 11 11:42:22 2022 +0000
Fix `cmap` Subtable Format 4 `entrySelector`
https://docs.microsoft.com/en-us/typography/opentype/spec/cmap defines
`entrySelector` as "Log2 of the maximum power of 2 less than or equal to
numTables (log2(searchRange/2), which is equal to floor(log2(segCount)))"
Part-of: <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/merge_requests/17>
commit 6eeb52757c9d2d1f40a3d31a6b6d3925dc17fbb2
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Thu Feb 15 16:38:08 2024 -0800
unifdef NEED_SNPRINTF
If it was defined, it would try to include a snprintf.c file that's
not actually in our source tree.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 964b103be665953306e9476ce7dd3c305f0541bd
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Thu Feb 15 16:35:51 2024 -0800
unifdef __SCO__
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 13fcc6781f192c1bd1ae61ca88543dc1d27e79e9
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Thu Feb 15 16:35:01 2024 -0800
unifdef __UNIXOS2__
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 3b0f4a799bb7820dd27257be16f1a9d61a4969f9
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Wed Sep 27 18:37:58 2023 -0700

View file

@ -1355,7 +1355,7 @@ dnl DEALINGS IN THE SOFTWARE.
# See the "minimum version" comment for each macro you use to see what
# version you require.
m4_defun([XORG_MACROS_VERSION],[
m4_define([vers_have], [1.20.0])
m4_define([vers_have], [1.20.1])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,,
@ -1402,10 +1402,10 @@ rm -f conftest.$ac_ext
AC_MSG_CHECKING([if $RAWCPP requires -traditional])
AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp preserve "whitespace"?]])])
if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve "'` -eq 1 ; then
AC_MSG_RESULT([no])
else
if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve "'` -eq 1 ; then
TRADITIONALCPPFLAGS="-traditional"
RAWCPPFLAGS="${RAWCPPFLAGS} -traditional"
AC_MSG_RESULT([yes])

View file

@ -1,9 +1,9 @@
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2018-03-07.03; # UTC
scriptversion=2024-06-19.01; # UTC
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
# Copyright (C) 1999-2024 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@ -143,7 +143,7 @@ func_cl_wrapper ()
# configure might choose to run compile as 'compile cc -o foo foo.c'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
*.o | *.lo | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
@ -248,14 +248,17 @@ If you are trying to build a whole package this is not the
right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>.
GNU Automake home page: <https://www.gnu.org/software/automake/>.
General help using GNU software: <https://www.gnu.org/gethelp/>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
echo "compile (GNU Automake) $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;

View file

@ -1,8 +1,8 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for fonttosfnt 1.2.3.
# Generated by GNU Autoconf 2.71 for fonttosfnt 1.2.4.
#
# Report bugs to <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/issues>.
# Report bugs to <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/issues>.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@ -268,7 +268,7 @@ then :
printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
else
printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
$0: https://gitlab.freedesktop.org/xorg/app/fonttosfnt/issues
$0: https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/issues
$0: about your system, including any error possibly output
$0: before this message. Then install a modern shell, or
$0: manually run the script under such a shell if you do
@ -612,9 +612,9 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='fonttosfnt'
PACKAGE_TARNAME='fonttosfnt'
PACKAGE_VERSION='1.2.3'
PACKAGE_STRING='fonttosfnt 1.2.3'
PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/app/fonttosfnt/issues'
PACKAGE_VERSION='1.2.4'
PACKAGE_STRING='fonttosfnt 1.2.4'
PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/issues'
PACKAGE_URL=''
ac_unique_file="Makefile.am"
@ -1345,7 +1345,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures fonttosfnt 1.2.3 to adapt to many kinds of systems.
\`configure' configures fonttosfnt 1.2.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1416,7 +1416,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of fonttosfnt 1.2.3:";;
short | recursive ) echo "Configuration of fonttosfnt 1.2.4:";;
esac
cat <<\_ACEOF
@ -1461,7 +1461,7 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/issues>.
Report bugs to <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/issues>.
_ACEOF
ac_status=$?
fi
@ -1525,7 +1525,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
fonttosfnt configure 1.2.3
fonttosfnt configure 1.2.4
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@ -1795,7 +1795,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by fonttosfnt $as_me 1.2.3, which was
It was created by fonttosfnt $as_me 1.2.4, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@ -3032,7 +3032,7 @@ fi
# Define the identity of the package.
PACKAGE='fonttosfnt'
VERSION='1.2.3'
VERSION='1.2.4'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@ -11566,7 +11566,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by fonttosfnt $as_me 1.2.3, which was
This file was extended by fonttosfnt $as_me 1.2.4, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -11626,7 +11626,7 @@ $config_headers
Configuration commands:
$config_commands
Report bugs to <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/issues>."
Report bugs to <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/issues>."
_ACEOF
ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
@ -11634,7 +11634,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
fonttosfnt config.status 1.2.3
fonttosfnt config.status 1.2.4
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"

View file

@ -23,8 +23,9 @@ dnl Process this file with autoconf to create configure.
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT(fonttosfnt, [1.2.3],
[https://gitlab.freedesktop.org/xorg/app/fonttosfnt/issues], fonttosfnt)
AC_INIT(fonttosfnt, [1.2.4],
[https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/issues],
[fonttosfnt])
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([config.h])

View file

@ -26,11 +26,7 @@ THE SOFTWARE.
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#ifndef __UNIXOS2__
# include <math.h>
#else
# include <float.h>
#endif
#include <math.h>
#include <stdarg.h>
#include <ft2build.h>
@ -40,12 +36,6 @@ THE SOFTWARE.
#include "X11/Xfuncproto.h" /* for _X_ATTRIBUTE_PRINTF */
#include "fonttosfnt.h"
#ifdef NEED_SNPRINTF
#undef SCOPE
#define SCOPE static
#include "snprintf.c"
#endif
#ifdef __GLIBC__
#define HAVE_TIMEGM
#define HAVE_TM_GMTOFF
@ -56,11 +46,6 @@ THE SOFTWARE.
#define GMTOFFMEMBER tm_gmtoff
#endif
#ifdef __SCO__
#define HAVE_TM_GMTOFF
#define GMTOFFMEMBER tm_tzadj
#endif
/* That's in POSIX */
#define HAVE_TZSET
@ -196,7 +181,8 @@ mktime_gmt(struct tm *tm)
int
macTime(int *hi, unsigned *lo)
{
unsigned long diff; /* Not time_t */
unsigned long long diff; /* Not time_t */
char *source_date_epoch;
time_t macEpoch, current;
struct tm tm;
tm.tm_sec = 0;
@ -210,7 +196,11 @@ macTime(int *hi, unsigned *lo)
macEpoch = mktime_gmt(&tm);
if(macEpoch == -1) return -1;
current = time(NULL);
/* This assumes that the SOURCE_DATE_EPOCH environment variable will contain
a correct, positive integer in the time_t range */
if ((source_date_epoch = getenv("SOURCE_DATE_EPOCH")) == NULL ||
(current = (time_t)strtoll(source_date_epoch, NULL, 10)) <= 0)
current = time(NULL);
if(current == -1)
return -1;

View file

@ -875,7 +875,7 @@ writecmap(FILE* out, FontPtr font)
/* How baroque can you get? */
writeUSHORT(out, segcount * 2); /* segCountX2 */
writeUSHORT(out, 2 * two_log2_floor(segcount)); /* searchRange */
writeUSHORT(out, 1 + log2_floor(segcount)); /* entrySelector */
writeUSHORT(out, log2_floor(segcount)); /* entrySelector */
writeUSHORT(out, 2 * (segcount - two_log2_floor(segcount)));
/* rangeShift */
@ -941,8 +941,8 @@ writehhea(FILE* out, FontPtr font)
degreesToFraction(font->italicAngle, &num, &den);
writeULONG(out, 0x00010000); /* version */
writeSHORT(out, FONT_UNITS_CEIL(font->metrics.ascent)); /* ascender */
writeSHORT(out, -FONT_UNITS_CEIL(font->metrics.descent)); /* descender */
writeSHORT(out, FONT_UNITS_FLOOR(font->metrics.ascent)); /* ascender */
writeSHORT(out, -FONT_UNITS_FLOOR(font->metrics.descent)); /* descender */
writeSHORT(out, FONT_UNITS(font->metrics.size - font->metrics.ascent - font->metrics.descent)); /* lineGap */
writeUSHORT(out, FONT_UNITS(font->metrics.maxAwidth)); /* advanceWidthMax */
/* TODO: the next three are not calculated according to spec, are they ?
@ -1116,14 +1116,14 @@ writeOS2(FILE* out, FontPtr font)
writeUSHORT(out, i); /* fsSelection; */
writeUSHORT(out, 0x20); /* usFirstCharIndex; */
writeUSHORT(out, 0xFFFD); /* usLastCharIndex; */
writeUSHORT(out, FONT_UNITS_CEIL(font->metrics.ascent)); /* sTypoAscender; */
writeSHORT(out, -FONT_UNITS_CEIL(font->metrics.descent)); /* sTypoDescender; */
writeUSHORT(out, FONT_UNITS_FLOOR(font->metrics.ascent)); /* sTypoAscender; */
writeSHORT(out, -FONT_UNITS_FLOOR(font->metrics.descent)); /* sTypoDescender; */
writeSHORT(out, FONT_UNITS(font->metrics.size - font->metrics.ascent - font->metrics.descent)); /* sTypoLineGap */
#ifdef NO_TYPO_METRICS
writeUSHORT(out, FONT_UNITS_CEIL(font->metrics.ascent)); /* usWinAscent; */
writeUSHORT(out, FONT_UNITS_CEIL(font->metrics.descent)); /* usWinDescent; */
writeUSHORT(out, FONT_UNITS_FLOOR(font->metrics.ascent)); /* usWinAscent; */
writeUSHORT(out, FONT_UNITS_FLOOR(font->metrics.descent)); /* usWinDescent; */
#else
writeUSHORT(out, FONT_UNITS_CEIL(font->metrics.maxY)); /* usWinAscent; */
writeUSHORT(out, FONT_UNITS_FLOOR(font->metrics.maxY)); /* usWinAscent; */
writeUSHORT(out, -FONT_UNITS_FLOOR(font->metrics.minY)); /* usWinDescent; */
#endif
writeULONG(out, 3); /* ulCodePageRange1; */