惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
P
Palo Alto Networks Blog
Attack and Defense Labs
Attack and Defense Labs
Apple Machine Learning Research
Apple Machine Learning Research
MyScale Blog
MyScale Blog
T
Threat Research - Cisco Blogs
小众软件
小众软件
L
LangChain Blog
人人都是产品经理
人人都是产品经理
AI
AI
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Secure Thoughts
P
Proofpoint News Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 聂微东
G
Google Developers Blog
M
MIT News - Artificial intelligence
有赞技术团队
有赞技术团队
IT之家
IT之家
N
News and Events Feed by Topic
大猫的无限游戏
大猫的无限游戏
L
Lohrmann on Cybersecurity
Recent Announcements
Recent Announcements
B
Blog
AWS News Blog
AWS News Blog
罗磊的独立博客
爱范儿
爱范儿
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
Blog — PlanetScale
Blog — PlanetScale
博客园 - 三生石上(FineUI控件)
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
The Hacker News
The Hacker News
J
Java Code Geeks
量子位
GbyAI
GbyAI
Martin Fowler
Martin Fowler
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
P
Privacy & Cybersecurity Law Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
The Last Watchdog
The Last Watchdog
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
H
Heimdal Security Blog
The Register - Security
The Register - Security

Lobsters

CIFSwitch: a non-universal Linux local root vulnerability RIPE NCC session fixation: poaching logins with an Atlas probe GNOME 2.20 but its Web Components Agentic Search for Context Engineering – Leonie Monigatti Garnix is shutting down [not OC] akashina.tngl.sh/jjc Concerning Emacs (and Jazz) Nitpicking the shell history scene in ‘Tron: Legacy’ What's cooking on SourceHut? Q2 2026 The tenth OpenPGP email summit Package managers that package package managers Clojure on Fennel part three: parsing WordPress at 23 Finding Miscompiles for Fun, Not Profit GitHub - creusot-rs/creusot: Creusot helps you prove your Rust code is correct. Announcing Rust 1.96.0 | Rust Blog A Love Letter to Neovim sqlite AGENTS.md Am I a Bad Friend? CSS vs. JavaScript • Josh W. Comeau Erlang Ecosystem Foundation - Supporting the BEAM community A brief note about slot access cost in Common Lisp Keyboard latency probe Rethinking the GNOME clipboard issues Back to the Building Blocks’ Building Blocks Tech Notes: Theseus: translating win32 to wasm Fast is better than slow Content-addressed Rust builds (or, what kache actually caches) Intent to Prototype: Embedding API Canada’s Bill C-22 and the security cost of collecting more data 5 PostgreSQL locking behaviors that trip people up okmij.org Stop advertising in your commits! | AksDev GitHub - mplsllc/macsurf: A modern web browser for Classic Mac OS 9 PowerPC. Real CSS3, ES5 JavaScript, native HTTPS — built with CodeWarrior on the Carbon API. Introducing DoomBench - Can Your Data Stack Run DOOM? What are some of your favourite developer tools? Building a Scalable Ingestion Pipeline with Temporal (Part 1) Converting shallow Git bundles into normal repositories Are you a member of any professional associations? What is a harmonic? An interactive comic about additive synthesis How Virtual Tables Work in the Itanium C++ ABI Using SwiftUI to Build a Mac-assed App in 2026 Rust (and Slint) on a jailbroken Kindle. ~jack/lambda-on-lambda - Serverless Haskell on AWS - sourcehut git Human proof for FOSS contributions Extremely simple internet radio controlled via IRC Announcing BABLR Splitting Konsole views from Helix to run tools | AksDev GitHub - yugr/rust-slides Serving files over HTTP three ways: synchronous, epoll, and io_uring update docs with information about building with build.py (#979) · astral-sh/python-build-standalone@c9c40c5 A Simple Makefile Tutorial On C extensions, portability, and alternative compilers Switching to Colemak | Pedro Alves Just How Bad Was The Intel IAPX432? Nix's Substituter List Is Not a Routing Table Accelerating copy_if using SIMD Lambda on Lambda: Serverless Haskell on AWS | Blog Announcing feed-repeat v1.0 Scaling Akvorado BMP RIB with sharding EYG news: A host of CLI improvements, new guides and new effects The social contract of writing JS Crossword C array types are weird; and related topics Flatpak will depend on systemd – OSnews Migrating from Go to Rust | corrode Rust Consulting A portentous reunion Vivado Licensing Options How my minimal, memory-safe Go rsync steers clear of vulnerabilities the entropy layer of a wavelet codec, on its own GitHub - nferhat/fht-compositor: A dynamic tiling Wayland compositor. Debian SE Linux and PinTheft Does bulk memmove speed up std::remove_if? (No.) 声明式部分更新 | Blog | Chrome for Developers Fully in-browser container builds Dianne Skoll's Web Site - Remind The Architecture of Open Source Applications (Volume 1)Berkeley DB Pardon MIE? - ironPeak Blog “Long-Term Support” doesn’t mean what you think Jira IS Turing-Complete May I recommend thinking of Emacs as your Fortress of Solitude hershey Floodgap Gopher-HTTP gateway gopher://thelambdalab.xyz/1cuneiforth/ HP QuickWeb, Singular And Pointless That one time I used Go panics for flow control A new suite of modern tools coming for editing and publishing RFCs From the Tabletop… The Digital Antiquarian Building a Host-Tuned GCC to Make GCC Compile Faster Are we self-sovereign PKI yet? Claw Patrol: an open-source security firewall for agents | Deno Revised^7 Report on Scheme, Large: Procedural Fascicle Draft is now public A Network Allow-List Won't Stop Exfiltration — André Graf From AFSK to Goertzel – µArt.cz Software For My New Home Server Introducing Neptune: Direct3D virtualization for QEMU AI Agent Bankrupted Their Operator While Trying to Scan DN42 - Lan Tian @ Blog mimalloc: A new, high-performance, scalable memory allocator for the modern era Making wl_shm fast The Soul of Maintaining a New Machine - Third Draft | Books in Progress What is Git made of?
GuixPkgs: every Guix package, as a Nix flake
fzakaria.com · 2026-06-26 · via Lobsters

Published 2026-06-25 on Farid Zakaria's Blog

GuixPkgs Logo

I wrote earlier about what I believe to be an absurd idea, The Guix Nix Abomination: a tool, guix-transfer, that takes any Guix derivation and rewrites it into a Nix derivation, and lets nix-daemon build it.

With this primitive in hand, I pondered what it would mean to import the entire Guix package set into Nix.

That means we could even build a flake that is all of Guix packages available for use.

Well…. Hello GuixPkgs. 🤯

Nixpkgs is famously the largest package repository in the world. GuixPkgs makes it bigger by including in the entire GNU Guix package set so you can mix and match Guix and Nixpkgs packages in the same flake.

{
  description = "A project mixing Nix and Guix";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    guixpkgs.url = "github:fzakaria/guixpkgs";
  };

  outputs = { self, nixpkgs, guixpkgs }:
  let
    system = "x86_64-linux";
    pkgs = nixpkgs.legacyPackages.${system};
    guixPkgs = guixpkgs.packages.${system};
  in {
    devShells.${system}.default = pkgs.mkShell {
      buildInputs = [
        pkgs.git        # from Nixpkgs
        guixPkgs.hello  # from Guix, via GuixPkgs
      ];
    };
  };
}
❯ nix build github:fzakaria/guixpkgs#hello
❯ ./result/bin/hello
Hello, world!

☝ Don’t forget, that hello is built from Guix’s source bootstrap, a 357-byte seed all the way up to GCC and glibc but it lands in /nix/store and behaves like any other Nix package. No guix required on the consuming side.

Is this just a joke or is there anything of value here?

Well, some packages only exist in Guix, notable many GNU Guile built software, like guile-png that are now easily available in Nix. 🤷

How does it work?

  1. Pins a Guix commit and uses guix time-machine to get derivations from that exact Guix thus decoupling the result from whatever guix-daemon version happens to be on the host.
  2. Dumps every package’s .drv and feeds them to guix-transfer --disable-tests --emit-nix-dir pkgs.
  3. Rebuilds the by-name/ index and records the Guix channel + commit + timestamp in guix-metadata.json.

Realising a Guix package under Nix recompiles Guix’s entire source bootstrap. That’s hours per closure. To skip it, GuixPkgs ships a Cachix, cachix use guixpkgs, binary cache that is included in the flake. Thank you @domenkozar for sponsoring me with extra storage. 🙏

What’s next?

We can now do some truly horrendous evil stuff. What about an overlay that replaces every package from Nixpkgs which one that exists in Guix? 😈

We can then build a NixOS machine where every package is the Guix equivalent 😱.

This was a really fun project to pursue during TacoSprint.

taco sprint group photo


Improve this page @ 9991133
The content for this site is CC-BY-SA.