Ports: Port gn

This requires allowing ports to override fetch() since tar.gz sha256sums
from googlesource.com are not deterministic.
This commit is contained in:
Andrew Kaster 2023-07-09 18:50:31 -06:00 committed by Andrew Kaster
parent 66c0e78c7d
commit b5a728ae5f
3 changed files with 38 additions and 1 deletions

View file

@ -310,7 +310,8 @@ do_download_file() {
fi
}
fetch() {
# FIXME: Don't allow overriding fetch, support multiple protocols instead. See #20004
func_defined fetch || fetch() {
pre_fetch
tried_download_again=0

View file

@ -94,6 +94,7 @@ This list is also available at [ports.serenityos.net](https://ports.serenityos.n
| [`gltron`](gltron/) | GLTron | 0.70 | http://gltron.org |
| [`glu`](glu/) | Mesa GLU | 9.0.2 | https://gitlab.freedesktop.org/mesa/glu |
| [`gmp`](gmp/) | GNU Multiple Precision Arithmetic Library (GMP) | 6.2.1 | https://gmplib.org/ |
| [`gn`](gn/) | GN Meta Build System | 2023.07.12 | https://gn.googlesource.com/gn/ |
| [`gnuapl`](gnuapl/) | GNU APL | 1.8 | https://www.gnu.org/software/apl/ |
| [`gnucobol`](gnucobol/) | GnuCOBOL | 3.1.2 | https://gnucobol.sourceforge.io/ |
| [`gnupg`](gnupg/) | GnuPG | 2.3.0 | https://gnupg.org/software/index.html |

35
Ports/gn/package.sh Executable file
View file

@ -0,0 +1,35 @@
#!/usr/bin/env -S bash ../.port_include.sh
port='gn'
workdir='gn'
version='2023.07.12'
repository='https://gn.googlesource.com/gn'
git_rev='fae280eabe5d31accc53100137459ece19a7a295'
useconfigure='true'
# FIXME: The files and auth_type are lies here. See #20004
files=('git')
auth_type='sha256'
depends=(
'ninja'
'python3'
)
fetch() {
if [ ! -d ${workdir} ]; then
git clone ${repository} ${workdir}
fi
run git checkout ${git_rev}
}
configure() {
run python3 build/gen.py --platform='serenity' --allow-warnings
}
build() {
run ninja -C out
}
install() {
run mkdir -p "${SERENITY_INSTALL_ROOT}/usr/local/bin"
run cp out/gn "${SERENITY_INSTALL_ROOT}/usr/local/bin"
run cp out/gn_unittests "${SERENITY_INSTALL_ROOT}/usr/local/bin"
}