Skip to content

Instantly share code, notes, and snippets.

View tiran's full-sized avatar
🐍

Christian Heimes tiran

🐍
View GitHub Profile
@tiran
tiran / emudhra_denylist_check.py
Created October 23, 2026 07:39
Standalone check of the _ssl SPKI denylist against the live eMudhra test services at https://emudhra.we-have-a-problem.com/
#!/usr/bin/env python3
"""Standalone check of the _ssl SPKI denylist against the live eMudhra test
services at https://emudhra.we-have-a-problem.com/.
It trusts the two public roots that anchor the test chains and connects to every
distrusted TLS endpoint -- all eight intermediates, both directly issued and AAA
cross-signed. A patched interpreter rejects each one with 'certificate
rejected'; an unpatched interpreter connects.
The embedded certificates are public, universally trusted root CAs, not the
@tiran
tiran / torch-stable-abi-elf-note.md
Last active September 16, 2026 14:53
Proposal: Torch Stable-ABI compatibility note for third-party torch extensions

Proposal: stable-ABI compatibility ELF note for Torch extensions

What this is

A prebuilt torch extension (.so) gives no hint about which version of the PyTorch stable ABI it was built for. Today the only way to find out is to load it against a specific libtorch and see whether it works. This proposal embeds a small piece of metadata in the extension at build time that records the answer up front: the minimum stable-ABI version the extension needs.

@tiran
tiran / sqlite-abi-notes.md
Created August 18, 2026 05:52
SQLite ABI Compatibility and WAL-Reset Bug Notes

SQLite ABI Compatibility and WAL-Reset Bug Notes

Is it safe to upgrade libsqlite3.so.0?

Yes. SQLite maintains strict backwards ABI compatibility within the libsqlite3.so.0 soname. From the official documentation:

Stable interfaces will be maintained indefinitely in a backwards compatible way. An application that uses only stable interfaces should

@tiran
tiran / graph.md
Created September 27, 2025 19:01
llama-stack-test-graph with my MR 763
@tiran
tiran / cpython_wasm_info.md
Last active July 10, 2022 23:13
CPython on WASM: macros and constants

CPython WASM

CPython

>>> import sys, os, platform
>>> sys.platform
'emscripten'
>>> os.name
'posix'
@tiran
tiran / config.site-wasm
Last active November 26, 2021 13:16
CONFIG_SITE for CPython wasm cross builds
#
# CONFIG_SITE=config.site-wasm READELF=true emconfigure ./configure -C --host=wasm32-unknown-emscripten --build=$(./config.guess) --without-pymalloc --enable-big-digits=30
# ln -sfr Modules/Setup.stdlib Modules/Setup.local
# emmake make CROSS_COMPILE=yes FREEZE_MODULE=../x86_64/Programs/_freeze_module PYTHON_FOR_BUILD=../x86_64/python _PYTHON_HOST_PLATFORM=wasm32-unknown-emscripten
#
# cannot be detected for cross builds
ac_cv_buggy_getaddrinfo=no
ac_cv_file__dev_ptmx=yes
ac_cv_file__dev_ptc=no
@tiran
tiran / audient_id4_pipewire.md
Last active March 25, 2024 07:32
Audient iD4 with pipewire: split mic and DI inputs into separate streams

UPDATE

The workaround is no longer needed with recent alsa-ucm, e.g. alsa-ucm-1.2.11-2.fc39. Just configure the device to use Default Alsa Profile instead of Pro.

old workaround

  • cp /usr/share/pipewire/media-session.d/media-session.conf ~/.config/pipewire/media-session.d/
  • add loopback modules to context.modules section
  • configure interface to use Pro Audio profile
  • systemctl restart --user pipewire.service pipewire-pulse.service
@tiran
tiran / ldap_sasl.py
Created August 27, 2021 12:31
Test SASL data security layer / SSF behavior
#!/usr/bin/python
"""Test SASL data security layer / SSF behavior
"""
from __future__ import print_function
import socket
import ldap
import ldap.sasl
FQDN = socket.getfqdn()
@tiran
tiran / make.txt
Created May 6, 2021 13:46
OpenSSL 3.0.0 alpha16+
$ make -s
crypto/ec/curve448/f_generic.c:21:27: warning: argument 1 of type 'uint8_t[56]' {aka 'unsigned char[56]'} with mismatched bound [-Warray-parameter=]
21 | void gf_serialize(uint8_t serial[SER_BYTES], const gf x, int with_hibit)
| ~~~~~~~~^~~~~~~~~~~~~~~~~
In file included from crypto/ec/curve448/f_generic.c:12:
crypto/ec/curve448/field.h:65:28: note: previously declared as 'uint8_t *' {aka 'unsigned char *'}
65 | void gf_serialize(uint8_t *serial, const gf x, int with_highbit);
| ~~~~~~~~~^~~~~~
crypto/ec/curve448/f_generic.c:21:27: warning: argument 1 of type 'uint8_t[56]' {aka 'unsigned char[56]'} with mismatched bound [-Warray-parameter=]
21 | void gf_serialize(uint8_t serial[SER_BYTES], const gf x, int with_hibit)
```
<Not-4ecb> [cpython] vstinner closed pull request #1658: bpo-30367: fix _testcapi to work when statically linked into Cpython3 - https://git.io/J3zgE
<Not-4ecb> [cpython] vstinner closed pull request #2336: bpo-36700: Updated obsolete references for RFC 3548 to RFC 4648 - https://git.io/J3zgu
<Not-4ecb> [cpython] vstinner closed pull request #4435: bpo-31956: Add start and stop parameters to array.index() - https://git.io/J3zgz
<Not-4ecb> [cpython] vstinner closed pull request #4988: bpo-32414: use string after the last dot as the capsule name in PyCapsule_Import - https://git.io/J3zgg
<Not-4ecb> [cpython] vstinner closed pull request #5068: bpo-32469: Improve representation of the coroutines - https://git.io/J3zg2
<Not-4ecb> [cpython] vstinner closed pull request #5215: bpo-32579: UUID python module fix, when there is no clock sequence given - https://git.io/J3zga
<Not-4ecb> [cpython] vstinner closed pull request #5313: bpo-29708: support SOURCE_DATE_EPOCH for build info - https://git.io/J3zgV
<Not-4ecb>