[RPM] Fedora package

Support for Ubuntu and other Desktop Linux distributions
Post Reply
User avatar
rednoah
The Source
Posts: 17909
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

[RPM] Fedora package

Post by rednoah » 04 Apr 2019, 07:10

FileBot provides its own YUM repository, so you can install and upgrade FileBot via sudo dnf install filebot.


The installer/rpm.sh will add the repository and install FileBot for you:

Code: Select all

bash -xu <<< "$(curl -fsSL https://raw.githubusercontent.com/filebot/plugins/master/installer/rpm.sh)"


Alternatively, you can manually add the repository:

1. Add repository

Code: Select all

sudo dnf config-manager --add-repo https://raw.githubusercontent.com/filebot/plugins/master/yum/universal-jdk8.repo
2. Enable repository

Code: Select all

sudo dnf config-manager --set-enabled filebot --dump
3. Install dependencies

Code: Select all

sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-openjfx
sudo dnf install jna
sudo dnf install mediainfo p7zip p7zip-plugins
4. Install FileBot

Code: Select all

sudo dnf install filebot
:idea: Please read the FAQ and How to Request Help.

b2un0
Posts: 10
Joined: 09 Jun 2014, 10:41

Re: [RPM] Fedora package

Post by b2un0 » 10 May 2019, 13:58

Error on CentOS 7.

Code: Select all

  - nothing provides java-1.8.0-openjdk-openjfx needed by filebot-4.8.5-universal.jdk8.noarch
i doesn't understand why the .rpm package have a dependency on openjfx.
the .deb packages only recommends openjfx.

Im searching for 2 hours for a CentOS 7 Repo which provide the "java-1.8.0-openjdk-openjfx" as package - i give up.

User avatar
rednoah
The Source
Posts: 17909
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: [RPM] Fedora package

Post by rednoah » 10 May 2019, 14:19

The RPM package is tested on Fedora.

Since some of these dependency are optional, or can be provided by the user manually, Requires is not ideal, but since there's no Recommends AFAIK, this is what we've got:

Code: Select all

Requires:       java-1.8.0-openjdk
Requires:       java-1.8.0-openjdk-openjfx
Requires:       jna
Requires:       mediainfo
Requires:       p7zip
Requires:       p7zip-plugins

EDIT:

I've found some other key words in some other docs. I guess Recommends is possible. Will use Recommends for upcoming builds.
:idea: Please read the FAQ and How to Request Help.

b2un0
Posts: 10
Joined: 09 Jun 2014, 10:41

Re: [RPM] Fedora package

Post by b2un0 » 10 May 2019, 14:32

Okay, thanks. i will try Fedora for my Dockerfile..

*edit*

yes, this works, thank you!

User avatar
rednoah
The Source
Posts: 17909
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: [RPM] Fedora package

Post by rednoah » 24 Mar 2020, 04:50

rednoah wrote:
10 May 2019, 14:19
The RPM package is tested on Fedora.

Since some of these dependency are optional, or can be provided by the user manually, Requires is not ideal, but since there's no Recommends AFAIK, this is what we've got:

Code: Select all

Requires:       java-1.8.0-openjdk
Requires:       java-1.8.0-openjdk-openjfx
Requires:       jna
Requires:       mediainfo
Requires:       p7zip
Requires:       p7zip-plugins
Using Recommends now leads to users not installing the recommended dependencies:
* viewtopic.php?t=11605
* viewtopic.php?t=11569
:idea: Please read the FAQ and How to Request Help.

Idu1p
Posts: 7
Joined: 02 Apr 2020, 22:46

Re: [RPM] Fedora package

Post by Idu1p » 02 Apr 2020, 22:58

Heads up: the version 4.9 RPM does not contain a "filebot" file anymore. The install section contains it, but the file is missing.

Code: Select all

$ rpm -ql filebot | grep filebot$
/etc/bash_completion.d/filebot
/usr/share/filebot

$ rpm -q --scripts filebot
postinstall scriptlet (using /bin/sh):
ln -sf /usr/share/filebot/bin/filebot.sh /usr/bin/filebot
ln -sf /usr/lib/java/jna.jar /usr/share/filebot/jar/jna.jar
preuninstall scriptlet (using /bin/sh):
rm -f /usr/bin/filebot
rm -f /usr/share/filebot/jar/jna.jar
System info:

Code: Select all

$ /usr/share/filebot/bin/filebot.sh -script fn:sysinfo
FileBot 4.9.0 (r7234)
JNA Native: groovy.lang.MissingPropertyException: No such property: com for class: Script1
Possible solutions: log, now
MediaInfo: java.lang.NoClassDefFoundError: Lcom/sun/jna/Pointer;
p7zip: p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,8 CPUs Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz (306A9),ASM,AES-NI)
unrar: java.io.IOException: Cannot run program "unrar": error=2, No such file or directory
Chromaprint: java.io.IOException: Cannot run program "fpcalc": error=2, No such file or directory
Extended Attributes: java.lang.NoClassDefFoundError: com/sun/jna/Platform
Unicode Filesystem: OK
Script Bundle: 2020-03-16 (r625)
Groovy: 3.0.2
JRE: OpenJDK Runtime Environment 1.8.0_242
JVM: groovy.lang.MissingPropertyException: No such property: com for class: Script1
Possible solutions: log, now
CPU/MEM: 8 Core / 3.7 GB Max Memory / 106 MB Used Memory
OS: Linux (amd64)
HW: Linux server1.internal 5.5.13-200.fc31.x86_64 #1 SMP Wed Mar 25 21:55:30 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
STORAGE: btrfs [/] @ 2.0 TB | btrfs [/mnt/pool1] @ 12 TB
DATA: /home/tvuser/.filebot
Package: RPM
License: FileBot License xxxxxxx (Valid-Until: 2020-09-11)
Done ヾ(@⌒ー⌒@)ノ
I can run the script directly for some more information. This may or may not be useful to you, but I thought I might include it.
Console output snippet:

Code: Select all

Processed 0 files
com/sun/jna/Platform
java.lang.NoClassDefFoundError: com/sun/jna/Platform
	at net.filebot.StandardRenameAction$6.rename(Unknown Source)
	at net.filebot.StandardRenameAction$2.rename(Unknown Source)
	at net.filebot.cli.CmdlineOperations.renameAll(Unknown Source)
	at net.filebot.cli.CmdlineOperations.renameSeries(Unknown Source)
	at net.filebot.cli.CmdlineOperations.rename(Unknown Source)
	at net.filebot.cli.ArgumentProcessor.runCommand(Unknown Source)
	at net.filebot.cli.ArgumentProcessor.run(Unknown Source)
	at net.filebot.Main.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.sun.jna.Platform
	... 8 more

Error (o_O)

User avatar
rednoah
The Source
Posts: 17909
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: [RPM] Fedora package

Post by rednoah » 03 Apr 2020, 08:32

Looks like you didn't install all the dependencies:

Code: Select all

java.lang.NoClassDefFoundError: com/sun/jna/Platform

What does the console output say when you use the automated install script?
rednoah wrote:
04 Apr 2019, 07:10
The installer/rpm.sh will add the repository and install FileBot for you:

Code: Select all

bash -xu <<< "$(curl -fsSL https://raw.githubusercontent.com/filebot/plugins/master/installer/rpm.sh)"
:idea: Please read the FAQ and How to Request Help.

Idu1p
Posts: 7
Joined: 02 Apr 2020, 22:46

Re: [RPM] Fedora package

Post by Idu1p » 03 Apr 2020, 13:27

Thanks for looking at this. I used the repository to install. The repo is available and enabled:

Code: Select all

$ dnf repoinfo filebot
Last metadata expiration check: 0:05:23 ago on Fri 03 Apr 2020 08:27:30 AM EDT.

Repo-id            : filebot
Repo-name          : filebot
Repo-status        : enabled
Repo-revision      : 1584805661
Repo-updated       : Sat 21 Mar 2020 11:47:41 AM EDT
Repo-pkgs          : 1
Repo-available-pkgs: 1
Repo-size          : 25 M
Repo-baseurl       : https://get.filebot.net/rpm/universal-jdk8/noarch
Repo-expire        : 172,800 second(s) (last: Thu 02 Apr 2020 06:33:23 PM EDT)
Repo-filename      : /etc/yum.repos.d/universal-jdk8.repo
Total packages: 1

Previously, the app worked. I have all the listed deps from the script installed:

Code: Select all

$ dnf list installed | grep -E "openjdk|jna|mediainfo|7zip"
java-1.8.0-openjdk.x86_64                         1:1.8.0.242.b08-0.fc31                 @updates
java-1.8.0-openjdk-headless.x86_64                1:1.8.0.242.b08-0.fc31                 @updates
java-1.8.0-openjdk-openjfx.x86_64                 1:1.8.0.242.b08-0.fc31                 @updates
jna.x86_64                                        5.4.0-1.fc31                           @fedora
libmediainfo.x86_64                               19.09-1.fc31                           @fedora
mediainfo.x86_64                                  19.09-1.fc31                           @fedora
p7zip.x86_64                                      16.02-15.fc31                          @fedora
p7zip-plugins.x86_64                              16.02-15.fc31                          @fedora
The symlinks that the %post tries to create are not present, though the jna pacakge is installed:

Code: Select all

$ sudo find /usr/share/ -name *jna.jar*
/usr/share/java/jna.jar
$ sudo find /usr/lib/ -name *jna.jar*
/usr/lib/java/jna/jna.jar
/usr/lib/java/jna.jar
$ sudo find /usr/bin/ -name *filebot*
I do not have the source RPM, but looking at the scripts I think I would suggest moving the symlinks into the %install section, rather than in %post. The additional benefit is that you no longer need the %preun either, because those symlinks are owned by the package. If it's uninstalled, they go with it.

Code: Select all

%install
mkdir -p %{buildroot}/usr/share/filebot
ln -sf /usr/share/filebot/bin/filebot.sh %{buildroot}/usr/bin/filebot
ln -sf /usr/lib/java/jna.jar %{buildroot}/usr/share/filebot/jar/jna.jar

User avatar
rednoah
The Source
Posts: 17909
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: [RPM] Fedora package

Post by rednoah » 03 Apr 2020, 13:34

I'm no expert on RPM packaging so I'll update the spec file according to your recommendation:

Code: Select all

Name:           @{package.name}
Version:        @{application.version}
Release:        universal.jdk8
Summary:        @{package.synopsis}
License:        Proprietary

BuildArch:      noarch

Recommends:     java-1.8.0-openjdk
Recommends:     java-1.8.0-openjdk-openjfx
Requires:       jna
Recommends:     mediainfo
Recommends:     p7zip
Recommends:     p7zip-plugins


%description
@{package.description}


%install
cp -rvf %{src}/usr %{src}/etc %{buildroot}
ln -sf /usr/share/filebot/bin/filebot.sh %{buildroot}/usr/bin/filebot
ln -sf /usr/lib/java/jna.jar %{buildroot}/usr/share/filebot/jar/jna.jar


%files
/*
:idea: Please read the FAQ and How to Request Help.

Idu1p
Posts: 7
Joined: 02 Apr 2020, 22:46

Re: [RPM] Fedora package

Post by Idu1p » 03 Apr 2020, 13:45

Would you like to supply the RPM to me to test before deploying? If you supply the SRPM, I can test (and tune as needed) as well. You can build both packages using `rpmbuild -ba` and the source will be placed into SRPMS instead the usual RPM directory.

User avatar
rednoah
The Source
Posts: 17909
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: [RPM] Fedora package

Post by rednoah » 03 Apr 2020, 13:46

Yes. Build in progress. I'll update when it's done.


EDIT:

Code: Select all

[exec] + ln -sf /usr/share/filebot/bin/filebot.sh /rpm/BUILDROOT/filebot-4.9.1-universal.jdk8.x86_64/usr/bin/filebot
     [exec] ln: failed to create symbolic link '/rpm/BUILDROOT/filebot-4.9.1-universal.jdk8.x86_64/usr/bin/filebot': No such file or directory
     [exec] error: Bad exit status from /var/tmp/rpm-tmp.knnhfj (%install)
     [exec]     Bad exit status from /var/tmp/rpm-tmp.knnhfj (%install)
Can I create dangling symlinks in %install? I don't really have a source package. I only have binaries that I package up in a docker container with the RPM toolchains.


EDIT:

Trying again with this:

Code: Select all

%install
cp -rvf %{src}/usr %{src}/etc %{buildroot}
mkdir -p /usr/share/filebot/bin
ln -sf /usr/share/filebot/bin/filebot.sh %{buildroot}/usr/bin/filebot
mkdir -p /usr/lib/java
touch /usr/lib/java/jna.jar
ln -sf /usr/lib/java/jna.jar %{buildroot}/usr/share/filebot/jar/jna.jar

That seems to work:

Code: Select all

%install
cp -rvf %{src}/usr %{src}/etc %{buildroot}
ln -sf /usr/lib/java/jna.jar %{buildroot}/usr/share/filebot/jar/jna.jar
mkdir -p %{buildroot}/usr/bin && ln -sf /usr/share/filebot/bin/filebot.sh %{buildroot}/usr/bin/filebot
:idea: Please read the FAQ and How to Request Help.

User avatar
rednoah
The Source
Posts: 17909
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: [RPM] Fedora package

Post by rednoah » 03 Apr 2020, 16:49

Idu1p wrote:
03 Apr 2020, 13:45
Would you like to supply the RPM to me to test before deploying? If you supply the SRPM, I can test (and tune as needed) as well. You can build both packages using `rpmbuild -ba` and the source will be placed into SRPMS instead the usual RPM directory.
I've uploaded a new RPM, please give it a spin:
https://get.filebot.net/filebot/BETA/Fi ... l-jdk8.rpm
:idea: Please read the FAQ and How to Request Help.

Idu1p
Posts: 7
Joined: 02 Apr 2020, 22:46

Re: [RPM] Fedora package

Post by Idu1p » 04 Apr 2020, 03:12

Thanks! That looks pretty good. One more question: do you have a %files section with /usr/bin?

Here's where it errors out:

Code: Select all

Error: Transaction test error:
  file /usr/bin from install of filebot-4.9.1-universal.jdk8.noarch conflicts with file from package filesystem-3.12-2.fc31.x86_64
 
If you have the following, you can delete that line, as the directory should already exist.

Code: Select all

%files
/usr/bin

User avatar
rednoah
The Source
Posts: 17909
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: [RPM] Fedora package

Post by rednoah » 04 Apr 2020, 05:15

I had this:

Code: Select all

%files
/*
Trying this instead:

Code: Select all

%files
/usr/share/*
/etc/*
/usr/bin/*
EDIT: FileBot r7332 has been uploaded. Please give it a try.
:idea: Please read the FAQ and How to Request Help.

Idu1p
Posts: 7
Joined: 02 Apr 2020, 22:46

Re: [RPM] Fedora package

Post by Idu1p » 04 Apr 2020, 13:10

I can confirm that the new package installs. Nice work and thanks!

Idu1p
Posts: 7
Joined: 02 Apr 2020, 22:46

Re: [RPM] Fedora package

Post by Idu1p » 04 Apr 2020, 13:17

I spoke too soon. The package installs, but now the symlink for filebot is missing. The other symlink, for jna.jar, is still there.

User avatar
rednoah
The Source
Posts: 17909
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: [RPM] Fedora package

Post by rednoah » 04 Apr 2020, 18:29

Any ideas? RPM makes even easy things difficult. I'll revert things and leave it as it is otherwise, as it seemed to work at least for install if not for upgrade.
:idea: Please read the FAQ and How to Request Help.

Idu1p
Posts: 7
Joined: 02 Apr 2020, 22:46

Re: [RPM] Fedora package

Post by Idu1p » 04 Apr 2020, 19:57

Could you post a copy of the RPM SPEC file?

User avatar
rednoah
The Source
Posts: 17909
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: [RPM] Fedora package

Post by rednoah » Yesterday, 06:39

FileBot r7342 uses this spec:

Code: Select all

Name:           @{package.name}
Version:        @{application.version}
Release:        universal.jdk8
Summary:        @{package.synopsis}
License:        Proprietary

BuildArch:      noarch

Recommends:     java-1.8.0-openjdk
Recommends:     java-1.8.0-openjdk-openjfx
Requires:       jna
Recommends:     mediainfo
Recommends:     p7zip
Recommends:     p7zip-plugins


%description
@{package.description}


%install
cp -rvf %{src}/usr %{src}/etc %{buildroot}


%files
/*


%post
ln -sf /usr/share/filebot/bin/filebot.sh /usr/bin/filebot
ln -sf /usr/lib/java/jna.jar /usr/share/filebot/jar/jna.jar


%preun
[ $1 -eq 0 ]; then
    rm -f /usr/bin/filebot
    rm -f /usr/share/filebot/jar/jna.jar
fi
:idea: %preun now takes into account that RPM calls %preun on pre-upgrade but not %post on post-upgrade.
:idea: Please read the FAQ and How to Request Help.

Post Reply