apt2ostree
chromium
Our great sponsors
apt2ostree | chromium | |
---|---|---|
6 | 157 | |
66 | 13,881 | |
- | 2.5% | |
4.4 | 0.0 | |
about 2 months ago | 2 days ago | |
Python | ||
- | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
apt2ostree
-
Why Use Make
Hm yes now I remember that point about how the data is anonymous Python objects that you can pass around to functions.
Are there any open source examples? I looked around the github account, but I mostly remember this tool
https://github.com/stb-tester/apt2ostree
I'd be interested in seeing the Python config and Ninja output, to see how it works. Right now it looks to me like the dependencies are more implicit than explicit, e.g. with your copen example
---
The system I ended up with is more like Bazel, but it's not building containers, so it's a slightly different problem. But I'm interested in building containers incrementally without 'docker build'.
I like the apt lockfile idea definitely ... However I also have a bunch of other blobs and tarballs, that I might not want to check into git. I guess you just put those in OSTree?
Our config looks like this
https://github.com/oilshell/oil/blob/master/core/NINJA_subgr...
And all the code is in build/ninja* of the same repo
-
An ode to Flatpak (and Fedora Silverblue)
However, you can get pretty close yourself with a tool like this https://github.com/stb-tester/apt2ostree
-
Docker containers usually still reachable even if bound to 127.0.0.1
With apt2ostree[1] we use lockfiles to allow us to version control the exact versions that were used to build a container. This makes updating the versions explicit and controlled, and building the containers functionally reproducible - albeit not byte-for-byte reproducible.
-
Reproducible builds for Debian: a big step forward
On the subject of reproducible debian-based environments I wrote apt2ostree[1]. It applies the cargo/npm lockfile idea to debian rootfs images. From a list of packages we perform dependency resolution and generate a "lockfile" that contains the complete list of all packages, their versions and their SHAs. You can commit this lockfile to git.
You can then install Debian or Ubuntu into a chroot just based on this lockfile and end up with a functionally reproducible result. It won't be completely byte identical as your SSH keys, machine-id, etc. will be different between installations, but you'll always end up with the same packages and package versions installed for a given lockfile.
This has saved us on a few occasions where an apt upgrade had broken the workflow of some of our customers. We could see exactly which package versions changed in git history and roll-back the problematic package before working on fixing it properly. This is vastly better than the traditional `RUN apt-get install -y blah blah` you see in `Dockerfile`s.
IMO it's also more convenient than debootstrap as you don't need to worry about gpg keys, etc. when building the image. Dependency resolution and gpg key stuff is done at lockfile generation time, so the installation process can be much simpler. In theory it could be made such that only dpkg is required to do the install, rather than the whole of apt, but that's by-the-by.
apt2ostree itself is probably not interesting to most people as it depends on ostree and ninja but I think the lockfile concept as applied to debian repos could be of much broader interest.
chromium
- ZeroSSL: XSS to session hijacking, stealing a private key (and password hash)
-
A Programmable Markup Language for Typesetting [pdf]
Thanks. Yes, rendering and shaping are distinct but some of the linked libraries did one, the other, or both and the parent commenter singled out rastering which is how I ended up putting FreeType and HarfBuzz in the same sentence. Even then both are commonly used in tandem (see [1]-[9]) and have a few overlapping functionalities.
> it does support BiDi, complex script shaping
Hey, that is indeed quite good. Would you mind if I ask you how well is the support for popular Asian languages?
> linking C and Rust in WASM is unfortunately not really possible
Damn. I am not very experienced in Rust but I would not have guessed that. I apologize if I misrepresented difficulties related to targeting WASM.
[1] https://github.com/apple-oss-distributions/WebKit/tree/WebKi...
[2] https://github.com/apple-oss-distributions/WebKit/tree/WebKi...
[3] https://github.com/chromium/chromium/tree/main/third_party/f...
[4] https://github.com/chromium/chromium/tree/main/third_party/h...
[5] https://searchfox.org/mozilla-central/source/modules/freetyp...
[6] https://searchfox.org/mozilla-central/source/gfx/harfbuzz
[7] https://cs.android.com/android/platform/superproject/+/maste...
[8] https://cs.android.com/android/platform/superproject/+/maste...
[9] https://www.amazon.com/gp/help/customer/display.html?nodeId=...
- Brave browser
- A 116kb WASM of Blink that lets you run x86_64 Linux binaries in the browser
-
All 1,400 Google Chrome CLI flags
The word "Zygote" will actually be really clear to anyone who's been exposed to Chrome's multiprocess architecture.
https://chromium.googlesource.com/chromium/src/+/HEAD/docs/l...
> A zygote process is one that listens for spawn requests from a main process and forks itself in response. Generally they are used because forking a process after some expensive setup has been performed can save time and share extra memory pages.
With that background, --zygote isn't actually a flag at all. If you click on it it takes you to a string constant, but that string is actually a value for the --type flag. e.g. an unsandboxed zygote process would have `--type=zygote`.
`--type` is itself an internal flag, explaining it's lax description of "Flags spied upon from other layers.". However it is briefly described in the documentation I linked above.
- Devpod: Remote Development at Uber
-
Web Engines - Why we NEED Firefox
Chromium license is permissive: https://github.com/chromium/chromium/blob/main/LICENSE
- Emacs should become a Wayland compositor
-
Installing an old version of Chromium (V.90)
Why do you need to reverse engineer it? The source code is in this git repo https://chromium.googlesource.com/chromium/src
What are some alternatives?
ungoogled-chromium - Google Chromium, sans integration with Google
WebKit - Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.
bromite - Bromite is a Chromium fork with ad blocking and privacy enhancements; take back your browser!
brave-browser - Next generation Brave browser for Android, Linux, macOS, Windows.
termux-packages - A build system and primary set of packages for Termux.
gecko-dev - Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
sciter-js-sdk - Sciter.JS - Sciter but with QuickJS on board instead of my TIScript
iceraven-browser - Iceraven Browser
brave-core - Core engine for the Brave browser for Android, Linux, macOS, Windows. For issues https://github.com/brave/brave-browser/issues
fingerprintjs - Browser fingerprinting library. Compared to Fingerprint Pro has limited accuracy (40 - 60%), but is fully open source.
aniyomi - Unofficial fork of Tachiyomi for anime
Fenix - Firefox for Android