tech:un_makefile_pour_rpmbuild
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tech:un_makefile_pour_rpmbuild [2025/05/31 18:46] – Jean-Baptiste | tech:un_makefile_pour_rpmbuild [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # Un MakeFile pour rpmbuild | ||
| + | |||
| + | Voir aussi : | ||
| + | * https:// | ||
| + | * Python invoke https:// | ||
| + | * o-task https:// | ||
| + | * Make.rules | ||
| + | |||
| + | |||
| + | |||
| + | `Makefile` | ||
| + | ~~~make | ||
| + | clean: | ||
| + | |||
| + | build: | ||
| + | |||
| + | |||
| + | FicSpec = $(shell echo *.spec) | ||
| + | RpmName = $(shell grep -e ' | ||
| + | RpmVersion = $(shell grep -e ' | ||
| + | RpmRelease = $(shell grep -e ' | ||
| + | StringRpmFullname = $(RpmName)-$(RpmVersion)-$(RpmRelease).$(shell uname -m) | ||
| + | |||
| + | all: build clean | ||
| + | |||
| + | clean: | ||
| + | rm -rf $$HOME/ | ||
| + | |||
| + | cleanall: | ||
| + | rm -f *.rpm | ||
| + | |||
| + | copy: | ||
| + | mkdir -p $$HOME/ | ||
| + | mkdir -p $$HOME/ | ||
| + | cp -a ROOT/* $$HOME/ | ||
| + | cp -p $(FicSpec) ~/ | ||
| + | |||
| + | build: | ||
| + | rpmbuild -bb ~/ | ||
| + | mv ~/ | ||
| + | ~~~ | ||
| + | |||
| + | Le **clean** se fait bien avant, mais pas après le **build**. | ||
| + | |||
| + | C'est comme si : | ||
| + | ~~~make | ||
| + | all: build clean | ||
| + | ~~~ | ||
| + | |||
| + | Etait | ||
| + | ~~~make | ||
| + | all: build | ||
| + | ~~~ | ||
| + | |||
| + | Solution : | ||
| + | |||
| + | `Makefile` | ||
| + | ~~~Make | ||
| + | clean: | ||
| + | |||
| + | build: | ||
| + | |||
| + | |||
| + | FicSpec = $(shell echo *.spec) | ||
| + | RpmName = $(shell grep -e ' | ||
| + | RpmVersion = $(shell grep -e ' | ||
| + | RpmRelease = $(shell grep -e ' | ||
| + | StringRpmFullname = $(RpmName)-$(RpmVersion)-$(RpmRelease).$(shell uname -m) | ||
| + | |||
| + | all: build cleanagain | ||
| + | |||
| + | clean: | ||
| + | rm -rf $$HOME/ | ||
| + | |||
| + | cleanall: | ||
| + | rm -f *.rpm | ||
| + | |||
| + | cleanagain: | ||
| + | ${MAKE} clean | ||
| + | |||
| + | copy: | ||
| + | mkdir -p $$HOME/ | ||
| + | mkdir -p $$HOME/ | ||
| + | cp -a ROOT/* $$HOME/ | ||
| + | cp -p $(FicSpec) ~/ | ||
| + | |||
| + | build: | ||
| + | rpmbuild -bb ~/ | ||
| + | mv ~/ | ||
| + | ~~~ | ||
| + | |||
| + | ## Exemple avec le paquet Python mycli | ||
| + | |||
| + | |||
| + | ~~~bash | ||
| + | mkdir -p ~/rpm/ROOT | ||
| + | cd ~/rpm | ||
| + | ~~~ | ||
| + | |||
| + | Déposez le Makefile dans ~/rpm/ | ||
| + | |||
| + | `~/ | ||
| + | ~~~ | ||
| + | %define name mycli | ||
| + | %define version 1.21.1 | ||
| + | %define release 1 | ||
| + | %define debug_package %{nil} | ||
| + | |||
| + | Summary: | ||
| + | Name: %{name} | ||
| + | Version: %{version} | ||
| + | Release: %{release} | ||
| + | Vendor: NC | ||
| + | |||
| + | |||
| + | Group: | ||
| + | License: | ||
| + | URL: https:// | ||
| + | Source0: | ||
| + | |||
| + | BuildRequires: | ||
| + | Requires: | ||
| + | # | ||
| + | |||
| + | %description | ||
| + | This is a command line interface for MySQL, MariaDB, and Percona with | ||
| + | auto-completion and syntax highlighting. The CLI is also capable of pretty | ||
| + | printing tabular data. | ||
| + | |||
| + | #%post | ||
| + | #set -e | ||
| + | |||
| + | %doc | ||
| + | |||
| + | |||
| + | #%changelog | ||
| + | |||
| + | %files | ||
| + | %defattr(755, | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | export http_proxy=http:// | ||
| + | export https_proxy=http:// | ||
| + | |||
| + | pip3 install --user mycli | ||
| + | mkdir -p ~/ | ||
| + | cp -a ~/.local/* ~/ | ||
| + | |||
| + | |||
| + | mkdir -p ~/ | ||
| + | |||
| + | find / | ||
| + | ~~~ | ||
| + | |||
| + | `~/ | ||
| + | ~~~bash | ||
| + | #!/bin/sh | ||
| + | |||
| + | env PYTHONPATH=/ | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | cd ~/rpm/ROOT | ||
| + | find . -type f | sed -e ' | ||
| + | |||
| + | cd ~/rpm/ | ||
| + | make | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ## Pb | ||
| + | |||
| + | ### did you mean TAB instead of 8 spaces? | ||
| + | |||
| + | ~~~ | ||
| + | $ make | ||
| + | Makefile: | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | #### Solution | ||
| + | |||
| + | ~~~bash | ||
| + | sed -i.bak -e 's/^[ ]\+/ | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | |||
