Como aplicar um patch no OpenBSD?

1

Eu tenho comp54.tgz instalado.

# cd /root && ftp http://ftp.openbsd.org/pub/OpenBSD/'uname -r'/src.tar.gz && tar -xzf /root/src.tar.gz -C /usr/src
# uname -r
5.4
# pwd
/usr/src
# ls -la
total 124
drwxrwxr-x   17 root  wsrc     512 Apr 13 19:35 .
drwxr-xr-x   17 root  wheel    512 Jul 30  2013 ..
drwxr-xr-x    2 root  wsrc     512 Jul 29  2013 CVS
-rw-r--r--    1 root  wsrc    3456 Jul 24  2013 Makefile
-rw-r--r--    1 root  wsrc   16419 Jul  7  2013 Makefile.cross
drwxr-xr-x   36 root  wsrc    1024 Jul 29  2013 bin
drwxr-xr-x   31 root  wsrc     512 Jul 29  2013 distrib
drwxr-xr-x   35 root  wsrc    2560 Jul 29  2013 etc
drwxr-xr-x   44 root  wsrc    1024 Jul 29  2013 games
drwxr-xr-x    9 root  wsrc     512 Jul 29  2013 gnu
drwxr-xr-x    7 root  wsrc    2048 Jul  7  2013 include
drwxr-xr-x   11 root  wsrc     512 Jul 29  2013 kerberosV
drwxr-xr-x   40 root  wsrc    1024 Jul 29  2013 lib
drwxr-xr-x   40 root  wsrc    1024 Jul 29  2013 libexec
drwxr-xr-x   15 root  wsrc     512 Jul 10  2010 regress
drwxr-xr-x   78 root  wsrc    1536 Jul 29  2013 sbin
drwxr-xr-x   14 root  wsrc     512 Jul 29  2013 share
drwxr-xr-x  228 root  wsrc    4096 Jul 29  2013 usr.bin
drwxr-xr-x  144 root  wsrc    2560 Jul 29  2013 usr.sbin
# which gcc
/usr/bin/gcc
# 
# ftp http://ftp.openbsd.org/pub/OpenBSD/patches/5.4/common/001_pflow.patch  
Trying 129.128.5.191...
Requesting http://ftp.openbsd.org/pub/OpenBSD/patches/5.4/common/001_pflow.patch
100% |*******************************************************|   803       00:00    
803 bytes received in 0.00 seconds (11.10 MB/s)
# 
# patch -p0 < 001_pflow.patch                                               
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|Apply by doing:
|       cd /usr/src
|       patch -p0 < 001_pflow.patch
|
|Then build and install a new kernel.
|
|Index: sys/net/if_pflow.c
|===================================================================
|RCS file: /vol/openbsd/cvs/src/sys/net/if_pflow.c,v
|retrieving revision 1.32
|diff -u -p -r1.32 if_pflow.c
|--- sys/net/if_pflow.c 5 Jul 2013 17:14:27 -0000       1.32
|+++ sys/net/if_pflow.c 7 Nov 2013 16:48:45 -0000
--------------------------
File to patch: # what do I need to write here???????
No file found--skip this patch? [n] 
patch: **** can't find #
# 

Minha pergunta : como faço para passar do "Arquivo para corrigir:"?

    
por evachristine 09.04.2014 / 11:59

3 respostas

4

Você tem uma árvore de fontes incompleta - as origens do kernel estão em /usr/src/sys , o que ls mostra como ausente. O arquivo que você está tentando corrigir deve estar em: /usr/src/sys/net/if_pflow.c
Você precisará obter as sys.tar.gz sources para patch & compile o kernel. Certifique-se de seguir o procedimento de perto

  1. link
  2. link
por 04.05.2014 / 17:57
1

Você pode pular o patch de código-fonte para plataformas i386, amd64 e arm usando o serviço de atualizações estáveis do M: Tier.

Detalhes no link

Eles também têm um bom programa chamado openup que ajuda a automatizar o processo. Eu uso e foi uma grande economia de tempo ontem, corrigindo todos os meus servidores.

    
por 09.04.2014 / 16:42
0

Desde o OpenBSD 6.1, a maneira mais fácil de seguir o -stable branch no i386 e amd64 arquiteturas é usando syspatch .

Corrigir uma versão 6.1 do OpenBSD ou um sistema 6.1 estável do OpenBSD em qualquer uma dessas duas arquiteturas é tão fácil quanto

$ doas syspatch

Isso requer que /etc/installurl esteja presente e contenha uma única linha com um URL apontando para o espelho preferido do OpenBSD .

Para ser notificado sobre novos patches automaticamente, execute syspatch -c como uma tarefa cron no turno.

Veja também syspatch(8) e installurl(5) .

    
por 14.06.2017 / 10:28

Tags