[slack] atualizacoes no simplepkg
- From: rhatto <rhatto@xxxxxxxxxx>
- To: slack@xxxxxxxxxxxxx
- Date: Thu, 4 Dec 2008 02:49:08 +0000
Depois de um longo e tenebroso inverno, estou aproveitando a entresafra
para desafogar algumas pendências, dentre elas o retorno do Trac em
http://slack.sarava.org/trac e o do repositório binário em
http://slack.sarava.org/packages.
Além disso, efetuei alguns melhoramentos no simplepkg, vide
http://slack.sarava.org/simplepkg/trunk/doc/CHANGELOG
Acho que agora estamos a poucos passos de termos uma suíte integrada e
desenvolvimento e administração. Nos próximos dias tentarei dar uma
arrumada na documentação, no site, corrigir eventuais bugs e de repente
até implementar mais alguma coisa.
As mudanças estão apenas no trunk e ainda estão em fase de testes. Se
você já utiliza o simplepkg e quiser atualizar sua versão, basta rodar:
createpkg --sync
createpkg --install simplepkg
Caso contrário, baixe o pacote mais recente a partir de
http://slack.sarava.org/noarch. Se preferir, crie um pacote diretamente
do código fonte:
svn checkout http://slack.sarava.org/simplepkg
cd simplepkg && make package
upgradepkg --install-new /tmp/simplepkg*.tgz
A seguir explico algumas mudanças, espero que vocês gostem :)
Suporte a git
=============
Criação da seção "git_source" no generic.mkSlackBuild, que permite a
criação de SlackBuilds como o do metastore:
http://slack.sarava.org/mkbuilds/app/backup/metastore/
http://slack.sarava.org/slackbuilds/app/backup/metastore/
Arquivos de configuração padrão
===============================
Os arquivos de configuração padrão estão em
- /etc/simplepkg/defaults/simplepkg.conf
- /etc/simplepkg/defaults/repos.conf
O uso de /etc/simplepkg/simplepkg.conf e /etc/simplepkg/repos.conf é
opcional:
- Parâmetros existentes no /etc/simplepkg/simplepkg.conf substituem
os valores presentes no /etc/simplepkg/defaults/simplepkg.conf.
- A existência do arquivo /etc/simplepkg/repos.conf faz com que o
simplaret ignore inteiramente o /etc/simplepkg/defaults/repos.conf.
Dessa forma, apenas quem quiser uma configuração diferente do padrão
precisará manter seus próprios arquivos de configuração.
Integração com subversion
=========================
Mkbuild
-------
Mudei todas as antigas opções de "commit" do mkbuild. Agora o mkbuild
possui as seguintes opções para lidar com os repositórios de mkbuilds
e SlackBuilds:
-ss, --submit-slackbuild
submit SlackBuilds in local svn SlackBuild tree
-sm, --submit-mkbuild
submit .mkbuild in local svn mkbuild tree
-sa, --submit-all
submit SlackBuild and .mkbuild files in local svn tree
-cs, --commit-slackbuild
commit SlackBuilds in svn SlackBuild tree
-cm, --commit-mkbuild
commit .mkbuild in svn mkbuild tree
-ca, --commit-all
commit SlackBuild and .mkbuild files in svn tree
As opções "submit" apenas adicionam o mkbuild e/ou o SlackBuild nas
cópias de trabalho local, enquanto que as opções "commit" efetivamente
cometem as mudanças para o repositório subversion.
Como exemplo, segue o procedimento que utilizei para adicionar o
programa rsnapshot nas nossas árvores:
$ mkdir ~/work && cd ~/work # para evitar poluicao
$ mkbuild rsnapshot
$ $EDITOR rsnapshot.mkbuild # edite principalmente "SLACKBUILD PATH"
$ mkbuild rsnapshot.mkbuild
$ mkbuild -sa rsnapshot
Submiting rsnapshot.SlackBuild
A app/backup/rsnapshot
A rsnapshot.SlackBuild
Submiting rsnapshot.mkbuild
A app/backup/rsnapshot
A rsnapshot.mkbuild
$ mkbuild -ca rsnapshot "adding rsnapshot"
Adding app/backup/rsnapshot
Adding app/backup/rsnapshot/rsnapshot.SlackBuild
Transmitting file data .
Committed revision 1983.
Adding app/backup/rsnapshot
Adding app/backup/rsnapshot/rsnapshot.mkbuild
Transmitting file data .
Committed revision 274.
No caso em questão, eu havia editado um parâmetro erroneamente.
Sem problemas, basta corrigir o erro e enviar novamente para
a árvore:
$ $EDITOR rsnapshot.mkbuild
$ mkbuild rsnapshot
$ mkbuild -sa rsnapshot
Submiting rsnapshot.SlackBuild
Submiting rsnapshot.mkbuild
$ mkbuild -ca rsnapshot "fixing key url"
Sending app/backup/rsnapshot/rsnapshot.SlackBuild
Transmitting file data .
Committed revision 1984.
Sending app/backup/rsnapshot/rsnapshot.mkbuild
Transmitting file data .
Committed revision 275.
Por enquanto, as opções de commit apenas funcionam após o mkbuild
e o SlackBuild terem sido criados.
Createpkg
---------
A integração do createpkg a um repositório de pacotes em subversion
funciona de modo semelhante ao do mkbuild, mas é um pouco mais
automática:
# createpkg homecrypt
createpkg[1]: found script homecrypt.SlackBuild, now checking for dependencies
createpkg[1]: no unmet dependencies for homecrypt
createpkg[1]: processing homecrypt.SlackBuild
[snip]
Package creation complete.
A app
A app/crypt
A app/crypt/homecrypt
A (bin) homecrypt-8_svn-noarch-1rha.tgz
Created metafile for homecrypt-8_svn-noarch-1rha.tgz
A homecrypt-8_svn-noarch-1rha.meta
Created new FILELIST.TXT
Updated CHECKSUMS.md5 at /var/simplepkg/repos/slackware/slackware-12.1
Cleaning up the repository...
Copying package to noarch repository...
A app
A app/crypt
A app/crypt/homecrypt
A (bin) homecrypt-8_svn-noarch-1rha.tgz
A homecrypt-8_svn-noarch-1rha.meta
Created metafile for homecrypt-8_svn-noarch-1rha.tgz
Created new FILELIST.TXT
Updated CHECKSUMS.md5 at /var/simplepkg/repos/noarch
Package saved at /var/simplepkg/repos/slackware/slackware-12.1/[...]
Aditional copy saved at /var/simplepkg/repos/noarch/app/crypt/[...]
# createpkg --commit "adding homecrypt"
Enviando slackware-12.1/CHECKSUMS.md5
Enviando slackware-12.1/CHECKSUMS.md5.gz
Enviando slackware-12.1/FILELIST.TXT
Adicionando slackware-12.1/app
Adicionando slackware-12.1/app/crypt
Adicionando slackware-12.1/app/crypt/homecrypt
Adicionando
slackware-12.1/app/crypt/homecrypt/homecrypt-8_svn-noarch-1rha.meta
Adic. (bin)
slackware-12.1/app/crypt/homecrypt/homecrypt-8_svn-noarch-1rha.tgz
Transmitindo dados do arquivo .....
Commit da revisão 2.
Enviando noarch/CHECKSUMS.md5
Enviando noarch/CHECKSUMS.md5.gz
Enviando noarch/FILELIST.TXT
Adicionando noarch/app
Adicionando noarch/app/crypt
Adicionando noarch/app/crypt/homecrypt
Adicionando noarch/app/crypt/homecrypt/homecrypt-8_svn-noarch-1rha.meta
Adic. (bin) noarch/app/crypt/homecrypt/homecrypt-8_svn-noarch-1rha.tgz
Transmitindo dados do arquivo .....
Commit da revisão 3.
Não é mais necessário que todos esses comandos sejam rodados por
superusuários. Os seguintes parâmetros do simplepkg.conf permitem
inclusive que o mkbuild e o createpkg manipulem cópias de trabalho
de usuários específicos:
MAKEPKG_SVN_USER
MKBUILDS_SVN_USER
MAKEPKG_SVN_GROUP
MKBUILDS_SVN_GROUP
Repositório binário integrado
-----------------------------
Para quem armazena pacotes criados com o createpkg em
/var/simplepkg/repos, a configuração padrão mudou a pasta
para /var/simplepkg/repos/DISTRIBUICAO/DISTRIBUICAO-VERSAO.
Isso pode ser mudado através do parâmetro de configuração
MAKEPKG_REPOS_STYLE, mas o valor padrão faz com que os pacotes
criados com o createpkg estejam automaticamente disponíveis
ao simplaret.
Considerando o exemplo anterior, com a configuração padrão de
repositórios e pastas o recém-criado pacote homecrypt já aparece
disponível ao simplaret:
# simplaret update Copying
/var/simplepkg/repos/slackware/slackware-12.1//FILELIST.TXT... done.
Copying /var/simplepkg/repos/slackware/slackware-12.1//CHECKSUMS.md5... done.
# simplaret search homecrypt
ROOT repository local, arch: i386, version: 12.1:
homecrypt-8_svn-noarch-1rha.tgz
Essa integração é local, ou seja, independente dos seus pacotes criados
pelo createpkg estarem num repositório subversion.
Novo formato para templates
===========================
Criei o formato "compact" de armazenamento de templates do templatepkg.
Os formatos anteriores ainda são suportados, mas o novo guarda dados de
jaulas de forma mais limpa:
- /etc/simplepkg/templates/JAULA/packages: lista de pacotes
- /etc/simplepkg/templates/JAULA/files: pasta com arquivos
- /etc/simplepkg/templates/JAULA/scripts: scripts de pós-instalação
- /etc/simplepkg/templates/JAULA/perms: permissões
Mais informações
================
Mais detalhes podem ser obtidos através do log do repositório.
--
rhatto em riseup.net
chave publica: id 0x6B566777 / keyserver.noreply.org
Other related posts:
- » [slack] atualizacoes no simplepkg - rhatto