From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 4C2EA158090 for ; Sun, 29 May 2022 18:10:35 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 94662E08BB; Sun, 29 May 2022 18:10:34 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 77623E08BB for ; Sun, 29 May 2022 18:10:34 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 448A4341901 for ; Sun, 29 May 2022 18:10:33 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id A89AE4A2 for ; Sun, 29 May 2022 18:10:30 +0000 (UTC) From: "Stephan Hartmann" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Stephan Hartmann" Message-ID: <1653847627.ae7ec85b37979abac0c3372663e1a10d90765f10.sultan@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/web_page_replay_go/, dev-util/web_page_replay_go/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-util/web_page_replay_go/Manifest dev-util/web_page_replay_go/files/wpr-usage.patch dev-util/web_page_replay_go/metadata.xml dev-util/web_page_replay_go/web_page_replay_go-20220314.ebuild X-VCS-Directories: dev-util/web_page_replay_go/ dev-util/web_page_replay_go/files/ X-VCS-Committer: sultan X-VCS-Committer-Name: Stephan Hartmann X-VCS-Revision: ae7ec85b37979abac0c3372663e1a10d90765f10 X-VCS-Branch: master Date: Sun, 29 May 2022 18:10:30 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 6a3626c5-eeac-4dc9-ab15-520e1145d31a X-Archives-Hash: fee79b30abe61073eea2aaac547fa96f commit: ae7ec85b37979abac0c3372663e1a10d90765f10 Author: Marek Behún kernel org> AuthorDate: Sun May 29 08:50:32 2022 +0000 Commit: Stephan Hartmann gentoo org> CommitDate: Sun May 29 18:07:07 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae7ec85b dev-util/web_page_replay_go: add package This is needed for PGO on www-client/chromium. Signed-off-by: Marek Behún kernel.org> Signed-off-by: Stephan Hartmann gentoo.org> dev-util/web_page_replay_go/Manifest | 2 + dev-util/web_page_replay_go/files/wpr-usage.patch | 46 ++++++++++++++++++++ dev-util/web_page_replay_go/metadata.xml | 12 ++++++ .../web_page_replay_go-20220314.ebuild | 50 ++++++++++++++++++++++ 4 files changed, 110 insertions(+) diff --git a/dev-util/web_page_replay_go/Manifest b/dev-util/web_page_replay_go/Manifest new file mode 100644 index 000000000000..0c6bf98d39c7 --- /dev/null +++ b/dev-util/web_page_replay_go/Manifest @@ -0,0 +1,2 @@ +DIST web_page_replay_go-20220314-deps.tar.xz 22639912 BLAKE2B 5b9c3753a419a809088b2ad468f44d79ed6ff004132b3e7680d06bda28bbf1a8ce622ea64e2590bc6e7f180a7bfd4d19be1561c9770b000e14d73dffa077056f SHA512 62dde2c4725f5aeba856bb35df04dbe96bf0727095673ef80e195acf600fc615c9f976139047b8cbf4e0cad4632d864e1cd4eede50f022802ffdf60dec56dd4c +DIST web_page_replay_go-20220314.tar.gz 35660 BLAKE2B 1d24655b1aa3ca9a19430d6acb888ec7fed36ffbeb67f70ccfc419ff9fbf23ae14f95510ad4c514833cc5908d5f58a9e2ad4118c39689387c9d83548f4860017 SHA512 67dc0019d4239d2ff535c9cfbafc5e1a529c11dfc7040f8f10a651e57ac6978bb1b2da39f27d80893614a3fffec712b8a769204d3abb2ddb5cf4738f60e96f0c diff --git a/dev-util/web_page_replay_go/files/wpr-usage.patch b/dev-util/web_page_replay_go/files/wpr-usage.patch new file mode 100644 index 000000000000..fb43a9c9f166 --- /dev/null +++ b/dev-util/web_page_replay_go/files/wpr-usage.patch @@ -0,0 +1,46 @@ +From: Marek Behún + +Make usage text in wpr.go does reflect usage information from README.md. + +diff --git a/wpr.go b/wpr.go +--- a/wpr.go ++++ b/wpr.go +@@ -28,25 +28,27 @@ const longUsage = ` + %s [installroot|removeroot] [options] + %s [record|replay] [options] archive_file + +- Before: Install a test root CA. +- $ GOPATH=$PWD go run src/wpr.go installroot +- + To record web pages: +- 1. Start this program in record mode. +- $ GOPATH=$PWD go run src/wpr.go record archive.json ++ 1. Start wpr in record mode. ++ $ wpr record --http_port=8080 --https_port=8081 /tmp/archive.wprgo + 2. Load the web pages you want to record in a web browser. It is important to + clear browser caches before this so that all subresources are requested +- from the network. ++ from the network. This can be done by specifying a new user-data-dir. ++ Example: ++ $ google-chrome-beta --user-data-dir=$foo \ ++ --host-resolver-rules="MAP *:80 127.0.0.1:8080,MAP *:443 127.0.0.1:8081,EXCLUDE localhost" ++ --ignore-certificate-errors-spki-list=PhrPvGIaAMmd29hj8BCZOq096yj7uMpRNHpn5PDxI6I= + 3. Kill the process to stop recording. + + To replay web pages: +- 1. Start this program in replay mode with a previously recorded archive. +- $ GOPATH=$PWD go run src/wpr.go replay archive.json ++ 1. Start wpr in replay mode. ++ $ wpr replay --http_port=8080 --https_port=8081 /tmp/archive.wprgo + 2. Load recorded pages in a web browser. A 404 will be served for any pages or + resources not in the recorded archive. +- +- After: Remove the test root CA. +- $ GOPATH=$PWD go run src/wpr.go removeroot` ++ Example: ++ $ google-chrome-beta --user-data-dir=$foo \ ++ --host-resolver-rules="MAP *:80 127.0.0.1:8080,MAP *:443 127.0.0.1:8081,EXCLUDE localhost" ++ --ignore-certificate-errors-spki-list=PhrPvGIaAMmd29hj8BCZOq096yj7uMpRNHpn5PDxI6I=` + + type CertConfig struct { + // Flags common to all commands. diff --git a/dev-util/web_page_replay_go/metadata.xml b/dev-util/web_page_replay_go/metadata.xml new file mode 100644 index 000000000000..5cf03e9c318a --- /dev/null +++ b/dev-util/web_page_replay_go/metadata.xml @@ -0,0 +1,12 @@ + + + + + kabel@kernel.org + Marek Behún + + + chromium@gentoo.org + Chromium in Gentoo Project + + diff --git a/dev-util/web_page_replay_go/web_page_replay_go-20220314.ebuild b/dev-util/web_page_replay_go/web_page_replay_go-20220314.ebuild new file mode 100644 index 000000000000..0a45a851bcaa --- /dev/null +++ b/dev-util/web_page_replay_go/web_page_replay_go-20220314.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module + +DESCRIPTION="A performance testing tool for recording and replaying web pages" +HOMEPAGE="https://chromium.googlesource.com/catapult/+/refs/heads/main/web_page_replay_go/" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" + +SRC_URI="https://github.com/elkablo/web_page_replay_go/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/elkablo/web_page_replay_go/releases/download/v${PV}/web_page_replay_go-${PV}-deps.tar.xz" +S="${WORKDIR}/${P}/src" + +src_prepare() { + local PATCHES=( + "${FILESDIR}/wpr-usage.patch" + ) + + default + + # default certificate, key and inject script in /usr/share/web_page_replay_go + local f + for f in wpr.go webpagereplay/legacyformatconvertor.go; do + sed -i -e 's^"\(wpr_cert\.pem\|wpr_key\.pem\|deterministic\.js\)"^"/usr/share/web_page_replay_go/\1"^' "${f}" || die "sed-editing ${f} failed" + done +} + +src_compile() { + local t + + for t in wpr.go httparchive.go; do + go build ${GOFLAGS} -mod=mod "${t}" || die "compiling ${t} failed" + done +} + +src_install() { + dobin wpr + dobin httparchive + + insinto /usr/share/${PN} + doins ../deterministic.js + doins ../wpr_cert.pem + doins ../wpr_key.pem + doins ../wpr_public_hash.txt +}