diff options
author | rudson <rudson@04377dda-e619-0410-9926-eae83683ac58> | 2007-11-05 17:23:06 +0000 |
---|---|---|
committer | rudson <rudson@04377dda-e619-0410-9926-eae83683ac58> | 2007-11-05 17:23:06 +0000 |
commit | 7992b9b7d4257cf976cb3954e4fc35428e3f92bf (patch) | |
tree | b8a8799ce07296dae88d6f22f1eed6de05211a4f /trunk | |
parent | 0d5e3cee3bacba5e41898e599f189bb6ee0381c5 (diff) | |
download | simplepkg-7992b9b7d4257cf976cb3954e4fc35428e3f92bf.tar.gz simplepkg-7992b9b7d4257cf976cb3954e4fc35428e3f92bf.tar.bz2 |
mkbuild-1.1.1: adição dos campos UNPACKER e UNPACKER FLAGS
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@451 04377dda-e619-0410-9926-eae83683ac58
Diffstat (limited to 'trunk')
-rw-r--r-- | trunk/doc/mkbuild-pt_BR.tex | 178 | ||||
-rw-r--r-- | trunk/mkbuild/generic.mkSlackBuild | 2 | ||||
-rw-r--r-- | trunk/mkbuild/model.mkbuild | 6 | ||||
-rw-r--r-- | trunk/mkbuild/sample-Pyrex-large.mkbuild | 8 | ||||
-rwxr-xr-x | trunk/src/mkbuild | 13 |
5 files changed, 140 insertions, 67 deletions
diff --git a/trunk/doc/mkbuild-pt_BR.tex b/trunk/doc/mkbuild-pt_BR.tex index 9e620ae..d0516d6 100644 --- a/trunk/doc/mkbuild-pt_BR.tex +++ b/trunk/doc/mkbuild-pt_BR.tex @@ -52,7 +52,7 @@ \section{Introdução} -O \textit{mkbuild} é um programa em \textit{script shell} destinado a construção de \textit{Slackbuilds}, \textit{scripts} utilizados para a construção de pacotes no \textit{Slackware}. +O \textit{mkbuild} é um programa em \textit{script shell} destinado a construção de \textit{Slackbuilds}, \textit{scripts} utilizados para a construção de pacotes no \textit{Slackware}. O texto a seguir apresenta informações úteis para utilizar o \textit{mkbuild} na construção destes \textit{scripts}, bem como configurar e utilizar modelos de \textit{SlackBuilds} e outras personalizações. \section{O modelo generic.mkSlackBuild} @@ -67,7 +67,7 @@ Este modelo é uma versão setorizada do \textit{generic.SlackBuild}, levemente mo \subsection{Os Campos} -O modelo \verb!generic.mkSlackBuild! é um \textit{SlackBuild} genérico com vários campos destacados por duplo colchetes, \verb![[! \dots \verb!]]!, com mostra o trecho abaixo: +O modelo \textit{generic.mkSlackBuild} é um \textit{SlackBuild} genérico com vários campos destacados por duplo colchetes, [[ \dots ]], com mostra o trecho abaixo: \begin{verbatim} ... @@ -98,13 +98,15 @@ PROGRAM URL & \textit{URL} da fonte do pacote \\ SLACKBUILD AUTHOR & nome do autor \\ SOURCE NAME & nome da fonte, sem versão ou extensão \\ PACKAGE NAME & nome do pacote e ser gerado \\ -ARCH & arquitetura do pacote. Padrão \verb!i486! \\ +ARCH & arquitetura do pacote. Padrão i486 \\ VERSION & versão do pacote \\ SLACKBUILD AUTHOR INITIALS & assinatura utilizada pelo autor \\ -PREFIX & prefixo da instalação (\verb!/usr!, \verb!/opt!, ...)\\ -SOURCE EXTENSION & extensão da fonte (\verb!bz2!, \verb!gz!, ...) \\ +PREFIX & prefixo da instalação (/usr, /opt, \dots)\\ +SOURCE EXTENSION & extensão da fonte (bz2, gz, \dots) \\ +UNPACKER & programa de dessempacotamento (geralmenrte "tar") \\ +UNPACKER FLAGS & flags para o desempacotador \\ DOWNLOAD FOLDER URL & \textit{URL} da pasta onde se encontra a fonte \\ -DECOMPRESSOR & o descompressor para a fonte (\verb!gunzip!, \verb!bunzip2!, ...) \\ +DECOMPRESSOR & o descompressor para a fonte (gunzip, bunzip2, \dots) \\ DECOMPRESSOR TEST FLAG & \textit{flag} de teste do descompressor \\ SIGNING KEY URL & \textit{URL} da chave \textit{gpg} do fonte \\ SIGNING KEY & chave \textit{gpg} da fonte \\ @@ -112,20 +114,20 @@ MD5SUM EXTENSION & extensão utilizada pelo arquivo \textit{md5sum}\\ PATCH FILES & arquivo \textit{path} \\ NUMBER OF PREFIX SLASHES TO STRIP & \dots \\ SOURCE NAME CONSTRUCTION STRING & string para a construção do nome do arquivo. O padrão é \$SRC\_NAME-\$VERSION.tar.\$EXTENSION \\ -OTHER CONFIGURE ARGS & argumentos de configuração passados ao \verb!./configure! \\ -DOCUMENTATION FILES & lista de arquivos para a pasta \verb!/usr/doc/PACKAGE! \\ -SLACK-DESC & conteúdo do \verb!slack-desc!, descrição do pacote \\ -REST OF DOINST.SH & conteúdo do \verb!doinst.sh! \\ +OTHER CONFIGURE ARGS & argumentos de configuração passados ao ./configure \\ +DOCUMENTATION FILES & lista de arquivos para a pasta /usr/doc/PACKAGE \\ +SLACK-DESC & conteúdo do slack-desc, descrição do pacote \\ +REST OF DOINST.SH & conteúdo do doinst.sh \\ \hline \end{tabular} \\\\ -Em alguns casos o nome do pacote difere do nome da fonte, como é o caso da fonte \verb!sigc++!, que gera o pacote de nome \verb!libsiggc++!. Por este motivo que existem os campos \textit{SOURCE NAME} e \textit{PACKAGE NAME}. Para uma compreensão mais profunda destes campos, aconselho ler o \textit{script} \textit{generic.SlackBuild}. +Em alguns casos o nome do pacote difere do nome da fonte, como é o caso da fonte \textit{sigc++}, que gera o pacote de nome \textit{libsiggc++}. Por este motivo que existem os campos \textit{SOURCE NAME} e \textit{PACKAGE NAME}. Para uma compreensão mais profunda destes campos, aconselho fazer uma análise mais rofunda do \textit{script} \textit{generic.SlackBuild}. \subsection{As Seções} -As seções no modelo \verb!generic.mkSlackBuild!, são iniciadas pela \textit{tag} \verb!<nome_da_seção>! e terminadas com \verb!</nome_da_seção>!, como em um código \textit{html}, \underline{sem espaços}. +As seções no modelo \textit{generic.mkSlackBuild}, são iniciadas pela \textit{tag} <nome\_da\_seção> e terminadas com </nome\_da\_seção>, como em um código \textit{html}, \underline{sem espaços}. A única seção que não pode ter seu nome alterado é \textit{slackdesc}. Esta seção é editada de uma forma diferenciada pelo \textit{mkbuild} e a alteração de seu nome poderá gerar erro. @@ -137,45 +139,47 @@ Cada seção possui uma \textit{flag} com os possíveis valores: \item[all] sempre habilitado. \end{description} -A intenção destas \textit{flags} é gerar um padrão para as seções, deixando em \textbf{all} as seções que deverão estar sempre habilitadas e \textbf{on} ou \textbf{off} seções que podem ser habilitadas ou desabilitadas de acordo com as necessidades do \textit{SlackBuild} que será construído. +A intenção destas \textit{flags} é gerar um padrão para as seções, deixando em \textbf{all} as seções que deverão estar sempre habilitadas e \textbf{on} ou \textbf{off} seções que podem ser habilitadas ou desabilitadas de acordo com as necessidades do \textit{SlackBuild} que será construído\footnote{Na versão 1.1.x do mkbuild, todas as seções foram configuradas como \textbf{off}, para simplificar a vizualização do script de configuração \textit{.mkbuild}.}. -As seções padrões do \verb!generic.mkSlackBuild! são listadas na tabela abaixo: +As seções padrões do \textit{generic.mkSlackBuild} são listadas na tabela abaixo: \\\\ -\begin{tabular}{l|l|c} +\begin{tabular}{l|l|c|c} \hline -Seção & Descrição & Flag \\ +Seção & Descrição & 1.0.x & 1.1.x\\ \hline -head & cabeçalho do \textit{SlackBuild} & all \\ -slackbuildrc & carrega \textit{script} \verb!slackbuildrc! & off \\ -set\_variables & inicia as variáveis & all \\ -slkflags & carrega \textit{flags} para compilação & all \\ -error\_codes & códigos de erro para o \verb!createpkg! & off \\ -start\_structure & cria diretórios para compilação & all \\ -download\_source & baixa a fonte do pacote & off \\ -md5sum\_download\_and\_check\_0 & verifica \textit{md5sum} da fonte por código & off \\ -md5sum\_download\_and\_check\_1 & verifica \textit{md5sum} da fonte por arquivo & off \\ -gpg\_signature\_check & verifica assinatura \textit{gpg} da fonte & off \\ -untar\_source & desempacota a fonte & all \\ -path\_source & aplica \textit{path} a fonte & off \\ -configure & configura pacote & off \\ -make\_package & compila o pacote & all \\ -install\_package & instala o pacote em diretório temporário & all \\ -strip\_binaries & limpa binários & off \\ -compress\_manpages & comprime páginas de manuais & off \\ -compress\_info\_files & comprime arquivos \textit{info} & off \\ -install\_documentation & instala documentação & off \\ -slackdesc & \textit{slackdesc} do pacote & off \\ -postinstall\_script & \textit{script} de pós-instalação & off \\ -build\_package & constrói pacote & all \\ -clean\_builds & remove fontes e instalação temporária & off \\ +head & cabeçalho do \textit{SlackBuild} & all & on \\ +slackbuildrc & carrega \textit{script} \textit{slackbuildrc} & off & off \\ +set\_variables & inicia as variáveis & all & on \\ +slkflags & carrega \textit{flags} para compilação & all & on \\ +error\_codes & códigos de erro para o \textit{createpkg} & off & off \\ +start\_structure & cria diretórios para compilação & all & on \\ +download\_source & baixa a fonte do pacote & off & off \\ +md5sum\_download\_and\_check\_0 & verifica \textit{md5sum} da fonte por código & off & off \\ +md5sum\_download\_and\_check\_1 & verifica \textit{md5sum} da fonte por arquivo & off & off \\ +gpg\_signature\_check & verifica assinatura \textit{gpg} da fonte & off & off \\ +untar\_source & desempacota a fonte & all & on \\ +path\_source & aplica \textit{path} a fonte & off & off \\ +configure & configura pacote & off & off \\ +make\_package & compila o pacote & all & on \\ +install\_package & instala o pacote em diretório temporário & all & on \\ +strip\_binaries & limpa binários & off & off \\ +compress\_manpages & comprime páginas de manuais & off & off \\ +compress\_info\_files & comprime arquivos \textit{info} & off & off \\ +install\_documentation & instala documentação & off & off \\ +slackdesc & \textit{slackdesc} do pacote & off & off \\ +postinstall\_script & \textit{script} de pós-instalação & off & off \\ +build\_package & constrói pacote & all & on \\ +clean\_builds & remove fontes e instalação temporária & off & off \\ \hline \end{tabular} \\\\ +A terceira e a quarta colunas da tebela acima apresentam o status padrão para as seções nas versões 1.0.x e 1.1.x do \textit{mkbuild}. No \textit{mkbuild} versão 1.0.x, as seções \textbf{all} são configuradas no modelo \textit{generic.mkSlackBuild}. A partir da versão 1.1.x estas seções serão definidas como \textbf{on} ou \textbf{all} no \textit{model.mkbuild}, não mais no \textit{generic.mkSlackBuild}. + \section{Configuração} -Por hora, o \textit{mkbuild} utiliza apenas um variável de configuração em \verb!/etc/simplepkg/simplepkg.conf!. A variável \textit{SLACKBUILDS\_DIR} é necessária para utilizar o \textit{mkbuild} com a opção ``\textit{-c}'' ou ``-\textit{-commit}'', que incorpora os arquivos \textit{SlackBuild} e \textit{slack-required} à estrutura de diretórios do \textit{Slack.Sarava}, na cópia local. +Por hora, o \textit{mkbuild} utiliza apenas um variável de configuração em /etc/simplepkg/simplepkg.conf. A variável \textit{SLACKBUILDS\_DIR} é necessária para utilizar o \textit{mkbuild} com a opção "\verb!-c!" ou "\verb!--commit!", que incorpora os arquivos \textit{SlackBuild} e \textit{slack-required} à estrutura de diretórios do \textit{Slack.Sarava}, na cópia local. \section{Criando o SlackBuild de um aplicativo} @@ -199,14 +203,22 @@ Para fazer um \textit{SlackBuild} com o \textit{mkbuild} é necessário criar um a # make_package, install_package, build_package # Warning: don't remove '#>>' and "#<<" tags. #>> Start SlackBuild Sections: + on: head on: slackbuildrc + on: set_variables on: slkflags on: error_codes + on: start_structure on: download_source + on: md5sum_download_and_check_0 + on: untar_source on: configure + on: make_package + on: install_package on: strip_binaries on: install_documentation on: slackdesc + on: build_package on: clean_builds #<< End SlackBuild Sections @@ -239,7 +251,7 @@ pyrex.SlackBuild.old sample-Pyrex-large.mkbuild Ele irá criar os arquivos \textit{pyrex.SlackBuild} e \textit{slack-required}, se o parâmetro \textit{SLACK REQUIRED} for passado. Arquivos antigos serão renomeados para \textit{.old}. -Um modelo mais completo, com todos os parâmetros, \textit{sample-Pyrex-large.mkbuild}, é disponibilizado junto com o \textit{mkbuild}. Nas seções seguintes é dado uma breve explicação dos parâmetros e seções deste arquivo de parâmetros. +Um modelo mais completo, com todos os parâmetros, \textit{sample-Pyrex-large.mkbuild}, é disponibilizado junto com o \textit{mkbuild}. Nas seções seguintes é apresentado uma breve descrição dos parâmetros e seções deste arquivo de parâmetros. \subsection{Descrição dos parâmetros do arquivo \textit{.mkbuild}} @@ -259,7 +271,7 @@ A sintaxe para a passagem de parâmetros ao \textit{mkbuild} é [[DESCRIÇÃO DO PARÂMETRO]]="Parâmetro entre aspas duplas" \end{verbatim} -As aspas duplas podem ser omitidas\footnote{Nas versões inferiores a 0.9.9, do \textit{mkbuild}, o aspas duplo é o delimitador e por isto é obrigatório. Um parâmetro passado sem o aspas duplo será interpretado como um parâmetro vazio, nestas versões.}. O delimitador utilizado pelo \textit{mkbuild} é o primeiro caracter igual ($=$) a aparecer na linha. Qualquer outra ocorrência de caracter igual será lido como parte do parâmetro. O mesmo acontece com comentários colocados após o caracter igual. Por exemplo, na linha abaixo: +As aspas duplas podem ser omitidas\footnote{Nas versões inferiores a 0.9.9, do \textit{mkbuild}, o aspas duplo é o delimitador e por isto é obrigatório. Um parâmetro passado sem o aspas duplo será interpretado como um parâmetro vazio, nestas versões.}. O delimitador utilizado pelo \textit{mkbuild} é o primeiro caracter igual (=) a aparecer na linha. Qualquer outra ocorrência de caracter igual será lido como parte do parâmetro. O mesmo acontece com comentários colocados após o caracter igual. Por exemplo, na linha abaixo: \begin{verbatim} [[PARÂMETRO TEST]]=Este parâmetro é um teste # Este comentário será lido. @@ -281,7 +293,7 @@ O parâmetro \textit{SLACKBUILD AUTHOR} deve conter o nome ou apelido do responsá [[SLACKBUILD AUTHOR]]="Adalberto Simão Nader" \end{verbatim} -O parâmetro \textit{SLACKBUILD AUTHOR INITIALS} é construído à partir da primeira letra de cada nome passado pelo parâmetro \textit{SLACKBUILD AUTHOR}, em letras minúsculas. Neste caso a assinatura será ``\textit{asn}'', as iniciais de \textit{Adalberto Simão Nader}. +O parâmetro \textit{SLACKBUILD AUTHOR INITIALS} é construído a partir da primeira letra de cada nome passado pelo parâmetro \textit{SLACKBUILD AUTHOR}, em letras minúsculas. Neste caso a assinatura será "\verb!asn!", as iniciais de \textit{Adalberto Simão Nader}. Caso deseje passa outro valor basta adicionar a linha abaixo, ao arquivo de parâmetros. @@ -317,7 +329,7 @@ Para que o \textit{SOURCE NAME} seja carregado corretamente, é necessário que o NOME-DO-PROGRAMA-VER.SÃO.tar.EXTENSÃO \end{verbatim} -O nome do programa pode ter vários campos separados por um hífen ``-'', já a versão, pode possuir vários números, ou mesmo letras, separados por ponto e terminados por um ``.tar.''. A extensão deve vir logo após o ``.tar.''. +O nome do programa pode ter vários campos separados por um hífen "\verb!-!", já a versão, pode possuir vários números, ou mesmo letras, separados por ponto e terminados por um "\verb!.tar.!". A extensão deve vir logo após o "\verb!.tar.!". A variável \textit{PACKAGE NAME}, é construída com o mesmo valor de \textit{SOURCE NAME}, mas em letras minúsculas. @@ -336,6 +348,16 @@ Desta forma, a divisão dos campos no exemplo do aplicativo Pyrex, acima, terá o Observe que a precedência é a passagem do valor como parâmetro, e não a sua construção. +\subsubsection{UNPACKER e UNPACKER FLAGS} + +\textit{UNPACKER} contêm o nome do programa desempacotador das fontes, geralmente o comando "\verb!tar!", enquanto que o parâmetro \textit{UNPACKER FLAGS}, carrega as flags para o desempacotador. Os seus valores padrões são: + +\begin{verbatim} +[[UNPACKER]]="tar" +[[UNPACKER FLAGS]]="--no-same-owner --no-same-permissions -xvf" +\end{verbatim} + + \subsubsection{SOURCE NAME CONSTRUCTION STRING} Deve conter uma string para a construção do nome da fonte. O valor padrão é @@ -384,7 +406,7 @@ Estes são os nomes mais comuns dos arquivos de documentação, que geralmente são \subsubsection{PREFIX} -A maioria das fontes de programas disponibilizados atualmente, utilizam uma opção \textit{--prefix} no seu \textit{configure}, para determinar o diretório onde o programa será instalado. No \textit{Slackware} o valor desta variável variava entre \verb!/usr!, \verb!/opt! e \verb!/usr/X11!. Na nova versão do \textit{Slackware}, provável 12.0, os diretórios \verb!/opt! e \verb!/usr/X11! foram removidos e todos os pacotes estão sendo instalados em \verb!/usr!. Por isto o seu valor padrão é \verb!/usr!. +A maioria das fontes de programas disponibilizados atualmente, utilizam uma opção "\verb!--prefix!" no seu \textit{configure}, para determinar o diretório onde o programa será instalado. Nas versões inferiores a 12.0 do \textit{Slackware} o valor desta variável variava entre /usr, /opt e /usr/X11. Na versão 12.0, e provavelmente nas superiores, os diretórios /opt e /usr/X11 foram removidos e todos os pacotes estão sendo instalados em /usr. Por isto o seu valor padrão é /usr. \begin{verbatim} [[PREFIX]]="/usr" @@ -393,7 +415,7 @@ A maioria das fontes de programas disponibilizados atualmente, utilizam uma opçã \subsubsection{NUMBER OF JOBS} -O parâmetro \textit{NUMBER OF JOBS} é usado para indicar ao comando \textit{make} o número de processos que podem ser iniciados simultaneamente durante a compilação. A grande maioria dos programas atuais podem ser compilados em dois ou mais processos simultâneos. Isto reduz sensivelmente o tempo de compilação de um pacote, mesmo que sua máquina possua apenas um processador. Muitos \textit{SlackBuilds} oficiais do \textit{Slackware} utilizam este parâmetro configurado para ``7'' processos, ou seja ``-j7''. Este parâmetro pode ser passado como um número ou com a flag \textit{-j}, como nos exemplos abaixo. +O parâmetro \textit{NUMBER OF JOBS} é usado para indicar ao comando \textit{make} o número de processos que podem ser iniciados simultaneamente durante a compilação da fonte. A grande maioria dos programas atuais podem ser compilados em dois ou mais processos simultâneos. Isto reduz sensivelmente o tempo de compilação de um pacote, mesmo que sua máquina possua apenas um processador. Muitos \textit{SlackBuilds} oficiais do \textit{Slackware} utilizam este parâmetro configurado para "\verb!7!" processos, ou seja "\verb!-j7!". Este parâmetro pode ser passado como um número ou com a flag "\verb!-j!", como nos exemplos abaixo. \begin{verbatim} [[NUMBER OF JOBS]]="7" @@ -405,7 +427,6 @@ O parâmetro \textit{NUMBER OF JOBS} é usado para indicar ao comando \textit{make [[NUMBER OF JOBS]]="-j7" \end{verbatim} -Por padrão, este parâmetro está desabilitado. \subsubsection{SLACK REQUIRED} @@ -421,13 +442,13 @@ As condições possíveis são apresentadas na tabela abaixo: \hline CONDIÇÃO & significado \\ \hline -$=$ & igual \\ -$>$ & maior \\ -$>=$ & maior ou igual \\ += & igual \\ +> & maior \\ +>= & maior ou igual \\ \hline \end{tabular} -Os campos \textit{CONDIÇÃO} e \textit{VERSÃO} podem ser omitidos. Cada pacote da dependência deve ser separado por um ``:''. +Os campos \textit{CONDIÇÃO} e \textit{VERSÃO} podem ser omitidos. Cada pacote da dependência deve ser separado por um ":". Para o \textit{SLACK REQUIRED} definido com a linha: @@ -451,7 +472,7 @@ dep5 = 1.0 \subsubsection{SLACKBUILD MODEL} -Este parâmetro contém o nome do modelo utilizado para gerar os \textit{SlackBuilds}. O valor padrão é \textit{generic.mkSlackBuild}. Outros modelos podem ser utilizados adicionando-se o arquivo do modelo no diretório \verb!/etc/simplepkg/defaults/mkbuild/!. A linha abaixo +Este parâmetro contém o nome do modelo utilizado para gerar os \textit{SlackBuilds}. O valor padrão é \textit{generic.mkSlackBuild}. Outros modelos podem ser utilizados adicionando-se o arquivo do modelo no diretório /etc/simplepkg/defaults/mkbuild/. A linha abaixo \begin{verbatim} [[SLACKBUILD MODEL]]="generic.mkSlackBuild.2" @@ -462,7 +483,7 @@ Este parâmetro contém o nome do modelo utilizado para gerar os \textit{SlackBuil \subsubsection{SLACKBUILD PATH} -Este parâmetro é necessário apenas para uso com a opção ``-c'', \textit{commit}. Ele indica o diretório, na estrutura de diretórios do Slack.Sarava, onde o \textit{SlackBuild} construído deverá ser armasenado. Se este parâmetro não for passado, o \textit{mkbuild} irá pesquisá-lo no repositório do \textit{gentoo}, pela \textit{internet}. Caso não consiga resolver com esta pesquisa, o \textit{SlackBuild} será colocado em um diretório padrão, para \textit{scripts} não classificados, em \verb!others/unclassified/$PKG_NAME!. +Este parâmetro é necessário apenas para uso com a opção "\verb!-c!", \textit{commit}. Ele indica o diretório, na estrutura de diretórios do Slack.Sarava, onde o \textit{SlackBuild} construído deverá ser armasenado. Se este parâmetro não for passado, o \textit{mkbuild} irá pesquisá-lo no repositório do \textit{gentoo}, pela \textit{internet}\footnote{Esta pesquisa automática do mkbuild tem se mostrado pouco eficiente. Por isto é aconselhável verifica com um navegador a localização do \textit{SlackBuild} em http://gentoo-portage.com.}. Caso não consiga resolver com esta pesquisa, o \textit{SlackBuild} será colocado em um diretório padrão para \textit{scripts} não classificados, "\verb!others/unclassified/$PKG_NAME!". \begin{verbatim} [[SLACKBUILD PATH]]="dev/python/pyrex" @@ -490,34 +511,48 @@ Além destes parâmetros padrões do \textit{generic.mkSlackBuild}, qualquer outro [[NEW PARAMETER]]="new value" \end{verbatim} -O \textit{mkbuild} irá procurar a ocorrência da seqüência \textit{[[NEW PARAMETER]]} no modelo passado por \textit{[[SLACKBUILD MODEL]]} e irá substitui-lo por ``\textit{new value}''. +O \textit{mkbuild} irá procurar a ocorrência da seqüência \textit{[[NEW PARAMETER]]} no modelo passado por \textit{[[SLACKBUILD MODEL]]} e irá substitui-lo por "\verb!new value!". \subsection{Habilitando seções} -As seções do modelo \textit{generic.mkSlackBuild} são habilitadas na seção iniciada por ``\#$>>$'' e terminada por ``\#$<<$'', no arquivos de parâmetros. Como as seções estão desabilitadas no modelo padrão, \textit{generic.mkSlackBuild}, esta seção do arquivo de parâmetros tem apenas que habilitar as seções desejadas do modelo. +As seções do modelo \textit{generic.mkSlackBuild} são habilitadas na seção iniciada por "\verb!#>>!" e terminada por "\verb!#<<!", no arquivos de parâmetros. Como as seções estão desabilitadas no modelo padrão, \textit{generic.mkSlackBuild}, esta seção do arquivo de parâmetros tem apenas que habilitar as seções desejadas do modelo. \begin{verbatim} #>> Start SlackBuild Sections: + on: head on: slackbuildrc + on: set_variables on: slkflags on: error_codes + on: start_structure on: download_source +off: md5sum_download_and_check_0 +off: md5sum_download_and_check_1 +off: gpg_signature_check + on: untar_source +off: patch_source on: configure + on: make_package + on: install_package on: strip_binaries +off: compress_manpages +off: compress_info_files on: install_documentation -# linha ignorada on: slackdesc +# esta linha é ignorada +off: postinstall_script + on: build_package on: clean_builds #<< End SlackBuild Sections \end{verbatim} -No caso do exemplo acima, são habilitadas as seções: \textit{slackbuildrc}, \textit{slkflags}, \textit{error\_codes}, \textit{download\_source}, \textit{configure}, \textit{strip\_binaries}, \textit{install\_documentation}, \textit{slackdesc} e \textit{clean\_builds}. Linhas iniciadas por uma tralha, \#, são ignoradas. +No caso do exemplo acima, são desabilitadas as seções: \textit{md5sum\_download\_and\_check\_0}, \textit{md5sum\_download\_and\_check\_1}, \textit{gpg\_signature\_check}, \textit{patch\_source}, \textit{compress\_manpages}, \textit{compress\_info\_files} e \textit{postinstall\_script}. Linhas iniciadas por uma tralha, \#, são ignoradas. Como no modelo generic.mkSlackBuild todas as seções estão desabilitadas ("off"), apenas as seções ligadas necessitam ser habilitadas. \subsubsection{Substituição de seções do modelo} -Em algumas situações pode ser necessário substituir o conteúdo de uma seção. Estas mudanças nas seções são feitas por iniciar uma seção, no arquivo de parâmetros, por ``\verb!#>nome_da_seção!'' e terminar por ``\verb!#<nome_da_seção!''. Quando o \textit{mkbuild} localiza estas seções no arquivo de parâmetros, ele substitui as seções padrões, de mesmo nome, pelo conteúdo definido no arquivo de parâmetros. Por exemplo: +Em algumas situações pode ser necessário substituir o conteúdo de uma seção. Estas mudanças nas seções são feitas por iniciar uma seção, no arquivo de parâmetros, por "\verb!#>nome_da_seção!" e terminar por "\verb!#<nome_da_seção!". Quando o \textit{mkbuild} localiza estas seções no arquivo de parâmetros, ele substitui as seções padrões, de mesmo nome, pelo conteúdo definido no arquivo de parâmetros. Por exemplo: \begin{verbatim} #>untar_source @@ -552,17 +587,26 @@ pyrex: #<slackdesc \end{verbatim} -Para esta seção, o \textit{mkbuild} irá substituir o parâmetro \textit{[[SLACK-DESC]]} pelo conteúdo definido entre \verb!#>slackdesc! e \verb!#<slackdesc!, além de redimensionar a régua de orientação do \textit{slack-desc}. +Para esta seção, o \textit{mkbuild} irá substituir o parâmetro \textit{[[SLACK-DESC]]} pelo conteúdo definido entre "\verb!#>slackdesc!" e "\verb!#<slackdesc!", além de redimensionar a régua de orientação do \textit{slack-desc}. \section{Considerações Finais} -Vários parâmetros podem ser passados ao \textit{mkbuild} pela linha de comando. Um manual completo destas opções pode ser consultado passando flag \textit{-h}, ao \textit{mkbuild}: +Para simplificar a construção dos \textit{SlackBuilds} é aconselhável editar o arquivo \verb!/etc/simplepkg/defaults/mkbuild/model.mkbuild! e adicionar algumas declarações padrões como: -\begin{verbatim} +\begin{itemize} +\item \textit{SLACKBUILD AUTHOR} - com o seu nome +\item \textit{SLACKBUILD AUTHOR INITIALS} - a assinatura dos pacotes +\item \textit{SLACKBUILD MODEL} - caso o modelo utilizado difira do modelo padrão +\item \textit{NUMBER OF JOBS} - com o valor desejado +\item \dots +\end{itemize} +Vários destes parâmetros também podem ser passados ao \textit{mkbuild} pela linha de comando. Um manual completo destas opções pode ser consultado passando flag \verb!-h!, ao \textit{mkbuild}: + +\begin{verbatim} NAME - mkbuild - create SlackBuild script from mkbuild_file input + mkbuild - create SlackBuild script from .mkbuild input file SYNOPSIS mkbuild [OPIONS] [mkbuild_file] @@ -597,8 +641,12 @@ DESCRIPTION this help mesage -c, --commit commit SlackBuilds in local svn tree + -n, --new <mkbuild_name> + start a new mkbuild configure file -v, --version program version + -V, --verbose + print debug information EXAMPLES mkbuild --prefix /usr/local pyrex.mkbuild @@ -608,6 +656,9 @@ EXAMPLES AUTHOR Written by Rduson R. Alves +AVAILABILITY + by svn: svn checkout svn://slack.sarava.org/simplepkg + this mkbuild is found in branches/0.6/ REPORTING BUGS Report bugs to <alves_list@yahoo.com.br> @@ -620,8 +671,9 @@ COPYRIGHT extent permitted by law. \end{verbatim} -Uma opção interessante é a \textit{-c}, utilizada para adicionar e atualizar uma cópia da lista de \textit{SlackBuilds}, localmente. +Uma opção interessante é a \verb!-c!, utilizada para adicionar e atualizar uma cópia do \textit{SlackBuild} gerado na lista de \textit{SlackBuilds} local. +Slack.Sarava agradece a toda e qualquer contribuição que possa nos ajudar a manter e a desenvolver este projeto. \end{document} diff --git a/trunk/mkbuild/generic.mkSlackBuild b/trunk/mkbuild/generic.mkSlackBuild index 777deac..18ecc6a 100644 --- a/trunk/mkbuild/generic.mkSlackBuild +++ b/trunk/mkbuild/generic.mkSlackBuild @@ -139,7 +139,7 @@ gpg --verify "$SRC_DIR/$SRC.sig" "$SRC_DIR/$SRC" || exit $ERROR_GPG <untar_source> off # Untar cd "$TMP" -tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR +[[UNPACKER]] [[UNPACKER FLAGS]] "$SRC_DIR/$SRC" || exit $ERROR_TAR cd "$PKG_SRC" </untar_source> diff --git a/trunk/mkbuild/model.mkbuild b/trunk/mkbuild/model.mkbuild index 3fb88c0..c6953db 100644 --- a/trunk/mkbuild/model.mkbuild +++ b/trunk/mkbuild/model.mkbuild @@ -38,6 +38,12 @@ [[EXTENSION]]="" # +# Unpacker programa ("") to auto-set. Default "tar" +# Unpacke Flags ("") to auto-set. Default flags to tar "--no-same-owner --no-same-permissions -xvf" +[[UNPACKER]]="" +[[UNPACKER FLAGS]]="" + +# # Dependency list input # Enter string: "dependency_1 [condiction_1] [versio_1]: dependency_2 [condiction_2] [versio_2]" # Example: diff --git a/trunk/mkbuild/sample-Pyrex-large.mkbuild b/trunk/mkbuild/sample-Pyrex-large.mkbuild index bbcf7e6..047814a 100644 --- a/trunk/mkbuild/sample-Pyrex-large.mkbuild +++ b/trunk/mkbuild/sample-Pyrex-large.mkbuild @@ -55,6 +55,12 @@ [[EXTENSION]]="gz" # +# Unpacker programa ("") to auto-set. Default "tar" +# Unpacke Flags ("") to auto-set. Default flags to tar "--no-same-owner --no-same-permissions -xvf" +[[UNPACKER]]="" +[[UNPACKER FLAGS]]="" + +# # Dependency list input # Enter string: "dependency_1 [condiction_1] [versio_1]: dependency_2 [condiction_2] [versio_2]" # Example: @@ -124,7 +130,7 @@ off: md5sum_download_and_check_1 off: gpg_signature_check on: untar_source -off: path_source +off: patch_source on: configure on: make_package on: install_package diff --git a/trunk/src/mkbuild b/trunk/src/mkbuild index 8572e77..eeb548c 100755 --- a/trunk/src/mkbuild +++ b/trunk/src/mkbuild @@ -18,8 +18,8 @@ # # Based in model generic.SlackBuild of Luiz # -# Version 1.0.5 -PROG_VERSION=1.0.5 +# Version 1.1.1 +PROG_VERSION=1.1.1 PROG_NAME=`basename $0` #-------------------------------------------------------------------- @@ -659,6 +659,15 @@ else EXTENSION=`validate_parameter "$EXTENSION" "EXTENSION" "$STR_MOUNT"` || mkbuild_error $ERROR_CONSTRUCTION "EXTENSION" [ $VERBOSE -eq $on ] && echo "[[EXTENSION]]=\"$EXTENSION\"" + # Unpacker + UNPACKER=`validate_parameter "$UNPACKER" "UNPACKER" "tar"` || mkbuild_error $ERROR_CONSTRUCTION "UNPACKER" + [ $VERBOSE -eq $on ] && echo "[[UNPACKER]]=\"$UNPACKER\"" + + # Unpacker flags + [ "$UNPACKER"=="tar" ] && STR_MOUNT="--no-same-owner --no-same-permissions -xvf" || STRING="" + UNPACKER_FLAGS=`validate_parameter "$UNPACKER_FLAGS" "UNPACKER FLAGS" "$STR_MOUNT"` || mkbuild_error $ERROR_CONSTRUCTION "UNPACKER FLAGS" + [ $VERBOSE -eq $on ] && echo "[[UNPACKER_FLAGS]]=\"$UNPACKER_FLAGS\"" + # Build archteture ARCH=`validate_parameter "$ARCH" "ARCH" "i486"` [ $VERBOSE -eq $on ] && echo "[[ARCH]]=\"$ARCH\"" |