Files
2026-06-07 08:39:22 +10:00

185 lines
7.0 KiB
Tcl

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
PortGroup github 1.0
github.setup jgm pandoc 3.10
revision 0
categories textproc haskell
license GPL-3
maintainers {judaew @judaew} openmaintainer
description Conversion between markup formats
long_description Pandoc is a Haskell library for converting from \
one markup format to another, and a command-line \
tool that uses this library. It can read markdown \
and (subsets of) HTML, reStructuredText, LaTeX, \
DocBook, MediaWiki markup, and Textile, and it can \
write markdown, reStructuredText, HTML, LaTeX, \
ConTeXt, Docbook, OpenDocument, ODT, Word docx, \
RTF, MediaWiki, Textile, groff man pages, plain \
text, Emacs Org-Mode, AsciiDoc, EPUB (v2 and v3), \
FictionBook2, and S5, Slidy and Slideous HTML \
slide shows.
homepage https://pandoc.org
installs_libs no
github.tarball_from archive
# Note: When updating, please also update the checksums on legacy versions below
checksums rmd160 96833885be5481a76f054ebfecff62c5da9d9d81 \
sha256 fc82815542c29802d087c25e2c1421146030806b71255ec40fc0e828fe1df877 \
size 8759054
depends_lib-append port:libffi \
port:zlib
depends_run-append port:groff
# https://github.com/jgm/pandoc/blob/main/tools/latex-package-dependencies.lua
# comm -23 <(pandoc lua ${worksrcpath}/tools/latex-package-dependencies.lua | xargs -I{} find ${prefix}/share/texmf-texlive -name {} | sort -u | xargs -I{} find {} -depth 1 -type f | xargs port provides | awk '{print $NF}' | sort -u) <(port echo rdepof:texlive-xetex rdepends:texlive-fonts-recommended | grep texlive | sort -u)
variant texlive \
description {Use TeXLive; see "port notes" for more information.} {
depends_run-append \
port:latexmk \
port:texlive-fonts-recommended \
port:texlive-xetex
}
variant full_latex_dependencies \
requires texlive \
description {Install all LaTeX dependencies.} {
depends_run-append \
port:texlive-bin-extra \
port:texlive-context \
port:texlive-latex-extra \
port:texlive-luatex
}
notes-append "${name} uses LaTeX to create PDFs.
The (minimized) variant +texlive uses MacPorts TeXLive.
For full LaTeX PDF support, please use the variant +full_latex_dependencies."
set minimum_major_version_for_source 20
if {(${os.platform} eq {darwin}
&& ${os.major} >= ${minimum_major_version_for_source})
|| ${os.platform} ne {darwin}} {
if {${os.platform} eq {darwin}} {
compiler.blacklist-append \
*gcc*
}
compiler.blacklist-append \
{clang < 900}
# https://trac.macports.org/ticket/48971
variant stack \
description {Use stack to build.} {}
if { [variant_isset "stack"] } {
PortGroup haskell_stack 1.0
} else {
PortGroup haskell_cabal 1.0
# https://github.com/jgm/pandoc/blob/main/macos/make_macos_release.sh
set cabalopts {-fembed_data_files -fserver -flua}
build.target all
build.post_args-prepend \
{*}${cabalopts}
build.post_args-append \
--allow-newer
destroot.target exe:${subport}
destroot.post_args-prepend \
{*}${cabalopts}
destroot.post_args-append \
--allow-newer
post-destroot {
# https://github.com/jgm/pandoc/blob/main/macos/Makefile
ln -s ${prefix}/bin/${subport} \
${destroot}${prefix}/bin/${subport}-lua
ln -s ${prefix}/bin/${subport} \
${destroot}${prefix}/bin/${subport}-server
xinstall -d ${destroot}${prefix}/share/doc
copy ${worksrcpath}/doc \
${destroot}${prefix}/share/doc/${subport}
system -W ${worksrcpath} \
"${destroot}${prefix}/bin/${subport} -s COPYING.md -Vpagetitle=License -o \"${destroot}${prefix}/share/doc/${subport}/license.html\""
xinstall -m 0644 -W ${worksrcpath} \
AUTHORS.md \
BUGS \
CONTRIBUTING.md \
MANUAL.txt \
README.md \
${destroot}${prefix}/share/doc/${subport}
xinstall -m 0644 \
${worksrcpath}/pandoc-cli/man/pandoc.1 \
${worksrcpath}/pandoc-cli/man/pandoc-lua.1 \
${worksrcpath}/pandoc-cli/man/pandoc-server.1 \
${destroot}${prefix}/share/man/man1
}
}
test.run yes
test.pre_args run
test.args test-${subport}
if {![variant_isset "stack"]} {
test.post_args-prepend \
{*}${cabalopts}
}
test.post_args-append \
{-- '-p markdown'}
} else {
# binary support for older macOS versions
github.tarball_from releases
use_zip yes
distfiles pandoc-${version}-${build_arch}-macOS${extract.suffix}
set worksrcpath ${workpath}/pandoc-${version}-${build_arch}
# set build_arch/os.arch/os.major to get binary arm64/x86_64 checksums
# sudo port -d checksum pandoc os.arch=arm os.major=18 build_arch=arm64
# sudo port -d checksum pandoc os.arch=i386 os.major=18 build_arch=x86_64
# run `sudo port clean --all pandoc` afterwards
switch ${build_arch} {
arm64 {
checksums \
rmd160 766849dd1901712b915ad30d021084626f8d37cc \
sha256 d9cad01d96ae774a0dc8c8c45bb1ad3e4c5ff2cc2e24f45958f5f9b7974aee34 \
size 41511397
}
x86_64 {
checksums \
rmd160 8d9bc12faa086d17a2ec22ebaaded2294751d28e \
sha256 6334f4d9af7c9e37e761dfad56fa5507685f6d29724ebf31c4be6d5c654a3161 \
size 25867412
}
default {
known_fail yes
pre-fetch {
ui_error "${subport} @ ${version} only supported for architectures ${supported_archs}"
return -code error "Unsupported architecture: ${build_arch}"
}
}
}
use_configure no
build {}
destroot {
xinstall -m 0755 ${worksrcpath}/bin/${subport} ${destroot}${prefix}/bin
# https://github.com/jgm/pandoc/blob/main/macos/Makefile
ln -s ${prefix}/bin/${subport} \
${destroot}${prefix}/bin/${subport}-lua
ln -s ${prefix}/bin/${subport} \
${destroot}${prefix}/bin/${subport}-server
xinstall -m 0755 {*}[glob ${worksrcpath}/share/man/man1/*] ${destroot}${prefix}/share/man/man1
}
}