libfossil: new recipe. (#12106)

This commit is contained in:
OscarL
2025-04-06 13:33:50 +00:00
committed by GitHub
parent 41dc7a4992
commit 4678902089

View File

@@ -0,0 +1,155 @@
SUMMARY="Unofficial Fossil SCM Library API"
DESCRIPTION="libfossil is an in-development C99 compliant librayry API for the Fossil SCM.
The primary goal of this project (which is not part of the main Fossil SCM project but is \
architected by a long-time Fossil contributor) is to port existing behavior into a library \
form (the fossil app is extremely monolithic in nature). This effort intends to provide an \
alternative interface into fossil repositories, as opposed to a replacement for the core fossil \
application.
It does not aim to provide 100% feature-parity with the main app. It's instead intended to \
support the creation of new ways to access and manipulate fossil repositories.
The library has reached feature parity with Fossil's core-most SCM features, and can already \
be used to create a wide range of custom mini-applications, e.g. custom reporting apps or custom \
timeline apps are trivial to create using the \"fcli\" API: see the \"f-apps\" (from the
\`libfossil_tools\` package) for numerous examples."
HOMEPAGE="https://fossil.wanderinghorse.net/r/libfossil"
COPYRIGHT="2013-2021 Stephan Beal, the Libfossil authors and contributors."
LICENSE="BSD (2-clause)"
REVISION="1"
fossilHash="8ba26d0b75cd73ac"
SOURCE_URI="https://fossil.wanderinghorse.net/r/libfossil/tarball/$fossilHash/libfossil-$portVersion-$fossilHash.tar.gz"
CHECKSUM_SHA256="4c765bf6c90f71fcea16a676f309a893f907ee9f9ec7b87585dc18194d8fe29b"
SOURCE_DIR="$portName-$portVersion-$fossilHash"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
libfossil$secondaryArchSuffix = $portVersion
lib:libfossil$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
libfossil${secondaryArchSuffix}_devel = $portVersion
devel:libfossil$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
libfossil$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libncursesw$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:gcc$secondaryArchSuffix
cmd:make
cmd:tclsh
"
SUMMARY_fnc="Interactive text-based user interface for Fossil"
DESCRIPTION_fnc="This package provides the \`fnc\` command (an ncurses-based front-end to browsing \
fossil repositories) as included in libfossil's sources (should be functionally equivalent).
You would tipically use \`/bin/fnc\` as provided by either this package, or the \
\"standalone/upstream\" version provided by the \`fnc\` package (but not both)."
PROVIDES_fnc="
libfossil_fnc$secondaryArchSuffix = $portVersion
cmd:fnc
"
REQUIRES_fnc="
haiku$secondaryArchSuffix
libfossil$secondaryArchSuffix == $portVersion base
lib:libncursesw$secondaryArchSuffix
lib:libpanelw$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
CONFLICTS_fnc="
fnc$secondaryArchSuffix # the upstream/standalone version of /bin/fnc
"
SUMMARY_tools="$SUMMARY (cli tools)"
PROVIDES_tools="
libfossil_tools$secondaryArchSuffix = $portVersion
cmd:f_acat
cmd:f_add
cmd:f_adiff
cmd:f_annotate
cmd:f_aparse
cmd:f_ci
cmd:f_ciwoco
cmd:f_co
cmd:f_config
cmd:f_delta
cmd:f_extract
cmd:f_ls
cmd:f_merge
cmd:f_new
cmd:f_open
cmd:f_parseparty
cmd:f_query
cmd:f_rebuild
cmd:f_rename
cmd:f_repostat
cmd:f_resolve
cmd:f_revert
cmd:f_rm
cmd:f_status
cmd:f_tag
cmd:f_timeline
cmd:f_update
cmd:f_vdiff
cmd:f_wiki
cmd:f_zip
"
REQUIRES_tools="
haiku$secondaryArchSuffix
libfossil$secondaryArchSuffix == $portVersion base
lib:libncursesw$secondaryArchSuffix
lib:libpanelw$secondaryArchSuffix
"
BUILD()
{
./configure \
--prefix=$prefix \
--no-debug \
--disable-static
make $jobArgs
}
INSTALL()
{
make install
prepareInstalledDevelLib libfossil
# no pkg-config files
#fixPkgconfig
# --mandir set in ./configure is not being used (or not working properly), it seems.
mkdir -p $manDir/man1
mv $prefix/share/man/man1/fnc.1 $manDir/man1
rm -rf $prefix/share
packageEntries fnc \
$prefix/bin/fnc \
$manDir
packageEntries tools \
$prefix/bin
install -Dvm644 include/*.h -t $developDir/headers
install -Dvm644 include/fossil-scm/*.h -t $developDir/headers/fossil-scm/
packageEntries devel \
$developDir
}