DEV Community

Didik Supriadi
Didik Supriadi

Posted on • Originally published at on

Packaging nanime in Fedora COPR

Over the last summer of 2015, I’ve been watching anime as an enjoyable entertainment. To watch anime, it forces me to watch video by streaming “on browser”. I found it is very annoying since video player provided by video streaming services is very awful.

Recently, I created nanime. I named it “nanime” because it currently only serves anime links from and since there are no other programs using it. This program will fetch videos of each anime episodes, provided the anime URL from is given.

In this article, I’ll cover and share how I…

  • Created the RPM SPEC file
  • Built the package in COPR
  • Found mistakes

Creating RPM SPEC file

I read about rpm packaging in Fedora Packaging Guidelines. It’s a good guide, though I end up reading rpm-packaging-guide since it has PDF version. The reason is only because I have my phone everywhere so that I can easily read PDF without opening my browser.

Since nanime is implemented with bash, I can easily implement the SPEC file. Anyway, it’s a very simple application at the first place.

Building package

First, I create the source package from SPEC file

rpmbuild -bs ~/rpmbuild/SPECS/nanime.spec

And then, I create the binary package

rpmbuild -bb ~/rpmbuild/SPECS/nanime.spec

Actually, I can also create both of them simultaneously

rpmbuild -ba ~/rpmbuild/SPECS/nanime.spec

Lastly, I can build my package in COPR service

copr-cli build nanime ~/rpmbuild/SRPMS/nanime-0.1-1.fc31.src.rpm

Finding mistakes

Fixing bugs

I didn’t test my code thoroughly before building the project in COPR causing a very hurtful slap on my face.

Signing package

Even though adding GPG sign to a package is not a must, It’s a good thing to do and nothing to lose anyway. rpm-packaging-guide also gives a good case where Signed-package is very useful.

Top comments (0)