Compilation failed - release ESPEasy-mega-20221105

Moderators: grovkillen, Stuntteam, TD-er

Post Reply
Message
Author
skwaruch
New user
Posts: 8
Joined: 03 Jan 2020, 14:08

Compilation failed - release ESPEasy-mega-20221105

#1 Post by skwaruch » 14 Nov 2022, 21:24

I do everything according to this tutorial (at least I think so): https://espeasy.readthedocs.io/en/lates ... noIDE.html

Below are the error messages:

Code: Select all

C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\CustomBuild\CompiletimeDefines.cpp: In function 'uint16_t get_build_nr()':
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\CustomBuild\CompiletimeDefines.cpp:31:58: note: '#pragma message: Build is not based on current date'
   31 |   #pragma message ( "Build is not based on current date" )
      |                                                          ^
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.h:7,
                 from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:158:27: error: 'taskVarIndex_t' has not been declared
  158 |   void    initPluginStats(taskVarIndex_t taskVarIndex);
      |                           ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:159:28: error: 'taskVarIndex_t' has not been declared
  159 |   void    clearPluginStats(taskVarIndex_t taskVarIndex);
      |                            ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: error: expected ';' at end of member declaration
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
      |                              ;
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:45: error: expected ')' before 'taskVarIndex'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                              ~              ^~~~~~~~~~~~~
      |                                             )
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:16: error: expected ';' at end of member declaration
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                ^~~~~~~~~~~~~~
      |                              ;
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:31: error: redeclaration of 'PluginStats* PluginStats_array::getPluginStats'
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                               ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: note: previous declaration 'PluginStats* PluginStats_array::getPluginStats'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:45: error: expected ')' before 'taskVarIndex'
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                              ~              ^~~~~~~~~~~~~
      |                                             )
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:158:27: error: 'taskVarIndex_t' has not been declared
  158 |   void    initPluginStats(taskVarIndex_t taskVarIndex);
      |                           ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:159:28: error: 'taskVarIndex_t' has not been declared
  159 |   void    clearPluginStats(taskVarIndex_t taskVarIndex);
      |                            ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: error: expected ';' at end of member declaration
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
      |                              ;
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:45: error: expected ')' before 'taskVarIndex'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                              ~              ^~~~~~~~~~~~~
      |                                             )
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:16: error: expected ';' at end of member declaration
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                ^~~~~~~~~~~~~~
      |                              ;
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:31: error: redeclaration of 'PluginStats* PluginStats_array::getPluginStats'
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                               ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: note: previous declaration 'PluginStats* PluginStats_array::getPluginStats'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:45: error: expected ')' before 'taskVarIndex'
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                              ~              ^~~~~~~~~~~~~
      |                                             )
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.cpp: In member function 'PluginStats* PluginTaskData_base::getPluginStats(taskVarIndex_t) const':
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.cpp:141:60: error: expression cannot be used as a function
  141 |     return _plugin_stats_array->getPluginStats(taskVarIndex);
      |                                                            ^
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.cpp: In member function 'PluginStats* PluginTaskData_base::getPluginStats(taskVarIndex_t)':
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.cpp:149:60: error: expression cannot be used as a function
  149 |     return _plugin_stats_array->getPluginStats(taskVarIndex);
      |                                                            ^
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:274:6: error: no declaration matches 'void PluginStats_array::initPluginStats(taskVarIndex_t)'
  274 | void PluginStats_array::initPluginStats(taskVarIndex_t taskVarIndex)
      |      ^~~~~~~~~~~~~~~~~
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:158:11: note: candidate is: 'void PluginStats_array::initPluginStats(int)'
  158 |   void    initPluginStats(taskVarIndex_t taskVarIndex);
      |           ^~~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:152:7: note: 'class PluginStats_array' defined here
  152 | class PluginStats_array {
      |       ^~~~~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:296:6: error: no declaration matches 'void PluginStats_array::clearPluginStats(taskVarIndex_t)'
  296 | void PluginStats_array::clearPluginStats(taskVarIndex_t taskVarIndex)
      |      ^~~~~~~~~~~~~~~~~
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:159:11: note: candidate is: 'void PluginStats_array::clearPluginStats(int)'
  159 |   void    clearPluginStats(taskVarIndex_t taskVarIndex);
      |           ^~~~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:152:7: note: 'class PluginStats_array' defined here
  152 | class PluginStats_array {
      |       ^~~~~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:439:15: error: no declaration matches 'PluginStats* PluginStats_array::getPluginStats(taskVarIndex_t) const'
  439 | PluginStats * PluginStats_array::getPluginStats(taskVarIndex_t taskVarIndex) const
      |               ^~~~~~~~~~~~~~~~~
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: note: candidate is: 'PluginStats* PluginStats_array::getPluginStats'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:152:7: note: 'class PluginStats_array' defined here
  152 | class PluginStats_array {
      |       ^~~~~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:447:15: error: no declaration matches 'PluginStats* PluginStats_array::getPluginStats(taskVarIndex_t)'
  447 | PluginStats * PluginStats_array::getPluginStats(taskVarIndex_t taskVarIndex)
      |               ^~~~~~~~~~~~~~~~~
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: note: candidate is: 'PluginStats* PluginStats_array::getPluginStats'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:152:7: note: 'class PluginStats_array' defined here
  152 | class PluginStats_array {
      |       ^~~~~~~~~~~~~~~~~
exit status 1

User avatar
Ath
Normal user
Posts: 3521
Joined: 10 Jun 2018, 12:06
Location: NL

Re: Compilation failed - release ESPEasy-mega-20221105

#2 Post by Ath » 14 Nov 2022, 21:51

Any chance you could try to compile using VSCode and PlatformIO, as described in this documentation?
That's what is being used as the main development environment for ESPEasy. We currently don't use Arduino IDE, and the effort of getting it all to fit in the limited size of some of the builds requires the use of PlatformIO. And PlatformIO is also the toolchain used to compile ESPEasy using Github Actions.
/Ton (PayPal.me)

TD-er
Core team member
Posts: 8756
Joined: 01 Sep 2017, 22:13
Location: the Netherlands
Contact:

Re: Compilation failed - release ESPEasy-mega-20221105

#3 Post by TD-er » 14 Nov 2022, 23:28

skwaruch wrote: 14 Nov 2022, 21:24 I do everything according to this tutorial (at least I think so): https://espeasy.readthedocs.io/en/lates ... noIDE.html

Below are the error messages:

Code: Select all

C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\CustomBuild\CompiletimeDefines.cpp: In function 'uint16_t get_build_nr()':
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\CustomBuild\CompiletimeDefines.cpp:31:58: note: '#pragma message: Build is not based on current date'
   31 |   #pragma message ( "Build is not based on current date" )
      |                                                          ^
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.h:7,
                 from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:158:27: error: 'taskVarIndex_t' has not been declared
  158 |   void    initPluginStats(taskVarIndex_t taskVarIndex);
      |                           ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:159:28: error: 'taskVarIndex_t' has not been declared
  159 |   void    clearPluginStats(taskVarIndex_t taskVarIndex);
      |                            ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: error: expected ';' at end of member declaration
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
      |                              ;
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:45: error: expected ')' before 'taskVarIndex'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                              ~              ^~~~~~~~~~~~~
      |                                             )
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:16: error: expected ';' at end of member declaration
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                ^~~~~~~~~~~~~~
      |                              ;
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:31: error: redeclaration of 'PluginStats* PluginStats_array::getPluginStats'
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                               ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: note: previous declaration 'PluginStats* PluginStats_array::getPluginStats'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:45: error: expected ')' before 'taskVarIndex'
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                              ~              ^~~~~~~~~~~~~
      |                                             )
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:158:27: error: 'taskVarIndex_t' has not been declared
  158 |   void    initPluginStats(taskVarIndex_t taskVarIndex);
      |                           ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:159:28: error: 'taskVarIndex_t' has not been declared
  159 |   void    clearPluginStats(taskVarIndex_t taskVarIndex);
      |                            ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: error: expected ';' at end of member declaration
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
      |                              ;
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:45: error: expected ')' before 'taskVarIndex'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                              ~              ^~~~~~~~~~~~~
      |                                             )
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:16: error: expected ';' at end of member declaration
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                ^~~~~~~~~~~~~~
      |                              ;
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:31: error: redeclaration of 'PluginStats* PluginStats_array::getPluginStats'
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                               ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: note: previous declaration 'PluginStats* PluginStats_array::getPluginStats'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:184:45: error: expected ')' before 'taskVarIndex'
  184 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex);
      |                              ~              ^~~~~~~~~~~~~
      |                                             )
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.cpp: In member function 'PluginStats* PluginTaskData_base::getPluginStats(taskVarIndex_t) const':
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.cpp:141:60: error: expression cannot be used as a function
  141 |     return _plugin_stats_array->getPluginStats(taskVarIndex);
      |                                                            ^
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.cpp: In member function 'PluginStats* PluginTaskData_base::getPluginStats(taskVarIndex_t)':
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginTaskData_base.cpp:149:60: error: expression cannot be used as a function
  149 |     return _plugin_stats_array->getPluginStats(taskVarIndex);
      |                                                            ^
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:274:6: error: no declaration matches 'void PluginStats_array::initPluginStats(taskVarIndex_t)'
  274 | void PluginStats_array::initPluginStats(taskVarIndex_t taskVarIndex)
      |      ^~~~~~~~~~~~~~~~~
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:158:11: note: candidate is: 'void PluginStats_array::initPluginStats(int)'
  158 |   void    initPluginStats(taskVarIndex_t taskVarIndex);
      |           ^~~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:152:7: note: 'class PluginStats_array' defined here
  152 | class PluginStats_array {
      |       ^~~~~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:296:6: error: no declaration matches 'void PluginStats_array::clearPluginStats(taskVarIndex_t)'
  296 | void PluginStats_array::clearPluginStats(taskVarIndex_t taskVarIndex)
      |      ^~~~~~~~~~~~~~~~~
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:159:11: note: candidate is: 'void PluginStats_array::clearPluginStats(int)'
  159 |   void    clearPluginStats(taskVarIndex_t taskVarIndex);
      |           ^~~~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:152:7: note: 'class PluginStats_array' defined here
  152 | class PluginStats_array {
      |       ^~~~~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:439:15: error: no declaration matches 'PluginStats* PluginStats_array::getPluginStats(taskVarIndex_t) const'
  439 | PluginStats * PluginStats_array::getPluginStats(taskVarIndex_t taskVarIndex) const
      |               ^~~~~~~~~~~~~~~~~
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: note: candidate is: 'PluginStats* PluginStats_array::getPluginStats'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:152:7: note: 'class PluginStats_array' defined here
  152 | class PluginStats_array {
      |       ^~~~~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:447:15: error: no declaration matches 'PluginStats* PluginStats_array::getPluginStats(taskVarIndex_t)'
  447 | PluginStats * PluginStats_array::getPluginStats(taskVarIndex_t taskVarIndex)
      |               ^~~~~~~~~~~~~~~~~
In file included from C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.cpp:1:
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:182:16: note: candidate is: 'PluginStats* PluginStats_array::getPluginStats'
  182 |   PluginStats* getPluginStats(taskVarIndex_t taskVarIndex) const;
      |                ^~~~~~~~~~~~~~
C:\arduino-1.8.19\portable\sketchbook\ESPEasy\src\DataStructs\PluginStats.h:152:7: note: 'class PluginStats_array' defined here
  152 | class PluginStats_array {
      |       ^~~~~~~~~~~~~~~~~
exit status 1
I looked into the code and it is for sure possible I may have forgotten some #include.
But the one you mention here is not a correct build error.
What you can do is adding #include <sdkconfig.h> in the file
src/include/ESPEasy_config.h:

Code: Select all

#if defined(ESP32)
  #include <esp8266-compat.h>
  #include <sdkconfig.h>
  #if ESP_IDF_VERSION_MAJOR < 3
    #ifndef ICACHE_RAM_ATTR
      #define ICACHE_RAM_ATTR IRAM_ATTR
    #endif
  #endif
#endif
And this include directory needs to be in the include path.
No idea where this should be set in Arduino IDE.

skwaruch
New user
Posts: 8
Joined: 03 Jan 2020, 14:08

Re: Compilation failed - release ESPEasy-mega-20221105

#4 Post by skwaruch » 19 Nov 2022, 19:02

Thanks for the replies.
I solved the problem using VS Code and PlatformIO.

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 34 guests