Erro ao compilar RPM

Erro na compilação do segundo RPM:

[junior@localhost ~]$ rpmbuild -bb .spec
Executando (%prep): /bin/sh -e /var/tmp/rpm-tmp.G7w3s1

    umask 022
    cd /home/junior/rpmbuild/BUILD
    cd /home/junior/rpmbuild/BUILD
    rm -rf CalculadoraDeDecimoTerceiroSalario-1.0
    /usr/bin/gzip -dc /home/junior/rpmbuild/SOURCES/CalculadoraDeDecimoTerceiroSalario-1.0.tar.gz
    /usr/bin/tar -xof -
    STATUS=0
    '[' 0 -ne 0 ']'
    cd CalculadoraDeDecimoTerceiroSalario-1.0
    /var/tmp/rpm-tmp.G7w3s1: line 39: cd: CalculadoraDeDecimoTerceiroSalario-1.0: No such file or directory
    erro: Status de saída de /var/tmp/rpm-tmp.G7w3s1 inválido (%prep)

Erros na construção do RPM:
Status de saída de /var/tmp/rpm-tmp.G7w3s1 inválido (%prep)

Como está meu arquivo.spec:

    %global debug_package %{nil}
%undefine _missing_build_ids_terminate_build

Name: CalculadoraDeDecimoTerceiroSalario
Summary: CalculadoraDeDecimoTerceiroSalario
Version: 1.0
Release: 1%{?dist}
License: GPLv3
Group: Office

Source0: CalculadoraDeDecimoTerceiroSalario-1.0.tar.gz

BuildRequires: meson

%description
Calculadora de decimo terceiro salario feito no Lazarus (Delphi 7 para Linux)

%prep
%autosetup

%build
%meson
%meson_build

%install
%meson_install

%post
update-desktop-database

%files
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/%{name}/pixmaps/%{name}.png

Meson:

project(‘CalculadoraDeDecimoTerceiroSalario’, license: ‘GPL3+’, version: ‘1.0’)

bindir = join_paths(get_option(‘prefix’), get_option(‘bindir’))
appdir = join_paths(get_option(‘prefix’), get_option(‘datadir’), ‘applications’)
icondir = join_paths(get_option(‘prefix’), get_option(‘datadir’), ‘CalculadoraDeDecimoTerceiroSalario’, ‘pixmaps’)

data = configuration_data()
data.set(‘bindir’, bindir)
data.set(‘icondir’, icondir)

configure_file(
input: ‘CalculadoraDeDecimoTerceiroSalario.desktop.in’,
output: ‘CalculadoraDeDecimoTerceiroSalario.desktop’,
install_dir: appdir,
configuration: data,
)

bins = [‘CalculadoraDecimoTerceiroSalario’]
pixmaps = [‘CalculadoraDecimoTerceiroSalario.png’]

install_data(bins, install_dir: bindir)
install_data(pixmaps, install_dir: icondir)

CalculadoraDecimoTerceiroSalario.desktop.in:

[Desktop Entry]
Name=Calculadora De Decimo Terceiro Salario
Comment=Calculadora De Decimo Terceiro Salario
Exec=@bindir@/CalculadoraDecimoTerceiroSalario
Terminal=false
Type=Application
Icon=@icondir@/CalculadoraDecimoTerceiroSalario.png
Categories=GTK;GNOME;Office;Calculator;
StartupWMClass=CalculadoraDecimoTerceiroSalario
X-Ubuntu-Gettext-Domain=desktop_kdelibs
Name[pt_BR]=CalculadoraDecimoTerceiroSalario

Alguém pode me ajudar?

1 Curtida

dá um ls onde você está executando o comando rpmbuild -bb .spec

Seu arquivo desktop tá com muitos erros:

[Desktop Entry]
Name=Calculadora De Decimo Terceiro Salario
Comment=Calculadora De Decimo Terceiro Salario*
Não use caminhos completos apenas coloque seu arqui em usr/bin no source do pacote
Exec=@bindir@/CalculadoraDecimoTerceiroSalario
Terminal=false
Type=Application
use apenas CalculadoraDecimoTerceiroSalario, sem caminho, sem extensão
Icon=@icondir@/CalculadoraDecimoTerceiroSalario.png
Use apenas categorias válidas, se realmente precisar de uma que não existe coloque X- antes do nome
Categories=GTK;GNOME;Office;Calculator;
StartupWMClass=CalculadoraDecimoTerceiroSalario
Não use isso, vai bugar tudo se rodar no Ubuntu isso é pra software da Canonical
X-Ubuntu-Gettext-Domain=não use isso
Name[pt_BR]=Calculadora Decimo Terceiro Salario

O resto eu entendi,não entendi a parte de tirar a extensão do icone que é .png,o arquivo é arquivo.desktop.in,não se muda alguma coisa.

1 Curtida

No Linux você não especifica em o caminho nem a extensão de ícones e executáveis, apenas os coloca em diretórios especiais dentro do pacote

Não entendi essa,se eu não colocar o caminho do executável e do ícone no arquivo.desktop,não executará o arquivo.desktop,pois o arquivo.desktop puxa o gatilho de execução do programa.

1 Curtida

Então seu pacote deve conter no mínimo o seguinte os seguintes diretórios:

usr/local/bin
usr/share/icons/hicolor/256x256/apps/

O executável do seu programa deve estar em usr/local/bin

Assim você não precisa colocar o caminho, o sistema acha ele pra você

E o ícone com resolução de 256x256px deve ser colocado em usr/share/icons/hicolor/256x256/apps/ isso vai permitir que seu app se integre a temas de ícones, pra isso você não deve colocar o caminho completo nem a extensão, outras resoluções recomendadas são:

16x16
32×32
48×48
64×64
96×96
128×128
scalable (no do svg)

Funciona com um .ico dividido

O executável está em /usr/bin dentro do pacote, e o ícone está dentro de /usr/share/pixmaps.

O recomendado atualmente é um usr/share/icons/

Isso nos derivados do Debian,no sistema do Fedora é /usr/share/pixmaps.

Em qualquer distribuição, pixamaps para ícones estão depreciados faz uns 6 anos

Mas esqueci de dizer que não faz 6 anos que fiz meus rpms com pixmaps.

Quando algo é tido como “depreciado”, normalmente esse algo continua sendo funcional, mas não é recomendado devido a existência de uma solução mais eficiente. Por exemplo, o comando apt-get foi depreciado em favorecimento do apt, mas você consegue utilizar o apt-get tranquilamente, tanto que eu já vi alguns tutoriais recentes de pessoas que continuam usando.

2 Curtidas