From 9adcd20c22410ceed45532ef49dc882726f480ea Mon Sep 17 00:00:00 2001 From: Davi De Castro Reis Date: Mon, 28 Apr 2025 13:01:01 -0300 Subject: [PATCH 1/8] Add Envoy proxy package --- projects/envoyproxy.io/package.yml | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 projects/envoyproxy.io/package.yml diff --git a/projects/envoyproxy.io/package.yml b/projects/envoyproxy.io/package.yml new file mode 100644 index 0000000000..617fed61fc --- /dev/null +++ b/projects/envoyproxy.io/package.yml @@ -0,0 +1,35 @@ +distributable: + url: https://github.com/envoyproxy/envoy/archive/refs/tags/v{{version}}.tar.gz + strip-components: 1 +versions: + github: envoyproxy/envoy +build: + dependencies: + github.com/bazelbuild/bazelisk: '*' + gnu.org/automake: '*' + cmake.org: '*' + gnu.org/libtool: '*' + ninja-build.org: '*' + llvm.org: '*' + python.org: '*' + script: + - | + bazel build \ + --compilation_mode=opt \ + --curses=no \ + --verbose_failures \ + --define=wasm=disabled \ + //source/exe:envoy-static.stripped + - install -m 755 -D bazel-bin/source/exe/envoy-static.stripped {{prefix}}/bin/envoy + env: + linux: + CC: clang + CXX: clang++ + BAZEL_LINKOPTS: "-lm" + BAZEL_LINKLIBS: "-lstdc++ -lm" +provides: + - bin/envoy +test: + script: + - envoy --version | grep {{version}} + - envoy --help \ No newline at end of file From f5b01d37166410ce9ff4020959776325e38acd3b Mon Sep 17 00:00:00 2001 From: Davi De Castro Reis Date: Mon, 28 Apr 2025 13:08:25 -0300 Subject: [PATCH 2/8] Fix Envoy build by initializing Git repository --- projects/envoyproxy.io/package.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/projects/envoyproxy.io/package.yml b/projects/envoyproxy.io/package.yml index 617fed61fc..0c7202d40c 100644 --- a/projects/envoyproxy.io/package.yml +++ b/projects/envoyproxy.io/package.yml @@ -12,8 +12,16 @@ build: ninja-build.org: '*' llvm.org: '*' python.org: '*' + git-scm.org: '*' script: - | + # Initialize Git repo as Bazel requires git for workspace status + git init + git config --global user.email "pkgx-build@example.com" + git config --global user.name "pkgx build" + git add . + git commit -m "Initialize repository" + bazel build \ --compilation_mode=opt \ --curses=no \ From db66bae192bfbc0ca12da279842a30f2f8c2640a Mon Sep 17 00:00:00 2001 From: Jacob Heider Date: Mon, 28 Apr 2025 14:07:26 -0400 Subject: [PATCH 3/8] clean up; use gcc for linux --- projects/envoyproxy.io/package.yml | 43 +++++++++++++++--------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/projects/envoyproxy.io/package.yml b/projects/envoyproxy.io/package.yml index 0c7202d40c..01afcc8967 100644 --- a/projects/envoyproxy.io/package.yml +++ b/projects/envoyproxy.io/package.yml @@ -1,8 +1,10 @@ distributable: - url: https://github.com/envoyproxy/envoy/archive/refs/tags/v{{version}}.tar.gz + url: https://github.com/envoyproxy/envoy/archive/refs/tags/{{version.tag}}.tar.gz strip-components: 1 + versions: github: envoyproxy/envoy + build: dependencies: github.com/bazelbuild/bazelisk: '*' @@ -10,34 +12,33 @@ build: cmake.org: '*' gnu.org/libtool: '*' ninja-build.org: '*' - llvm.org: '*' + linux: + gnu.org/gcc: '*' # doesn't like clang; missing `version` header python.org: '*' git-scm.org: '*' script: - - | - # Initialize Git repo as Bazel requires git for workspace status - git init - git config --global user.email "pkgx-build@example.com" - git config --global user.name "pkgx build" - git add . - git commit -m "Initialize repository" - - bazel build \ - --compilation_mode=opt \ - --curses=no \ - --verbose_failures \ - --define=wasm=disabled \ - //source/exe:envoy-static.stripped + # Initialize Git repo as Bazel requires git for workspace status + - git init + - git config --global user.email "pkgx-build@example.com" + - git config --global user.name "pkgx build" + - git add . + - git commit -m "Initialize repository" + + - bazel build $BAZEL_OPTS //source/exe:envoy-static.stripped - install -m 755 -D bazel-bin/source/exe/envoy-static.stripped {{prefix}}/bin/envoy env: linux: - CC: clang - CXX: clang++ BAZEL_LINKOPTS: "-lm" BAZEL_LINKLIBS: "-lstdc++ -lm" + BAZEL_OPTS: + - --compilation_mode=opt + - --curses=no + - --verbose_failures + - --define=wasm=disabled + provides: - bin/envoy + test: - script: - - envoy --version | grep {{version}} - - envoy --help \ No newline at end of file + - envoy --version | grep {{version}} + - envoy --help From 0578c832844d2d4e1fd881c93775aaaa29a8967c Mon Sep 17 00:00:00 2001 From: Jacob Heider Date: Mon, 28 Apr 2025 15:20:10 -0400 Subject: [PATCH 4/8] pulled in a few more pieces from the homebrew formula --- projects/envoyproxy.io/package.yml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/projects/envoyproxy.io/package.yml b/projects/envoyproxy.io/package.yml index 01afcc8967..afe43ccd9f 100644 --- a/projects/envoyproxy.io/package.yml +++ b/projects/envoyproxy.io/package.yml @@ -13,8 +13,8 @@ build: gnu.org/libtool: '*' ninja-build.org: '*' linux: - gnu.org/gcc: '*' # doesn't like clang; missing `version` header - python.org: '*' + llvm.org: '*' + python.org: ~3.12 git-scm.org: '*' script: # Initialize Git repo as Bazel requires git for workspace status @@ -23,19 +23,24 @@ build: - git config --global user.name "pkgx build" - git add . - git commit -m "Initialize repository" - + - bazel build $BAZEL_OPTS //source/exe:envoy-static.stripped - install -m 755 -D bazel-bin/source/exe/envoy-static.stripped {{prefix}}/bin/envoy env: linux: - BAZEL_LINKOPTS: "-lm" - BAZEL_LINKLIBS: "-lstdc++ -lm" + BAZEL_LINKOPTS: '-lm' + BAZEL_LINKLIBS: '-lstdc++ -lm' + BAZEL_OPTS: + - --config=clang + - --copt=-Wno-thread-safety-reference-return + - --copt=-Wno-unused-but-set-variable + - --copt=-Wno-missing-template-arg-list-after-template-kw BAZEL_OPTS: - --compilation_mode=opt - --curses=no - --verbose_failures - --define=wasm=disabled - + provides: - bin/envoy From 6c0340b8a4fe7c3ff14bb5fa9fac412ac3a9286c Mon Sep 17 00:00:00 2001 From: Jacob Heider Date: Mon, 28 Apr 2025 15:50:14 -0400 Subject: [PATCH 5/8] fix root issue --- projects/envoyproxy.io/package.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/projects/envoyproxy.io/package.yml b/projects/envoyproxy.io/package.yml index afe43ccd9f..1b270c8a2f 100644 --- a/projects/envoyproxy.io/package.yml +++ b/projects/envoyproxy.io/package.yml @@ -24,6 +24,12 @@ build: - git add . - git commit -m "Initialize repository" + # python_rules has a whole thing (which lots of people are complaining about) where it + # refuses to run as root. docker doesn't much care, so... + - run: sed -i 's/ignore_root_user_error = ignore_root_user_error/ignore_root_user_error = True/' repositories_extra.bzl + working-directory: bazel + if: linux + - bazel build $BAZEL_OPTS //source/exe:envoy-static.stripped - install -m 755 -D bazel-bin/source/exe/envoy-static.stripped {{prefix}}/bin/envoy env: From f51adeb95ebba96c9fc46368c77415d4cab20e02 Mon Sep 17 00:00:00 2001 From: Davi De Castro Reis Date: Tue, 29 Apr 2025 14:32:32 -0300 Subject: [PATCH 6/8] dummy change --- projects/envoyproxy.io/package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/envoyproxy.io/package.yml b/projects/envoyproxy.io/package.yml index 1b270c8a2f..f289adff8f 100644 --- a/projects/envoyproxy.io/package.yml +++ b/projects/envoyproxy.io/package.yml @@ -19,8 +19,8 @@ build: script: # Initialize Git repo as Bazel requires git for workspace status - git init - - git config --global user.email "pkgx-build@example.com" - - git config --global user.name "pkgx build" + - git config --global user.email "pkgxdev@example.com" + - git config --global user.name "pkgxdev" - git add . - git commit -m "Initialize repository" From 635ab0e339e9f001e78403aa8c5c8a8d6d706f87 Mon Sep 17 00:00:00 2001 From: Davi De Castro Reis Date: Tue, 29 Apr 2025 15:21:44 -0300 Subject: [PATCH 7/8] Explicitly ask for c++20 --- projects/envoyproxy.io/package.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/envoyproxy.io/package.yml b/projects/envoyproxy.io/package.yml index f289adff8f..ad1473c8c1 100644 --- a/projects/envoyproxy.io/package.yml +++ b/projects/envoyproxy.io/package.yml @@ -41,6 +41,7 @@ build: - --copt=-Wno-thread-safety-reference-return - --copt=-Wno-unused-but-set-variable - --copt=-Wno-missing-template-arg-list-after-template-kw + - --copt=-std=c++20 BAZEL_OPTS: - --compilation_mode=opt - --curses=no From b953abff18b6ae9076b7b2155e38ea5070dca7c2 Mon Sep 17 00:00:00 2001 From: Davi De Castro Reis Date: Tue, 29 Apr 2025 16:35:10 -0300 Subject: [PATCH 8/8] Use c++20 everywhere --- projects/envoyproxy.io/package.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/envoyproxy.io/package.yml b/projects/envoyproxy.io/package.yml index ad1473c8c1..e1a9af7303 100644 --- a/projects/envoyproxy.io/package.yml +++ b/projects/envoyproxy.io/package.yml @@ -47,6 +47,7 @@ build: - --curses=no - --verbose_failures - --define=wasm=disabled + - --cxxopt=-std=c++20 provides: - bin/envoy