TracHtmlNotificationPlugin only sends text/plain

183 views
Skip to first unread message

Manuel Bilderbeek

unread,
Apr 11, 2023, 11:55:38 AM4/11/23
to Trac Users

Hi,

As plain text notifications look totally garbled in Outlook, I wanted to start sending HTML formatted notifications. So I installed the TracHtmlNotificationPlugin.

 I followed the steps from https://trac-hacks.org/wiki/TracHtmlNotificationPlugin to install it.

But whatever, I do (e.g. set the default for all users to text/html), I still get text/plain e-mails.

This is what the debug log says:

2023-04-11 13:21:43,718 Trac[loader] DEBUG: Loading trachtmlnotification.notification from /usr/local/lib/python2.7/dist-packages/TracHtmlNotificationPlugin-0.12.0.3-py2.7.egg

2023-04-11 13:21:44,090 Trac[mail] DEBUG: EmailDistributor has found the following formats capable of handling 'email' of 'ticket': text/html, text/plain

2023-04-11 13:21:44,114 Trac[mail] DEBUG: EmailDistributor is sending event as 'text/plain' to: te...@example.com

2023-04-11 13:21:44,118 Trac[mail] INFO: Sending notification through SMTP at 127.0.0.1:25 to ['te...@example.com']

 

So, I can’t really find the reason why the code decides to send as text/plain, instead of text/html.

 

What am I missing here?

 

This is Trac 1.2 on Ubuntu bionic.


Thanks for any attempt to help.


Kind regards,

Manuel Bilderbeek

RjOllos

unread,
Apr 12, 2023, 12:21:55 AM4/12/23
to Trac Users
If the installed version of Trac is 1.1.4 or later, configure to use text/html format for email distributor in the Notifications panel of the Preferences page in your Trac or set the default_format.email option to text/html in the notifications section of your trac.ini.
 

Manuel Bilderbeek

unread,
Apr 14, 2023, 10:23:09 AM4/14/23
to Trac Users
Hi,

Yes, I actually did both. So, the default is set to text/html and my personal preference has been set to text/html:
In Trac.ini under [notification]:
default_format.email = text/html

So, in my user prefs I also set it to text/html, but when I just reviewed it, I noticed it is back to text/plain. And when I change it again to text/html and save the settings, it is automatically changed back to text/plain... So I guess that's where things go wrong. Any idea why this is happening?

Op woensdag 12 april 2023 om 06:21:55 UTC+2 schreef RjOllos:

Jun Omae

unread,
Apr 16, 2023, 8:39:35 AM4/16/23
to trac-...@googlegroups.com
Hi,

On Fri, Apr 14, 2023 at 11:23 PM Manuel Bilderbeek
<manuel.bild...@gmail.com> wrote:
> Yes, I actually did both. So, the default is set to text/html and my personal preference has been set to text/html:
> In Trac.ini under [notification]:
> default_format.email = text/html
>
> So, in my user prefs I also set it to text/html, but when I just reviewed it, I noticed it is back to text/plain. And when I change it again to text/html and save the settings, it is automatically changed back to text/plain... So I guess that's where things go wrong. Any idea why this is happening?
>

It is the issue in Trac 1.2 and has been fixed in Trac 1.2.1.
Also, [notification] default_format.email option is introduced in Trac
1.2.1, doesn't exist in Trac 1.2 yet.

Please upgrade to Trac 1.2.6, at least 1.2.1.

See also: https://trac.edgewall.org/ticket/11928

--
Jun Omae <jun...@gmail.com> (大前 潤)

Manuel Bilderbeek

unread,
Apr 19, 2023, 12:23:23 AM4/19/23
to Trac Users
Hi,

OK, thanks a lot for the response. Unfortunately, the policy is to use the available Ubuntu packages only. And in Ubuntu bionic (18.04 LTS) apparently only plain 1.2 is available. The next available version seems to be 1.5.3 (in 22.04 LTS) or 1.5.4 (in the latest release), but I read on the Trac website that the 1.5 series are not considered stable. So upgrading to a newer Ubuntu version will get us a Trac 1.5 which is apparently not considered stable for production...
I'm therefore in a squeeze. Looks like I have to wait until a Trac 1.6 is available in a new Ubuntu release. Or am I missing something?
(Is 1.5.3 or 1.5.4 perhaps more stable than indicated?)

Kind regards,
Manuel
Op zondag 16 april 2023 om 14:39:35 UTC+2 schreef Jun Omae:

Jun Omae

unread,
Apr 19, 2023, 2:12:32 AM4/19/23
to trac-...@googlegroups.com
On 2023/04/17 17:55, Manuel Bilderbeek wrote:
> OK, thanks a lot for the response. Unfortunately, the policy is to use the available Ubuntu packages only. And in Ubuntu bionic (18.04 LTS) apparently only plain 1.2 is available. The next available version seems to be 1.5.3 (in 22.04 LTS) or 1.5.4 (in the latest release), but I read on the Trac website that the 1.5 series are not considered stable. So upgrading to a newer Ubuntu version will get us a Trac 1.5 which is apparently not considered stable for production...
> I'm therefore in a squeeze. Looks like I have to wait until a Trac 1.6 is available in a new Ubuntu release. Or am I missing something?
> (Is 1.5.3 or 1.5.4 perhaps more stable than indicated?)

How about creating new virtualenv and install Trac 1.2.6 and plugins to the virtualenv, rather than the Trac package in the distribution?

Manuel Bilderbeek

unread,
Apr 24, 2023, 9:12:49 AM4/24/23
to Trac Users
Hi,

Yes, that is probably possible, I'll look into it. Actually, I think I could then just uninstall the Ubuntu trac package and manually install the Trac 1.2.6 outside Ubuntu's package management as well. But I'd prefer to keep thing simple, i.e. managed by the distro package system as much as possible.

It seems a bit silly that Ubuntu put the 1.2 (.0?) in their 18.02 LTS and never updated it as updates to 1.2 were released by the trac project. If someone is willing to backport trac 1.2.6 to Ubuntu 18.02 LTS and release that with the Ubuntu maintainers, it would be great. If anyone reading this is interested to make that happen: depending on the price, my company is willing to financially sponsor that. (Feel free to contact me about that.)

Still interested in a statement about the status of 1.5.3 or 1.5.4 regarding stability in production use. How bad (or good!) is it? 
If it's good enough to just use, I can just upgrade to the latest Unbuntu LTS or 23.04 release (much better than using a 5 year old distro). I fully understand that no one is willing to give any guarantees or make promises, but a rough idea on what I can expect would be good to have. Then we could decide whether we would want to try it or not.

Thanks for all your input.

Kind regards,
Manuel Bilderbeek

Op woensdag 19 april 2023 om 08:12:32 UTC+2 schreef Jun Omae:

OSP Hathaway

unread,
Apr 28, 2023, 10:13:13 PM4/28/23
to trac-...@googlegroups.com
Trac 1.5.+ requires Python > 3.5. All plug-ins also need upgrade to a compatible Python version. 
Steve Hathaway 

--
You received this message because you are subscribed to the Google Groups "Trac Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trac-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/trac-users/fc88eb50-f69f-4d62-a189-0f64301357cdn%40googlegroups.com.

Manuel Bilderbeek

unread,
May 5, 2023, 11:50:56 AM5/5/23
to Trac Users
Hi,

Yes, I realize that they require Python 3. This would be available in a modern Ubuntu after upgrading.
Good point about the plug-ins. I guess I'll have to check whether all the currently used plugins have been upgraded to Python 3. (The ones packaged/available in Ubuntu will have been, of course.)

Apart from that: what's the risk of using Trac 1.5? Are there serious regressions that I should be aware of? So, what makes it unstable and possibly not good for production use?

Op zaterdag 29 april 2023 om 04:13:13 UTC+2 schreef OSP Hathaway:

Markus Rosjat

unread,
May 5, 2023, 12:30:37 PM5/5/23
to trac-...@googlegroups.com
hi manuel,



Am Fr., 5. Mai 2023 um 17:50 Uhr schrieb Manuel Bilderbeek <manuel.bild...@gmail.com>:
Hi,

Yes, I realize that they require Python 3. This would be available in a modern Ubuntu after upgrading.
Good point about the plug-ins. I guess I'll have to check whether all the currently used plugins have been upgraded to Python 3. (The ones packaged/available in Ubuntu will have been, of course.)


regurading the plugins, as far as i know the plugins are not provided by the OS distribution. You either get them from trac-hacks.org or if someone made a pypi package you pip install it from there. 
And here comes your problem, you need to test those ;) 

what i can confirm is that there are plugins working on my 1.5.4 test instance for the following plugins

AccountManager
TimeandEstimation
TracTags 
TracNav (works from the pipy package)
WikiForms (but thats something i just fixed for the sake of having it ported in my instance, i didnt checked if someone is working on that code)

Dan

unread,
May 5, 2023, 2:39:17 PM5/5/23
to Trac Users
Just to throw in my two cents ... Here is a list of plugins we've been running on our 1.5.4dev under Ubuntu 22.04.  It looks like it's been about a year running in a production environment, since most of the files have a May 2022 date:

Acronym.py
AllTicketsTableMacro-1.0-py3.10.egg
Blog.py
Cards-1.4-py3.10.egg
FlatTableProcessor.py
FoldMacro.py
ImportExportXLS-0.3-py3.10.egg
PackingSlipDownloadPlugin-1.0.3.1-py3.10.egg
PlannedMilestones.py
TicketReminderPlugin-0.2.2-py3.10.egg
TicketValidation-0.0.4.dev0-py3.10.egg
timingandestimationplugin-1.6.1-py3.10.egg
TracAccountManager-0.6.dev0-py3.10.egg
TracCcSelector-0.2.1-py3.10.egg
TracChildTickets-2.6.0.dev0-py3.10.egg
TracDragDrop-0.12.0.16-py3.10.egg
TracFootNoteMacro-1.6.1-py3.10.egg
TracHtmlNotificationPlugin-0.12.0.2-py3.10.egg
TracMovieMacro-0.3-py3.10.egg
TracMultiSelectField-1.0.4.dev0-py3.10.egg
TracTicketChat-1.1-py3.10.egg
TracWikiAutoComplete-1.4-py3.10.egg
TracWikiCalendarMacro-2.2.0.dev0-py3.10.egg
TracWikiExtras-1.3.2.dev0-py3.10.egg
TracWysiwyg-0.12.0.7-py3.10.egg
WikiInclude.py

Some of them are obsolete but we keep them around for sentimental (and backward compatibility) reasons.  Also, a couple are custom made (not publicly available), and some may have local edits by me (though I usually try to upload patches when I make changes).

My company has been using Trac since about 2006 (version 0.9?) and we have over 250 individual projects, though only a handful are active.

- Dan

Markus Rosjat

unread,
May 5, 2023, 2:47:02 PM5/5/23
to trac-...@googlegroups.com
Hey Dan,

I see your timeandestimation plugin has version 1.6.1 so I guess it's work you done? Is the code accessible somewhere?

Cheers

Markus

Dan Mahn

unread,
May 5, 2023, 3:04:02 PM5/5/23
to trac-...@googlegroups.com

It looks like I placed a patch here:

https://trac-hacks.org/ticket/13732

Although it looks like you've already found that.

According to my logs, the last mod I have was made April 7, 2022.

If what's on trac-hacks.org doesn't seem like it'll work for some reason (e.g. the patch I attached or whatever), I could do some more work to check what I have, or make it available somehow.

You mention filter_stream, but it seems it is already ported to Jinja.  I did a bunch of work on several plugins on that, but my memory is fading at this point.  I see the patch contains a "billing_jinja.html", for instance.

- Dan

Markus Rosjat

unread,
May 5, 2023, 3:25:45 PM5/5/23
to trac-...@googlegroups.com
Hi Dan,

Yeah I used the patch but I made the mistake to use the permission version that we dont really need. I applied the patch to the normal version and got it working so far. So no need to stress then, I made an internal repo here so I can use it for the docker stuff I am testing at the moment.

Cheers 

Markus

Manuel Bilderbeek

unread,
May 8, 2023, 4:26:28 AM5/8/23
to Trac Users
hi all,

Thanks a lot for this info. 

We have the following plugins installed as Ubuntu packages:
ii  trac-accountmanager                    0.5~r16056-1                                    all          account management plugin for Trac
ii  trac-customfieldadmin                  0.2.12+r15671-1                                 all          panel for administrating custom ticket fields in Trac
ii  trac-datefieldplugin                   0.7782-3.1                                      all          Add custom date fields to Trac tickets
ii  trac-graphviz                          0.7.5-1.1                                       all          Graphs printing plugin for Trac
ii  trac-icalviewplugin                    0.7889-1.1                                      all          Provides iCalendar feeds for ticket queries
ii  trac-mastertickets                     3.0.2+20111224-2                                all          adds inter-ticket dependencies to Trac
ii  trac-tags                              0.7+svn12392-1                                  all          Tagging plugin for Trac wiki and issue tracking system
ii  trac-wikitablemacro                    1:0.3-1                                         all          SQL Table in Wiki Page for Trac
ii  trac-wysiwyg                           0.12.0.7-1                                      all          WYSIWYG style editor for the Trac issue tracking system

I guess some are obsolete, e.g. trac-mastertickets isn't used, as we also have the following installed:
BatchModify-0.8.0_trac0.12-py2.6.egg
TicketValidator-0.2dev-py2.7.egg
TracHtmlNotificationPlugin-0.12.0.3-py2.7.egg
Tracchildtickets-2.5.5-py2.7.egg

and looks like icalviewplugin, tags , wysiwyg, graphviz, wikitablemacro and datefieldplugin aren't currently enabled either. 

So, the ones we currently definitely use and I didn't see mentioned yet are:
BatchModify
TicketValidator (but I do see TicketValidation mentioned by Dan...)

Does anyone of you have any experience with these on Trac 1.5.4?

Note that the latest Ubuntu LTS (or probably any with trac-1.5.x) doesn't seem to have any trac-plugins as Ubuntu packages available. Actually, I can't even find back these old packages, as they came from bionic, and that one isn't even on the Ubuntu website anymore (I guess due to the release of 23.04 LTS).

To be clear: our intention is to move forward (with a recent Ubuntu like 23.04 and modern Trac) and I'm just trying to figure out whether that will break something for us. Any (more) advice most welcome.

Kind regards,
Manuel Bilderbeek

Op vrijdag 5 mei 2023 om 20:39:17 UTC+2 schreef Dan:

Dan Mahn

unread,
May 8, 2023, 9:50:11 AM5/8/23
to trac-...@googlegroups.com
I think batch modification is now built-in to the base.  I don't think I
ever used the plugin, but the feature is certainly very useful.

The ticket validation plugin we use is a bit of an oddball that I've
kept around because it seemed to fit our needs.  It has a copyright
notice 2009 by Mat Booth.  IIRC there is a different one that others
would likely recommend; I don't recall right now which one.  Let me know
if you'd like to try the one I have, though I can't guarantee I would
have time to support it.

- Dan

RjOllos

unread,
May 10, 2023, 11:11:57 AM5/10/23
to Trac Users
On Friday, May 5, 2023 at 5:50:56 PM UTC+2 manuel.bild...@gmail.com wrote:

Still interested in a statement about the status of 1.5.3 or 1.5.4 regarding stability in production use. How bad (or good!) is it? 
If it's good enough to just use, I can just upgrade to the latest Unbuntu LTS or 23.04 release (much better than using a 5 year old distro). I fully understand that no one is willing to give any guarantees or make promises, but a rough idea on what I can expect would be good to have. Then we could decide whether we would want to try it or not.

Trac 1.5.4 is very stable and will be released soon as Trac 1.6. Plugin compatibility will be your main challenge.

RjOllos

unread,
May 10, 2023, 11:18:17 AM5/10/23
to Trac Users
On Monday, May 8, 2023 at 10:26:28 AM UTC+2 manuel.bild...@gmail.com wrote:
We have the following plugins installed as Ubuntu packages:
ii  trac-accountmanager                    0.5~r16056-1                                    all          account management plugin for Trac
ii  trac-customfieldadmin                  0.2.12+r15671-1                                 all          panel for administrating custom ticket fields in Trac
ii  trac-datefieldplugin                   0.7782-3.1                                      all          Add custom date fields to Trac tickets
ii  trac-graphviz                          0.7.5-1.1                                       all          Graphs printing plugin for Trac
ii  trac-icalviewplugin                    0.7889-1.1                                      all          Provides iCalendar feeds for ticket queries
ii  trac-mastertickets                     3.0.2+20111224-2                                all          adds inter-ticket dependencies to Trac
ii  trac-tags                              0.7+svn12392-1                                  all          Tagging plugin for Trac wiki and issue tracking system
ii  trac-wikitablemacro                    1:0.3-1                                         all          SQL Table in Wiki Page for Trac
ii  trac-wysiwyg                           0.12.0.7-1                                      all          WYSIWYG style editor for the Trac issue tracking system

I guess some are obsolete, e.g. trac-mastertickets isn't used, as we also have the following installed:
BatchModify-0.8.0_trac0.12-py2.6.egg
TicketValidator-0.2dev-py2.7.egg
TracHtmlNotificationPlugin-0.12.0.3-py2.7.egg
Tracchildtickets-2.5.5-py2.7.egg

and looks like icalviewplugin, tags , wysiwyg, graphviz, wikitablemacro and datefieldplugin aren't currently enabled either. 

Right, TracDateField isn't needed as of Trac 1.2. See notice at top of the page:
 

So, the ones we currently definitely use and I didn't see mentioned yet are:
BatchModify
TicketValidator (but I do see TicketValidation mentioned by Dan...)

Does anyone of you have any experience with these on Trac 1.5.4?

If the wiki page is tagged with 1.6, it should work. This is true for TracTicketValidator:

Full list here:

You may need to pip install directly from the SVN repository in some cases, like with TracAccountManager.

My strongest recommendation is to start small and build up. Setup Trac 1.5.4 and migrate your data. Add plugins one at a time and test them. Only add what you need because the more plugins you have the more likely one of them will interact poorly or break the site due to a defect or incompatibility,

Manuel Bilderbeek

unread,
Jun 18, 2026, 5:38:39 AM (6 days ago) Jun 18
to Trac Users
Hello all,

Getting back to the original subject. We have finally migrated our system to Trac 1.6 via Ubuntu 26.04.

The notifications are now indeed in HTML. However, it just shows the whole ticket in HTML. It doesn't display the changes at all. Is that to be expected?
We have no custom ticket_notify_email.txt or something.

Op woensdag 10 mei 2023 om 17:18:17 UTC+2 schreef RjOllos:

Jun Omae

unread,
Jun 18, 2026, 7:44:30 AM (5 days ago) Jun 18
to trac-...@googlegroups.com
On Thu, Jun 18, 2026 at 6:38 PM Manuel Bilderbeek
<manuel.bild...@gmail.com> wrote:
>
> Hello all,
>
> Getting back to the original subject. We have finally migrated our system to Trac 1.6 via Ubuntu 26.04.
>
> The notifications are now indeed in HTML. However, it just shows the whole ticket in HTML. It doesn't display the changes at all. Is that to be expected?
> We have no custom ticket_notify_email.txt or something.
>

Works for me. See the attached image and mail.
Please explain in the details and share the received mail (or screenshot).
ticket-changed.png
3pshKCvGn7tWHGLCpiZ8Y8.eml.gz

Manuel Bilderbeek

unread,
Jun 19, 2026, 7:40:10 AM (4 days ago) Jun 19
to Trac Users
OK, thanks for your response. Let me show you what I see:

1. I created a new ticket with a Description. Got an e-mail with that ticket:
Screenshot 2026-06-19 133044.png
2. Added a comment to the ticket. Got an e-mail with the same contents, except for "Last modified" addition:
Screenshot 2026-06-19 133227.png
3. Added a keyword to the Keyword field and added another comment.  Got an e-mail with the same contents again (didn't add a screenshot, it just had a different Last modified time).

When I look at the ticket in Trac, I see all changes nicely:
Screenshot 2026-06-19 133346.png
So, what is going wrong?

These are the relevant settings I think:
[notification]
admit_domains =
default_format.email = text/html
ignore_domains =
mime_encoding = base64
smtp_always_bcc =
smtp_always_cc =
smtp_default_domain =
smtp_enabled = enabled
smtp_from = scra...@scrambled.com
smtp_from_name = ASMPT Trac database
smtp_password =
smtp_port = 25
smtp_replyto = nor...@nothing.net
smtp_server = 127.0.0.1
smtp_subject_prefix = __default__
smtp_user =
ticket_subject_template = ${prefix} #${ticket.id}: ${summary}
use_public_cc = disabled
use_short_addr = disabled
use_tls = disabled

[notification-subscriber]
always_notify_cc = CarbonCopySubscriber
always_notify_previous_updater = TicketPreviousUpdatersSubscriber
always_notify_updater = TicketUpdaterSubscriber

Op donderdag 18 juni 2026 om 13:44:30 UTC+2 schreef Jun Omae:

Jun Omae

unread,
Jun 19, 2026, 9:06:22 AM (4 days ago) Jun 19
to trac-...@googlegroups.com
I guess that you're installing a custom htmlnotification_ticket.html into "templates" directory in the tracenv. If so, the custom template has this issue. Gmail ignores the style in the HTML mail using original htmlnotification_ticket.html.


--
You received this message because you are subscribed to the Google Groups "Trac Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trac-users+...@googlegroups.com.

Manuel Bilderbeek

unread,
Jun 19, 2026, 10:46:47 AM (4 days ago) Jun 19
to Trac Users
Where should that be? 

alsi-lnx:/srv/trac/projects/swdev$ ls -la templates/
total 12
drwxr-xr-x  2 www-data www-data 4096 Jun 14  2013 .
drwxrwxr-x 12 www-data www-data 4096 Apr 15  2025 ..
-rw-r--r--  1 www-data www-data  154 Mar 19  2009 site.html
alsi-lnx:/srv/trac/projects/swdev$

There is only site.html there, nothing else.... am I looking at the wrong place?

Op vrijdag 19 juni 2026 om 15:06:22 UTC+2 schreef Jun Omae:

Jun Omae

unread,
Jun 21, 2026, 1:34:49 AM (3 days ago) Jun 21
to trac-...@googlegroups.com
On Fri, Jun 19, 2026 at 11:46 PM Manuel Bilderbeek
<manuel.bild...@gmail.com> wrote:
>
> Where should that be?
>
> alsi-lnx:/srv/trac/projects/swdev$ ls -la templates/
> total 12
> drwxr-xr-x 2 www-data www-data 4096 Jun 14 2013 .
> drwxrwxr-x 12 www-data www-data 4096 Apr 15 2025 ..
> -rw-r--r-- 1 www-data www-data 154 Mar 19 2009 site.html
> alsi-lnx:/srv/trac/projects/swdev$
>
> There is only site.html there, nothing else.... am I looking at the wrong place?

Hm, it seems that you have no custom htmlnotification_ticket.html but
it is unable to reproduce the issue with Trac 1.6, this plugin and
fresh Trac Environment.

Please share the following information if possible:

* System Information, Installed Plugins and Interface Customization
from /about page in your Trac
* trac.ini

Manuel Bilderbeek

unread,
Jun 22, 2026, 3:55:28 AM (yesterday) Jun 22
to Trac Users
Hi,

Here is the requested information.

System Information

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36


Package
Version

Trac
1.6

Babel
2.17.0

Docutils
0.22.4

GIT
2.53.0

Jinja2
3.1.6

mod_wsgi
5.0.2 (WSGIProcessGroup WSGIApplicationGroup %{GLOBAL})

Pygments
2.19.2

pysqlite
2.6.0

Python
3.14.4 (main, Apr 8 2026, 04:02:31) [GCC 15.2.0]

pytz
2025.2

setuptools
78.1.1

SQLite
3.46.1

Subversion
1.14.5 (r1922182)

jQuery
3.7.1

jQuery UI
1.13.2

jQuery Timepicker
1.6.3
Installed Plugins
Name
VersionLocation

acct-mgr.admin
N/A/usr/lib/python3/dist-packages/acct_mgr/admin.py

acct-mgr.api
N/A/usr/lib/python3/dist-packages/acct_mgr/api.py

acct-mgr.db
N/A/usr/lib/python3/dist-packages/acct_mgr/db.py

acct-mgr.guard
N/A/usr/lib/python3/dist-packages/acct_mgr/guard.py

acct-mgr.htfile
N/A/usr/lib/python3/dist-packages/acct_mgr/htfile.py

acct-mgr.http
N/A/usr/lib/python3/dist-packages/acct_mgr/http.py

acct-mgr.macros
N/A/usr/lib/python3/dist-packages/acct_mgr/macros.py

acct-mgr.model
N/A/usr/lib/python3/dist-packages/acct_mgr/model.py

acct-mgr.notification
N/A/usr/lib/python3/dist-packages/acct_mgr/notification.py

acct-mgr.pwhash
N/A/usr/lib/python3/dist-packages/acct_mgr/pwhash.py

acct-mgr.register
N/A/usr/lib/python3/dist-packages/acct_mgr/register.py

acct-mgr.svnserve
N/A/usr/lib/python3/dist-packages/acct_mgr/svnserve.py

acct-mgr.web-ui
N/A/usr/lib/python3/dist-packages/acct_mgr/web_ui.py

customfieldadmin.admin
N/A/usr/lib/python3/dist-packages/customfieldadmin/admin.py

customfieldadmin.api
N/A/usr/lib/python3/dist-packages/customfieldadmin/api.py

TicketValidator
0.2.dev0/srv/trac/projects/swdev/plugins/TicketValidator-0.2.dev0-py3.14.egg

trac.about
N/A/usr/lib/python3/dist-packages/trac/about.py

trac.admin.api
N/A/usr/lib/python3/dist-packages/trac/admin/api.py

trac.admin.console
N/A/usr/lib/python3/dist-packages/trac/admin/console.py

trac.admin.web-ui
N/A/usr/lib/python3/dist-packages/trac/admin/web_ui.py

trac.attachment
N/A/usr/lib/python3/dist-packages/trac/attachment.py

trac.cache
N/A/usr/lib/python3/dist-packages/trac/cache.py

trac.config
N/A/usr/lib/python3/dist-packages/trac/config.py

trac.db.api
N/A/usr/lib/python3/dist-packages/trac/db/api.py

trac.db.sqlite-backend
N/A/usr/lib/python3/dist-packages/trac/db/sqlite_backend.py

trac.env
N/A/usr/lib/python3/dist-packages/trac/env.py

trac.mimeview.api
N/A/usr/lib/python3/dist-packages/trac/mimeview/api.py

trac.mimeview.patch
N/A/usr/lib/python3/dist-packages/trac/mimeview/patch.py

trac.mimeview.pygments
N/A/usr/lib/python3/dist-packages/trac/mimeview/pygments.py

trac.mimeview.rst
N/A/usr/lib/python3/dist-packages/trac/mimeview/rst.py

trac.notification.api
N/A/usr/lib/python3/dist-packages/trac/notification/api.py

trac.notification.mail
N/A/usr/lib/python3/dist-packages/trac/notification/mail.py

trac.notification.prefs
N/A/usr/lib/python3/dist-packages/trac/notification/prefs.py

trac.perm
N/A/usr/lib/python3/dist-packages/trac/perm.py

trac.prefs.web-ui
N/A/usr/lib/python3/dist-packages/trac/prefs/web_ui.py

trac.resource
N/A/usr/lib/python3/dist-packages/trac/resource.py

trac.search.web-ui
N/A/usr/lib/python3/dist-packages/trac/search/web_ui.py

trac.ticket.admin
N/A/usr/lib/python3/dist-packages/trac/ticket/admin.py

trac.ticket.api
N/A/usr/lib/python3/dist-packages/trac/ticket/api.py

trac.ticket.batch
N/A/usr/lib/python3/dist-packages/trac/ticket/batch.py

trac.ticket.default-workflow
N/A/usr/lib/python3/dist-packages/trac/ticket/default_workflow.py

trac.ticket.model
N/A/usr/lib/python3/dist-packages/trac/ticket/model.py

trac.ticket.notification
N/A/usr/lib/python3/dist-packages/trac/ticket/notification.py

trac.ticket.query
N/A/usr/lib/python3/dist-packages/trac/ticket/query.py

trac.ticket.report
N/A/usr/lib/python3/dist-packages/trac/ticket/report.py

trac.ticket.roadmap
N/A/usr/lib/python3/dist-packages/trac/ticket/roadmap.py

trac.ticket.web-ui
N/A/usr/lib/python3/dist-packages/trac/ticket/web_ui.py

trac.timeline.web-ui
N/A/usr/lib/python3/dist-packages/trac/timeline/web_ui.py

trac.versioncontrol.admin
N/A/usr/lib/python3/dist-packages/trac/versioncontrol/admin.py

trac.versioncontrol.api
N/A/usr/lib/python3/dist-packages/trac/versioncontrol/api.py

trac.versioncontrol.svn-authz
N/A/usr/lib/python3/dist-packages/trac/versioncontrol/svn_authz.py

trac.versioncontrol.web-ui.browser
N/A/usr/lib/python3/dist-packages/trac/versioncontrol/web_ui/browser.py

trac.versioncontrol.web-ui.changeset
N/A/usr/lib/python3/dist-packages/trac/versioncontrol/web_ui/changeset.py

trac.versioncontrol.web-ui.log
N/A/usr/lib/python3/dist-packages/trac/versioncontrol/web_ui/log.py

trac.web.auth
N/A/usr/lib/python3/dist-packages/trac/web/auth.py

trac.web.chrome
N/A/usr/lib/python3/dist-packages/trac/web/chrome.py

trac.web.main
N/A/usr/lib/python3/dist-packages/trac/web/main.py

trac.web.session
N/A/usr/lib/python3/dist-packages/trac/web/session.py

trac.wiki.admin
N/A/usr/lib/python3/dist-packages/trac/wiki/admin.py

trac.wiki.api
N/A/usr/lib/python3/dist-packages/trac/wiki/api.py

trac.wiki.intertrac
N/A/usr/lib/python3/dist-packages/trac/wiki/intertrac.py

trac.wiki.interwiki
N/A/usr/lib/python3/dist-packages/trac/wiki/interwiki.py

trac.wiki.macros
N/A/usr/lib/python3/dist-packages/trac/wiki/macros.py

trac.wiki.parser
N/A/usr/lib/python3/dist-packages/trac/wiki/parser.py

trac.wiki.web-api
N/A/usr/lib/python3/dist-packages/trac/wiki/web_api.py

trac.wiki.web-ui
N/A/usr/lib/python3/dist-packages/trac/wiki/web_ui.py

TracChildTickets
2.6.0.dev0/srv/trac/projects/swdev/plugins/TracChildTickets-2.6.0.dev0-py3.14.egg

TracDragDrop
0.12.0.18/srv/trac/projects/swdev/plugins/TracDragDrop-0.12.0.18-py3.14.egg

TracHtmlNotificationPlugin
0.12.0.4/srv/trac/projects/swdev/plugins/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg

tracopt.perm.authz-policy
N/A/usr/lib/python3/dist-packages/tracopt/perm/authz_policy.py

tracopt.perm.config-perm-provider
N/A/usr/lib/python3/dist-packages/tracopt/perm/config_perm_provider.py

tracopt.ticket.clone
N/A/usr/lib/python3/dist-packages/tracopt/ticket/clone.py

tracopt.ticket.commit-updater
N/A/usr/lib/python3/dist-packages/tracopt/ticket/commit_updater.py

tracopt.ticket.deleter
N/A/usr/lib/python3/dist-packages/tracopt/ticket/deleter.py

tracopt.versioncontrol.git.git-fs
N/A/usr/lib/python3/dist-packages/tracopt/versioncontrol/git/git_fs.py

tracopt.versioncontrol.svn.svn-fs
N/A/usr/lib/python3/dist-packages/tracopt/versioncontrol/svn/svn_fs.py

tracopt.versioncontrol.svn.svn-prop
N/A/usr/lib/python3/dist-packages/tracopt/versioncontrol/svn/svn_prop.py

TracPrivateTickets
2.4.0.dev0/srv/trac/projects/swdev/plugins/TracPrivateTickets-2.4.0.dev0-py3.14.egg

TracTicketTemplate
1.0.1.dev0/srv/trac/projects/swdev/plugins/TracTicketTemplate-1.0.1.dev0-py3.14.egg

tracwysiwyg
N/A/usr/lib/python3/dist-packages/tracwysiwyg/__init__.py
Interface Customization
Site templates
site.html

Shared templates

Site static resources
logo-old.png logo.png siminst_admin_region_settings.png siminst_cmd_as_admin.png siminst_cmd_as_user.png siminst_extract_dialog.png siminst_extracting_progress_dialog.png siminst_formats_settings.png siminst_language_settings.png siminst_login_button.png siminst_main_language.png siminst_region_settings.png siminst_search_cmd.png siminst_settings.png siminst_settings_for_time.png siminst_system_id.png siminst_system_locale_settings.png siminst_system_settings.png siminst_time_settings.png siminst_tools_button.png siminst_uninstall_dialog.png siminst_uninstall_prereq.png

Shared static resources


It looks like it got a little garbled when copy-pasting from the web page, but I guess it's clear enough? Let me know if you prefer plaintext pasting.

I will also paste trac.ini, but I had to remove some things that are better not put in the open due to company policies. These are marked with <REMOVED>. I'm glad this installation is not accessible from the internet ;-)

# -*- coding: utf-8 -*-

[account-manager]
auth_init = enabled
db_htdigest_realm =
db_htpasswd_hash_type = crypt
force_passwd_change = disabled
hash_method = HtDigestHashMethod
htpasswd_file = /srv/.htpasswd
htpasswd_hash_type = crypt
password_store = HtPasswdStore
persistent_sessions = disabled
refresh_passwd = disabled
register_check = BasicCheck
user_lock_max_time = 86400
verify_email = disabled

[attachment]
max_size = 314572800
render_unsafe_content = disabled

[browser]
color_scale = enabled
downloadable_paths = /trunk,/branches/*,/tags/*
hide_properties = svk:merge
intermediate_color =
intermediate_point =
newest_color = (255, 136, 136)
oldest_color = (136, 136, 255)
oneliner_properties = trac:summary
render_unsafe_content = disabled
wiki_properties = trac:description

[changeset]
max_diff_bytes = 10000000
max_diff_files = 0
wiki_format_messages = enabled

[childtickets]
parent.defect.allow_child_tickets = True
parent.defect.default_child_type = defect
parent.defect.inherit = function,component,priority,version,milestone,keywords
parent.defect.restrict_child_type = enhancement,task (software),defect,obsolescence
parent.defect.table_headers = status,component,summary,priority,milestone,owner,type
parent.enhancement.allow_child_tickets = True
parent.enhancement.default_child_type = enhancement
parent.enhancement.inherit = function,component,priority,version,milestone,keywords
parent.enhancement.restrict_child_type = enhancement,task (software),defect,obsolescence
parent.enhancement.table_headers = status,component,summary,priority,milestone,owner,type
parent.obsolescence.allow_child_tickets = True
parent.obsolescence.inherit = component,priority,version,milestone,keywords
parent.obsolescence.restrict_child_type = obsolescence,defect,task (software),enhancement
parent.obsolescence.table_headers = status,component,summary,priority,milestone,owner,type
parent.task (software).allow_child_tickets = True
parent.task (software).default_child_type = task (software)
parent.task (software).inherit = function,component,priority,version,milestone,keywords
parent.task (software).restrict_child_type = enhancement,task (software),defect,obsolescence
parent.task (software).table_headers = status,component,summary,priority,milestone,owner,type

[components]
tracdragdrop.* = enabled
acct_mgr.admin.accountmanageradminpage = disabled
acct_mgr.admin.accountmanageradminpanel = enabled
acct_mgr.admin.configurationadminpanel = enabled
acct_mgr.admin.useradminpanel = enabled
acct_mgr.api.accountmanager = enabled
acct_mgr.db.sessionstore = enabled
acct_mgr.htfile.abstractpasswordfilestore = disabled
acct_mgr.htfile.htdigeststore = disabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.http.httpauthstore = disabled
acct_mgr.notification.accountchangelistener = disabled
acct_mgr.notification.accountchangenotificationadminpanel = disabled
acct_mgr.pwhash.htdigesthashmethod = enabled
acct_mgr.pwhash.htpasswdhashmethod = enabled
acct_mgr.register.basiccheck = enabled
acct_mgr.register.registrationmodule = enabled
acct_mgr.svnserve.svnservepasswordstore = disabled
acct_mgr.web_ui.accountmodule = disabled
acct_mgr.web_ui.emailverificationmodule = disabled
acct_mgr.web_ui.loginmodule = disabled
acct_mgr.web_ui.registrationmodule = disabled
batchmod.web_ui.* = enabled
batchmod.web_ui.batchmodifymodule = disabled
childtickets.* = enabled
childtickets.admin.childticketsadminpanel = enabled
childtickets.childtickets.tracchildticketsmodule = enabled
customfieldadmin.admin.customfieldadminpage = enabled
customfieldadmin.api.customfields = enabled
customfieldadmin.customfieldadmin.customfieldadminpage = enabled
privatetickets.* = enabled
ticketdelete.web_ui.* = enabled
ticketdelete.web_ui.ticketdeleteplugin = disabled
ticketmodifiedfiles.* = enabled
ticketmodifiedfiles.ticketmodifiedfiles.ticketmodifiedfilesplugin = enabled
ticketstats.* = enabled
ticketstats.ticketstats.ticketstatsplugin = enabled
tickettemplate.* = enabled
tickettemplate.ttadmin.tickettemplatemodule = enabled
ticketvalidator.admin.ticketvalidatoradminpanelprovider = enabled
ticketvalidator.core.requiredfieldvalidator = enabled
trachtmlnotification.* = enabled
tracopt.ticket.commit_updater.committicketupdater = enabled
tracopt.ticket.commit_updater.committicketreferencemacro = enabled
tracopt.versioncontrol.git.git_fs.csetpropertyrenderer = enabled
tracopt.versioncontrol.git.git_fs.gitconnector = enabled
tracopt.versioncontrol.git.git_fs.gitwebprojectsrepositoryprovider = enabled
tracopt.versioncontrol.svn.svn_fs.subversionconnector = enabled
tracopt.versioncontrol.svn.svn_prop.subversionmergepropertydiffrenderer = enabled
tracopt.versioncontrol.svn.svn_prop.subversionmergepropertyrenderer = enabled
tracopt.versioncontrol.svn.svn_prop.subversionpropertyrenderer = enabled
tracwysiwyg.templateprovider = enabled
tracwysiwyg.wysiwygwikifilter = enabled

[gitweb-repositories]
projects_base =
projects_list =
projects_url =
sync_per_request =

[header_logo]
alt = ASMPT ALSI Trac database
src = site/logo.png

[inherit]
plugins_dir = /srv/trac/projects/
templates_dir =

[logging]
log_file = trac.log
log_level = WARN
log_type = file

[mainnav]
browser.order = 4.0
newticket.order = 6.0
roadmap.order = 3.0
search.order = 7.0
tickets.order = 5.0
timeline.order = 2.0
wiki.order = 1.0

[metanav]
about.order = 5.0
help.order = 4.0
login.order = 1.0
logout.order = 2.0
prefs.order = 3.0

[milestone]
stats_provider = DefaultTicketGroupStatsProvider

[mimeviewer]
enscript_modes = text/x-dylan:dylan:4
enscript_path = enscript
max_preview_size = 12621440
mime_map = text/x-dylan:dylan,text/x-idl:ice,text/x-ada:ads:adb
php_path = php
tab_width = 8


[notification]
admit_domains =
default_format.email = text/html
ignore_domains =
mime_encoding = base64
smtp_always_bcc =
smtp_always_cc =
smtp_default_domain =
smtp_enabled = enabled
smtp_from = <REMOVED>

smtp_from_name = ASMPT Trac database
smtp_password =
smtp_port = 25
smtp_replyto = nor...@nothing.net
smtp_server = 127.0.0.1
smtp_subject_prefix = __default__
smtp_user =
ticket_subject_template = ${prefix} #${ticket.id}: ${summary}
use_public_cc = disabled
use_short_addr = disabled
use_tls = disabled

[notification-subscriber]
always_notify_cc = CarbonCopySubscriber
always_notify_previous_updater = TicketPreviousUpdatersSubscriber
always_notify_updater = TicketUpdaterSubscriber

[privatetickets]
group_blacklist = anonymous,authenticated

[project]
admin =
descr = Ticketing system for ASMPT ALSI
footer = Visit the Trac open source project at<br /><a href="http://trac.edgewall.org/">http://trac.edgewall.org/</a>
icon = common/trac.ico
name = ASMPT ALSI Development
url =

[query]
default_anonymous_query = status!=closed&cc~=$USER
default_query = status!=closed&owner=$USER
items_per_page = 100

[report]
items_per_page = 100
items_per_page_rss = 0

[repositories]
.dir = /srv/svn/SVN_LSS_REPOS

[revisionlog]
default_log_limit = 100

[roadmap]
stats_provider = DefaultTicketGroupStatsProvider

[search]
min_query_length = 3

[svn]
authz_file =
authz_module_name =
branches = trunk,branches/*
tags = tags/*

[ticket]
commit_ticket_update_check_perms = disabled
commit_ticket_update_commands.close =
commit_ticket_update_commands.refs = <ALL>
commit_ticket_update_envelope = []
commit_ticket_update_notify = enabled
default_cc =
default_component = Unknown
default_description =
default_keywords =
default_milestone = Unspecified
default_owner = ccb
default_priority = <not set>
default_resolution = fixed
default_severity = <not set>
default_summary =
default_type = defect
default_version = All
max_comment_size = 262144
max_description_size = 262144
preserve_newlines = default
restrict_owner = enabled
workflow = ConfigurableTicketWorkflow

[ticket-custom]
chance = select
chance.label = Chance of occurrence
chance.options = <REMOVED>
chance.order = 5
chance.value = Chance of occurence
customer = select
customer.label = Customer
customer.options = <REMOVED>
customer.order = 7
customer.value =
function = select
function.label = Function
function.options = <REMOVED>
function.order = 1
function.value =
machinetype = select
machinetype.label = Machine Type
machinetype.options = <REMOVED>
machinetype.order = 2
machinetype.value = None
parent = text
parent.format = wiki
parent.label = Parent ID
parent.order = 3
parent.value =
project = select
project.label = Project
project.options = <REMOVED>
project.order = 0
project.value =
supplier = select
supplier.label = Supplier
supplier.options = <REMOVED>
supplier.order = 6
supplier.value = None
valuedriver = select
valuedriver.label = Value Driver
valuedriver.options = <REMOVED>
valuedriver.order = 4
valuedriver.value = None

[ticket-workflow]
analyse = new,reopened,analysed,solved,analysing -> analysing
analyse.operations = set_owner
analyse.permissions = TICKET_MODIFY
analysed = analysing -> analysed
analysed.operations = set_owner
analysed.permissions = TICKET_MODIFY
approved = new,analysed,solved -> closed
approved.operations = set_resolution
approved.permissions = TICKET_MODIFY
create = <none> -> new
create.default = 1
leave = * -> *
leave.default = 1
leave.operations = leave_status
reassign = new,analysed,solved,reopened,assigned -> assigned
reassign.operations = set_owner
reassign.permissions = TICKET_MODIFY
reopen = closed -> reopened
reopen.operations = del_resolution
reopen.permissions = TICKET_CREATE
resolved = assigned -> solved
resolved.operations = set_owner
resolved.permissions = TICKET_MODIFY

[tickettemplate]
enable_custom = enabled
field_list = summary,description,reporter,owner,priority,cc,milestone,component,version,type

[ticketvalidator]
assigned.required = project, summary, customer, supplier, function, severity, priority, valuedriver, machinetype
new.required = project, summary, customer, supplier, function, severity, priority, valuedriver, machinetype

[timeline]
abbreviated_messages = enabled
changeset_collapse_events = disabled
changeset_long_messages = disabled
changeset_show_files = 0
default_daysback = 30
max_daysback = 90
newticket_formatter = oneliner
ticket_show_details = disabled

[trac]
auto_reload = disabled
base_url = https://alsi-lnx.alsi.local/trac/swdev
check_auth_ip = disabled
database = sqlite:db/trac.db
default_charset = iso-8859-15
default_date_format =
default_dateinfo_format = relative
default_handler = WikiModule
default_language =
default_timezone =
htdocs_location =
ignore_auth_case = disabled
permission_policies = DefaultWikiPolicy,DefaultTicketPolicy,DefaultPermissionPolicy,LegacyAttachmentPolicy
permission_store = DefaultPermissionStore
secure_cookies = disabled
show_email_addresses = disabled
timeout = 20
use_base_url_for_redirect = disabled

[versioncontrol]
default_repository_type = svn

[wiki]
ignore_missing_pages = disabled
max_size = 262144
render_unsafe_content = disabled
split_page_names = disabled

Thanks again for your continuous support.
Op zondag 21 juni 2026 om 07:34:49 UTC+2 schreef Jun Omae:

Jun Omae

unread,
Jun 22, 2026, 9:06:00 AM (yesterday) Jun 22
to trac-...@googlegroups.com
Trying to reproduce it on fresh Ubuntu 26.04 environment on a
container but it is unable to reproduce.

I suspect that your PYTHON_EGG_CACHE directory has old files which are
extracted from old egg files. If PYTHON_EGG_CACHE directory is used,
try to make the directory empty.

See also https://trac.edgewall.org/wiki/TracModWSGI#Thetrac.wsgiscript

If PYTHON_EGG_CACHE directory is used, I don't recommend to install
egg files to plugins directory of the project. Instead, I recommend to
install to "lib" directory of venv. Otherwise, extract the egg files
to plugins/<name>.egg directory.

e.g.
$ unzip -x dist/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg -d
tracenv/plugins/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg


On Mon, Jun 22, 2026 at 4:55 PM Manuel Bilderbeek
> --
> You received this message because you are subscribed to the Google Groups "Trac Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to trac-users+...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/trac-users/80ff24ca-c201-4cb8-8f50-0a934c225acfn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages