diff options
author | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2020-01-16 06:08:42 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2020-01-16 06:10:08 +0300 |
commit | e42b3e385822fc1b08807a585d4bb2015c823690 (patch) | |
tree | db6a37b71822c4bc81ffc94836624bb21a7743c4 /meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-add-fallback-parse_printf_format-implementation.patch | |
parent | 48265d8a49254f942423fae353516c35ed7e42b6 (diff) | |
download | openbmc-e42b3e385822fc1b08807a585d4bb2015c823690.tar.xz |
meta-openembedded: subtree update:459dbf1078..ea8604a0e3
Adrian Bunk (6):
xfsprogs: Remove obsolete patch
gpsd: Add a PACKAGECONFIG for disabling usb support
libqmi: Upgrade 1.24.0 -> 1.24.2
enchant2: Upgrade 2.2.3 -> 2.2.7
geany-plugins: Use enchant2 instead of the old enchant
enchant2: Remove, moved to oe-core
Alex Kiernan (11):
nftables: Fix documentation generation
ldns: Add recipe
ostree: Fix DISTRO_FEATURES with ptest but w/o xattr
ostree: Drop tests for soup/xattr with ptest
ostree: Change PACKAGECONFIG to use manpages
ostree: Add PACKAGECONFIG for builtin-grub2-mkconfig
ostree: Backport build/test fixes from upstream
ostree: Upgrade 2019.5 -> 2019.6
ostree: Add support for gjs tests
nftables: Expand PACKAGECONFIG, cleanup build
ostree: Tidy FILES_${PN} using PACKAGE_BEFORE_PN
Alexander Kanavin (1):
enscript/indent/sharutils: fix build with gettext 0.20.x
Alistair Francis (2):
mycroft: RDEPENDS on mpg123 to allow singing
openocd: Enable remote-bitbang build option
Andreas Müller (76):
gnome-system-monitor: add gsettings to inherit
tracker-miners: initial add 2.3.1
nautilus: add tracker-miners to RDPENDS
libgnomekbd: cleanup DEPENDS inherit gsettings / remove unused config
nodejs: Add PACKAGECONFIG share to allow other projects to use node as library
xserver-xorg-cvt-native: initial add 1.20.5
mutter: initial add 3.34.1
pinpoint: remove dead project
gnome-keyring: upgrade 3.28.2 -> 3.34.0
libgsf: upgrade 1.14.45 -> 1.14.46
libgnome-keyring: remove
gvfs: upgrade 1.41.2 -> 1.42.1
grilo: initial add 0.3.10
gsound: initial add 1.0.2
gnome-backgrounds: initial add 3.34.0
metacity: upgrade 3.32.0 -> 3.34.1
gjs: initial add 1.58.3
gdm: re-add 3.34.1
gnome-shell: initial add 3.34.1
gnome-shell-extensions: initial add 3.34.1
accountsservice: initial add 0.6.55
rest: initial add 0.8.1
gnome-online-accounts: initial add 3.34.1
gnome-control-center: re-add 3.34.1
gnome-session: inital add 3.34.1
gnome-panel: (re)add 3.34.1
gnome-flashback: initial add 3.34.1
Add: packagegroup-gnome-apps / packagegroup-gnome-desktop
glfw: add features_check to inherit
stalonetray: Add x11 to required distro feature
projucer: add x11 to required distro features
colord-gtk: add polkit to required distro features
yelp: add x11 to required distro features
file-roller: remove nautilus from DEPENDS
libgdata: add x11 to required distro features
accountsservice: Hack musl build fix
accountsservice: fix build for systemd not in DISTRO_FEATURES
gnome-font-viewer: fix copy & paste typo in SUMMARY
libxfce4ui: give up glade3 (=glade for gtk2) support
glade3: remove ancient version of glade
exo: remove pythonnative from inherit
geany: remove pythonnative from inherit
gnome-tweaks: initial add 3.34.0
libhandy: initial add 0.0.12
fluidsynth: upgrade 2.0.9 -> 2.1.0
exo: upgrade 0.12.10 -> 0.12.11
tumbler: upgrade 0.2.7 -> 0.2.8
catfish: upgrade 1.4.10 -> 1.4.11
cppunit: upgrade 1.14.0 -> 1.15.1
xfce4-terminal: upgrade 0.8.8 -> 0.8.9
gnome-calculator: initial add 3.34.1
evince: upgrade 3.34.1 -> 3.34.1
file-roller: upgrade 3.32.2 -> 3.32.3
evolution-data-server: upgrade 3.34.1 -> 3.34.2
gedit: upgrade 3.34.0 -> 3.34.1
gnome-autoar: upgrade 0.2.3 -> 0.2.4
gnome-control-center: upgrade 3.34.1 -> 3.34.2
gnome-desktop3: upgrade 3.34.1 -> 3.34.2
gnome-flashback: upgrade 3.34.1 -> 3.34.2
gnome-session: 3.34.1 -> 3.34.2
gnome-settings-daemon: upgrade 3.34.1 -> 3.34.2
gnome-shell-extensions: upgrade 3.34.1 -> 3.34.2
gnome-shell: upgrade 3.34.1 -> 3.34.2
gvfs: upgrade 1.42.1 -> 1.42.2
libgdata: upgrade 0.17.10 -> 0.17.11
mutter: upgrade 3.34.1 -> 3.34.2
nautilus: upgrade 3.34.1 -> 3.34.2
yelp-xsl: upgrade 3.34.0 -> 3.34.2
poppler: upgrade 0.82.0 -> 0.84.0
xfce4-terminal: upgrade 0.8.9 -> 0.8.9.1
mutter: upgrade 3.34.2 -> 3.34.3
gnome-shell: upgrade 3.34.2 -> 3.34.3
evolution-data-server: upgrade 3.34.2 -> 3.34.3
gjs: upgrade 1.58.3 -> 1.58.4
gnome-desktop3: upgrade 3.34.2 -> 3.34.3
libsigc++-3: let meson build
Andrei Gherzan (1):
kernel-selftest: Include rtc tests
Andrej Valek (1):
ntp: split ntpdc into separate package
Andrey Zhizhikin (1):
flatbuffers: add PIC compiler flag required for aarch64
André Draszik (4):
python3-jsonrpcserver: update to v4.1.0
python3-jsonrpcserver: allow to use as non-root
oniguruma: update to v6.9.4
oniguruma: enable ptest
Armin Kuster (3):
glfw: missing feature check.
libvncserver: fix build depends issue
surf: Add opengl requirement
Bartosz Golaszewski (10):
librsync: new package
xdelta3: update to v3.1.0
xdelta3: add native and nativesdk to BBCLASSEXTEND
speedtest-cli: new package
doxygen: upgrade v1.8.16 -> v1.8.17
libsigrok: upgrade v0.5.1 -> v0.5.2
libsigrokdecode: upgrade v0.5.2 -> v0.5.3
libsigrok: add support for bluetooth integration
cloc: new package
libsigrok: add support for hidapi integration
Changqing Li (5):
samba: fix wrong shebang for python3
gtk-xfce-engine: remove this recipe
xfce4-kbdleds-plugin: remove this recipe
xfce-dusk-gtk3: correct invalid SRC_URI
libhugetlbfs: update patch to make it work for python3
Denys Dmytriyenko (1):
netperf: add "intervals" and "histogram" PACKAGECONFIGs
Diego Rondini (2):
cups-filters: add recipe
qpdf: add recipe
Fabio Berton (1):
nanopb: Add recipe for version 0.4.0
Gianfranco Costamagna (6):
boinc: update recipe to version 7.16.3
vboxguestdrivers: update to version 6.1.0 and unblacklist
websocketpp: add various upstream accepted and proposed patches to fix various issues, including:
brotli: rename static libraries avoding the -static suffix.
cpprest: fix cmake installation directory
websocketpp: also install examples in a new -examples subpackage
Hongxu Jia (2):
gvfs: add user polkitd and missing depends
python3-astor: fix VERSION file not found
Jacopo Dall'Aglio (1):
netplan: add recipe
Jens Rehsack (6):
log4cplus: update to 2.0.5
libstatgrab: add logging/tracing options
libtest-warnings-perl: add recipe
libfile-slurper-perl: add recipe
libconfig-autoconf-perl: add recipe
libunix-statgrab: add recipe
Kai Kang (12):
blueman: disable appindicator support
xfce4-panel-profiles: 1.0.8 -> 1.0.9
exo: 0.12.9 -> 0.12.10
thunar: 1.8.9 -> 1.8.10
fltk: fix build error when enable package config examples
corosync: fix build error when package config rdma enabled
rdma-core: 18.1 -> 27.0
openl2tp: update systemd service file
bdwgc: make libatomic-ops as dependency
volume-key: not create python2 bindings
libbytesize: disable doc build
adduser: set default shell with /sbin/nologin
Khem Raj (113):
python-evdev: Fix build for 32bit arches with 64bit time_t
x11vnc: Fix build for 32bit arches with 64bit time_t
evtest: Fix build for 32bit arches with 64bit time_t
lirc: Fix build for 32bit arches with 64bit time_t
v4l-utils: Update to 1.18.0
tslib: Fix build for 32bit arches with 64bit time_t
utouch-evemu,utouch-frame: Fix build for 32bit arches with 64bit time_t
directfb: Fix build for 32bit arches with 64bit time_t
kernel-module-emlog: Use compile task from module bbclass
emlog: Use RRECOMMEND instead of RDEPEND
projucer: Upgrade to 5.4.5
packagegroup-meta-oe: Remove nodejs and uim on riscv
libnih: Fix build with latest gettext
liblockdev: Loosen the regexp for py3
sigrok-cli: Update to 0.7.1
python-pywbem: Update to 0.15.0
udisks2: Update to 2.8.4
id3lib: Update to newer debian patchset
libdc1394: Update to 2.2.6 release
libsmi: Use right name for tcl license
hdf5: Upgrade to 1.8.21
xterm: Fix latent issue found with musl
mozjs: extend --with-intl-api=build to all mips
klibc: Apply -no-integrated-as on mips/clang
grpc: Define libdir and cmakedir in terms of multilib
ufs-utils: Renames from ufs-tool
breakpad: Update to latest upstream
rsyslog: Sync VALGRIND supported arch list
packagegroup-meta-oe: Remove ppc64 specific incompatible packages
libpfm4: Moved here from oe-core
rdma-core: Replace pthread_yield with sched_yield
fvwm: Upgrade to 2.6.9
nlohmann-json: Upgrade to 3.7.3
libqb: Add --enable-nosection-fallback with mips64/clang
lcdproc: Upgrade to latest top of tree
tinyalsa: fix installation libdir path to match multilibs
luajit: Add ppc/ppc64 to unsupported arch list
rsyslog: Do not assume atomic built-ins on ppc
hiredis: Upgrade to 0.14.0
libfann: Define LIB_SUFFIX suitable for OE multilib needs
libgit2: Upgrade to 0.28.4
libinih: Fix multilib build
poco: Define LIB_SUFFIX per OE multilibs
libcec: Fix multilib build
dfu-util-native,sjf2410-linux-native: Fix Deploy in multimachine builds
mpv: Remove luajit dependency for ppc64
cannelloni: Update to latest and fix multilib builds
nvme-cli: Use nonarch libdir for dracut config files
cli11: Fix multilib build
lockdev: Make baselib configurable
avro-c: Update to 1.9.1
nftables: Package python scripts into nonarch libdir
mercurial: Add python scripts into separate python package
fluentbit: Fix packaging in multilib env
dcadec: Define BASELIB as a knob
dbus-broker: Use nonarch_libdir for systemd catalog files
websocketapp: Fix multilib build
ade: Fix install paths in multilib builds
thrift: Upgrade to 0.13
gattlib: Update to latest tip
rygel: Use nonarch_libdir for systemd units
firewalld: Package firewalld files
iwd: Package module conf files via nonarch_libdir
civetweb: Upgrade to latest tip
ruli: Define OOP_LIB_DIR and INSTALL_LIB_DIR
liblightmodbus: Fix packaging errors when using multilib
ostree: Fix packaging errors when using lib64 libdir
boinc-client: Use nonarch_libdir for systemd_units
spirv-tools: Fix multilib builds
pam-plugin-ldapdb: Include <stdexcept> for std::invalid_argument
dvb-apps: Replace stime with clock_settime
redis: Upgrade to 5.0.7
cannelloni: Include stdexcept for runtime_error
libubox: Update to latest
upm: Fix 'may be used uninitialized' errors
memcached: upgrade to 1.5.20
ltrace: Fix build with gcc10
mpd: Fix build with gcc10
wvstreams: Fix build with gcc10
tvheadend: Fix format-truncation warnings
open-vm-tools: Ignore -Warray-bounds
jsoncpp: Upgrade to 1.9.2
ippool: Fix strncpy -Wformat-truncation warning
opensc: Fix misaligned indentation
glm: Upgrade to 0.9.9.6
rocksdb: Upgrade to 6.5.2
mariadb: Upgrade to 10.4.11
ruli: Fix implicit conversion from 'unsigned int' to 'float'
glfw: Update to latest
fluentbit: Upgrade to 1.3.5
renderdoc: Upgrade to 1.5
spirv-tools: Upgrade to v2019.5
upm: Disable -Wno-misleading-indentation with clang10+
libyui: Disable Warnings as errors
sanlock: Upgrade to 3.8.0+
udisks2: Updare to latest master beyond 2.8.4
netcat: Fix build with gettext 0.20.x
gtkperf: Fix build with latest gettext 0.20.x
hddtemp: Fix build with latest gettext 0.20.x
vorbis-tools: Use external gettext
rwmem: Upgrade to latest
wireshark: Enable plugins when enabling qt5
python3-jsonrpcserver: Use PYTHON_BASEVERSION instead of hardcoding py version
smbnetfs: Update to latest 0.6.2 rev
makedumpfile: Drop linking with libebl
cmpi-bindings: append PYTHON_ABI suffix to libpython soname
websocketpp: Fix clang specific flags in cmake files
rocksdb: Disable Werror
spirv-tools: Disable Werror
libspatialite: Workaround proj_api.h deprecation in proj 6.0.0
zbar: Switch to github and update to latest
gstd: Upgrade to 0.8.1
gst-shark: Upgrade to 0.6.1
Laurent Bonnans (1):
opensc: fix RDEPENDS in pcsc PACKAGECONFIG
Leon Anavi (1):
mosquitto: update to 1.6.8
Martin Jansa (2):
googletest: fix build with newer oe-core without python in HOSTTOOLS
proj: upgrade to 6.2.0
Max Krummenacher (1):
libsoc: use python3 for python bindings
Maxime Roussin-Bélanger (1):
libvncserver: add missing cmake configration option to packageconfig
Mingde (Matthew) Zeng (1):
poppler/poppler-data: Add HOMEPAGE tags
Nicola Lunghi (1):
python3-jsonrpcserver: update to 4.1.2
Pau Espin Pedrol (1):
lksctp-tools: Add RRECOMENDS kernel-module-sctp for pkg lksctp-tools
Peter Kolbus (9):
python(3)-ujson: extend to native(sdk)
python-ipaddress: remove unneeded pip dependency
python3-html2text: add recipe
python(3)-beautifulsoup4: fix RDEPENDS
python3-soupsieve: add recipe
python-soupsieve: add recipe
python(3)-beautifulsoup4: add soupsieve to RDEPENDS
python3-booleanpy: add recipe
python3-license-expression: add recipe
Pierre-Jean Texier (3):
libssh2: add nativesdk support
python3-xmltodict: add recipe
libmxml: upgrade 3.0 -> 3.1
Quanyang Wang (1):
glog: fix do_fetch error
Randy MacLeod (3):
imagemagick: update from 7.8.47 to 7.9.16
tigervnc: update from 1.9.0 to 1.10.1
rsyslog: update from 8.1910 to 8.1911
Robert Yang (1):
rocksdb: Fix compile error for DEBUG_BUILD
Ross Burton (11):
python-jsonpointer: enable native/nativesdk
python3-pystemd: upgrade to 0.7.0
python-slip-dbus: don't use relative paths
python-m2crypto: don't use relative paths
python-coloredlogs: don't use relative paths
python-lxml: remove redundant sed (fixed in 4.3.0 onwards)
python-lxml: remove redundant RDEPENDS_class-native
opencv: don't download during configure
opencv: also download face alignment data in do_fetch()
opencv: PACKAGECONFIG for G-API, use system ADE
opencv: abort configure if we need to download
Stefan Agner (1):
Revert "zstd: move recipe to oe-core"
Stefan Lendl (2):
tinyproxy: Install a default tinyproxy.conf
tinyproxy: Fix user and group in tinyproxy install
Sumit Garg (1):
mariadb: fix library LZ4 lookup
Todd Cunningham (2):
libnftnl: upgrade 1.1.4 -> 1.1.5
nftables: upgrade 0.9.2 -> 0.9.3
Trevor Gamblin (4):
python-twisted: add python3-pyserial to RDEPENDS
python-twisted: add missing RDEPENDS for conch
samba: disable guest access and anonymous queries
python3-twisted: fix broken MemoryReactor import
Wang Mingyu (66):
python-cmd2: upgrade 0.9.19 -> 0.9.21
python-pluggy: upgrade 0.13.0 -> 0.13.1
python-pyasn1: upgrade 0.4.7 -> 0.4.8
python-pyopenssl: upgrade 19.0.0 -> 19.1.0
python-simplejson: upgrade 3.16.0 -> 3.17.0
python-thrift: upgrade 0.11.0 -> 0.13.0
python-alembic: upgrade 1.3.0 -> 1.3.1
python-dbus: upgrade 1.2.12 -> 1.2.14
python-pbr: upgrade 5.4.3 -> 5.4.4
python-paste: 3.2.2 -> 3.2.3
python-lxml: 4.4.1 -> 4.4.2
postgresql: 12.0 -> 12.1
python-jsonschema: 3.1.1 -> 3.2.0
python-pytest: upgrade 5.2.2 -> 5.3.1
xterm: upgrade 350 -> 351
wireshark: upgrade 3.0.6 -> 3.0.7
python3-xxhash: upgrade 1.4.2 -> 1.4.3
fuse3: upgrade 3.8.0 -> 3.9.0
kea: upgrade 1.7.0 -> 1.7.2
krb5: upgrade 1.17 -> 1.17.1
hwdata: upgrade 0.329 -> 0.330
python-pytest: upgrade 5.2.1 -> 5.3.2
python-waitress: upgrade 1.3.1 -> 1.4.1
python-cachetools: upgrade 3.1.1 -> 4.0.0
python-sqlalchemy: upgrade 1.1.17 -> 1.3.12
strongswan: upgrade 5.8.1 -> 5.8.2
smartmontools: upgrade 7.0 -> 7.1
spitools: upgrade 0.8.3 -> 0.8.4
python-pyyaml: upgrade 5.1.2 -> 5.2
arno-iptables-firewall: upgrade 2.0.3 -> 2.1.0
ipvsadm: upgrade 1.30 -> 1.31
lftp: upgrade 4.8.4 -> 4.9.0
nghttp2: upgrade 1.39.2 -> 1.40.0
opensaf: upgrade 5.19.07 -> 5.19.10
wolfssl: upgrade 4.2.0 -> 4.3.0
kea: upgrade 1.7.2 -> 1.7.3
wireshark: upgrade 3.0.7 -> 3.2.0
botan: upgrade 2.11.0 -> 2.13.0
cppzmq: upgrade 4.4.1 -> 4.5.0
iozone3: upgrade 487 -> 488
libmbim: upgrade 1.20.2 -> 1.20.4
libnfc: upgrade to 1.7.1
libsigc++-2.0: upgrade 3.0.0 -> 3.0.2
libuv: upgrade 1.33.1 -> 1.34.0
phoronix-test-suite: upgrade 9.0.1 -> 9.2.1
rabbitmq-c: upgrade 0.9.0 -> 0.10.0
cscope: upgrade 15.8b -> 15.9
msgpack-c: upgrade 3.1.1 -> 3.2.1
gnuplot: upgrade 5.2.2 -> 5.2.8
gphoto2: upgrade 2.5.14 -> 2.5.23
gtkwave: upgrade 3.3.102 -> 3.3.103
haveged: upgrade 1.9.6 -> 1.9.8
libgphoto2: upgrade 2.5.17 -> 2.5.23
libplist: upgrade 2.0.0 -> 2.1.0
ipmiutil: upgrade 3.0.5 -> 3.1.5
libburn: upgrade 1.5.0 -> 1.5.2
libdvdread: upgrade 6.0.1 -> 6.0.2
libsdl2-image: upgrade 2.0.3 -> 2.0.5
libsdl2-mixer: upgrade 2.0.2 -> 2.0.4
libsdl2-ttf: upgrade 2.0.14 -> 2.0.15
yad: upgrade 4.1 -> 5.0
python3-astor: 0.8 -> 0.8.1
python3-bandit: 1.5.1 -> 1.6.2
python-asn1crypto: 1.2.0 -> 1.3.0
python-bitarray: 1.2.0 -> 1.2.1
python-pyconnman: 0.1.0 -> 0.2.0
William A. Kennington III via Openembedded-devel (1):
stunnel: bump to version 5.56
Yi Zhao (4):
phpmyadmin: upgrade 4.9.1 -> 4.9.2
tk: upgrade 8.6.9 -> 8.6.10
ntp: restrict NTP mode 6 queries
samba: upgrade 4.10.10 -> 4.10.11
Yongxin Liu (1):
ndctl: Upgrade to v67
Zang Ruochen (17):
python-alembic: upgrade 1.3.1 -> 1.3.2
python-beautifulsoup4: upgrade 4.8.1 -> 4.8.2
python-bitarray: upgrade 1.1.0 -> 1.2.0
python-certifi: upgrade 2019.9.11 -> 2019.11.28
python-cmd2: upgrade 0.9.21 -> 0.9.22
python-engineio: upgrade 3.10.0 -> 3.11.1
python-parse: upgrade 1.12.1 -> 1.14.0
python-passlib: upgrade 1.7.1 -> 1.7.2
python-pexpect: upgrade 4.6.0 -> 4.7.0
python-psutil: upgrade 5.6.5 -> 5.6.7
python-py: upgrade 1.8.0 -> 1.8.1
python-pycryptodome: upgrade 3.9.3 -> 3.9.4
python-pymisp: upgrade 2.4.117.2 -> 2.4.119.1
python-pymongo: upgrade 3.9.0 -> 3.10.0
python-pyparsing: upgrade 2.4.5 -> 2.4.6
python-pyperf: upgrade 1.6.1 -> 1.7.0
python-backports-functools-lru-cache: Add python3 version
Zhixiong Chi (1):
dnsmasq: CVE-2019-14834
hmenn (1):
add sqlite-orm v1.5
madhavank27 (1):
Added bb file for libcamera integration
sangelovic (1):
sdbus-c++: Introduce recipes for sdbus-c++ library and its tools
Change-Id: I5e7559de35d61167e234161ffb768f6f95d30f41
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-add-fallback-parse_printf_format-implementation.patch')
-rw-r--r-- | meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-add-fallback-parse_printf_format-implementation.patch | 432 |
1 files changed, 432 insertions, 0 deletions
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-add-fallback-parse_printf_format-implementation.patch b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-add-fallback-parse_printf_format-implementation.patch new file mode 100644 index 0000000000..a2aad40ac2 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd-243/0004-add-fallback-parse_printf_format-implementation.patch @@ -0,0 +1,432 @@ +From 7bcf3b166694090497a0acd2c5299e4e04fcc9b6 Mon Sep 17 00:00:00 2001 +From: Chen Qi <Qi.Chen@windriver.com> +Date: Mon, 25 Feb 2019 14:04:21 +0800 +Subject: [PATCH 04/24] add fallback parse_printf_format implementation + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Emil Renner Berthing <systemd@esmil.dk> +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +[rebased for systemd 243] +Signed-off-by: Scott Murray <scott.murray@konsulko.com> +--- + meson.build | 1 + + src/basic/meson.build | 5 + + src/basic/parse-printf-format.c | 273 ++++++++++++++++++++++++++++++++++++++++ + src/basic/parse-printf-format.h | 57 +++++++++ + src/basic/stdio-util.h | 2 +- + src/journal/journal-send.c | 2 +- + 6 files changed, 338 insertions(+), 2 deletions(-) + create mode 100644 src/basic/parse-printf-format.c + create mode 100644 src/basic/parse-printf-format.h + +diff --git a/meson.build b/meson.build +index 79b762faeb..7f8c679411 100644 +--- a/meson.build ++++ b/meson.build +@@ -613,6 +613,7 @@ endif + foreach header : ['crypt.h', + 'linux/memfd.h', + 'linux/vm_sockets.h', ++ 'printf.h', + 'sys/auxv.h', + 'valgrind/memcheck.h', + 'valgrind/valgrind.h', +diff --git a/src/basic/meson.build b/src/basic/meson.build +index d6caf28f14..32c1acf349 100644 +--- a/src/basic/meson.build ++++ b/src/basic/meson.build +@@ -312,6 +312,11 @@ foreach item : [['af', af_list_txt, 'af', ''], + endforeach + + basic_sources += generated_gperf_headers ++ ++if conf.get('HAVE_PRINTF_H') != 1 ++ basic_sources += [files('parse-printf-format.c')] ++endif ++ + basic_gcrypt_sources = files( + 'gcrypt-util.c', + 'gcrypt-util.h') +diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c +new file mode 100644 +index 0000000000..49437e5445 +--- /dev/null ++++ b/src/basic/parse-printf-format.c +@@ -0,0 +1,273 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2014 Emil Renner Berthing <systemd@esmil.dk> ++ ++ With parts from the musl C library ++ Copyright 2005-2014 Rich Felker, et al. ++ ++ systemd is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or ++ (at your option) any later version. ++ ++ systemd is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with systemd; If not, see <http://www.gnu.org/licenses/>. ++***/ ++ ++#include <stddef.h> ++#include <string.h> ++ ++#include "parse-printf-format.h" ++ ++static const char *consume_nonarg(const char *fmt) ++{ ++ do { ++ if (*fmt == '\0') ++ return fmt; ++ } while (*fmt++ != '%'); ++ return fmt; ++} ++ ++static const char *consume_num(const char *fmt) ++{ ++ for (;*fmt >= '0' && *fmt <= '9'; fmt++) ++ /* do nothing */; ++ return fmt; ++} ++ ++static const char *consume_argn(const char *fmt, size_t *arg) ++{ ++ const char *p = fmt; ++ size_t val = 0; ++ ++ if (*p < '1' || *p > '9') ++ return fmt; ++ do { ++ val = 10*val + (*p++ - '0'); ++ } while (*p >= '0' && *p <= '9'); ++ ++ if (*p != '$') ++ return fmt; ++ *arg = val; ++ return p+1; ++} ++ ++static const char *consume_flags(const char *fmt) ++{ ++ while (1) { ++ switch (*fmt) { ++ case '#': ++ case '0': ++ case '-': ++ case ' ': ++ case '+': ++ case '\'': ++ case 'I': ++ fmt++; ++ continue; ++ } ++ return fmt; ++ } ++} ++ ++enum state { ++ BARE, ++ LPRE, ++ LLPRE, ++ HPRE, ++ HHPRE, ++ BIGLPRE, ++ ZTPRE, ++ JPRE, ++ STOP ++}; ++ ++enum type { ++ NONE, ++ PTR, ++ INT, ++ UINT, ++ ULLONG, ++ LONG, ++ ULONG, ++ SHORT, ++ USHORT, ++ CHAR, ++ UCHAR, ++ LLONG, ++ SIZET, ++ IMAX, ++ UMAX, ++ PDIFF, ++ UIPTR, ++ DBL, ++ LDBL, ++ MAXTYPE ++}; ++ ++static const short pa_types[MAXTYPE] = { ++ [NONE] = PA_INT, ++ [PTR] = PA_POINTER, ++ [INT] = PA_INT, ++ [UINT] = PA_INT, ++ [ULLONG] = PA_INT | PA_FLAG_LONG_LONG, ++ [LONG] = PA_INT | PA_FLAG_LONG, ++ [ULONG] = PA_INT | PA_FLAG_LONG, ++ [SHORT] = PA_INT | PA_FLAG_SHORT, ++ [USHORT] = PA_INT | PA_FLAG_SHORT, ++ [CHAR] = PA_CHAR, ++ [UCHAR] = PA_CHAR, ++ [LLONG] = PA_INT | PA_FLAG_LONG_LONG, ++ [SIZET] = PA_INT | PA_FLAG_LONG, ++ [IMAX] = PA_INT | PA_FLAG_LONG_LONG, ++ [UMAX] = PA_INT | PA_FLAG_LONG_LONG, ++ [PDIFF] = PA_INT | PA_FLAG_LONG_LONG, ++ [UIPTR] = PA_INT | PA_FLAG_LONG, ++ [DBL] = PA_DOUBLE, ++ [LDBL] = PA_DOUBLE | PA_FLAG_LONG_DOUBLE ++}; ++ ++#define S(x) [(x)-'A'] ++#define E(x) (STOP + (x)) ++ ++static const unsigned char states[]['z'-'A'+1] = { ++ { /* 0: bare types */ ++ S('d') = E(INT), S('i') = E(INT), ++ S('o') = E(UINT),S('u') = E(UINT),S('x') = E(UINT), S('X') = E(UINT), ++ S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL), S('a') = E(DBL), ++ S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL), S('A') = E(DBL), ++ S('c') = E(CHAR),S('C') = E(INT), ++ S('s') = E(PTR), S('S') = E(PTR), S('p') = E(UIPTR),S('n') = E(PTR), ++ S('m') = E(NONE), ++ S('l') = LPRE, S('h') = HPRE, S('L') = BIGLPRE, ++ S('z') = ZTPRE, S('j') = JPRE, S('t') = ZTPRE ++ }, { /* 1: l-prefixed */ ++ S('d') = E(LONG), S('i') = E(LONG), ++ S('o') = E(ULONG),S('u') = E(ULONG),S('x') = E(ULONG),S('X') = E(ULONG), ++ S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL), S('a') = E(DBL), ++ S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL), S('A') = E(DBL), ++ S('c') = E(INT), S('s') = E(PTR), S('n') = E(PTR), ++ S('l') = LLPRE ++ }, { /* 2: ll-prefixed */ ++ S('d') = E(LLONG), S('i') = E(LLONG), ++ S('o') = E(ULLONG),S('u') = E(ULLONG), ++ S('x') = E(ULLONG),S('X') = E(ULLONG), ++ S('n') = E(PTR) ++ }, { /* 3: h-prefixed */ ++ S('d') = E(SHORT), S('i') = E(SHORT), ++ S('o') = E(USHORT),S('u') = E(USHORT), ++ S('x') = E(USHORT),S('X') = E(USHORT), ++ S('n') = E(PTR), ++ S('h') = HHPRE ++ }, { /* 4: hh-prefixed */ ++ S('d') = E(CHAR), S('i') = E(CHAR), ++ S('o') = E(UCHAR),S('u') = E(UCHAR), ++ S('x') = E(UCHAR),S('X') = E(UCHAR), ++ S('n') = E(PTR) ++ }, { /* 5: L-prefixed */ ++ S('e') = E(LDBL),S('f') = E(LDBL),S('g') = E(LDBL), S('a') = E(LDBL), ++ S('E') = E(LDBL),S('F') = E(LDBL),S('G') = E(LDBL), S('A') = E(LDBL), ++ S('n') = E(PTR) ++ }, { /* 6: z- or t-prefixed (assumed to be same size) */ ++ S('d') = E(PDIFF),S('i') = E(PDIFF), ++ S('o') = E(SIZET),S('u') = E(SIZET), ++ S('x') = E(SIZET),S('X') = E(SIZET), ++ S('n') = E(PTR) ++ }, { /* 7: j-prefixed */ ++ S('d') = E(IMAX), S('i') = E(IMAX), ++ S('o') = E(UMAX), S('u') = E(UMAX), ++ S('x') = E(UMAX), S('X') = E(UMAX), ++ S('n') = E(PTR) ++ } ++}; ++ ++size_t parse_printf_format(const char *fmt, size_t n, int *types) ++{ ++ size_t i = 0; ++ size_t last = 0; ++ ++ memset(types, 0, n); ++ ++ while (1) { ++ size_t arg; ++ unsigned int state; ++ ++ fmt = consume_nonarg(fmt); ++ if (*fmt == '\0') ++ break; ++ if (*fmt == '%') { ++ fmt++; ++ continue; ++ } ++ arg = 0; ++ fmt = consume_argn(fmt, &arg); ++ /* flags */ ++ fmt = consume_flags(fmt); ++ /* width */ ++ if (*fmt == '*') { ++ size_t warg = 0; ++ fmt = consume_argn(fmt+1, &warg); ++ if (warg == 0) ++ warg = ++i; ++ if (warg > last) ++ last = warg; ++ if (warg <= n && types[warg-1] == NONE) ++ types[warg-1] = INT; ++ } else ++ fmt = consume_num(fmt); ++ /* precision */ ++ if (*fmt == '.') { ++ fmt++; ++ if (*fmt == '*') { ++ size_t parg = 0; ++ fmt = consume_argn(fmt+1, &parg); ++ if (parg == 0) ++ parg = ++i; ++ if (parg > last) ++ last = parg; ++ if (parg <= n && types[parg-1] == NONE) ++ types[parg-1] = INT; ++ } else { ++ if (*fmt == '-') ++ fmt++; ++ fmt = consume_num(fmt); ++ } ++ } ++ /* length modifier and conversion specifier */ ++ state = BARE; ++ do { ++ unsigned char c = *fmt++; ++ ++ if (c < 'A' || c > 'z') ++ continue; ++ state = states[state]S(c); ++ if (state == 0) ++ continue; ++ } while (state < STOP); ++ ++ if (state == E(NONE)) ++ continue; ++ ++ if (arg == 0) ++ arg = ++i; ++ if (arg > last) ++ last = arg; ++ if (arg <= n) ++ types[arg-1] = state - STOP; ++ } ++ ++ if (last > n) ++ last = n; ++ for (i = 0; i < last; i++) ++ types[i] = pa_types[types[i]]; ++ ++ return last; ++} +diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h +new file mode 100644 +index 0000000000..47be7522d7 +--- /dev/null ++++ b/src/basic/parse-printf-format.h +@@ -0,0 +1,57 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2014 Emil Renner Berthing <systemd@esmil.dk> ++ ++ With parts from the GNU C Library ++ Copyright 1991-2014 Free Software Foundation, Inc. ++ ++ systemd is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or ++ (at your option) any later version. ++ ++ systemd is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with systemd; If not, see <http://www.gnu.org/licenses/>. ++***/ ++ ++#pragma once ++ ++#include "config.h" ++ ++#if HAVE_PRINTF_H ++#include <printf.h> ++#else ++ ++#include <stddef.h> ++ ++enum { /* C type: */ ++ PA_INT, /* int */ ++ PA_CHAR, /* int, cast to char */ ++ PA_WCHAR, /* wide char */ ++ PA_STRING, /* const char *, a '\0'-terminated string */ ++ PA_WSTRING, /* const wchar_t *, wide character string */ ++ PA_POINTER, /* void * */ ++ PA_FLOAT, /* float */ ++ PA_DOUBLE, /* double */ ++ PA_LAST ++}; ++ ++/* Flag bits that can be set in a type returned by `parse_printf_format'. */ ++#define PA_FLAG_MASK 0xff00 ++#define PA_FLAG_LONG_LONG (1 << 8) ++#define PA_FLAG_LONG_DOUBLE PA_FLAG_LONG_LONG ++#define PA_FLAG_LONG (1 << 9) ++#define PA_FLAG_SHORT (1 << 10) ++#define PA_FLAG_PTR (1 << 11) ++ ++size_t parse_printf_format(const char *fmt, size_t n, int *types); ++ ++#endif /* HAVE_PRINTF_H */ +diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h +index c3b9448d4f..2937aa13b1 100644 +--- a/src/basic/stdio-util.h ++++ b/src/basic/stdio-util.h +@@ -1,13 +1,13 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + #pragma once + +-#include <printf.h> + #include <stdarg.h> + #include <stdio.h> + #include <sys/types.h> + + #include "macro.h" + #include "memory-util.h" ++#include "parse-printf-format.h" + + #define snprintf_ok(buf, len, fmt, ...) \ + ((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len)) +diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c +index 5ef11fa1a4..6384ab620c 100644 +--- a/src/journal/journal-send.c ++++ b/src/journal/journal-send.c +@@ -2,7 +2,6 @@ + + #include <errno.h> + #include <fcntl.h> +-#include <printf.h> + #include <stddef.h> + #include <sys/socket.h> + #include <sys/un.h> +@@ -21,6 +20,7 @@ + #include "stdio-util.h" + #include "string-util.h" + #include "tmpfile-util.h" ++#include "parse-printf-format.h" + + #define SNDBUF_SIZE (8*1024*1024) + |