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.

#1 Le 10/05/2020, à 20:45

Hizoka

Aide à la création de paquet depuis launchpad

Bonjour,

La gestion des sources sur les ppa launchpad est compliquée et mal documentée.

je propose donc de vous présenter ma façon de faire.

La 1ere chose à faire est de lire : https://www.debian.org/doc/manuals/main … er.fr.html


FICHIERS :

Projet 1 : Yanacron, logiciel en bash a écrit :

Pour cet exemple, je me base sur le projet Yanacron dont voici les sources.

Le fichier debian créé via launchpad est disponible ici.

Télécharger le fichier et extraire son contenu dans un dossier spécifique.

Exemple : ~/yanacron/yanacron/[fichiers sources]


Fichiers et dossiers faisant entièrement partis du logiciel :
    Dossiers :
        icons : Icône du logiciel
        locale : Fichiers de traduction du logiciel
        man : Fichiers man (fr et eng)

    Fichiers :
        yanacron : script bash
        yanacron.desktop : raccourci du logiciel


Fichiers du dossier debian :
    changelog :
        Contient les modifications de la nouvelle version.
        Le format de la 1ere ligne et de la dernière sont importants.

    compat :
        Correspond à la version de debhelper.
        Si les paquets sont >= Bionic, on peut changer la valeur à 10.

    control :
        Très important, contient les infos du projet et de ses paquets.
        Si les paquets sont >= Bionic, on peut changer : Build-Depends: debhelper (>= 10)

    copyright : Informations sur la licence du logiciel.

    files : Ce fichier est automatiquement généré lors de la création des sources.

    format : Laisser tel quel, permet l'application de patch.

    README : Informations diverses (facultatif).

    rules : Ne pas toucher, c'est lui qui permet de faire tout le boulot !

    yanacron.docs : Contient les documents liés au logiciel, dans notre cas, le fichier README.

    yanacron.install :
        Fichier très important qui indique ou déplacer les fichiers.
        Attention, les destination ne doivent pas commencer par /.
        Cela créera l'architecture du fichier debian.
        Les fichiers ne sont pas forcément nommés mais j'utilise souvent le jocker *.
        Le fichier yanacron se retrouvera dans le dossier usr/bin.
        Le dossier locale/ sera fusionné avec le dossier usr/share/locale.
        Les fichiers png du dossier icons seront copiés dans usr/share/icons/hicolor/64x64/apps/ (64x64 car c'est la taille du fichier du projet).
        Tous les fichiers desktop seront copiés dans le dossier usr/share/applications.

    yanacron.manpages : Liste les fichiers man.

Projet 2 : MKV Extractor Qt5 en python3 et pyqt a écrit :

Pour cet exemple, je me base sur le projet MKV Extractor Qt5 dont voici les sources.

Le fichier debian créé via launchpad est disponible ici.

Télécharger le fichier et extraire son contenu dans un dossier spécifique.

Exemple : ~/mkv-extractor-qt5/mkv-extractor-qt5/[fichiers sources]


Fichiers et dossiers faisant entièrement partis du logiciel :
    Dossiers :
        icons
        images
        man
        QFileDialogCustom
        WhatsUp

    Fichiers :
        CodecListFile.py
        mkv-extractor-qt5.desktop
        MKVExtractorQt5_cs_CZ.ts
        MKVExtractorQt5_es_ES.ts
        MKVExtractorQt5_fr_FR.ts
        MKVExtractorQt5.py
        MKVRessources.qrc
        ui_MKVExtractorQt5.ui

    Fichiers BDSup2Sub.jar et bdsup2sup.ini : Présent uniquement dans les sources mais non présents dans le paquet deb


Autres fichiers, plus importants :
    build.sh : Script convertissant différents fichiers aux formats nécessaires à leur utilisation :
        ts => qm
        icones/*.png => qrc puis py
        ui => py
        modification du fichier ui_MKVExtractorQt5.py

    clean.sh : Script supprimant les fichiers créés ci-dessus.

    Makefile : Script qui sera appelé lors de la création des paquets et lors de sa suppression


Fichiers du dossier debian :
    AUTHORS : Infos sur les personnes ayant travaillé sur le logiciel plus ou moins directement.

    changelog :
        Contient les modifications de la nouvelle version.
        Le format de la 1ere ligne et de la dernière sont importants.

    compat :
        Correspond à la version de debhelper.
        Si les paquets sont >= Bionic, on peut changer la valeur à 10

    control :
        Très important, contient les infos du projet et de ses paquets.
        Si les paquets sont >= Bionic, on peut changer : Build-Depends: debhelper (>= 10)

    copyright : informations sur la licence du logiciel.

    format : laisser tel quel, permet l'application de patch.

    files : ce fichier est automatiquement généré lors de la création des sources.

    mkv-extractor-qt5.docs : indique que le fichier AUTHORS est un fichier de documentation

    mkv-extractor-qt5.install :
        Liste tous les fichiers à reprendre et leur destination.
        Attention, les destination ne doivent pas commencer par /.
        Cela créera l'architecture du fichier debian.
        Dans les fichiers listés, ceux créés via le fichier build.sh sont présents.
        Les fichiers ne sont pas forcément nommés mais j'utilise souvent le jocker *.

    mkv-extractor-qt5.links : Création d'un lien entre le fichier executable qui se trouvera dans /usr/share/mkv-extractor-qt5 et la commande /usr/bin/mkv-extractor-qt5

    mkv-extractor-qt5.manpages : Liste des fichiers man.

    mkv-extractor-qt5.postrm :
        Le script sera exécuté lors de la suppression du paquet debian.
        Celui-ci aura pour but de supprimer le fichier de configuration du logiciel en cas de purge.

    rules :
        Ne pas toucher, c'est lui qui permet de faire tout le boulot !
        Dans le cas présent, il est spécifique à python3

Remarque :
Contrairement aux exemples sur le net, ma version ne contient pas "Ubuntu" mais la distribution d'Ubuntu, comme "Bionic" (version extrait du fichier changelog).
Si la version est la même, seul le 1er envoi fonctionnera, launchpad indiquera :

Rejected:
File XXX_1.0.0-0~ubuntu.debian.tar.xz already exists in tests, but uploaded version has different contents.

Donc le fichier changelog :

XXX (1.0.0-0~groovy) groovy; urgency=low ()

et non :

XXX (1.0.0-0~ubuntu) groovy; urgency=low ()

Pour avoir le bon format de date :

LANG=en date '+%a, %d %b %Y %H:%M:%S %z'

Commande debuild :
Cette commande va créer tous les fichiers sources nécessaires.

Go dans le dossier du projet : ~/yanacron/yanacron/ ou ~/mkv-extractor-qt5/mkv-extractor-qt5

Pour avoir les versions supportées d'Ubuntu :

ubuntu-distro-info --date=$(date '+%F') --supported

Récupération de la version du logiciel dans le changelog.

NumberVersion=$(sed -n '1{s/ (/_/; s/-[0-9]\+~.*//p}' debian/changelog)

Création du fichier orig.

tar -ca --exclude-backups -f "../${NumberVersion}.orig.tar.gz" --exclude "debian" ./*

Modification de la version Ubuntu dans le fichier log

UbuntuVersion=bionic
sed -i "s#~[a-Z]\+) [a-Z]\+; urgency#~${UbuntuVersion}) ${UbuntuVersion}; urgency#" "debian/changelog"

Création des sources avec le fichier orig

Key="Clé du PPA"
debuild -S -sa -k${Key}

Si le paquet est compatible avec d'autres versions d'Ubuntu, il faut mettre à jour le fichier changelog :

UbuntuVersion=focal
sed -i "s#~[a-Z]\+) [a-Z]\+; urgency#~${UbuntuVersion}) ${UbuntuVersion}; urgency#" "debian/changelog"

Puis créer des sources sans intégrer le fichier orig, elles ne contiendront que les fichiers debian.

debuild -S -sd -k${Key}

Commande dput :
Commande permettant l'envoi des fichiers sur le(s) ppa.

Envoi des sources en précisant le ppa et le fichier source.
Il faut commencer par la version qui a été créée avec le fichier orig.

PPA="ppa:hizo/tests"
Version="yanacron_1.0-0~bionic"
dput -U "${PPA}" ./*"${Version}_source.changes"

S'il y a d'autres versions d'Ubuntu, rebolotte :

PPA="ppa:hizo/tests"
Version="yanacron_1.0-0~focal"
dput -U "${PPA}" ./*"${Version}_source.changes"

Vous allez recevoir un mail pour chaque source envoyé sur launchpad vous indiquant si c'est accepté ou non.

Vous pouvez nettoyer les fichiers qui ont été créés.


Pour bien comprendre, comparez le contenu des dossiers source et ceux des paquets debian.

Vous verrez d'où on part et le résultat.


Script automatisant tout ça et prenant en charge les patchs :
Il est disponible ici.

Dépendances :
  dput
  distro-info   
  quilt
  hizoselect => Disponible sur mon ppa : https://launchpad.net/~hizo/+archive/ubuntu/bash

Avant de le lancer :
  Il faut l'ouvrir est remplir les variables ppas et Key.
  On peut le rendre executable.

Lancement :
  Soit on le met dans le dossier père du projet et on le lance (bash launchpad.sh) via un terminal.
  Soit on le lance (bash launchpad.sh) avec l'adresse du dossier père en argument.
  bash launchpad.sh peut être remplacé par ./launchpad.sh si le fichier est executable.

Utilisation :
  Il suffit de répondre aux questions et de lire les informations affichées.
  Pour ce qui est des patchs :
    Le script va ouvrir les fichiers à modifier.
    Il faut faire les modifications voulues sur le(s) fichier(s).
    Il faut sauvegarder les fichiers.
    Appuyer sur une touche dans le terminal pour relancer le script.
    Il compare les modifications et remet les fichiers comme ils étaient.
    Un fichier diff est créé contenant les infos.
    La version de la révision du fichier changelog est mis à jour si possible sinon il sera demandé de le faire à la main.
    Il ne ne reste, normalement, plus qu'a créer les sources sans utilisation du fichier orig et à uploader les sources sur le(s) ppa.

Code :

#!/bin/bash


# hizoselect : https://launchpad.net/~hizo/+archive/ubuntu/bash

# Liste des ppas sur lesquels on peut uploader les sources
# ex : "ppa:hizo/tests"
ppas=()

# Clé de certification launchpad pour la création des sources
# ex : 598215E1
Key=""


# Si on lui indique un dossier en argument
[[ ${1} && -d "${1}" ]] && cd "${1}"


# Couleurs
FUCHSIA="\033[1;35m"
RAZ="\e[m"
BLEUFONCE="\033[1;34m"
ROUGE="\033[1;31m"
BOLD="\e[1m"
NOBOLD="\e[21m"
UNDER="\e[4m"
NOUNDER="\e[24m"


# Vérification des dépendances
DpkgList=$(dpkg -l)
for Paquet in dput distro-info quilt hizoselect
do
    if ! grep -Eq "^ii  ${Paquet}" <<< "${DpkgList}"
    then
        echo -e "${BLEUFONCE}Installation de ${Paquet}\n${RAZ}"
        sudo apt -y --force-yes install ${Paquet}

        if ! grep -Eq "^ii  ${Paquet}" <<< "${DpkgList}"
        then
            echo -e "${ROUGE}Impossible d'installer le paquet ${Paquet} !"
            exit 1
        fi
    fi
done


# Liste des distributions supportées
mapfile  -t Distributions < <(ubuntu-distro-info --date="$(date '+%F')" --supported)


# Création du fichier de config si besoin, il sert pour la gestion des patchs
if [[ ! -e ~/.quiltrc ]]
then
    echo 'QUILT_PATCHES=debian/patches
QUILT_NO_DIFF_INDEX=1
QUILT_NO_DIFF_TIMESTAMPS=1
QUILT_REFRESH_ARGS="-p ab"' > ~/.quiltrc
fi


# Action(s) à réaliser
mapfile -t actions < <(hizoselect --title "Quelles actions faut-il faire ?" --answers "2 4" --output "%s" "%t=Application et création de patchs %c=Dans le cas de modifications ne justifiant pas une nouvelle version %s=patch" "%t=Créer les sources ${UNDER}${BOLD}AVEC${NOBOLD}${NOUNDER} le fichier orig %c=Dans le cas d'une nouvelle version %s=avec" "%t=Créer les sources ${UNDER}${BOLD}SANS${NOBOLD}${NOUNDER} le fichier orig %c=Dans le cas de l'utilisation de patchs ou de changement de distribution %s=sans" "%t=Uploader les sources sur les ppa %c=Les ppa seront choisis ici %s=upload" "%t=Nettoyer les fichiers locaux créés %c=Seul le fichier orig.tar.gz sera conservé %=clear")
[[ ${actions[*]} ]] || exit 1


# Question dans le cas où tous les projets sont dans un même dossier
mapfile -t PackageFolders < <(find . -mindepth 1 -maxdepth 1 -type d | sort)

if [[ ${#PackageFolders[@]} -gt 1 ]]
then
    package=$(hizoselect --title "Sur quel dossier faut il travailler ?" --max 1 "${PackageFolders[@]}")
    [[ ${package} ]] || exit 1

elif [[ ${#PackageFolders[@]} -eq 1 ]]
then
    package="${PackageFolders[0]}"

else
    echo -e "\n${ROUGE}Aucun dossier trouvé ici.${RAZ}\n"
    exit 1
fi

package="${package#*/}"


# Traitement des actions une à une
for action in "${actions[@]}"
do
    case "${action}" in
        # Gestion des patchs
        "patch")
            # Déplacement dans le dossier du paquet
            cd "${package}" || exit 1

            # Si le dossier debian/patches n'existe pas
            [[ ! -e "debian/patches" ]] && (mkdir -p "debian/patches"; echo -e "\n${BLEUFONCE}Création du dossier ${FUCHSIA}debian/patches${BLEUFONCE}.${RAZ}";)


            # Recherche des patchs existants
            mapfile -d '' -t fichiers < <(find "debian/patches/" -iname "*.diff" -printf "%f\0")


            # Recherche des patchs
            if [[ ${fichiers[*]} ]]
            then
                # Liste des patchs
                mapfile -t liste_patch < <(hizoselect --title "Quel(s) patch(s) faut-il utiliser ?" "${fichiers[@]}" "Nouveau")
                [[ ${liste_patch[*]} ]] || exit 1

            # S'il n'y a pas de patch, on passe directement en mode création
            else
                liste_patch=("Nouveau")
            fi


            # Traitement des patchs un à un
            for patch in "${liste_patch[@]}"
            do
                # Nouveau patch
                if [[ ${patch} == "Nouveau" ]]
                then
                    # Nom du nouveau patch
                    echo -e "\n${FUCHSIA}Quel est le nom de ce nouveau fichier diff ?${RAZ}"
                    read -p "Nom : " diff_name
                    liste_patch+=("${diff_name/%.diff}.diff")


                    # Si un nom est bien donné
                    if [[ ${diff_name} ]]
                    then
                        # Création d'un patch
                        echo -e "\n${BLEUFONCE}Création du patch ${FUCHSIA}${diff_name}${BLEUFONCE}.${RAZ}"
                        quilt new "${diff_name/%.diff}.diff"


                        # Liste des fichiers non binaires potentiellement concernés par le patch
                        mapfile -d '' -t fichiers < <(find . -type f -not -path "./debian/*" -not -path "./.pc/*" -exec grep -Iq . {} \; -print0)


                        # Liste des fichiers concernés par le patch
                        mapfile -t liste_fichiers < <(hizoselect --title "Quel(s) fichier(s) faut-il surveiller ?" "${fichiers[@]}")
                        [[ ${liste_fichiers[*]} ]] || exit 1

                        echo -e "\n${BLEUFONCE}Ajout des fichiers au patch et ouverture des fichiers dans votre éditeur.${RAZ}"


                        # Ajout des fichiers au patch
                        quilt add "${liste_fichiers[@]}"


                        # Ouverture des fichiers dans l'éditeur
                        for Fichier in "${liste_fichiers[@]}"
                        do
                            xdg-open "${Fichier}"
                        done
                    fi

                # Modification d'un patch
                else
                    # Non obligatoire quand il n'y a qu'un seul fichier => voire meme pas du tout, doit etre obligatoire si plusieurs patch
                    echo -e "\n${BLEUFONCE}Application du patch.${RAZ}"
                    quilt push "${patch}"
                fi
            done


            # Message attendant que les fichiers soient modifiés dans les éditeurs habituels
            echo -e "\n${FUCHSIA}Presser une touche lorsque les modifications des fichiers sont terminées et sauvegardées.${RAZ}"
            read -p "En attente..."


            # Mise à jour des modifications
            echo -e "\n${BLEUFONCE}Mise à jour et retrait des patchs.${RAZ}"
            for patch in "${liste_patch[@]}"
            do
                # On saute les nouveaux patchs
                [[ ${patch} == "Nouveau" ]] && continue

                quilt refresh "${patch}"
            done


            # Retrait des patchs
            echo -e "\n${BLEUFONCE}Retrait des patchs.${RAZ}"
            quilt pop -af


            # Incrémentation du numéro de révision debian du changelog (1.0-X)
            echo -e "\n${BLEUFONCE}Incrémentation de la révision dans le fichier changelog.${RAZ}"
            Revision=$(sed -n '1{s/.*-\([0-9]\+\)~.*/\1/p}' "debian/changelog")

            # Si échec de la récupération de la révision
            if [[ ${Revision} != *+([0-9])* ]]
            then
                echo -e "\n${ROUGE}Échec de la récupération de la révision du fichier changelog !! Merci de le modifier manuellement.${RAZ}\n"
                xdg-open "debian/changelog"

            # Si bonne récupération de la révision
            else
                (( Revision++ ))
                sed -i "1{s/-[0-9]\+~/-${Revision}~/}" "debian/changelog"
            fi

            cd ..
        ;;


        # Création des sources
        "avec"|"sans")
            # Déplacement dans le dossier du paquet
            cd "${package}" || exit 1


            # Sélection des version d'Ubuntu pour lesquels il faut créer des sources
            mapfile -t UbuntuVersion < <(hizoselect --title "Quelles versions d'Ubuntu faut il utiliser ?" --text "Il est primordial de suivre l'ordre temporel des distributions !" --answers "*" "${Distributions[@]}")
            [[ ${UbuntuVersion[*]} ]] || exit 1


            # Création si besoin du fichier orig.tar.gz
            NumberVersion=$(sed -n '1{s/ (/_/; s/-[0-9]\+~.*//p}' "debian/changelog")
            [[ ! -e "../${NumberVersion}.orig.tar.gz" ]] && tar -ca --exclude-backups -f "../${NumberVersion}.orig.tar.gz" --exclude "debian" ./*


            # Création du 1er paquet, avec ou sans fichier orig en fonction de l'action
            echo -e "\n${BLEUFONCE}Création des paquets en version ${UbuntuVersion[0]}.${RAZ}"
            sed -i "s#~[a-Z]\+) [a-Z]\+; urgency#~${UbuntuVersion[0]}) ${UbuntuVersion[0]}; urgency#" "debian/changelog"
            if [[ ${action} == "avec" ]]; then debuild -S -sa -k${Key}
            else debuild -S -sd -k${Key}; fi


            # Vérification de la bonne sortie
            ReturnValue="${?}"
            [[ ${ReturnValue} != 0 ]] && echo -e "\n${ROUGE}ATTENTION : debuild a renvoyé le code ${ReturnValue} !!${RAZ}\n"


            # Création des autres paquets qui sont tous sans le fichier orig
            for Version in "${UbuntuVersion[@]:1}"
            do
                echo -e "\n${BLEUFONCE}Création des paquets en version ${Version}.${RAZ}"
                sed -i "s#~[a-Z]\+) [a-Z]\+; urgency#~${Version}) ${Version}; urgency#" "debian/changelog"
                debuild -S -sd -k${Key}
                ReturnValue="${?}"
                [[ ${ReturnValue} != 0 ]] && echo -e "\n${ROUGE}ATTENTION : debuild a renvoyé le code ${ReturnValue} !!${RAZ}\n"
            done

            cd ..
        ;;


        # Envoi des sources sur le ppa
        "upload")
            # Choix du ou des ppa a utiliser pour l'upload
            mapfile -t upload < <(hizoselect --title "Où faut-il uploader les sources ?" "${ppas[@]}")
            [[ ${upload[*]} ]] || exit 1


            # Traitement des ppa un à un
            for ppa in "${upload[@]}"
            do
                echo -e "\n${BLEUFONCE}Upload des sources sur ${FUCHSIA}${ppa}${RAZ}."


                # Liste des fichiers changes dans le dossier
                Fichiers=(*.changes)

                # Traitement des versions, il ne faut pas utiliser dput *.changes car si la version avec le fichier orig n'est pas la 1ere, les fichiers seront rejetés
                for Version in "${Distributions[@]}"
                do
                    # Boucle sur les fichiers
                    for Fichier in "${Fichiers[@]}"
                    do
                        # Recherche le fichier source.changes
                        if [[ ${Fichier} == *${Version}*_source.changes ]]
                        then
                            # Envoi des fichiers sur le ppa
                            dput -U "${ppa}" "${Fichier}"


                            # Vérification de la bonne sortie
                            ReturnValue="${?}"
                            [[ ${ReturnValue} != 0 ]] && echo -e "\n${ROUGE}ATTENTION : dput a renvoyé le code ${ReturnValue} !!${RAZ}\n"
                        fi
                    done
                done
            done
        ;;

        "clear")
            # Traite tous les fichiers
            for file in *
            do
                # Suppression des fichiers si répondent aux critères
                ext="${file##*.}"
                [[ "${ext}" =~ dsc|build|changes|buildinfo || "${file}" == *debian* ]] && [[ -f "${file}" ]] && rm "${file}"
            done
        ;;
    esac
done



En espérant que ces exemples vous ont aidé à mieux comprendre et mettre en place vos sources launchpad smile

N’hésitez pas à partager vos expériences.

Dernière modification par Hizoka (Le 19/05/2020, à 15:03)


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

En ligne

#2 Le 11/05/2020, à 05:42

Christophe C

Re : Aide à la création de paquet depuis launchpad

Cette structure de répertoire être fichier me semble étrange pour unpasuet debian,mais c'est comme ça,je suppose. Et un immense merci pour ces explications, je vais m'y mettre smile

Par contre il me semble qu'il manque quelques bouts. Par exemple tu parles de fichiers comme rules, format ou yanacron.instal, Mais que met on dedans ?
Et tu parles de créer un fichier de configuration, mais sous quel nom, ou et avec quel contenu exactement ?


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#3 Le 11/05/2020, à 07:50

Hizoka

Re : Aide à la création de paquet depuis launchpad

Par contre il me semble qu'il manque quelques bouts. Par exemple tu parles de fichiers comme rules, format ou yanacron.instal, Mais que met on dedans ?

Bah j'ai dit :
- rules : Ne pas toucher, c'est lui qui permet de faire tout le boulot !
- format : laisser tel quel, permet l'application de patch.

- yanacron.instal : Ouvre le fichier ce n'est pas compliqué et j'ai donné une traduction française de son contenu :

Le fichier yanacron se retrouvera dans le dossier usr/bin

Le dossier locale/ sera fusionné avec le dossier usr/share/locale

Les fichiers png du dossier icons seront copiés dans usr/share/icons/hicolor/64x64/apps/ (64x64 car c'est la taille du fichier du projet)
Vu qu'il n'y avait qu'un fichier, on aurait pu le nommer directement plutôt que d'utiliser *.png.

Tous les fichiers desktop seront copiés dans le dossier usr/share/applications
Vu qu'il n'y avait qu'un fichier, on aurait pu le nommer directement plutôt que d'utiliser *.desktop.

Et tu parles de créer un fichier de configuration, mais sous quel nom, ou et avec quel contenu exactement ?

Ce n'est en rien lié avec au paquet, uniquement avec ton logiciel ça.
Ce n'était que pour donner un exemple d'utilisation d'un fichier postrm.


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

En ligne

#4 Le 11/05/2020, à 19:06

Christophe C

Re : Aide à la création de paquet depuis launchpad

Excuse moi, je suis lourd, mais je n'ai rien compris smile.

hizoka a écrit :

- rules : Ne pas toucher, c'est lui qui permet de faire tout le boulot !
- format : laisser tel quel, permet l'application de patch.
- yanacron.instal : Ouvre le fichier

tu sembles indiquer que ces fichiers existent, mais ils sortent d'où ? qui les créent ? C'est cela que je ne comprends pas.

hizoka a écrit :

Ce n'était que pour donner un exemple d'utilisation d'un fichier postrm.

Non, je ne parle pas du postrm qui peut supprimer (par exemple) un fichier de conf, ça je connais, j'en ai utilisé. Ma question portait sur cette partie :

Hizoka a écrit :

Commande debuild :
Cette commande va créer tous les fichiers sources necessaires à l'envoi de ceux ci sur le ppa.

Il est important de se placer dans le dossier : ~/yanacron/

Création du fichier de config si besoin :

if [[ ! -e ~/.quiltrc ]]
then
    echo 'QUILT_PATCHES=debian/patches
QUILT_NO_DIFF_INDEX=1
QUILT_NO_DIFF_TIMESTAMPS=1
QUILT_REFRESH_ARGS="-p ab"' > ~/.quiltrc
fi

Je n'ai pas compris ce qu'était ce fichier et à quoi il servait. Quel est son nom exact ?

Peut-être pourrais-tu m'envoyer le zip du yanacron "modifié" que tu as créé, avec tous ces fichiers. Je pourrais le creuser smile

Dernière modification par Christophe C (Le 11/05/2020, à 19:11)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#5 Le 11/05/2020, à 20:10

Hizoka

Re : Aide à la création de paquet depuis launchpad

tu sembles indiquer que ces fichiers existent, mais ils sortent d'où ? qui les créent ? C'est cela que je ne comprends pas.

Qui crée les fichiers control, copyright, README et tous les autres...?
J'aurai tendance à dire : toi lol
Seul le fichier files est créé automatiquement.


Je n'ai pas compris ce qu'était ce fichier et à quoi il servait. Quel est son nom exact ?

Alors le nom exact c'est ~/.quiltrc tongue
Mais tu as raison, ça n'a pas sa place ici car c'est en lien avec l'application de patchs, ce qu'on ne fait pas dans l'exemple.
Qui plus, je n'ai pas compris l’intérêt de ce truc, c'est lourdingue et n'apporte rien...
Cela a peut être un intérêt dans le cas de gros projet qui nécessite de compiler des trucs...


Peut-être pourrais-tu m'envoyer le zip du yanacron "modifié" que tu as créé, avec tous ces fichiers. Je pourrais le creuser

Je crois bien que c'est la cause de notre incompréhension smile
Le lien est disponible sur la 3eme ligne :

Hizo a écrit :

Pour cet exemple, je me base sur le projet suivant : Yanacron

PS : Du coup, j'ai reformulé la phrase indiquant le lien vers les sources :

Pour cet exemple, je me base sur le projet Yanacron dont voici les sources.

Dernière modification par Hizoka (Le 11/05/2020, à 20:17)


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

En ligne

#6 Le 12/05/2020, à 15:54

Hizoka

Re : Aide à la création de paquet depuis launchpad

Après relecture de https://www.debian.org/doc/manuals/main … er.fr.html

Si les paquets sont au moins pour Bionic :
- fichier compat, il faut passer à 10
- fichier control, il faut mettre à jour la valeur de Build-Depends : Build-Depends: debhelper (>= 10)
- fichier control : Standards-Version: 4.1.4 (du moins sous Bionic)
=> Je n'ai pas trouvé comment connaître cette version... hormis en mettant une grosse, lintian indique la version actuelle.

On peut simplifier le fichier rules :

#!/usr/bin/make -f

%:
	dh ${@}

J'avais un warning inutile par rapport à --parallel et la compression ne change rien niveau taille, les reco sont de ne pas trop compresser car ça prend plus de temps a extraire qu'à telecharger...

j'ai refait quelques simplifications dans le 1er message en virant ce qui n'est pas utilisé par yanacron vu que j'ai ajouté l'adresse d'aide debian.

As tu réussi ? smile

Dernière modification par Hizoka (Le 12/05/2020, à 17:04)


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

En ligne

#7 Le 12/05/2020, à 18:43

Christophe C

Re : Aide à la création de paquet depuis launchpad

Non, rien fait encore : je bosse vraiment beaucoup en ce moment, et je manque un peu de temps. Je ferais cela au plus ce WE, avant si possible.

Sinon, oui, je n'avais pas compris que tes sources modifiées étaient dispo, donc je ne comprenais pas très bien de quoi tu parlais smile
Je regarde tout cela, et je te redis ...


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#8 Le 12/05/2020, à 18:50

Christophe C

Re : Aide à la création de paquet depuis launchpad

1er question : la structure répertoires/fichiersque tu m'as envoyé marche pour un PPA, mais est-il normal qu'elle ne marche pas pour créer un paquet debian ? Car quand je lance un dpkg-deb --build yanacron, il m'insulte ?

Si j'ai bien compris, il faut donc avoir 2 structures : 1 pour les paquets debian "normaux" et une pour les PPA ?

Dernière modification par Christophe C (Le 12/05/2020, à 19:03)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#9 Le 12/05/2020, à 19:02

Christophe C

Re : Aide à la création de paquet depuis launchpad

Je ne comprends pas les fichiers rules et compat, mais bon, cela ne me dérange pas de les reprendre tels que smile

Par contre, par curiosité le "9" (ou 10) de compat, ça veut dire quoi  (si tu le sais toi-même, bien sur) ?

J'ai compris le yanacron.install. C'est clair qu'en le lisant c'est plus simple smile

Dernière modification par Christophe C (Le 12/05/2020, à 19:10)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#10 Le 12/05/2020, à 19:09

Hizoka

Re : Aide à la création de paquet depuis launchpad

1er question : la structure répertoires/fichiersque tu m'as envoyé marche pour un PPA, mais est-il normal qu'elle ne marche pas pour créer un paquet debian ? Car quand je lance un dpkg-deb --build yanacron, il m'insulte ?

Je peux pas te dire...

Si j'ai bien compris, il faut donc avoir 2 structures : 1 pour les paquets debian "normaux" et une pour les PPA ?

Non, fais le sur le ppa et récupère le fichier deb dessus.

Par contre, par curiosité le "9" de compat, ça veut dire quoi  (si tu le sais toi-même, bien sur) ?

Le fichier compat définit le niveau de compatibilité de debhelper.
C'est la version de debhelper en gros.

Pour le rules, ouais vaut mieux pas y touché car je ne maîtrise absolument pas...


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

En ligne

#11 Le 12/05/2020, à 19:19

Christophe C

Re : Aide à la création de paquet depuis launchpad

Oui, je peux utiliser le PPA comme générateur de .deb. Sur le principe, c'est forcément plus simple.
Bon, je pense que pour l'instant je vais garder les 2. Plus compliqué, mais au moins je maitrise le 1er processus smile. On verra plus tard pour passer à 100% PPA.

Sinon, je commence à comprendre. Je trouve ça bizarre. Par exemple tout mettre dans le même répertoire avec des fichiers pour indiquer ou cela doit aller. Mais pourquoi pas.

Mais il y a encore 2 gros truc que je ne comprends pas  :
1. comment je fais pour pousser une version 1.1 qui ira écraser la 1.0 ? Je relance tout, et cela s'en va gentiment écraser à 100% la version précédente ? (si c'est cela, c'est parfait).
2. comment le sudo apt update && sudo apt upgrade de monsieur Dupont sait-il qu'il existe une nouvelle version 1.1, et qu'il doit updater le paquet Yanacron ? En effet, il n'y a plus de version dans le paquet "control" (ce qui me choque, pour le coup).

Si tu sais tout cela, bien sur. Sinon je ferais des tests, on verra bien.

Dernière modification par Christophe C (Le 12/05/2020, à 19:20)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#12 Le 12/05/2020, à 19:58

Hizoka

Re : Aide à la création de paquet depuis launchpad

comment je fais pour pousser une version 1.1 qui ira écraser la 1.0 ? Je relance tout, et cela s'en va gentiment écraser à 100% la version précédente ? (si c'est cela, c'est parfait).

En effet, tu envois ta v1.1 sur le depot et basta.

comment le sudo apt update && sudo apt upgrade de monsieur Dupont sait-il qu'il existe une nouvelle version 1.1, et qu'il doit updater le paquet Yanacron ? En effet, il n'y a plus de version dans le paquet "control" (ce qui me choque, pour le coup).

En fait, la version est récupérée automatiquement depuis ton fichier changelog.
du coup, quand la personne lance son update, apt detecte que sa version est plus ancienne que celle du ppa.


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

En ligne

#13 Le 13/05/2020, à 07:25

Christophe C

Re : Aide à la création de paquet depuis launchpad

okaaaaayyy. Donc ce coup-ci j'ai compris, je pense.

Reste à tester.

la clé PGP à utiliser c'est celle de la signature du code de conduite Ubuntu, je suppose ?


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#14 Le 13/05/2020, à 07:59

Hizoka

Re : Aide à la création de paquet depuis launchpad

Perso c'est 8 chiffres/lettres.
Je ne sais plus exactement comment on l'obtient mais c'est donné sur launchpad.


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

En ligne

#15 Le 13/05/2020, à 12:10

Christophe C

Re : Aide à la création de paquet depuis launchpad

Je trouve ici https://help.launchpad.net/Packaging/PPA

Launchpad a écrit :

Your PPA's key

Launchpad generates a unique key for each PPA and uses it to sign any packages built in that PPA.

This means that people downloading/installing packages from your PPA can verify their source. After you've activated your PPA, uploading its first package causes Launchpad to start generating your key, which can take up to a couple of hours to complete.

Your key, and instructions for adding it to Ubuntu, are shown on the PPA's overview page.

Je suis donc supposé télécharger sans clé, puis il m'en donne une. C'est pas super clair.

Surtout, tes commandes impliquent un clé, que je n'ai pas à ce stade... Là je bloque.

J'ai essayé un debuild -S -sa (donc sans clé), pour voir. Bien sur il me dit qu'il manque la "clé secrète". Bon, je vais recreuser.

Par ailleurs, j'ai tout laissé en user chris:chris. Il ne faut pas que je change les droits ? sur les paquets que je crée habituellement, c'est ce que fait. D'ailleurs lintian semble me renvoyer des messages d'erreurs :

lintian a écrit :

Now running lintian yanacron_1.0-0~focal_source.changes ...
E: yanacron source: executable-debhelper-file-without-being-executable debian/yanacron.docs
E: yanacron source: executable-debhelper-file-without-being-executable debian/yanacron.install
E: yanacron source: executable-debhelper-file-without-being-executable debian/yanacron.manpages
W: yanacron source: debian-rules-should-not-use-custom-compression-settings dh_builddeb -- -Zxz -z5 (line 8)
W: yanacron source: debian-rules-uses-unnecessary-dh-argument dh ... --parallel (line 4)
W: yanacron source: package-file-is-executable debian/changelog
W: yanacron source: package-file-is-executable debian/control
W: yanacron source: package-file-is-executable debian/copyright
Finished running lintian.

Mais il me crée une série de fichiers, malgré les messages d'erreur. Dont le source.changes

Et là je lance

(chris - 5.4.0-29-generic) ~/Documents/yanacron-PPA : dput -U "ppa:batra3/ytools" yanacron_1.0-0~focal_source.changes
Checking signature on .changes
gpg: /home/chris/Documents/yanacron-PPA/yanacron_1.0-0~focal_source.changes: error 58: gpgme_op_verify
gpgme_op_verify: GPGME: No data

Pb de clé PGP.

Bon, il me faut bien une clé pour télécharger, sauf que la doc dit qu'on me la donne après téléchargement. C'est super bizarre. Je vais voir si je trouve comment faire.

Tu peux me dire, pour les droits sur les fichiers sources ? J'ai un gros doute.

Dernière modification par Christophe C (Le 13/05/2020, à 13:05)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#16 Le 13/05/2020, à 14:04

Hizoka

Re : Aide à la création de paquet depuis launchpad

La clé est essentielle pour certifier que c'est bien toi qui uploades dessus et pas n'importe qui.
Il doit y avoir un échange de clé privée/public à un moment si je me souviens...

Quand tu te connectes sur launchpad, tu as OpenPGP keys: avec une longue clé, ce sont les 8 derniers caractères.
Mais je ne sais plus quand on récupère la clé plus proprement...

Par ailleurs, j'ai tout laissé en user chris:chris. Il ne faut pas que je change les droits ?

J'ai jamais touché aux propriétés...

E: yanacron source: executable-debhelper-file-without-being-executable debian/yanacron.docs
E: yanacron source: executable-debhelper-file-without-being-executable debian/yanacron.install
E: yanacron source: executable-debhelper-file-without-being-executable debian/yanacron.manpages
W: yanacron source: package-file-is-executable debian/changelog
W: yanacron source: package-file-is-executable debian/control
W: yanacron source: package-file-is-executable debian/copyright

https://lintian.debian.org/tags/executa … table.html
ils te dit que ces fichiers sont exécutables mais sans shebang.
Pourquoi les as tu rendu exécutable ?

W: yanacron source: debian-rules-should-not-use-custom-compression-settings dh_builddeb -- -Zxz -z5 (line 8)
W: yanacron source: debian-rules-uses-unnecessary-dh-argument dh ... --parallel (line 4)

Il faut simplifier le fichier rules comme je l'ai indiqué

Dernière modification par Hizoka (Le 13/05/2020, à 14:07)


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

En ligne

#17 Le 14/05/2020, à 07:16

Christophe C

Re : Aide à la création de paquet depuis launchpad

Hizoka a écrit :

Il faut simplifier le fichier rules comme je l'ai indiqué

Oui, effectivement, je vais le faire.

Hizoka a écrit :

ils te dit que ces fichiers sont exécutables mais sans shebang.
Pourquoi les as tu rendu exécutable ?

Je n'ai touché à rien, j'ai récupéré tes sources telles que. Je vais revoir cela.
Mais donc toi tu ne touches pas aux droits normaux. Bon ce doit être l'utilitaire de transfert qui le fait. Quand je crée mes .deb à la mano, je les change par contre.
Donc ok, je ne touche à rien, et je revois cet histoire d'exécutable. merci.

Pour la clé, j'ai celle que j'ai eu lors de la signature du code de conduite, je suppose que c'est celle-là mais elle fait bien plus de 8 caractères. Je vais essayer avec les 8 derniers.

Je n'avance pas vite, car je manque vraiment de temps, en ce moment.

Encore merci smile

Dernière modification par Christophe C (Le 14/05/2020, à 07:20)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#18 Le 15/05/2020, à 12:38

Christophe C

Re : Aide à la création de paquet depuis launchpad

Bon ça marche partiellement. Je progresse par paquets de 20 Mn smile

1/ Je vais dans le répertoire projet et je crée le fichier de base :

tar -ca --exclude-backups -f "../yanacron_1.0.orig.tar.gz" --exclude "debian" ./*

2/ Je vais dans le répertoire projet et création des sources :

debuild -S -sa -k'ma clé publique PGP en 40 caractères qui est sur mon launchpad depuis que j'ai validé le code de conduite'

Avec les 8 derniers caractères de la clé, ça plantait.
On me demande mon mot de passe (ma clé "privée" je crois ?), ca marche. pas de message d'erreur, en tout cas.

3/ Transfert vers le PPA. Je me met dans le répertoire parent de celui du projet :

dput -U ppa:batra3/ytools yanacron_1.0-0~focal_source.changes

Ca marche, cela part dans le PPA en 30  secondes.

4/ Installation du PPA chez moi :

sudo add-apt-repository ppa:batra3/ytools

Message d'erreur :

(chris - 5.4.0-29-generic) ~/Documents/yanacron-PPA : sudo add-apt-repository ppa:batra3/ytools
 Utilities (in yad) for Ubuntu
 Plus d’info : https://launchpad.net/~batra3/+archive/ubuntu/ytools
Appuyez sur [ENTRÉE] pour continuer ou sur Ctrl-c pour annuler l'ajout.

[b]Error: signing key fingerprint does not exist[/b]
[b]Failed to add key.[/b]

Donc j'ai toujours un pb de clé.

Une idée ? (je n'ai pas encore eu le temps de chercher, c'est peut-être simple).
EDIT c'est peut-être bien cela : https://askubuntu.com/questions/835629/ … -launchpad (donc en gros : attendre).

Sinon je n'ai pas compris (et pas fait) la Création des sources sans le fichier orig (debuild -S -sd -k${Key}). Ca sert à quoi ? C'est optionnel ? (j'ai eu un message qui me disait que le fichier origin n'était pas nécéssaire, donc c'est peut-être plutôt cela qu'il faut faire ?)

Je retourne bosser smile

Dernière modification par Christophe C (Le 15/05/2020, à 12:52)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#19 Le 15/05/2020, à 16:00

Hizoka

Re : Aide à la création de paquet depuis launchpad

Pour l'erreur, je ne peux pas te dire autre chose.

En fait, il faut que tu crées une version contenant le fichier orig et les autres version ne le contienne pas.
Ex :
Bionic : contient le fichier orig
eoan : ne contient pas le fichier orig
Focal : ne contient pas le fichier orig

Et dans le cas de l'utilisation de patch (non expliqué ici mais je le ferai) tu n'as pas besoin de mettre le fichier orig à chaque fois.
Ex :
v1.0-0 : avec fichier orig (nouvelle version)
v1.0-1 : sans fichier orig (juste application de patch)
v1.0-2 : sans fichier orig (juste application de patch)
v1.1-0 : avec fichier orig (nouvelle version)

De même, si tu as un plantage lors de la création du paquet comme expliquer en fin de page de : https://doc.ubuntu-fr.org/tutoriel/cree … _launchpad

Dernière modification par Hizoka (Le 15/05/2020, à 16:06)


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

En ligne

#20 Le 15/05/2020, à 17:15

Christophe C

Re : Aide à la création de paquet depuis launchpad

Ah, ok, c'est plus clair. Comme je n'ai créé qu'une version pour focal, ce que j'ai fais (utiliser le fichier origin) semble donc ok.

Sinon, effectivement, il suffisait d'attendre. Le PPA fonctionne désormais. Il faut apparemment quelques heures après le 1er upload pour que la circulation des clés se fasse.

Par contre j'ai voulu faire un sudo apt install yanacron, mais

E: Impossible de trouver le paquet yanacron

je reviens sur mon PPA, et là je vois dans Overview of published packages un package nommé yanacron. Ce qui semble bien smile

Mais dans un coin, très discret un piti message indique :

Launchpad a écrit :

Latest updates
    yanacron 4 hours 20 minutes ago
    Failed to build: amd64

A la limite c'est peut-être normal, bash ne compile pas. Mais en attendant, le paquet yanacron existe, mais il semble en anomalie. J'ai fais un apt update, bien sur. Et j'y vois mon PPA :

(chris - 5.4.0-29-generic) ~ : sudo apt update
Atteint :1 http://fr.archive.ubuntu.com/ubuntu focal InRelease
Atteint :2 http://ppa.launchpad.net/batra3/ytools/ubuntu focal InRelease                                
Réception de :3 http://security.ubuntu.com/ubuntu focal-security InRelease [107 kB]                     
Atteint :4 http://archive.canonical.com/ubuntu focal InRelease        
107 ko réceptionnés en 11s (9826 o/s)       

Tu arrives à installer le paquet à partir de ton PPA, toi ?

Dernière modification par Christophe C (Le 15/05/2020, à 17:20)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#21 Le 15/05/2020, à 19:23

Christophe C

Re : Aide à la création de paquet depuis launchpad

j'ai relancé le built (il y a une option sur le PPA), mais nouvel échec. le fichier de log est là :
https://launchpadlibrarian.net/47992161 … ING.txt.gz

Je regarderais ce WE.


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#22 Le 16/05/2020, à 10:58

Hizoka

Re : Aide à la création de paquet depuis launchpad

Bah oui, aucun probleme pour installer depuis mes ppa sinon aucun interet.

On s'en fiche que ce soit bash ou non, il ne faut pas que ça plante.

/<<PKGBUILDDIR>>/debian/yanacron.install: 1: yanacron: not found
/<<PKGBUILDDIR>>/debian/yanacron.install: 2: locale/: Permission denied
icons/yanacron.png: 1: PNG
: not found
icons/yanacron.png: 2: : not found
icons/yanacron.png: 3: Syntax error: "(" unexpected
/<<PKGBUILDDIR>>/debian/yanacron.install: 4: yanacron.desktop: not found
dh_install: warning: debian/yanacron.install is marked executable but does not appear to an executable config.
dh_install: warning:
dh_install: warning: If debian/yanacron.install is intended to be an executable config file, please ensure it can
dh_install: warning: be run as a stand-alone script/program (e.g. "./debian/yanacron.install")
dh_install: warning: Otherwise, please remove the executable bit from the file (e.g. chmod -x "debian/yanacron.install")
dh_install: warning:
dh_install: warning: Please see "Executable debhelper config files" in debhelper(7) for more information.
dh_install: warning:
dh_install: error: debian/yanacron.install (executable config) returned exit code 127

Toujours exécutable ton fichier install...


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

En ligne

#23 Le 17/05/2020, à 08:56

Christophe C

Re : Aide à la création de paquet depuis launchpad

oui, je sais bien. En fait j'ai corrigé tout cela depuis un moment, mais launchpad refuse la mise à jour.

Si j'essaie juste de renvoyer le même paquet, ça plante : il demande un changement du N° de version.
Si je change le N° de version dans changelog

yanacron (1.0-1~focal) focal; urgency=low ()

  * few bugs corrections

 -- Christophe Cagé <cage.christophe@orange.fr>  Sat, 16 May 2020 00:00:00 +0200

yanacron (1.0-0~focal) focal; urgency=low ()

  * initial release

 -- Christophe Cagé <cage.christophe@orange.fr>  Sat, 2 May 2020 00:00:00 +0200

il me génère bien un source.changes dont le nom est modifié (yanacron_1.0-1~focal_source.changes), mais le fichier orig que génère la commande

NumberVersion=$(sed -n '1{s/ (/_/; s/-[0-9]\+~.*//p}' debian/changelog) ; tar -ca --exclude-backups -f "../${NumberVersion}.orig.tar.gz" --exclude "debian" ./*

s'appelle toujours du même nom (yanacron_1.0.orig.tar.gz), et c'est rejeté :

launchpad a écrit :

File yanacron_1.0.orig.tar.gz already exists in Utilities (in yad) for Ubuntu, but uploaded version has different contents. See more information about this error in https://help.launchpad.net/Packaging/UploadErrors.
Files specified in DSC are broken or missing, skipping package unpack verification.

.

J'ai essayé de modifier le nom du fichier orig en forçant la création avec un nom en 1.0-1, mais pas mieux.

Reste la solution "brut force" consistant à supprimer les paquets sur le PPA, mais j'aimerais comprendre ces mise à jours. La doc est claire sur le principe (changement de N° de version), mais pas sur ce qu'il convient de faire.

J'ai essayé à tout hasard de refaire une mise à jour sans fichier orig (debuild -S -sd -k${Key}), mais pas mieux : rejet.

Bon, je continue mes tests, mais les lacunes de la doc sont un problème. Je tatone.


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#24 Le 17/05/2020, à 13:19

Hizoka

Re : Aide à la création de paquet depuis launchpad

Tu ne lis pas très attentivement ce que j'écris...

v1.0-0 : avec fichier orig (nouvelle version)
v1.0-1 : sans fichier orig (juste application de patch)
v1.0-2 : sans fichier orig (juste application de patch)
v1.1-0 : avec fichier orig (nouvelle version)

Tu n'as pas appliqué de patch, donc ce n'est pas le 3e chiffre que tu changes mais le 2e.
Je vais essayer de poster un script simplifié la semaine prochaine qui permet également la prise en charge des patch (que je n'utilise jamais).


Ou comme indiqué dans le lien donné il y a quelques messages :

yanacron (1.0-0~focal2) focal; urgency=low ()

Ca, je n'ai jamais testé...


Reste la solution "brut force" consistant à supprimer les paquets sur le PPA, mais j'aimerais comprendre ces mise à jours.

J'avais testé à me débuts, ça ne marche pas XD
il garde en mémoire la version des paquets même supprimés.

Dernière modification par Hizoka (Le 17/05/2020, à 13:22)


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

En ligne

#25 Le 18/05/2020, à 07:35

Christophe C

Re : Aide à la création de paquet depuis launchpad

Oui, j'ai fini par supprimer le paquet, mais il bloque toujours.

Oui, je n'ai pas bien lu (et surtout pas compris). Le 3e N° est pour le patch, et le second pour la version, c'est ça ?

Donc j'utilise l'option "version" avec une numérotation patch, et cela ne marche pas. Ok, je vais tester.


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne