← Voltar

[HOWTO]Compilação com SlackBuilds

Atualização: 17/04/2018

Autor: Jefferson Rocha

Seção: Slackware > Pacotes

Versão: 1.0

Homepage: http://slackjeff.com.br


Índice


Por que Slackbuilds?

Sabemos que que compilação é algo que precisamos estudar, não é fácil tirar a melhor configuração de que um programa pode oferecer. Como dito precisamos estudar as melhores formas, e para isso que a maioria dos desenvolvedores botam os arquivos "Readme" e "Install". Nestes arquivos é mostrado todo o processo padrão e todos as configurações disponíveis...
Mas o que acontece quando conseguimos tirar um bom aproveito daquele X programa mas não guardamos os nossos pacotes? ou até mesmo esquecemos que ele existe... E quando você precisa, CADÊ???

O projeto Slackbuilds veio para tornar este processo menos árduo, nascido em 2006 por um grupo de entusiastas da distribuição Slackware Linux. O Slackbuilds em si nada mais é que um programa feito bourne shell 'sh', que faz todo o processo ou seja, todo o passo a passo que o programa precisa para ser compilado com sua melhor configuração.
Lembrando que nem sempre o que o programador fez naquele determinado Slackbuilds é totalmente viável para você. Por isso é importante editar caso haja necessidade!
Normalmente os Scripts Slacbuilds seguem um padrão, um template para tornar as coisas mais organizadas, então se você já sabe programar não vai ter muito problema para criar seu próprio Slackbuild, quem sabe vocẽ ajuda na comunidade! Vamos abordar no próximo tópico sobre.

Como fazer parte do projeto Slackbuilds?

Para ajudar o projeto é fácil, como a principal base você precisa saber programar em Shell com o dialeto Bourne Shell 'sh'. Mas por que os scripts são feitos em 'sh'? simples, para se tornar o mais portavel possivel dentro dos mais váriaveis Shells, não é por que você utiliza o Slackware que você deverá ficar preso ao Shell Bash não é!?

Para fazer parte e ser um mantenedor você pode começar lendo o link abaixo: https://slackbuilds.org/guidelines/
Aqui tem alguns template de um programa que você pode estudar: https://slackbuilds.org/templates/ Caso você tenha um programa criado em Shell que será muito útil para a comunidade você pode ter uma base com o programa 'slack-scripts':
https://slackbuilds.org/repository/14.2/system/slack-scripts Bons estudos!

Preparando o ambiente.

Antes de mais nada precisamos preparar nosso ambiente para começar a compilar correto? não queremos que os pacotes do Slackbuild 'SBO' fiquem espalhados por ai, eu mesmo cansei de sujar meu sistema deixando os fontes no diretorio Download.
Isso é um saco, deixar tudo espalhado #euein!, vamos então criar uma pasta somente para isto, vamos chamar de slackbuilds-src, sinta-se a vontade para escolher outro nome.

$ mkdir -v $HOME/slackbuilds-src
mkdir: foi criado o diretório '/home/slackjeff/slackbuilds-src'

Será dentro deste diretório que será despejado todos os nossos fontes. Já adiantando!!
Normalmente os pacotes são gerados no diretório /tmp, podemos alterar esta pasta no próprio script e bota-la em uma pasta mais apropriada, dentro do próprio script .Slackbuild existe uma váriavel chamada 'OUTPUT' nela você pode alterar para outro diretorio, mas lembre-se que terá que fazer este processo sempre! Procure pela linha, e troque /tmp pelo diretorio preferido.

OUTPUT=${OUTPUT:-/tmp}

Trocado:

OUTPUT=${OUTPUT:-/tmp/slackbuilds-pkg}

***NOTA:
Está expansão de váriavel ${VAR:conteúdo significa o seguinte. Se caso a váriavel não estiver definida, ou vazia retorna o conteudo que você passar.

Vamos começar a brincadeira.

Feito o processo acima, vamos começar realmente a nossa brincadeira, antes de tudo, necessitamos entrar no site oficial do Slackbuilds para procurar o nosso programa. https://slackbuilds.org/

Entrado no site oficial você perceberá que há uma tela de procura com o nome de Slackbuilds Search, ao lado uma caixa dê preenchimento e logo ao lado um menu suspenso indicando as versões. Nesta data que está sendo escrito este HOW-TO a versão mais novo do Slackware é 14.2.
Para nosso How-to vamos fazer a brincadeira com o pacote neofetch, digite no campo de busca neofetch escolha a versão desejada e clique em >> para fazer a busca.
Ótimo o pacote foi encontrado com sucesso, note que há bastante informações... Vamos explicar detalhadamente! No inicio há a versão escolhida, Categoria, Nome do pacote e versão e logo abaixo há as informações deste pacote.

14.2 > Desktop > neofetch (3.4.0)

Neofetch is a CLI system information tool written in BASH. Neofetch displays information about your system next to an image, your OS logo, or any ascii file of your choice. The main purpose of neofetch is to be used in screenshots to show other users what OS/Distro you're running, what Theme/Icons you're using and etc.
To see any optional dependencies that you might need, you can view it in https://github.com/dylanaraps/neofetch/wiki/Dependencies

Logo abaixo há o mantenedor do pacote, se você clicar em cima do nome irá abrir o e-mail para contato, para report!
Abaixo do mantenedor há as palavras chaves do pacote e Changelog.

Maintained by: Muhammad Herdiansyah
Keywords: neofetch,screenfetch,screen,info,script,logo,screenshot
ChangeLog: neofetch

No centro da tela há o que nos importa! Site oficial do pacote, fonte, e o script do Slackbuild.

Homepage:
https://github.com/dylanaraps/neofetch

Source Downloads:
neofetch-3.4.0.tar.gz (a3ea7a96021001bf8a8ba8ea935198ae)

Download SlackBuild:
neofetch.tar.gz neofetch.tar.gz.asc (FAQ)

(the SlackBuild does not include the source)

E no canto inferior ao lado esquerdo temos os arquivos individuais do pacote.

Individual Files:
• README
• neofetch.SlackBuild
• neofetch.info
• slack-desc

Vamos baixar os arquivos que necessitamos, no caso são eles: Source Downloads que é o fonte do programa e Download Slackbuild. Copiamos o link do neofetch-3.4.0.tar.gz e o Script neofetch.tar.gz Abrimos nosso terminal e navegamos até nosso diretório criado:

$ cd $HOME/slackbuilds-src

Após isto vamos rodar o wget para fazer o Download dentro da pasta.

$ wget https://github.com/dylanaraps/neofetch/archive/3.4.0/neofetch-3.4.0.tar.gz \ https://slackbuilds.org/slackbuilds/14.2/desktop/neofetch.tar.gz

Se tudo ocorreu bem seus pacotes estarão livres leves e soltos em seu diretorio!

$ ls
neofetch-3.4.0.tar.gz neofetch.tar.gz

Vamos começar por descompactar o arquivo neofetch.tar.gz, nele contem os arquivos Slackbuilds.

$ tar -xvf neofetch.tar.gz
neofetch/
neofetch/slack-desc
neofetch/README
neofetch/neofetch.info
neofetch/neofetch.SlackBuild

Note que uma pasta chamada neofetch foi criada, vamos enviar o nosso source sem descompactalo para dentro do diretorio neofetch em seguida vamos entrar dentro do diretorio.

$ mv neofetch-3.4.0.tar.gz neofetch && cd neofetch

Necessitamos do Root neste momento! logue-se e, seguida execute o script do .Slackbuild

$ su

# ./neofetch.SlackBuild

Como o neofetch é um script é feito o procedimento em menos de 3 segundos. Note que o pacote foi criado em tmp:
Slackware package /tmp/neofetch-3.4.0-noarch-1_SBo.tgz created.
Utilize o installpkg para instalar caso você não tenha este pacote ainda no sistema, caso já tenha uma versão antiga e está é uma versão mais nova use o upgradepkg com a opção --install-new.
Com a opção --install-new caso o pacote não tenha no sistema o pacote é instalado se o pacote que você está instalando seja da mesma versão ele aborta e não faz nada, e caso já exista um versão antiga e o pacote que você está instalando seja uma versão mais atual ele irá atualizar! Em meu caso eu não tenho ainda o neofetch.

# installpkg /tmp/neofetch-3.4.0-noarch-1_SBo.tgz

Se tudo ocorreu bem, seu pacote foi instalado com sucesso! Agora é só aproveitar!

Uma nota mais que importante

Caso o pacote/programa que vocẽ escolheu tenha pacotes necessários/dependencias você necessitará primeiramente fazer todo o processo com o pacote necessário para depois compilar o pacote base em si.
Por exemplo o pacote ssr 'simple screen recorder', necessita por padrão do pacote ffmpeg, você pode encontrar logo no cabeçalho, vamos conferir:

14.2 > Desktop > ssr (0.3.10)

SimpleScreenRecorder is a feature-rich screen recorder for Linux that supports X11 and OpenGL.
For JACK audio support (requires jack-audio-connection-kit) set JACK=TRUE. To build with Qt5 (requires qt5) set QT5=TRUE.

This requires: ffmpeg

Maintained by: Benjamin Trigona-Harany
Keywords: ssr,simplescreenrecorder,screencast
ChangeLog: ssr

Note que há uma linha chamada 'This requires' e logo em seguida o ffmpeg.
Então o primeiro passo seria compilar o pacote ffmpeg para depois compilar o ssr em si.

Bom divertimento :)