# fuentesexternas: de donde salen y como se compilan, desde sus fuentes
# originales, las dependencias externas de nuestros proyectos (etapa 2,
# 07/10/2026). Lo usa bajar-paquetes --para fuentes --instalar: lo que pide
# el BUILDDEPENDS de un proyecto, si no es nuestro y no esta instalado, se
# baja de aca, se comprueba su sha256, se compila y se instala en --prefijo.
#
# Los datos (version, direccion, opciones) salen de Linux From Scratch y
# Beyond Linux From Scratch (https://www.linuxfromscratch.org, LFS y BLFS
# estables), que no estan atados a ninguna distribucion; la sha256 se
# calculo despues de comprobar el md5 que da LFS/BLFS (ncurses: la firma GPG
# de su autor, porque la version de LFS ya no esta).
#
# Una entrada por paquete, con el nombre de Debian (el que va en
# BUILDDEPENDS):
#   [NOMBRE]
#   proyecto:   nombre del proyecto original
#   version:    version
#   url:        el tar de las fuentes
#   sha256:     su suma
#   comprobar:  orden que dice si ya esta (pkg-config --exists X, command -v X)
#   configure:  opciones de ./configure (ademas de --prefix=$PREFIX)
#   construir:  si no es configure + make: la orden entera (con $PREFIX)
#   instalar:   si no es make install
#   depende:    otras entradas que hacen falta antes
#   base:       si   -> no se compila: tiene que estar (compilador, make...)
#   origen:     de donde salieron los datos

# ---- de base: no se compilan, solo se comprueba que esten
[gcc]
comprobar: command -v gcc
base: si
[g++]
comprobar: command -v g++
base: si
[make]
comprobar: command -v make
base: si
[perl]
comprobar: command -v perl
base: si
[python3]
comprobar: command -v python3
base: si
[gzip]
comprobar: command -v gzip
base: si
[sed]
comprobar: command -v sed
base: si
[grep]
comprobar: command -v grep
base: si
[rsync]
comprobar: command -v rsync
base: si
[gfortran]
comprobar: command -v gfortran
base: si

# ---- autotools (para autoreconf de las fuentes de nuestros proyectos)
[m4]
proyecto: m4
version: 1.4.20
url: https://ftp.gnu.org/gnu/m4/m4-1.4.20.tar.xz
sha256: e236ea3a1ccf5f6c270b1c4bb60726f371fa49459a8eaaebc90b216b328daf2b
comprobar: command -v m4
origen: LFS stable
[autoconf]
proyecto: autoconf
version: 2.72
url: https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz
sha256: ba885c1319578d6c94d46e9b0dceb4014caafe2490e437a0dbca3f270a223f5a
comprobar: command -v autoconf
depende: m4
origen: LFS stable
[automake]
proyecto: automake
version: 1.18.1
url: https://ftp.gnu.org/gnu/automake/automake-1.18.1.tar.xz
sha256: 168aa363278351b89af56684448f525a5bce5079d0b6842bd910fdd3f1646887
comprobar: command -v automake
depende: autoconf
origen: LFS stable
[libtool]
proyecto: libtool
version: 2.5.4
url: https://ftp.gnu.org/gnu/libtool/libtool-2.5.4.tar.xz
sha256: f81f5860666b0bc7d84baddefa60d1cb9fa6fceb2398cc3baca6afaa60266675
comprobar: command -v libtoolize
depende: m4
origen: LFS stable
[pkg-config]
proyecto: pkgconf
version: 2.5.1
url: https://distfiles.ariadne.space/pkgconf/pkgconf-2.5.1.tar.xz
sha256: cd05c9589b9f86ecf044c10a2269822bc9eb001eced2582cfffd658b0a50c243
comprobar: command -v pkg-config
configure: --disable-static
instalar: make install && ln -sf pkgconf "$PREFIX/bin/pkg-config"
origen: LFS stable
[bison]
proyecto: bison
version: 3.8.2
url: https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz
sha256: 9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2
comprobar: command -v bison
depende: m4
origen: LFS stable

# ---- bibliotecas
[libncurses-dev]
proyecto: ncurses
version: 6.5
url: https://ftp.gnu.org/gnu/ncurses/ncurses-6.5.tar.gz
sha256: 136d91bc269a9a5785e5f9e980bc76ab57428f604ce3e5a5a90cebc767971cc6
comprobar: pkg-config --exists ncursesw
configure: --with-shared --without-debug --without-normal --with-cxx-shared --enable-pc-files --with-pkg-config-libdir="$PREFIX/lib/pkgconfig" --enable-widec --without-ada
instalar: make install && for l in ncurses form panel menu; do ln -sf lib${l}w.so "$PREFIX/lib/lib$l.so"; ln -sf ${l}w.pc "$PREFIX/lib/pkgconfig/$l.pc"; done
depende: pkg-config
origen: LFS stable (version publicada de GNU, firma de T. Dickey)
[libreadline-dev]
proyecto: readline
version: 8.3
url: https://ftp.gnu.org/gnu/readline/readline-8.3.tar.gz
sha256: fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc
comprobar: pkg-config --exists readline
configure: --disable-static --with-curses
construir: ./configure --prefix="$PREFIX" --disable-static --with-curses && make SHLIB_LIBS="-lncursesw"
instalar: make SHLIB_LIBS="-lncursesw" install
depende: libncurses-dev
origen: LFS stable
[libpcre2-dev]
proyecto: pcre2
version: 10.45
url: https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.45/pcre2-10.45.tar.bz2
sha256: 21547f3516120c75597e5b30a992e27a592a31950b5140e7b8bfde3f192033c4
comprobar: pkg-config --exists libpcre2-8
configure: --enable-unicode --enable-jit --enable-pcre2-16 --enable-pcre2-32 --disable-static
origen: BLFS stable

# ---- lo que necesita calcula (07/10/2026)
[cmake]
proyecto: cmake
version: 4.1.0
url: https://cmake.org/files/v4.1/cmake-4.1.0.tar.gz
sha256: 81ee8170028865581a8e10eaf055afb620fa4baa0beb6387241241a975033508
comprobar: command -v cmake
construir: ./bootstrap --prefix="$PREFIX" --parallel="$(nproc)" -- -DCMAKE_USE_OPENSSL=OFF && make -j"$(nproc)"
origen: BLFS stable (md5 comprobado); con las bibliotecas que trae cmake, sin OpenSSL
[libgsl-dev]
proyecto: gsl
version: 2.8
url: https://ftp.gnu.org/gnu/gsl/gsl-2.8.tar.gz
sha256: 6a99eeed15632c6354895b1dd542ed5a855c0f15d9ad1326c6fe2b2c9e423190
comprobar: pkg-config --exists gsl
configure: --disable-static
origen: BLFS stable (md5 comprobado)
[libopenblas-dev]
proyecto: OpenBLAS
version: 0.3.34
url: https://github.com/OpenMathLib/OpenBLAS/releases/download/v0.3.34/OpenBLAS-0.3.34.tar.gz
sha256: cd7e129868320cc2d033afa920e31202dfe0b8066a5b66661900ccc0f197dfed
comprobar: pkg-config --exists openblas
construir: make -j"$(nproc)" NO_STATIC=1
instalar: make NO_STATIC=1 PREFIX="$PREFIX" install
depende: gfortran
origen: el proyecto (GitHub; sha256 publicada en la version, comprobada); no esta en BLFS
[libsuitesparse-dev]
proyecto: SuiteSparse (KLU y Mongoose, con lo que necesitan)
version: 7.14.1
url: https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/refs/tags/v7.14.1.tar.gz
sha256: 81e560e1f74546df139edb765b3f5bc865866da23062312ffe8fd821063c8397
comprobar: pkg-config --exists KLU SuiteSparse_Mongoose
construir: cmake -S . -B construir -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release -DSUITESPARSE_ENABLE_PROJECTS="suitesparse_config;amd;btf;camd;colamd;ccolamd;klu;mongoose" -DKLU_USE_CHOLMOD=OFF -DBLA_VENDOR=OpenBLAS -DSUITESPARSE_DEMOS=OFF -DBUILD_TESTING=OFF && cmake --build construir -j"$(nproc)"
instalar: cmake --install construir
depende: cmake libopenblas-dev
origen: el proyecto (etiqueta de GitHub; no publica suma: la sha256 se calculo al bajarla, 07/10/2026); no esta en BLFS
