The problem seems to be using the division operator in jk_lib to obtain the major device number, and the division operator always returns a floating point, not an integer. The fix is to use the floor division operator:
--- /usr/share/jailkit/jk_lib.py.orig 2021-09-08 14:52:21.196000000 -0600 +++ /usr/share/jailkit/jk_lib.py 2021-09-08 15:01:07.748000000 -0600 @@ -578,18 +578,18 @@ sb = os.stat(path) try: if (sys.platform[:5] == 'linux'): - major = sb.st_rdev / 256 #major = st_rdev divided by 256 (8bit reserved for the minor number) + major = sb.st_rdev // 256 #major = st_rdev divided by 256 (8bit reserved for the minor number) minor = sb.st_rdev % 256 #minor = remainder of st_rdev divided by 256 elif (sys.platform == 'sunos5'): if (sys.maxint == 2147483647): - major = sb.st_rdev / 262144 #major = st_rdev divided by 256 (18 bits reserved for the minor number) + major = sb.st_rdev // 262144 #major = st_rdev divided by 256 (18 bits reserved for the minor number) minor = sb.st_rdev % 262144 #minor = remainder of st_rdev divided by 256 else: #64 bit solaris has 32 bit minor/32bit major - major = sb.st_rdev / 2147483647 + major = sb.st_rdev // 2147483647 minor = sb.st_rdev % 2147483647 else: - major = sb.st_rdev / 256 #major = st_rdev divided by 256 + major = sb.st_rdev // 256 #major = st_rdev divided by 256 minor = sb.st_rdev % 256 #minor = remainder of st_rdev divided by 256 if (stat.S_ISCHR(sb.st_mode)): mode = 'c' -- Jesse Norell Kentec Communications, Inc. 970-522-8107 - www.kci.net