improve ergonomics of CA certificates when cross compiling

Ouverte
#9 2 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
35/100
Type d'issue
Fonctionnalité
Clarté
À clarifier
Activité
Calme
Stack technique
zig

Piste de recherche

Commencez par la documentation de curl sur les certificats SSL, la discussion sur les dépendances du système de build de Zig dans l’issue 32041 et std.crypto.Certificate.Bundle.rescan, tous référencés par l’issue. Déterminez quel comportement des sources de certificats et quelles options de build sont dans le périmètre ; la définition de terminé doit inclure la documentation ou le comportement de l’option convenu, ainsi qu’une vérification reproductible de la compilation croisée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

When cross compiling, we cannot, by default, depend on the CA certificates provided by the host system because we need to guarantee a reproducible build that has no dependencies on the host system (hermetic builds).

Here is what can be done about it:

  • improve documentation so that upstream dependencies are aware of this issue. Curl has some useful docs on this
  • give an option to opt into always using the host system's CA certificates
  • give an option to opt into to built in certificates

Builtin certificates could, as an example, be sourced from https://curl.se/docs/caextract.html and fetched as a typical build system dependency. See https://codeberg.org/ziglang/zig/issues/32041 about fetching single file dependencies

AFAIK it is a non-goal for upstream curl to support runtime detection of certificates. It could be viable to fork upstream for this or at least provide some resources to dependant projects so that they can implement this on their side. std.crypto.Certificate.Bundle.rescan could be used as a reference.

Langage dominant
Zig
Étoiles
15
Forks
10
Merge moyen
9 j 7 h
PR mergées (30 j)
1

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Issues similaires

Plus d'issues Build System

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.