News
Last revised: June 14, 2025
     _________________________________________________________________

                                What's new?


  This file lists major and incompatible changes in Eggdrop versions.
  You can find the full list of changes in doc/Changes1.10.
  For support, feel free to visit us on Libera #eggdrop.

  For upgrading help, read the UPGRADING file.

  In general, always make a BACKUP of your config and user/chanfile
  before performing an upgrade!

     _________________________________________________________________

Eggdrop v1.10.1:

 General changes:
    - Added a new SCRAM authentication method for SASL
    - Fixed an issue where the bot can crash if the bot parts while the
      channel memberlist is not yet synched
    - Removed TLS commands deprecated by openssl 3.0
    - Fixed a 1.10.0 bug where userhost-in-names was always used if offered by
      the server, even if the bot did not request it
    - Account changes are now logged under the +j console flag, not the +k
      console flag
    - Fixed a bug handling long server or password strings in .jump
    - Fixed a possible crash condition if a bot is marked as away
    - Added compatibility for a change by inspircd adding extra :s to for all
      trailing commands
    - Fixed a bug where putlog timestamps may be off by a second
    - Add notice of expired TLS certs at startup and owner login
    - Fixed malformed content in the language files

 Botnet changes:
    - Added a check to ensure TLS handshake is complete before testing/writing
      to socket, eliminating many of those annoying "dequeue_sockets():
      errno = 11 (Resource temporarily unavailable) on 7" log messages during
      botnet linking

 Tcl API changes:
    - Added a new CHANSET bind, allowing users to trigger Tcl procs when a
      a channel setting is modified
    - Removed a non-casesensitive comparison for non-stacked binds that
      prevented proc names from being overwritten
    - Fixed an issue with utimers ignoring the [count] argument
    - Fixed an issue where calling a bind log improperly clears the Tcl
      interpreter result, causing issues with subsequent processing

 Module changes:
    - Removed python.mod's reliance on IRC mod, thereby preventing a crash
      condition when unloaded (such as on a .restart)
    - Similar to .tcl, the .python command now requires the owner flag
    - Fixed a bug in the python module where storage was not properly segmented
      by threads
    - Fixed a bug introduced in 1.9.4 where unloading the IRC module caused a
      crash
    - Fixed an issue with PBKDF2 where it did not properly 'make' on certain
      systems (such as NetBSD)

 Eggdrop config changes:
    - Added "SCRAM-SHA-512" SASL authentication method to config

 Documentation changes:
    - Added python script tutorial
    - Added documentation for SASL SCRAM mode
    - Fixed userfile tutorial formatting
    - Fixed utimers description to specify the return value is seconds, not
      minutes
    - Updated Cygwin install requirements

     _________________________________________________________________

Eggdrop v1.10.0:

 General changes:
    - Added the new Tcl 'autoscripts' capability. By loading the autoscripts Tcl
      script, Eggdrop can automatically view, download and install Tcl scripts
      hosted by the Eggheads team, all via the partyline! No modification of the
      config file needed.
    - Eggdrop can now use the account a user is logged into as an identification
      method in the same manner that a hostmask does. For this feature to be
      fully accurate, Eggdrop use a server with WHOX enabled and negotiate the
      extended-join and account-notify IRCv3 capabilities.
    - Added the IRCv3 userhost-in-names capability. This capability is
      negotiated with the server at connect and prompts the server to add
      hostmask to the NAMES command. This is useful in a scenario where an IRC
      server has disabled the WHO command, but allows 
      Eggdrop to still track hostmasks (and removes the "pending" status from
      the channel listing under .status).
    - Added the IRCv3 standard-replies capability. This capability is negotiated
      with the server at connect and enables the use of non-numeric FAIL, WARN,
      and NOTE messages.
    - Modified .bans to properly display channel bans.
    - Fixed a bug with network reads performed on TLS connections, where
      Eggdrop could hang until a connection times out, most commonly
      manifesting itself on server connects and userfile transfers. This is
      expected to fix the last documented issue with Eggdrop's handling of
      secure connections.
    - Eggdrop now requires TLS/SSL libs to be installed by default. Whereas
      previously Eggdrop would previously continue to compile if TLS libraries
      were not found, it will now error unless the user explicitly specifies
      the --disable-tls flag.
    - Fixed the Monitor bind to properly use wildcards in binds.
    - Updated language files from ISO-8859 to UTF-8.

 Botnet changes:
    - Fixed an issue in pbkdf2-only links properly using/comparing PASS2 entries

 Tcl API changes:
    - Updated much of the core Tcl integration to be compatible with the
      upcoming Tcl 9 release. Much work was done (thank you DasBrain!) to update
      Eggdrop's internal Tcl calls to prevent breakages using Tcl 9. Most of
      these changes are transparent to the user, but the one major item to call
      out is the improvement of Tcl's UTF-8 emoji handling, which no longer
      requires users to modify TCL_MAX and compile Tcl manually in order to use
      emojis properly.
    - The Python module (below) adds the pysource Tcl command, to load
      a python script into Eggdrop.
    - Added the Tcl CHGHOST bind, which is triggered when a user's
      hostmask is changed via an IRCv3 CHGHOST message.
    - Added the 'hidden-host' type to the event (EVNT) bind. This bind
      is triggered when the bot's own host is hidden (+x) by a 396
      message sent by server.
    - Added the 'got-chanlist' type to the event (EVNT) bind. This bind
      is triggered once Eggdrop finishes receiving the list of usernames
      for a channel from a server. This can be used when Eggdrop needs to
      wait to perform specific functions when joining a channel but
      needs to wait until the users on a channel have been presented by
      the server. 
    - Fixed a bug in the isidentified command to check if a user has
      definitively been identified or unidentified.

 Module changes:
    - Added a Python module! This module integrates an embedded Python
      interpreter similar to the Tcl interpreter already present in
      Eggdrop. This module adds the .python command to the partyline
      (again, similar to the .tcl command) to execute python strings,
      as well as adding the pysource Tcl command that will load a Python
      script into Eggdrop. See doc/modules/mod.python for details on how
      to use it, or example scripts in the scripts/ directory.

 Eggdrop config changes:
    - The copy-to-tmp option was removed from the config. This value is
      now functions under the old '1' behavior where an intermediate temp
      file is created before copying from/to files that are in use.
    - The quick-logs option was removed from the config. This value was
      created to hedge against frequent writes to disk, but is less
      relveant with today's technology. Eggdrop now writes logfiles to
      disk immediately.
    - The old DNS module section was removed
    - A Python module section was added, but does not load the python
      module by default.
    - The Autoscripts capability to load and manage some scripts from the
      partyline is loaded by default

 Documentation changes:
    - Added documentation that covers values commonly used when writing
      new Tcl binds in C
    - Added a tutorial to demonstrate how to share userfiles
    - Added version variable for document generation
  ________________________________________________________________________

Copyright (C) 1997 Robey Pointer
Copyright (C) 1999 - 2025 Eggheads Development Team
