Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
openbsd:binary_patching_pour_openbsd [2007/02/13 00:54]
olem
openbsd:binary_patching_pour_openbsd [2010/01/12 13:29] (current)
Line 1: Line 1:
 +Quoi ?! t'as pas envie de mettre plein de sets sur ta pauvre CF card pour ne pas ruineZ ton portezorros et pourtant t'​aimerais bien garder tes multiples puffy-boxes à jours sans galères ?
  
 +Bon, ben binpatch, c'est fait pour toi : http://​openbsdbinpatch.sourceforge.net/​
 +
 +Si t'es trop flemmard pour lire, file donc à la section '''​Megaflemme'''​.
 +
 +====== Les premiers pas ======
 +
 +Pour commencer, il te faut une machine sur laquelle tu vas pouvoir builder tes jolis patches binaires, donc oui, une babasse OpenBSD de la release cible à maintenir, et avec de quoi compiler les choses du Bien...
 +
 +Ensuites, tu télécharges la purée (binpatch) et la décompresse dans une zolie partoche plein de place (prévoir laaarge : au moins 2 à 2,5 Go de libres, si! si!). Disons /​opt/​binpatch/​ pour faire simple.
 +
 +Puis, tu y vas de ton petit patch roulé sous les aisselles en ajoutant la cible suivante dans ton /​opt/​binpatch/​bsd.binpatch.mk tout nouveau tout beau :
 +  _includes=${MAKE_ENV} make includes ​
 +dans la section '​shortcuts'​
 +
 +Puis enfin, tu te sors les doigts te vimifies bien vite un zoli Makefile tout propre avec, par exemple pour 4.0, ces convi choses dedans (vi /​opt/​binpatch/​Makefile) :
 +  # Mon Makefile qui va bien pour la 4.0 sur i386
 +  # (C) moi même en français dans le texte
 +  #
 +  # List of patches for all architectures
 +  PATCH_COMMON=001_httpd 002_openssl 003_systrace 004_arc 005_ldso 008_icmp6 009_timezone
 +  # List of patches for i386 only
 +  PATCH_I386=007_agp
 +  # Faut garder cela...
 +  bin:
 + cd ${WRKSRC}/​bin && (${_obj}; ${_cleandir};​ ${_depend} && ${_build})
 +  ​
 +  sbin:
 + cd ${WRKSRC}/​sbin && (${_obj}; ${_cleandir};​ ${_depend} && ${_build})
 +  ​
 +  libc:
 + cd ${WRKSRC}/​lib/​libc && \
 + (${_obj}; ${_cleandir};​ ${_depend} && ${_build})
 +  # et comment les faire les zolis binpatchs ?
 +  009_timezone:​
 + cd ${WRKSRC}/​share/​zoneinfo && \
 + (${_obj}; ${_build})
 +  ​
 +  008_icmp6: _kernel
 +  ​
 +  007_agp: _kernel
 +  ​
 +  005_ldso:
 + cd ${WRKSRC}/​libexec/​ld.so && \
 + (${_obj}; ${_cleandir};​ ${_depend}; ${_build})
 +  ​
 +  004_arc: _kernel
 +  ​
 +  003_systrace:​ _kernel
 +  ​
 +  002_openssl:​
 + cd ${WRKSRC}/​lib/​libssl && \
 + (${_obj}; ${_depend}; ${_includes};​ ${_build})
 +  ​
 +  001_httpd:
 + cd ${WRKSRC}/​usr.sbin/​httpd && \
 + (${_obj_wrp};​ ${_cleandir_wrp};​ ${_depend_wrp};​ ${_build_wrp})
 +  ​
 +  .include "​bsd.binpatch.mk"​
 +(le lecteur curieux se doutera qu'à l'​époque de la rédaction du présent article, j'en était au 009 sur la 4.0...)
 +
 +Puis, let's rock ma poule : tu suis le README et met à sa bonne place les petites choses qui manquaient :
 +  mkdir /​opt/​binpatch/​distfiles
 +  mkdir /​opt/​binpatch/​distfiles/​i386
 +  cd /​opt/​binpatch/​distfiles/​
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​src.tar.gz
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​sys.tar.gz
 +  cd /​opt/​binpatch/​distfiles/​i386/​
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​bsd
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​bsd.rd
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​base40.tgz
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​etc40.tgz
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​comp40.tgz
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​misc40.tgz
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​game40.tgz
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​man40.tgz
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​xbase40.tgz
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​xetc40.tgz
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​xfont40.tgz
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​xshare40.tgz
 +  wget ftp://​spargel.kd85.com/​pub/​OpenBSD/​4.0/​i386/​xserv40.tgz
 +Puis maintenant, tu prépares le terrain:
 +  make init
 +  make extract
 +Et te voila tout prêt à aller chercher un café bien chaud pendant que tu vas rouler tes premiers patches.
 +
 +====== Les premiers patchs ======
 +Genre, pour builder le patch binaire relatif à l'​errata 001 :
 +  make PATCH="​001"​ patch
 +  make PATCH="​001"​ build
 +  make PATCH="​001"​ plist
 +  make PATCH="​001"​ package
 +Et hop, te voila avec /​opt/​binpatch/​packages/​binpatch-4.0-i386-001.tgz tout propre prêt à être répendu sur tes petites boites sans compilos à grand coup de tar xzpf binpatch-4.0-i386-001.tgz -C / (biensur en tant que root).
 +
 +====== Encore plus fainéant que le Grand Fainéant ======
 +
 +Bon, toussa c'est bien, mais si t'y rajoutes les deux scripts patch_add et patch_info que tu trouveras chez zombix (http://​www.zombix.org/?​page_id=90 ) et ben t'​auras presque un beau système convi à entretenir (allez, te reste plus qu'à ftpiser les binpatch avant de les detarrer sur le système et t'as un zoli système flambi pour ton armada de puffyboxes :)
 +
 +====== Et même plus corpo que le Grand Corpo, tant que t'y es ======
 +
 +Bah, et ca te vas toujours pas ? ben files donc utiliser gzsig pour signer tes patches, et les diffuser sur ton réseau préféré pour y gagner moults zorros si tu sais dessiner le zoli paquet cadeau autour, et t'as gagné la médaille du "corpo qui gagne des zorros sans se sortir trop les doigts du bas du dos" (TM)
 +
 +
 +====== Megaflemme ? ======
 +
 +Bon, ca et saoule et tu veux simplement rapidement faire le job (builder ses binpatchs et/ou rapidement patcher une poignée de box) ? J'ai mis ce que j'​utilise moi-même là bas : http://​haven.senso-rezo.org/​OpenBSD/​binpatch/​
 +
 +A vous les studios.
openbsd/binary_patching_pour_openbsd.txt · Last modified: 2010/01/12 13:29 (external edit)