How to block a DNF package update on Fedora

You know the new version of a package is a buggy mess and you don’t want to update, or you manually install an rpm that exists in the repos but you really want to keep the version you installed. There’s an easy way to do that!

Edit (as root) /etc/dnf/dnf.conf and add this line:

exclude = packagename1
exclude = packagename2

Save it. The next time DNF updates, your package won’t be updated! This will work with any distribution that uses DNF (Mageia, future versions of CentOS).

Crouton broken by Chrome OS security update – here’s a fix

A security update in Chrome OS 73 patches a security hole used to run the Crouton script. Luckily, it’s easy to work-around with a simple permission change on the Crouton file.

  • Use CTRL+SHIFT+T to open the terminal window like normal.
  • Then type shell like you normally would.
  • Enter the following to alter the permissions in order to allow you to run the Crouton script:
sudo install -Dt /usr/local/bin -m 755 ~/Downloads/crouton

You’re done! Now you can update Crouton or install targets as you would normally.

My article on how to setup Crouton and Steam on a Chromebook has been updated to reflect this change.

Neverwinter Nights Enhanced Edition produces black screen on Linux

I decided I wanted to start playing the new release of the classic game Neverwinter Nights, on my Chromebook using my Ubuntu Linux chroot. My download comes from GOG. While my install worked great on my Windows desktop and Fedora laptop, the game isn’t starting on my Chromebook. It just produces a black screen instead of the game’s main menu.

Another Beamdog re-release, Baldur’s Gate, works great on here. The solution for NWN should be pretty simple: turn off full screen mode. But how can you do that without entering the game?!

Easy:

  • Navigate to /home/<your user>/.local/share/Neverwinter Nights
  • Edit nwn.ini
  • Change the following:
FullScreen=0
FullScreenDesktopMode=1
Borderless=1

You’re done! The game won’t run in true full screen, but it will be a full-screen borderless window.

Possible missing firmware for module tg3

When recently updating my Debian 9 Stretch’s boot image, it produced the following warning:

W: Possible missing firmware /lib/firmware/tigon/tg3_tso5.bin for module tg3
W: Possible missing firmware /lib/firmware/tigon/tg3_tso.bin for module tg3
W: Possible missing firmware /lib/firmware/tigon/tg3.bin for module tg3

That doesn’t look good! Without this module, I suspect my network card will not work after reboot. What’s needed is the package firmware-linux-nonfree but it’s not available in the standard Debian free repos – you need the nonfree repo.

Edit your /etc/apt/sources.list and add the following:

deb http://ftp.de.debian.org/debian stretch main non-free

You can install firmware-linux-nonfree with apt-get, which will allow your adapter requiring the tg3 module to continue working.

Pi-hole logrotate parent directory has insecure permissions

My Pi-hole was producing this error every day:

Cron test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )

/etc/cron.daily/logrotate: error: skipping “/var/log/lighttpd/access.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.
error: skipping “/var/log/lighttpd/error.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.
run-parts: /etc/cron.daily/logrotate exited with return code 1

The solution to this was pretty easy:

  • sudo vi /etc/logrotate.d/lighttpd
  • Under /var/log/lighttpd/*.log { add the following line:

su www-data www-data

That’s it! You may want to do sudo systemctl restart cron to make it reload, and now the error should not reoccur.

Have root send as a different address using postfix

If you have scripts or other services that run as root that need to send to outside email addresses, via postfix, without being root@hostname, this is what you need to do:

    1.  sudo vi /etc/postfix/generic

      root name@tld.com

    2. sudo vi /etc/postfix/main.cf

      smtp_generic_maps = hash:/etc/postfix/generic

    3. sudo postmap /etc/postfix/generic
    4. sudo systemctl restart postfix

Done! Now root will send as name@tld.com instead. Substitute whatever you want for name@tld.com

Home Assistant: Unable to find service notify.email

In my Home Assistant setup, I created an SMTP notification that would email my phone’s SMS gateway when certain conditions were met. Except it didn’t work.

When monitoring the log file, I found the following when the condition was supposed to trigger:

WARNING (MainThread) [homeassistant.core] Unable to find service notify/txt_smeg

When I did additional digging in the log file, I found this:

ERROR (Thread-6) [homeassistant.components.notify.smtp] Login not possible. Please check your setting and/or your credentials
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/notify/smtp.py", line 120, in connection_is_valid
    server = self.connect()
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/notify/smtp.py", line 113, in connect
    mail.login(self.username, self.password)
  File "/usr/lib/python3.5/smtplib.py", line 729, in login
    raise last_exception
  File "/usr/lib/python3.5/smtplib.py", line 720, in login
    initial_response_ok=initial_response_ok)
  File "/usr/lib/python3.5/smtplib.py", line 641, in auth
    raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Error: authentication failed:')
 ERROR (MainThread) [homeassistant.components.notify] Failed to initialize notification service smtp

But everything in my configuration looked OK. I checked and the password works. Restarting the Home Assistant service resulted in the same error.

After seeing this discussion where a machine restart magically fixes this problem, I restarted my entire device. After it booted back up, the notification worked correctly. My only guess is that smtplib must keep a cache somewhere, or holds something in memory across application re-loads.

Github projects

I’ve been slowly adding some of my sysadmin creations to Github. Most of them will be scripts, many for Active Directory. You can find the section in the sidebar linking to each project, or use my profile page here:

smeggysmeg
2 repositories, 2 followers.

Quick Disk Cleanup
https://github.com/smeggysmeg/QuickDiskCleanup
0 forks.
1 stars.
0 open issues.
Recent commits:

Error Upgrading Fedora 27 to Fedora 28 with Cinnamon desktop

When attempting to upgrade my Fedora 27 to Fedora 28 running the Cinnamon desktop, I received the following error:

dnf system-upgrade download --releasever=28
Before you continue ensure that your system is fully upgraded by running "dnf --refresh upgrade". Do you want to continue [y/N]: y
Last metadata expiration check: 0:00:00 ago on Wed 02 May 2018 11:19:35 PM CDT.
Error:
Problem: package gstreamer1-plugins-bad-1:1.12.4-3.fc27.x86_64 requires libchromaprint.so.0()(64bit), but none of the providers can be installed
- libchromaprint-1.2-8.fc27.x86_64 does not belong to a distupgrade repository
- problem with installed package gstreamer1-plugins-bad-1:1.12.4-3.fc27.x86_64

It turns out the name for this gstreamer plugins package has changed names, and it’s goofing up the dependencies path for libchromaprint. Minor issue, but it stops my upgrade cold.

I came up with this workaround: upgrade libchromaprint and gstreamer1-plugins-bad-free before trying to update the entire distro. So:

sudo dnf install libchromaprint-1.4.2-2.fc28.x86_64 gstreamer1-plugins-bad-free --releasever=28 --allowerasing

You can now proceed with your regular upgrade process.

VLC missing title bar and window decorations on Fedora 27

Recently, VLC Media Player on my Fedora 27 installation running the Cinnamon desktop has been missing the title bar and window decorations, resulting in VLC not being a proper window and only a full-screen application. For me, this behavior is undesirable.

VLC without title bar

To restore normal functionality it’s easiest to simply delete the VLC configuration:

rm -r ~/.config/vlc

Now, VLC will function normally. Preferences will have to be recreated, but if you’re like me, you don’t need much more than the ability to play media.