Tag Archive for 'Linux'

Cross-compiling a PowerPC64 LE kernel and hitting a GCC bug

Being new at OzLabs I’m dipping my toes into various projects and having a play with PowerPC and so I thought I’d cross-compile the Linux kernel on Fedora. Traditionally PowerPC has been big endian, however it also supports little endian so I wanted to build all the things.

Fedora uses a single cross toolchain that can build all four variants, whereas Debian/Ubuntu splits this out into two different toolchains (a BE and an LE one).

Install dependencies in Fedora:
$ sudo dnf install gcc make binutils-powerpc64-linux-gnu gcc-powerpc64-linux-gnu gcc-c++-powerpc64-linux-gnu bc ncurses-devel

Get the v4.2 kernel:
$ git clone https://github.com/torvalds/linux.git --branch v4.2 --depth 1 && cd linux

Successful big endian build of the kernel, using the default config for pseries:
$ ARCH=powerpc CROSS_COMPILE=powerpc64-linux-gnu- make pseries_defconfig
$ ARCH=powerpc CROSS_COMPILE=powerpc64-linux-gnu- make -j$(nproc)
# clean after success
$ ARCH=powerpc CROSS_COMPILE=powerpc64-linux-gnu- make clean
$ ARCH=powerpc CROSS_COMPILE=powerpc64-linux-gnu- make mrproper

Building a little endian kernel however, resulted in a linker problem:
$ ARCH=powerpc CROSS_COMPILE=powerpc64-linux-gnu- make pseries_defconfig
$ ARCH=powerpc CROSS_COMPILE=powerpc64-linux-gnu- make menuconfig
# change architecture to little endian:
# Endianness selection (Build big endian kernel) --->
# (X) Build little endian kernel
$ ARCH=powerpc CROSS_COMPILE=powerpc64-linux-gnu- make V=1

Here was the result:
powerpc64-linux-gnu-gcc -mlittle-endian -mno-strict-align -m64 -Wp,-MD,arch/powerpc/kernel/vdso64/.vdso64.so.dbg.d -nostdinc -isystem /usr/lib/gcc/powerpc64-linux-gnu/5.2.1/include -I./arch/powerpc/include -Iarch/powerpc/include/generated/uapi -Iarch/powerpc/include/generated -Iinclude -I./arch/powerpc/include/uapi -Iarch/powerpc/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -Iarch/powerpc -DHAVE_AS_ATHIGH=1 -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -msoft-float -pipe -Iarch/powerpc -mtraceback=no -mabi=elfv2 -mcmodel=medium -mno-pointers-to-nested-functions -mcpu=power7 -mno-altivec -mno-vsx -mno-spe -mspe=no -funit-at-a-time -fno-dwarf2-cfi-asm -mno-string -Wa,-maltivec -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -fno-var-tracking-assignments -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DCC_HAVE_ASM_GOTO -Werror -shared -fno-common -fno-builtin -nostdlib -Wl,-soname=linux-vdso64.so.1 -Wl,--hash-style=sysv -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(vdso64.so)" -D"KBUILD_MODNAME=KBUILD_STR(vdso64.so)" -Wl,-T arch/powerpc/kernel/vdso64/vdso64.lds arch/powerpc/kernel/vdso64/sigtramp.o arch/powerpc/kernel/vdso64/gettimeofday.o arch/powerpc/kernel/vdso64/datapage.o arch/powerpc/kernel/vdso64/cacheflush.o arch/powerpc/kernel/vdso64/note.o arch/powerpc/kernel/vdso64/getcpu.o -o arch/powerpc/kernel/vdso64/vdso64.so.dbg
/usr/bin/powerpc64-linux-gnu-ld: arch/powerpc/kernel/vdso64/sigtramp.o: file class ELFCLASS64 incompatible with ELFCLASS32
/usr/bin/powerpc64-linux-gnu-ld: final link failed: File in wrong format
collect2: error: ld returned 1 exit status
arch/powerpc/kernel/vdso64/Makefile:26: recipe for target 'arch/powerpc/kernel/vdso64/vdso64.so.dbg' failed
make[2]: *** [arch/powerpc/kernel/vdso64/vdso64.so.dbg] Error 1
scripts/Makefile.build:403: recipe for target 'arch/powerpc/kernel/vdso64' failed
make[1]: *** [arch/powerpc/kernel/vdso64] Error 2
Makefile:949: recipe for target 'arch/powerpc/kernel' failed
make: *** [arch/powerpc/kernel] Error 2

All those files were 64bit, however:
arch/powerpc/kernel/vdso64/cacheflush.o: ELF 64-bit LSB relocatable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), not stripped
arch/powerpc/kernel/vdso64/datapage.o: ELF 64-bit LSB relocatable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), not stripped
arch/powerpc/kernel/vdso64/getcpu.o: ELF 64-bit LSB relocatable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), not stripped
arch/powerpc/kernel/vdso64/gettimeofday.o: ELF 64-bit LSB relocatable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), not stripped
arch/powerpc/kernel/vdso64/note.o: ELF 64-bit LSB relocatable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), not stripped
arch/powerpc/kernel/vdso64/sigtramp.o: ELF 64-bit LSB relocatable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), not stripped

An strace of the failing powerpc64-linux-gnu-gcc command above showed that collect2 (and ld) were being called with an option setting the format to 32bit:
24904 execve("/usr/libexec/gcc/powerpc64-linux-gnu/5.2.1/collect2", ["/usr/libexec/gcc/powerpc64-linux"..., "-plugin", "/usr/libexec/gcc/powerpc64-linux"..., "-plugin-opt=/usr/libexec/gcc/pow"..., "-plugin-opt=-fresolution=/tmp/cc"..., "--sysroot=/usr/powerpc64-linux-g"..., "--build-id", "--no-add-needed", "--eh-frame-hdr", "--hash-style=gnu", "-shared", "--oformat", "elf32-powerpcle", "-m", "elf64lppc", "-o", ...], [/* 66 vars */]

Alan Modra tracked it down to some 32bit hard-coded entries in GCC sysv4.h and sysv4le.h and submitted a patch to the GCC mailing list (Red Hat bug).

I re-built the Fedora cross-gcc package with his patch and it solved the linker problem for me. Hurrah!

Kororaa 15 (Squirt) released

The first stable release of Kororaa 15 (codename “Squirt”) has been released and is available for download, in 32 and 64 bit with KDE 4.6 and GNOME 3.

This release includes Ubuntu’s Jockey Device Driver manager, which has replaced the Add/Remove Extras script for configuring third party drivers (such as nvidia). While I am still working on the port of Jockey to Yum, in order to release Kororaa 15 now (already a month later than I was hoping) I am using Jockey packages created by fellow Fedora Remix, Parsidora, so thanks and kudos to them!

Kororaa 15 comes with an RPM metapackage to install and configure Adobe Flash, now that Add/Remove Extras is gone. To get flash, install the flash-plugin-helper package. To remove flash, uninstall the flash-plugin package.

Users still on Kororaa 14 may wish to upgrade to 15 and should do so via a new install (backup your data if necessary). Users who wish to stay with GNOME 2.x should not upgrade to 15, as it comes with GNOME 3. However, Kororaa 15 does include a desktop switcher for GNOME 3, so that users can switch between the new Shell interface and the 2.x style Fallback mode.

The GNOME 3 desktop has a custom theme available, as well as several extensions to provide an enhanced user experience (and help ease the transition from GNOME 2.x). It also comes with the GNOME Tweak Tool to allow further customisation.
Kororaa 15 desktop - GNOME

The KDE desktop has a custom layout with specific default applications, such as Firefox for the web and VLC for media, etc. It now also comes with Linphone for those wanting a SIP client.
Kororaa 15 desktop - KDE

Derived from Fedora 151, this updated release comes with the usual Kororaa extras out of the box, such as:

  • Tweaked KDE 4.6 and GNOME 3 base systems
  • Third party repositories (Adobe, Chrome, RPMFusion, VirtualBox)
  • Firefox 6 as the default web browser (with integration tweaks for KDE)
  • Firefox extensions included (Adblock Plus, DownThemAll, Flashblock, Xclear)
  • Microblogging client (Choqok for KDE, Gwibber for GNOME)
  • Full multimedia support (excluding Flash, see next)
  • Installer for Adobe Flash plugin
  • Jockey device manager to handle drivers such as AMD/ATI and NVIDIA
  • Video editor (Kdenlive for KDE, OpenShot for GNOME)
  • VLC as the default media player
  • SELinux enabled (particularly worthwhile for Flash)
  • English (Australian/British) support & dictionaries
  • and more..

Major changes:

  • Add/Remove Extras script removed by default (still in repository)
  • Jockey device driver manager added
  • New Flash plugin RPM metapackage installer
  • New DownThemAll download manager addon for Firefox
  • Linphone VoIP client for KDE added
  • GNOME 3 switcher between Shell and Fallback desktops
  • Pidgin replaced with Empathy for better GNOME integration
  • KSplice has been removed by default

We’d love to hear your feedback on the forums, so download it today and let us know! :-)


Note: Kororaa is not provided or supported by the Fedora Project. Official, unmodified Fedora software is available through the Fedora Project website.

How to install and run VirtualBox on Fedora (and Kororaa)

Kevin on the Kororaa Forums asked a question about VirtualBox and why it needs kernel modules.

Just wondering if someone could give me an idea of what Kernel Modules are and what they do in relation to Virtual Box? Every time I try to install VB it says you need “this” or “that” (mostly kernel modules) and I have no idea where to look, what they are, and what they do, so I am hoping to learn something. Also, if I get VB to work, and “they” update the kernel, do I have to add modules again or? Basically when I install VB, what do I have to install along side it?

Here’s my reply, as it might be useful for anyone running Fedora (note, this is using the latest package from Oracle, rather than the pre-compiled OSE in the Fedora repos).

So your operating system is made up of three (main) components:

  • Physical hardware (computer bits)
  • Kernel (software which talks to your hardware and makes it work, think drivers)
  • Software (talks to your kernel to get to your hardware)

Your kernel is what makes your computer work (this is actually what Linux is, a kernel) and it’s actually the most important part of the operating system. When you’re talking about VirtualBox, it needs to create fake hardware on top of your real hardware, so to do that, it needs a driver. Drivers sit in the kernel layer.

The Linux kernel has thousands of drivers in it, but it does not have VirtualBox drivers in it (yet). This means you need to compile these and load them into your running kernel of you want to use VirtualBox. Once you do that, your kernel will have the fake hardware that the VirtualBox software needs to run. Drivers which you can load and unload into the kernel are called modules.

The VirtualBox host computer needs these drivers, but the VirtualBox guest also needs some drivers to make full use of the fake hardware. When you install Linux or Windows as a VirtualBox guest, the hardware is fake, so that OS needs drivers too! Some of those drivers (like audio and network) are already in the Linux kernel, so if your guest is running Linux, you just need drivers for the video, etc.

In order to compile the drivers for VirtualBox (on both host and guest) on Linux you need some development libraries, compiler program (such as GCC), as well as the headers for the running kernel. You need the headers because you need to compile a driver to load into the kernel and it needs to know detailed information about it.

Fortunately, if you’re using Kororaa, all of the required tools and packages are already installed! :-) All you need to do is build the drivers.

If you’re running a vanilla instance of Fedora, then you need to install the build tools like so:
su -c 'yum install gcc kernel-devel'

Now you have the build tools required to compile the drivers.

Automatically building drivers after kernel update
Modules are for a specific kernel and so when you get a kernel update, you need to re-compile the drivers for VirtualBox hosts and guests. Fortunately, there’s a neat little package called DKMS (Dynamic Kernel Module Support Framework) which will do this for you automatically – and of course Kororaa comes with this pre-installed.

If you’re running Fedora, you can easily install it like so:
su -c 'yum install dkms time'

When you install VirtualBox (see below), it will register the drivers with DKMS and on boot it will re-compile them for you, if it needs to. So, you just need to do it once and forget! Any updates to VirtualBox that are pulled in will also be automatically updated.

Building drivers on the host
Because Kororaa has all of the requirements for VirtualBox (including the package repository), all you need to do to get VirtualBox up and running is to install it using the package manager. If you prefer, you can install it manually like so (note the version is currently 4.1):
sudo yum install VirtualBox-4.1

Again, if you’re using vanilla Fedora, then you need to grab the VirtualBox repository file so that you can install VirtualBox from the Oracle repository (the packaged version from Fedora is usually a few versions behind).
su -c 'wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo -O /etc/yum.repos.d/virtualbox.repo'

Now you can install VirtualBox on Fedora:
su -c 'yum install VirtualBox-4.1'

You should see something like this during the install process:
No precompiled module for this kernel found -- trying to build one.
Stopping VirtualBox kernel modules [ OK ]
Uninstalling old VirtualBox DKMS kernel modules [ OK ]
Trying to register the VirtualBox kernel modules using DKMS [ OK ]
Starting VirtualBox kernel modules [ OK ]

As you can see, the modules were successfully compiled and registered with DKMS for future automatic compilation.

Group permissions
Just remember that any user who wants to run and use VirtualBox on the host needs to be in the vboxusers group. You can use the users graphical tool to do this (system-config-users), or add them to the group by running the command (substitute chris with your username):
sudo gpasswd -a chris vboxusers

Then just run VirtualBox and away you go!

Building drivers on the guest
Once you have your host up and your guest operating system installed, the way to install the required drivers is using the built in method. Once you have booted your guest operating system, simply click the Devices menu at the top, and click Install Guest Addons.

Install Guest Addons
This will load a CD in your guest and you can run the autorun.sh script from the disk, which will ask you for the root password and then detect your operating system and compile the drivers for you.

Run Guest Addons
Once again, if your guest is running Kororaa too, then you already have the required build tools and libraries. If not, you will need to install them first – how this is done depends on your distro (for Fedora, see above).

Remember, with DKMS you will automatically get updated drivers this way after a kernel update.

That’s it! Just reboot your guest and away you go.

Elementary OS released, and it’s awesome

Daniel Foré and the Elementary team have finally released the long awaited Elementary OS, codenamed Jupiter. Kudos!

With Jupiter, we’ve made using your computer extremely easy by including a selection of the best apps designed and programmed by professional artists and developers. We’ve also simplified the whole experience to make things easy and beautiful.

Elementary OS desktop

It’s an Ubuntu based distro with Elementary’s cool new apps like Postler, their lightweight mail client. Naturally, it also comes with Elementary’s take on Nautilus and uses the Elementary theme and icon set (just like Kororaa!). It’s light, and it’s fast.

I wrote an article about Elementary for Linux Magazine last year and I’m very proud of Dan and the team for what they have achieved. Dan started using Linux after trying out the original Kororaa Live CD and was amazed by it. So you see, I have a special tie to the project :-)

Check it out, it’s definitely worthwhile!

Kororaa 14 (Nemo) Beta 5 released

Kororaa 14 (Nemo) Beta 5 has been released for download, in 32 and 64 bit with KDE and GNOME. If you’ve been waiting to try out Kororaa, this is the version to test!

Kororaa 14 (Nemo) GNOME desktop

I have finally packaged up all of the system changes we make, into RPMs in the Kororaa repository. This means future changes can be pushed out via updates – theoretically, no need to re-install when the new release comes out (unless you want to).

This version is recommended for all new installs. For existing installations, you can update get these changes by installing the following packages:
sudo yum install kororaa*

New features:

  • Update to Firefox 4 by default for KDE and GNOME
  • Packaged all Kororaa system changes into RPM repository

Bug fixes:

  • Fixed missing dictionaries in LibreOffice

We’d love to hear your feedback on the forums, so download it today! :-)


Microsoft “licenses its patents” to Android manufacturers, sues if they don’t agree

There’s never been any evidence that Microsoft goes after Linux based products, right? Hog wash.

Well, now it’s just Tom Tom all over again. So, we know that Microsoft has numerous patent licensing programs in place, including exFAT, FAT, .NET (Novell), and now Android. We know that Microsoft claims that Linux violates a few hundred of their patents. We know that as a part of these licensing agreements, companies sign a Non Disclosure Agreement so that they can’t let everyone else know the details. We know that if companies don’t agree to this extortion, Microsoft sues them.

Despite all this evidence, people still think .NET technology in Linux is not a risk. Wake up and smell the bananas, you morons.

Microsoft states that Android infringes on their intellectual property:

The Android platform infringes a number of Microsoft’s patents, and companies manufacturing and shipping Android devices must respect our intellectual property rights.

Microsoft has a patent licensing program in place for Android, which companies like HTC have signed:

To facilitate that we have established an industry-wide patent licensing program for Android device manufacturers. HTC, a market leader in Android smartphones, has taken a license under this program.

Microsoft is suing Barnes & Noble, Foxconn and Inventec (link above) because they did not take a license.

Microsoft Corp. today filed legal actions…against Barnes & Noble, Inc. and its device manufacturers, Foxconn International Holdings Ltd. and Inventec Corporation, for patent infringement by their Android-based e-reader and tablet devices that are marketed under the Barnes & Noble brand… We have tried for over a year to reach licensing agreements with Barnes & Noble, Foxconn and Inventec. Their refusals to take licenses leave us no choice but to bring legal action to defend our innovations and fulfill our responsibility to our customers, partners, and shareholders to safeguard the billions of dollars we invest each year to bring great software products and services to market

You know what will happen now. They will settle and Microsoft will continue this racket.


On becoming a Fedora maintainer

Recently, Rahul Sandaram (Fedora dev and creator of the Omega Fedora Remix) offered to sponsor me to become a Fedora maintainer, which I accepted. A day or so later I pushed my first updates into Fedora for deja-dup – the package I now co-maintain while I learn the ropes.

Previously, one would become a maintainer by first submitting a new package and thereby overtime demonstrating an understanding of the Fedora packaging process and guidelines. However recently a new system was approved whereby one could become a co-maintainer of an existing package, instead. This requires being sponsored by an existing maintainer, which Rahul was for me.

It’s quite a big task, but Rahul was very helpful and patient while I learned about the process. There is a lot of information on the Fedora Wiki but I found there wasn’t really a single place which provided a nice overview, broke down each section in detail, and then explained all the steps required. So that (along with my cautious nature) meant it took a dozen or so clarifying emails back and forth between Rahul and myself.

When I got my first understanding and taste of the system though, I’ve gotta say, I was quite impressed. The scale of the system and architecture and how it all works is amazing. The build files (RPM spec files) of all the packages in Fedora are kept under their own git repository. Hooks into this git system and special build tools manage the whole process. All in all, this automation makes it quite seamless.

So after reading and doing everything Rahul sent to me, I started on my journey.

There are two development systems to update now – rawhide (development tree) and F15 (the upcoming version). I wanted to update both of these to the latest upstream version, 17.90. I also wanted to update the stable Fedora 14 package to an upstream bug-fix release, version 16.1.1.

Cloning deja-dup from the git repo put me in the rawhide branch by default. I updated the spec file – increasing the version, adding python-cloudfiles as a new dependency, and putting in a detailed changelog. I then committed that to my local git repo with a comment linking to upstream. I then pulled those changes from rawhide into the f15 branch and updated f14.

commit bb1a5daa9feea74640fd84a0174e74e4e83ad34b
Author: Christopher Smart
Date: Sat Mar 5 21:23:07 2011 +1100
     Updated to upstream bugfix version 16.1.1.
     "This release fixes a bug in the just-released 16.1 that caused help
     documentation to not be translated."

Next I needed to test these packages, so I built a source RPM from the spec for each version. I discovered that one can either do a mock build on their local machine, or use Koji to do a scratch build on Fedora’s online build system. I did both, which worked well.

Using Koji meant I needed to first push my changes back to Fedora first though (or so I thought), so I was hesitant to do it without first checking with Rahul. This was the sort of thing that was emailed back and forth – I didn’t fully understand the system and didn’t want to break anything! For example, in order to test my F14 update I had to push back to the git repo – but what if I made a mistake in the process? Would my build on Koji push this broken package onto everyone’s system?

Fortunately, no. Once all the updating of the spec file and building is complete, the maintainer has to formally submit it into the update process before anything will happen. In addition, each package must then pass approval by other maintainers before it is approved and pushed out. You can see why it took some back and forth between Rahul and myself – I wanted to be sure I wasn’t going to do some damage :-)

Along the way I discovered new automated ways of doing things, such as validating a spec file, automatically downloading the source tarball to update the spec file, then uploading it to the Fedora build system.

In the end though, I think that I have a pretty good grasp of the overall process and am quite excited by the prospect of becoming a Fedora maintainer. I’m hoping that deja-dup comes out with a new update soon, so that I can do another update!

I’m still a little hesitant to go and change things – I don’t want to do the wrong thing or step on anyone’s toes. I did however create my own page on the Fedora Wiki, complete with a hackergotchi, of course.

So once again, thanks to Rahul for his patience and guidance :-)

Kororaa 14 Beta3 – Remove KDE themed Firefox in GNOME

I accidentally included the KDE Oxygen theme for the GNOME version of Beta3 (it was correct in Beta2). This means that GNOME users of Kororaa will get a KDE themed Firefox – not quite what I had in mind! KDE users don’t need to do anything, and should have a nice, pretty Firefox.

So, thanks to Arv3n for posting it in the forums, I have fixed it for the next release, but you can also fix it yourself in Beta3. Here’s how.

System wide (for any new accounts created):
sudo rm -Rf /usr/lib*/firefox-3.6/defaults/profile/extensions/\{C1F83B1E-D6EE-11DE-B441-1AD556D89593\}
sudo rm -Rf /usr/lib*/firefox-3.6/defaults/profile/extensions/plasmanotify@andreas-demmer.de
sudo sed -i '/.*oxygen.*/d' /usr/lib*/firefox-3.6/defaults/profile/prefs.js

Your account, close Firefox and run:
rm -Rf ~/.mozilla/firefox/*/extensions/\{C1F83B1E-D6EE-11DE-B441-1AD556D89593\}
rm -Rf ~/.mozilla/firefox/*/extensions/plasmanotify@andreas-demmer.de
sed -i '/.*oxygen.*/d' ~/.mozilla/firefox/*/prefs.js

Sorry about that!!!


Kororaa 14 (Nemo) Beta3 released

Kororaa 14 (Nemo) Beta3 has been released for download, in 32 and 64 bit with KDE and GNOME.

It is recommended to back up your data and perform a fresh install as this fixes several important bugs.

New features:

  • Latest packages including updated kernel, latest KDE, and GNOME
  • Added Kdenlive video editor to KDE
  • Added HandBrake ripper
  • Set previews for various file types in Dolphin (KDE)
  • Added Fedora printer configuration tool to KDE
  • Added deja-dup backup tool
  • Replaced PiTiVi with OpenShot in GNOME
  • Fixed Elementary theme issue under Nautilus in GNOME
  • PolicyKit tweaks for printing, should be seamless (please test!)

Bug fixes:

  • Lots :-)
  • Problem with new users being added to wheel group
  • Dropped Livna repository due to unreliability
  • Fixed bugs in add-removes-extras script

We’d love to hear your feedback on the forums, so download it today! :-)


Kororaa Beta2 bug fixes

If you’re running Kororaa Beta2, there are a few bugs which require fixing.

Firstly, the KDE version incorrectly included Yum from Rawhide (development) tree (GNOME version does not have this issue). This means you are running an untested version of Yum, the system’s default package manager.

To fix this, disable the repo (or remove the repository file for it), then downgrade yum to the stable version.
sudo sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/fedora-yum-rawhide.repo
sudo yum downgrade yum

The Livna repository, which is configured out of the box, seems to be having lots of problems with availability. This will be fixed in the next release, but in the mean time, you can disable or remove that repository.
sudo sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/livna.repo

If you find any more issues, please let us know!