Fedora SRPM: Banner

(Build Series)

1 Overview

2 Prepare Lab

host$ git clone https://github.com/thachmpham/lab.git
host$ cd build/rpm
host$ docker compose build
host$ docker compose up --detach
host$ docker exec -it rpm bash

3 Banner

3.1 Clone

$ git clone https://src.fedoraproject.org/rpms/banner.git
$ cd banner
$ git switch f44

$ tree
.
├── banner.spec
└── sources
$ spectool -g banner.spec
Downloaded: banner-1.3.6.tar.gz

3.2 Prepare

$ cp banner-1.3.6.tar.gz ~/rpmbuild/SOURCES/

# extract ~/rpmbuild/SOURCES/ to ~/rpmbuild/BUILD
$ rpmbuild -bp banner.spec

$ tree ~/rpmbuild/
/root/rpmbuild/
├── BUILD
   └── banner-1.3.6-build
       └── banner-1.3.6
           ├── Makefile.in
           ├── banner.c
           └── configure
├── RPMS
├── SOURCES
    └── banner-1.3.6.tar.gz

3.3 Build

$ rpmbuild -bb --noprep --noclean banner.spec

$ tree ~/rpmbuild/
/root/rpmbuild/
├── BUILD
   └── banner-1.3.6-build
       └── banner-1.3.6
           ├── Makefile.in
           ├── banner.c
           └── configure
├── RPMS
   └── aarch64
       ├── banner-1.3.6-1.fc44.aarch64.rpm
       ├── banner-debuginfo-1.3.6-1.fc44.aarch64.rpm
       └── banner-debugsource-1.3.6-1.fc44.aarch64.rpm
├── SOURCES
    └── banner-1.3.6.tar.gz

3.4 Install

$ rpm -iv ~/rpmbuild/RPMS/aarch64/banner-1.3.6-1.fc44.aarch64.rpm
banner-1.3.6-1.fc44.aarch64

$ rpm -ql banner-1.3.6-1.fc44.aarch64
/usr/bin/banner
/usr/share/doc/banner
/usr/share/man/man1/banner.1.gz

3.5 Run

$ /usr/bin/banner 'hello'

#     #  #######  #        #        #######
#     #  #        #        #        #     #
#     #  #        #        #        #     #
#######  #####    #        #        #     #
#     #  #        #        #        #     #
#     #  #        #        #        #     #
#     #  #######  #######  #######  #######

$ man banner
NAME
       banner - prints a short string to the console in very large letters

4 References