Skip to content

Commit

Permalink
Ports: Port gn
Browse files Browse the repository at this point in the history
This requires allowing ports to override fetch() since tar.gz sha256sums
from googlesource.com are not deterministic.
  • Loading branch information
ADKaster committed Jul 29, 2023
1 parent 66c0e78 commit b5a728a
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 1 deletion.
3 changes: 2 additions & 1 deletion Ports/.port_include.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions Ports/AvailablePorts.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ This list is also available at [ports.serenityos.net](https://ports.serenityos.n
| [`gltron`](gltron/) | GLTron | 0.70 | http:https://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 |
Expand Down
35 changes: 35 additions & 0 deletions Ports/gn/package.sh
Original file line number Diff line number Diff line change
@@ -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"
}

0 comments on commit b5a728a

Please sign in to comment.