bookmarkfs/.builds/freebsd.yml
CismonX f20cd2cf74
ci: fix FreeBSD and Alpine builds
- Apply workaround for libiconv on FreeBSD.
- Disable tcc bounds checking (`tcc -b`) on Alpine, since it requires
  manually linking to /usr/lib/tcc/bcheck.o (in package tcc-dev).
  No need to bother with it.  Such checks are better covered with ASAN
  on Debian and Arch Linux builds.
2025-03-29 17:47:18 +08:00

51 lines
1.8 KiB
YAML

#
# Copyright (C) 2025 CismonX <admin@cismon.net>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty, provided the copyright notice and
# this notice are preserved. This file is offered as-is, without any warranty.
#
image: freebsd/latest
packages: [
# build
autoconf, automake, libtool, autoconf-archive, pkgconf, texinfo,
# lib
fusefs-libs3, sqlite3, jansson, nettle, readline, tcl86, uriparser, xxhash,
]
sources:
- https://git.sr.ht/~cismonx/bookmarkfs
environment:
BUILD_CFLAGS: >-
-std=c99 -O0 -g -Wall -Wextra -Wpedantic -Wshadow
-fsanitize=address,undefined -fno-sanitize-recover
# Workaround for libiconv. See INSTALL.md for details.
BUILD_CPPFLAGS: -D_LIBICONV_H -include /usr/include/iconv.h
tasks:
# Unlike Debian, FreeBSD Ports does not have a "dependency package" concept,
# and we have to manually create a symlink for Tcl's pkg-config file.
- init: |
cd /usr/local/libdata/pkgconfig
sudo ln -s tcl86.pc tcl.pc
- setup: |
mkdir bookmarkfs/build && cd bookmarkfs/build
autoreconf -i ..
../configure \
--enable-bookmarkfs-debug --enable-xxhash-inline \
--enable-bookmarkfs-util --enable-bookmarkfs-mount \
--enable-bookmarkfs-fsck --enable-bookmarkfs-mkfs \
--enable-bookmarkctl --enable-fsck-handler-tcl \
--enable-backend-firefox --enable-backend-chromium \
CFLAGS="$BUILD_CFLAGS" CPPFLAGS="$BUILD_CPPFLAGS"
- build: |
cd bookmarkfs/build
make
make info
- test: |
sudo kldload fusefs
sudo sysctl vfs.usermount=1
cd bookmarkfs/build
make check
# For history builds, see:
# <https://builds.sr.ht/~cismonx/bookmarkfs/commits/master/freebsd.yml>