> On Nov 19, 2014, at 14:29, Márcio Luciano Donada <mdon...@gmail.com> wrote: > > Senhores, > como o cvs já não é mais suporte, estou usando o portsnap para atualizar o > ports, até ai tudo ok. Quando aos pacotes, utilizava o pkg_version -vL= > para reportar o que deveria ser atualizado e sempre utiliza também o > portaudit -F para acompanhar os boletins de segurança. > > O problema agora é que com o pkg version eu consigo saber também o que é > necessário atualizar, porém o meu problema ainda é as atualizações de > pacotes. Em alguns casos, como por exemplo o ejabberd, aplico um patch no > mesmo, antes de compilar, então o que eu fazia era: > > # make extract > aplicava o devido patch, roda um make > > e posterior um portupgrade -fw no ejabberd que apenas realizava a > instalação. Essa documentação não consegui localizar, ou até mesmo para dar > um simples update em um pacote instalado, mas isso é um exemplo, pois em > muitos casos você acaba aplicando algum patch ou outro em algum pacote. > Alguém pode me passar uma doc que não seja essa [1] do handbook? > > [1]. https://www.freebsd.org/doc/handbook/pkgng-intro.html
Oi Márcio, Existem várias maneiras de fazer o que você precisa, vou tentar colocar umas ideias e você vê se te atende. Agora antes de começar vale a pena perguntar uma coisa, esse patch que você aplica no ejabberd, é algo muito específico? Não é algo que pode ser útil pra outras pessoas? Se for, você poderia tentar convencer o mantenedor a colocar o seu patch no port do ejabberd, e assim você se veria livre da obrigação de manter um pacote custom. Dito isso, vamos ao que interessa. A estrutura de compilação de um port não mudou, então o ‘make extract’ seguido de um patch custom pode ser feito normalmente. O parâmetro -w do portupgrade faz com que ele não execute um ‘make clean’ antes de começar a compilar, o que vai fazer com que seu patch continue lá antes de a compilação acontecer. Então teoricamente isso deveria continuar funcionando. O pkg fornece uma ferramenta que pode te ajudar a não ter o ejabberd atualizado por engano e seu patch perdido, é o lock/unlock, então se você fizer ‘pkg lock ejabberd’ ele nunca vai ser removido ou atualizado em nenhum processo automático. Aí você faz um ‘pkg unlock ejabberd’ quando for mexer nele. Com o csup você podia deixar o seu patch lá dentro do pacote do ejbberd, em files/patch-CUSTOM, e ele era sempre aplicado automaticamente, isso com portsnap não vai rolar, ele vai apagar. Então se você quer manter o seu port sempre com o patch pronto, você pode fazer um checkout da árvore do ports usando svn (svn co http://svn.freebsd.org/ports/head /usr/ports) e usar ‘svn up’ pra trazer novos updates, a única perda nesse caso é que o INDEX não será atualizado automaticamente, então um ‘make index’ vai ter que ser executado toda vez que atualizar a árvore. Com o auxílio do pkg lock/unlock, dependendo da sua necessidade, você pode usar tudo com pkg e atualizar de forma binária, exceto o ejabberd. []s -- Renato Botelho ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd