KDE 4.10.0 no Slackware 14/Current
Durante algum tempo me aventurei em compilar os pacotes do KDE para o Slackware64. Não chegava a ser um grande trabalho pois a maior parte do serviço já estava feito nos SlackBuilds oficiais. Mas na ocasião Eric Hameleers (AlienBOB) passo a manter uma atualização quase em sincronismo com o lançamento da nova versão do KDE, e com o Alien não dava para competir. Como resultado abandonei a compilação dos pacotes e passei a utilizar o trabalho de AlienBOB.
Perdi um pouco da diversão, confesso, mas o importante estava assegurado, poderia continuar utilizando a última versão do KDE, tão logo saísse do forno. Até então não me decepcionei com a escolha.
Os pacotes do AlienBOB são anunciados em seu site Alien Pastures, geralmente poucos dias após o lançamento das fontes pelo site oficial. O problema é que estes são construídos, geralmente, sobre a versão current do Slackware. Pessoalmente não vejo isto como um problema, uma vez que o current tem se mostrado muito estável nos últimos anos (o uso a pelo menos uns 5 anos em meu notebook de trabalho). A menos de alguns probleminhas pequenos não tenho nada a reclamar (o último incômodo que percebi foi a falta de um --login
na linha de comando do konsole).
O artigo que lança a compilação do KDE 4.10.0 para o Slackware64-current foi o “KDE SC 4.10.0 released”, do dia 8 de fevereiro de 2013, apenas dois dias depois do lançamento do 4.10.0. Em 10 de fevereiro o AlienBOB lançou o segundo build dos pacotes kde-workspace e nepomuk-core, “Two fix-packages for KDE SC 4.10.0”, referentes a aplicação de um patch aos pacotes.
Instalando
Os pacotes podem ser baixados dos espelhos:
- http://alien.slackbook.org/ktown/ (repositório principal), rsync URI: rsync://alien.slackbook.org/alien/ktown/
- http://taper.alienbase.nl/mirrors/alien-kde/ (espelho rápido), rsync URI: rsync://taper.alienbase.nl/mirrors/alien-kde/
- http://repo.ukdw.ac.id/alien-kde/ (espelho na Indonésia de Willysr), rsync URI: rsync://repo.ukdw.ac.id/alien-kde/
Willysr (Willy Sudiarto Raharjo) é um grande colaborador do AlienBOB, até onde pude entender. Recentemente adicionei seu site a minha lista de links para acompanhar, assim espero conhecê-lo melhor.
No espelho tem um README.txt bem claro, com os passo para a instalação dos pacotes que em linhas gerais se resume em executar os comando abaixo, com a máquina em modo 3 e modo texto:
Baixar os pacotes:
rsync -av rsync://alien.slackbook.org/alien/ktown/14.0/4.10.0 . [prompt]cd 4.10.0
Instalar os pacotes 32bits:
upgradepkg --reinstall --install-new x86/deps/*.t?z [prompt]upgradepkg --reinstall --install-new x86/kde/*.t?z [prompt]removepkg kdegames [prompt]removepkg kdemultimedia [prompt]removepkg ksecrets [prompt]removepkg printer-applet
ou em 64Bits:
upgradepkg --reinstall --install-new x86_64/deps/*.t?z [prompt]upgradepkg --reinstall --install-new x86_64/kde/*.t?z [prompt]removepkg kdegames [prompt]removepkg kdemultimedia [prompt]removepkg ksecrets [prompt]removepkg printer-applet
Por fim, atualizar os pacotes de linguagem e os novos arquivos de configuração em /etc.
upgradepkg x86/kdei/*.t?z
ou
upgradepkg x86_64/kdei/*.t?z
e por fim
slackpkg new-config
Automatizando a Instalação
Para deixar alguma contribuição, fiz um pequeno script para automatizar todo o processo para os mais acomodados ou menos experientes.
O script baixa os pacotes da arquitetura do Slackware que estiver usando (32Bits ou 64Bits) e instala, se executado em modo 3. Ele ainda permite manter uma cópia dos pacotes, fontes e scripts de construção localmente.
Chamei o script de kde_rsync, pois inicialmente a ideia era apenas fazer o download dos pacotes. Fique a vontade para renomeá-lo como desejar.
#!/bin/bash
#
# by Rudson R. Alves
#
VERSION=${VERSION:='4.10.0'}
SVERSION=${SVERSION:=`cat /etc/slackware-version | awk '{ print $2 }'`}
KDE_DIR=${KDE_DIR:='/home/ftp/linux/kde46'}
SRC_DIR="$KDE_DIR/source"
URL_BASE=${URL:="taper.alienbase.nl/mirrors/alien-kde"}
URL="$URL_BASE/$SVERSION"
ACTION="fast"
VERBOSE=false
GETSRC=false
UPGRADE="upgradepkg"
INSTALL="installpkg"
REMOVE="removepkg"
if [ ! -e $KDE_DIR ]; then
mkdir -p $KDE_DIR
fi
if [ ! -e $SCR_DIR ]; then
mkdir -p $SRC_DIR
fi
# Automatically determine the architecture we're building on:
ARCH=$( uname -m )
case "$ARCH" in
i?86|x86)
ARCH=x86
NOARCH=x86_64
;;
x86_64)
ARCH=x86_64
NOARCH=x86
;;
*)
exit 1
;;
esac
function last_kde_version {
lynx --dump http://$URL | awk '/^ +[0-9]+.*$/ { print $2 }' | tail -1 | sed 's/^.*\/\([0-9]\.[0-9]\+\.[0-9]\+\)\/$/\1/'
}
function fast_rsync {
echo -e "\nGet Packages to $ARCH:"
if $VERBOSE; then
echo "rsync -av --delete --progress --exclude $NOARCH rsync://$URL/$VERSION/ $KDE_DIR/$VERSION/"
fi
cd $VERSION
rsync -av --delete --progress --exclude $NOARCH rsync://$URL/$VERSION/ $KDE_DIR/$VERSION/
cd ..
if $GETSRC; then
get_source
fi
}
function all_rsync {
echo -e "\nGet Packages to $ARCH:"
if $VERBOSE; then
echo "rsync -av --delete --progress rsync://$URL/$VERSION/ $KDE_DIR/$VERSION/"
fi
rsync -av --delete --progress rsync://$URL/$VERSION/ $KDE_DIR/$VERSION/
get_source
}
function get_source {
if [ ! -e $SRC_DIR/ ]; then
mkdir -p $SRC_DIR
fi
echo -e "\nGet Source files:"
if $VERBOSE; then
echo "rsync -av --delete --progress rsync://$URL_BASE/source/$VERSION/ $SRC_DIR/$VERSION/"
fi
rsync -av --delete --progress rsync://$URL_BASE/source/$VERSION/ $SRC_DIR/$VERSION/
}
function help {
echo "Use:"
echo " `basename $0` [option]"
echo " Where option is:"
echo " -f|--fast to fast download in $ARCH packages, without source files"
echo " -a|--all to download all files and arquiterures"
echo " -l|--last get kde build last version"
echo " -d|--destiny set a source destiny"
echo " -D|--debug enable debug mode"
echo " -i|--install install packages"
echo " -u|--upgrade to small upgrades"
echo " -s|--source to down sources in fast download"
echo " -h|--help to show help"
exit 0
}
function print_head {
echo ""
echo "KDE rsync script"
echo ""
echo "KDE VERSION: $VERSION"
echo "repo DIR: $KDE_DIR"
echo "repo URL: $URL"
echo "System Arch: $ARCH"
echo "Slack Version: $SVERSION"
echo ""
}
function install_kde {
fast_rsync
if ! check_mode; then
cd $CWD
exit 1
fi
cd $VERSION
echo
if $VERBOSE; then
echo "$UPGRADE --reinstall --install-new $ARCH/deps/*.t?z"
fi
$UPGRADE --reinstall --install-new $ARCH/deps/*.t?z
if $VERBOSE; then
echo "$UPGRADE --reinstall --install-new $ARCH/kde/*.t?z"
fi
$UPGRADE --reinstall --install-new $ARCH/kde/*.t?z
remove_old_pkgs
slackpkg new-config
cd ..
}
function upgrade_kde {
fast_rsync
if ! check_mode; then
cd $CWD
exit 1
fi
cd $VERSION
echo
if $VERBOSE; then
echo "$UPGRADE --install-new $ARCH/deps/*.t?z"
fi
$UPGRADE --install-new $ARCH/deps/*.t?z
if $VERBOSE; then
echo "$UPGRADE --install-new $ARCH/kde/*.t?z"
fi
$UPGRADE --install-new $ARCH/kde/*.t?z
remove_old_pkgs
slackpkg new-config
cd ..
}
function remove_old_pkgs {
if [ $VERSION != "4.9.5" ]; then
if $VERBOSE; then
echo "$REMOVE kdegames"
fi
$REMOVE kdegames 2>/dev/null
if $VERBOSE; then
echo "$REMOVE printer-applet"
fi
$REMOVE printer-applet 2>/dev/null
fi
if $VERBOSE; then
echo "$REMOVE kdemultimedia"
fi
$REMOVE kdemultimedia 2>/dev/null
if $VERBOSE; then
echo "$REMOVE ksecrets"
fi
$REMOVE ksecrets 2>/dev/null
if $VERBOSE; then
echo "$REMOVE printer-applet"
fi
$REMOVE printer-applet 2>/dev/null
if $VERBOSE; then
echo "$UPGRADE $ARCH/kdei/*.t?z"
fi
$UPGRADE $ARCH/kdei/*.t?z
if $VERBOSE; then
echo "slackpkg new-config"
fi
}
function set_parameters {
while [ "$1" ]; do
case $1 in
"-l"|"--last")
echo "Get last kde build version..."
VERSION=`last_kde_version`
;;
"-f"|"--fast")
echo "Fast RSync to $ARCH Binaries..."
ACTION="fast"
;;
"-a"|"--all")
echo "RSync All..."
ACTION="all"
;;
"-i"|"--install")
echo "Install..."
ACTION="install"
;;
"-u"|"--upgrade")
echo "Upgrade..."
ACTION="upgrade"
;;
"-v"|"--verbose")
echo "Verbose On..."
VERBOSE=true
;;
"-d"|"--destiny")
echo "Set destiny..."
KDE_DIR=$2
shift
;;
"-D"|"--debug")
set -x
;;
"-s"|"--source")
echo "Down source..."
GETSRC=true
;;
*)
help
cd $CWD
exit 0
;;
esac
shift
done
}
function check_mode {
# Check root user
echo "Check root user..."
if [ "$USER" != "root" ]; then
echo "\nERROR: Use this application as root user only!\n"
return 1
fi
# Check single-user mode
echo "Check single-user mode..."
LEVEL=(`runlevel`)
if [ ${LEVEL[1]} -eq 4 ]; then
echo -e "\nERROR: Put yout machine in mode 1 or 3:\ntelinit 1/3\n"
return 1
fi
return 0
}
# Start Program
CWD=$PWD
cd $KDE_DIR/
# set input
set_parameters "$@"
print_head
if [ -z $VERSION ]; then
echo "Version Error..."
exit 1
elif [ ! -e $VERSION ]; then
if $VERBOSE; then
echo "Create $VERSION directory..."
fi
mkdir $VERSION
fi
if [ $ACTION == "fast" ]; then
fast_rsync
elif [ $ACTION == "all" ]; then
all_rsync
elif [ $ACTION == "install" ]; then
install_pkg
elif [ $ACTION == "upgrade" ]; then
upgrade_kde
fi
cd $CWD
O script tem um help simples com as suas opções:
-f | --fast
– download rápido, somente os pacotes de sua arquitetura;-a | --all
– para baixar tudo;-l | --last
– para baixar a última versão do KDE compilada;-d | --destiny
– para mudar o destino de download dos pacotes;-D | --debug
– habilita o modo debug do bash-i | --install
– para instalar os pacotes;-u | --upgrade
– para atualizar uma instalação;-s | --source
– para baixar as fontes no modo--fast
-h | --help
– para help
A opção de -i
, instalação, primeiro executa um download rápido (--fast
) e depois instala os pacotes, se o sistema estiver no modo 3. A opção -d
simplesmente altera o valor da variável KDE_DIR, no script (veja a linha 244). Pode ser uma boa ideia alterar isto definitivamente no próprio scripts, na linha 7, para evitar surpresas.
A opção -u
, upgrade, deve ser usada somente em atualizações pequenas, como correções de bug apresentadas no artigo “Two fix-packages for KDE SC 4.10.0”, citado acima.
As linhas abaixo apresentam dois exemplos típicos de uso do script:
Com o sistema em modo 3, baixa e instala a última versão do KDE do espelho do AlienBOB:
./kde_rsync --last --install
Baixar todos os pacotes e fontes:
./kde_rsync --all
7 Comentários