Discussions et informations sur ce qui se passe dans le monde de l'informatique.
Répondre

Présentations markdown : pampi

#1Messageil y a 7 ans

Pour mes présentations, j'utilise l'excellent Marp.

Là je viens de découvrir pampi qui va un peu plus loin dans la structuration et les effets.
Ça ne serait pas mal de l'avoir dans AUR ;)

Présentations markdown : pampi

#2Messageil y a 7 ans

:salut:
Ça a l'air intéressant en effet.
Tu ne te sens pas d'essayer de faire un PKGBUILD ? Tout semble indiqué pour la recette; liens de téléchargement, liste des dépendances ...
Cela dit, je n'ai pas testé, mais il me semble que ça ne s'installe pas vraiment, mais se lance depuis un exécutable directement .
Je suis un peu dubitatif.

Présentations markdown : pampi

#3Messageil y a 7 ans

:salut:

pourquoi tu n'essayes pas ? (EDIT:grillé) j'avais écrit un petit truc la dessus
et tu as 40 000 PKGBUILD comme exemple sur aur
les sources de pampi: https://gitlab.com/edleh/pampi/tree/master
il donne les dépendances pour arch
le PKGBUILD devrait être très simple, il manque juste a créer un .desktop (modèle existe dans les sources)

c'est un programme avec une structure pour windows donc à installer dans /opt/

@lemust83
c'est en fait un programme en python et comme il a une structure windows, c'est très simple tout dans le même dossier :siffle et juste a bien modifier(path_exe) et placer le .desktop

Présentations markdown : pampi

#4Messageil y a 7 ans

Pampi est une GUI pour impress.js un équivalent libre à Prezi, propriétaire et populaire.

Cet outil fonctionne en ligne de commande, ce qui fait qu'il n'est pas très pratique à utiliser. Des interfaces graphiques comme Strut ou un autre dont j'ai oublié le nom :siffle ont été d'abord développées mais elles sont depuis abandonnées. Hovercraft est un fork de Strut mais il semblerait qu'il n'ai pas comblé l'auteur francophone de Pampi.
Voir la présentation ici : https://linuxfr.org/news/pampi-presentations-avec-markdown-pandoc-impress

C'est une alternative très intéressante en python3 et qt5.

Ce serait top s'il était sur AUR. :clap

Présentations markdown : pampi

#5Messageil y a 7 ans

bon, on verra ça plus tard ...si vous êtes sages :gsourire:

Présentations markdown : pampi

#6Messageil y a 7 ans

nam1962 pourrait essayer, il y a juste a

- copier tout de src vers /opt/$pkgname il est difficile de faire plus simple
- créer un .desktop et le copier ou il faut

gitlab c'est du git donc pas de différence avec github

Pour débuter dans les PKGBUILD c'est le pied :siffle

Présentations markdown : pampi

#7Messageil y a 7 ans

Alors, houlà !
...là j'ai lu et je rame :P
Voilà mon premier brouillon (je n'ai pas tout pigé ce que je faisais ! et aucune idée de quoi en faire ensuite !)
PKGBUILD :

# Maintainer: nam1962 <contact@dolys.fr>
pkgname=pampi
pkgver=1
pkgrel=1
pkgdesc="dynamic presentation tool using markdown"
arch=('any')
url="http://pascal.peter.free.fr/pampi.html"
source=("http://pascal.peter.free.fr/wikiuploads/pampi.tar.gz")
license=('GNU GPL 3')
#depends=('pandoc' 'python-pyqt4' 'python-pyqt5' 'qt5-webengine')
makedepends=('git' 'desktop-file-utils')
md5sums=('SKIP')

pkgver() {
  cd "${pkgname}"
  printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
package(){
   echo "copie de src/ vers pkg/"
};

.desktop :

[Desktop Entry]

# The type as listed above
Type=Application

# The version of the desktop entry specification to which this file complies
Version=1.0

# The name of the application
Name=pampi

# A comment which can/will be used as a tooltip
Comment=dynamic presentation tool using markdown

# The path to the folder in which the executable is run
Path=/pkg/pampi

# The executable of the application, possibly with arguments.
Exec=python3 pampi.pyw

# The name of the icon that will be used to display this entry
Icon=pampi

# Describes whether this application needs to be run in a terminal or not
Terminal=false

# Describes the categories in which this entry should be shown
Categories=Productivity


Hummm... :rendre:

Présentations markdown : pampi

#8Messageil y a 7 ans

pas foulé, tu n'as pas lu qu'il fallait lancer

makepkg -sf

cette commande va générer le paquet (.tar.xy) installable par pacman -U "le_paquet_généré"

Note
- tu n'utilises pas git (il a des sources gitlab) mais un fichier .gz
si tu avais lancé makepkg tu voyais l'erreur :

Lancement de pkgver()...
fatal: Ni ceci ni aucun de ses répertoires parents n'est un dépôt git : .git

Tu as fait le choix de ne pas utiliser git donc il ne faut pas cette fonction !

- lol en fait faire un paquet aur c'est écrire du code bash dans la fonction package() toi tu as laissé
echo "copie de src/ vers pkg/", tu n'as pas vu ma fonction exemple package() ? :pleure: la tu as fait 10% du travail

Il faut BIEN comprendre que makepkg va créer une archive de ton sous répertoire ./pkg/, cette archive va être un paquet classique archlinux/manjaro.
Avec un pacman -S "ton paquet", pacman va simplement décompresser cette archive à la racine de la machine.
Donc tout le travail d'un PKGBUILD (dans sa fonction package) est de créer une arborescence dans ./pkg/ et de copier les fichiers téléchargés au bon emplacement dans ./pkg/ .


Si tu avais testé, tu aurais vu que makepkg a copié et dézippé ton fichier dans le sous répertoire ./src/
Il te reste dans package() a copier les fichiers de ./src/ dans ./pkg/ . Attention : pkg correspond à la racine de la machine qui va installer le paquet, je t'ai donné le répertoire ou pacman doit installer ton programme.
pour copier tu utilises toute commande du bash : cp, mkdir, install ,chmod, ....
par exemple on copie le pampi.desktop dans ton sous répertoire ./pkg/usr/share/applications/

dans mon article il y avais un exemple de package() fonctionnel et surtout, il existe énormément de fonctions packages a voir sur le site de aur

-----------------------------
ton pampi.desktop :choc:
il va être installé par pacman donc tu n'as que 3 choses a changer par rapport à l'original du développeur en fonction de l'endroit ou tu l'installes :
path=/le_dossier_ou-tu_linstalles
icon= /le_dossier_ou-tu_linstalles/ ... icone
exec= /le_dossier_ou-tu_linstalles/pampi.pyw

Présentations markdown : pampi

#9Messageil y a 7 ans

Akors, effectivement, je n'avais pas vu la source gitlab.
Je vais regarder : ça doit sûrement simplifier.

Maintenant, pour le moment, je patauge vraiment ! :D

Présentations markdown : pampi

#10Messageil y a 7 ans

nam1962 a écrit :Akors, effectivement, je n'avais pas vu la source gitlab.
Je vais regarder : ça doit sûrement simplifier.
:rigole:

je répète, changer la source, c'est 5% du travail ! avec git il faut ajouter une fonction donc NON, le plus simple c'est ta solution

Que crois-tu que cela change git ou non ? RIEN ! dans les 2 cas on se retrouve avec les sources dans le sous-répertoire ./src/.

-----------------
comment tu patauges ? tu ne connais pas la console ? jamais fait de cp ? quel est le code de ta fonction package() ?

Présentations markdown : pampi

#11Messageil y a 7 ans

Oui je patauge !
Grave !
La console jusqu'ici pour moi c'est un outil de maintenance : install, desinstall, info, épicétou.

Voilà mon nouveau PKGBUILD qui va un peu plus loin :

# Maintainer: nam1962 <contact@dolys.fr>
pkgname=pampi
pkgver=1
pkgrel=1
pkgdesc="dynamic presentation tool using markdown"
arch=(any)
url="http://pascal.peter.free.fr/pampi.html"
license=('GNU GPL 3')
groups=()
depends=('pandoc' 'python-pyqt4' 'python-pyqt5' 'qt5-webengine')
makedepends=('git')
source=("https://gitlab.com/edleh/pampi/repository/archive.tar.gz?ref=master")
md5sums=('SKIP')


package(){
   mkdir -pv "${pkgdir}"
   cd "${pkgdir}"
}


Maintenant, le cp... --> dans scr, le dossier décide de s'appeler : pampi-master-21d17f745c0e181ebe24a5853fae1fcd4cd9d766

Et là je sèche comme un cabillaud.

Par ailleurs, je ne vois pas du tout comment intégrer le .desktop dans l'histoire.

Je suis p'tet en première page dans goo sur "comment passer de windows à linux", mais :
- sur ce coup, pas fait exprès, j'ai inventé le "référencement nature" (m'en suis rendu compte par hasard)
- pour faire çà, le savoir est fort différent de celui qui permet de faire un PKGBUILD voire de compiler (ce qui est, si j'ai bien pigé, inutile dans le cas d'espèce)

Donc vos conseils adaptés au niveau collège sont bienvenus ;)

Présentations markdown : pampi

#12Messageil y a 7 ans

A ce rythme , dans 6 mois le logiciel est dispo dans aur :snif

Dis plus haut il faut juste que tu l'installes sur les machines dans

/opt/pampi/
, donc ton code devrais ressembler à :

mkdir -p "${pkgdir}/opt/pampi"
cd "${srcdir}" # ou cd "${srcdir}/ton sous-répertoire ou est décompressé l'archive source"
cp -R * "${pkgdir}/opt/pampi"
Tu es un "vieux" linuxien, tu vas pas me faire croire que tu ne connais pas cd .. cp .. :clindoeil: cela n'est pas du linux avancé ! copier des fichier d'un répertoire vers un autre

tu testes, re-testes ! tu ouvres le paquet généré (qui est une archive) et tu réajuste ton code jusqu’à temps d'avoir une archive qui soit le contenu de ce que tu désires

Pour le pampi.desktop, c'est dans un deuxième temps, mais il te faut juste le placer a coté de ton fichier PKGBUILD puis le copier dans ${pkgdir}, et pour le code pour l'intégrer, je t'avais donné des innombrables exemples sur aur

---------------------------
il faut juste comprendre que dans la fonction package()
${srcdir} est ton sous-répertoire ./src/ la ou va être décompressé l'archive du développeur, le contenu a l'intérieur dépend de ton archive.
${pkgdir} est ton sous répertoire ./pkg/, ce dossier représente la racine "/" de la machine ou va être installé le paquet.
Tu n'as qu'a copier des fichiers de l'un vers l'autre.

Par exemple (pas dans ton cas), je vais créer un dossier /usr/bin mkdir ${pkgdir}/usr/bin puis y copier mon exécutable cp "${srcdir}/execdudev" "${pkgdir}/usr/bin/leprogrammequitue" puis lui donner un mode exécution chmod 755 ${pkgdir}/usr/bin/leprogrammequitue" (la commande bash "install" fait ces 2 opérations en une seule fois, pas obligé de l'utiliser)

Présentations markdown : pampi

#13Messageil y a 7 ans

Alors merci ! Je me perdais un peu comme tu as vu.
(je ne suis pas si vieux linuxien :P )

Voilà mon nouveau PKGBUILD, je ne pense pas que ce soit tout clean, en particulier because le chemin du pyw est quand même :
/testpkgbuild/pkg/pampi/opt/pampi/pampi-master-21d17f745c0e181ebe24a5853fae1fcd4cd9d766/pampi/ ! (et que évidemment, pour le moment, le .desktop ne pointe pas dessus !)
Mais bon, à priori ça semble avancer :

# Maintainer: nam1962 <contact@dolys.fr>
pkgname=pampi
pkgver=1
pkgrel=1
pkgdesc="dynamic presentation tool using markdown"
arch=(any)
url="http://pascal.peter.free.fr/pampi.html"
license=('GNU GPL 3')
groups=()
depends=('pandoc' 'python-pyqt4' 'python-pyqt5' 'qt5-webengine')
makedepends=('git')
source=("https://gitlab.com/edleh/pampi/repository/archive.tar.gz?ref=master")
md5sums=('SKIP')


package(){
   mkdir -p "${pkgdir}/opt/pampi"
   mkdir -p "${pkgdir}/usr/share/applications"
   mkdir -p "${pkgdir}/usr/share/pixmaps"
   cd "${srcdir}"
   cp -R * "${pkgdir}/opt/pampi"
   cd ..
   cp -R "$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
   chmod +x "$pkgdir/usr/share/applications/$pkgname.desktop"
   cp -R "$pkgname.png" "$pkgdir/usr/share/pixmaps/$pkgname.png"
   
   # gendesk --pkgname "$pkgname" --pkgdesc "$pkgdesc"
   # install -Dm644 "$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
   # install -Dm644 "$pkgname.png" "$pkgdir/usr/share/pixmaps/$pkgname.png"

}


Le .desktop :

[Desktop Entry]

# The type as listed above
Type=Application

# The version of the desktop entry specification to which this file complies
Version=1.0

# The name of the application
Name=pampi

# A comment which can/will be used as a tooltip
Comment=dynamic presentation tool using markdown

# The path to the folder in which the executable is run
Path=/opt/pampi

# The executable of the application, possibly with arguments.
Exec=python3 pampi.pyw

# The name of the icon that will be used to display this entry
Icon=pampi

# Describes whether this application needs to be run in a terminal or not
Terminal=false

# Describes the categories in which this entry should be shown
Categories=Productivity



:rougir:

Présentations markdown : pampi

#14Messageil y a 7 ans

Ne pas perdre de vue qu'on est dans un environnement Fakeroot, c'est à dire qu'on construit une arborescence /opt/pampi non pas dans le système mais dans un dossier de travail. Il faut donc s'y rendre avant de créer les différents répertoires. Don la fonction package() devrait commencer comme ça:

package(){
   cd "$pkgname-$pkgver"
   mkdir -p "${pkgdir}/opt/pampi"
   mkdir -p "${pkgdir}/usr/share/applications"
   mkdir -p "${pkgdir}/usr/share/pixmaps"
   cd "${srcdir}"
   cp -R * "${pkgdir}/opt/pampi"
   cd ..
   cp -R "$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
   chmod +x "$pkgdir/usr/share/applications/$pkgname.desktop"
   cp -R "$pkgname.png" "$pkgdir/usr/share/pixmaps/$pkgname.png"
   
   # gendesk --pkgname "$pkgname" --pkgdesc "$pkgdesc"
   # install -Dm644 "$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
   # install -Dm644 "$pkgname.png" "$pkgdir/usr/share/pixmaps/$pkgname.png"

Pour la suite, il faut tester....

Présentations markdown : pampi

#15Messageil y a 7 ans

:bien

quelle avancée, tu as bien compris le principe !

Ouvre l'archive créée et tu verras de suite si les chemins sont bons.

because le chemin du pyw est quand même : /pkg/pampi/opt/pampi/pampi-master-21d17f745c0e181ebe24a5853fae1fcd4cd9d766/pampi/

C'est a toi de t'adapter en fonction de la source que tu télécharges :clindoeil:
dans ton package() tu fais un simple cd "${srcdir}" puis cp * .. tu adaptes en fonction de ton arborescence dans ./src/
peut-être une chose du type cd "${srcdir}/pampi-master-21d17f745c0e181ebe24a5853fae1fcd4cd9d766/pampi/" a toi de voir
MAIS je pense que tu prends une mauvaise source, je déteste ce "21d17f745c0e181ebe24a5853fae1fcd4cd9d766" cela veut dire qu'a chaque changement le nom du répertoire va changer, ta première source sur ce sujet n'était pas gitlab. Tu peut prendre ce que tu désires, même un paquet .deb ou .rpm

Pour le pampi.desktop, il faut que tu fasses pointer Exe=vers ton programme avec le chemin complet ou tu l'installes et sans python, simplement :
Exe=/opt/pampi/pampi.pyw

Cela fait 2 fois que je te donne un lien vers un PKGBUILD qui a un "packagename".desktop particulier comme toi, il te suffit de regarder le PKGBUILD ! il faut ajouter ton pampi.desktop dans source=(...), puis dans package() le copier au bon endroit.

ps: cp -R un fichier :confus: donc en fait tu ne maîtrises pas cp :snif (voir cp --help)

--------------------------------------
@lemust83
En fait lorsque l'on entre dans la fonction package, pkbuild a déjà fait un cd "${srcdir}" pour nous
ton cd "$pkgname-$pkgver" est en fonction du nom du fichier a télécharger passé dans source, du type de téléchargement/décompression de l'archive, dans ce cas précis nous avons plutôt un truc du genre {pkgname}-{branche}-{?dernier commit?} (pampi-master-21d17f745c0e181ebe24a5853fae1fcd4cd9d766)
une solution serait dans ce cas de figure de faire plutôt un truc du genre cd $(ls -d ${pkgname}*)
Répondre