fix(coverage): v8 to support source maps with multiple sources

Description

While setting up Vitest monorepo's coverage, noticed that V8 shows only the first file of bundled sources.
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. If the feature is substantial or introduces breaking changes without a discussion, PR might be closed.
[ ] Ideally, include a test that fails without this PR but passes with it.
[ ] Please, don't make changes to pnpm-lock.yaml unless you introduce a new test example.

Tests

[ ] Run the tests with pnpm test:ci.

Documentation

[ ] If you introduce new functionality, document it. You can run documentation with pnpm run docs command.

Changesets

[ ] Changes in changelog are generated from PR name. Please, make sure that it explains your changes in an understandable manner. Please, prefix changeset messages with feat:, fix:, perf:, docs:, or chore:.

Looks like bug in Vite's SSR transform:
import { fileURLToPath } from "node:url";
import { createServer } from "vite";

const server = await createServer({
  configFile: false,
  root: fileURLToPath(new URL(".", import.meta.url)),
  server: { port: 1337 },
});

await server.listen();

const ssr = await server.transformRequest("./dist/bundle.js", { ssr: true });
const web = await server.transformRequest("./dist/bundle.js", { ssr: false });

console.log({ ssr: ssr.map.sources, web: web.map.sources });
// {
//   ssr: [ '../src/first.ts' ],
//   web: [ '../src/first.ts', '../src/second.ts' ]
// }

server.close();

V8 coverage works fine with https://github.com/vitejs/vite/pull/17677 applied locally. Generated the snapshots with that patch.

/ecosystem-ci run


Auto-detect bucket region for AWS s3

We can auto-detect bucket region(if it is not specified) same way aws s3api get-bucket-location --bucket bucket_name does.

related #636


[WIP] Handle different HubMessage Types

Issue: https://github.com/aspnet/SignalR/issues/2589
I've added the HubMessage abstraction and Enums for the different message types.
I need to rebase this pr first...

Marking this WIP until I rebase

Closing this in favor of: https://github.com/aspnet/SignalR/pull/2620


Update alexnet-gpu.yaml

Updated to pull rocm/tensorflow:latest.  Also, changed the command to use the official tensorflow/benchmarks example.

Hey Jeff, can you update the commit message to follow the format of:
<short subject (perhaps Update pod deployment example yaml)>

<description on the why/rationale/how of the change>


Manual variants added multiple times if page reloaded

If a manual variant form is submitted and then the page is reloaded, the variant is added again.

Need to reload page after form submit (redirect to same page), currently just reloads the context so the form isnt reset
https://github.com/AWGL/somatic_db/blob/e0f39592e59a78bf83cadb71542d3af69f0e42de/analysis/views.py#L443


Update categories

update categories to reflect the new menu paradigm

New Menu Category Structure
Burgers & Sandwiches
Chicken & Fish
Breakfast
Salads
Snacks and Sides
Beverages
McCafe
Dessert & Shakes
Condiments
All Day Breakfast

done.


Update for version 15

Congrats for version 15! This updates the guide to match.

@expln - let me know if there are problems with this. Congrats on the version 15 release!


Doesn't work in wezterm unix socket mode in macOS

For context, WezTerm has a 'local' mode and a 'unix' mode. In local mode, the terminal directly spawns a shell. In unix mode, the terminal connects to a separate but local multiplexing server via Unix socket. The issue is that im-select.nvim fails to change the input method only in unix mode. Interestingly, running im-select com.apple.keylayout.ABC in a unix mode terminal works fine.
Can you help me debug this issue?

Well, async_switch_im = true fixes this for some reason.


creating my own branch with personal page on it

Description
Concise description of proposed changes, We recommend using screenshots and videos for better description
Additional Information

[x] I have read the contributing docs (if this is your first contribution)
[x] This is not a duplicate of any existing pull request

Related Issues
Closes #{issue number}
Note: If your changes are small and straightforward, you may skip the creation of an issue beforehand and remove this section. However, for medium-to-large changes, it is recommended to have an open issue for discussion and approval prior to submitting a pull request.
Your ENS/address:

I opened #20 correctly using yarn thanks to @ZakGriffith ! Will close this one if you don't mind


Revert "Remove org.json usage [run-systemtest]"

Reverts vespa-engine/vespa#16279

Suspect for failing metrics proxy system tests


Eac dev

Lots and lots of changes.  Basically changing everything to work via ceci.
Not gonna list them all here.
Stuff to do:

[x] Update notebooks to explain that is going on in new versions
[ ] Update installation instructions
[x] Clean up cruft
[x] Add scripts or .gitignore to clean up or ignore notebooks byproducts.
[ ] Finalize naming

Additional items:

[ ] Decide if we want the installation instructions to live in README.md or in docs/source/installation.rst
[ ] Add some plot to the goldenspike.ipynb


Homework Hack + Touch Ups

Adding the last homework hacks. Fixing naming convention and adding nav bar.

Rejected as you are changing unit 6 files


New feature: implement __non_webpack_import__()

Summary
Fixes: https://github.com/webpack/webpack/issues/17597
Add a new __non_webpack_import__() that would behave exactly as the native import() (dynamic async import) in ECMAScript (that works in both CJS & ESM in node) (exactly as __non_webpack_require__ for CJS)
Details
As import() is natively supported in ESM & CJS, we can just tell webpack to compile __non_webpack_import__ to import and it should just work.
I also added an example.
I tried to add a test but I couldn't see any test for __non_webpack_require__, a lot of tests are using it but not testing it.
And also most tests are running within a vm that need importModuleDynamically to be properly defined. So I couldn't make it work the way I wanted (I could need help on that if you want to add a test)

It's already possible with
import(/* webpackIgnore: true */ "my-name")


"Porting NDIS miniport drivers to NetAdapterCx" doesn't talk about setting the supported packet filter types

The "Porting NDIS miniport drivers to NetAdapterCx" page doesn't directly talk about how to set the types of packet filters that 802.3 (or 802.5, but that's dead) (and what about 802.11?) drivers support.
The "Device initialization" section appears to be the most appropriate section, but the page it suggests, "Device and adapter initialization", doesn't mention NetAdapterSetReceiveFilterCapabilities().
Other routines useful in initializing the driver may also not be mentioned there.
I note this because nmap/npcap#628 may be more likely to show up on adapters with NetAdapterCx drivers, and the Npcap driver, when asked to set an adapter's packet filter, turns off all bits in the filter that aren't in what the Npcap driver believes to be the SupportedPacketFilters, and, if that value isn't correct, it may turn off so many bits that the resulting filter is considered invalid.  If the adapter driver doesn't call NetAdapterSetReceiveFilterCapabilities(), perhaps because the driver writer didn't see it mentioned, the value will be whatever default NetAdapterCx provides.
If we look at the fields in the NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES structure, the equivalent NetAdapterCx routines for some of them are:

MtuSize: NetAdapterSetLinkLayerMtuSize()
MaxXmitLinkSpeed, MaxRcvLinkSpeed: NetAdapterSetLinkLayerCapabilities()
XmitLinkSpeed, RcvLinkSpeed, MediaConnectState, MediaDuplexState, SupportedPauseFunctions, AutoNegotiationFlags: NetAdapterSetLinkState()
SupportedPacketFilters, MaxMulticastListSize: NetAdapterSetReceiveFilterCapabilities()
MacAddressLength, PermanentMacAddress: NetAdapterSetPermanentLinkLayerAddress()
MacAddressLength, CurrentMacAddress: NetAdapterSetCurrentLinkLayerAddress()

so all of those should probably be mentioned.  There may be other than I've missed.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: bd8d1135-8e43-d2bd-4398-4b04cd727ea1
Version Independent ID: 24d46a09-1175-b223-be59-a7317e925038
Content: Porting NDIS miniport drivers to NetAdapterCx - Windows drivers
Content Source: windows-driver-docs-pr/netcx/porting-ndis-miniport-drivers-to-netadaptercx.md
Product: windows-hardware
Technology: netcx
GitHub Login: @aviviano
Microsoft Alias: amvivian

I agree that this could be demonstrated explicitly in the docs - this page should demonstrate NetAdapterSetReceiveFilterCapabilities. Our sample driver already does do this, but the docs should reflect that.
(In general, where NDIS6 used a field to set the initial value during NIC initialization, plus an OID to query/change it at runtime, NetAdapter has only a single function that can set the initial or runtime-changed value.)

Thanks @guyharris for opening this issue. We've opened an internal work item to improve the device and adapter initialization page. I'll close this issue now and let you know once the updates are published.
Thanks for helping us improve our docs.


Allow typeof on arbitrary expression

At the moment compiler insists on having valid identifier on right side of typeof so following code is not valid:
var x : typeof (1+ 2);
var y : typeof this;

even though it's possible to assign the expression to variable and then capture the type form that:
var x_ = 1+2;
var x = typeof x;
var y_ = this;
var y = typeof y_;

I propose to allow capturing type of any valid expression. The expression itself wouldn't be evaluated.

How is that different from:
var x = typeof (1+2);
var y = typeof this;

@mhegazy we're talking about type-position typeof, not value-position.
typeof this seems useful, but more allowing more complex expressions is trickier. It's not at all apparent to a casual observer that typeof f(x) in type positions only won't evaluate the function call; the restriction to dotted identifiers is a bit of a safeguard in this respect.
Other than typeof this, what kind of uses cases do you want this for?

duplicate of #6606


Update outdated link and add TEMP folder to ignore

Reasons for making this change:

I'm on the maintainer team at Umbraco.

I initially only changed the link but found that the temp folder is not being ignored when you use this ignore.
When you create a new Umbraco project using our dotnet templates, you get this ignore file which does include the temp folder: https://github.com/umbraco/Umbraco-CMS/blob/v10/contrib/templates/UmbracoProject/.gitignore#L469


Rows are being bound by copy, and not reference

[x] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, post on Stackoverflow or Gitter

**Current behavior**
Rows variable used to be bound as reference, so any change in component's list variable is immediately reflected in grid as well. In latest version this is no longer happening.

**Expected behavior**
Rows should be bound by reference and not copied.

**Reproduction of the problem**
Easily reproducible.

**What is the motivation / use case for changing the behavior?**
N/A

**Please tell us about your environment:**
All

* **Table version:** 0.8.x
11.1.7

* **Angular version:** 2.0.x
5.2.2

* **Browser:** [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]
All

* **Language:** [all | TypeScript X.X | ES6/7 | ES5]
ES6

Confirmed bug.
I notice that rows is bounded by reference when [externalSorting]="true" only.

Confirmed in my app, too. Had to roll back to 11.1.5 before adding a row updated the datatable properly.

Still reproduced in 11.2.0

I can confirm this bug exists on these versions of 11.x branch:

11.3.0
11.2.0
11.1.7
11.1.6
11.1.5 <---- Last working version


Adding storybook as component explorer for design system

…d button component to rebass, added some documentation for theme

implemented with #388 thanks for the good work @rudolphfunk !


Void Linux build

No idea if this is possible or not, but would a Void build be possible?

What is a Void build? I've never heard of it before.

Void Linux is a distro with its own packaging system.

In the meantime, you should be able to use linux_portable to make a build right now (or use the Portable Linux binary on Void Linux).

@Eloston If I'm correct, this is the right binary? https://ungoogled-software.github.io/ungoogled-chromium-binaries/releases/linux_static/64bit/55.0.2883.75-1

@ThatNerdyPikachu I just updated it ;)
https://ungoogled-software.github.io/ungoogled-chromium-binaries/releases/linux_portable/64bit/65.0.3325.181-1

@Eloston Alright, thanks! I'll test and report back to you when I get the chance!

@Eloston Erm, sorry for the very very late response... Nope, that didn't work.

Portable Linux version 66 is already out. What exactly isn't working?

@Eloston I can confirm that Portable Linux builds 65 and 66 both work fine on Void Linux (using glibc).
Maybe the portable version of ungoogled chromium does not work on Void users using musl libc?
Void's version of chromium has patches to build with musl.

@travankor Thanks for confirming that it works with glibc. Do regular Chromium or Chrome work with musl?

Some precompiled binary would not be accepted as an official void package. You guys have to figure, how to compile your own binary on the various platforms. I would have a look at the chromium package's template and modify that to package this browser. However, first ask in IRC if they even want new browser packages, otherwise you're wasting your time.
Since I'm not using chromium-derivatives anymore since Firefox 57, I'm not too motivated to put too much time into this (I was asked if I could help a little bit here)

@faulesocke I wasn't too clear earlier, but I'm diverging a bit from the original topic at hand.
The purpose of my question is to learn more about musl and where compatibility is breaking; if it's in ungoogled-chromium, then it's a bug with the Portable Linux build, since Void isn't the only system that uses musl (and users may not want to wait for a package to come around for their distro). Otherwise, if Chromium and Chrome are also broken, then we would have to include those patches to work with musl.

However, first ask in IRC if they even want new browser packages, otherwise you're wasting your time.

If it's straight-forward for users to install package files manually, packages for Void can be added to the contributor binaries page (if someone submits them). If Void wants to have it included officially, then this can be dropped.
In the meantime or as an alternative, a derivative of the Portable Linux config for musl could be added.

Since I'm not using chromium-derivatives anymore since Firefox 57, I'm not too motivated to put too much time into this (I was asked if I could help a little bit here)

No problem. For platforms I don't use, I generally leave it to someone else to do the actual work of implementing support.
Unrelated to the main topic, but I'm genuinely interested to see how Firefox Quantum progresses down the road. I could see myself jumping ship if Chromium becomes too much of a burden for me to keep up.

@Eloston been looking after a source/rolling distro lately and ended up with void/gentoo choice and void seems really to be damn interesting... i will be probably installing that on one of my main machines soon i will see if i can help then, it does not seems to be in a hurry issue here so...
off-topic : Now about the firefox i have to be honest i switched back lool still using uc tho but firefox v62, v63 just fly in term of speed etc... still need some customization tho for privacy (https://github.com/Eloston/ungoogled-chromium/issues/560#issuecomment-431713666) and also it have auto-update forced (can be disabled...)... but other than that they have done a damn pretty good work

Chromium requires a large number of patches to build on Alpine Linux (which uses musl). Most of these are likely required to get an ungoogled-chromium build working on a musl system.
List of patches as well as build setup (inside APKBUILD): https://git.alpinelinux.org/aports/tree/community/chromium
I'd love to see some movement here as Alpine doesn't ship with any privacy conscious browser full stop. Firefox is built with all telemetry enabled and not to mention it's stuck on an outdated non-LTS release.
https://git.alpinelinux.org/aports/tree/testing/firefox

It sure would be nice to have either Iridium or Ungoogled-Chromium on non-systemd distros.
There is no privacy /security based Chromium browsers in Void Linux... no Brave browser, no Iridium, no Ungoogled-Chromium, no Epic browser, no SRW Iron browser... nothing but Spyware Browsers. Which is what the Void Linux developers love and want in their repos. Browsers that spy and telemetry their users to oblivion.
Ungoogled-Chromium and Iridium aren't available in Slackware either. Iridium is available in FreeBSD, but cause of hardware compatibility issues I can't use FreeBSD. I can't win for losing. And Windows 7 will be EOL Jan 2020...  Guess it's time to throw PCs into brush piles out back in field and burn them and never get online again.

@Smooey IceCat is available on Void, so your 2nd paragraph is unwarranted.  You can install the Guix package manager on top of Void, and at least at one point ungoogled-chromium was available via Guix (I'm not sure what the current status is).

Die hard fan boi lol.. and Icecat sucks... and my novel is warranted.

@Smooey IceCat is available on Void, so your 2nd paragraph is unwarranted. You can install the Guix package manager on top of Void, and at least at one point ungoogled-chromium was available via Guix (I'm not sure what the current status is).

Im sorry for asking but, how do you install guix on top of void?

@irritating This part of the manual describe how to do this: https://www.gnu.org/software/guix/manual/en/guix.html#Binary-Installation . It's very similar to installing guix on top of other distros (modulo the systemd bits).

Sorry for digging up an old thread, but I just finished compiling ungoogled-chromium on my Alpine Linux (musl/busybox) system, meaning it should work on Void musl as well -- is a musl binary still something this project wants/needs?  If so, I can package it.
Also, I don't think submitting a PR with my changes would be desirable currently, as there were a lot of small and semi-messy tweaks necessary to compile due to dependency on nonstandard GNU/glibc behavior.  However, I can absolutely clean up and share my changes if anyone would like.
Thanks!

@Cubified I wouldn't mind adding a new platform repo for Alphine or other musl-based systems. Musl change are platform-specific so they don't belong in this repo.

Thanks for the quick response -- I'll look into cleaning up my changes.  In the meantime, I just submitted a PR in the binaries repo with a packaged musl binary.

What did you guys end up doing for ungoogled-chromium on Void? Just building it yourself?
Thanks.

@dm17 There's the musl branch on ungoogled-chromium-portablelinux now, but no one has published binaries yet: https://github.com/ungoogled-software/ungoogled-chromium-portablelinux/tree/musl. Portable Linux doesn't have VA-API support built-in either; you'll need to get the patches to enable that.

@dm17 There's the musl branch on ungoogled-chromium-portablelinux now, but no one has published binaries yet: https://github.com/ungoogled-software/ungoogled-chromium-portablelinux/tree/musl. Portable Linux doesn't have VA-API support built-in either; you'll need to get the patches to enable that.

OK, I'm not using musl with Void anyway. Sounds like:

clone ungoogled-chromium
add VAAPI patch
figure out how to package on void (or just launch it from source dir).

Follow instructions to clone ungoogled-chromium-portablelinux on https://github.com/ungoogled-software/ungoogled-chromium-portablelinux
Copy patches to somewhere in patches/ directory, and list them in patches/series
Continue following instructions to build and produce a package. The package's just a tar file, and it's portable.

Looks like I'll have to compile for musl then. Oof.

Looks like I'll have to compile for musl then. Oof.
If I do, I'll submit the binary.

If you use the musl version - I use Void without musl.

@cvoges12 Ehh no, since I’m not sure how long it will take to update the patches and make sure they work properly

@ThatNerdyPikachu I'm ready to attempt this so long as we can include VAAPI support. The Void devs don't want it in the official repository; they recommend that we use our own repo (or similar) for the ungoogled-chromium builds.

`# Template file for 'chromium'
pkgname=ungoogled-chromium
version=87.0.4280.66
_pkgname=$(echo $pkgname | cut -d- -f1-2)
_pkgver=$(echo $version | cut -d. -f1-4)
See http://www.chromium.org/developers/calendar for the latest version
_launcher_ver=6
_gcc_patchset=9
_uc_ver=87.0.4280.67-1
_uc_usr=Eloston
_uc_sum='158d1210be8d0f72ec09724a22907b5a737c3a25b19632d2eb93ebdfbe3f1ac9'
_uc_url="https://github.com/$_uc_usr/ungoogled-chromium/archive/$_uc_ver.tar.gz>$_pkgname-$_uc_ver.tar.gz"
revision=1
archs="x86_64*"
short_desc="All the good without the bad"
maintainer="Wayne<EMAIL_ADDRESS>license="BSD-3-Clause"
homepage="https://ungoogled-software.github.io"
distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$_pkgver.tar.xz $_uc_url https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz>chromium-launcher-$_launcher_ver.tar.gz"
checksum="29a8e4ea82edec2fdcf34ece68323bec7ab90f3d5669e6b77f58cff9c278f741 $_uc_sum 04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1"
nocross=yes
lib32disabled=yes
nodebug=yes
nopie=yes  # contains tools that are not PIE, enables PIE itself
build_options="clang js_optimize vaapi pulseaudio sndio"
desc_option_clang="Use clang to build"
desc_option_js_optimize="Optimize the JS used for Chromium's UI"
desc_option_vaapi="Enable support for VA-API"
desc_option_pulseaudio="Enable support for PulseAudio"
desc_option_sndio="Enable support for sndio"
hostmakedepends="$(vopt_if clang clang) python pkgconf perl gperf bison ninja nodejs hwids
libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk)"
makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel
libXcomposite-devel speech-dispatcher-devel libXrandr-devel mit-krb5-devel
libXScrnSaver-devel alsa-lib-devel snappy-devel libdrm-devel
libxml2-devel libxslt-devel $(vopt_if pulseaudio pulseaudio-devel) libexif-devel
libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel
libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel
minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
re2-devel fontconfig-devel freetype-devel opus-devel
ffmpeg-devel libva-devel python-setuptools xcb-proto
$(vopt_if sndio sndio-devel)"
depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils"
case "$XBPS_TARGET_MACHINE" in
ppc64*-musl) makedepends+=" libucontext-devel" ;;
esac
build_options_default="clang js_optimize vaapi pulseaudio"
post_patch() {
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
for f in "${FILESDIR}"/musl-patches/*.patch; do
echo "Applying $f"
patch -Np0 -i "$f"
done
fi
case "${XBPS_TARGET_MACHINE}" in
i686*)
	for f in "${FILESDIR}"/i686-patches/*.patch; do
		echo "Applying $f"
		patch -Np0 -i "$f"
	done
	;;
esac

# Use the file at run time instead of effectively compiling it in
sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
	-i services/device/public/cpp/usb/BUILD.gn

if [ -z "$build_option_clang" ]; then
	# Work around bug in blink in which GCC 6 optimizes away null pointer checks
	# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833524
	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68853#c2
	sed -i '/config("compiler")/ a cflags_cc = [ "-fno-delete-null-pointer-checks" ]' \
		build/config/linux/BUILD.gn
fi

# prevent annoying errors when regenerating gni
vsed -i 's,^update_readme$,#update_readme,' \
	third_party/libvpx/generate_gni.sh

}
do_configure() {
local system="" conf=()
export -n CFLAGS CXXFLAGS LDFLAGS
if [ "$build_option_clang" ]; then
	export CC=clang
	export CXX=clang++
fi

export LDFLAGS="-pthread"

# compile gn early, so it can be used to generate gni stuff
AR="ar" CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD LD=$CXX_FOR_BUILD \
python2 tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles

# we need to generate ppc64 stuff for libvpx as it's not shipped
# this has to be done before unbundling, but after gn is built
# comment out if we switch back to system libvpx again later
case "$XBPS_TARGET_MACHINE" in
	ppc64*)
		pushd third_party/libvpx
		mkdir -p source/config/linux/ppc64
		# need PATH to find gn
		PATH="${wrksrc}/out/Release:$PATH" ./generate_gni.sh || \
			msg_error "failed to generate libvpx gni"
		popd
		;;
esac

# Use system-provided libraries.
# TODO: use_system_hunspell (upstream changes needed).
# TODO: use_system_libsrtp.
# TODO: use_system_libusb (http://crbug.com/266149).
# TODO: use_system_ssl (http://crbug.com/58087).
# TODO: use_system_sqlite (http://crbug.com/22208).
# TODO: use_system_icu (segfaults)
# XXX xtraeme: broken currently
# use_system_protobuf
# use_system_v8=1
# use_system_zlib=1
# bzip2 jsoncpp minizip xdg_utils speex
system="
	ffmpeg
	flac
	fontconfig
	freetype
	harfbuzz-ng
	libdrm
	libevent
	libjpeg
	libpng
	libwebp
	libxml
	libxslt
	opus
	re2
	snappy
"

# remove build scripts for system provided dependencies - basically does the
# same as the bundeled script to remove bundeled libs, but this way we don't
# have to list the remaining libs
for LIB in ${system} libjpeg_turbo; do
	find -type f -path "*third_party/$LIB/*" \
		\! -path "*third_party/$LIB/chromium/*" \
		\! -path "*third_party/$LIB/google/*" \
		\! -path './base/third_party/icu/*' \
		\! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
		\! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \
		\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
		-delete
done

# switch to system provided dependencies
python2 build/linux/unbundle/replace_gn_files.py --system-libraries ${system}

python2 third_party/libaddressinput/chromium/tools/update-strings.py

# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Void Linux use ONLY.
conf+=(
	'google_api_key="AIzaSyA9gWazKaHaNIPPg2hrMj6_ZSG8AFmq738"'
	'google_default_client_id="126659149423-hoo6ickbk3p1u2qjsdsp0ddciurfvb4t.apps.googleusercontent.com"'
	'google_default_client_secret="_ozIx2D-DKm_se_2NPwV4l5b"'
)

conf+=(
	'enable_nacl=false'
	'enable_nacl_nonsfi=false'
	"is_clang=$(vopt_if clang true false)"
	'is_debug=false'
	'clang_use_chrome_plugins=false'
	'custom_toolchain="//build/toolchain/linux/unbundle:default"'
	'host_toolchain="//build/toolchain/linux/unbundle:default"'
	'blink_symbol_level=0'
	'symbol_level=0'
	'icu_use_data_file=true'
	'use_allocator="none"'
	'use_allocator_shim=false'
	'use_cups=true'
	'use_sysroot=false'
	'use_system_harfbuzz=true'
	'enable_widevine=true'
	'enable_hangout_services_extension=true'
	'is_desktop_linux=true'
)

conf+=(
	"use_vaapi=$(vopt_if vaapi true false)"
)

conf+=(
	"closure_compile=$(vopt_if js_optimize true false)"
)

conf+=(
	"use_pulseaudio=$(vopt_if pulseaudio true false)"
)

# Use explicit library dependencies instead of dlopen.
# GN only has "link_pulseaudio", the other options used before are not available atm
# linux_link_cups=true
# linux_link_gsettings=true
# linux_link_libpci=true
# linux_link_libspeechd=true
# libspeechd_h_prefix=\"speech-dispatcher/\""
conf+=( "link_pulseaudio=$(vopt_if pulseaudio true false)" )

conf+=(
	"use_sndio=$(vopt_if sndio true false)"
)

# Never use bundled binutils/gold binary.
conf+=(
	"binutils_path=\"${XBPS_CROSS_BASE}/usr/bin\""
	"gold_path=\"${XBPS_CROSS_BASE}/usr/bin/ld.gold\""
	'linux_use_bundled_binutils=false'
	'use_custom_libcxx=false'
	'use_lld=false'
)

# XXX: gold broken with musl and i686
case "${XBPS_TARGET_MACHINE}" in
*-musl) conf+=( 'use_gold=false' ) ;;
i686*) conf+=( 'use_gold=false' ) ;;
*) conf+=( 'use_gold=true' ) ;;
esac

# Always support proprietary codecs.
# Enable H.264 support in bundled ffmpeg.
conf+=(
	'proprietary_codecs=true'
	'ffmpeg_branding="Chrome"'
)

# Make sure that -Werror doesn't get added to CFLAGS by the build system.
# Depending on GCC version the warnings are different and we don't want
# the build to fail because of that.
conf+=(
	'treat_warnings_as_errors=false'
	'fatal_linker_warnings=false'
)

# Save space by removing DLOG and DCHECK messages (about 6% reduction).
# conf+=" logging_like_official_build=true"
conf+=( fieldtrial_testing_like_official_build=true )

case "${XBPS_TARGET_MACHINE}" in
	x86_64*) conf+=( 'target_cpu="x64"' ) ;;
	i686*) conf+=( 'target_cpu="x86"' ) ;;
	arm*) conf+=( 'target_cpu="arm"' ) ;;
	aarch64*) conf+=( 'target_cpu="arm64"' ) ;;
	ppc64*) conf+=( 'target_cpu="ppc64"' ) ;;
esac

out/Release/gn gen out/Release --args="${conf[*]}"

}
do_build() {
if [ "$build_option_clang" ]; then
export CC=clang
export CXX=clang++
fi
ninja -C out/Release ${makejobs} chrome chromedriver mksnapshot

}
do_install() {
vinstall out/Release/chrome 755 usr/lib/${pkgname} ${pkgname}
vinstall out/Release/chromedriver 755 usr/lib/${pkgname} chromedriver
vinstall out/Release/libEGL.so 755 usr/lib/${pkgname} libEGL.so
vinstall out/Release/libGLESv2.so 755 usr/lib/${pkgname} libGLESv2.so
vcopy "out/Release/*.bin" usr/lib/chromium
vcopy "out/Release/*.pak" usr/lib/chromium

vmkdir usr/lib/chromium/locales
vcopy "out/Release/locales/*.pak" usr/lib/chromium/locales

vmkdir usr/lib/chromium/swiftshader
vcopy "out/Release/swiftshader/*.so" usr/lib/chromium/swiftshader

vinstall ${FILESDIR}/chromium.desktop 644 usr/share/applications

vinstall out/Release/icudtl.dat 0644 usr/lib/chromium

for size in 24 48 64 128 256; do
	vinstall "chrome/app/theme/chromium/product_logo_${size}.png" \
		644 \
		usr/share/icons/hicolor/${size}x${size}/apps chromium.png
done
for size in 16 32; do
	vinstall "chrome/app/theme/default_100_percent/chromium/product_logo_${size}.png" \
		644 \
		usr/share/icons/hicolor/${size}x${size}/apps chromium.png
done

vbin ${FILESDIR}/chromium.sh chromium
vlicense LICENSE
ln -s /usr/lib/chromium/chromedriver ${DESTDIR}/usr/bin/chromedriver

}
`

@ThatNerdyPikachu OK this is how far I've gotten - anyone is welcome to help the rest of the way. I started modeling it from the chromium package.
pkgname=ungoogled-chromium
version=87.0.4280.66
_pkgname=$(echo $pkgname | cut -d\- -f1-2)
_pkgver=$(echo $version | cut -d\. -f1-4)
# See http://www.chromium.org/developers/calendar for the latest version
_launcher_ver=6
_gcc_patchset=9
_uc_ver=87.0.4280.67-1
_uc_usr=Eloston
_uc_sum='158d1210be8d0f72ec09724a22907b5a737c3a25b19632d2eb93ebdfbe3f1ac9'
_uc_url="https://github.com/$_uc_usr/ungoogled-chromium/archive/$_uc_ver.tar.gz>$_pkgname-$_uc_ver.tar.gz"
revision=1
archs="x86_64*"
short_desc="All the good without the bad"
maintainer="Wayne<EMAIL_ADDRESS>license="BSD-3-Clause"
homepage="https://ungoogled-software.github.io"
distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$_pkgver.tar.xz $_uc_url https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz>chromium-launcher-$_launcher_ver.tar.gz"
checksum="29a8e4ea82edec2fdcf34ece68323bec7ab90f3d5669e6b77f58cff9c278f741 $_uc_sum 04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1"

nocross=yes

lib32disabled=yes
nodebug=yes
nopie=yes  # contains tools that are not PIE, enables PIE itself

build_options="clang js_optimize vaapi pulseaudio sndio"
desc_option_clang="Use clang to build"
desc_option_js_optimize="Optimize the JS used for Chromium's UI"
desc_option_vaapi="Enable support for VA-API"
desc_option_pulseaudio="Enable support for PulseAudio"
desc_option_sndio="Enable support for sndio"

hostmakedepends="$(vopt_if clang clang) python pkgconf perl gperf bison ninja nodejs hwids
 libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk)"
makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
 libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel
 libXcomposite-devel speech-dispatcher-devel libXrandr-devel mit-krb5-devel
 libXScrnSaver-devel alsa-lib-devel snappy-devel libdrm-devel
 libxml2-devel libxslt-devel $(vopt_if pulseaudio pulseaudio-devel) libexif-devel
 libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel
 libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel
 minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
 re2-devel fontconfig-devel freetype-devel opus-devel
 ffmpeg-devel libva-devel python-setuptools xcb-proto
 $(vopt_if sndio sndio-devel)"
depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils"

case "$XBPS_TARGET_MACHINE" in
	ppc64*-musl) makedepends+=" libucontext-devel" ;;
esac

build_options_default="clang js_optimize vaapi pulseaudio"

post_patch() {
	if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
		for f in "${FILESDIR}"/musl-patches/*.patch; do
			echo "Applying $f"
			patch -Np0 -i "$f"
		done
	fi

	case "${XBPS_TARGET_MACHINE}" in
	i686*)
		for f in "${FILESDIR}"/i686-patches/*.patch; do
			echo "Applying $f"
			patch -Np0 -i "$f"
		done
		;;
	esac

	# Use the file at run time instead of effectively compiling it in
	sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
		-i services/device/public/cpp/usb/BUILD.gn

	if [ -z "$build_option_clang" ]; then
		# Work around bug in blink in which GCC 6 optimizes away null pointer checks
		# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833524
		# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68853#c2
		sed -i '/config("compiler")/ a cflags_cc = [ "-fno-delete-null-pointer-checks" ]' \
			build/config/linux/BUILD.gn
	fi

	# prevent annoying errors when regenerating gni
	vsed -i 's,^update_readme$,#update_readme,' \
		third_party/libvpx/generate_gni.sh
}
do_configure() {
	local system="" conf=()
	export -n CFLAGS CXXFLAGS LDFLAGS

	if [ "$build_option_clang" ]; then
		export CC=clang
		export CXX=clang++
	fi

	export LDFLAGS="-pthread"

	# compile gn early, so it can be used to generate gni stuff
	AR="ar" CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD LD=$CXX_FOR_BUILD \
	python2 tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles

	# we need to generate ppc64 stuff for libvpx as it's not shipped
	# this has to be done before unbundling, but after gn is built
	# comment out if we switch back to system libvpx again later
	case "$XBPS_TARGET_MACHINE" in
		ppc64*)
			pushd third_party/libvpx
			mkdir -p source/config/linux/ppc64
			# need PATH to find gn
			PATH="${wrksrc}/out/Release:$PATH" ./generate_gni.sh || \
				msg_error "failed to generate libvpx gni"
			popd
			;;
	esac

	# Use system-provided libraries.
	# TODO: use_system_hunspell (upstream changes needed).
	# TODO: use_system_libsrtp.
	# TODO: use_system_libusb (http://crbug.com/266149).
	# TODO: use_system_ssl (http://crbug.com/58087).
	# TODO: use_system_sqlite (http://crbug.com/22208).
	# TODO: use_system_icu (segfaults)
	# XXX xtraeme: broken currently
	# use_system_protobuf
	# use_system_v8=1
	# use_system_zlib=1
	# bzip2 jsoncpp minizip xdg_utils speex
	system="
		ffmpeg
		flac
		fontconfig
		freetype
		harfbuzz-ng
		libdrm
		libevent
		libjpeg
		libpng
		libwebp
		libxml
		libxslt
		opus
		re2
		snappy
	"

	# remove build scripts for system provided dependencies - basically does the
	# same as the bundeled script to remove bundeled libs, but this way we don't
	# have to list the remaining libs
	for LIB in ${system} libjpeg_turbo; do
		find -type f -path "*third_party/$LIB/*" \
			\! -path "*third_party/$LIB/chromium/*" \
			\! -path "*third_party/$LIB/google/*" \
			\! -path './base/third_party/icu/*' \
			\! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
			\! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \
			\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
			-delete
	done

	# switch to system provided dependencies
	python2 build/linux/unbundle/replace_gn_files.py --system-libraries ${system}

	python2 third_party/libaddressinput/chromium/tools/update-strings.py

	# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
	# Note: These are for Void Linux use ONLY.
	conf+=(
		'google_api_key="AIzaSyA9gWazKaHaNIPPg2hrMj6_ZSG8AFmq738"'
		'google_default_client_id="126659149423-hoo6ickbk3p1u2qjsdsp0ddciurfvb4t.apps.googleusercontent.com"'
		'google_default_client_secret="_ozIx2D-DKm_se_2NPwV4l5b"'
	)

	conf+=(
		'enable_nacl=false'
		'enable_nacl_nonsfi=false'
		"is_clang=$(vopt_if clang true false)"
		'is_debug=false'
		'clang_use_chrome_plugins=false'
		'custom_toolchain="//build/toolchain/linux/unbundle:default"'
		'host_toolchain="//build/toolchain/linux/unbundle:default"'
		'blink_symbol_level=0'
		'symbol_level=0'
		'icu_use_data_file=true'
		'use_allocator="none"'
		'use_allocator_shim=false'
		'use_cups=true'
		'use_sysroot=false'
		'use_system_harfbuzz=true'
		'enable_widevine=true'
		'enable_hangout_services_extension=true'
		'is_desktop_linux=true'
	)

	conf+=(
		"use_vaapi=$(vopt_if vaapi true false)"
	)

	conf+=(
		"closure_compile=$(vopt_if js_optimize true false)"
	)

	conf+=(
		"use_pulseaudio=$(vopt_if pulseaudio true false)"
	)

	# Use explicit library dependencies instead of dlopen.
	# GN only has "link_pulseaudio", the other options used before are not available atm
	# linux_link_cups=true
	# linux_link_gsettings=true
	# linux_link_libpci=true
	# linux_link_libspeechd=true
	# libspeechd_h_prefix=\"speech-dispatcher/\""
	conf+=( "link_pulseaudio=$(vopt_if pulseaudio true false)" )

	conf+=(
		"use_sndio=$(vopt_if sndio true false)"
	)

	# Never use bundled binutils/gold binary.
	conf+=(
		"binutils_path=\"${XBPS_CROSS_BASE}/usr/bin\""
		"gold_path=\"${XBPS_CROSS_BASE}/usr/bin/ld.gold\""
		'linux_use_bundled_binutils=false'
		'use_custom_libcxx=false'
		'use_lld=false'
	)

	# XXX: gold broken with musl and i686
	case "${XBPS_TARGET_MACHINE}" in
	*-musl) conf+=( 'use_gold=false' ) ;;
	i686*) conf+=( 'use_gold=false' ) ;;
	*) conf+=( 'use_gold=true' ) ;;
	esac

	# Always support proprietary codecs.
	# Enable H.264 support in bundled ffmpeg.
	conf+=(
		'proprietary_codecs=true'
		'ffmpeg_branding="Chrome"'
	)

	# Make sure that -Werror doesn't get added to CFLAGS by the build system.
	# Depending on GCC version the warnings are different and we don't want
	# the build to fail because of that.
	conf+=(
		'treat_warnings_as_errors=false'
		'fatal_linker_warnings=false'
	)

	# Save space by removing DLOG and DCHECK messages (about 6% reduction).
	# conf+=" logging_like_official_build=true"
	conf+=( fieldtrial_testing_like_official_build=true )

	case "${XBPS_TARGET_MACHINE}" in
		x86_64*) conf+=( 'target_cpu="x64"' ) ;;
		i686*) conf+=( 'target_cpu="x86"' ) ;;
		arm*) conf+=( 'target_cpu="arm"' ) ;;
		aarch64*) conf+=( 'target_cpu="arm64"' ) ;;
		ppc64*) conf+=( 'target_cpu="ppc64"' ) ;;
	esac

	out/Release/gn gen out/Release --args="${conf[*]}"
}
do_build() {
	if [ "$build_option_clang" ]; then
		export CC=clang
		export CXX=clang++
	fi

	ninja -C out/Release ${makejobs} chrome chromedriver mksnapshot
}
do_install() {
	vinstall out/Release/chrome 755 usr/lib/${pkgname} ${pkgname}
	vinstall out/Release/chromedriver 755 usr/lib/${pkgname} chromedriver
	vinstall out/Release/libEGL.so 755 usr/lib/${pkgname} libEGL.so
	vinstall out/Release/libGLESv2.so 755 usr/lib/${pkgname} libGLESv2.so

	vcopy "out/Release/*.bin" usr/lib/chromium
	vcopy "out/Release/*.pak" usr/lib/chromium

	vmkdir usr/lib/chromium/locales
	vcopy "out/Release/locales/*.pak" usr/lib/chromium/locales

	vmkdir usr/lib/chromium/swiftshader
	vcopy "out/Release/swiftshader/*.so" usr/lib/chromium/swiftshader

	vinstall ${FILESDIR}/chromium.desktop 644 usr/share/applications

	vinstall out/Release/icudtl.dat 0644 usr/lib/chromium

	for size in 24 48 64 128 256; do
		vinstall "chrome/app/theme/chromium/product_logo_${size}.png" \
			644 \
			usr/share/icons/hicolor/${size}x${size}/apps chromium.png
	done
	for size in 16 32; do
		vinstall "chrome/app/theme/default_100_percent/chromium/product_logo_${size}.png" \
			644 \
			usr/share/icons/hicolor/${size}x${size}/apps chromium.png
	done

	vbin ${FILESDIR}/chromium.sh chromium
	vlicense LICENSE
	ln -s /usr/lib/chromium/chromedriver ${DESTDIR}/usr/bin/chromedriver
}

Progress has been made! https://github.com/Logarithmus/void-packages/blob/ungoogled-chromium/srcpkgs/ungoogled-chromium/template
[30/192] CXX src/base/files/file_posix.o
[31/192] CXX src/base/json/json_parser.o
../../../tools/gn/src/base/json/json_parser.cc: In member function 'void base::internal::JSONParser::EatWhitespaceAndComments()':
../../../tools/gn/src/base/json/json_parser.cc:252:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
  252 |         if (!(c == '\n' && index_ > 0 && input_[index_ - 1] == '\r')) {
      |         ^~
../../../tools/gn/src/base/json/json_parser.cc:256:7: note: here
  256 |       case ' ':
      |       ^~~~
[32/192] CXX src/base/files/file_util_posix.o
[33/192] CXX src/gn/action_values.o
In file included from ../../../tools/gn/src/gn/action_values.cc:5:
../../../tools/gn/src/gn/action_values.h: In member function 'void ActionValues::set_depfile(const SubstitutionPattern&)':
../../../tools/gn/src/gn/action_values.h:46:69: warning: implicitly-declared 'SubstitutionPattern& SubstitutionPattern::operator=(const SubstitutionPattern&)' is deprecated [-Wdeprecated-copy]
   46 |   void set_depfile(const SubstitutionPattern& depfile) { depfile_
..............................

many pages of logs...
In file included from ../../../tools/gn/src/gn/scope.h:17,
                 from ../../../tools/gn/src/gn/args.h:14,
                 from ../../../tools/gn/src/gn/xcode_writer.cc:23:
../../../tools/gn/src/gn/err.h:58:3: note: because 'Err' has user-provided 'Err::Err(const Err&)'
   58 |   Err(const Err& other);
      |   ^~~
[191/192] AR gn_lib.a
[192/192] LINK gn
ERROR at //chrome/browser/safe_browsing/BUILD.gn:80:5: Undefined identifier.
    sources += [
    ^------
See //chrome/browser/BUILD.gn:1916:5: which caused the file to be included.
    "//chrome/browser/safe_browsing",
    ^-------------------------------
=> ERROR: ungoogled-chromium-87.0.4280.66_1: do_configure: 'out/Release/gn gen out/Release --args="${conf[*]}"' exited with 1
=> ERROR:   in do_configure() at srcpkgs/ungoogled-chromium/template:273

Any ideas @Eloston ? Thanks!

So glad to see this!

@dm17 Seems a bit counter-intuitive to include Google API keys, don't you think? :)
More importantly, I'm not entirely sure why you'd be getting a syntax error in that GN file. Are you applying additional patches on top of the ones from ungoogled-chromium? Could they be conflicting?

@Eloston yes, I think Void has some patches for GN. Honestly I don't know their purpose. Unfortunately, no spare time to tinker with that right now.

@pbui @q66 mind if I ask for some clues, since you guys work on Void's chromium package? :)
Thanks.

@dm17 Forgive me if I misunderstand. Does your template build UG from scratch?
Is there any reason for the void package template to not just download the prebuilt ungoogled chromium binary and add it to the the user's system?

Are there x86_64-musl and i686 binaries? The disadvantage of using binaries is inability to use custom build options, e. g. using system provided shared libraries instead of bundled ones.
9 декабря 2020 г. 20:14:59 GMT+03:00, David Frick<EMAIL_ADDRESS>пишет:

@dm17 Forgive me if I misunderstand. Does your template build UG from
scratch?
Is there any reason for the void package template to not just download
the prebuilt ungoogled chromium binary and add it to the the user's
system?

@dm17 Forgive me if I misunderstand. Does your template build UG from scratch?
Is there any reason for the void package template to not just download the prebuilt ungoogled chromium binary and add it to the the user's system?

I trust we can figure this out how to build it for Void :)

Per https://ungoogled-software.github.io/ungoogled-chromium-binaries/ (I think this is the correct link), there appear to be x86_64musl builtds, but I am not seeing i686 binaries. Good point on the custom build options, I did not think about that. My concern is that is seems most of the void maintainers do not want to package UG since it would take up quite a bit of resources on the servers to build. Is there some way Void can allow a build script as a package template to build it?

Per https://ungoogled-software.github.io/ungoogled-chromium-binaries/ (I think this is the correct link), there appear to be x86_64musl builtds, but I am not seeing i686 binaries. Good point on the custom build options, I did not think about that. My concern is that is seems most of the void maintainers do not want to package UG since it would take up quite a bit of resources on the servers to build. Is there some way Void can allow a build script as a package template to build it?

That has been rehashed a lot... Let's leave that discussion separate: it is OK that Void doesn't want to build two separate chromium pkgs. @Logarithmus & I are cool building it ourselves (or one of us building it and sharing it in a private repository). Who knows, maybe the Void devs will get tired of being the product and make their 1 chromium package the non-Google version :)

we will not be accepting any foreign binaries in Void as policy

also, if you don't want to be the product, use firefox
there is no such thing as "ungoogled" chromium, regardless of what the label says

@dm17, I understand now. That is super cool. Although packaging this is way beyond me. I stand behind you all the way as a cheerleader. I will definitely use this if it succeeds!

@q66, So I have been talking with the maker of grapheneOS (very smart, security minded guy who does a lot of cybersecurity stuff) and his argument, which I found super compelling, was that the only secure browser for desktop is chromium based. He made compelling points that firefox is not as secure as people suggest.  In fact, talking with him is the reason I will be building this if possible on my desktop. I understand UG might be some security patches behind upsttream to fix exploits, but it has a much better sandboxing situation than firefox. I have come to the conclusion after taking with him and others that ungoogled chromium, bromite, and vanadium are probably the only relatively secure and privacy respecting browsers.
That being said, I understand why the void maintainers do not want to package UG. I remember building it on Arch Linux and I am pretty sure it took like a day or two. It was pretty hefty.

also, if you don't want to be the product, use firefox
there is no such thing as "ungoogled" chromium, regardless of what the label says

This is a common trend in political discussions where people just state things over and over and the deeper you dig into their references the more you just find the same claim. Firefox = Good, Chrome = bad, get it? However, even privacytools.io (PTIO) says you need to mod Firefox out of the box in order get privacy. After looking into the idiosyncrasies, I believe that ungoogled-chromium gives us better privacy than Firefox+ PTIO mods (to make a very long story shorter than I'd like).
I'm not trying to force any more work from you Void devs - just trying to get a little more help in building this package... Would you be willing to give us some pointers so we can build the package ourselves (please with sugar on top) - since you're an expert Void package builder?

arguing which one is theoretically technically superior is entirely irrelevant; the simple truth is

by using any chromium based browser, you are either directly or indirectly giving google more power and reinforcing their strangehold on the web
you are 100% reliant on google continuing to develop their upstream and either accepting or working around their choices, since with a codebase like chromium any independent fork is doomed to fail, and google is an upstream hostile to free software philosophy and will prioritize their commercial interests first and foremost

there is exactly one way to avoid that and that's using a browser unrelated to chromium, individual benefits be damned - and there you basically have exactly two choices, and that is either firefox (which is generally the choice more compatible with modern web, even if occasionally questionable) or one of the classic webkit browsers (webkit2gtk particularly, e.g. epiphany aka gnome web)
or, you can keep lying to yourself, in which case i have nothing more to say to you
either way, i will not be debugging your out of tree build templates, i have better things to do

arguing which one is theoretically technically superior is entirely irrelevant; the simple truth is

by using any chromium based browser, you are either directly or indirectly giving google more power and reinforcing their strangehold on the web
you are 100% reliant on google continuing to develop their upstream and either accepting or working around their choices, since with a codebase like chromium any independent fork is doomed to fail, and google is an upstream hostile to free software philosophy and will prioritize their commercial interests first and foremost

there is exactly one way to avoid that and that's using a browser unrelated to chromium, individual benefits be damned - and there you basically have exactly two choices, and that is either firefox (which is generally the choice more compatible with modern web, even if occasionally questionable) or one of the classic webkit browsers (webkit2gtk particularly, e.g. epiphany aka gnome web)
or, you can keep lying to yourself, in which case i have nothing more to say to you
either way, i will not be debugging your out of tree build templates, i have better things to do

This is exactly why I replied the way I did. You're coming into a ungoogled-chromium chat and basically saying their development is useless. You're clearly unable to see your own ideology, and calling me a liar does not help your argumentation. You're arguing that one piece of OSS is more corrupted than another piece of OSS - which is the same as saying "my pony in this race is better than yours." You're forgetting about the wisdom of having more than one pony in a race!
"If you can't say anything useful, then don't say anything at all." - Every mom ever.

I think the end goal should be the convergence of the security offered by the current Chormium offerings(ungoogled-chromium, bromite, vanadium) with the privacy offed by the open source community. I think without security, you can not have privacy. But without privacy, you can still have security. and right not the Chormium offerings sans googles have the best mix of both.

@dm17 look, it is you who brought me here, and not once i have claimed that ungoogled-chromium's development is useless; the only thing  i have claimed is that calling it ungoogled is a huge stretch, which it is
and neither of my two points above is factually wrong; individual technical benefits are one thing, the greater good is another, and the latter is more important in the long run

i have claimed is that calling it ungoogled is a huge stretch, which it is

Please link to your best supporting source :)

ERROR at //chrome/browser/safe_browsing/BUILD.gn:80:5: Undefined identifier.
    sources += [
    ^------
See //chrome/browser/BUILD.gn:1916:5: which caused the file to be included.
    "//chrome/browser/safe_browsing",
    ^-------------------------------

looks to me like this gets broken in inox-patchset/0001-fix-building-without-safebrowsing.patch+732, where the sources declaration is "commented" out using a if(false). no idea how that ever built outside of void tbh.

@Eloston @tangalbert919 thoughts on what nonchip found above?

The problem is that it went into if (safe_browsing_mode != 0) in chrome/browser/safe_browsing/BUILD.gn:72.
If it's all set how it should be, nothing will be appended to sources so there's no need to declare it.
Do you have safe_browsing_mode=0 in flags.gn?

@Luka-Filipovic shouldn't that flag then also be used for the patched if statement? or maybe a patch to flags.gn to set that to false on default?

@Luka-Filipovic shouldn't that flag then also be used for the patched if statement?
Yes, that would definitely be more correct way to do it, but in the end it wouldn't matter since safe_browsing_mode=0 flag is mandatory and I'm sure build would fail elsewhere if it wasn't set.
or maybe a patch to flags.gn to set that to false on default?
flags.gn is a file with list of necessary flags for building ungoogled chromium. It is stored in core ungoogled repo.
OS specific build script should append that list on out/Default/args.gn.

@Luka-Filipovic shouldn't that flag then also be used for the patched if statement?

Yes, that would definitely be more correct way to do it, but in the end it wouldn't matter since safe_browsing_mode=0 flag is mandatory and I'm sure build would fail elsewhere if it wasn't set.

or maybe a patch to flags.gn to set that to false on default?

flags.gn is a file with list of necessary flags for building ungoogled chromium. It is stored in core ungoogled repo.
OS specific build script should append that list on out/Default/args.gn.

Great, so based on that do you have any changes to https://github.com/Logarithmus/void-packages/blob/ungoogled-chromium/srcpkgs/ungoogled-chromium/template that I can run to see if it gets us past this sticking point?
Thanks.

        ...
	./${uc_dir}/utils/domain_substitution.py apply -r ${uc_dir}/domain_regex.list -f ${uc_dir}/domain_substitution.list -c build/domsubcache.tar.gz .

        cp ./${uc_dir}/flags.gn out/Release/args.gn
        # Use this if you have flags specific for this build
        # cat ./${root_dir}/flags.void.gn >> out/Release/args.gn

	# Use the file at run time instead of effectively compiling it in
        ...

Try to insert this 3 lines on 80. Just make sure paths are accurate.

I was able to get your fix to work with a little creativity @Luka-Filipovic & @nonchip - however I am still stuck shortly after line 80. I'll concatenate the loads of output:
In file included from ../../../tools/gn/src/gn/scope.h:17,                  from ../../../tools/gn/src/gn/args.h:14,                  from ../../../tools/gn/src/gn/xcode_writer.cc:23: ../../../tools/gn/src/gn/err.h:58:3: note: because 'Err' has user-provided 'Err::Err(const Err&)'    58 |   Err(const Err& other);       |   ^~~ [191/192] AR gn_lib.a [192/192] LINK gn ERROR at //chrome/browser/safe_browsing/BUILD.gn:80:5: Undefined identifier.     sources += [     ^------ See //chrome/browser/BUILD.gn:1916:5: which caused the file to be included.     "//chrome/browser/safe_browsing",     ^------------------------------- => ERROR: ungoogled-chromium-87.0.4280.88_1: do_configure: 'out/Release/gn gen out/Release --args="${conf[*]}"' exited with 1 => ERROR:   in do_configure() at srcpkgs/ungoogled-chromium/template:275
Any ideas?
Thanks.

Just bumping to say: "Keep up the good work!."

@dm17 you didn't say what you did, but that doesn't look like getting our fix to work, because that's exactly the same error message.

@dm17 you didn't say what you did, but that doesn't look like getting our fix to work, because that's exactly the same error message.

@dm17 you didn't say what you did, but that doesn't look like getting our fix to work, because that's exactly the same error message.

Is the fix assumed or did someone try the fix and get past this point? It only takes me a couple minutes to get that far into the build.

@dm17 you didn't say what you did, but that doesn't look like getting our fix to work, because that's exactly the same error message.

Is the fix assumed or did someone try the fix and get past this point? It only takes me a couple minutes to get that far into the build.

Seems like calling gn gen with --args on line 273 overwrites anything set in args.gn. Try building without --args or hardcode append all flags to conf in build script.

Seems like calling gn gen with --args on line 273 overwrites anything set in args.gn. Try building without --args or hardcode append all flags to conf in build script.

I wonder if this is happening because I get the OP's error if I do not clean up the build each time:
https://github.com/Eloston/ungoogled-chromium/issues/494#issuecomment-421259060
Anyway, @Luka-Filipovic commenting out args on line 273 did not get me past the breaking point.

I wonder if this is happening because I get the OP's error if I do not clean up the build each time:
https://github.com/Eloston/ungoogled-chromium/issues/494#issuecomment-421259060
Anyway, @Luka-Filipovic commenting out args on line 273 did not get me past the breaking point.

Append all flags from here to conf in build script and try a new build.
You can also run gn args out/Release --list=safe_browsing_mode to check if it's set correctly.

Append all flags from here to conf in build script and try a new build.
You can also run gn args out/Release --list=safe_browsing_mode to check if it's set correctly.

Thanks @Luka-Filipovic, I think we're on the next error to solve:
[192/192] LINK gn
ERROR at //build/config/sysroot.gni:64:7: Assertion failed.
      assert(
      ^-----
Missing sysroot (//build/linux/debian_sid_amd64-sysroot). To fix, run: build/linux/sysroot_scripts/install-sysroot.py --arch=amd64
See //build/config/sysroot.gni:65:11:
          exec_script("//build/dir_exists.py",
          ^-----------------------------------
This is where it was set.
See //chrome/installer/BUILD.gn:8:1: whence it was imported.
import("//build/config/sysroot.gni")
^----------------------------------
See //BUILD.gn:74:5: which caused the file to be included.
    "//chrome/installer",
    ^-------------------
=> ERROR: ungoogled-chromium-87.0.4280.88_1: do_configure: 'out/Release/gn gen out/Release' exited with 1
=> ERROR:   in do_configure() at srcpkgs/ungoogled-chromium/template:275

Thanks @Luka-Filipovic, I think we're on the next error to solve:
[192/192] LINK gn
ERROR at //build/config/sysroot.gni:64:7: Assertion failed.
      assert(
      ^-----
Missing sysroot (//build/linux/debian_sid_amd64-sysroot). To fix, run: build/linux/sysroot_scripts/install-sysroot.py --arch=amd64
See //build/config/sysroot.gni:65:11:
          exec_script("//build/dir_exists.py",
          ^-----------------------------------
This is where it was set.
See //chrome/installer/BUILD.gn:8:1: whence it was imported.
import("//build/config/sysroot.gni")
^----------------------------------
See //BUILD.gn:74:5: which caused the file to be included.
    "//chrome/installer",
    ^-------------------
=> ERROR: ungoogled-chromium-87.0.4280.88_1: do_configure: 'out/Release/gn gen out/Release' exited with 1
=> ERROR:   in do_configure() at srcpkgs/ungoogled-chromium/template:275

It's cool to see that there's interest in a Void Linux build of ungoogled-chromium (even if it doesn't get integrated in the main repo)! Hope this gains enough traction

It's cool to see that there's interest in a Void Linux build of ungoogled-chromium (even if it doesn't get integrated in the main repo)! Hope this gains enough traction

@rc-05 see it as the best trade off between privacy and security.

@rc-05 see it as the best trade off between privacy and security.

Apparently Void users working together to get it working really upsets the Void admin "Duncaen" - so we're blocked from discussing it on their GitHub:
https://github.com/void-linux/void-packages/issues/22877#issuecomment-765436746
However, it is no problem; thankfully Eloston is open to letting us use this thread to work on it. Also, there's a new Telegram channel focused on getting ungoogled stuff working on Void: t.me/ungoogled

Apparently Void users working together to get it working really upsets the Void admin "Duncaen" - so we're blocked from discussing it on their GitHub:
https://github.com/void-linux/void-packages/issues/22877#issuecomment-765436746
However, it is no problem; thankfully Eloston is open to letting us use this thread to work on it. Also, there's a new Telegram channel focused on getting ungoogled stuff working on Void: t.me/ungoogled

Thanks @Luka-Filipovic, I think we're on the next error to solve:
[192/192] LINK gn
ERROR at //build/config/sysroot.gni:64:7: Assertion failed.
      assert(
      ^-----
Missing sysroot (//build/linux/debian_sid_amd64-sysroot). To fix, run: build/linux/sysroot_scripts/install-sysroot.py --arch=amd64
See //build/config/sysroot.gni:65:11:
          exec_script("//build/dir_exists.py",
          ^-----------------------------------
This is where it was set.
See //chrome/installer/BUILD.gn:8:1: whence it was imported.
import("//build/config/sysroot.gni")
^----------------------------------
See //BUILD.gn:74:5: which caused the file to be included.
    "//chrome/installer",
    ^-------------------
=> ERROR: ungoogled-chromium-87.0.4280.88_1: do_configure: 'out/Release/gn gen out/Release' exited with 1
=> ERROR:   in do_configure() at srcpkgs/ungoogled-chromium/template:275

This you progress past this error? I am in no position to help you on that one since I'm not building it myself, but if you encounter any other error feel free to share it here

Thanks @Luka-Filipovic, I think we're on the next error to solve:
[192/192] LINK gn
ERROR at //build/config/sysroot.gni:64:7: Assertion failed.
      assert(
      ^-----
Missing sysroot (//build/linux/debian_sid_amd64-sysroot). To fix, run: build/linux/sysroot_scripts/install-sysroot.py --arch=amd64
See //build/config/sysroot.gni:65:11:
          exec_script("//build/dir_exists.py",
          ^-----------------------------------
This is where it was set.
See //chrome/installer/BUILD.gn:8:1: whence it was imported.
import("//build/config/sysroot.gni")
^----------------------------------
See //BUILD.gn:74:5: which caused the file to be included.
    "//chrome/installer",
    ^-------------------
=> ERROR: ungoogled-chromium-87.0.4280.88_1: do_configure: 'out/Release/gn gen out/Release' exited with 1
=> ERROR:   in do_configure() at srcpkgs/ungoogled-chromium/template:275

This you progress past this error? I am in no position to help you on that one since I'm not building it myself, but if you encounter any other error feel free to share it here

Thanks @Luka-Filipovic, I think we're on the next error to solve:
[192/192] LINK gn
ERROR at //build/config/sysroot.gni:64:7: Assertion failed.
      assert(
      ^-----
Missing sysroot (//build/linux/debian_sid_amd64-sysroot). To fix, run: build/linux/sysroot_scripts/install-sysroot.py --arch=amd64
See //build/config/sysroot.gni:65:11:
          exec_script("//build/dir_exists.py",
          ^-----------------------------------
This is where it was set.
See //chrome/installer/BUILD.gn:8:1: whence it was imported.
import("//build/config/sysroot.gni")
^----------------------------------
See //BUILD.gn:74:5: which caused the file to be included.
    "//chrome/installer",
    ^-------------------
=> ERROR: ungoogled-chromium-87.0.4280.88_1: do_configure: 'out/Release/gn gen out/Release' exited with 1
=> ERROR:   in do_configure() at srcpkgs/ungoogled-chromium/template:275

This you progress past this error? I am in no position to help you on that one since I'm not building it myself, but if you encounter any other error feel free to share it here

Yes, that was my last attempt. Thanks.

Thanks @Luka-Filipovic, I think we're on the next error to solve:
[192/192] LINK gn
ERROR at //build/config/sysroot.gni:64:7: Assertion failed.
      assert(
      ^-----
Missing sysroot (//build/linux/debian_sid_amd64-sysroot). To fix, run: build/linux/sysroot_scripts/install-sysroot.py --arch=amd64
See //build/config/sysroot.gni:65:11:
          exec_script("//build/dir_exists.py",
          ^-----------------------------------
This is where it was set.
See //chrome/installer/BUILD.gn:8:1: whence it was imported.
import("//build/config/sysroot.gni")
^----------------------------------
See //BUILD.gn:74:5: which caused the file to be included.
    "//chrome/installer",
    ^-------------------
=> ERROR: ungoogled-chromium-87.0.4280.88_1: do_configure: 'out/Release/gn gen out/Release' exited with 1
=> ERROR:   in do_configure() at srcpkgs/ungoogled-chromium/template:275

This you progress past this error? I am in no position to help you on that one since I'm not building it myself, but if you encounter any other error feel free to share it here

Yes, that was my last attempt. Thanks.

@dm17 I hope that if y'all get get it working, maybe the void team can at least include the script or something. Their main concern in not including it as a package is that it takes too much resources to build from source (Chromium and most browsers are super resource heavily unfortunately). However, it would be nice to at least have a script easily available to build it from source.

@dm17 I hope that if y'all get get it working, maybe the void team can at least include the script or something. Their main concern in not including it as a package is that it takes too much resources to build from source (Chromium and most browsers are super resource heavily unfortunately). However, it would be nice to at least have a script easily available to build it from source.

@dm17 I hope that if y'all get get it working, maybe the void team can at least include the script or something. Their main concern in not including it as a package is that it takes too much resources to build from source (Chromium and most browsers are super resource heavily unfortunately). However, it would be nice to at least have a script easily available to build it from source.

That, or another alternative is to set up a repo for ungoogled-chromium if someone is willing to build and maintain the repo with the native package. Of course if the xbps package is distributed by upstream it's not a problem, at least for me.

@dm17 I hope that if y'all get get it working, maybe the void team can at least include the script or something. Their main concern in not including it as a package is that it takes too much resources to build from source (Chromium and most browsers are super resource heavily unfortunately). However, it would be nice to at least have a script easily available to build it from source.

That, or another alternative is to set up a repo for ungoogled-chromium if someone is willing to build and maintain the repo with the native package. Of course if the xbps package is distributed by upstream it's not a problem, at least for me.

ok sorry @dm17 but the cognitive dissonance here is a bit embarrassing.

Apparently Void users working together to get it working really upsets the Void admin "Duncaen" - so we're blocked from discussing it on their GitHub:
void-linux/void-packages#22877 (comment)

there were multiple tickets opened over there asking stuff along "why don't you just distribute a bunch of our binary blobs you have no control over even tho it's clearly against your rules", nobody is upset people get together making a thing, they're upset people spam their support tickets to try and impose their wishes on them even though they've been told otherwise multiple times.
and the void-packages issue tracker is just not the place to "get together", it's a place for, well, issues. kinda in the name yknow.

ok sorry @dm17 but the cognitive dissonance here is a bit embarrassing.

Apparently Void users working together to get it working really upsets the Void admin "Duncaen" - so we're blocked from discussing it on their GitHub:
void-linux/void-packages#22877 (comment)

there were multiple tickets opened over there asking stuff along "why don't you just distribute a bunch of our binary blobs you have no control over even tho it's clearly against your rules", nobody is upset people get together making a thing, they're upset people spam their support tickets to try and impose their wishes on them even though they've been told otherwise multiple times.
and the void-packages issue tracker is just not the place to "get together", it's a place for, well, issues. kinda in the name yknow.

ok sorry @dm17 but the cognitive dissonance here is a bit embarrassing.

Apparently Void users working together to get it working really upsets the Void admin "Duncaen" - so we're blocked from discussing it on their GitHub:
void-linux/void-packages#22877 (comment)

there were multiple tickets opened over there asking stuff along "why don't you just distribute a bunch of our binary blobs you have no control over even tho it's clearly against your rules", nobody is upset people get together making a thing, they're upset people spam their support tickets to try and impose their wishes on them even though they've been told otherwise multiple times.
and the void-packages issue tracker is just not the place to "get together", it's a place for, well, issues. kinda in the name yknow.
that said, since it's (hopefully) obvious we won't maintain yet another chrome in the main repo any time soon and the maintaining will have to happen in a void-packages fork, you might be interested in this little script i came up with to make that a bittle easier to use: https://gitlab.com/nonchip/void-external-repos

I think that setting up an external repository with an ungoogled-chromium package built from source is a good solution instead

ok sorry @dm17 but the cognitive dissonance here is a bit embarrassing.

Apparently Void users working together to get it working really upsets the Void admin "Duncaen" - so we're blocked from discussing it on their GitHub:
void-linux/void-packages#22877 (comment)

there were multiple tickets opened over there asking stuff along "why don't you just distribute a bunch of our binary blobs you have no control over even tho it's clearly against your rules", nobody is upset people get together making a thing, they're upset people spam their support tickets to try and impose their wishes on them even though they've been told otherwise multiple times.
and the void-packages issue tracker is just not the place to "get together", it's a place for, well, issues. kinda in the name yknow.
that said, since it's (hopefully) obvious we won't maintain yet another chrome in the main repo any time soon and the maintaining will have to happen in a void-packages fork, you might be interested in this little script i came up with to make that a bittle easier to use: https://gitlab.com/nonchip/void-external-repos

I think that setting up an external repository with an ungoogled-chromium package built from source is a good solution instead

@dm17 @Frick-David @Luka-Filipovic
Finally, I've got a bit of time for tinkering with ungoogled-chromium again.
I've read the discussion. Then I've updated my template to version 89, synchronized patches with ordinary chromium Void package, added these flags to template, just like @Luka-Filipovic advised in https://github.com/Eloston/ungoogled-chromium/issues/375#issuecomment-753900800.
Finally, I've replaced python3 with python in my template, because it seems that Chromium's build systems still relies on Python 2.7.
Surprisingly, after that build have started!

You can find the updated version ungoogled-chromium here: https://github.com/Logarithmus/void-packages/tree/ungoogled-chromium/srcpkgs/ungoogled-chromium

@Logarithmus  that is awesome! If you are applying the patches to the base chromium package does that mean that this build script will be the newest version of UG. I know UG usually is a couple versions behind,

@Logarithmus I checked out your branch for ungoogled-chromium and tried to build. Unfortunately, the build failed:

I got a different error @766F6964 & @Logarithmus, which I'll look into a bit later. Could it be that your branch of void-packages needs updating, Logarithmus?
ERROR: gettext-0.21_2: file `/usr/lib/libgettextlib-0.21.so' already installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file `/usr/lib/libgettextpo.so.0.5.7' already installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file `/usr/lib/libgettextsrc-0.21.so' already installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file `/usr/lib/libtextstyle.so.0.1.1' already installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file `/usr/lib/preloadable_libintl.so' already installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file `/usr/lib/libgettextlib.so' already installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file `/usr/lib/libgettextpo.so' already installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file `/usr/lib/libgettextpo.so.0' already installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file `/usr/lib/libgettextsrc.so' already installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file `/usr/lib/libtextstyle.so' already installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file `/usr/lib/libtextstyle.so.0' already installed by package gettext-libs-0.21_2.
Transaction failed! see above for errors.
gettext-libs-0.21_2: verifying RSA signature...
...
=> ERROR: Please see above for the real error, exiting...

Yes, I thinks my branch being outdated is the most likely reason of the
behaviour you're observing. Just do git checkout master && git pull upstream master && git checkout - && git rebase master and it should
be fine. Of course, you should add https://github.com/void-linux/void- packages as upstream remote in git before doing that.
On Thu, 2021-03-25 at 11:49 -0700, dm17 wrote:

I got a different error @766F6964 & @Logarithmus, which I'll look
into a bit later. Could it be that your branch of void-packages needs
updating, Logarithmus?
ERROR: gettext-0.21_2: file /usr/lib/libgettextlib-0.21.so' already installed by package gettext-libs-0.21_2. ERROR: gettext-0.21_2: file /usr/lib/libgettextpo.so.0.5.7' already
installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file /usr/lib/libgettextsrc-0.21.so' already installed by package gettext-libs-0.21_2. ERROR: gettext-0.21_2: file /usr/lib/libtextstyle.so.0.1.1' already
installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file /usr/lib/preloadable_libintl.so' already installed by package gettext-libs-0.21_2. ERROR: gettext-0.21_2: file /usr/lib/libgettextlib.so' already
installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file /usr/lib/libgettextpo.so' already installed by package gettext-libs-0.21_2. ERROR: gettext-0.21_2: file /usr/lib/libgettextpo.so.0' already
installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file /usr/lib/libgettextsrc.so' already installed by package gettext-libs-0.21_2. ERROR: gettext-0.21_2: file /usr/lib/libtextstyle.so' already
installed by package gettext-libs-0.21_2.
ERROR: gettext-0.21_2: file `/usr/lib/libtextstyle.so.0' already
installed by package gettext-libs-0.21_2.
Transaction failed! see above for errors.
gettext-libs-0.21_2: verifying RSA signature...
...
=> ERROR: Please see above for the real error, exiting...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@Logarithmus Thanks! I've not gotten to the same failure as @766F6964 did above:
=> ERROR:   in do_build() at srcpkgs/ungoogled-chromium/template:308```

Also looking for an easy way to checkout just your ungoogled-chromium sub directory into my already checked out void-packages repository.

I tried building with a verbose flag for ninja, got the same error. I attached the build log, maybe others will be able to understand why the error occurs.
build_log.txt

Think I found a blog describing our build issue, or at least something very similar (use Google Translate):
https://mickey-happygolucky.hatenablog.com/
Try it out if you guys have time to try another build... I'll try soon too.

@dm17 try setting use_lld=true (not ld.lld) and then add lld to template's hostmakedepends section

When trying to build the package I am able to get to running the do_build but then it errors out in which ninja complains that
error: ´´../../components/test/data/optimization_guide/simple_test.tflite´ needed by ´test_data/simple_test_tflite' missing and no known rule to make it
Error: ungoogled-chromium -90.0.4430.212_1: do_build: ńinja -C out/Release ${makejobs} chrome chromedriver mksnapshot' exited with 1
Error:    in do_build() at srcpkgs/ungoogled-chromium/template:306
does anyone know how to get pass this issue?

When trying to build the package I am able to get to running the do_build but then it errors out in which ninja complains that
error: ´´../../components/test/data/optimization_guide/simple_test.tflite´ needed by ´test_data/simple_test_tflite' missing and no known rule to make it
Error: ungoogled-chromium -90.0.4430.212_1: do_build: ńinja -C out/Release ${makejobs} chrome chromedriver mksnapshot' exited with 1
Error: in do_build() at srcpkgs/ungoogled-chromium/template:306
does anyone know how to get pass this issue?

The above instructions + the modifications to the template described here:
https://github.com/Eloston/ungoogled-chromium/issues/375#issuecomment-835858183
Can get you pretty far. Next step for us is describe in my last post above. We need to update the patches.

When trying to build the package I am able to get to running the do_build but then it errors out in which ninja complains that
error: ´´../../components/test/data/optimization_guide/simple_test.tflite´ needed by ´test_data/simple_test_tflite' missing and no known rule to make it
Error: ungoogled-chromium -90.0.4430.212_1: do_build: ńinja -C out/Release ${makejobs} chrome chromedriver mksnapshot' exited with 1
Error: in do_build() at srcpkgs/ungoogled-chromium/template:306
does anyone know how to get pass this issue?

The above instructions + the modifications to the template described here:
#375 (comment)
Can get you pretty far. Next step for us is describe in my last post above. We need to update the patches.

Yeah I did those modifications except I am pulling the latest chromium build and then patching it with the latest patches. I am trying to move beyond that line up there

When trying to build the package I am able to get to running the do_build but then it errors out in which ninja complains that
error: ´´../../components/test/data/optimization_guide/simple_test.tflite´ needed by ´test_data/simple_test_tflite' missing and no known rule to make it
Error: ungoogled-chromium -90.0.4430.212_1: do_build: ńinja -C out/Release ${makejobs} chrome chromedriver mksnapshot' exited with 1
Error: in do_build() at srcpkgs/ungoogled-chromium/template:306
does anyone know how to get pass this issue?

The above instructions + the modifications to the template described here:
#375 (comment)
Can get you pretty far. Next step for us is describe in my last post above. We need to update the patches.

Yeah I did those modifications except I am pulling the latest chromium build and then patching it with the latest patches. I am trying to move beyond that line up there

Not sure what you're missing that I did to get past the ninja issue. A few people were discussing that in here - so might be most efficient to join & discuss: https://t.me/ungoogled

I don't know if someone still try compiling ungoogled chromium under musl void (since I don't have account on telegram) but I managed to compile 91.0.4472.114 basing on original void template.
here is quick howto:

Go into chromium template directory. Clone ungoogled chromium. Make sure version of chromium from template and ungoogled is the same (now it is 91.0.4472.114).
In template at the end on post_patch() add:

"${FILESDIR}"/ungoogled-chromium/utils/prune_binaries.py . "${FILESDIR}"/ungoogled-chromium/pruning.list
"${FILESDIR}"/ungoogled-chromium/utils/patches.py apply . "${FILESDIR}"/ungoogled-chromium/patches
"${FILESDIR}"/ungoogled-chromium/utils/domain_substitution.py apply -r "${FILESDIR}"/ungoogled-chromium/domain_regex.list -f "${FILESDIR}"/ungoogled-chromium/domain_substitution.list -c build/domsubcache.tar.gz .

To do ungoogled chromium things
3. Remove patches/fix-crash-in-ThemeService.patch - ungoogled chromium has the same patch
4. Remove all patches/xxx-ppc64le-* and files/musl-patches/xxx-ppc64le-*  (this is probably totally unneccesary)
5. Remove patches/sndio.patch and remove adding use_sndio flag from do_configure() - I'm not sure what is it doing, but it conflicts with patches from ungoogled chromium, I don't use sndio anyway
6. Add ungoogled flags in do_configure():
conf+=(
        'build_with_tflite_lib=false'
        'chrome_pgo_phase=0'
        'clang_use_chrome_plugins=false'
        'enable_hangout_services_extension=false'
        'enable_js_type_check=false'
        'enable_mdns=false'
        'enable_mse_mpeg2ts_stream_parser=true'
        'enable_nacl=false'
        'enable_nacl_nonsfi=false'
        'enable_one_click_signin=false'
        'enable_reading_list=false'
        'enable_remoting=false'
        'enable_reporting=false'
        'enable_service_discovery=false'
        'enable_widevine=true'
        'exclude_unwind_tables=true'
        'fieldtrial_testing_like_official_build=true'
        'google_api_key=""'
        'google_default_client_id=""'
        'google_default_client_secret=""'
        'safe_browsing_mode=0'
        'treat_warnings_as_errors=false'
        'use_official_google_api_keys=false'
        'use_unofficial_version_number=false'
)

Optional: If you want native wayland support (I use sway) add following at the end of do_configure()
conf+=(
'use_ozone=true'
'ozone_platform_wayland=true'
'ozone_platform_x11=true'
'ozone_platform="wayland"'
)

When I do all these steps I finally succeed.

I don't know if anyone is still trying to compile ungoogled chromium under musl void (since I don't have account on telegram) but I managed to compile 91.0.4472.114 basing on original void template.
https://github.com/franekjel/void-packages/tree/master/srcpkgs/chromium
here is quick howto:

Go into chromium template directory. Clone ungoogled chromium into files/ folder. Make sure version of chromium from template and ungoogled is the same (now it is 91.0.4472.114).
In template at the end on post_patch() add:

"${FILESDIR}"/ungoogled-chromium/utils/prune_binaries.py . "${FILESDIR}"/ungoogled-chromium/pruning.list
"${FILESDIR}"/ungoogled-chromium/utils/patches.py apply . "${FILESDIR}"/ungoogled-chromium/patches
"${FILESDIR}"/ungoogled-chromium/utils/domain_substitution.py apply -r "${FILESDIR}"/ungoogled-chromium/domain_regex.list -f "${FILESDIR}"/ungoogled-chromium/domain_substitution.list -c build/domsubcache.tar.gz .

to do ungoogled chromium things
3. Remove patches/fix-crash-in-ThemeService.patch - ungoogled chromium has the same patch
4. Remove all patches/xxx-ppc64le-* and files/musl-patches/xxx-ppc64le-* (this is probably totally unneccesary)
5. Remove patches/sndio.patch and remove adding use_sndio flag from do_configure() - I'm not sure what is it doing, but it conflicts with patches from ungoogled chromium, I don't use sndio anyway
6. Add ungoogled flags in do_configure():
conf+=(
        'build_with_tflite_lib=false'
        'chrome_pgo_phase=0'
        'clang_use_chrome_plugins=false'
        'enable_hangout_services_extension=false'
        'enable_js_type_check=false'
        'enable_mdns=false'
        'enable_mse_mpeg2ts_stream_parser=true'
        'enable_nacl=false'
        'enable_nacl_nonsfi=false'
        'enable_one_click_signin=false'
        'enable_reading_list=false'
        'enable_remoting=false'
        'enable_reporting=false'
        'enable_service_discovery=false'
        'enable_widevine=true'
        'exclude_unwind_tables=true'
        'fieldtrial_testing_like_official_build=true'
        'google_api_key=""'
        'google_default_client_id=""'
        'google_default_client_secret=""'
        'safe_browsing_mode=0'
        'treat_warnings_as_errors=false'
        'use_official_google_api_keys=false'
        'use_unofficial_version_number=false'
)

Optional: If you want native wayland support (I use sway) add following at the end of do_configure()

conf+=(
    'use_ozone=true'
    'ozone_platform_wayland=true'
    'ozone_platform_x11=true'
    'ozone_platform="wayland"'
)

After all these steps I finally succeed.

Have you attempted to or had any luck compiling a more up-to-date version of Chromium for musl?

Have you attempted to or had any luck compiling a more up-to-date version of Chromium for musl?

No. If you look at void-packages you will see that every major version they usually have to add a lot of new patches. I can't do it myself, I will wait until void has a new version of chromium in the repository and then I will try to use them in ungoogled chromium as before.

Have you attempted to or had any luck compiling a more up-to-date version of Chromium for musl?

No. If you look at void-packages you will see that every major version they usually have to add a lot of new patches. I can't do it myself, I will wait until void has a new version of chromium in the repository and then I will try to use them in ungoogled chromium as before.

Any idea why Void needs lots of patches per chromium release? Not sure why that would be true... Perhaps we can just follow a more popular distro's patches (Arch's should work, generally).

So some of you may have seen my post on the void reddit about the build template I made derived from the void-packages one and the comment of franekjel (if not it doesn't matter that much, that was a first version and I'll be posting an updated template here on github, as soon as I finish setting up).
Anyway that template was for the version in the void repo (91.0.4472.114) and since that hasn't been updated, I'm currently working on a template for version 92.0.4515.159 (so far the glibc version is still compiling - [~37000/48737] obj progress into the build, will have to see if it runs, but so far so good) and plan to look into the musl build also.
TODO:

the general patches that are applied to both glibc and musl were easy to fix, only 4 minor changes, tough since there is no updated patchset from void I have no idea if those changes are enough or something will fail at runtime.
as said above I'll put the templates in a github repo as soon as I'm done testing and get set up.
might look into uploading built packages, but not sure for now as I only have an i7-6700HQ laptop to compile, and each build takes around 10h (first time with ccache, after that recompiles are faster).

Also I have a few questions, maybe someone has tried this things before:
First of all has anyone tried to compile with widevine disabled on musl ? Did it fail / not run / bad idea ? Thinking of disabling it on the musl build since it doesn't work anyway.
Related to that, anyone running chromium on musl trough a glibc chroot ? I don't have a musl system atm, but I'm wondering do you have to run both chromium and widevine inside the chroot or just widevine itself ?
Related to what franekjel, do you need to add those wayland flags at build time or can you just specify them at runtime as command line (like "chromium --ozone_platform_x11=true") ?

Any idea why Void needs lots of patches per chromium release? Not sure why that would be true..

Look at last three major chromium update in void-packages repo:
91 89 88
These aren't simple patch bump.

Related to what franekjel, do you need to add those wayland flags at build time or can you just specify them at runtime as command line (like "chromium --ozone_platform_x11=true") ?

Looks like you are right, according to this:

Experimental Ozone feature is available in the official Chrome distributions since m87. It is not required to build Ozone for Linux anymore for the purpose of testing.

I run chromium from void repo on sway with --enable-features=UseOzonePlatform --ozone-platform=wayland and it works.

Thnx. franekjel.
Anyway in other news ... looks like the void team decided to skip directly to 93.0.4577.63 so that's just great >.<

If anyone wants to privide some feedback it would be greatly appreciated, I have a repo set up for templates (check the pre-v93.0.4577.82-1 branch or the PR page) and builds (release page).
github.com/DAINRA/ungoogled-chromium-void

Is there a way to just use void's default chromium package and then toggle the flags in chrome://flags to achieve the same result. That way, one is using chromium's newest package but with telemetry disabled?

Is there a way to just use void's default chromium package and then toggle the flags in chrome://flags to achieve the same result. That way, one is using chromium's newest package but with telemetry disabled?

Not even close: https://github.com/Eloston/ungoogled-chromium#key-features

@dm17 Thanks for the clarification.

This is an old issue, that didn't show much activity recently and probably lost its significance — closing.
If you have any more information to add, let us know.

All good, have since found a better option which is using the flatpak of ungoogled-chromium. I experience too many hard-to-discern bugs in musl to use the stock package anyway.


There is any sample for ignore files?

Is possible to ignore files or folders? can be an example added to the readme?

It's possible, via rg or ack, whichever you use underneath. Simply create a .ignore file or check the documentation for rg or ack.


Activity Feed does not load on 0.12.1

Affected module
UI/Server
Describe the bug
The activity feed is not loading on 0.12.1 and an error is thrown
Error details:
An exception with message [java.sql.SQLException: Out of sort memory, consider increasing server sort buffer size [statement:"/* FeedDAO.listAfter */ SELECT json FROM thread_entity WHERE updatedAt < :after AND resolved = :resolved AND (:type IS NULL OR type = :type) AND (:status IS NULL OR taskStatus = :status) ORDER BY createdAt DESC LIMIT :limit", arguments:{positional:{0:11,1:9223372036854775807,2:null,3:false,4:null}, named:{limit:11,after:9223372036854775807,type:null,status:null,resolved:false}, finder:[]}]] was thrown while processing request.

Screenshot:

Expected behavior
Activity Feed should work correctly
Version:

OpenMetadata version: 0.12.1

Additional context
Add any other context about the problem here.

This does not seem relevant anymore. Please reopen the issue, if you are still seeing it.


raidemulator should display an error when loaded over file://

This no longer works because of the web workers, and so it it'd be nice to display some error for users rather than silently not working.

Would it make more sense to embed the web worker so it doesn't have to load over file:/// URI?

Sure.  If this is possible to fix so that it works over file://, that's even better!

It's not possible to fix over file:// but it's possible to embed the worker as source and load it via blob URL instead. I'll see what I can code up when I get a minute.


Basenames landing page

What changed? Why?
Add Basenames landing page
Notes to reviewers
How has it been tested?

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/2

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
1

Sum
2


Bump version

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io


add repositories to the summary prompt

Hey there!
I think this is a cool project, especially after being roasted by GitHub Roaster! One thing I noticed GitHub Roaster did was to incorporate repositories into the summary prompt. So, I added support for it in this PR.
I tested the code with llama3.1:8b simply because it is a smaller model.
Here's an example of a response for fasterthanlime (not that he needs any LLM generated praise xD):

I haven't tested this, but it's probably fine. Yolo! Thanks!


PR: Use Spyder's temp directory to render our welcome file

Fixes #36.

I don't understand why coverage decresed, but tests are passing, so I'm merging this one.


Add prelude

Adding prelude so that usual usage of alga would look like this would be useful:
extern crate alga;
use alga::prelude::*

Well, the user can currently do use alga::general::* or use alga::geometry::*.
I'm worried that importing a single prelude might end up being too heavy when alga will have more features from other fields of algebra. With the current option, the user that is not interested by geometry does not have to import all the geometric traits.

Hmm.. Yeah that makes sense. Lets do it that way then :D


Build 855b084f-b212-4436-88d9-377a21c53c8f: FAILURE

[avocano] 855b084f-b212-4436-88d9-377a21c53c8f status: FAILURE
View Logs
I'm an automation. Googlers: go/avocano-admin-notifiers

google_cloud_run_service.server: Modifications complete after 38s [id=locations/us-central1/namespaces/avocano/services/server]

Error: Error creating Project: googleapi: Error 409: Requested entity already exists

  with google_firebase_project.default,
  on firebase.tf line 1, in resource "google_firebase_project" "default":
   1: resource "google_firebase_project" "default" {

Failed due to same terraform state issue as detailed in https://github.com/GoogleCloudPlatform/avocano/pull/23#issuecomment-1414450710
Applying same fix to resolve.

Full solution:
if [ ! -f state.tf ]; then
  echo "terraform {
    backend gcs {
      bucket = \"terraform-${PROJECT_ID}\"
  }
}" > state.tf
fi

terraform init
terraform import google_firebase_project.default ${PROJECT_ID}/firebase  -var project=$PROJECT_ID


Move to Java17

Description
Bump dependencies and move to Java 17
Additional context

Gravitee.io Automatic Deployment
🚀 A prerelease version of this package has been published on Gravitee's private artifactory, you can:

use it directly by updating your project with version: 2.0.0-move-to-java17-SNAPSHOT
download it from Artifactory here

:tada: This PR is included in version 2.0.0 :tada:
The release is available on:

2.0.0
GitHub release

Your semantic-release bot :package::rocket:


Issue with max-locked-memory limit (malloc)

I get error messages (title) because it's just too large but I've 40GB RAM so - how can I fix that?

real-time non-blocking time  (microseconds, -R) unlimited
core file size              (blocks, -c) 0
data seg size               (kbytes, -d) unlimited
scheduling priority                 (-e) 0
file size                   (blocks, -f) unlimited
pending signals                     (-i) 159836
max locked memory           (kbytes, -l) 5128731
max memory size             (kbytes, -m) unlimited
open files                          (-n) 1024
pipe size                (512 bytes, -p) 8
POSIX message queues         (bytes, -q) 819200
real-time priority                  (-r) 0
stack size                  (kbytes, -s) 8192
cpu time                   (seconds, -t) unlimited
max user processes                  (-u) 159836
virtual memory              (kbytes, -v) unlimited
file locks                          (-x) unlimited

Hi! Most likely yes. If you paste the exact error it would help confirm. There are some more details on this resource limit described here: https://github.com/hoytech/vmtouch/blob/master/TUNING.md


ci: enable pre-commit.ci

Introduction
This PR introduce pre-commit.ci for this repository.

Not correcting any issues and problem detected by introducing pre-commit.ci check for now. A new PR will be created to address the found issues.


Open "Discussions" page on github possibly, Not Issue.

Discussions could make a place for suggestions and other interactions to take place.
Thoughts?

Since the project is still a work-in-progress, there's alot of things that needs to be done, so thanks for reminding me about opening the discussions.


MB-9605 Reweigh remarks for shipment should not show if empty

Description

modify the devseed data to not have reweigh remarks for reweighs with no weight
add condition to only render the reweigh remarks if there are any
add styling to take off the last line on a row if its the last row
add test to make sure the reweigh remarks don't get rendered if there are none to render

Reviewer Notes
Is there anything I'm missing?
I know I'll probably have merge conflicts once https://github.com/transcom/mymove/pull/7495 gets merged, so I will fix those when that happens.
Setup
Add any steps or code to run in this section to help others prepare to run your code:
make office_client_run
make server_run

Use the move with the locator of MISHRW
Code Review Verification Steps

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change

Screenshots
If this PR makes visible UI changes, an image of the finished UI can help reviewers and casual
observers understand the context of the changes. A before image is optional and
can be included at the submitter's discretion.
Consider using an animated image to show an entire workflow instead of using multiple images. You may want to use GIPHY CAPTURE for this! 📸
Please frame screenshots to show enough useful context but also highlight the affected regions.

Messages

:book:
:link: MB-9605

  Generated by :no_entry_sign: dangerJS against 04ff1c42ebf3e38924feca081032fa9f2b3aa4e6


chore: bdd-nh-1591023196 to 0.0.1

chore: Promote bdd-nh-1591023196 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


feat: implement nut-06 time

implements https://github.com/cashubtc/nuts/issues/138
not sure if this is the most idiomatic way how to implement this, advice welcome

not sure if this is the most idiomatic way how to implement this, advice welcome

I tried different approach in https://github.com/cashubtc/cdk/pull/313


Generate Testing From Existing Tests in Repo

We originally had folks make documentation before they added a script, but I like the idea of having folks share their solutions with testing first. Then, we can automatically generate the project page with testing (no requirements).

I think this may be closed with #531

Yup! This one's fixed.