Subversion Repositories SvarDOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed


Arquivos de pacote proveem uma forma fácil de gerenciar software no SvarDOS.
Esses pacotes devem aderir a uma convenção estrita, assim podem ser manipulados
corretamente pelo gerenciador de pacotes do SvarDOS.


%hNomes de arquivo de pacotes

Os nomes dos pacotes devem seguir algumas regras básicas. Devem ser de no máximo
8 tetras de tamanho (mas não devem ser muito curtos também, pois um pacote com 1
ou 2 letras no nome pode ser confuso), e não deve ser composto por caracters que
não sejam a-b, 0-9 e '_'. Isso é para compatibilidade com o padrão de nomes de
arquivo curtos (8+3) e sistemas de arquivo ISO 9660 (usados em CDROMs). O nome
de arquivo do pacote sempre é seguido da extensão .SVP ("SvarDOS Package").


%hArquivos de pacote

O SvarDOS usa arquivos ZIP como formato de arquivo de pacote. Esse formato foi
escolhido porque arquivos ZIP no DOS se tornaram de fato a maneira padrão para
distribuir coleções de arquivos. Além disso, o formato de arquivo ZIP é bem
documentado, bem suportado e em domínio público.

Abaixo está a linha de comando recomendada que pode ser usada para criar um
pacote para um programa chamado EXEMPLO usando info-zip:

  zip -9rkDX EXEMPLO.SVP subdir1 subdir2 ... subdirN

Se você estiver usando o 7za (7-ZIP) para cirar seus pacotes, então use isso:

  7za a -mm=deflate -mx=9 -tzip EXEMPLO.SVP subdir1 subdir2 ... subdirN


%hEstrutura de diretórios dos pacotes

A estrutura de diretórios de um pacote depende do tipo do pacote.
Para os pacotes "core", nós temos isso:

  APPINFO            Ponha o arquivo LSM do programa aqui
  BIN                Binários, tais como aquivos exe e com
  DOC\PKGNAME        Documentação do pacote
  HELP               Usado SOMENTE pelo pacote "help"
  NLS\PKGNAME        Traduções (arquivos de linguagem NLS) do pacote

Pacotes não-core usam uma organização de diretórios levemente diferente. Por
exemplo, se se formos considerar um pacote chamado FOO, podemos terminar com a
seguinte estrutura:

  APPINFO\FOO.LSM    Meta aquivo do pacote para o programa FOO
  PROGS\FOO\FOO.EXE  O executável do programa
  PROGS\FOO\FOO.TXT  Alguma documentação
  PROGS\FOO\FILE.DAT Arquivo de dados usado pelo programa FOO

Note o diretório PROGS acima. Essa é a categoria ao qual o pacote pertence.
O instalador de pacotes pode mudar esse diretório no momento da instalação,
dependendo das preferências do usuário. Categorias possíveis são listadas
abaixo:

Categoria | Descrição
DEVEL     | Ferramentas de desenvolvimento (a maioria compiladores)
DRIVERS   | Drivers de dispositivo
GAMES     | Jogos
PROGS     | Programas do usuário, ferramentas...

Note: Diretórios "DOC", "NLS", "BIN" e "HELP" são reservados estritamente aos
pacotes CORE.


%hArquivos de metadados LSM

Cada pacote DEVE conter um arquivo LSM em seu diretório "APPINFO". Esse arquivo
LSM é um arquivo de texto que contém informação básica sobre o pacote. Seu
formato é muito simples, deve conter pelo menos duas linhas:

  version: x.y.z
  description: descrição do pacote

Quaisquer outras linhas adicionais são ignoradas pelo gernciador de pacotes do
SvarDOS.


%hVersões dos pacotes

A vesão presente no arquivo LSM foi pensada para refletir a versão do software
empacotado, mas pode acontecer de um pacote precisar ser mudado para corrigir
um problema estritamente relacionado ao pacote em si (por emeplo, um arquivo de
documentação esquecido ou uma recompilação do binário usando um melhor jogo de
opções...). Em tais casos, a versão do software não muda, mas a versão do pacote
em sí precisa mudar, assim os usuários saberão que alguma coisa mudou. É aí onde
as "Revisões do SvarDOS" entram. Um string de versão é basicamente o formato
abaixo:

  UPSTREAM_VER[+SVARREV]

UPSTREAM_VER é o exato string de versão informado pelo software. Ele pode ser
qualquer coisa. Essa versão original (upstream) pode ser opcionalmente seguida
por um sinal de mais "+" e a revisão do SvarDOS. No evento da versão upstream já
conter um sinal de mais, a versão da revisão do SvarDOS é delimitada com um til
"~".

A revisão do SvarDOS começa com 0 e incrementa por 1 cada vez que a dada revisão 
upstream é reempacotada. A revisão SvarDOS reinicia sempre que a versão upstream
mudar. A revisão SvarDOS com 0 é sempre oculta.

Exemplos:

FDISK 1.54      <- versão empacotada originalmente
FDISK 1.54+1    <- o pacote mudou, mas não a versão upstream
FDISK 1.55      <- a versão upstream incrementou, a rev do SvarDOS reinicia
FDISK 1.55+1    <- nova versão do pacote, mas ainda contém FDISK 1.55
FDISK 1.55+2    <- outra nova versão do pacote, etc

O string de versão inteiro de um pacote nunca deve exceder 16 caracteres.


%hFontes de software

Quando um software empacotado tiver arquivos de código fonte disponíveis, é 
recomendado também arquivá-los. Nesse efeito, ponha os fontes num arquivo ZIP
que tenha o mesmo nome do pacote, mas com uma extensão *.ZIP (em oposição a 
extensão *.SVP própria do pacote). O resultado é que o software empacotado
seria distribuído com dois arquivos. Exemplo para o FDISK:

FDISK.SVP       <- binários (arquivo ZIP seguindo a estrutura SVP)
FDISK.ZIP       <- fontes (arquivo ZIP não estruturado, livre)

O arquivo ZIP deve obviamente conter o código fonte que pertence exatamente a
mesma versão presente no pacote SVP.