KDE 4.10.0 no Slackware 14/Current

Fevereiro 12th, 2013 por rudsonalves Leave a reply »

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:

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:

root@arabel:# rsync -av rsync://alien.slackbook.org/alien/ktown/14.0/4.10.0 .
root@arabel:# cd 4.10.0

Instalar os pacotes 32bits:

root@arabel:# upgradepkg --reinstall --install-new x86/deps/*.t?z
root@arabel:# upgradepkg --reinstall --install-new x86/kde/*.t?z
root@arabel:# removepkg kdegames
root@arabel:# removepkg kdemultimedia
root@arabel:# removepkg ksecrets
root@arabel:# removepkg printer-applet

ou em 64Bits:

root@arabel:# upgradepkg --reinstall --install-new x86_64/deps/*.t?z
root@arabel:# upgradepkg --reinstall --install-new x86_64/kde/*.t?z
root@arabel:# removepkg kdegames
root@arabel:# removepkg kdemultimedia
root@arabel:# removepkg ksecrets
root@arabel:# removepkg printer-applet

Por fim, atualizar os pacotes de linguagem e os novos arquivos de configuração em /etc.

root@arabel:# upgradepkg x86/kdei/*.t?z

ou

root@arabel:# upgradepkg x86_64/kdei/*.t?z

e por fim

root@arabel:# 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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
#!/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 <DEST>   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:

root@arabel:# ./kde_rsync --last --install

Baixar todos os pacotes e fontes:

root@arabel:# ./kde_rsync --all

QR Code
Advertisement

6 comments

  1. souzaclaudeci says:

    apos sincronismo com o mirror nao consigo acessar a pasta o q pode ser?
    aparece isso!
    sent 35 bytes received 103475 bytes 29574.29 bytes/sec
    total size is 1917171184 speedup is 18521.60
    root@darkstar:~# cd 4.10.0
    bash: cd: 4.10.0: Arquivo ou diretório não encontrado
    root@darkstar:~#

  2. rudsonalves says:

    A linha 7 declara o diretório em que será colocado o espelho:

    KDE_DIR=${KDE_DIR:=’/home/ftp/linux/kde46′}

    tente

    cd /home/ftp/linux/kde46/4.10.0/

  3. Incredible! This blog looks just like my old one!
    It’s on a entirely different subject but it has pretty much the same layout and design. Superb choice of colors!

  4. I don’t know if it’s just me or if everybody else experiencing issues with your
    blog. It appears as though some of the text within your content are running off the screen.

    Can someone else please provide feedback and let me know if
    this is happening to them as well? This might be a issue
    with my web browser because I’ve had this happen previously. Thanks

  5. Bluray says:

    Tremendous issues here. I am very satisfied to see your article.
    Thanks a lot and I am looking forward to contact you.
    Will you please drop me a mail?

  6. Here are three major mistakes that cause people to slip up when it comes
    to playing in the stock market. If you are a trader,
    then you might agree with that. One example is that
    you might decide you want to sell it to you make 10% revenue
    and profit off of a particular stock.

Leave a Reply

Spam Protection by WP-SpamFree