You are not logged in.
Hi!
I'm creating a PKGBUILD for an application that provides an icon file (.png), but I don't know what is the proper way of installing it using a PKGBUILD. The readme file says I should run "xdg-icon-resource install", but I couldn't find any information about whether this applies to Arch or not. And if that is correct, how should I integrate it with my PKGBUILD?
Thanks for your time.
Last edited by Young (2019-10-26 02:18:26)
Offline
Have a look at https://wiki.archlinux.org/index.php/Icons. Otherwise I would simply use install(1) and place the files somewhere under /usr/share/icons
BTW, is this related to your other thread? https://bbs.archlinux.org/viewtopic.php?id=250183. Posting the PKGBUILD will be useful.
Offline
Note that /usr/share/icons/ is for icon themes/sets that provide most of the common DE icons. For an application providing it's own icon, that should go either in it's own /usr/share/$pkgname directory or /usr/share/pixmaps/.
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Online
Note that /usr/share/icons/ is for icon themes/sets that provide most of the common DE icons.
There is also the hicolor theme where applications can install their own icons.
https://specifications.freedesktop.org/ … ory_layout
In order to have a place for third party applications to install their icons there should always exist a theme called "hicolor" [1]. The data for the hicolor theme is available for download at: [the arch linux hicolor-icon-theme package]. Implementations are required to look in the "hicolor" theme if an icon was not found in the current theme.
Last edited by progandy (2019-10-23 12:45:06)
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
Have a look at https://wiki.archlinux.org/index.php/Icons. Otherwise I would simply use install(1) and place the files somewhere under /usr/share/icons
BTW, is this related to your other thread? https://bbs.archlinux.org/viewtopic.php?id=250183. Posting the PKGBUILD will be useful.
Yes, it's related. I'm creating a PKGBUILD for an application called Portugol Studio, which is a tool to create code in the Portugol programming language (an educational language made for programming students that speak the portuguese language). Here's what I have so far:
# Maintainer: Young Acinonyx <young[dot]acinonyx[at]gmail[dot]com>
pkgname=portugol-studio
pkgver=2.7.4
pkgrel=1
epoch=
pkgdesc="Ambiente de Programação didático para a linguagem Portugol 2.0."
arch=('x86_64')
url="http://lite.acad.univali.br/portugol/"
license=('GPL')
groups=()
depends=('java-runtime=11')
makedepends=('xdg-utils')
checkdepends=()
optdepends=()
provides=()
conflicts=()
replaces=()
backup=()
options=()
install=
changelog=
source=("https://github.com/UNIVALI-LITE/Portugol-Studio/releases/download/v$pkgver/$pkgname-$pkgver-linux-x64-standalone.zip"
"portugol-console"
"portugol-studio")
noextract=()
md5sums=('06ff5fc05064754a457ad99cd7d2a001'
'f6afcaf3530c3606d24861e6771ae600'
'8b5a45ab020accd444e4ff420385f1b6')
validpgpkeys=()
prepare() {
cd "$srcdir"
# Change the path of the java executable to Arch's default
sed -i 's#caminho_java=".*#caminho_java="java"#g' "$srcdir/$pkgname/"*.sh
# Replace "/usr/local/portugol-studio" with "/usr/share/portugol-studio" inside the desktop file
sed -i 's#/usr/local#/usr/share#g' "$srcdir/arquivos-auxiliares/$pkgname.desktop"
# Remove the precompiled java provided by the package in favor of using Arch's official java-runtime
rm -rf "$srcdir/$pkgname/java"
}
package() {
cd "$srcdir"
# Set the correct permissions
chmod -R 755 "$srcdir/$pkgname"
find "$srcdir/$pkgname" -type f -execdir chmod 644 "{}" \;
chmod 755 "$srcdir/$pkgname/executar-console-linux.sh"
chmod 755 "$srcdir/$pkgname/executar-studio-linux.sh"
# Install the shell executables
install -Dm755 "$pkgname" "$pkgdir/usr/bin/$pkgname"
install -Dm755 "portugol-console" "$pkgdir/usr/bin/portugol-console"
# Install the desktop file
install -Dm644 "$srcdir/arquivos-auxiliares/$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
# Install the icon file
???
# Install the mime type association xml
install -Dm644 "$srcdir/arquivos-auxiliares/application-x-portugol.xml" "$pkgdir/usr/share/mime/packages/application-x-portugol.xml"
# Copy the necessary files
cp -R "$srcdir/$pkgname" "$pkgdir/usr/share/"
}
I think the "xdg-icon-resource install" command would be used to create an association of the icon (.png inside /usr/share/portugol-studio/) with the files created inside the program (.por). I don't know if that command should be inside the PKGBUILD or perhaps inside an "install" file (portugol-sudio.install). I couldn't find any information about integrating that command with a PKGBUILD. Any help would be greatly appreciated.
Thanks again.
Offline
# Replace "/usr/local/portugol-studio" with "/usr/share/portugol-studio" inside the desktop file sed -i 's#/usr/local#/usr/share#g' "$srcdir/arquivos-auxiliares/$pkgname.desktop"
I quickly look at the desktop file. Running that line would change the icon path to
Icon=/usr/share/portugol-studio/aplicacao/icones/linux/portugol-studio.png
therefore, I would keep it simple and in `package` I would add something like the following (untested!)
install -Dm644 "$srcdir/portugol-studio/aplicacao/icones/linux/portugol-studio.png" "$pkgdir/usr/share/portugol-studio/aplicacao/icones/linux/portugol-studio.png"
Also, remove the empty arrays in the PKGBUILD.
Offline
You should also call your package portugol-studio-bin if you intend to publish the PKGBUILD in the AUR. The sources are available, but you don't use them.
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
I was finally able to install it correctly. I experimented a little with the command "xdg-icon-resource install". Apparently, the only think it does is to copy the icon file (.png) to the directory of the hicolor theme (unless another one is specified) and resize it if needed. Instead of using that, I used the "install" command, so I don't need to include "xdg-utils" as a dependency anymore. Now the PKGBUILD will copy (install) the icons to the /usr/share/icons/hicolor/256x256/ directory. Since the application provides an icon for the main program and also an icon for the mime type, I placed them in their respective subdirectories (apps and mimetypes). I also changed the name to portugol-studio-bin (as suggested by progandy) and uploaded it to the AUR.
Thanks once again for all your help!
Offline