On 9/1/07, Marcos Henrique Esteves Barbosa
<[EMAIL PROTECTED]> wrote:
>
> Olá!
> Estou desenvolvendo um novo formato de pacotes para o Slackware (já
> que o novo sistema de inicialização não deu muito certo, espero ter
> mais sucesso com a criação de um novo formato de pacote). Ele não vai
> sair muito do que é atualmente, para se manter simples, mas serão
> acrescentadas coisas para tornar o pacote mais completo. A principal
> mudança será a inclusão no diretório install (que poderá mudar para um
> nome mais significativo, mas ainda não tive uma boa idéia) de vários
> arquivos, cada um contendo uma informação. Por exemplo: O arquivo arch
> conterá a arquitetura. Uma lista de possíveis aqruivos:
> - arch (arquitetura)
> - preinst.sh (script para ser executado antes da instalação)
> - posinst.sh
> - name (script para ser executado após a isntalação)
> - version (versão)
> - release (revisão)
> - category/classification (categoria em que o pacote se encaixa)
> - developer (nome e e-mail do desenvolvedor)
> - packager (nome e e-mail do empacotador)
> - description (descrição)
> - filelist (lista de arquivos. É realmente necessária?)
> - dependencies (pacotes necessários para funcionar. Incluindo os
> básicos, como glibc-solibs)
> - suggests (pacotes sugeridos que aumentam as funcionalidades)
> - source (localização do fonte na internet. Deve ser melhorado para
> talvez ter um arquivo para o endereço e outro para o arquivo ou talvez
> não precise, já que o local onde pegar o fonte estará no SlackBuild)
> - size (tamanho que o pacote ocupa após instalado. Pode ser dividido
> em um que contenha o tamanho compactado e outro o descompactado, ou só
> o tamanho quando descompactado, já que o compactado pode ser visto no
> próprio pacote)
> - license (tipo de licença)
> - hash (hash do pacote. Precisa ser visto como será implementado)
> - signature (assinatura)
> - url/page/website (página oficial do pacote)
> - summary (descrição em uma linha)
> Nesta lista eu tentei incluir todas as informações que eu achei útil,
> baseando a lista em um pacote RPM (briga Slackware X Red Hat a parte).
> Não inclui coisas como "build date" e "build host" por não achar que
> tivesse utilidade (se alguém souber a utilidade fale).
> Também haverá modificações no sistema de criação do pacote. Ainda
> existirá o SlackBuild (que é um ótimo sistema) mas haverá modificações
> tanto para dar maiores opções quanto para facilitar o uso. As mudanças
> principais no SlackBuild são:
> - Remoção dos arquivos temporários após o final da compilação (talvez
> inclua uma variável para escolha, mas acho improvável)
> - O pacote pronto será movido para o diretório onde está o SlackBuild
> - O SlackBuild procurará o arquivo fonte no diretório atual. Se não
> encontrar, baixará da Internet
> Também haverá mudanças no formato do repositório, mas ainda não pensei
> bem nisso. Só acho que talvez seja uma boa idéia fundir o repositório
> de fontes com o de pacotes, mais ou menos como é feito no repositório
> do slacky.eu (www.slacky.eu/repository), onde existe as categorias e
> dentro diretórios com pacotes que por sua vez tem os pacotes e um
> diretório src/ para os fontes. O que acham?
> PS.: Se isso andar bem, que sabe esteja sólido para incluir na próxima
> versão do Slackware???!!!

Na verdade o sistema de pacotes do Slackware faz quase tudo que tu quer:

- A arquitetura é especificada no nome do arquivo, logo é redundante
especificar esta informação em outro local. O mesmo vale para versão e
"build" (não conheço formato de pacotes que ofereça tal recurso).
- preinst.sh, postint.sh lembram muito os pacotes do Debian, eles já
existem nos pacotes .tgz
- filelist, que tal um tar -tfv pacote.tgz? com o tar e um pouco de
awk também pode calcular o tamanho do pacote depois de instalado
- hash e assinatura estão nos arquivos .md5 e .asc junto dos pacotes,
é só olhar nos CDs ou no FTP
- descritpion = slack-desc
- remoção dos arquivos temporários (mas não há opção de mantê-los)

O que o teu sistema de pacotes teria de novo ao atual seria a
resolução de dependencias. Sinceramente, eu acredito que algo como
fazer um banco de dados bem simples com uma relação ao estilo "pacote
-> dependecia" é mais que suficiente, ai é só fazer um "wrapper" pro
installpkg/removepkg/upgradepkg... De repente é mais simples
customizar o slackpkg pra isso (se ele ja nao faz :)

-- 
Max

--~--~---------~--~----~------------~-------~--~----~
GUS-BR - Grupo de Usuários de Slackware Brasil
http://www.slackwarebrasil.org/
http://groups.google.com/group/slack-users-br
-~----------~----~----~----~------~----~------~--~---

Responder a