Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 09/02/2011, à 01:54

smo

Re : Script bash sur launchpad ?

att je fini deja j deconne j devrais dormir deja big_smile mais bon ...

les explications ca sera demain, je viens de balancer un source j attend

apres le soft marche mais ca me cree pas la video (y compris avant de faire le deb) a toi de voir ca...

j t envoie la source apres, viens sur le tchat steup j ai pas bcp de temps!

++

Hors ligne

#27 Le 09/02/2011, à 05:30

Hizoka

Re : Script bash sur launchpad ?

donc grace à smo, c'est bon smile

je ferais un petit tuto pour clarifier tout ça...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#28 Le 09/02/2011, à 09:49

YannUbuntu

Re : Script bash sur launchpad ?

Je viens de vérifier mon PPA : chez moi aussi ca n'installe pas les fichiers. Donc j'attends ton tuto avec impatience smile


à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison

Hors ligne

#29 Le 09/02/2011, à 18:44

Hizoka

Re : Script bash sur launchpad ?

n'hesitez pas à regarder :
- http://doc.ubuntu-fr.org/tutoriel/creer … _launchpad
- http://doc.ubuntu-fr.org/tutoriel/creer_un_paquet

Soit un dossier "Mon logiciel".

Ce dossier doit contenir  :

  1. dossier data

  2. dossier debian

  3. fichier setup.py

  4. fichier qui se retrouvera dans /usr/bin

  5. autres fichiers


I) DATA :
Le sous-dossier data contiendra votre script.
Il sera soit en vrac dedans soit avec d'autres dossiers...
voire avec une arborescence... (data/usr/bin, data/usr/share...)


II) DEBIAN :
Le sous dossier debian contiendra tous les fichiers necessaires à la création du deb.

  • changelog : Trés important, de type :

logiciel="Mon logiciel"
nom="Momo hamed" # ou si vide, sera votre nom d'user
mail="momo@free.fr" # Doit obligatoirement être valide
date="$(date -R)"
version="1.0.5" # version du logiciel "Mon logiciel"
ubuntu="maverick"
depot_ubuntu="0" # Si ce logiciel existe déjà dans les dépot ubuntu, alors c'est 1
nombre_modif="1" # A chaque fois que vous ré empacter "Mon logiciel", il faut incrementer d'un

${logiciel} (${version}-${depot_ubuntu}ppa${nombre_modif}~${ubuntu}) ${ubuntu}; urgency=low

  * Les nouveautés
  * Les modifications

 -- ${nom:-USER} <${mail}> ${date}

soit par exemple :

 screencastor (0.9.0-0ppa1~maverick) maverick; urgency=low

  * Plein de nouvelles choses !!!

 -- Hizoka <hizo@free.fr> Wed, 09 Feb 2011 17:01:31 +0100
  • compat : version de debhelper à utiliser => ne pas modifier ça...

  • control : Trés important également, de type :

dependances="vos dependances"

Source: ${logiciel}
Maintainer: ${nom:-USER} <${mail}>
Section: XXX # type de logiciel : admin, cli-mono, comm, database, devel, debug, doc, editors, electronics, embedded, fonts, games, gnome, graphics, gnu-r, gnustep, hamradio, haskell, httpd, interpreters, java, kde, kernel, libs, libdevel, lisp, localization, mail, math, misc, net, news, ocaml, oldlibs, otherosfs, perl, php, python, ruby, science, shells, sound, tex, text, utils, vcs, video, web, x11, xfce, zope
Priority: optional # niveau le plus adapté pour les logiciels tiers
Build-Depends: debhelper (>= 7), python-support (>= 0.8.4), python-distutils-extra # necessaire à la compilation
Standards-Version: 3.9.1.0 # version de la "debian policy" actuelle
XS-Python-Version: current # pas touche
Homepage: http://XXX # adresse web du projet

Package: ${logiciel}
Architecture: XXX #  Ça peut être une architecture unique (i386, powerpc…), une liste ou "all" (un seul et même paquet binaire sera utilisable sur toutes les architectures, comme dans le cas d'une application python ou d'un script bash), ou encore "any" (dans ce cas le paquet source doit être compilé sur chacune des architectures disponibles)
Depends: ${misc:Depends}, ${python:Depends}, ${dependances}
XB-Python-Version: ${python:Versions} # pas touche
Provides: ${python:Provides} # pas touche
Description: Déscription courte sur 1 ligne.
 Description complete
 avec un espace en debut de ligne

soit par exemple :

Source: screencastor
Maintainer: Hizoka <hizo@free.fr>
Section: video
Priority: optional
Build-Depends: debhelper (>= 7), python-support (>= 0.8.4), python-distutils-extra
Standards-Version: 3.9.1.0
XS-Python-Version: current
Homepage: [url]http://forum.ubuntu-fr.org/viewtopic.php?id=440555[/url]

Package: screencastor
Architecture: all
Depends: ${misc:Depends}, ${python:Depends}, ffmpeg, python-glade2, python-notify, libx264-98, libxrandr2, xterm, x11-utils, x11-xserver-utils, libavcodec-extra-52, libavcodec-unstripped-52
XB-Python-Version: ${python:Versions}
Provides: ${python:Provides}
Description: Logiciel de capture video/audio via ffmpeg.
 Screencaster permet d'enregistrer ce qu'il se passe sur l'écran.
 Pour cela, en fonction de vos choix, un code ffmpeg sera créé,
 il ne restera plus qu'à l'executer pour réaliser une capture.
  • copyright : fichier contenant votre copyright... (voir les liens tout en haut)

  • rules : utile à la compilation des sources :

#!/usr/bin/make -f

# This file was automatically generated by stdeb 0.6.0 at
# Tue, 08 Feb 2011 23:00:32 +0100

# Unset the environment variables set by dpkg-buildpackage. (This is
# necessary because distutils is brittle with compiler/linker flags
# set. Specifically, packages using f2py will break without this.)
unexport CPPFLAGS
unexport CFLAGS
unexport CXXFLAGS
unexport FFLAGS
unexport LDFLAGS

#exports specified using stdeb Setup-Env-Vars:
export DH_OPTIONS=--buildsystem=python_distutils


%:
    dh $@ # attention c'est un tab à gauche et non des espaces
  • "Mon logiciel".postrm/inst ou prerm/preinst :

Pour preinst :

#! /bin/bash

set -e

# This was added by stdeb to workaround Debian #479852. In a nutshell,
# pycentral does not remove normally remove its symlinks on an
# upgrade. Since we're using python-support, however, those symlinks
# will be broken. This tells python-central to clean up any symlinks.
if [[ -e /var/lib/dpkg/info/screencastor.list ]] && which pycentral >/dev/null 2>&1
then
    pycentral pkgremove screencastor
fi

#DEBHELPER#

Permet d'avoir une bonne suppression de tous les composants installés

Pour les autres, à vous de voir si il y en a besoin, en n'oubliant pas qu'ils sont executer en root, donc pas de ${USER} mais ${SUDO_USER}


III) SETUP.PY :
Le fichier permettant au tout de fonctionner !!
En attente de plus d'info par smo.

en voici le code

#!/usr/bin/env python

import sys, os
from stat import *
from distutils.core import setup
from distutils.command.install import install as _install

INSTALLED_FILES = '.installed_files'

#stolen from ccsm
class install (_install):

    def run (self):

        _install.run(self)
        outputs = self.get_outputs()
        data = '\n'.join(outputs)
        try:
            f = open(INSTALLED_FILES, 'w')
        except:
            self.warn ('Could not write installed files list %s' %INSTALLED_FILES)
            return 

        f.write(data)
        f.close()

class uninstall(_install):

    def run(self):
        try:
            files = file(INSTALLED_FILES, 'r').readlines()
        except:
            self.warn('Could not read installed files list %s' %INSTALLED_FILES)
            return

        for f in files:
            print 'Uninstalling %s' %f.strip()
            try:
                os.unlink(f.strip())
            except:
                self.warn('Could not remove file %s' %f)
        os.remove(INSTALLED_FILES)

data_files = [
    ('share/applications',['screencastor.desktop']),
    ('share/screencastor',['data/screencastor.sh','data/screencastor.glade','data/glade2script.py','data/screencastor.png']),
]


setup(
    name='screencastor',
    version='souurces',
    description='Logiciel de capture video/audio via ffmpeg.',
    author='Hizoka',
    author_email='hizo@free.fr',
    url='http://forum.ubuntu-fr.org/viewtopic.php?id=440555',
    data_files=data_files,
    scripts=['screencastor'],
    cmdclass={
        'uninstall': uninstall,
        'install': install},
)

#Stolen from ccsm's setup.py
if sys.argv[1] == 'install':
    
    prefix = None

    if len (sys.argv) > 2:
        i = 0
        for o in sys.argv:
            if o.startswith ("--prefix"):
                if o == "--prefix":
                    if len (sys.argv) >= i:
                        prefix = sys.argv[i + 1]
                    sys.argv.remove (prefix)
                elif o.startswith ("--prefix=") and len (o[9:]):
                    prefix = o[9:]
                sys.argv.remove (o)
                break
            i += 1

    if not prefix:
        prefix = '/usr/local'
    gtk_update_icon_cache = '''gtk-update-icon-cache -f -t \
%s/share/icons/hicolor''' % prefix
    root_specified = [s for s in sys.argv if s.startswith('--root')]
    if not root_specified or root_specified[0] == '--root=/':
        print 'Updating Gtk icon cache.'
        os.system(gtk_update_icon_cache)
    else:
        print '''*** Icon cache not updated. After install, run this:
***     %s''' % gtk_update_icon_cache
        os.system('xdg-desktop-menu install --novendor screencastor.desktop')
    ## fix les permissions et cree les liens du script...
    os.system('chmod 755 %s/share/screencastor/glade2script.py' % prefix)

En sachant qu'il faut modifier :

  • les infos de setup

  • les infos de data_files qui permet de savoir les fichiers qui se retrouveront dans le deb

('dossier pour le deb (sans le /usr)',['les fichiers à copier', 'séparés dune virgule']),

soit par exemple :

('share/screencastor',['data/screencastor.sh','data/screencastor.glade','data/glade2script.py','data/screencastor.png']),

IV) EXECUTABLE /USR/BIN :
c'est le fichier qui se retrouvera dans /USR/BIN et qui pourra être appelé de n'importe où.
le nom du fichier correspond à la ligne scripts=['Mon logiciel'], du fichier setup.py
il est possible d'en avoir plusieurs, il suffit de les ajouter dans le dossier et de modifier la ligne de setup.py en les séparant d'une virgule


V) AUTRES FICHIERS :
Vous pouvez y mettre par exemple un desktop...
pensez à modifier les infos de data_files du setup.py


Voilà, tout devrait bien se passer maintenant...

Pour  rappel :
Il faut créer un ppa sur launchpad
compiler les sources avec, dans le dossier "Mon logiciel" :

debuild -S -a -kVOTRE_CLE

Il est possible de tester la compilation en deb via :

sudo pbuilder --create # si jamais fait, pour créer l'environnement
sudo pbuilder build *.dsc # dans le dossier contenant les fichiers nouvellement crés
# le deb sera dans : /var/cache/pbuilder/result/

envoyer le tout sur launchpad via :

dput ppa:XXX/XXX mon_logiciel.*source.changes

Afin de simplifier un peu tout ça, j'ai fait un peu de ménage dans ce que m'avais donné smo (des fichiers inutiles) et j'ai également créé un script à mettre dans le dossier "Mon logiciel", à vous de l'adapter :

#!/bin/bash
if [[ ${1} == "sources" || ${1} == "source" ]]
then
    # Suppression de tous les anciens fichiers
    rm ../*

    # Construction des sources avec test => generation environnement : sudo pbuilder --create
    debuild -S -a -kXXXX && cd .. && sudo pbuilder build *.dsc

    # ouverture du dossier
    xdg-open /var/cache/pbuilder/result/

elif [[ ${1} == "up" ]]
then
    cd .. && dput ppa:XXX/XXX *.changes

elif [[ -n $(egrep "^[0-9]" <<< ${1}) ]]
then
    # Modification de la version des fichiers
    sed -i "s/version=.*/version='${1}',/" setup.py
    sed -i "s/^Version=.*/Version=${1}/" screencastor.desktop

    fichier_changelog=$(cat debian/changelog)

    echo "screencastor (${1}-0ppa1~maverick) maverick; urgency=low

  * Plein de chose

 -- Hizoka <hizo@free.fr>  $(date -R)

${fichier_changelog}" > debian/changelog
else
    echo "Vous devez indiquer un argument au choix :
 - sources : pour la creation et le test des sources
 - up pour upload des sources sur votre ppa
 - version : au format type 0.5.9, modifie la version sur differents fichiers."
fi

Je joinds mon screencastor pour vous donnez un exemple : sources screencastor

Dernière modification par Hizoka (Le 09/02/2011, à 20:01)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#30 Le 09/02/2011, à 19:41

cenwen

Re : Script bash sur launchpad ?

ça C'est du tutoriel ou je ne m' y connais pas. big_smile
Merci. winktonguecool


Le jour où j'ai découvert le libre, j'ai su que je ne reviendrais jamais en arrière.
The OpenShot Team : http://www.openshotvideo.com/
Mon blog perso sur le multimédia et OpenShot : http://linuxevolution.wordpress.com/
Google+ : https://plus.google.com/u/0/111472725110173916234/posts

Hors ligne

#31 Le 09/02/2011, à 19:46

Hizoka

Re : Script bash sur launchpad ?

si ca vous va, tant mieux smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#32 Le 09/02/2011, à 22:02

cenwen

Re : Script bash sur launchpad ?

@Hizoka
Ton PPA est donc actif ? avec tous tes logiciels ?


Le jour où j'ai découvert le libre, j'ai su que je ne reviendrais jamais en arrière.
The OpenShot Team : http://www.openshotvideo.com/
Mon blog perso sur le multimédia et OpenShot : http://linuxevolution.wordpress.com/
Google+ : https://plus.google.com/u/0/111472725110173916234/posts

Hors ligne

#33 Le 10/02/2011, à 09:42

Hizoka

Re : Script bash sur launchpad ?

juste screencastor pour le momet, si tout marche bien je ferai de même avec les autres


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#34 Le 11/02/2011, à 10:39

Hizoka

Re : Script bash sur launchpad ?

les boules...

je viens de trouver ça : http://doc.ubuntu-fr.org/projets/ecole/ … ompilation cela ressemble grandement à ce que je voulais...

et :

Petit rappel sur le fichier debian/rules a écrit :

Le fichier debian/rules est le script (un Makefile) qui permet de construire le paquet. Même si la plupart du temps il passe par une étape de compilation des sources, ce n'est pas une nécessité. Si le logiciel que vous empaquetez n'a pas besoin d'être compilé, vous n'avez pas besoin que le debian/rules ne compile quelque chose. C'est le cas pour un script bash, ou pour un programme python par exemple.
Le but de ce fichier est en fait d'installer les fichiers du logiciel dans debian/paquet. Par exemple, si vous récupérez sur Internet un script foo.sh, il suffit de copier ce fichier dans debian/foo/usr/bin/ pour créer le paquet.

A tester mais si c'est le cas, c'est pas trop compliqué du coup...

EDIT : ouais j'ai testé, ca degage le dossier debian/screencastor et les fichiers qui en resultent ne contiennent pas mon logiciel...
si quelqu'un a une idée, ça pourrait être bien plus simple...

Dernière modification par Hizoka (Le 11/02/2011, à 10:58)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#35 Le 24/02/2011, à 12:05

YannUbuntu

Re : Script bash sur launchpad ?

bon allez je me lance. smile
1ere remarque : debuild -S -a -kVOTRE_CLE ne fonctionne pas chez moi, je suis oblige de faire debuild -S -a et saisir 2fois ma clef.
2e remarque: comment faire pour que les executables aillent dans /usr/local/bin au lieu de /usr/bin ? je peux les mettre comme des fichiers normaux, mais a ce moment-la je n'ai aucun executable /usr/bin a donner au script...


à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison

Hors ligne

#36 Le 24/02/2011, à 17:48

cenwen

Re : Script bash sur launchpad ?

1ere remarque : debuild -S -a -kVOTRE_CLE ne fonctionne pas chez moi, je suis oblige de faire debuild -S -a et saisir 2fois ma clef.

C'est peut-être normal. A chaque fois que je mets à jour une branche d'un projet, la 1ere fois, je suis obligé de m'identifer.
La 2eme est certainement liée à la commande elle-même.

2e remarque: comment faire pour que les executables aillent dans /usr/local/bin au lieu de /usr/bin ? je peux les mettre comme des fichiers normaux, mais a ce moment-la je n'ai aucun executable /usr/bin a donner au script..

En modifiant le chemin dans le script setup.py cad au lieu de /usr/bin par /usr/local/bin. ça devrait fonctionner sans créer de lien symbolique entre les deux.

C'était juste ma pensée du jour. big_smile


Le jour où j'ai découvert le libre, j'ai su que je ne reviendrais jamais en arrière.
The OpenShot Team : http://www.openshotvideo.com/
Mon blog perso sur le multimédia et OpenShot : http://linuxevolution.wordpress.com/
Google+ : https://plus.google.com/u/0/111472725110173916234/posts

Hors ligne

#37 Le 24/02/2011, à 20:01

Hizoka

Re : Script bash sur launchpad ?

Pour info j'ai fait un script graphique pour simplifier grandement tout ça...

je le posterai dans quelques jours.

pour le coup du usr/bin, je ne sais pas....

il faut que smo me detaille vraiment son script...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#38 Le 24/02/2011, à 21:22

cenwen

Re : Script bash sur launchpad ?

Je pense que la solution est dans le setup.py entre la ligne 64 à 84 (à partir de #Stolemù from cssm ...)  prefix = 0[9:] mais je n'en suis pas sur car je ça je ne sais pas ce que cela veut dire roll.
Désolé de ne pas aider plus, je suis encore débutant même si ça commence à rentrer.

De 1 à 9 : importation des modules et du path des fichiers de Screencastor
de 10 à 25 : lecture des fichiers installés (les tiens composant le log) pour realiser l'installation ; affiche une erreur à l'installation sil' y a
de 26 à 42 : boucle de désinstallation du prog
de 43 à 63 : definittion des dossiers dans le systeme qui contiendrons les fichiers Screencastor (sauf l'exectutible ) + detail de l'application (version, auteur, ....)
de 64 à 84 : definition du prefix par rapport au module systeme
de 83(5) à la fin : definition de l'emplacement de l'icone dans le systeme , création s'il n'y est pas puis création avec le fichier .desktop afin que cela corresponde.

J'espère que cela t'éclaira un peu en attendant les "meilleurs" explications de smo.


Le jour où j'ai découvert le libre, j'ai su que je ne reviendrais jamais en arrière.
The OpenShot Team : http://www.openshotvideo.com/
Mon blog perso sur le multimédia et OpenShot : http://linuxevolution.wordpress.com/
Google+ : https://plus.google.com/u/0/111472725110173916234/posts

Hors ligne

#39 Le 25/02/2011, à 06:09

YannUbuntu

Re : Script bash sur launchpad ?

Bon, tant pis si mes exécutables sont aussi dans /usr/bin , pour l'instant mon but c'est juste d'arriver a obtenir un paquet et le mettre sur PPA, et je n'y arrive pas :
- sudo pbuilder build *.dsc ne me crée aucun paquet dans /var/cache/pbuilder/result/  neutral
- l'upload sur mon ppa me met "pending build" depuis plus d'une heure...

Voici le contenu du paquet si vous avez une idée de ce qui cloche : http://dl.free.fr/aVI5h6TgV

Dernière modification par YannUbuntu (Le 25/02/2011, à 06:10)


à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison

Hors ligne

#40 Le 25/02/2011, à 10:01

Hizoka

Re : Script bash sur launchpad ?

si tu attends ce week end, je posterais une version vraiment automatique de mon idée, tout sera fait en graphique.

sinon là, pas le temps de look, je range tout pour une soirée tongue


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#41 Le 26/02/2011, à 11:02

Hizoka

Re : Script bash sur launchpad ?

voila un apercu, c'est casi fini...

launchbash.gif

Dernière modification par Hizoka (Le 28/02/2011, à 06:18)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#42 Le 26/02/2011, à 12:41

cenwen

Re : Script bash sur launchpad ?

Whaoouu ! Superbe.
Et en plus ce n'est pas limiter qu'à la création de binaire de script bash.
Je sens que je vais faire un  article. Voir plus. tongue
Une dernière chose : A Quand ; A Quand..... wink

Une dernière chose qui n'a rien à voir : comment tu fais pour mettre une screenshot , de plus est animée.
Merci.

Dernière modification par cenwen (Le 26/02/2011, à 12:57)


Le jour où j'ai découvert le libre, j'ai su que je ne reviendrais jamais en arrière.
The OpenShot Team : http://www.openshotvideo.com/
Mon blog perso sur le multimédia et OpenShot : http://linuxevolution.wordpress.com/
Google+ : https://plus.google.com/u/0/111472725110173916234/posts

Hors ligne

#43 Le 27/02/2011, à 07:52

Hizoka

Re : Script bash sur launchpad ?

bon, reste plus qu'à créer les infos bulles et c'est bon smile

=> pour un screen animé, tu fais plusieurs screen et tu les utilises comme calques dans gimp et tu exporte le tout en gif animé.
=> pour l'afficher, t'as une icone entre la balise code et la balise de couleur.

EDIT : Il me reste quelques interrogations, points à revoir, afin de limiter les erreurs de l'user en autre.
Promis, demain matin vous l'aurez ! (le 28 fevrier).

Dernière modification par Hizoka (Le 27/02/2011, à 08:38)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#44 Le 28/02/2011, à 06:30

Hizoka

Re : Script bash sur launchpad ?

Comme promis, voila un 1er jet : http://forum.ubuntu-fr.org/viewtopic.php?pid=4018332

merci de me faire vos retours !!
et un peu d'indulgence car je viens juste d'ajouter des fonctions...

mon but étant d'essayé de donner un maximum de choix à l'utilisateur...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne