LTFS - build for rocky 8.10 & rocky 9

Hello

Hello

I am struggling to build the latest version of the LTFS 2.5.1 drivers for Rocky 8.10 & 9.

I cannot find a rpm for LTFS 2.5.1 (which seems strange to me, as it is an industry standard LTO format) : does anyone know where this might be ?

I am trying to build the latest version … but I cannot find in dnf

  1. libxml-2.0 2.6.16 or later
  2. icu4c 4.8 or later

On the configure command …

checking for pkg-config... /usr/bin/pkg-config
checking for genrb... no
configure: error: genrb was not found

Any help is most welcome. Thank you

Well, according to https://pkgs.org/search/?q=ltfs no it doesn’t exist other than for Debian-based systems. Nobody has packaged it for RHEL, Rocky, Alma, etc.

As for the packages:

root@rocky8:~# dnf list libxml2*
Last metadata expiration check: 0:52:12 ago on Wed 17 Dec 2025 08:50:23 AM CET.
Installed Packages
libxml2.x86_64                                           2.9.7-21.el8_10.3                                     @baseos  
Available Packages
libxml2.i686                                             2.9.7-21.el8_10.3                                     baseos   
libxml2-devel.i686                                       2.9.7-21.el8_10.3                                     appstream
libxml2-devel.x86_64                                     2.9.7-21.el8_10.3                                     appstream

clearly shows that libxml is available. Assuming libicu:

root@rocky8:~# dnf list libicu*
Last metadata expiration check: 0:53:27 ago on Wed 17 Dec 2025 08:50:23 AM CET.
Available Packages
libicu.i686                                                 60.3-2.el8_1                                          baseos
libicu.x86_64                                               60.3-2.el8_1                                          baseos
libicu-devel.i686                                           60.3-2.el8_1                                          baseos
libicu-devel.x86_64                                         60.3-2.el8_1                                          baseos
libicu-doc.noarch                                           60.3-2.el8_1                                          baseos
libicu50.x86_64                                             50.2-5.el8                                            epel 

as you can see a version is available in EPEL repository as well if needed. If you haven’t enabled that, then:

dnf install -y epel-release

same commands will work for Rocky 9 as well.

And for the genrb item:

root@rocky8:~# dnf provides */genrb
Last metadata expiration check: 0:55:29 ago on Wed 17 Dec 2025 08:50:23 AM CET.
icu-60.3-2.el8_1.x86_64 : International Components for Unicode
Repo        : baseos
Matched from:
Filename    : /usr/bin/genrb

shows a package called icu basically if you look at the build requirements, and look at the differences between Linux and say FreeBSD, you can see that under Linux they mention icu4c, but under FreeBSD they mention icu. Would probably be easier if they actually listed the package names correctly in their documentation rather than just generalising and making it slightly more difficult for people to find them.

Also, finding packages is relatively easy, if you tried:

dnf list libxml-2

and found nothing, then we need to work on the main common part, so xml.

dnf list \*xml\*

will list all packages that have xml in their name. You can do the same with icu as well, and at that point, you have a list, and can choose the appropriate one to install. And if you know you are missing something like genrb, then you use the provides example above where I showed that and how it found the package that has that binary. Or we can use the more common libxml part, so:

dnf list libxml*

and we would have seen that libxml2 packages exist rather than libxml-2. Failing that, a search on pkgs.org would also give results on what potentially exists or not but again providing the correct filename, or part of filename like with the dnf command examples above.

Thank you so much for your advice. I’ve asked the dev if he cannot build a RHEL friendly rpm … but I’m waiting for a reply.

1 Like

The LTFS dev supplied me a script that he wrote to create a RHEL 9 vm that runs LTFS.

I douwnloaded the list of dependencies and followed his instructions to “make” the LTFS app. But I thought it would be far more useful to build a rpm. I have started reading about creating rpms, I cannot work out if what I have below is what the necessary to create one.

Any thoughts are most welcome.

FROM rockylinux:9

# Install EPEL repository for additional packages
RUN dnf install -y epel-release && \
    dnf update -y

# Enable CRB (CodeReady Builder) repository for development packages
RUN dnf install -y dnf-plugins-core && \
    dnf config-manager --set-enabled crb

# Install build dependencies for LTFS
RUN dnf install -y \
    autoconf \
    automake \
    libtool \
    make \
    gcc \
    pkg-config \
    fuse-devel \
    fuse \
    libxml2-devel \
    libicu-devel \
    icu \
    libuuid-devel \
    net-snmp-devel \
    diffutils

# Install development and debugging tools
RUN dnf install -y \
    gdb \
    valgrind \
    git \
    sudo

# Install GitHub CLI
RUN dnf install -y 'dnf-command(config-manager)' && \
    dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo && \
    dnf install -y gh

# Clean up dnf cache
RUN dnf clean all

# Create non-root user
ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=$USER_UID

RUN groupadd --gid $USER_GID $USERNAME && \
    useradd --uid $USER_UID --gid $USER_GID -m $USERNAME && \
    echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/$USERNAME && \
    chmod 0440 /etc/sudoers.d/$USERNAME

USER $USERNAME
WORKDIR /workspaces

This post is a bit muddled. I think you’re saying the LTFS people offered you a “script” to create a virtual machine that’s suitable for running LTFS, but do you really want to run it from a virtual machine; I’m guessing not, unless your data (and tape device) are available via the virtual machine. You then talk about creating an ‘rpm’, but you really need to build it on it’s own first, to understand if and where the build goes wrong. Some of those dependencies are already in RL8 and RL9.

It’s using AutoTools, it has configure.ac and Makefile.am, so you’d normally create a build directory, then try to run it as standard user.

autoreconf -i
echo $?

look carefully at the screen for any issues, and note the retval at the end

The closest I can find is ALT Linux has LTFS RPMs. You can probably grab the src.rpm for ALT and (with some significant tweaking) rebuild it for Rocky Linux:

http://mirror.yandex.ru/altlinux/p11/branch/x86_64/SRPMS.classic/ltfs-3.5.0-alt1.src.rpm

It will have sources, spec file, etc in it. It will probably at least need tweaking of the dependencies in the spec to match the package names for EL instead of the ALT ones. It’s likely also going to have ALT-specific macros in the spec file that will need to be changed to work with EL.

I recommend using Fedora Mock to do the actual build.

To be honest, I have no idea what is involved in creating a rpm. What I deduce is that the code above has what is necessary to install this version of LTFS and therefore it has what is necessary to build a rpm. But it is really only a naive deduction.

My problem is that LTFS 2.4 install rpm version on the IBM download site uses old python that does not work fully with Rocky 8 or 9. The LTFS 2.5 version I am interested in does seem to work but there is no rpm package that I can find. So thought rather naively that I could “adapt” the RHEL script above. I also thought that LTFS LTO format was quite popular in the IT world, but I am coming to the conclusion that it is rather niche.

LTO format is popular. It probably just isn’t popular mounting it as a filesystem. Normally people would just browse and restore the files using backup software, rather than mounting the tapes as a filesystem.

Maybe whoever packaged the older versions will package the newer version sometime in the near future - whoever that was.

I’m doing the work for you. I’ll get some RPMs up shortly that you can use.

1 Like

Thank you so much. I am very grateful. I will share it with the LTFS dev and hopefully others too.

I work in the Audio Visual world. LTFS is standard archiving format in my industry because the tapes are autonomous. Like a hard drive, it has a writable directory at the head of the tape. Therefore, no need for a backup software. It is not a perfect solution; it is not designed for incremental backups and can be quite slow. It’s greatest failing is fragmentation. But these are small prices to pay to have a very stable format that mounts as a hard drive on any OS. The tapes can be large capacity and very reasonable. The big downside is the exorbitant cost of LTO drives!!! If you have large amounts of data to archive for future proofing, LTFS is definitely a cheap and secure option to investigate.

Packages are built for el8,9,10 and I’ve placed them in the GhettoForge testing repo, grab the appropriate ones for your version of Rocky Linux and arch:

Usage instructions for GhettoForge is at:

Please let me know if these packages work, thanks.

Thank you so much …

Here is the result that I get for Rocky 9.7

[admin@LOWROCK9 LTFS]$ sudo rpm -i ltfs-libs-3.5.0-2.gf.el9.x86_64.rpm 
[sudo] password for admin: 
warning: ltfs-libs-3.5.0-2.gf.el9.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a5a06004: NOKEY
[admin@LOWROCK9 LTFS]$ sudo rpm -i ltfs-devel-3.5.0-2.gf.el9.x86_64.rpm 
warning: ltfs-devel-3.5.0-2.gf.el9.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a5a06004: NOKEY
[admin@LOWROCK9 LTFS]$ sudo rpm -i ltfs-3.5.0-2.gf.el9.x86_64.rpm 
warning: ltfs-3.5.0-2.gf.el9.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a5a06004: NOKEY
error: Failed dependencies:
	lsb-init >= 5.0 is needed by ltfs-3.5.0-2.gf.el9.x86_64
[admin@LOWROCK9 LTFS]$ sudo dnf --nogpg install https://mirror.ghettoforge.net/distributions/gf/gf-release-latest.gf.el9.noarch.rpm
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Last metadata expiration check: 0:11:04 ago on Sun 04 Jan 2026 07:21:30 AM CET.
gf-release-latest.gf.el9.noarch.rpm              11 kB/s | 9.2 kB     00:00    
Dependencies resolved.
================================================================================
 Package           Architecture  Version              Repository           Size
================================================================================
Installing:
 gf-release        noarch        9-15.gf.el9          @commandline        9.2 k

Transaction Summary
================================================================================
Install  1 Package

Total size: 9.2 k
Installed size: 3.1 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : gf-release-9-15.gf.el9.noarch                          1/1 
  Verifying        : gf-release-9-15.gf.el9.noarch                          1/1 
Installed products updated.

Installed:
  gf-release-9-15.gf.el9.noarch                                                 

Complete!
[admin@LOWROCK9 LTFS]$ sudo rpm -i ltfs-libs-3.5.0-2.gf.el9.x86_64.rpm 
warning: ltfs-libs-3.5.0-2.gf.el9.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a5a06004: NOKEY
	package ltfs-libs-3.5.0-2.gf.el9.x86_64 is already installed
[admin@LOWROCK9 LTFS]$ sudo rpm -i ltfs-devel-3.5.0-2.gf.el9.x86_64.rpm 
warning: ltfs-devel-3.5.0-2.gf.el9.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a5a06004: NOKEY
	package ltfs-devel-3.5.0-2.gf.el9.x86_64 is already installed
[admin@LOWROCK9 LTFS]$ sudo rpm -i ltfs-3.5.0-2.gf.el9.x86_64.rpm 
warning: ltfs-3.5.0-2.gf.el9.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a5a06004: NOKEY
error: Failed dependencies:
	lsb-init >= 5.0 is needed by ltfs-3.5.0-2.gf.el9.x86_64
ltfs -V
LTFS version 2.5.0.0 (Prelim).
LTFS Format Specification version 2.4.0.

Firstly, I presume that your naming the packages 3.5 is a typo. :slight_smile:

I don’t know what the key does, but like looks like your package is installed

Also, concerning the error

lsb-init >= 5.0

https://www.reddit.com/r/RockyLinux/comments/wjlh0s/need_to_install_redhatlsbcore_on_rocky_linux_9/

As mentioned earlier it’s a rebuild of the Alt Linux ltfs packages. The sources are from them, but they point to this website:

https://support.hpe.com/connect/s/softwaredetails?language=en_US&softwareId=MTX_5d96a1ab949d415dab03d26ae1&tab=releaseNotes

The version there is 3.5 which is correct. I believe you have some other ltfs installed which is showing the older version, possibly another implementation of it.

I’ll fix the lsb-init dependancy issue and push out a new release, probably tomorrow.

OK. I understand better. Your source is the HP HPE StoreOpen Software 3.5.0 implementation of LTFS and concerns only HP’s drives and autoloaders as per the link you supplied. It is not the more generic IBM version that aligns more with the SNIA generic standard.

https://www.snia.org/sites/default/files/technical_work/LTFS/LTFS_Format_v2.5_Technical_Position.pdf

The LTFS implimentation I am looking to build is

https://github.com/LinearTapeFileSystem/ltfs/wiki/Build-Environments

as it covers most drives.

I’m sorry for this confusion.

That’s okay, I’ll look at that tomorrow and see how difficult it is to build.

Below is a zip of the 3x IBM LTFS 2.4.8 RPMs for Rocky 9. The install goes primarily to the opt folder, which I prefer to the HP distribution. Maybe this can inspire …

Can you get the .src.rpm file?