Generic Random Notes

This page provides is used as a sounding board of issues that have come along the way while messing with computers.

Index

To make it esier to navigate the issues, take a look at the index:

Unbound DNSSEC failed to parse trust anchor file

While configuring Unbound to use DNSSEC you may get the error message:

“error: could not parse auto-trust-anchor-file”

After searching the web, the link https://github.com/NLnetLabs/unbound/issues/160 and more specifically comment https://github.com/NLnetLabs/unbound/issues/160#issuecomment-770402282 gave the answer!

You need to comment out the line:

include:” /etc/unbound/unbound.conf.d/*.conf

This line is locate at the file /etc/unbound/unbound.conf. Then, the unbound service must be restarted.

Enable DbgPrint output

DebugView (tool from SysInternals) doesn’t show output from DbgPrint on certain Windows versions. The issue is described in detail in this OSR post.

The workaround is to create the registry key listed below with the DWORD value 0xf

HKLM\SYSTEM\CCS\Control\Session Manager\Debug Print Filter\DEFAULT

UNC vs DOS vs Device vs NT object path

Quick notes on what path is what:

Ref: https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats

System Error VCRUNTIME140.dll runtime dependencies

When dynamically linking C/C++ applications on Windows and the target system doesn’t have the appropriate libraries installed, the following error comes up:

The code execution cannot proceed because VCRUNTIME140.dll was not found. Reinstalling the program may fix this problem.

To get rid of this message and run the application, go to the project settings on Visual Studio, select C/C++ -> Code Generation and set Runtime Library to Multi-threaded DLL (/MT) if compiling in Release mode or Multi-threaded DLL (/MTd) if compiling in Debug mode.

Unbound settings to override internet zones

Configuration settings to override internet zones.

/etc/unbound/unbound.conf

# server tag is required
server:
	local-zone: "example.org" redirect
	local-data: "example.org. IN A 127.0.0.1"

Result:

dig a example.org +short
127.0.0.1

Static DNS Debian Linux

For interfaces that are managed by Network Manager edit the configuration file /etc/NetworkManager/

dns=<DNS_IP>
ignore-auto-dns=true

Python environment

To create a Python environment in the current directory:

python -m venv .

This command creates the following files:

bin		(directory)
include		(directory)
lib		(directory)
lib64		(link)
pyvenv.cfg	(file)
share		(directory)

Python OpenSSL package breaks pip

Recently I tried to install a Python package which had some dependencies. One of the dependencies was pyopenssl. While installing with pip I received the following error:

pyopenssl 23.0 has requirement cryptography>=38, but you’ll have cryptography 2.6.1 which is incompatible.

After that anything I was trying to do with pip was failing with the following error:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 33, in vendored
    __import__(vendored_name, globals(), locals(), level=0)
ModuleNotFoundError: No module named 'pip._vendor.cachecontrol'

During handling of the above exception, another exception occurred:

At the bottom of each error message, I could see:

  File "/usr/local/lib/python3.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import SSL, crypto
  File "/usr/local/lib/python3.7/dist-packages/OpenSSL/SSL.py", line 19, in <module>
    from OpenSSL.crypto import (
  File "/usr/local/lib/python3.7/dist-packages/OpenSSL/crypto.py", line 3261, in <module>
    name="load_pkcs7_data",
TypeError: deprecated() got an unexpected keyword argument 'name'

To resolve this, I had to remove the OpenSSL package:

rm -rf /usr/local/lib/python3.7/dist-packages/OpenSSL

On the same note, if upon removal of OpenSSL from the package directory some dependencies break (this is on a Debian environment), you may have to install python3-openssl package which is a Python3 wrapper around the OpenSSL library.