Page 37 of 41

Re: [RPM] Fedora package

Posted: 24 Mar 2020, 04:50
by rednoah
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

Re: Conditional Structures (if-then-else)

Posted: 24 Mar 2020, 05:41
by aryanprincesanty
Can someone help me with making an if else condition for {group}? I have movies from 2 main groups, Tigole and YTS (YTS.LT, YTS.MX, YTS.AM). I want my files to look like:

Code: Select all

 8 Mile (2002) [1080p BLURAY x265 10-bit AAC 5.1 QxR] 

Code: Select all

 Ad Astra (2019) [1080p WEBRIP x264 8-bit AAC 2.0 YTS.LT] 
I want it such that if file contains Tigole or QxR, I want it to have Tigole in filename. If file contains YTS.LT, YTS.MX, YTS.AM or nothing, I want it to have only YTS in filename.

Re: Conditional Structures (if-then-else)

Posted: 24 Mar 2020, 05:57
by rednoah
e.g. if file name contains Tigole, yield Tigole, otherwise yield YTS:

Code: Select all

fn =~ /Tigole|QxR/ ? 'Tigole' : 'YTS'

Re: Plex Naming Schemes

Posted: 29 Mar 2020, 16:24
by Ashaneil
Is there a full list of all the {plex} components or is there a way for me to "see" the component choices - kind of like MediaInfo?

Re: Plex Naming Schemes

Posted: 29 Mar 2020, 16:28
by rednoah
Ashaneil wrote: 29 Mar 2020, 16:24 Is there a full list of all the {plex} components or is there a way for me to "see" the component choices - kind of like MediaInfo?
What components are you looking for?

All components relevant to {plex} are listed as examples here. A large number of properties and methods are inherited from the File class but those are largely irrelevant for {plex} related use cases.

:idea: {plex.properties} can be used see all properties. This is a Groovy thing and applies to all classes and isn't specific to {plex} or the File class.

Re: [RPM] Fedora package

Posted: 02 Apr 2020, 22:58
by Idu1p
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)

Re: [RPM] Fedora package

Posted: 03 Apr 2020, 08:32
by rednoah
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)"

Re: [RPM] Fedora package

Posted: 03 Apr 2020, 13:27
by Idu1p
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

Re: [RPM] Fedora package

Posted: 03 Apr 2020, 13:34
by rednoah
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
/*

Re: [RPM] Fedora package

Posted: 03 Apr 2020, 13:45
by Idu1p
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.

Re: [RPM] Fedora package

Posted: 03 Apr 2020, 13:46
by rednoah
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

Re: [RPM] Fedora package

Posted: 03 Apr 2020, 16:49
by rednoah
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

Re: [RPM] Fedora package

Posted: 04 Apr 2020, 03:12
by Idu1p
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

Re: [RPM] Fedora package

Posted: 04 Apr 2020, 05:15
by rednoah
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.

Re: [RPM] Fedora package

Posted: 04 Apr 2020, 13:10
by Idu1p
I can confirm that the new package installs. Nice work and thanks!

Re: [RPM] Fedora package

Posted: 04 Apr 2020, 13:17
by Idu1p
I spoke too soon. The package installs, but now the symlink for filebot is missing. The other symlink, for jna.jar, is still there.

Re: [RPM] Fedora package

Posted: 04 Apr 2020, 18:29
by rednoah
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.

Re: [RPM] Fedora package

Posted: 04 Apr 2020, 19:57
by Idu1p
Could you post a copy of the RPM SPEC file?

Re: [RPM] Fedora package

Posted: 05 Apr 2020, 06:39
by rednoah
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.

Re: [BTC] Purchase FileBot with Crypto Currency

Posted: 06 Apr 2020, 20:06
by Nabzed
I want to pay with either bitcoin or monero. Sent PM as well. Thanks

Re: Plex Naming Schemes

Posted: 08 Apr 2020, 09:31
by nex0r
I'm using {plex.name} which is awesome as it sorts out difficult names like 24 has with colon's etc.

24 - S02E01 - Day 2 - 8.00 A.M. - 9.00 A.M.mkv

Is there a simple way to force the season and episode characters to lower case using {plex.name}?

24 - s02e01 - Day 2 - 8.00 A.M. - 9.00 A.M.mkv

Re: Plex Naming Schemes

Posted: 08 Apr 2020, 11:00
by rednoah
nex0r wrote: 08 Apr 2020, 09:31 Is there a simple way to force the season and episode characters to lower case using {plex.name}?

Code: Select all

24 - s02e01 - Day 2 - 8.00 A.M. - 9.00 A.M.mkv
There is a simple way of making everything lower case, including series name and episode title. There is no simple way to make just the S00E00 part lower case. The not-so-simple way would be to write your own custom format instead of relying on {plex} entirely.

Re: Plex Naming Schemes

Posted: 08 Apr 2020, 12:14
by nex0r
Ok thanks for the reply. I thought I'd ask before going down the custom format route.

Re: Plex Naming Schemes

Posted: 08 Apr 2020, 14:08
by kim
simple ;)

Code: Select all

{plex.name.replaceAll(/S(\d{1,3})E(\d{1,3})/, 's$1e$2')}

Re: Plex Naming Schemes

Posted: 14 Apr 2020, 10:38
by hstorey219
Hi There,
I thought I had this working, but my format is still creating folders inside the main folder.
For example:
Media/Movies/Girls Trip (2017)
Then inside the folder Girls Trip (2017) is the video, but when I run Filebot, it will create this Media/Movies/Girls Trip (2017)/Girls trip (2017)
I just want Filebot to rename the folder and video file into Plex format without creating any folders.

Code: Select all

filebot -script fn:amc "W:Media/" --action move --format {plex.tail} -non-strict --def excludeList=W:/media/amc.txt