Re: [Trac] Re: TracHtmlNotificationPlugin only sends text/plain

Manuel Bilderbeek <[email protected]> Thu, 25 Jun 2026 01:31:13 -0700 (PDT)
Newsgroups gmane.comp.version-control.subversion.trac.general
Message-ID <[email protected]>
------=_Part_57034_2029018067.1782376273019
Content-Type: multipart/alternative; 
	boundary="----=_Part_57035_565108968.1782376273019"

------=_Part_57035_565108968.1782376273019
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Yes, PYTHON_EGG_CACHE is used and it is set on /srv/trac/eggs in=20
/srv/trac/apache/trac.wsgi:
$ cat /srv/trac/apache/trac.wsgi
import sys
sys.stdout =3D sys.stderr

import site
site.addsitedir('/usr/lib/python2.7/dist-packages/')

import os
os.environ['TRAC_ENV_PARENT_DIR'] =3D '/srv/trac/projects'
os.environ['PYTHON_EGG_CACHE'] =3D '/srv/trac/eggs'

import trac.web.main

application =3D trac.web.main.dispatch_request

I cleaned this /srv/trac/eggs directory and did an updatedb/locate after=20
restarting apache2:

$ locate TracHtmlNotification
/srv/trac/eggs/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg-tmp
/srv/trac/eggs/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg-tmp/trachtmln=
otification
/srv/trac/eggs/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg-tmp/trachtmln=
otification/templates
/srv/trac/eggs/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg-tmp/trachtmln=
otification/templates/jinja2
/srv/trac/eggs/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg-tmp/trachtmln=
otification/templates/jinja2/htmlnotification_ticket.html
/srv/trac/projects/swdev/plugins/TracHtmlNotificationPlugin-0.12.0.4-py3.14=
.egg

$ locate htmlnotification_ticket
/srv/trac/eggs/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg-tmp/trachtmln=
otification/templates/jinja2/htmlnotification_ticket.html

I guess this looks OK, but I still do not get the proper diffs in the=20
e-mail after all of this. What am I missing here?

Should I move the installation of the egg(s)? I'm not sure where exactly it=
=20
should be moved to. /srv/trac/lib? /srv/trac/projects/lib?

Op maandag 22 juni 2026 om 15:06:00 UTC+2 schreef Jun Omae:

> 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=E2=80=AFPM Manuel Bilderbeek
> <[email protected]> wrote:
> >
> > Hi,
> >
> > Here is the requested information.
> >
> > System Information
> >
> > User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.3=
6=20
> (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36
> >
> >
> > PackageVersion
> > Trac1.6
> > Babel2.17.0
> > Docutils0.22.4
> > GIT2.53.0
> > Jinja23.1.6
> > mod_wsgi5.0.2 (WSGIProcessGroup WSGIApplicationGroup %{GLOBAL})
> > Pygments2.19.2
> > pysqlite2.6.0
> > Python3.14.4 (main, Apr 8 2026, 04:02:31) [GCC 15.2.0]
> > pytz2025.2
> > setuptools78.1.1
> > SQLite3.46.1
> > Subversion1.14.5 (r1922182)
> > jQuery3.7.1
> > jQuery UI1.13.2
> > jQuery Timepicker1.6.3
> > Installed Plugins
> > NameVersionLocation
> > acct-mgr.adminN/A/usr/lib/python3/dist-packages/acct_mgr/admin.py
> > acct-mgr.apiN/A/usr/lib/python3/dist-packages/acct_mgr/api.py
> > acct-mgr.dbN/A/usr/lib/python3/dist-packages/acct_mgr/db.py
> > acct-mgr.guardN/A/usr/lib/python3/dist-packages/acct_mgr/guard.py
> > acct-mgr.htfileN/A/usr/lib/python3/dist-packages/acct_mgr/htfile.py
> > acct-mgr.httpN/A/usr/lib/python3/dist-packages/acct_mgr/http.py
> > acct-mgr.macrosN/A/usr/lib/python3/dist-packages/acct_mgr/macros.py
> > acct-mgr.modelN/A/usr/lib/python3/dist-packages/acct_mgr/model.py
> >=20
> acct-mgr.notificationN/A/usr/lib/python3/dist-packages/acct_mgr/notificat=
ion.py
> > acct-mgr.pwhashN/A/usr/lib/python3/dist-packages/acct_mgr/pwhash.py
> > acct-mgr.registerN/A/usr/lib/python3/dist-packages/acct_mgr/register.py
> > acct-mgr.svnserveN/A/usr/lib/python3/dist-packages/acct_mgr/svnserve.py
> > acct-mgr.web-uiN/A/usr/lib/python3/dist-packages/acct_mgr/web_ui.py
> >=20
> customfieldadmin.adminN/A/usr/lib/python3/dist-packages/customfieldadmin/=
admin.py
> >=20
> customfieldadmin.apiN/A/usr/lib/python3/dist-packages/customfieldadmin/ap=
i.py
> >=20
> TicketValidator0.2.dev0/srv/trac/projects/swdev/plugins/TicketValidator-0=
.2.dev0-py3.14.egg
> > trac.aboutN/A/usr/lib/python3/dist-packages/trac/about.py
> > trac.admin.apiN/A/usr/lib/python3/dist-packages/trac/admin/api.py
> > trac.admin.consoleN/A/usr/lib/python3/dist-packages/trac/admin/console.=
py
> > trac.admin.web-uiN/A/usr/lib/python3/dist-packages/trac/admin/web_ui.py
> > trac.attachmentN/A/usr/lib/python3/dist-packages/trac/attachment.py
> > trac.cacheN/A/usr/lib/python3/dist-packages/trac/cache.py
> > trac.configN/A/usr/lib/python3/dist-packages/trac/config.py
> > trac.db.apiN/A/usr/lib/python3/dist-packages/trac/db/api.py
> >=20
> trac.db.sqlite-backendN/A/usr/lib/python3/dist-packages/trac/db/sqlite_ba=
ckend.py
> > trac.envN/A/usr/lib/python3/dist-packages/trac/env.py
> > trac.mimeview.apiN/A/usr/lib/python3/dist-packages/trac/mimeview/api.py
> >=20
> trac.mimeview.patchN/A/usr/lib/python3/dist-packages/trac/mimeview/patch.=
py
> >=20
> trac.mimeview.pygmentsN/A/usr/lib/python3/dist-packages/trac/mimeview/pyg=
ments.py
> > trac.mimeview.rstN/A/usr/lib/python3/dist-packages/trac/mimeview/rst.py
> >=20
> trac.notification.apiN/A/usr/lib/python3/dist-packages/trac/notification/=
api.py
> >=20
> trac.notification.mailN/A/usr/lib/python3/dist-packages/trac/notification=
/mail.py
> >=20
> trac.notification.prefsN/A/usr/lib/python3/dist-packages/trac/notificatio=
n/prefs.py
> > trac.permN/A/usr/lib/python3/dist-packages/trac/perm.py
> > trac.prefs.web-uiN/A/usr/lib/python3/dist-packages/trac/prefs/web_ui.py
> > trac.resourceN/A/usr/lib/python3/dist-packages/trac/resource.py
> > trac.search.web-uiN/A/usr/lib/python3/dist-packages/trac/search/web_ui.=
py
> > trac.ticket.adminN/A/usr/lib/python3/dist-packages/trac/ticket/admin.py
> > trac.ticket.apiN/A/usr/lib/python3/dist-packages/trac/ticket/api.py
> > trac.ticket.batchN/A/usr/lib/python3/dist-packages/trac/ticket/batch.py
> >=20
> trac.ticket.default-workflowN/A/usr/lib/python3/dist-packages/trac/ticket=
/default_workflow.py
> > trac.ticket.modelN/A/usr/lib/python3/dist-packages/trac/ticket/model.py
> >=20
> trac.ticket.notificationN/A/usr/lib/python3/dist-packages/trac/ticket/not=
ification.py
> > trac.ticket.queryN/A/usr/lib/python3/dist-packages/trac/ticket/query.py
> > trac.ticket.reportN/A/usr/lib/python3/dist-packages/trac/ticket/report.=
py
> >=20
> trac.ticket.roadmapN/A/usr/lib/python3/dist-packages/trac/ticket/roadmap.=
py
> > trac.ticket.web-uiN/A/usr/lib/python3/dist-packages/trac/ticket/web_ui.=
py
> >=20
> trac.timeline.web-uiN/A/usr/lib/python3/dist-packages/trac/timeline/web_u=
i.py
> >=20
> trac.versioncontrol.adminN/A/usr/lib/python3/dist-packages/trac/versionco=
ntrol/admin.py
> >=20
> trac.versioncontrol.apiN/A/usr/lib/python3/dist-packages/trac/versioncont=
rol/api.py
> >=20
> trac.versioncontrol.svn-authzN/A/usr/lib/python3/dist-packages/trac/versi=
oncontrol/svn_authz.py
> >=20
> trac.versioncontrol.web-ui.browserN/A/usr/lib/python3/dist-packages/trac/=
versioncontrol/web_ui/browser.py
> >=20
> trac.versioncontrol.web-ui.changesetN/A/usr/lib/python3/dist-packages/tra=
c/versioncontrol/web_ui/changeset.py
> >=20
> trac.versioncontrol.web-ui.logN/A/usr/lib/python3/dist-packages/trac/vers=
ioncontrol/web_ui/log.py
> > trac.web.authN/A/usr/lib/python3/dist-packages/trac/web/auth.py
> > trac.web.chromeN/A/usr/lib/python3/dist-packages/trac/web/chrome.py
> > trac.web.mainN/A/usr/lib/python3/dist-packages/trac/web/main.py
> > trac.web.sessionN/A/usr/lib/python3/dist-packages/trac/web/session.py
> > trac.wiki.adminN/A/usr/lib/python3/dist-packages/trac/wiki/admin.py
> > trac.wiki.apiN/A/usr/lib/python3/dist-packages/trac/wiki/api.py
> >=20
> trac.wiki.intertracN/A/usr/lib/python3/dist-packages/trac/wiki/intertrac.=
py
> >=20
> trac.wiki.interwikiN/A/usr/lib/python3/dist-packages/trac/wiki/interwiki.=
py
> > trac.wiki.macrosN/A/usr/lib/python3/dist-packages/trac/wiki/macros.py
> > trac.wiki.parserN/A/usr/lib/python3/dist-packages/trac/wiki/parser.py
> > trac.wiki.web-apiN/A/usr/lib/python3/dist-packages/trac/wiki/web_api.py
> > trac.wiki.web-uiN/A/usr/lib/python3/dist-packages/trac/wiki/web_ui.py
> >=20
> TracChildTickets2.6.0.dev0/srv/trac/projects/swdev/plugins/TracChildTicke=
ts-2.6.0.dev0-py3.14.egg
> >=20
> TracDragDrop0.12.0.18/srv/trac/projects/swdev/plugins/TracDragDrop-0.12.0=
.18-py3.14.egg
> >=20
> TracHtmlNotificationPlugin0.12.0.4/srv/trac/projects/swdev/plugins/TracHt=
mlNotificationPlugin-0.12.0.4-py3.14.egg
> >=20
> tracopt.perm.authz-policyN/A/usr/lib/python3/dist-packages/tracopt/perm/a=
uthz_policy.py
> >=20
> tracopt.perm.config-perm-providerN/A/usr/lib/python3/dist-packages/tracop=
t/perm/config_perm_provider.py
> >=20
> tracopt.ticket.cloneN/A/usr/lib/python3/dist-packages/tracopt/ticket/clon=
e.py
> >=20
> tracopt.ticket.commit-updaterN/A/usr/lib/python3/dist-packages/tracopt/ti=
cket/commit_updater.py
> >=20
> tracopt.ticket.deleterN/A/usr/lib/python3/dist-packages/tracopt/ticket/de=
leter.py
> >=20
> tracopt.versioncontrol.git.git-fsN/A/usr/lib/python3/dist-packages/tracop=
t/versioncontrol/git/git_fs.py
> >=20
> tracopt.versioncontrol.svn.svn-fsN/A/usr/lib/python3/dist-packages/tracop=
t/versioncontrol/svn/svn_fs.py
> >=20
> tracopt.versioncontrol.svn.svn-propN/A/usr/lib/python3/dist-packages/trac=
opt/versioncontrol/svn/svn_prop.py
> >=20
> TracPrivateTickets2.4.0.dev0/srv/trac/projects/swdev/plugins/TracPrivateT=
ickets-2.4.0.dev0-py3.14.egg
> >=20
> TracTicketTemplate1.0.1.dev0/srv/trac/projects/swdev/plugins/TracTicketTe=
mplate-1.0.1.dev0-py3.14.egg
> > tracwysiwygN/A/usr/lib/python3/dist-packages/tracwysiwyg/__init__.py
> > Interface Customization
> > Site templatessite.html
> > Shared templates
> > Site static resourceslogo-old.png logo.png=20
> siminst_admin_region_settings.png siminst_cmd_as_admin.png=20
> siminst_cmd_as_user.png siminst_extract_dialog.png=20
> siminst_extracting_progress_dialog.png siminst_formats_settings.png=20
> siminst_language_settings.png siminst_login_button.png=20
> siminst_main_language.png siminst_region_settings.png=20
> siminst_search_cmd.png siminst_settings.png siminst_settings_for_time.png=
=20
> siminst_system_id.png siminst_system_locale_settings.png=20
> siminst_system_settings.png siminst_time_settings.png=20
> siminst_tools_button.png siminst_uninstall_dialog.png=20
> siminst_uninstall_prereq.png
> > Shared static resources
> >
> > It looks like it got a little garbled when copy-pasting from the web=20
> page, but I guess it's clear enough? Let me know if you prefer plaintext=
=20
> pasting.
> >
> > I will also paste trac.ini, but I had to remove some things that are=20
> better not put in the open due to company policies. These are marked with=
=20
> <REMOVED>. I'm glad this installation is not accessible from the internet=
=20
> ;-)
> >
> > # -*- coding: utf-8 -*-
> >
> > [account-manager]
> > auth_init =3D enabled
> > db_htdigest_realm =3D
> > db_htpasswd_hash_type =3D crypt
> > force_passwd_change =3D disabled
> > hash_method =3D HtDigestHashMethod
> > htpasswd_file =3D /srv/.htpasswd
> > htpasswd_hash_type =3D crypt
> > password_store =3D HtPasswdStore
> > persistent_sessions =3D disabled
> > refresh_passwd =3D disabled
> > register_check =3D BasicCheck
> > user_lock_max_time =3D 86400
> > verify_email =3D disabled
> >
> > [attachment]
> > max_size =3D 314572800
> > render_unsafe_content =3D disabled
> >
> > [browser]
> > color_scale =3D enabled
> > downloadable_paths =3D /trunk,/branches/*,/tags/*
> > hide_properties =3D svk:merge
> > intermediate_color =3D
> > intermediate_point =3D
> > newest_color =3D (255, 136, 136)
> > oldest_color =3D (136, 136, 255)
> > oneliner_properties =3D trac:summary
> > render_unsafe_content =3D disabled
> > wiki_properties =3D trac:description
> >
> > [changeset]
> > max_diff_bytes =3D 10000000
> > max_diff_files =3D 0
> > wiki_format_messages =3D enabled
> >
> > [childtickets]
> > parent.defect.allow_child_tickets =3D True
> > parent.defect.default_child_type =3D defect
> > parent.defect.inherit =3D=20
> function,component,priority,version,milestone,keywords
> > parent.defect.restrict_child_type =3D enhancement,task=20
> (software),defect,obsolescence
> > parent.defect.table_headers =3D=20
> status,component,summary,priority,milestone,owner,type
> > parent.enhancement.allow_child_tickets =3D True
> > parent.enhancement.default_child_type =3D enhancement
> > parent.enhancement.inherit =3D=20
> function,component,priority,version,milestone,keywords
> > parent.enhancement.restrict_child_type =3D enhancement,task=20
> (software),defect,obsolescence
> > parent.enhancement.table_headers =3D=20
> status,component,summary,priority,milestone,owner,type
> > parent.obsolescence.allow_child_tickets =3D True
> > parent.obsolescence.inherit =3D=20
> component,priority,version,milestone,keywords
> > parent.obsolescence.restrict_child_type =3D obsolescence,defect,task=20
> (software),enhancement
> > parent.obsolescence.table_headers =3D=20
> status,component,summary,priority,milestone,owner,type
> > parent.task (software).allow_child_tickets =3D True
> > parent.task (software).default_child_type =3D task (software)
> > parent.task (software).inherit =3D=20
> function,component,priority,version,milestone,keywords
> > parent.task (software).restrict_child_type =3D enhancement,task=20
> (software),defect,obsolescence
> > parent.task (software).table_headers =3D=20
> status,component,summary,priority,milestone,owner,type
> >
> > [components]
> > tracdragdrop.* =3D enabled
> > acct_mgr.admin.accountmanageradminpage =3D disabled
> > acct_mgr.admin.accountmanageradminpanel =3D enabled
> > acct_mgr.admin.configurationadminpanel =3D enabled
> > acct_mgr.admin.useradminpanel =3D enabled
> > acct_mgr.api.accountmanager =3D enabled
> > acct_mgr.db.sessionstore =3D enabled
> > acct_mgr.htfile.abstractpasswordfilestore =3D disabled
> > acct_mgr.htfile.htdigeststore =3D disabled
> > acct_mgr.htfile.htpasswdstore =3D enabled
> > acct_mgr.http.httpauthstore =3D disabled
> > acct_mgr.notification.accountchangelistener =3D disabled
> > acct_mgr.notification.accountchangenotificationadminpanel =3D disabled
> > acct_mgr.pwhash.htdigesthashmethod =3D enabled
> > acct_mgr.pwhash.htpasswdhashmethod =3D enabled
> > acct_mgr.register.basiccheck =3D enabled
> > acct_mgr.register.registrationmodule =3D enabled
> > acct_mgr.svnserve.svnservepasswordstore =3D disabled
> > acct_mgr.web_ui.accountmodule =3D disabled
> > acct_mgr.web_ui.emailverificationmodule =3D disabled
> > acct_mgr.web_ui.loginmodule =3D disabled
> > acct_mgr.web_ui.registrationmodule =3D disabled
> > batchmod.web_ui.* =3D enabled
> > batchmod.web_ui.batchmodifymodule =3D disabled
> > childtickets.* =3D enabled
> > childtickets.admin.childticketsadminpanel =3D enabled
> > childtickets.childtickets.tracchildticketsmodule =3D enabled
> > customfieldadmin.admin.customfieldadminpage =3D enabled
> > customfieldadmin.api.customfields =3D enabled
> > customfieldadmin.customfieldadmin.customfieldadminpage =3D enabled
> > privatetickets.* =3D enabled
> > ticketdelete.web_ui.* =3D enabled
> > ticketdelete.web_ui.ticketdeleteplugin =3D disabled
> > ticketmodifiedfiles.* =3D enabled
> > ticketmodifiedfiles.ticketmodifiedfiles.ticketmodifiedfilesplugin =3D=
=20
> enabled
> > ticketstats.* =3D enabled
> > ticketstats.ticketstats.ticketstatsplugin =3D enabled
> > tickettemplate.* =3D enabled
> > tickettemplate.ttadmin.tickettemplatemodule =3D enabled
> > ticketvalidator.admin.ticketvalidatoradminpanelprovider =3D enabled
> > ticketvalidator.core.requiredfieldvalidator =3D enabled
> > trachtmlnotification.* =3D enabled
> > tracopt.ticket.commit_updater.committicketupdater =3D enabled
> > tracopt.ticket.commit_updater.committicketreferencemacro =3D enabled
> > tracopt.versioncontrol.git.git_fs.csetpropertyrenderer =3D enabled
> > tracopt.versioncontrol.git.git_fs.gitconnector =3D enabled
> > tracopt.versioncontrol.git.git_fs.gitwebprojectsrepositoryprovider =3D=
=20
> enabled
> > tracopt.versioncontrol.svn.svn_fs.subversionconnector =3D enabled
> > tracopt.versioncontrol.svn.svn_prop.subversionmergepropertydiffrenderer=
=20
> =3D enabled
> > tracopt.versioncontrol.svn.svn_prop.subversionmergepropertyrenderer =3D=
=20
> enabled
> > tracopt.versioncontrol.svn.svn_prop.subversionpropertyrenderer =3D enab=
led
> > tracwysiwyg.templateprovider =3D enabled
> > tracwysiwyg.wysiwygwikifilter =3D enabled
> >
> > [gitweb-repositories]
> > projects_base =3D
> > projects_list =3D
> > projects_url =3D
> > sync_per_request =3D
> >
> > [header_logo]
> > alt =3D ASMPT ALSI Trac database
> > src =3D site/logo.png
> >
> > [inherit]
> > plugins_dir =3D /srv/trac/projects/
> > templates_dir =3D
> >
> > [logging]
> > log_file =3D trac.log
> > log_level =3D WARN
> > log_type =3D file
> >
> > [mainnav]
> > browser.order =3D 4.0
> > newticket.order =3D 6.0
> > roadmap.order =3D 3.0
> > search.order =3D 7.0
> > tickets.order =3D 5.0
> > timeline.order =3D 2.0
> > wiki.order =3D 1.0
> >
> > [metanav]
> > about.order =3D 5.0
> > help.order =3D 4.0
> > login.order =3D 1.0
> > logout.order =3D 2.0
> > prefs.order =3D 3.0
> >
> > [milestone]
> > stats_provider =3D DefaultTicketGroupStatsProvider
> >
> > [mimeviewer]
> > enscript_modes =3D text/x-dylan:dylan:4
> > enscript_path =3D enscript
> > max_preview_size =3D 12621440
> > mime_map =3D text/x-dylan:dylan,text/x-idl:ice,text/x-ada:ads:adb
> > php_path =3D php
> > tab_width =3D 8
> >
> > [notification]
> > admit_domains =3D
> > default_format.email =3D text/html
> > ignore_domains =3D
> > mime_encoding =3D base64
> > smtp_always_bcc =3D
> > smtp_always_cc =3D
> > smtp_default_domain =3D
> > smtp_enabled =3D enabled
> > smtp_from =3D <REMOVED>
> > smtp_from_name =3D ASMPT Trac database
> > smtp_password =3D
> > smtp_port =3D 25
> > smtp_replyto =3D [email protected]
> > smtp_server =3D 127.0.0.1
> > smtp_subject_prefix =3D __default__
> > smtp_user =3D
> > ticket_subject_template =3D ${prefix} #${ticket.id}: ${summary}
> > use_public_cc =3D disabled
> > use_short_addr =3D disabled
> > use_tls =3D disabled
> >
> > [notification-subscriber]
> > always_notify_cc =3D CarbonCopySubscriber
> > always_notify_previous_updater =3D TicketPreviousUpdatersSubscriber
> > always_notify_updater =3D TicketUpdaterSubscriber
> >
> > [privatetickets]
> > group_blacklist =3D anonymous,authenticated
> >
> > [project]
> > admin =3D
> > descr =3D Ticketing system for ASMPT ALSI
> > footer =3D Visit the Trac open source project at<br /><a href=3D"
> http://trac.edgewall.org/">http://trac.edgewall.org/</a>
> > icon =3D common/trac.ico
> > name =3D ASMPT ALSI Development
> > url =3D
> >
> > [query]
> > default_anonymous_query =3D status!=3Dclosed&cc~=3D$USER
> > default_query =3D status!=3Dclosed&owner=3D$USER
> > items_per_page =3D 100
> >
> > [report]
> > items_per_page =3D 100
> > items_per_page_rss =3D 0
> >
> > [repositories]
> > .dir =3D /srv/svn/SVN_LSS_REPOS
> >
> > [revisionlog]
> > default_log_limit =3D 100
> >
> > [roadmap]
> > stats_provider =3D DefaultTicketGroupStatsProvider
> >
> > [search]
> > min_query_length =3D 3
> >
> > [svn]
> > authz_file =3D
> > authz_module_name =3D
> > branches =3D trunk,branches/*
> > tags =3D tags/*
> >
> > [ticket]
> > commit_ticket_update_check_perms =3D disabled
> > commit_ticket_update_commands.close =3D
> > commit_ticket_update_commands.refs =3D <ALL>
> > commit_ticket_update_envelope =3D []
> > commit_ticket_update_notify =3D enabled
> > default_cc =3D
> > default_component =3D Unknown
> > default_description =3D
> > default_keywords =3D
> > default_milestone =3D Unspecified
> > default_owner =3D ccb
> > default_priority =3D <not set>
> > default_resolution =3D fixed
> > default_severity =3D <not set>
> > default_summary =3D
> > default_type =3D defect
> > default_version =3D All
> > max_comment_size =3D 262144
> > max_description_size =3D 262144
> > preserve_newlines =3D default
> > restrict_owner =3D enabled
> > workflow =3D ConfigurableTicketWorkflow
> >
> > [ticket-custom]
> > chance =3D select
> > chance.label =3D Chance of occurrence
> > chance.options =3D <REMOVED>
> > chance.order =3D 5
> > chance.value =3D Chance of occurence
> > customer =3D select
> > customer.label =3D Customer
> > customer.options =3D <REMOVED>
> > customer.order =3D 7
> > customer.value =3D
> > function =3D select
> > function.label =3D Function
> > function.options =3D <REMOVED>
> > function.order =3D 1
> > function.value =3D
> > machinetype =3D select
> > machinetype.label =3D Machine Type
> > machinetype.options =3D <REMOVED>
> > machinetype.order =3D 2
> > machinetype.value =3D None
> > parent =3D text
> > parent.format =3D wiki
> > parent.label =3D Parent ID
> > parent.order =3D 3
> > parent.value =3D
> > project =3D select
> > project.label =3D Project
> > project.options =3D <REMOVED>
> > project.order =3D 0
> > project.value =3D
> > supplier =3D select
> > supplier.label =3D Supplier
> > supplier.options =3D <REMOVED>
> > supplier.order =3D 6
> > supplier.value =3D None
> > valuedriver =3D select
> > valuedriver.label =3D Value Driver
> > valuedriver.options =3D <REMOVED>
> > valuedriver.order =3D 4
> > valuedriver.value =3D None
> >
> > [ticket-workflow]
> > analyse =3D new,reopened,analysed,solved,analysing -> analysing
> > analyse.operations =3D set_owner
> > analyse.permissions =3D TICKET_MODIFY
> > analysed =3D analysing -> analysed
> > analysed.operations =3D set_owner
> > analysed.permissions =3D TICKET_MODIFY
> > approved =3D new,analysed,solved -> closed
> > approved.operations =3D set_resolution
> > approved.permissions =3D TICKET_MODIFY
> > create =3D <none> -> new
> > create.default =3D 1
> > leave =3D * -> *
> > leave.default =3D 1
> > leave.operations =3D leave_status
> > reassign =3D new,analysed,solved,reopened,assigned -> assigned
> > reassign.operations =3D set_owner
> > reassign.permissions =3D TICKET_MODIFY
> > reopen =3D closed -> reopened
> > reopen.operations =3D del_resolution
> > reopen.permissions =3D TICKET_CREATE
> > resolved =3D assigned -> solved
> > resolved.operations =3D set_owner
> > resolved.permissions =3D TICKET_MODIFY
> >
> > [tickettemplate]
> > enable_custom =3D enabled
> > field_list =3D=20
> summary,description,reporter,owner,priority,cc,milestone,component,versio=
n,type
> >
> > [ticketvalidator]
> > assigned.required =3D project, summary, customer, supplier, function,=
=20
> severity, priority, valuedriver, machinetype
> > new.required =3D project, summary, customer, supplier, function, severi=
ty,=20
> priority, valuedriver, machinetype
> >
> > [timeline]
> > abbreviated_messages =3D enabled
> > changeset_collapse_events =3D disabled
> > changeset_long_messages =3D disabled
> > changeset_show_files =3D 0
> > default_daysback =3D 30
> > max_daysback =3D 90
> > newticket_formatter =3D oneliner
> > ticket_show_details =3D disabled
> >
> > [trac]
> > auto_reload =3D disabled
> > base_url =3D https://alsi-lnx.alsi.local/trac/swdev
> > check_auth_ip =3D disabled
> > database =3D sqlite:db/trac.db
> > default_charset =3D iso-8859-15
> > default_date_format =3D
> > default_dateinfo_format =3D relative
> > default_handler =3D WikiModule
> > default_language =3D
> > default_timezone =3D
> > htdocs_location =3D
> > ignore_auth_case =3D disabled
> > permission_policies =3D=20
> DefaultWikiPolicy,DefaultTicketPolicy,DefaultPermissionPolicy,LegacyAttac=
hmentPolicy
> > permission_store =3D DefaultPermissionStore
> > secure_cookies =3D disabled
> > show_email_addresses =3D disabled
> > timeout =3D 20
> > use_base_url_for_redirect =3D disabled
> >
> > [versioncontrol]
> > default_repository_type =3D svn
> >
> > [wiki]
> > ignore_missing_pages =3D disabled
> > max_size =3D 262144
> > render_unsafe_content =3D disabled
> > split_page_names =3D disabled
> >
> > Thanks again for your continuous support.
> > Op zondag 21 juni 2026 om 07:34:49 UTC+2 schreef Jun Omae:
> >>
> >> On Fri, Jun 19, 2026 at 11:46=E2=80=AFPM Manuel Bilderbeek
> >> <[email protected]> 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=
=20
> 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
> >>
> >> --
> >> Jun Omae <[email protected]> (=E5=A4=A7=E5=89=8D =E6=BD=A4)
> >
> > --
> > You received this message because you are subscribed to the Google=20
> Groups "Trac Users" group.
> > To unsubscribe from this group and stop receiving emails from it, send=
=20
> an email to trac-users+...-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> > To view this discussion visit=20
> https://groups.google.com/d/msgid/trac-users/80ff24ca-c201-4cb8-8f50-0a93=
4c225acfn%40googlegroups.com
> .
>
>
>
> --=20
> Jun Omae <[email protected]> (=E5=A4=A7=E5=89=8D =E6=BD=A4)
>

--=20
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 e=
mail to trac-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
To view this discussion visit https://groups.google.com/d/msgid/trac-users/=
567b481c-f208-42a8-af09-e5055edae8c4n%40googlegroups.com.

------=_Part_57035_565108968.1782376273019
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Yes, PYTHON_EGG_CACHE is used and it is set on /srv/trac/eggs in /srv/trac/=
apache/trac.wsgi:<div>$ cat /srv/trac/apache/trac.wsgi<br />import sys<br /=
>sys.stdout =3D sys.stderr<br /><br />import site<br />site.addsitedir('/us=
r/lib/python2.7/dist-packages/')<br /><br />import os<br />os.environ['TRAC=
_ENV_PARENT_DIR'] =3D '/srv/trac/projects'<br />os.environ['PYTHON_EGG_CACH=
E'] =3D '/srv/trac/eggs'<br /><br />import trac.web.main<br /><br />applica=
tion =3D trac.web.main.dispatch_request<br /></div><div><br /></div><div>I =
cleaned this /srv/trac/eggs directory and did an updatedb/locate after rest=
arting apache2:<div><br /></div><div>$ locate TracHtmlNotification<br />/sr=
v/trac/eggs/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg-tmp<br />/srv/tr=
ac/eggs/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg-tmp/trachtmlnotifica=
tion<br />/srv/trac/eggs/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg-tmp=
/trachtmlnotification/templates<br />/srv/trac/eggs/TracHtmlNotificationPlu=
gin-0.12.0.4-py3.14.egg-tmp/trachtmlnotification/templates/jinja2<br />/srv=
/trac/eggs/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg-tmp/trachtmlnotif=
ication/templates/jinja2/htmlnotification_ticket.html<br />/srv/trac/projec=
ts/swdev/plugins/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg<br /><br />=
</div><div>$ locate htmlnotification_ticket<br />/srv/trac/eggs/TracHtmlNot=
ificationPlugin-0.12.0.4-py3.14.egg-tmp/trachtmlnotification/templates/jinj=
a2/htmlnotification_ticket.html<br /></div><div><br /></div><div>I guess th=
is looks OK, but I still do not get the proper diffs in the e-mail after al=
l of this. What am I missing here?</div><div><br /></div><div>Should I move=
 the installation of the egg(s)? I'm not sure where exactly it should be mo=
ved to. /srv/trac/lib? /srv/trac/projects/lib?</div><div><br /></div></div>=
<div class=3D"gmail_quote"><div dir=3D"auto" class=3D"gmail_attr">Op maanda=
g 22 juni 2026 om 15:06:00 UTC+2 schreef Jun Omae:<br/></div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin: 0 0 0 0.8ex; border-left: 1px solid rg=
b(204, 204, 204); padding-left: 1ex;">Trying to reproduce it on fresh Ubunt=
u 26.04 environment on a
<br>container but it is unable to reproduce.
<br>
<br>I suspect that your PYTHON_EGG_CACHE directory has old files which are
<br>extracted from old egg files. If PYTHON_EGG_CACHE directory is used,
<br>try to make the directory empty.
<br>
<br>See also <a href=3D"https://trac.edgewall.org/wiki/TracModWSGI#Thetrac.=
wsgiscript" target=3D"_blank" rel=3D"nofollow" data-saferedirecturl=3D"http=
s://www.google.com/url?hl=3Dnl&amp;q=3Dhttps://trac.edgewall.org/wiki/TracM=
odWSGI%23Thetrac.wsgiscript&amp;source=3Dgmail&amp;ust=3D1782460719721000&a=
mp;usg=3DAOvVaw0TQrYKV6ckSAbB9dMIiKXo">https://trac.edgewall.org/wiki/TracM=
odWSGI#Thetrac.wsgiscript</a>
<br>
<br>If PYTHON_EGG_CACHE directory is used, I don&#39;t recommend to install
<br>egg files to plugins directory of the project. Instead, I recommend to
<br>install to &quot;lib&quot; directory of venv. Otherwise, extract the eg=
g files
<br>to plugins/&lt;name&gt;.egg directory.
<br>
<br>e.g.
<br>$ unzip -x dist/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg -d
<br>tracenv/plugins/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg
<br>
<br>
<br>On Mon, Jun 22, 2026 at 4:55=E2=80=AFPM Manuel Bilderbeek
<br>&lt;<a href data-email-masked rel=3D"nofollow">[email protected]=
</a>&gt; wrote:
<br>&gt;
<br>&gt; Hi,
<br>&gt;
<br>&gt; Here is the requested information.
<br>&gt;
<br>&gt; System Information
<br>&gt;
<br>&gt; User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/=
537.36 (KHTML, like Gecko) Chrome/<a href=3D"http://147.0.0.0" target=3D"_b=
lank" rel=3D"nofollow" data-saferedirecturl=3D"https://www.google.com/url?h=
l=3Dnl&amp;q=3Dhttp://147.0.0.0&amp;source=3Dgmail&amp;ust=3D17824607197210=
00&amp;usg=3DAOvVaw1k148eJhTVc4Lx3sqJhogW">147.0.0.0</a> Safari/537.36
<br>&gt;
<br>&gt;
<br>&gt; PackageVersion
<br>&gt; Trac1.6
<br>&gt; Babel2.17.0
<br>&gt; Docutils0.22.4
<br>&gt; GIT2.53.0
<br>&gt; Jinja23.1.6
<br>&gt; mod_wsgi5.0.2 (WSGIProcessGroup WSGIApplicationGroup %{GLOBAL})
<br>&gt; Pygments2.19.2
<br>&gt; pysqlite2.6.0
<br>&gt; Python3.14.4 (main, Apr 8 2026, 04:02:31) [GCC 15.2.0]
<br>&gt; pytz2025.2
<br>&gt; setuptools78.1.1
<br>&gt; SQLite3.46.1
<br>&gt; Subversion1.14.5 (r1922182)
<br>&gt; jQuery3.7.1
<br>&gt; jQuery UI1.13.2
<br>&gt; jQuery Timepicker1.6.3
<br>&gt; Installed Plugins
<br>&gt; NameVersionLocation
<br>&gt; acct-mgr.adminN/A/usr/lib/python3/dist-packages/acct_mgr/admin.py
<br>&gt; acct-mgr.apiN/A/usr/lib/python3/dist-packages/acct_mgr/api.py
<br>&gt; acct-mgr.dbN/A/usr/lib/python3/dist-packages/acct_mgr/db.py
<br>&gt; acct-mgr.guardN/A/usr/lib/python3/dist-packages/acct_mgr/guard.py
<br>&gt; acct-mgr.htfileN/A/usr/lib/python3/dist-packages/acct_mgr/htfile.p=
y
<br>&gt; acct-mgr.httpN/A/usr/lib/python3/dist-packages/acct_mgr/http.py
<br>&gt; acct-mgr.macrosN/A/usr/lib/python3/dist-packages/acct_mgr/macros.p=
y
<br>&gt; acct-mgr.modelN/A/usr/lib/python3/dist-packages/acct_mgr/model.py
<br>&gt; acct-mgr.notificationN/A/usr/lib/python3/dist-packages/acct_mgr/no=
tification.py
<br>&gt; acct-mgr.pwhashN/A/usr/lib/python3/dist-packages/acct_mgr/pwhash.p=
y
<br>&gt; acct-mgr.registerN/A/usr/lib/python3/dist-packages/acct_mgr/regist=
er.py
<br>&gt; acct-mgr.svnserveN/A/usr/lib/python3/dist-packages/acct_mgr/svnser=
ve.py
<br>&gt; acct-mgr.web-uiN/A/usr/lib/python3/dist-packages/acct_mgr/web_ui.p=
y
<br>&gt; customfieldadmin.adminN/A/usr/lib/python3/dist-packages/customfiel=
dadmin/admin.py
<br>&gt; customfieldadmin.apiN/A/usr/lib/python3/dist-packages/customfielda=
dmin/api.py
<br>&gt; TicketValidator0.2.dev0/srv/trac/projects/swdev/plugins/TicketVali=
dator-0.2.dev0-py3.14.egg
<br>&gt; trac.aboutN/A/usr/lib/python3/dist-packages/trac/about.py
<br>&gt; trac.admin.apiN/A/usr/lib/python3/dist-packages/trac/admin/api.py
<br>&gt; trac.admin.consoleN/A/usr/lib/python3/dist-packages/trac/admin/con=
sole.py
<br>&gt; trac.admin.web-uiN/A/usr/lib/python3/dist-packages/trac/admin/web_=
ui.py
<br>&gt; trac.attachmentN/A/usr/lib/python3/dist-packages/trac/attachment.p=
y
<br>&gt; trac.cacheN/A/usr/lib/python3/dist-packages/trac/cache.py
<br>&gt; trac.configN/A/usr/lib/python3/dist-packages/trac/config.py
<br>&gt; trac.db.apiN/A/usr/lib/python3/dist-packages/trac/db/api.py
<br>&gt; trac.db.sqlite-backendN/A/usr/lib/python3/dist-packages/trac/db/sq=
lite_backend.py
<br>&gt; trac.envN/A/usr/lib/python3/dist-packages/trac/env.py
<br>&gt; trac.mimeview.apiN/A/usr/lib/python3/dist-packages/trac/mimeview/a=
pi.py
<br>&gt; trac.mimeview.patchN/A/usr/lib/python3/dist-packages/trac/mimeview=
/patch.py
<br>&gt; trac.mimeview.pygmentsN/A/usr/lib/python3/dist-packages/trac/mimev=
iew/pygments.py
<br>&gt; trac.mimeview.rstN/A/usr/lib/python3/dist-packages/trac/mimeview/r=
st.py
<br>&gt; trac.notification.apiN/A/usr/lib/python3/dist-packages/trac/notifi=
cation/api.py
<br>&gt; trac.notification.mailN/A/usr/lib/python3/dist-packages/trac/notif=
ication/mail.py
<br>&gt; trac.notification.prefsN/A/usr/lib/python3/dist-packages/trac/noti=
fication/prefs.py
<br>&gt; trac.permN/A/usr/lib/python3/dist-packages/trac/perm.py
<br>&gt; trac.prefs.web-uiN/A/usr/lib/python3/dist-packages/trac/prefs/web_=
ui.py
<br>&gt; trac.resourceN/A/usr/lib/python3/dist-packages/trac/resource.py
<br>&gt; trac.search.web-uiN/A/usr/lib/python3/dist-packages/trac/search/we=
b_ui.py
<br>&gt; trac.ticket.adminN/A/usr/lib/python3/dist-packages/trac/ticket/adm=
in.py
<br>&gt; trac.ticket.apiN/A/usr/lib/python3/dist-packages/trac/ticket/api.p=
y
<br>&gt; trac.ticket.batchN/A/usr/lib/python3/dist-packages/trac/ticket/bat=
ch.py
<br>&gt; trac.ticket.default-workflowN/A/usr/lib/python3/dist-packages/trac=
/ticket/default_workflow.py
<br>&gt; trac.ticket.modelN/A/usr/lib/python3/dist-packages/trac/ticket/mod=
el.py
<br>&gt; trac.ticket.notificationN/A/usr/lib/python3/dist-packages/trac/tic=
ket/notification.py
<br>&gt; trac.ticket.queryN/A/usr/lib/python3/dist-packages/trac/ticket/que=
ry.py
<br>&gt; trac.ticket.reportN/A/usr/lib/python3/dist-packages/trac/ticket/re=
port.py
<br>&gt; trac.ticket.roadmapN/A/usr/lib/python3/dist-packages/trac/ticket/r=
oadmap.py
<br>&gt; trac.ticket.web-uiN/A/usr/lib/python3/dist-packages/trac/ticket/we=
b_ui.py
<br>&gt; trac.timeline.web-uiN/A/usr/lib/python3/dist-packages/trac/timelin=
e/web_ui.py
<br>&gt; trac.versioncontrol.adminN/A/usr/lib/python3/dist-packages/trac/ve=
rsioncontrol/admin.py
<br>&gt; trac.versioncontrol.apiN/A/usr/lib/python3/dist-packages/trac/vers=
ioncontrol/api.py
<br>&gt; trac.versioncontrol.svn-authzN/A/usr/lib/python3/dist-packages/tra=
c/versioncontrol/svn_authz.py
<br>&gt; trac.versioncontrol.web-ui.browserN/A/usr/lib/python3/dist-package=
s/trac/versioncontrol/web_ui/browser.py
<br>&gt; trac.versioncontrol.web-ui.changesetN/A/usr/lib/python3/dist-packa=
ges/trac/versioncontrol/web_ui/changeset.py
<br>&gt; trac.versioncontrol.web-ui.logN/A/usr/lib/python3/dist-packages/tr=
ac/versioncontrol/web_ui/log.py
<br>&gt; trac.web.authN/A/usr/lib/python3/dist-packages/trac/web/auth.py
<br>&gt; trac.web.chromeN/A/usr/lib/python3/dist-packages/trac/web/chrome.p=
y
<br>&gt; trac.web.mainN/A/usr/lib/python3/dist-packages/trac/web/main.py
<br>&gt; trac.web.sessionN/A/usr/lib/python3/dist-packages/trac/web/session=
.py
<br>&gt; trac.wiki.adminN/A/usr/lib/python3/dist-packages/trac/wiki/admin.p=
y
<br>&gt; trac.wiki.apiN/A/usr/lib/python3/dist-packages/trac/wiki/api.py
<br>&gt; trac.wiki.intertracN/A/usr/lib/python3/dist-packages/trac/wiki/int=
ertrac.py
<br>&gt; trac.wiki.interwikiN/A/usr/lib/python3/dist-packages/trac/wiki/int=
erwiki.py
<br>&gt; trac.wiki.macrosN/A/usr/lib/python3/dist-packages/trac/wiki/macros=
.py
<br>&gt; trac.wiki.parserN/A/usr/lib/python3/dist-packages/trac/wiki/parser=
.py
<br>&gt; trac.wiki.web-apiN/A/usr/lib/python3/dist-packages/trac/wiki/web_a=
pi.py
<br>&gt; trac.wiki.web-uiN/A/usr/lib/python3/dist-packages/trac/wiki/web_ui=
.py
<br>&gt; TracChildTickets2.6.0.dev0/srv/trac/projects/swdev/plugins/TracChi=
ldTickets-2.6.0.dev0-py3.14.egg
<br>&gt; TracDragDrop0.12.0.18/srv/trac/projects/swdev/plugins/TracDragDrop=
-0.12.0.18-py3.14.egg
<br>&gt; TracHtmlNotificationPlugin0.12.0.4/srv/trac/projects/swdev/plugins=
/TracHtmlNotificationPlugin-0.12.0.4-py3.14.egg
<br>&gt; tracopt.perm.authz-policyN/A/usr/lib/python3/dist-packages/tracopt=
/perm/authz_policy.py
<br>&gt; tracopt.perm.config-perm-providerN/A/usr/lib/python3/dist-packages=
/tracopt/perm/config_perm_provider.py
<br>&gt; tracopt.ticket.cloneN/A/usr/lib/python3/dist-packages/tracopt/tick=
et/clone.py
<br>&gt; tracopt.ticket.commit-updaterN/A/usr/lib/python3/dist-packages/tra=
copt/ticket/commit_updater.py
<br>&gt; tracopt.ticket.deleterN/A/usr/lib/python3/dist-packages/tracopt/ti=
cket/deleter.py
<br>&gt; tracopt.versioncontrol.git.git-fsN/A/usr/lib/python3/dist-packages=
/tracopt/versioncontrol/git/git_fs.py
<br>&gt; tracopt.versioncontrol.svn.svn-fsN/A/usr/lib/python3/dist-packages=
/tracopt/versioncontrol/svn/svn_fs.py
<br>&gt; tracopt.versioncontrol.svn.svn-propN/A/usr/lib/python3/dist-packag=
es/tracopt/versioncontrol/svn/svn_prop.py
<br>&gt; TracPrivateTickets2.4.0.dev0/srv/trac/projects/swdev/plugins/TracP=
rivateTickets-2.4.0.dev0-py3.14.egg
<br>&gt; TracTicketTemplate1.0.1.dev0/srv/trac/projects/swdev/plugins/TracT=
icketTemplate-1.0.1.dev0-py3.14.egg
<br>&gt; tracwysiwygN/A/usr/lib/python3/dist-packages/tracwysiwyg/__init__.=
py
<br>&gt; Interface Customization
<br>&gt; Site templatessite.html
<br>&gt; Shared templates
<br>&gt; Site static resourceslogo-old.png logo.png siminst_admin_region_se=
ttings.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_la=
nguage.png siminst_region_settings.png siminst_search_cmd.png siminst_setti=
ngs.png siminst_settings_for_time.png siminst_system_id.png siminst_system_=
locale_settings.png siminst_system_settings.png siminst_time_settings.png s=
iminst_tools_button.png siminst_uninstall_dialog.png siminst_uninstall_prer=
eq.png
<br>&gt; Shared static resources
<br>&gt;
<br>&gt; It looks like it got a little garbled when copy-pasting from the w=
eb page, but I guess it&#39;s clear enough? Let me know if you prefer plain=
text pasting.
<br>&gt;
<br>&gt; I will also paste trac.ini, but I had to remove some things that a=
re better not put in the open due to company policies. These are marked wit=
h &lt;REMOVED&gt;. I&#39;m glad this installation is not accessible from th=
e internet ;-)
<br>&gt;
<br>&gt; # -*- coding: utf-8 -*-
<br>&gt;
<br>&gt; [account-manager]
<br>&gt; auth_init =3D enabled
<br>&gt; db_htdigest_realm =3D
<br>&gt; db_htpasswd_hash_type =3D crypt
<br>&gt; force_passwd_change =3D disabled
<br>&gt; hash_method =3D HtDigestHashMethod
<br>&gt; htpasswd_file =3D /srv/.htpasswd
<br>&gt; htpasswd_hash_type =3D crypt
<br>&gt; password_store =3D HtPasswdStore
<br>&gt; persistent_sessions =3D disabled
<br>&gt; refresh_passwd =3D disabled
<br>&gt; register_check =3D BasicCheck
<br>&gt; user_lock_max_time =3D 86400
<br>&gt; verify_email =3D disabled
<br>&gt;
<br>&gt; [attachment]
<br>&gt; max_size =3D 314572800
<br>&gt; render_unsafe_content =3D disabled
<br>&gt;
<br>&gt; [browser]
<br>&gt; color_scale =3D enabled
<br>&gt; downloadable_paths =3D /trunk,/branches/*,/tags/*
<br>&gt; hide_properties =3D svk:merge
<br>&gt; intermediate_color =3D
<br>&gt; intermediate_point =3D
<br>&gt; newest_color =3D (255, 136, 136)
<br>&gt; oldest_color =3D (136, 136, 255)
<br>&gt; oneliner_properties =3D trac:summary
<br>&gt; render_unsafe_content =3D disabled
<br>&gt; wiki_properties =3D trac:description
<br>&gt;
<br>&gt; [changeset]
<br>&gt; max_diff_bytes =3D 10000000
<br>&gt; max_diff_files =3D 0
<br>&gt; wiki_format_messages =3D enabled
<br>&gt;
<br>&gt; [childtickets]
<br>&gt; parent.defect.allow_child_tickets =3D True
<br>&gt; parent.defect.default_child_type =3D defect
<br>&gt; parent.defect.inherit =3D function,component,priority,version,mile=
stone,keywords
<br>&gt; parent.defect.restrict_child_type =3D enhancement,task (software),=
defect,obsolescence
<br>&gt; parent.defect.table_headers =3D status,component,summary,priority,=
milestone,owner,type
<br>&gt; parent.enhancement.allow_child_tickets =3D True
<br>&gt; parent.enhancement.default_child_type =3D enhancement
<br>&gt; parent.enhancement.inherit =3D function,component,priority,version=
,milestone,keywords
<br>&gt; parent.enhancement.restrict_child_type =3D enhancement,task (softw=
are),defect,obsolescence
<br>&gt; parent.enhancement.table_headers =3D status,component,summary,prio=
rity,milestone,owner,type
<br>&gt; parent.obsolescence.allow_child_tickets =3D True
<br>&gt; parent.obsolescence.inherit =3D component,priority,version,milesto=
ne,keywords
<br>&gt; parent.obsolescence.restrict_child_type =3D obsolescence,defect,ta=
sk (software),enhancement
<br>&gt; parent.obsolescence.table_headers =3D status,component,summary,pri=
ority,milestone,owner,type
<br>&gt; parent.task (software).allow_child_tickets =3D True
<br>&gt; parent.task (software).default_child_type =3D task (software)
<br>&gt; parent.task (software).inherit =3D function,component,priority,ver=
sion,milestone,keywords
<br>&gt; parent.task (software).restrict_child_type =3D enhancement,task (s=
oftware),defect,obsolescence
<br>&gt; parent.task (software).table_headers =3D status,component,summary,=
priority,milestone,owner,type
<br>&gt;
<br>&gt; [components]
<br>&gt; tracdragdrop.* =3D enabled
<br>&gt; acct_mgr.admin.accountmanageradminpage =3D disabled
<br>&gt; acct_mgr.admin.accountmanageradminpanel =3D enabled
<br>&gt; acct_mgr.admin.configurationadminpanel =3D enabled
<br>&gt; acct_mgr.admin.useradminpanel =3D enabled
<br>&gt; acct_mgr.api.accountmanager =3D enabled
<br>&gt; acct_mgr.db.sessionstore =3D enabled
<br>&gt; acct_mgr.htfile.abstractpasswordfilestore =3D disabled
<br>&gt; acct_mgr.htfile.htdigeststore =3D disabled
<br>&gt; acct_mgr.htfile.htpasswdstore =3D enabled
<br>&gt; acct_mgr.http.httpauthstore =3D disabled
<br>&gt; acct_mgr.notification.accountchangelistener =3D disabled
<br>&gt; acct_mgr.notification.accountchangenotificationadminpanel =3D disa=
bled
<br>&gt; acct_mgr.pwhash.htdigesthashmethod =3D enabled
<br>&gt; acct_mgr.pwhash.htpasswdhashmethod =3D enabled
<br>&gt; acct_mgr.register.basiccheck =3D enabled
<br>&gt; acct_mgr.register.registrationmodule =3D enabled
<br>&gt; acct_mgr.svnserve.svnservepasswordstore =3D disabled
<br>&gt; acct_mgr.web_ui.accountmodule =3D disabled
<br>&gt; acct_mgr.web_ui.emailverificationmodule =3D disabled
<br>&gt; acct_mgr.web_ui.loginmodule =3D disabled
<br>&gt; acct_mgr.web_ui.registrationmodule =3D disabled
<br>&gt; batchmod.web_ui.* =3D enabled
<br>&gt; batchmod.web_ui.batchmodifymodule =3D disabled
<br>&gt; childtickets.* =3D enabled
<br>&gt; childtickets.admin.childticketsadminpanel =3D enabled
<br>&gt; childtickets.childtickets.tracchildticketsmodule =3D enabled
<br>&gt; customfieldadmin.admin.customfieldadminpage =3D enabled
<br>&gt; customfieldadmin.api.customfields =3D enabled
<br>&gt; customfieldadmin.customfieldadmin.customfieldadminpage =3D enabled
<br>&gt; privatetickets.* =3D enabled
<br>&gt; ticketdelete.web_ui.* =3D enabled
<br>&gt; ticketdelete.web_ui.ticketdeleteplugin =3D disabled
<br>&gt; ticketmodifiedfiles.* =3D enabled
<br>&gt; ticketmodifiedfiles.ticketmodifiedfiles.ticketmodifiedfilesplugin =
=3D enabled
<br>&gt; ticketstats.* =3D enabled
<br>&gt; ticketstats.ticketstats.ticketstatsplugin =3D enabled
<br>&gt; tickettemplate.* =3D enabled
<br>&gt; tickettemplate.ttadmin.tickettemplatemodule =3D enabled
<br>&gt; ticketvalidator.admin.ticketvalidatoradminpanelprovider =3D enable=
d
<br>&gt; ticketvalidator.core.requiredfieldvalidator =3D enabled
<br>&gt; trachtmlnotification.* =3D enabled
<br>&gt; tracopt.ticket.commit_updater.committicketupdater =3D enabled
<br>&gt; tracopt.ticket.commit_updater.committicketreferencemacro =3D enabl=
ed
<br>&gt; tracopt.versioncontrol.git.git_fs.csetpropertyrenderer =3D enabled
<br>&gt; tracopt.versioncontrol.git.git_fs.gitconnector =3D enabled
<br>&gt; tracopt.versioncontrol.git.git_fs.gitwebprojectsrepositoryprovider=
 =3D enabled
<br>&gt; tracopt.versioncontrol.svn.svn_fs.subversionconnector =3D enabled
<br>&gt; tracopt.versioncontrol.svn.svn_prop.subversionmergepropertydiffren=
derer =3D enabled
<br>&gt; tracopt.versioncontrol.svn.svn_prop.subversionmergepropertyrendere=
r =3D enabled
<br>&gt; tracopt.versioncontrol.svn.svn_prop.subversionpropertyrenderer =3D=
 enabled
<br>&gt; tracwysiwyg.templateprovider =3D enabled
<br>&gt; tracwysiwyg.wysiwygwikifilter =3D enabled
<br>&gt;
<br>&gt; [gitweb-repositories]
<br>&gt; projects_base =3D
<br>&gt; projects_list =3D
<br>&gt; projects_url =3D
<br>&gt; sync_per_request =3D
<br>&gt;
<br>&gt; [header_logo]
<br>&gt; alt =3D ASMPT ALSI Trac database
<br>&gt; src =3D site/logo.png
<br>&gt;
<br>&gt; [inherit]
<br>&gt; plugins_dir =3D /srv/trac/projects/
<br>&gt; templates_dir =3D
<br>&gt;
<br>&gt; [logging]
<br>&gt; log_file =3D trac.log
<br>&gt; log_level =3D WARN
<br>&gt; log_type =3D file
<br>&gt;
<br>&gt; [mainnav]
<br>&gt; browser.order =3D 4.0
<br>&gt; newticket.order =3D 6.0
<br>&gt; roadmap.order =3D 3.0
<br>&gt; search.order =3D 7.0
<br>&gt; tickets.order =3D 5.0
<br>&gt; timeline.order =3D 2.0
<br>&gt; wiki.order =3D 1.0
<br>&gt;
<br>&gt; [metanav]
<br>&gt; about.order =3D 5.0
<br>&gt; help.order =3D 4.0
<br>&gt; login.order =3D 1.0
<br>&gt; logout.order =3D 2.0
<br>&gt; prefs.order =3D 3.0
<br>&gt;
<br>&gt; [milestone]
<br>&gt; stats_provider =3D DefaultTicketGroupStatsProvider
<br>&gt;
<br>&gt; [mimeviewer]
<br>&gt; enscript_modes =3D text/x-dylan:dylan:4
<br>&gt; enscript_path =3D enscript
<br>&gt; max_preview_size =3D 12621440
<br>&gt; mime_map =3D text/x-dylan:dylan,text/x-idl:ice,text/x-ada:ads:adb
<br>&gt; php_path =3D php
<br>&gt; tab_width =3D 8
<br>&gt;
<br>&gt; [notification]
<br>&gt; admit_domains =3D
<br>&gt; default_format.email =3D text/html
<br>&gt; ignore_domains =3D
<br>&gt; mime_encoding =3D base64
<br>&gt; smtp_always_bcc =3D
<br>&gt; smtp_always_cc =3D
<br>&gt; smtp_default_domain =3D
<br>&gt; smtp_enabled =3D enabled
<br>&gt; smtp_from =3D &lt;REMOVED&gt;
<br>&gt; smtp_from_name =3D ASMPT Trac database
<br>&gt; smtp_password =3D
<br>&gt; smtp_port =3D 25
<br>&gt; smtp_replyto =3D <a href data-email-masked rel=3D"nofollow">nor...=
@nothing.net</a>
<br>&gt; smtp_server =3D 127.0.0.1
<br>&gt; smtp_subject_prefix =3D __default__
<br>&gt; smtp_user =3D
<br>&gt; ticket_subject_template =3D ${prefix} #${<a href=3D"http://ticket.=
id" target=3D"_blank" rel=3D"nofollow" data-saferedirecturl=3D"https://www.=
google.com/url?hl=3Dnl&amp;q=3Dhttp://ticket.id&amp;source=3Dgmail&amp;ust=
=3D1782460719721000&amp;usg=3DAOvVaw1NIS6DoWaCZKYzbAOghxlJ">ticket.id</a>}:=
 ${summary}
<br>&gt; use_public_cc =3D disabled
<br>&gt; use_short_addr =3D disabled
<br>&gt; use_tls =3D disabled
<br>&gt;
<br>&gt; [notification-subscriber]
<br>&gt; always_notify_cc =3D CarbonCopySubscriber
<br>&gt; always_notify_previous_updater =3D TicketPreviousUpdatersSubscribe=
r
<br>&gt; always_notify_updater =3D TicketUpdaterSubscriber
<br>&gt;
<br>&gt; [privatetickets]
<br>&gt; group_blacklist =3D anonymous,authenticated
<br>&gt;
<br>&gt; [project]
<br>&gt; admin =3D
<br>&gt; descr =3D Ticketing system for ASMPT ALSI
<br>&gt; footer =3D Visit the Trac open source project at&lt;br /&gt;&lt;a =
href=3D&quot;<a href=3D"http://trac.edgewall.org/" target=3D"_blank" rel=3D=
"nofollow" data-saferedirecturl=3D"https://www.google.com/url?hl=3Dnl&amp;q=
=3Dhttp://trac.edgewall.org/&amp;source=3Dgmail&amp;ust=3D1782460719721000&=
amp;usg=3DAOvVaw2bG7Uf3PJcLF56-EHQQ7rV">http://trac.edgewall.org/</a>&quot;=
&gt;<a href=3D"http://trac.edgewall.org/" target=3D"_blank" rel=3D"nofollow=
" data-saferedirecturl=3D"https://www.google.com/url?hl=3Dnl&amp;q=3Dhttp:/=
/trac.edgewall.org/&amp;source=3Dgmail&amp;ust=3D1782460719721000&amp;usg=
=3DAOvVaw2bG7Uf3PJcLF56-EHQQ7rV">http://trac.edgewall.org/</a>&lt;/a&gt;
<br>&gt; icon =3D common/trac.ico
<br>&gt; name =3D ASMPT ALSI Development
<br>&gt; url =3D
<br>&gt;
<br>&gt; [query]
<br>&gt; default_anonymous_query =3D status!=3Dclosed&amp;cc~=3D$USER
<br>&gt; default_query =3D status!=3Dclosed&amp;owner=3D$USER
<br>&gt; items_per_page =3D 100
<br>&gt;
<br>&gt; [report]
<br>&gt; items_per_page =3D 100
<br>&gt; items_per_page_rss =3D 0
<br>&gt;
<br>&gt; [repositories]
<br>&gt; .dir =3D /srv/svn/SVN_LSS_REPOS
<br>&gt;
<br>&gt; [revisionlog]
<br>&gt; default_log_limit =3D 100
<br>&gt;
<br>&gt; [roadmap]
<br>&gt; stats_provider =3D DefaultTicketGroupStatsProvider
<br>&gt;
<br>&gt; [search]
<br>&gt; min_query_length =3D 3
<br>&gt;
<br>&gt; [svn]
<br>&gt; authz_file =3D
<br>&gt; authz_module_name =3D
<br>&gt; branches =3D trunk,branches/*
<br>&gt; tags =3D tags/*
<br>&gt;
<br>&gt; [ticket]
<br>&gt; commit_ticket_update_check_perms =3D disabled
<br>&gt; commit_ticket_update_commands.close =3D
<br>&gt; commit_ticket_update_commands.refs =3D &lt;ALL&gt;
<br>&gt; commit_ticket_update_envelope =3D []
<br>&gt; commit_ticket_update_notify =3D enabled
<br>&gt; default_cc =3D
<br>&gt; default_component =3D Unknown
<br>&gt; default_description =3D
<br>&gt; default_keywords =3D
<br>&gt; default_milestone =3D Unspecified
<br>&gt; default_owner =3D ccb
<br>&gt; default_priority =3D &lt;not set&gt;
<br>&gt; default_resolution =3D fixed
<br>&gt; default_severity =3D &lt;not set&gt;
<br>&gt; default_summary =3D
<br>&gt; default_type =3D defect
<br>&gt; default_version =3D All
<br>&gt; max_comment_size =3D 262144
<br>&gt; max_description_size =3D 262144
<br>&gt; preserve_newlines =3D default
<br>&gt; restrict_owner =3D enabled
<br>&gt; workflow =3D ConfigurableTicketWorkflow
<br>&gt;
<br>&gt; [ticket-custom]
<br>&gt; chance =3D select
<br>&gt; chance.label =3D Chance of occurrence
<br>&gt; chance.options =3D &lt;REMOVED&gt;
<br>&gt; chance.order =3D 5
<br>&gt; chance.value =3D Chance of occurence
<br>&gt; customer =3D select
<br>&gt; customer.label =3D Customer
<br>&gt; customer.options =3D &lt;REMOVED&gt;
<br>&gt; customer.order =3D 7
<br>&gt; customer.value =3D
<br>&gt; function =3D select
<br>&gt; function.label =3D Function
<br>&gt; function.options =3D &lt;REMOVED&gt;
<br>&gt; function.order =3D 1
<br>&gt; function.value =3D
<br>&gt; machinetype =3D select
<br>&gt; machinetype.label =3D Machine Type
<br>&gt; machinetype.options =3D &lt;REMOVED&gt;
<br>&gt; machinetype.order =3D 2
<br>&gt; machinetype.value =3D None
<br>&gt; parent =3D text
<br>&gt; parent.format =3D wiki
<br>&gt; parent.label =3D Parent ID
<br>&gt; parent.order =3D 3
<br>&gt; parent.value =3D
<br>&gt; project =3D select
<br>&gt; project.label =3D Project
<br>&gt; project.options =3D &lt;REMOVED&gt;
<br>&gt; project.order =3D 0
<br>&gt; project.value =3D
<br>&gt; supplier =3D select
<br>&gt; supplier.label =3D Supplier
<br>&gt; supplier.options =3D &lt;REMOVED&gt;
<br>&gt; supplier.order =3D 6
<br>&gt; supplier.value =3D None
<br>&gt; valuedriver =3D select
<br>&gt; valuedriver.label =3D Value Driver
<br>&gt; valuedriver.options =3D &lt;REMOVED&gt;
<br>&gt; valuedriver.order =3D 4
<br>&gt; valuedriver.value =3D None
<br>&gt;
<br>&gt; [ticket-workflow]
<br>&gt; analyse =3D new,reopened,analysed,solved,analysing -&gt; analysing
<br>&gt; analyse.operations =3D set_owner
<br>&gt; analyse.permissions =3D TICKET_MODIFY
<br>&gt; analysed =3D analysing -&gt; analysed
<br>&gt; analysed.operations =3D set_owner
<br>&gt; analysed.permissions =3D TICKET_MODIFY
<br>&gt; approved =3D new,analysed,solved -&gt; closed
<br>&gt; approved.operations =3D set_resolution
<br>&gt; approved.permissions =3D TICKET_MODIFY
<br>&gt; create =3D &lt;none&gt; -&gt; new
<br>&gt; create.default =3D 1
<br>&gt; leave =3D * -&gt; *
<br>&gt; leave.default =3D 1
<br>&gt; leave.operations =3D leave_status
<br>&gt; reassign =3D new,analysed,solved,reopened,assigned -&gt; assigned
<br>&gt; reassign.operations =3D set_owner
<br>&gt; reassign.permissions =3D TICKET_MODIFY
<br>&gt; reopen =3D closed -&gt; reopened
<br>&gt; reopen.operations =3D del_resolution
<br>&gt; reopen.permissions =3D TICKET_CREATE
<br>&gt; resolved =3D assigned -&gt; solved
<br>&gt; resolved.operations =3D set_owner
<br>&gt; resolved.permissions =3D TICKET_MODIFY
<br>&gt;
<br>&gt; [tickettemplate]
<br>&gt; enable_custom =3D enabled
<br>&gt; field_list =3D summary,description,reporter,owner,priority,cc,mile=
stone,component,version,type
<br>&gt;
<br>&gt; [ticketvalidator]
<br>&gt; assigned.required =3D project, summary, customer, supplier, functi=
on, severity, priority, valuedriver, machinetype
<br>&gt; new.required =3D project, summary, customer, supplier, function, s=
everity, priority, valuedriver, machinetype
<br>&gt;
<br>&gt; [timeline]
<br>&gt; abbreviated_messages =3D enabled
<br>&gt; changeset_collapse_events =3D disabled
<br>&gt; changeset_long_messages =3D disabled
<br>&gt; changeset_show_files =3D 0
<br>&gt; default_daysback =3D 30
<br>&gt; max_daysback =3D 90
<br>&gt; newticket_formatter =3D oneliner
<br>&gt; ticket_show_details =3D disabled
<br>&gt;
<br>&gt; [trac]
<br>&gt; auto_reload =3D disabled
<br>&gt; base_url =3D <a href=3D"https://alsi-lnx.alsi.local/trac/swdev" ta=
rget=3D"_blank" rel=3D"nofollow" data-saferedirecturl=3D"https://www.google=
.com/url?hl=3Dnl&amp;q=3Dhttps://alsi-lnx.alsi.local/trac/swdev&amp;source=
=3Dgmail&amp;ust=3D1782460719722000&amp;usg=3DAOvVaw2CkWeMHsfyMQrB6kmpmYUc"=
>https://alsi-lnx.alsi.local/trac/swdev</a>
<br>&gt; check_auth_ip =3D disabled
<br>&gt; database =3D sqlite:db/trac.db
<br>&gt; default_charset =3D iso-8859-15
<br>&gt; default_date_format =3D
<br>&gt; default_dateinfo_format =3D relative
<br>&gt; default_handler =3D WikiModule
<br>&gt; default_language =3D
<br>&gt; default_timezone =3D
<br>&gt; htdocs_location =3D
<br>&gt; ignore_auth_case =3D disabled
<br>&gt; permission_policies =3D DefaultWikiPolicy,DefaultTicketPolicy,Defa=
ultPermissionPolicy,LegacyAttachmentPolicy
<br>&gt; permission_store =3D DefaultPermissionStore
<br>&gt; secure_cookies =3D disabled
<br>&gt; show_email_addresses =3D disabled
<br>&gt; timeout =3D 20
<br>&gt; use_base_url_for_redirect =3D disabled
<br>&gt;
<br>&gt; [versioncontrol]
<br>&gt; default_repository_type =3D svn
<br>&gt;
<br>&gt; [wiki]
<br>&gt; ignore_missing_pages =3D disabled
<br>&gt; max_size =3D 262144
<br>&gt; render_unsafe_content =3D disabled
<br>&gt; split_page_names =3D disabled
<br>&gt;
<br>&gt; Thanks again for your continuous support.
<br>&gt; Op zondag 21 juni 2026 om 07:34:49 UTC+2 schreef Jun Omae:
<br>&gt;&gt;
<br>&gt;&gt; On Fri, Jun 19, 2026 at 11:46=E2=80=AFPM Manuel Bilderbeek
<br>&gt;&gt; &lt;<a href data-email-masked rel=3D"nofollow">manuel.bild...@=
gmail.com</a>&gt; wrote:
<br>&gt;&gt; &gt;
<br>&gt;&gt; &gt; Where should that be?
<br>&gt;&gt; &gt;
<br>&gt;&gt; &gt; alsi-lnx:/srv/trac/projects/swdev$ ls -la templates/
<br>&gt;&gt; &gt; total 12
<br>&gt;&gt; &gt; drwxr-xr-x 2 www-data www-data 4096 Jun 14 2013 .
<br>&gt;&gt; &gt; drwxrwxr-x 12 www-data www-data 4096 Apr 15 2025 ..
<br>&gt;&gt; &gt; -rw-r--r-- 1 www-data www-data 154 Mar 19 2009 site.html
<br>&gt;&gt; &gt; alsi-lnx:/srv/trac/projects/swdev$
<br>&gt;&gt; &gt;
<br>&gt;&gt; &gt; There is only site.html there, nothing else.... am I look=
ing at the wrong place?
<br>&gt;&gt;
<br>&gt;&gt; Hm, it seems that you have no custom htmlnotification_ticket.h=
tml but
<br>&gt;&gt; it is unable to reproduce the issue with Trac 1.6, this plugin=
 and
<br>&gt;&gt; fresh Trac Environment.
<br>&gt;&gt;
<br>&gt;&gt; Please share the following information if possible:
<br>&gt;&gt;
<br>&gt;&gt; * System Information, Installed Plugins and Interface Customiz=
ation
<br>&gt;&gt; from /about page in your Trac
<br>&gt;&gt; * trac.ini
<br>&gt;&gt;
<br>&gt;&gt; --
<br>&gt;&gt; Jun Omae &lt;<a href data-email-masked rel=3D"nofollow">jun...=
@gmail.com</a>&gt; (=E5=A4=A7=E5=89=8D =E6=BD=A4)
<br>&gt;
<br>&gt; --
<br>&gt; You received this message because you are subscribed to the Google=
 Groups &quot;Trac Users&quot; group.
<br>&gt; To unsubscribe from this group and stop receiving emails from it, =
send an email to <a href data-email-masked rel=3D"nofollow">trac-users+...@=
googlegroups.com</a>.
<br>&gt; To view this discussion visit <a href=3D"https://groups.google.com=
/d/msgid/trac-users/80ff24ca-c201-4cb8-8f50-0a934c225acfn%40googlegroups.co=
m" target=3D"_blank" rel=3D"nofollow" data-saferedirecturl=3D"https://www.g=
oogle.com/url?hl=3Dnl&amp;q=3Dhttps://groups.google.com/d/msgid/trac-users/=
80ff24ca-c201-4cb8-8f50-0a934c225acfn%2540googlegroups.com&amp;source=3Dgma=
il&amp;ust=3D1782460719722000&amp;usg=3DAOvVaw0bculA7EtVxtS6Z7RIpmGc">https=
://groups.google.com/d/msgid/trac-users/80ff24ca-c201-4cb8-8f50-0a934c225ac=
fn%40googlegroups.com</a>.
<br>
<br>
<br>
<br>--=20
<br>Jun Omae &lt;<a href data-email-masked rel=3D"nofollow">[email protected]=
m</a>&gt; (=E5=A4=A7=E5=89=8D =E6=BD=A4)
<br></blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;Trac Users&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:trac-users+unsubscribe-/[email protected]">trac-use=
rs+unsubscribe-/[email protected]</a>.<br />
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
trac-users/567b481c-f208-42a8-af09-e5055edae8c4n%40googlegroups.com?utm_med=
ium=3Demail&utm_source=3Dfooter">https://groups.google.com/d/msgid/trac-use=
rs/567b481c-f208-42a8-af09-e5055edae8c4n%40googlegroups.com</a>.<br />

------=_Part_57035_565108968.1782376273019--

------=_Part_57034_2029018067.1782376273019--