No link que você mostra, o backport do Tomcat7 parece fácil, de fato. E se tudo funcionar bem, você deve acabar com um pacote tomcat7 que atenda às suas necessidades. Mas ...
Pode ter funcionado um ano atrás (quando o post do blog apareceu), mas agora acho que há um problema. Na verdade, a etapa apt-get build-dep tomcat6
é um pouco complicada. O que realmente deve ser feito é apt-get build-dep tomcat7
. Depois de tentar fazer isso, você verá que o trabalho é um pouco mais tedioso. Alguns outros pacotes aparecerão como dependências de compilação e você precisará instalá-los, se estiverem disponíveis, ou compilá-los a partir de fontes, se não.
Processo de compilação
Em minhas avaliações, descobri que para poder criar tomcat7
para seus usuários, você precisa:
- ative o squeeze-backports e instale a partir dele
maven-repo-helper
ejavahelper
, - construa a partir de fontes wheezy
jakarta-taglibs-standard
e instale-o em sua máquina de construção.
No final, todo o procedimento como eu fiz parecia (números de versão fornecidos a partir de 06/03/2013):
# adding wheezy sources to your apt config and preparing the build host:
echo "deb http://backports.debian.org/debian-backports squeeze-backports main" >> /etc/apt/sources.list
echo "deb-src http://ftp.debian.org/debian/ wheezy main" >> /etc/apt/sources.list
apt-get update
apt-get install dpkg-dev build-essential fakeroot
# manually adding missing build dependencies
apt-get -t squeeze-backports install javahelper maven-repo-helper
# getting the source package for jakarta-taglibs-standard, building and installing it on the build machine:
cd /usr/local/src/
apt-get -t wheezy source jakarta-taglibs-standard
apt-get build-dep jakarta-taglibs-standard
cd jakarta-taglibs-standard-1.1.2
dpkg-buildpackage -rfakeroot -b
cd ..
dpkg -i libjstl1.1-java_1.1.2-2_all.deb
dpkg -i libjakarta-taglibs-standard-java_1.1.2-2_all.deb
# getting the source package for tomcat7 and building it (this takes some time...)
apt-get -t wheezy source tomcat7
apt-get build-dep tomcat7
cd tomcat7-7.0.28
dpkg-buildpackage -rfakeroot -b
Peculiaridade do pacote fonte do tomcat7 7.0.28
As instruções listadas acima devem ser tudo o que é necessário. No entanto, há um certificado expirado no pacote tomcat7 7.0.28-4
source no repositório Wheezy / testing (um certificado autoassinado expirou em 27 de fevereiro de 2013). Isso fará com que a compilação falhe nos testes de unidade.
Existem 2 soluções para resolver isso:
- altere a data em sua máquina de construção para estar antes de 27 de fevereiro de 2013,
-
desabilite o teste de unidade para sua compilação, isso pode ser feito no arquivo
build.properties.default
, você precisará alterar as 3 propriedades:-
execute.test.bio=false
-
execute.test.nio=false
-
execute.test.apr=false
-
Instalação
Como você viu no seu link, você virá com alguns pacotes tomcat7-...
que você precisará fornecer para seus usuários. O melhor seria através do seu próprio repositório, para que possam instalar tudo isso facilmente.
Com todos esses pacotes, tudo deve estar ok e seus usuários terão um backport do Tomcat 7 para o Squeeze. Se os seus usuários migrarem para o Wheezy, eles não deverão ter problemas, pois qualquer novo pacote do Tomcat 7 no Wheezy terá um número de versão maior do que aquele que você forneceu. Eles receberão os upgrades Wheezy muito bem.
Manutenção
Uma última coisa que você precisa considerar é a segurança do Tomcat 7 ou correções de bugs que aparecerão no Wheezy mais tarde. Se uma tomcat7
atualização séria aparecer no Wheezy, você deve considerar a possibilidade de reconstruir seus próprios tomcat7
pacotes e fornecer essas mesmas atualizações para seus usuários.