Fangtooth Discussion Thread

This is a general discussion thread to talk about Fangtooth.

1 Like

I will start it off. I installed Fangtooth Beta in a VM on my EEL install. The install went off without a hitch and looks pretty solid.

My intention is to see how the new APP stuff is going to work. Right now I am trying to figure out how to change an app to use a direct network address. I think I have to create something called an alias and direct the APP toward that but where and how?

Aliases are created on the nic

I dont know how to access containers. Do I use proxy? I dont get it.

But being able to use my Intel Ultra Core 2 GPU for plex is amazing on Fangtooth. Can’t do that on EE.

BASH scripts are I believe set to “Strict”, not that it is a true setting however the BASH seems to be complaining a tiny bit more for code that has worked previously just fine. Out of over 10,000 lines of code (there are a lot of spaces, but not that many) I have 6 lines to fix. It was just a different way to get the task done. Maybe some functions that were depreciated, were removed?

The point is, if you have a BASH script, you might need to make a few changes.

At this time the GUI support setting up NVMe SMART testing, however the tests do not actually happen. iXsystems either needs to make it fully functional or disable it for NVMe drives.

I understand that the API is going to become more solid, the API page is still being built, not much there yet. I still refer to 24.10.1 API docs.

I run TrueNAS on top of ESXi so I expect to have some differences, such as I the Dashboard does not display memory right now, previous versions did. I’m missing stuff, but Beta doesn’t come out for a while so patience fro me.

That is all I have had time to play. I want to play with the new containers next.

My dashboard is also borked. Same stuff not displaying. I raised as a bug and they closed as a duplicate

Yea, that dashboard item on our list to fix already. It’s a developers nightly image, lots of little nits to fix. The selecting of an IP in the Apps deploy is still in progress, not in the UI yet.

3 Likes

I’m sure there are a lot of item on the list, but that is expected being a developer version, not even Beta yet.

I found midclt call smart.test.results does not work, but I will give it until the Beta hits the street to file a bug report.

This is working for me on 25.04.0-MASTER-20250110-005622#

root@prod[~]# midclt call smart.test.results | jq
[
  {
    "tests": [],
    "current_test": null,
    "identifier": "{serial_lunid}PHM29081000X960CGN_nvme.8086-50484d32393038313030305839363043474e-494e54454c2053534450453231443936304741-00000001",
    "name": "nvme0n1",
    "subsystem": "nvme",
    "number": 66306,
    "serial": "PHM29081000X960CGN",
    "lunid": "nvme.8086-50484d32393038313030305839363043474e-494e54454c2053534450453231443936304741-00000001",
    "size": 960197124096,
    "description": "",
    "transfermode": "Auto",
    "hddstandby": "ALWAYS ON",
    "advpowermgmt": "DISABLED",
    "togglesmart": true,
    "smartoptions": "",
    "expiretime": null,
    "critical": null,
    "difference": null,
    "informational": null,
    "model": "INTEL SSDPE21D960GA",
    "rotationrate": null,
    "type": "SSD",
    "zfs_guid": "212601209224793468",
    "bus": "UNKNOWN",
    "devname": "nvme0n1",
    "enclosure": null,
    "supports_smart": null,
    "pool": null,
    "disk": "nvme0n1"
  },
  {
    "tests": [],
    "current_test": null,
    "identifier": "{serial_lunid}PHM2913000QM960CGN_nvme.8086-50484d32393133303030514d39363043474e-494e54454c2053534450453231443936304741-00000001",
    "name": "nvme3n1",
    "subsystem": "nvme",
    "number": 66307,
    "serial": "PHM2913000QM960CGN",
    "lunid": "nvme.8086-50484d32393133303030514d39363043474e-494e54454c2053534450453231443936304741-00000001",
    "size": 960197124096,
    "description": "",
    "transfermode": "Auto",
    "hddstandby": "ALWAYS ON",
    "advpowermgmt": "DISABLED",
    "togglesmart": true,
    "smartoptions": "",
    "expiretime": null,
    "critical": null,
    "difference": null,
    "informational": null,
    "model": "INTEL SSDPE21D960GA",
    "rotationrate": null,
    "type": "SSD",
    "zfs_guid": "16221756077833732578",
    "bus": "UNKNOWN",
    "devname": "nvme3n1",
    "enclosure": null,
    "supports_smart": null,
    "pool": null,
    "disk": "nvme3n1"
  },
  {
    "tests": [],
    "current_test": null,
    "identifier": "{serial_lunid}PHM2913000YF960CGN_nvme.8086-50484d32393133303030594639363043474e-494e54454c2053534450453231443936304741-00000001",
    "name": "nvme5n1",
    "subsystem": "nvme",
    "number": 66308,
    "serial": "PHM2913000YF960CGN",
    "lunid": "nvme.8086-50484d32393133303030594639363043474e-494e54454c2053534450453231443936304741-00000001",
    "size": 960197124096,
    "description": "",
    "transfermode": "Auto",
    "hddstandby": "ALWAYS ON",
    "advpowermgmt": "DISABLED",
    "togglesmart": true,
    "smartoptions": "",
    "expiretime": null,
    "critical": null,
    "difference": null,
    "informational": null,
    "model": "INTEL SSDPE21D960GA",
    "rotationrate": null,
    "type": "SSD",
    "zfs_guid": "8625327235819249102",
    "bus": "UNKNOWN",
    "devname": "nvme5n1",
    "enclosure": null,
    "supports_smart": null,
    "pool": null,
    "disk": "nvme5n1"
  },
  {
    "tests": [],
    "current_test": null,
    "identifier": "{serial_lunid}PHM2913000DC960CGN_nvme.8086-50484d32393133303030444339363043474e-494e54454c2053534450453231443936304741-00000001",
    "name": "nvme2n1",
    "subsystem": "nvme",
    "number": 66305,
    "serial": "PHM2913000DC960CGN",
    "lunid": "nvme.8086-50484d32393133303030444339363043474e-494e54454c2053534450453231443936304741-00000001",
    "size": 960197124096,
    "description": "",
    "transfermode": "Auto",
    "hddstandby": "ALWAYS ON",
    "advpowermgmt": "DISABLED",
    "togglesmart": true,
    "smartoptions": "",
    "expiretime": null,
    "critical": null,
    "difference": null,
    "informational": null,
    "model": "INTEL SSDPE21D960GA",
    "rotationrate": null,
    "type": "SSD",
    "zfs_guid": "11750420763846093416",
    "bus": "UNKNOWN",
    "devname": "nvme2n1",
    "enclosure": null,
    "supports_smart": null,
    "pool": null,
    "disk": "nvme2n1"
  },
  {
    "tests": [
      {
        "num": 0,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1330,
        "power_on_hours_ago": 8,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 1,
        "description": "Extended",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1330,
        "power_on_hours_ago": 8,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 2,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1329,
        "power_on_hours_ago": 9,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 3,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1329,
        "power_on_hours_ago": 9,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 4,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1329,
        "power_on_hours_ago": 9,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 5,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1329,
        "power_on_hours_ago": 9,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 6,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1329,
        "power_on_hours_ago": 9,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 7,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1329,
        "power_on_hours_ago": 9,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 8,
        "description": "Extended",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1329,
        "power_on_hours_ago": 9,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 9,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1329,
        "power_on_hours_ago": 9,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 10,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1329,
        "power_on_hours_ago": 9,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 11,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1328,
        "power_on_hours_ago": 10,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 12,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1328,
        "power_on_hours_ago": 10,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 13,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1328,
        "power_on_hours_ago": 10,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 14,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1328,
        "power_on_hours_ago": 10,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 15,
        "description": "Extended",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1328,
        "power_on_hours_ago": 10,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 16,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1328,
        "power_on_hours_ago": 10,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 17,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1328,
        "power_on_hours_ago": 10,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 18,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1327,
        "power_on_hours_ago": 11,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      },
      {
        "num": 19,
        "description": "Short",
        "status": "SUCCESS",
        "status_verbose": "Completed without error",
        "power_on_hours": 1327,
        "power_on_hours_ago": 11,
        "failing_lba": null,
        "nsid": null,
        "seg": null,
        "sct": 0,
        "code": 0
      }
    ],
    "current_test": null,
    "identifier": "{serial_lunid}S64KNX2T216015_002538b221d26271",
    "name": "nvme4n1",
    "subsystem": "nvme",
    "number": 66314,
    "serial": "S64KNX2T216015",
    "lunid": "002538b221d26271",
    "size": 512110190592,
    "description": "",
    "transfermode": "Auto",
    "hddstandby": "ALWAYS ON",
    "advpowermgmt": "DISABLED",
    "togglesmart": true,
    "smartoptions": "",
    "expiretime": null,
    "critical": null,
    "difference": null,
    "informational": null,
    "model": "SAMSUNG MZVL2512HCJQ-00BL7",
    "rotationrate": null,
    "type": "SSD",
    "zfs_guid": null,
    "bus": "UNKNOWN",
    "devname": "nvme4n1",
    "enclosure": null,
    "supports_smart": null,
    "pool": null,
    "disk": "nvme4n1"
  },
  {
    "tests": [],
    "current_test": null,
    "identifier": "{serial_lunid}PHM2908101QG960CGN_nvme.8086-50484d32393038313031514739363043474e-494e54454c2053534450453231443936304741-00000001",
    "name": "nvme1n1",
    "subsystem": "nvme",
    "number": 66304,
    "serial": "PHM2908101QG960CGN",
    "lunid": "nvme.8086-50484d32393038313031514739363043474e-494e54454c2053534450453231443936304741-00000001",
    "size": 960197124096,
    "description": "",
    "transfermode": "Auto",
    "hddstandby": "ALWAYS ON",
    "advpowermgmt": "DISABLED",
    "togglesmart": true,
    "smartoptions": "",
    "expiretime": null,
    "critical": null,
    "difference": null,
    "informational": null,
    "model": "INTEL SSDPE21D960GA",
    "rotationrate": null,
    "type": "SSD",
    "zfs_guid": "10743034860780890768",
    "bus": "UNKNOWN",
    "devname": "nvme1n1",
    "enclosure": null,
    "supports_smart": null,
    "pool": null,
    "disk": "nvme1n1"
  }
]

EDIT:
Although, this is a bad example because most of these drives don’t support SMART tests, but the one that does works lol :stuck_out_tongue:

This was run on Fangtooth-25.04.0-MASTER-20250114-005710

root@truenas:~# midclt call smart.test.results | jq
'int' object is not subscriptable
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py", line 310, in process_method_call
    result = await method.call(app, params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py", line 40, in call
    result = await self.middleware.call_with_audit(self.name, self.serviceobj, methodobj, params, app)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 878, in call_with_audit
    result = await self._call(method, serviceobj, methodobj, params, app=app,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 687, in _call
    return await methodobj(*prepared_call.args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/schema/processor.py", line 174, in nf
    return await func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/schema/processor.py", line 48, in nf
    res = await f(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/smart.py", line 715, in results
    await asyncio_map(functools.partial(annotate_disk_smart_tests, self.middleware, tests_filter),
  File "/usr/lib/python3/dist-packages/middlewared/utils/asyncio_.py", line 19, in asyncio_map
    return await asyncio.gather(*futures)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/utils/asyncio_.py", line 16, in func
    return await real_func(arg)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/smart.py", line 39, in annotate_disk_smart_tests
    tests = parse_smart_selftest_results(data) or []
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/smart.py", line 88, in parse_smart_selftest_results
    lba = entry["lba"]["value"]
          ~~~~~~~~~~~~^^^^^^^^^
TypeError: 'int' object is not subscriptable

root@truenas:~#

I suspect they are working on some related package/code.

Does anyone know if this update will allow passing through an Intel Arc B series card to plex since the kernel will be updated to 6.12?

Also I tried updating and get hung up in the boot and can’t seem to figure out why cause I booted up in another machine with no issues. It always gets stopped at or near the sound.target or systemd-rfkill.socket. When I looked over the boot up of the machine that worked fine I never saw the systemd-rfkill.socket line so not sure if that’s what’s causing my issue.

Btw I’m pretty new to TrueNAS

[23.330601] ccp 0000:0e:00.2: ccp: unable to access the device: you might be running a broken BIOS.
[23.332399] ccp 0000:0e:00.2: tee enabled
[23.333089] ccp 0000:0e:00.2: psp enabled
[23.364404] Error: Driver ‘pcspkr’ is already registered, aborting...
[OK] Reached target sound.target - Sound Card.
[OK] Listening on systemd-rfkill.socket - Load/Save RF Kill Switch Status /dev/rfkill Watch. 

EDIT: I found my issue, it was getting stuck on the graphics. I needed to disable IGFX Multi-Montior and set the primary video device to be the internal graphics. That let me get past the rfkill. It’s just interesting that previously on the current release of electric eel 24.10.1 I was able to boot with no problem having IGFX enabled.

This will be covered in release notes for the upcoming beta, but raising awareness here:
We’re going to begin to require SSL/TLS for API access when using API keys.

If you’re using our python websocket client the practical impact is that you’ll need to change:

from truenas_api_client import Client

with Client('ws://<ip>/api/current') as c:
    resp = c.call('auth.login_ex', {
        'mechanism': 'API_KEY_PLAIN',
        'username': 'bob',
        'api_key': <key>
    })

to:

from truenas_api_client import Client

with Client('wss://<ip>/api/current') as c:
    resp = c.call('auth.login_ex', {
        'mechanism': 'API_KEY_PLAIN',
        'username': 'bob',
        'api_key': <key>
    })

e.g. ws → wss.

4 Likes

Fangtooth says it unifies Core and Scale.
What part of it comes from core?

Since it remains a linux based OS, then at a glance it looks like its just the next gen of scale, with core development being dropped.

Not saying it is a bad thing. I am fine with it. Just confused bny the way it is being promoted as “merging”.

It adds a Jail like UI.

1 Like

If you have a bash script, you are doing it wrong.

Seriously. Shell scripts should always adhere to POSIX to be portable. Not even on all Linux distributions is /bin/sh a bash.

So much for today’s grandad’s tales from the war. :slight_smile:

3 Likes

The name of the product.

Notice how SCALE was dropped in the upcoming release, which is now only referred to as TrueNAS 25.04 “Fangtooth”.

Having some trouble with containers. At first they worked great. Now I get an error when trying to select an image

Error: Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py”, line 323, in process_method_call
result = await method.call(app, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py”, line 49, in call
return self._dump_result(app, methodobj, result)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py”, line 52, in _dump_result
return self.middleware.dump_result(self.serviceobj, methodobj, app, result)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 789, in dump_result
return serialize_result(new_style_returns_model, result, expose_secrets)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/api/base/handler/result.py”, line 13, in serialize_result
return model(result=result).model_dump(
^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/pydantic/main.py”, line 212, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 99 validation errors for VirtInstanceImageChoicesResult
result.alpine/3.18/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.alpine/3.18/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.alpine/3.19/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.alpine/3.19/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.alpine/3.20/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.alpine/3.20/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.alpine/3.21/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.alpine/3.21/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.alpine/edge/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.alpine/edge/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.alt/Sisyphus/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.alt/Sisyphus/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.alt/p10/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.alt/p10/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.alt/p11/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.alt/p11/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.amazonlinux/2/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.amazonlinux/2023/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.archlinux/current/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.archlinux/current/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.archlinux/current/desktop-gnome.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.busybox/1.36.1/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.debian/bookworm/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.debian/bookworm/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.debian/bullseye/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.debian/bullseye/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.debian/buster/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.debian/buster/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.debian/trixie/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.debian/trixie/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.devuan/beowulf/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.devuan/beowulf/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.devuan/chimaera/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.devuan/chimaera/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.devuan/daedalus/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.devuan/daedalus/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.fedora/39/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.fedora/39/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.fedora/40/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.fedora/40/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.fedora/41/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.fedora/41/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.funtoo/next/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.gentoo/current/openrc.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.gentoo/current/systemd.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.kali/current/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.kali/current/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/ulyana/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/ulyana/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/ulyssa/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/ulyssa/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/uma/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/uma/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/una/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/una/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/vanessa/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/vanessa/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/vera/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/vera/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/victoria/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/victoria/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/virginia/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/virginia/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/wilma/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.mint/wilma/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.nixos/24.05/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.nixos/24.11/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.nixos/unstable/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=False, input_type=bool]
For further information visit Redirecting...
result.opensuse/15.5/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.opensuse/15.5/desktop-kde.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.opensuse/15.6/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.opensuse/15.6/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.opensuse/15.6/desktop-kde.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.opensuse/tumbleweed/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.opensuse/tumbleweed/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.opensuse/tumbleweed/desktop-kde.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.openwrt/21.02/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.openwrt/22.03/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.openwrt/23.05/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.openwrt/24.10/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.openwrt/snapshot/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.plamo/7.x/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.plamo/8.x/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.slackware/15.0/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.slackware/current/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.ubuntu/focal/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.ubuntu/focal/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.ubuntu/focal/desktop.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.ubuntu/jammy/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.ubuntu/jammy/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.ubuntu/jammy/desktop.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.ubuntu/noble/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.ubuntu/noble/default.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.ubuntu/noble/desktop.secureboot
Extra inputs are not permitted [type=extra_forbidden, input_value=None, input_type=NoneType]
For further information visit Redirecting...
result.ubuntu/oracular/cloud.secureboot
Extra inputs are not permitted [type=extra_forbidden, input

Good luck with that fight. Most people don’t know what portable is (let alone POSIX) but seeing the state of some of these scripts I’ve been looking at, I’m glad most of these scripts are not portable because it keeps me from copy-paste running them on my machine.

Unfortunately, people don’t really want to read or investigate.

Portability is overrated. If you’re not going to run your code on anything except a Linux system, why bother with old-fashioned shell scripts when bash adds so many useful features? It’s like writing text-processing code in C instead of Python: why bother? It’s 2025: almost no one is using non-Linux Unix OSes these days, and most people who just want to write a script really don’t care if it can run on Solaris, HP-UX, or any BSD.

1 Like

I just wrote a tokenizer/parser in C the other day for key/value strings. Very fun, and thanks for the reminder; I should keep toying with that because I still haven’t worked out all the bugs.

Yeah, I know they (you) don’t care if it runs anywhere else or on other linux or unix distros. Didn’t I say that?

1 Like