WeatherMap label issues after Ubuntu 24/php8.3 update

Hello Everyone,

I have a strange one after updating my librenms server. My WeatherMap labels become squished the more they are rotated towards vertical. I have attached a screenshot of the issue. I’m guessing it has to do with one of the dependencies and it’s updated version.

I am using a truetype font option in the MapStyle since it is the only type that supports rotation and it was working prior to the upgrade. I suspect it’s to do with the php8.3-gd lib. I’ll continue to refine my Google Foo but I haven’t found anything yet.

here is my anonymized map config file

# Automatically generated by php-weathermap v0.98b

FONTDEFINE 10 /opt/librenms/html/plugins/Weathermap/configs/PTS55F-webfont.ttf 14

WIDTH 1400
HEIGHT 900
HTMLSTYLE overlib
TITLE Wan
HTMLOUTPUTFILE output/wan.html
IMAGEOUTPUTFILE output/wan.png
TIMEPOS 1218 14 Created: %b %d %Y %H:%M:%S

KEYPOS DEFAULT 1281 708 Traffic Load
KEYTEXTCOLOR 0 0 0
KEYOUTLINECOLOR 0 0 0
KEYBGCOLOR 255 255 255
BGCOLOR 255 255 255
TITLECOLOR 0 0 0
TIMECOLOR 0 0 0
SCALE DEFAULT 0    0    192 192 192  
SCALE DEFAULT 0    1    255 255 255  
SCALE DEFAULT 1    10   140   0 255  
SCALE DEFAULT 10   25    32  32 255  
SCALE DEFAULT 25   40     0 192 255  
SCALE DEFAULT 40   55     0 240   0  
SCALE DEFAULT 55   70   240 240   0  
SCALE DEFAULT 70   85   255 192   0  
SCALE DEFAULT 85   100  255   0   0  

SET key_hidezero_DEFAULT 1

# End of global section


# TEMPLATE-only NODEs:
NODE DEFAULT
	LABELFONT 5
	MAXVALUE 100


# TEMPLATE-only LINKs:
LINK DEFAULT
	WIDTH 5
	COMMENTSTYLE center
	BWSTYLE angled
	BWFONT 10
	BWLABEL bits
	BANDWIDTH 100M


# regular NODEs:
NODE node07100
	LABEL XXX...XXX
	ICON images/Cloud-line.png
	POSITION 850 437

NODE 3
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=2/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=2&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 210 438

NODE 4
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=4/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=4&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 350 40

NODE 5
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=5/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=5&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 525 40

NODE 6
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=6/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=6&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 675 40

NODE 8
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=8/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=8&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 1075 40

NODE 9
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=9/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=9&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 950 40

NODE 11
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=11/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=11&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 1340 179

NODE node09590
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=2/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=2&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 825 40

NODE 10
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=10/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=10&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 1340 275

NODE 12
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=12/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=12&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 1340 400

NODE 13
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=13/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=13&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 1340 525

NODE 14
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=14/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=14&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 1340 650

NODE 15
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=15/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=15&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 80 320

NODE 16
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=16/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=16&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 850 840

NODE 17
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=17/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=17&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 1025 840

NODE 18
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=18/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=18&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 500 840

NODE 19
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=19/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=19&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 675 840

NODE 20
	LABEL XXX...XXX
	LABELOFFSET N
	INFOURL /device/device=20/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=20&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 80 450

NODE 21
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=21/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=21&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 80 750

NODE 22
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=22/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=22&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 150 840

NODE 24
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=24/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=24&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 325 840

NODE 25
	LABEL XXX...XXX
	LABELOFFSET S
	INFOURL /device/device=25/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=25&type=device_bits&legend=no
	ICON images/Router.png
	POSITION 1200 840

NODE 27
	LABEL XXX...XXX
	INFOURL /device/device=27/
	OVERLIBGRAPH /graph.php?height=100&width=512&device=27&type=device_bits&legend=no
	ICON images/Firewall.png
	POSITION 486 252

NODE node06062
	LABEL XXX...XXX
	INFOURL /device/device=27/
	ICON images/Cloud-line.png
	POSITION 100 63


# regular LINKs:
LINK 3-node07100
	INFOURL /graphs/type=port_bits/id=3/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=3&type=port_bits&legend=no
	BWLABELPOS 70 25
	TARGET ./XXX...XXX/port-id3.rrd:INOCTETS:OUTOCTETS
	NODES 3 node07100
	BANDWIDTH 1000M

LINK 4-node07100
	INFOURL /graphs/type=port_bits/id=4399/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4399&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id4399.rrd:INOCTETS:OUTOCTETS
	NODES 4:0:0 node07100:0:0
	BANDWIDTH 200M

LINK 5-node07100
	INFOURL /graphs/type=port_bits/id=4455/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4455&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id4455.rrd:INOCTETS:OUTOCTETS
	NODES 5 node07100

LINK 6-node07100
	INFOURL /graphs/type=port_bits/id=4470/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4470&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id4470.rrd:INOCTETS:OUTOCTETS
	NODES 6 node07100

LINK 8-node07100
	INFOURL /graphs/type=port_bits/id=4463/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4463&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id4463.rrd:INOCTETS:OUTOCTETS
	NODES 8 node07100

LINK 9-node07100
	INFOURL /graphs/type=port_bits/id=4441/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4441&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id4441.rrd:INOCTETS:OUTOCTETS
	NODES 9 node07100

LINK 11-node07100
	INFOURL /graphs/type=port_bits/id=4462/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4462&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id4462.rrd:INOCTETS:OUTOCTETS
	NODES 8 node07100

LINK 10-node07100
	INFOURL /graphs/type=port_bits/id=4434/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4434&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id4434.rrd:INOCTETS:OUTOCTETS
	NODES 10 node07100

LINK 12-node07100
	INFOURL /graphs/type=port_bits/id=4448/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4448&type=port_bits&legend=no
	BWLABELPOS 70 25
	TARGET ./XXX...XXX/port-id4448.rrd:INOCTETS:OUTOCTETS
	NODES 12 node07100

LINK 13-node07100
	INFOURL /graphs/type=port_bits/id=4484/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4484&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id4484.rrd:INOCTETS:OUTOCTETS
	NODES 13 node07100

LINK 14-node07100
	INFOURL /graphs/type=port_bits/id=4477/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4477&type=port_bits&legend=no
	BWLABELPOS 70 25
	TARGET ./XXX...XXX/port-id4477.rrd:INOCTETS:OUTOCTETS
	NODES 14 node07100

LINK 16-node07100
	INFOURL /graphs/type=port_bits/id=844/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=844&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id844.rrd:INOCTETS:OUTOCTETS
	NODES 16 node07100

LINK 17-node07100
	INFOURL /graphs/type=port_bits/id=863/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=863&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id863.rrd:INOCTETS:OUTOCTETS
	NODES 17 node07100

LINK 18-node07100
	INFOURL /graphs/type=port_bits/id=4356/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4356&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id4356.rrd:INOCTETS:OUTOCTETS
	NODES 18 node07100

LINK 19-node07100
	INFOURL /graphs/type=port_bits/id=901/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=901&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id901.rrd:INOCTETS:OUTOCTETS
	NODES 19 node07100

LINK 20-21
	INFOURL /graphs/type=port_bits/id=929/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=929&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id929.rrd:INOCTETS:OUTOCTETS
	NODES 20 21

LINK 21-node07100
	INFOURL /graphs/type=port_bits/id=939/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=939&type=port_bits&legend=no
	BWLABELPOS 70 25
	TARGET ./XXX...XXX/port-id939.rrd:INOCTETS:OUTOCTETS
	NODES 21 node07100
	BANDWIDTH 200M

LINK 22-node07100
	INFOURL /graphs/type=port_bits/id=958/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=958&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id958.rrd:INOCTETS:OUTOCTETS
	NODES 22 node07100

LINK 24-node07100
	INFOURL /graphs/type=port_bits/id=1095/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=1095&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id1095.rrd:INOCTETS:OUTOCTETS
	NODES 24 node07100

LINK 27-node07100
	WIDTH 7
	INFOURL /graphs/type=port_bits/id=1141/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=1141&type=port_bits&legend=no
	BWLABELPOS 70 25
	TARGET ./XXX...XXX/port-id1141.rrd:INOCTETS:OUTOCTETS
	NODES 27 node07100
	BANDWIDTH 1000M

LINK 27-node06062
	WIDTH 7
	INFOURL /graphs/type=port_bits/id=1140/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=1140&type=port_bits&legend=no
	BWLABELPOS 70 25
	TARGET ./XXX...XXX/port-id1140.rrd:INOCTETS:OUTOCTETS
	NODES 27 node06062
	BANDWIDTH 1000M

LINK 15-node06062
	INFOURL /graphs/type=port_bits/id=4401/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4401&type=port_bits&legend=no
	BWLABELPOS 70 25
	TARGET ./XXX...XXX/port-id4401.rrd:INOCTETS:OUTOCTETS
	NODES 15 node06062
	BANDWIDTH 80M 40M

LINK node07100-25
	INFOURL /graphs/type=port_bits/id=1114/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=1114&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id1114.rrd:OUTOCTETS:INOCTETS
	NODES node07100 25

LINK node09590-node07100
	INFOURL /graphs/type=port_bits/id=3838/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=3838&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id3838.rrd:INOCTETS:OUTOCTETS
	NODES node09590 node07100
	BANDWIDTH 300M

LINK 8-11
	INFOURL /graphs/type=port_bits/id=4464/
	OVERLIBGRAPH /graph.php?height=100&width=512&id=4464&type=port_bits&legend=no
	TARGET ./XXX...XXX/port-id4464.rrd:INOCTETS:OUTOCTETS
	NODES 8 11



# That's All Folks!