Re: FreeBSD Port: py311-dj51-django-auditlog-3.0.0

Michael Gmelin <[email protected]>
Newsgroups gmane.os.freebsd.devel.ports
Message-ID <[email protected]>

On Sat, 27 Sep 2025 21:53:51 +0200
Gerald Wilhelm <[email protected]> wrote:

> Hi Michael
> 
> My name is Gerald and I'm a paperless user since many years.
> Currently my instance runs with docker on an old Qnap-NAS, but I want
> to move it to my new FreeBSD based home server in a jail. So thank
> you for making paperless-ngx available for FreeBSD. The installation
> with pkg wasn't a problem, I could upload some pdfs into the new
> paperless and work with them and export them normally. To transfer my
> documents I used document_exporter on the old instance 2.16.3 and
> tried to import them with document_importer on the new instance,
> where I ran into this error:
> 
> root@paperless:~ # su -l paperless
> $ paperless document_importer /tmp/paperless_216_20250920
> Checking the manifest
> Database import failed
> No version information present
> Traceback (most recent call last):
>   File
> "/usr/local/lib/python3.11/site-packages/django/db/models/options.py",
> line 676, in get_field return self.fields_map[field_name]
> ~~~~~~~~~~~~~~~^^^^^^^^^^^^ KeyError: 'remote_port'
> 
> During handling of the above exception, another exception occurred:
> 
> Traceback (most recent call last):
>   File
> "/usr/local/lib/python3.11/site-packages/django/core/serializers/json.py",
> line 70, in Deserializer yield from PythonDeserializer(objects,
> **options) File
> "/usr/local/lib/python3.11/site-packages/django/core/serializers/python.py",
> line 141, in Deserializer field = Model._meta.get_field(field_name)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
> "/usr/local/lib/python3.11/site-packages/django/db/models/options.py",
> line 678, in get_field raise FieldDoesNotExist(
> django.core.exceptions.FieldDoesNotExist: LogEntry has no field named
> 'remote_port'
> 
> The above exception was the direct cause of the following exception:
> 
> Traceback (most recent call last):
>   File "/usr/local/lib/python3.11/site-packages/paperless/manage.py",
> line 10, in <module> execute_from_command_line(sys.argv)
>   File
> "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py",
> line 442, in execute_from_command_line utility.execute() File
> "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py",
> line 436, in execute
> self.fetch_command(subcommand).run_from_argv(self.argv) File
> "/usr/local/lib/python3.11/site-packages/django/core/management/base.py",
> line 413, in run_from_argv self.execute(*args, **cmd_options) File
> "/usr/local/lib/python3.11/site-packages/django/core/management/base.py",
> line 459, in execute output = self.handle(*args, **options)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
> "/usr/local/lib/python3.11/site-packages/paperless/documents/management/commands/document_importer.py",
> line 280, in handle self.load_data_to_database() File
> "/usr/local/lib/python3.11/site-packages/paperless/documents/management/commands/document_importer.py",
> line 223, in load_data_to_database raise e File
> "/usr/local/lib/python3.11/site-packages/paperless/documents/management/commands/document_importer.py",
> line 204, in load_data_to_database call_command("loaddata",
> manifest_path) File
> "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py",
> line 194, in call_command return command.execute(*args, **defaults)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
> "/usr/local/lib/python3.11/site-packages/django/core/management/base.py",
> line 459, in execute output = self.handle(*args, **options)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
> "/usr/local/lib/python3.11/site-packages/django/core/management/commands/loaddata.py",
> line 103, in handle self.loaddata(fixture_labels) File
> "/usr/local/lib/python3.11/site-packages/django/core/management/commands/loaddata.py",
> line 164, in loaddata self.load_label(fixture_label) File
> "/usr/local/lib/python3.11/site-packages/django/core/management/commands/loaddata.py",
> line 252, in load_label for obj in objects: File
> "/usr/local/lib/python3.11/site-packages/django/core/serializers/json.py",
> line 74, in Deserializer raise DeserializationError() from exc
> django.core.serializers.base.DeserializationError: Problem installing
> fixture '/tmp/paperless_216_20250920/manifest.json‘: 
> 
> 
> 
> 
> After some investigation I found out, that in the db of the FreeBSD
> variant of paperless the field remote_port is missing in the table
> logentry. Which lead me to the command 'paperless showmigrations', so
> that I could compare the migrations of my two instances. The only
> difference I found were this two migrations:
> 
> auditlog
> ...
>  [X] 0016_logentry_remote_port
>  [X] 0017_add_actor_email
> 
> Looking
> into https://github.com/jazzband/django-auditlog/tree/v3.1.0/auditlog/migrations shows, that this two migrations were introduced with version 3.1.0 of django-auditlog, but the port of paperless 2.16 is using version 3.0.0 of it.
> 
> A first very, very naive try to solve this, was to install pip via
> pkg, removing py311-dj51-django-auditlog via pkg and installing
> django-auditlog via pip. Result: import works, paperless itself
> works, but export crashes, which I use to backup the documents.
> 
> My second attempt was to use the port collection. Here what I tried:
> - installed ports collection into jail
> - adapted Makefile and distinfo in
> /usr/ports/www/py-dj51-django-auditlog with some help from claude
> code (sorry, never touched a port before)
> - pkg remove -f py311-dj51-django-auditlog
> - make install
> - pkg check -d -> Checking all packages: 100%
> - restart paperless jail
> - import of documents works
> - paperless itself works, so far I could test it
> - export of documents works
> 
> Could you please have a look into the problem?
> Please find the diff file for the port attached to this email.
> 

Hi Gerald,

Thanks for reaching out. I never hit this problem myself (probably due
to not importing documents recently, but only adding scanned documents
over scanner/consumer).

As it turns out, django-auditlog changed the spelling of their release
artifacts on pypi from django-auditlog to django_auditlog, therefore
portscout didn't pick up the new version.

I'll address the issue soon.

Cheers
Michael


-- 
Michael Gmelin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.