aboutsummaryrefslogtreecommitdiffstats
path: root/community/texmf-dist/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/texmf-dist/APKBUILD')
-rw-r--r--community/texmf-dist/APKBUILD588
1 files changed, 360 insertions, 228 deletions
diff --git a/community/texmf-dist/APKBUILD b/community/texmf-dist/APKBUILD
index 9d9060a973f..f482e23d8fe 100644
--- a/community/texmf-dist/APKBUILD
+++ b/community/texmf-dist/APKBUILD
@@ -1,279 +1,411 @@
# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
pkgname=texmf-dist
-_core=2019.52579
-_bibtexextra=2019.52577
-_fontsextra=2019.52580
-_formatsextra=2019.51280
-_games=2019.52525
-_humanities=2019.52574
-_langchinese=2019.52237
-_langcyrillic=2019.52494
-_langextra=2019.52581
-_langgreek=2019.51628
-_langjapanese=2019.52531
-_langkorean=2019.51035
-_latexextra=2019.52575
-_music=2019.52275
-_pictures=2019.52499
-_pstricks=2019.52550
-_publishers=2019.52538
-_science=2019.52582
-pkgver=$_core
-pkgrel=0
+pkgver=2024.0
+_release=20240312
+pkgrel=3
pkgdesc="TeX Live texmf core distribution"
-url="http://tug.org/texlive/"
-arch="noarch"
+url="https://tug.org/texlive/"
+# texlive
+arch="noarch !s390x !ppc64le !riscv64"
license="LPPL-1.0 LPPL-1.1 LPPL-1.2 LPPL-1.3a LPPL-1.3c GPL-2.0-only"
-makedepends="unzip xz"
+depends="
+ perl-file-homedir
+ perl-unicode-linebreak
+ perl-yaml-tiny
+ "
+# using gawk speeds parsing the tlpdb up, reduces packaging time significantly.
+makedepends="
+ gawk
+ "
subpackages="
- $pkgname-most
- $pkgname-lang
- $pkgname-full
- $pkgname-bibtexextra
- $pkgname-fontsextra
- $pkgname-formatsextra
- $pkgname-games
- $pkgname-humanities
- $pkgname-langchinese
- $pkgname-langcyrillic
- $pkgname-langextra
- $pkgname-langgreek
- $pkgname-langjapanese
- $pkgname-langkorean
- $pkgname-latexextra
- $pkgname-music
- $pkgname-pictures
- $pkgname-pstricks
- $pkgname-publishers
- $pkgname-science
+ texmf-dist-doc
+ texmf-dist-lang:_lang
+ texmf-dist-full:_full
+ texmf-dist-full-doc:_full_doc
+ texmf-dist-most:_most
+ "
+
+_collections="
+ bibtexextra
+ binextra
+ context
+ fontsextra
+ fontsrecommended
+ fontutils
+ formatsextra
+ games
+ humanities
+ langarabic
+ langchinese
+ langcjk
+ langcyrillic
+ langczechslovak
+ langenglish
+ langeuropean
+ langfrench
+ langgerman
+ langgreek
+ langitalian
+ langjapanese
+ langkorean
+ langother
+ langpolish
+ langportuguese
+ langspanish
+ latex
+ latexextra
+ latexrecommended
+ luatex
+ mathscience
+ metapost
+ music
+ pictures
+ plaingeneric
+ pstricks
+ publishers
+ xetex
"
source="
- https://sources.archlinux.org/other/texlive/texlive-core-$_core-src.zip
- https://sources.archlinux.org/other/texlive/texlive-bibtexextra-$_bibtexextra-src.zip
- https://sources.archlinux.org/other/texlive/texlive-fontsextra-$_fontsextra-src.zip
- https://sources.archlinux.org/other/texlive/texlive-formatsextra-$_formatsextra-src.zip
- https://sources.archlinux.org/other/texlive/texlive-games-$_games-src.zip
- https://sources.archlinux.org/other/texlive/texlive-humanities-$_humanities-src.zip
- https://sources.archlinux.org/other/texlive/texlive-langchinese-$_langchinese-src.zip
- https://sources.archlinux.org/other/texlive/texlive-langcyrillic-$_langcyrillic-src.zip
- https://sources.archlinux.org/other/texlive/texlive-langextra-$_langextra-src.zip
- https://sources.archlinux.org/other/texlive/texlive-langgreek-$_langgreek-src.zip
- https://sources.archlinux.org/other/texlive/texlive-langjapanese-$_langjapanese-src.zip
- https://sources.archlinux.org/other/texlive/texlive-langkorean-$_langkorean-src.zip
- https://sources.archlinux.org/other/texlive/texlive-latexextra-$_latexextra-src.zip
- https://sources.archlinux.org/other/texlive/texlive-music-$_music-src.zip
- https://sources.archlinux.org/other/texlive/texlive-pictures-$_pictures-src.zip
- https://sources.archlinux.org/other/texlive/texlive-pstricks-$_pstricks-src.zip
- https://sources.archlinux.org/other/texlive/texlive-publishers-$_publishers-src.zip
- https://sources.archlinux.org/other/texlive/texlive-science-$_science-src.zip
- duplicates.txt
+ https://ftp.tu-chemnitz.de/pub/tug/historic/systems/texlive/${_release:0:4}/texlive-$_release-texmf.tar.xz
+ tlpkg-$pkgver.tar.gz::https://ftp.tu-chemnitz.de/pub/tug/historic/systems/texlive/${_release:0:4}/install-tl-unx.tar.gz
+ texlive-$pkgver.tlpdb::https://git.texlive.info/texlive/plain/Master/tlpkg/texlive.tlpdb?h=tags/texlive-$pkgver
+
+ 0001-texmfcnf.patch
+ 0002-fix-newtt-map.patch
"
-# This is a data only package; no unit tests to run
-options="!check"
+builddir="$srcdir/texlive-$_release-texmf"
-unpack() {
- # Prevent unpacking by overwriting the unpack() function
- return 0
-}
+# One subpackage and doc package per collection. All collections are packed
+# by the _subpkg function, which will based on the subpkgname pack both the
+# srcfiles and runfiles into the subpkg folder, but also copy the docfiles
+# into the -doc subpackage folder. This avoids searching the package twice
+# in the db. The split function for the -doc subpackages will then only
+# compress the man pages.
+for collection in $_collections; do
+ subpackages="$subpackages $pkgname-$collection:_subpkg $pkgname-$collection-doc:_subpkgdoc:noarch"
+done
-build() {
- return 0
-}
+_tlpdb="$srcdir/texlive-$pkgver.tlpdb"
-package() {
- # Packages are packed in .tar.xz archives, which in turn are bundled into a
- # zip. We will unzip each bundle into pkgs-packed and untar all packages of
- # that bundle into pkgs-unpacked. Since some packages are expected to
- # be unpacked into /usr/share and others into /usr/shared/texmf-dist, this
- # will create a mess. We will later copy all folders beginning with texmf
- # into /usr/share, and merge every remaining file into
- # /usr/share/texmf-dist to clean up this mess.
-
- mkdir -p "$pkgdir/usr/share/"
- mkdir -p "$srcdir/pkgs-packed"
- mkdir -p "$srcdir/pkgs-unpacked"
- cd "$srcdir/pkgs-packed"
- unzip "$srcdir/texlive-core-$_core-src.zip" > /dev/null
- cd "$srcdir/pkgs-unpacked"
- find "$srcdir/pkgs-packed" -name '*.tar.xz' -exec tar -xf {} \;
- find . -maxdepth 1 -name 'texmf*' -exec mv {} "$pkgdir/usr/share/" \;
- find . -type d -mindepth 1 -exec mkdir -p "$pkgdir/usr/share/texmf-dist/"{} \;
- find . -type f -exec mv {} "$pkgdir/usr/share/texmf-dist/"{} \;
-
- # Remove files already provided by texlive* packages
- cd "$pkgdir/usr/share/texmf-dist"
- while IFS= read -r file; do
- rm -f $file
- done < "$srcdir/duplicates.txt"
-
- rm -rf "$srcdir/pkgs-packed" "$srcdir/pkgs-unpacked"
-}
+_tlpdb_get_values() {
+ local pkg
+ local key
+ pkg="$1"
+ key="$2"
-pack_subpkg() {
- local our_pkgver="$1"
-
- # See comment in package(), same applies here
- mkdir -p "$subpkgdir/usr/share/"
- mkdir -p "$srcdir/pkgs-packed"
- mkdir -p "$srcdir/pkgs-unpacked"
- cd "$srcdir/pkgs-packed"
- unzip "$srcdir/texlive-${subpkgname#texmf-dist-}-$our_pkgver-src.zip" > /dev/null
- cd "$srcdir/pkgs-unpacked"
- find "$srcdir/pkgs-packed" -name '*.tar.xz' -exec tar -xf {} \;
- find . -maxdepth 1 -name 'texmf*' -exec mv {} "$subpkgdir/usr/share/" \;
- find . -type d -mindepth 1 -exec mkdir -p "$subpkgdir/usr/share/texmf-dist/"{} \;
- find . -type f -exec mv {} "$subpkgdir/usr/share/texmf-dist/"{} \;
-
- # Remove files already provided by texlive* packages
- cd "$subpkgdir/usr/share/texmf-dist"
- while IFS= read -r file; do
- rm -f $file
- done < "$srcdir/duplicates.txt"
-
- rm -rf "$srcdir/pkgs-packed" "$srcdir/pkgs-unpacked"
+ awk \
+ "/^name $pkg\$/,/^$/{if(/^$key /) print substr(\$0, length(\"$key\") + 2)}" \
+ "$_tlpdb"
}
-most() {
- pkgdesc="TeX Live texmf distribution including most packages"
- depends="
- $pkgname
- $pkgname-bibtexextra
- $pkgname-fontsextra
- $pkgname-formatsextra
- $pkgname-games
- $pkgname-humanities
- $pkgname-latexextra
- $pkgname-music
- $pkgname-pictures
- $pkgname-pstricks
- $pkgname-publishers
- $pkgname-science
- "
- mkdir -p "$subpkgdir"
-}
+_tlpdb_write_pkgsnip() {
+ local pkg
+ pkg="$1"
+ local snip
+ snip="$2"
-lang() {
- pkgdesc="TeX Live texmf distribution: Additional languages"
- depends="
- $pkgname
- $pkgname-langchinese
- $pkgname-langcyrillic
- $pkgname-langextra
- $pkgname-langgreek
- $pkgname-langjapanese
- $pkgname-langkorean
- "
- mkdir -p "$subpkgdir"
+ awk \
+ "/^name $pkg\$/,/^\$/{print \$0}" \
+ "$_tlpdb" > "$snip"
}
-full() {
- pkgdesc="Full TeX Live texmf distribution"
- depends="$pkgname-most $pkgname-lang"
- mkdir -p "$subpkgdir"
-}
+_tlpdb_get_xfiles() {
+ local pkg
+ local type
+ snip="$1"
+ type="$2"
-bibtexextra() {
- pkgdesc="TeX Live texmf distribution: Additional BibTeX styles and bibliography DBs"
- pack_subpkg "$_bibtexextra"
+ awk \
+ '/^'"$type"'files size=[0-9]*$/ {flag=1; next} flag && /^ texmf-dist/ {print $1; next} flag && !/^ / {exit}' \
+ "$snip"
}
-fontsextra() {
- pkgdesc="TeX Live texmf distribution: Additional fonts"
- pack_subpkg "$_fontsextra"
+_tlpdb_get_docfiles() {
+ _tlpdb_get_xfiles "$1" doc
}
-formatsextra() {
- pkgdesc="TeX Live texmf distribution: Additional TeX formats"
- pack_subpkg "$_formatsextra"
+_tlpdb_get_datafiles() {
+ _tlpdb_get_xfiles "$1" run
+ _tlpdb_get_xfiles "$1" src
}
-games() {
- pkgdesc="TeX Live texmf distribution: Typesetting board games including chess"
- pack_subpkg "$_games"
+_tlpdb_get_collections() {
+ awk \
+ '/^name collection-([a-z0-9_-]+)$/{print substr($0, 17)}' \
+ "$_tlpdb"
}
-humanities() {
- pkgdesc="TeX Live texmf distribution: Packages for humanities, law, linguistics, ..."
- pack_subpkg "$_humanities"
-}
+_pack_collection() {
+ local collection
+ local datadir
+ local deps
+ local pkgsnip
+ pkgsnip="$(mktemp)"
+ collection="$1"
+ datadir="$2"
+ docdir="$3"
+ deps="$(_tlpdb_get_values "collection-$collection" "depend")"
-langchinese() {
- pkgdesc="TeX Live texmf distribution: Support for Chinese"
- pack_subpkg "$_langchinese"
-}
+ for dep in $deps; do
+ case "$dep" in
+ collection-basic)
+ # All subpackages already depend on texmf-dist
+ ;;
+ collection-*)
+ local actualdep
+ actualdep="texmf-dist-${dep#collection-}"
+ msg "Injecting dependency to $actualdep"
+ depends="$depends $actualdep"
+ ;;
+ *)
+ msg "Adding $dep"
+ # writing part of DB for current package into temporary file, so
+ # that when parsing metadata from it we do not need to search the
+ # whole DB again.
+ _tlpdb_write_pkgsnip "$dep" "$pkgsnip"
+ local paths
+ paths="$(_tlpdb_get_datafiles "$pkgsnip")"
+ for path in $paths; do
+ mkdir -p "$datadir/usr/share/$(dirname "$path")"
+ cp "$builddir/$path" "$datadir/usr/share/$path"
+ done
+ paths="$(_tlpdb_get_docfiles "$pkgsnip")"
+ for path in $paths; do
+ case "$path" in
+ texmf-dist/doc/man/*.pdf)
+ # all man pages are provided twice, one as PDF and once
+ # as troff. Since they are identical content-wise, we only
+ # pack the smaller troff file
+ ;;
+ texmf-dist/doc/man/*.1)
+ mkdir -p "$docdir/usr/share/man/man1"
+ cp "$builddir/$path" "$docdir/usr/share/man/man1/"
+ ;;
+ texmf-dist/doc/man/*.5)
+ mkdir -p "$docdir/usr/share/man/man5"
+ cp "$builddir/$path" "$docdir/usr/share/man/man5/"
+ ;;
+ *)
+ mkdir -p "$docdir/usr/share/$(dirname "$path")"
+ cp "$builddir/$path" "$docdir/usr/share/$path"
+ ;;
+ esac
+ done
+ ;;
+ esac
+ done
-langcyrillic() {
- pkgdesc="TeX Live texmf distribution: Support for Cyrillic languages"
- pack_subpkg "$_langcyrillic"
+ rm -f "$pkgsnip"
}
-langextra() {
- pkgdesc="TeX Live texmf distribution: Additional languages"
- pack_subpkg "$_langextra"
+prepare() {
+ default_prepare
+
+ # Don't install a pre-compiled binaries. The source code is distributed
+ # along the pre-compiled binaries for those who need them. There are few
+ # offenders with niche use cases, such as bible typesetting.
+ local bin_files
+ bin_files="
+ texmf-dist/doc/luatex/opbible/txs-gen/mod2tex
+ "
+
+ for bin_file in $bin_files; do
+ local escaped_path
+ escaped_path="${bin_file//\//\\/}"
+ sed -e "/^ $escaped_path\$/d" \
+ -i "$_tlpdb"
+ done
+
+ # Script files with a shebang should be executable. Fix this, where
+ # needed.
+ # shellcheck disable=SC3045 # Not caring about dash compatibility here
+ find . \
+ -type f \
+ \( -name '*.sh' -o -name '*.py' -o -name '*.lua' -o -name '*.perl' \) \
+ -print0 \
+ | while IFS= read -r -d '' scriptfile; do
+
+ if head -n 1 "$scriptfile" | grep -Eq '^#!/(|usr/)bin'; then
+ chmod +x "$scriptfile"
+ fi
+ done
}
-langgreek() {
- pkgdesc="TeX Live texmf distribution: Support for Greek"
- pack_subpkg "$_langgreek"
+build() {
+ # We don't really "build" things here
+ return 0
}
-langjapanese() {
- pkgdesc="TeX Live texmf distribution: Support for Japanese"
- pack_subpkg "$_langjapanese"
+check() {
+ # there are no unit tests, but we check if the subpackages do still
+ # match the list of collections in the tlpdb
+ local collections
+ collections="$(_tlpdb_get_collections)"
+
+ for collection in $collections; do
+ case "$collection" in
+ basic)
+ # no subpackage for basic, the basic collection goes into the root
+ # package instead
+ ;;
+ texworks)
+ # windows-only package
+ ;;
+ wintools)
+ # windows-only package
+ ;;
+ *)
+ case "$subpackages" in
+ *"texmf-dist-$collection"*)
+ # collection in subpackages, everything fine
+ ;;
+ *)
+ echo "subpackage \"texmf-dist-$collection\" missing"
+ return 1
+ esac
+ ;;
+ esac
+ done
}
-langkorean() {
- pkgdesc="TeX Live texmf distribution: Support for Korean"
- pack_subpkg "$_langkorean"
+package() {
+ _pack_collection "basic" "$pkgdir" "${pkgdir%/}-doc"
+
+ # install tlpkg parts needed for texconfig
+ mkdir -p "$pkgdir"/usr/share/tlpkg
+ cp -r "$srcdir/install-tl-$_release/tlpkg/TeXLive" \
+ "$pkgdir"/usr/share/tlpkg/
+
+ # Remove man pages already provided by texlive-doc.
+ local duplicates="
+ man1/afm2tfm.1
+ man1/bibtex.1
+ man1/dviluatex.1
+ man1/dvipdfm.1
+ man1/dvipdfmx.1
+ man1/dvipdft.1
+ man1/dvips.1
+ man1/ebb.1
+ man1/extractbb.1
+ man1/fmtutil-sys.1
+ man1/fmtutil.1
+ man1/gftodvi.1
+ man1/gftopk.1
+ man1/gftype.1
+ man1/inimf.1
+ man1/initex.1
+ man1/kpseaccess.1
+ man1/kpsereadlink.1
+ man1/kpsestat.1
+ man1/kpsewhich.1
+ man1/luahbtex.1
+ man1/luatex.1
+ man1/makeindex.1
+ man1/mf-nowin.1
+ man1/mf.1
+ man1/mft.1
+ man1/mkindex.1
+ man1/mktexfmt.1
+ man1/mktexlsr.1
+ man1/mktexmf.1
+ man1/mktexpk.1
+ man1/mktextfm.1
+ man1/pdfetex.1
+ man1/pdftex.1
+ man1/pktogf.1
+ man1/pktype.1
+ man1/tex.1
+ man1/texhash.1
+ man1/texlua.1
+ man1/texluac.1
+ man1/updmap-sys.1
+ man1/updmap.1
+ man1/xdvi.1
+ man1/xdvipdfmx.1
+ man5/fmtutil.cnf.5
+ man5/updmap.cfg.5
+ "
+
+ for duplicate in $duplicates; do
+ rm "${pkgdir%/}-doc/usr/share/man/$duplicate"
+ done
}
-latexextra() {
- pkgdesc="TeX Live texmf distribution: Add-onpackages for LaTeX"
- pack_subpkg "$_latexextra"
+_subpkg() {
+ local collection
+ collection="${subpkgname#texmf-dist-}"
+ pkgdesc="texmf-dist: $(_tlpdb_get_values "collection-$collection" shortdesc)"
+ depends="texmf-dist"
+ _pack_collection "$collection" "$subpkgdir" "${subpkgdir%/}-doc"
}
-music() {
- pkgdesc="TeX Live texmf distribution: Music typesetting packages"
- pack_subpkg "$_music"
+_subpkgdoc() {
+ # We cannot use default_doc, as this does not work for subpackges
+
+ install_if="docs ${subpkgname%-doc}=$pkgver-r$pkgrel"
+
+ # compress man pages, if the doc packages contains some
+ if [ -d "$subpkgdir"/usr/share/man ]; then
+ find "$subpkgdir"/usr/share/man -type f ! -name "*.gz" \
+ -exec gzip -9 {} \;
+ fi
}
-pictures() {
- pkgdesc="TeX Live texmf distribution: Packages for drawing graphics"
- pack_subpkg "$_pictures"
+_most() {
+ pkgdesc="TeX Live texmf distribution including most packages"
+ # everything but texmf-dist-lang* and texmf-dist-fontsextra
+ depends="$pkgname"
+
+ for collection in $_collections; do
+ case "$collection" in
+ lang*)
+ ;;
+ basic)
+ ;;
+ fontsextra)
+ ;;
+ *)
+ depends="$depends texmf-dist-$collection"
+ ;;
+ esac
+ done
+ mkdir -p "$subpkgdir"
}
-pstricks() {
- pkgdesc="TeX Live texmf distribution: Additional PSTricks packages"
- pack_subpkg "$_pstricks"
+_lang() {
+ pkgdesc="TeX Live texmf distribution: Additional languages"
+ depends="$pkgname"
+
+ for collection in $_collections; do
+ case "$collection" in
+ lang*)
+ depends="$depends texmf-dist-$collection"
+ ;;
+ esac
+ done
+ mkdir -p "$subpkgdir"
}
-publishers() {
- pkgdesc="TeX Live texmf distribution: LaTeX packages for specific publishers"
- pack_subpkg "$_publishers"
+_full() {
+ pkgdesc="Full TeX Live texmf distribution"
+ depends="$pkgname-most $pkgname-lang $pkgname-fontsextra"
+ mkdir -p "$subpkgdir"
}
-science() {
- pkgdesc="TeX Live texmf distribution: Typesetting for math and sciences"
- pack_subpkg "$_science"
+_full_doc() {
+ pkgdesc="Full documentation for the TeX Live texmf distribution"
+ depends="$pkgname-doc"
+ for collection in $_collections; do
+ depends="$depends $pkgname-$collection-doc"
+ done
+ mkdir -p "$subpkgdir"
}
-sha512sums="ab2353f8bf402315a7649863f9a1c032eb45df778df842345c3aaa30f5aa64a131fc07161d705e7b126fc4d74165e9d4aef5a73237dce0f7306835640cb6ee98 texlive-core-2019.52579-src.zip
-75d2b85586584b9c88d16815855bd731afb8131e6659cd96da47ce9b509ba2f3406fb9863d9666f06654e1a65a7c5f42024fcee6b394f3043fb5e14384e3ce9a texlive-bibtexextra-2019.52577-src.zip
-f6e2f598b9a55acbdd3b11dfcc1aa26c2f4b14f9610ff957b365f705a6c8072f7c589e5f74054c6c881b42b243a13e19044ecbec042079ac8c4ecb21155c953b texlive-fontsextra-2019.52580-src.zip
-2a4e6c923e247557397dcdd78f8b8fee67cc140abe6d7451fc130595135b3d9a58d12ae7193501f0e9eeb030c66cb6906be0c3b22df1bdb84b24d535b224889a texlive-formatsextra-2019.51280-src.zip
-1cf6892052c8d86526ca460f8db3b04c5db8f0b2b4f1832843c986e755480bb84919a42c419d1eaf6379e241c2adf20d6629c6c9b9f8cf710b607cb35f5ce720 texlive-games-2019.52525-src.zip
-4dc731c9fd9a79c0fe002ab010f878672aa3a8d81b0810162295567b72b16035240b08076efadd1bb2722eee4ca209d4ee1f35989127b54ceccf787d0c7e6de4 texlive-humanities-2019.52574-src.zip
-acd90f28fc5969b03ef27e64d76c1e76dc30f6c233b3fdaf648dc9baf00149ea04743326285a0abf9cada62f8a5acb5c77d019ded9b32acdf76f0383e784192d texlive-langchinese-2019.52237-src.zip
-7bce150d2808564db1a4d6f22cfdfac98ae02b15984862736be2ef6c17a5eebc5ac4ac2194ff5c48826a5834ebcce8909ad507a8a7b563d66ebb8736e06498d2 texlive-langcyrillic-2019.52494-src.zip
-f5da2de90da544f7bb19db9843ef96dc8dac6730c62bb624f317dbcfa83ba6eb51b5947876a8177a2c36407c10c475f5bc9b0505bbc29de3d893e3a8467f20ab texlive-langextra-2019.52581-src.zip
-79dddb264ea110e0b3101b54d2c035540dbb70911bcb6257cb309a1a7ca48765995588d66e520581cd9d735f937f316adccee9c1a61544b7f5d41018c70cd845 texlive-langgreek-2019.51628-src.zip
-8032d4ed893cba2bce3e56aa1ef055bbe9a49dab8e1c3ed29f0ec29c3163c7507e2a491fd5b842c2f897d977cef37291f1f0c0010aac8e4f1d9fdceee8091954 texlive-langjapanese-2019.52531-src.zip
-f20497ab05e6a54a52f5536ff944641fafb9809ba34197a8d243a50d14d7ab7925b90b95dc8d404e1b4e4cdcce258876a1e7a84cd53aa4120cd0e2a823d75a6d texlive-langkorean-2019.51035-src.zip
-bc1fdb4925f224eb035f1169b9ebde3fbbfd872e354292dbacc84382787b620544bd554fffd806a1038e2da995730c103ccdabccbe68492d4a1b9a61e1cb6563 texlive-latexextra-2019.52575-src.zip
-757e20c55d35aed68b602734003aca0809dece31ffee849cb4357376658221caa58cad349bc1d1f3058e5b695a8ae68c54004c9de1e28b949c7a55bbfaa81c67 texlive-music-2019.52275-src.zip
-408ff52d219a34664ed48898b2cca7f525e87b478ba9e3e1cdc1ca98830de55c601ae148004c07bb189bb4f297c5badabe69a5c928dd9084c64268c903711584 texlive-pictures-2019.52499-src.zip
-d92dcd2b0c9c4b46f5a7b0d855516c5f22ce30445e949c363e489e4063443f3dcfdc7a866c606d03447139587237b54a1330bad5c05b6fde96726d4945fb31ca texlive-pstricks-2019.52550-src.zip
-b2847b287acb6c4d7aa9c5234541013a771ca54a2c6c1dbd2605296711c82349a704d1e85d53cadae8cb3c817c8b603e903c54fc60d85be3fb5cbd0139e3fe04 texlive-publishers-2019.52538-src.zip
-0f7abf3b2886d0022822ad7910568aa1dfade427a0ed9f6c1da819a6fdf4ff31f040413d6851ae63f1877a87d44f772e48744adb0f3094adbf41fb08805a87dc texlive-science-2019.52582-src.zip
-05f2a8fa6326a9d82c3ab975a6d75c482900be9abcfc810654218b5bd795de0dd0011905203f7b7c5f0ca2bbefa02298e0183cded4eaa17cb0dc7bf03ce40cac duplicates.txt"
+sha512sums="
+32d65b59e8ee334c301e1d918d7e3c8fa7c9be1d0a367331a76c658082200cd95f7318ce857c192f08bd9c1fcc1b31d4350f4ae0b59ec493565711fb06148830 texlive-20240312-texmf.tar.xz
+d86fcf4a4d6a42d8236aded827175d764835f54fa5eefcb74641b35e53fdbc439fdbf7ada3a1baa88c62c2a7b9d683099aecbb77ef694bf9df5fccca7d1277d6 tlpkg-2024.0.tar.gz
+2b419f95abeb6a061aa4c8f4a3b480611fbd1ca5e0acf7e9176e53c64c3a6709df1a3771c7e898b4e24ddccfaa0e98e3455c442e28477a5028a74f6fd8d536c9 texlive-2024.0.tlpdb
+f4a071332067c5fd598110106614a5b3d4a11708d86c5483822961b05a663e39498f99223e389f5dbb57b5eb4295730b65d022e479703499c970adc6272d3a68 0001-texmfcnf.patch
+1599bbe462196b21ae6ffbdb0bb971ba69011126fa5f882f0c6795715f7cde1b394a7eebe442047fa8ef4387f357cd0ebb34684c1661a0cb76b9352620f5891e 0002-fix-newtt-map.patch
+"