1Recent Changes in Lepton EDA 2============================ 3 4This file documents important user-visible changes in Lepton EDA. For 5more information, please consult `git log` history. 6 7 8Notable changes in Lepton EDA 1.9.17 (20211219) 9----------------------------------------------- 10 11### General changes: 12 13- All Lepton tools now support attributes with empty values. 14 15### Changes when building from source: 16 17- Support for Guile 2.0 has been dropped. 18 19- Lepton now requires GTK 3.2.0 or later versions for build with 20 GTK3 support. 21 22### Changes in `liblepton`: 23 24- Support for dlopening foreign libraries used in Lepton by Scheme 25 code has been improved so that Lepton could find the necessary 26 libraries even if there is no development files for them 27 installed on user's system. This fixes the issue of finding 28 libraries by Guile on systems like Debian and its derivatives. 29 Guile requires library names to end up with standard exstensions 30 like `.la` or `.so`. On Debian, for example, library names may 31 have some version numbers appended to them and symlinks with 32 canonical names are distributed in separate development 33 packages. One portable solution of the issue is using 34 `ldconfig` for obtaining the names of the existing library 35 files. The tool can be now used on the `./configure` stage of 36 Lepton compilation to hardcode the names in Scheme. A new 37 environment variable, `USE_LDCONFIG`, has been introduced to 38 make use of this approach. To trigger retrieving the names, 39 just do: `./configure USE_LDCONFIG=/sbin/ldconfig ...` 40 41- The following core Scheme modules written in C have been removed 42 and their functions have been reimplemented using Scheme FFI: 43 - `(lepton core attrib)` 44 - `(lepton core component)` 45 - `(lepton core config)` 46 - `(lepton core page)` 47 - `(lepton core rc)` 48 49### Changes in `lepton-schematic`: 50 51- Support for GTK3 *smooth* scrolling events has been added in the 52 GTK3 version of the program. 53 54### Changes in `lepton-cli`: 55 56- The program has been rewritten in Scheme and splitted up into 57 four separate utilities that provide different functionality 58 which was previously built-in in one binary of the tool: 59 - `lepton-config` provides facilities for working with Lepton 60 configuration system, 61 - `lepton-export` deals with exporting of schematics and symbols 62 into various image formats, 63 - `lepton-shell` provides the interactive Scheme REPL and, 64 - `lepton-cli` is a tool that can launch all the above utilities 65 using corresponding commands `config`, `export`, and `shell`, 66 as before. 67 68- The new Scheme `lepton-cli` utility, unlike the previous code, 69 does not allow for merely skipping `--` just after command name 70 in the command line and behaves the same way like Guile does, 71 that is, interprets all options after `--` as file names. 72 73- `lepton-cli config` now does check if the specified directory 74 exists and reports if it does not, returning non-zero exit 75 status. 76 77- Redundant arguments on the `lepton-cli config` invocation are no 78 longer ignored. Instead, the command prompts the user of what's 79 happening and exits with non-zero exit status. 80 81- More consistent processing of the option `-p` has been 82 implemented in `lepton-cli config`. `-p` can be now used in two 83 forms, `-pPATH` or `-p PATH`, that is, it is processed the same 84 way with or without space. On the contrary, its long version, 85 `--project`, can only be given as `--project=PATH`. Ambiguous 86 form `-p=PATH` which may suggest that a project directory name 87 is equal to `=PATH`, is now disallowed as an extension not 88 conforming to POSIX and GNU standards. On the other hand, the 89 ambiguity of the expression `-p path` has been eliminated: if 90 the option `-p` is not the last command line argument, the next 91 argument is considered to be belonging to it and means a project 92 directory path, *not* a configuration group name. 93 94- `lepton-cli config` now warns the user if the directories given 95 in the command-line are missing. Previously, it could output 96 misleading messages about other errors, e.g., that the user may 97 specify only one configuration store. 98 99- In `lepton-cli config`, an argument is now required by the 100 options `-s` and `-u`, so using any combination of them in 101 series without a file name argument leads to errors about wrong 102 file names. 103 104### Changes in `contrib`: 105 106- Utilities `gsymupdate` and `gschupdate` have been replaced with 107 a new utility, `lepton-update`, written in Scheme. The old 108 utilities parsed schematic and symbol files directly, which 109 sometimes could lead to wrong results, and were broken since 110 introducing `lepton-embed`. The new tool, as many others in the 111 suite, uses `liblepton` and does better job when updating 112 obsolete files. Please see *lepton-update(1)* for more. 113 114 115Notable changes in Lepton EDA 1.9.16 (20210731) 116----------------------------------------------- 117 118### General changes: 119 120- Compilation warnings on running Lepton utilities written in 121 Scheme, which shown up in the previous release, have been fixed. 122 123- Several symbols in the `sym/analog` have been fixed by adding 124 missing `footprint`, `value`, and `symversion` attributes. 125 126- Test schematics for netlister have been made self-sufficient by 127 adding symbols they depend on. 128 129- A new integration test suite written in Scheme has been added to 130 unify testing of all Lepton utilities in future. 131 132### Changes when building from source: 133 134- Versions of `Cygwin` libraries are now updated automatically. 135 136### Changes in `liblepton`: 137 138- Several Scheme functions related to source libraries have been 139 fixed or improved as follows: 140 - The function `source-library-search()` no longer adds wrong 141 directories with duplicated root name. 142 - The functions `source-library()`, `source-library-search()`, 143 `reset-source-library()` now return the value of the default 144 source library record. 145 - The functions now check the type of their arguments and raise 146 `'wrong-type-arg` exception if it is wrong. 147 148 149### Changes in `lepton-schematic`: 150 151- Several status bar indicators have been made interactive. Now, 152 the user can change the *rubber band* and *magnetic net* modes 153 and sizes of grid and snap simply by clicking on the indicators. 154 155### Changes in `lepton-netlist`: 156 157- The output of the `switcap` netlister backend which was broken 158 for several years is now fixed according to its documentation. 159 160 161Notable changes in Lepton EDA 1.9.15 (20210626) 162----------------------------------------------- 163 164### General changes: 165 166- The test suite has been fixed and now `make distcheck` can 167 be run under the `root` user account without errors. 168 169- Lepton now fully supports GTK 3.0.0: 170 - Several warnings on functions deprecated in GTK/GDK 3.0.0 have 171 been fixed. 172 - See also changes in `lepton-schematic` below. 173 174- A bug with visual representation of arcs in raster images and on 175 canvas of `lepton-schematic` has been fixed. 176 177- All Lepton utilities, even the GUI ones, no longer use 178 `liblepton` as a Scheme extension. Now the libraries are 179 properly dynamically loaded by Scheme as any other libs. 180 181 182### Changes when building from source: 183 184- Fixed building with `--disable-attrib`: the `bin/lepton-attrib` 185 script is no longer installed. 186 187- Versions of `Cygwin` libraries have been updated to match actual 188 versions of `liblepton`, `libleptongui` and `libleptonattrib`. 189 190### Changes in `liblepton`: 191 192- Several core C structs in the library have been amended to 193 contain only relevant information about primitive objects. 194 195- The following core Scheme modules written in C have been removed 196 and their functions have been reimplemented using Scheme FFI: 197 - `(lepton core deprecated)` 198 - `(lepton core object)` 199 - `(lepton core os)` 200 201- A new module, `(lepton object type)`, has been introduced. It 202 now contains functions from `(lepton object)`, and exported in 203 that module as well, that query the type of primitive Lepton's 204 objects. 205 206- Definitions of foreign functions are now residing in a new 207 module, `(lepton ffi)`. The module contains definitions of 208 Scheme counterparts of C functions in the `liblepton` library. 209 210- The Scheme function `platform()` no longer outputs `'(carbon)`. 211 There is no reasonable replacement yet, so the function outputs 212 `'(unknown)` on those Mac machines on which it usually did so. 213 214### Changes in `lepton-schematic`: 215 216- Snap size and grid size indicators now have separate labels 217 in the status bar. The snap size label changes its text color 218 and decoration to draw user's attention when snap size currently 219 set differs from the value in configuration. It helps avoiding 220 mistakes when constructing new symbols. 221 222- Lepton now fully supports GTK 3.0.0. Apart from fixes mentioned 223 above the following changes have been made: 224 - A bug of not showing text of hidden attributes in the 225 **Multiattrib** dialog of `lepton-schematic` has been fixed. 226 - Displaying of tabs has been improved. 227 - Displaying of the **Object properties** dialog in the docked 228 view of the program has been fixed so all widgets are shown 229 properly now. 230 231Notable changes in Lepton EDA 1.9.14 (20210407) 232----------------------------------------------- 233 234### General changes: 235 236- The output of `--help` and `--version` command line options for 237 all utils has been unified and simplified: reduced long lines, 238 added links to Lepton's issue tracker and home page as well as 239 copyright information. The options have been added to the 240 programs that missed them. 241 242- Several changes have been made in the directory layout of the 243 repository: 244 - Directory with examples for `gmk_sym` has been moved to 245 `contrib/` in where the script actually resides. 246 - The program `lepton-renum` has been moved to `contrib/`. 247 - The following scripts have been moved with tests, examples and 248 documentation to dedicated directories under `utils/`: 249 - `lepton-archive` 250 - `lepton-attrib` 251 - `lepton-cli` 252 - `lepton-embed` 253 - `lepton-netlist` 254 - `lepton-pcb_backannotate` 255 - `lepton-refdes_renum` 256 - `lepton-sch2pcb` 257 - `lepton-schdiff` 258 - `lepton-symcheck` 259 - `lepton-symfix` 260 - `lepton-tragesym` 261 - `lepton-upcfg` 262 - `m4` files used by `autoconf` have been renamed. 263 - `ChangeLog` files for Lepton tools are no longer generated. A 264 toplevel `ChangeLog` file has been added with description of 265 where and how to get the information on changes. 266 - Empty `ChangeLog` files have been removed from `po/` directories. 267 - `.gitignore` files have been cleaned up. 268 - Several other documentation files have been moved from 269 `utils/` to `contrib/` or `docs/`, or removed. 270 - The contents of the `symbols/` directory has been reorganized 271 as well: 272 - Most of symbols have been moved to `symbols/sym`. 273 - Added the subdirectory `docs/` for documentation. 274 - Added the subdirectory `scheme/` for Scheme files. 275 - Directories with symbols that have names conflicting with 276 those living in the `sym/` subdirectory have been renamed 277 and are now prefixed with `sym-`. 278 279### Changes when building from source: 280 281- Fixed building of *doxygen* documentation. 282 283### Changes in `docs`: 284 285- Relatively new Scheme functions are now documented in the Lepton 286 EDA Scheme manual: `config?()`, `user-cache-dir()`, 287 `cache-config-context()`, and `anyfile-config-context()`. 288 289- Lepton EDA reference manual has been updated with info on 290 `lepton-cli` usage. 291 292- Fixed a link in Lepton EDA reference manual to the Lepton EDA 293 Scheme API manual in HTML format. 294 295- The contents of the file `nc.doc` about no-connection symbols 296 has been moved to the Lepton EDA reference manual. 297 298### Changes in `liblepton`: 299 300- The module `(lepton core smob)` written in C does no longer 301 exist. Its exported functions have been reimplemented using 302 Scheme FFI. 303 304- Many of the basic Scheme functions in the `(lepton core object)` 305 module defined in the C code have been rewritten using plain 306 Scheme FFI. 307 308- Foreign functions in Scheme code have been renamed accordingly 309 to their C counterparts. 310 311- The files which names started with `geda_` have been renamed and 312 this prefix has been dropped. 313 314- The types which names were prefixed with `Geda` have been 315 renamed and now have the prefix `Lepton`. Their sibling types, 316 e.g. `OBJECT` for `LeptonObject` have been removed. 317 318- The functions which names were prefixed with `geda_` have been 319 renamed so that their name are now start with `lepton_`. Many 320 other functions related to objects have been renamed in similar 321 way as well. 322 323- The `component_embedded` field of the `LeptonObject` structure 324 has been renamed to `embedded` and moved to `LeptonComponent`. 325 Accessors for this field have been added to not use it directly. 326 327- Many new checks for object type have been added in functions 328 dealing with objects. 329 330- Object types are no longer queried explicitly in the code. Type 331 accessors have been added which are used both in C and Scheme 332 FFI code. 333 334- Accessors for the `CHANGED` field of the renamed structure 335 `LeptonPage` have been added to facilitate using it in Scheme. 336 337- The following redundant types have been eliminated: `BOX`, 338 `OBJECT_END`, `OBJECT_FILLING`, `OBJECT_TYPE`, `PATH`, 339 `PICTURE`, `SELECTION`, `TEXT`, `TOPLEVEL`, `UNDO`, `sPOINT`. 340 341- The type `LeptonStroke` has been factored out of `LeptonObject`. 342 Its inherited fields have been renamed to match to corresponding 343 Scheme functions. C accessors for each member of the new 344 structure have been added as well. 345 346- Several accessors for `LeptonObject` structure members have been 347 added. 348 349- Accessors for all fields of picture objects have been added. 350 351- The ad hoc object type `OBJ_PLACEHOLDER` has been eliminated. 352 353- Previously, some of the functions for new object creation had 354 the `type` argument. The argument has been removed as 355 superfluous since it is always known which object is created. 356 357- Embedding code for pictures and components has been splitted up, 358 moved to appropriate places, and reduced. 359 360- Four unit tests that previously worked well with Guile 3.0.4 361 started to fail with Guile 3.0.5 on Debian. The tests have been 362 fixed so they pass with either of the versions. 363 364### Changes in `libleptongui`: 365 366- Scheme module `(schematic core builtins)` defined in C code has 367 been removed. Its functions are now defined in the module 368 `(gschem deprecated)`. 369 370- Gettext domain for the library has been renamed from 371 **lepton-schematic** to **libleptongui** to be consistent with 372 other tools. 373 374### Changes in `lepton-netlist`: 375 376- Fixed exporting of necessary modules in several Scheme files. 377 378- Several superfluous and erroneous `gafrc` files have been 379 removed from the `examples/` subdirectory. 380 381### Changes in `lepton-attrib`: 382 383- The program used to use colors to designate the visibility of 384 affected attributes in schematic editor. A status bar with a 385 color legend has been added prompting the user of the meaning of 386 the colors used. 387 388- The current file name is now displayed in the title of the 389 program window. If several files are open, "Multiple files" is 390 shown in the caption instead. If there were changes in any of 391 the opened files, this is marked by an asterisk prepended to the 392 title caption. 393 394- Slot numbers are now explicitly displayed in parentheses with 395 the word "slot" after reference designators, e.g. **U1 (slot 396 3)** instead of **U1.3** as it was previously. This is to 397 prevent confusion if the user actually wants to use dot 398 separators in refdeses. 399 400- Only those components that really have the `slot=` attribute are 401 now shown as slotted. 402 403- The overwrite confirmation dialog will now displayed on *File* → 404 *Export CSV* if an already existing file is selected for output. 405 406- Default response in the *Delete Attribute* dialog has been 407 changed to "No". 408 409- The *About* dialog has been improved and now it looks like one 410 in `lepton-schematic`. 411 412- Modification status update on saving has been fixed. 413 414### Changes in `lepton-schematic`: 415 416- The long command line option `--command` has been introduced as 417 an analog of the short option `-c`. 418 419- The program used to output backtraces on wrong command line 420 options. Now backtraces are avoided. Instead, a short error 421 message and a useful prompt are shown. 422 423- Fixed crashes when the command line contains the text as 424 follows: `-c '(quit)'`. 425 426- The behaviour of the combobox for choosing the way of symbol 427 insertion in the component selection dialog was broken in the 428 previous version and now has been fixed. 429 430- Text in several dialog titles has been improved, fixed, or 431 added. In particular, the title of the close confirmation 432 dialog now shows the name of the program instead of "unknown". 433 434- Default response in the overwrite confirmation dialog is now 435 "No" to avoid accidental overwriting of files. 436 437- Color scheme error dialog was not shown previously. This has 438 been fixed. 439 440- The bus drawing tool supposed to behave the same way as the net 441 tool. A click with the right mouse button cancels the net 442 action. This did not work with bus actions, which is now fixed. 443 444- Modified schematic pages used to be shown as marked with an 445 asterisk in tabbed view. Now, "Save" buttons are shown instead, 446 which allows the user to quickly save files with the mouse if 447 toolbars are turned off. 448 449- The tab buttons, "Save" and "Close" have now tool-tips 450 describing their functions. 451 452- The edit attribute dialog has been improved: now its section 453 "Add attribute" is collapsible, that is, it may get folded or 454 unfolded, which allows to see more attributes at once. This 455 state is preserved during the program run. 456 457### Changes in `lepton-renum`: 458 459- Build date and time are no longer hard-coded in the sources to 460 aid reproducible builds. 461 462### Changes in `lepton-pcb_backannotate`: 463 464- Previously, the script code searched for the "Id" string in 465 itself and, being unable to find it, exited with the error 466 message "Could not determine version". Now the script prints 467 Lepton version and copyright instead. 468 469- Refdes renaming has been fixed by exchanging parameters of the 470 `%cmd_rename` hash. 471 472- Deprecated `defined` construct that raised a fatal error since 473 Perl version 5.22 has been removed. 474 475- Man page of the script has been improved. 476 477Notable changes in Lepton EDA 1.9.13 (20201211) 478----------------------------------------------- 479 480Bugfix release. 481 482### Changes when building from source: 483 484- Build for Cygwin has been fixed in that the Lepton GUI tools now 485 actually work. 486 487- Fixed installation of images into the info directory. 488 489- File `color-map.scm`, removed in the previous release, has been 490 restored for backward compatibility. 491 492### Changes in `lepton-attrib`: 493 494- Two long standing bugs in the program, that manifested 495 themselves when the user deleted an attribute column in the 496 spreadsheet, have been fixed: 497 - The program did not prompt the user on unsaved changes on 498 exit. 499 - All invisible attributes became visible. 500 501### Changes in `lepton-gui`: 502 503- Fixed processing of options `-c` and `-s` broken in the previous 504 release. 505 506- Reduced the number of Help menu items pointing to obsolete wiki 507 documentation. 508 509 510Notable changes in Lepton EDA 1.9.12 (20201204) 511----------------------------------------------- 512### General changes: 513 514- Started creation of Lepton EDA reference manual. The manual can 515 be opened from the `lepton-schematic` GUI by using <kbd>H</kbd> 516 <kbd>M</kbd> keyboard shortcut. 517 518- The empty `local` subdirectory has been removed from 519 the list of component libraries. 520 521- Old ChangeLog files (<=2007) are no longer installed. They 522 hardly provide some any useful information for end users now and 523 any info can be easily received using git. 524 525### Changes when building from source: 526 527- Guile 3.0 support has been added. 528 529- Experimental GTK 3.0 support has been added. A new `configure` 530 option, `--with-gtk3`, has been added to enable building 531 programs with GTK3. Please see [README](README.md) for more 532 information. 533 534- Build with `-Wl,--no-undefined`, broken in the previous release, 535 has been revamped by merging two libraries, `liblepton` and 536 `libleptonrenderer`. 537 538- Build for Cygwin has been fixed as well by the above change. 539 540- The build option `--disable-attrib` broken in the previous 541 release has been fixed. 542 543- The obsolete and pretty useless script `bom_xref.sh` has been 544 removed from the toolset. 545 546### Changes in `liblepton`: 547 548- Code from the library `libleptonrenderer` has been merged into 549 `liblepton`. 550 551- A new module, `(lepton eval)`, has been added. The new module 552 exports Scheme versions of functions `eval-protected()` and 553 `eval-string-protected()` previously defined in C code. 554 555- A new module, `(lepton ffi)`, has been introduced. It contains 556 general definitions related to Scheme FFI. 557 558- Refactored color system code: 559 - A new module, `(lepton color-map)` has been added. 560 - Procedures `print-color-map()`, `display-color-map()`, and 561 `display-outline-color-map()` have been moved to the module. 562 - The procedures now return their color-map values instead of 563 just `#t`. 564 - The module additionally exports the variable 565 `%color-name-map`. It returns the set of valid symbols for 566 color names. 567 568- Print color maps for dark and light color schemes have been 569 fixed: 570 - The `grid` color name has been replaced with `dots-grid`. 571 - Missing colors `mesh-grid-major` and`mesh-grid-minor` have 572 been added. 573 574- Scheme functions working with version of the tools have been 575 added or refactored: 576 - Added procedure `lepton-version-data()` which can return the 577 list of version strings by requested symbol names. 578 - Added procedure `lepton-version-ref()` which retrieves one 579 version data element by its symbol name. 580 - Added generic procedure `display-lepton-version()`. 581 - `lepton-version()` has been refactored. Please see its 582 docstring for more. 583 584### Changes in `lepton-schematic`: 585 586- C source code has been transformed into a new library, 587 `libleptongui`. `lepton-schematic` is now an executable Scheme 588 script which uses Guile FFI to make the job done, allowing to 589 play with it without recompilation of the underlying C code. 590 591- Setting of the environment variable `LD_LIBRARY_PATH` may be 592 needed for users installing Lepton from sources if the system 593 configuration does not include the path to `libleptongui`. 594 595- Two new Scheme modules, `(schematic ffi)` and `(schematic ffi 596 gtk)`, have been added to the suite. They provide Scheme FFI 597 bindings for GTK functions. 598 599- A new environment variable, **LIBLEPTONGUI**, has been added in 600 order the user to redefine the path to the `libleptongui` 601 library "on the fly". This can be used, e.g., for test suite or 602 in development for testing changes without installation of the 603 library. 604 605- Scheme builtin action procedures that were defined in C code and 606 that were not available in some circumstances, e.g. in remote 607 REPL, are now available in the module `(gschem deprecated)`. 608 609- Three C functions for creating dialogs and their corresponding 610 Scheme counterparts have been re-implemented in Scheme using FFI 611 and renamed. The new functions are exported in a new Scheme 612 module, `(schematic dialog)`. Those functions are: 613 - `schematic-message-dialog` (former `gschem-msg`) 614 - `schematic-confirm-dialog` (former `gschem-confirm`) 615 - `schematic-fileselect-dialog` (former `gschem-filesel`) 616 617- Guile module `(srfi srfi-37)` is now used instead of `(ice-9 618 getopt-long)` for command line option processing. 619 620- A new option, `--command`, can now be used as an alias for `-c`. 621 622- The keyword `G_` is now used for translation of strings in 623 Scheme code in order to prevent conflicts with other Guile 624 functions such as, e.g., `match()`. It's the same change as one 625 that have been recently made in Guile 3.0. 626 627- Several new additional shortcuts have been added which are used 628 in many other programs to ease working with the tools for 629 newbies: 630 - <kbd>Control</kbd>+<kbd>N</kbd> for opening a new file 631 - <kbd>Control</kbd>+<kbd>O</kbd> for opening an existing file 632 - <kbd>Control</kbd>+<kbd>S</kbd> for file saving 633 - <kbd>Control</kbd>+<kbd>P</kbd> for printing the contents of a file 634 - <kbd>Control</kbd>+<kbd>Shift</kbd>+<kbd>Z</kbd> for redo (as 635 an inversion for <kbd>Control</kbd>+<kbd>Z</kbd> for undo) 636 637- Another bunch of additional shortcuts has been added to simplify 638 zooming for the same reasons: 639 - <kbd>=</kbd>, <kbd>Control</kbd>+<kbd>=</kbd>, and 640 <kbd>KP_Add</kbd> for zooming in 641 - <kbd>-</kbd>, <kbd>Control</kbd>+<kbd>-</kbd>, and 642 <kbd>KP_Subtract</kbd> for zooming out 643 - <kbd>0</kbd>, <kbd>Control</kbd>+<kbd>0</kbd>, and 644 <kbd>KP_Multiply</kbd> for zooming to extents 645 646- Filters behavior in the file chooser dialogs has been 647 improved. In the `Save As` dialog the filter is set based 648 on the current schematic's file name. Extensions containing 649 letters in different case are now correctly recognized, 650 filters can work with file names matching the following 651 shell patterns: `*.[sS][cC][hH]` and `*.[sS][yY][mM]`. 652 653- It is now possible to change a color of net and bus objects 654 in the `Object Properties` dialog. 655 656- All available colors are now shown in the colors combo box, 657 disabled ones are designated as "[ disabled ]". 658 659- Two new keywords, `symbol-attribs` and `pin-attribs`, have been 660 added to the `[schematic.attrib]` configuration group in order 661 to replace the functionality of the legacy procedure 662 `attribute-name()`. The procedure is now exported in the module 663 `(schematic attrib)`. See updated Lepton reference manual for 664 more information. 665 666- Fixed a regression in font displaying that appeared in the 667 previous Lepton version 1.9.11. Now lower aligned text objects 668 are displayed the same way as before, their anchor points now 669 specify positions of their baselines rather than bottom lines of 670 the text logical rectangles. 671 672### Changes in `lepton-netlist`: 673 674- Two issues in the `tEDAx` backend have been fixed: 675 - Parametric attribute values containing spaces between the 676 parameters were passed un-escaped in the backend output. Now 677 they are escaped according to [the tEDAx 678 spec](http://repo.hu/projects/tedax/syntax.html). 679 - Support for output of `nettag` net attributes, which had been 680 missing before, has been added. 681 682### Changes in `lepton-attrib`: 683 684- The source code of the program has been fixed so that it no 685 longer use a big change of obsolete third party spreadsheet 686 code. Instead, a dependency on another up-to-date project, 687 `gtkextra`, has been added. 688 689- After the above change, another feature has been added. Now, 690 you can try to install a new, experimental GTK3 interface of the 691 program. Please see Lepton reference manual for more info. 692 693Notable changes in Lepton EDA 1.9.11 (20200604) 694----------------------------------------------- 695### General changes: 696- Executable scripts `lepton-netlist` and `lepton-symcheck` have 697 been moved to the *utils/* directory. Their Scheme modules have 698 been moved to the directory with Scheme files of `liblepton`. 699 700- Separate *gettext* domains of `lepton-netlist` and 701 `lepton-symcheck` have been removed. 702 703- As a side effect of this transition, the messages by symbol 704 checker are now translated in `lepton-schematic` GUI. 705 706- More Scheme strings have been added to translation. 707 708- Two Scheme test suites, `liblepton`'s and `lepton-netlist`'s 709 ones, have been merged into one. 710 711- Unit test for promotable attributes has been added. 712 713- Old changelog files (*ChangeLog-1.0*) have been moved into one 714 directory and renamed. 715 716### Changes when building from source: 717- Build order has been changed and now `libleptonrenderer` is 718 built before `liblepton`. 719 720### Changes in `lepton-cli`: 721- The tool used to silently skip missing symbols on export without 722 rendering any placeholders. Rendering of placeholders has been 723 fixed. 724 725- In some cases, for instance, when a Scheme script was evaluated 726 by the tool and no renderer was available, it output assertion 727 failures for text objects during calculation of their bounds, 728 which has been fixed. 729 730### Changes in `lepton-netlist`: 731 732- Localization support has been added. The utility had no 733 localization support since rewriting it in Scheme. 734 735- The famous Scheme backend `spice-noqsi` has been added to the 736 list of backends. The directory with examples contains now its 737 documentation and example schematics. 738 739### Changes in `lepton-symcheck`: 740 741- Localization support has been added. The utility had no 742 localization support since rewriting it in Scheme. 743 744### Changes in `lepton-schematic`: 745- Log messages about `symversion` mismatch are no longer emitted 746for missing schematic symbols. 747 748- `symversion` attribute changes are now detected when a page is 749opened. Previous behavior was to check just the first page passed 750on the `lepton-schematic` command line. 751 752- Log messages related to `symversion` have been changed to be 753more compact and comprehensible. 754 755- Several dialogs and dock widgets now have shorter and more 756 uniform titles. 757 758- The "Major symbol version changes" dialog has been improved by 759making it more informative and non-modal. A new dialog instance 760is opened for each page with symbol version changes. 761 762- The dialogs "Add picture", "Select picture" and "Execute script" 763 now have file filters, which eases selection of supported files. 764 765- A new boolean configuration parameter has been added to the 766`schematic.gui` group: `use-toplevel-windows` ( `false` by default). 767Setting it to `true` allows the following widgets to behave like 768top-level windows (i.e. do not stay on top of the main window): 769 - Page manager 770 - Log window 771 - Edit text 772 - Color scheme editor 773 - Object properties 774 - Options 775 - Font selector 776 - Find text results 777 778- `lepton-schematic` now uses new (more compact) placeholders 779for missing schematic symbols. Traditional placeholders (giant 780red triangles with an exclamation mark and two lines of text) 781can be turned back on by setting the `small-placeholders` key 782in the `schematic.gui` group to `false`. 783 784- The same font, defined in the `font` configuration key of the 785 `schematic.gui` group, is now used for printing and rendering of 786 objects in GUI. 787 788- Several rendering issues, manifesting themselves on some modern 789 distributions where new Pango library (1.44) is used, have been 790 fixed: 791 - Different scaling of overbars on zooming. 792 - Wrong alignment and position of lower aligned text in printed 793 output. 794 - Changing of vertical spacing between paragraphs of text 795 separated with empty lines on zooming. 796 797- Historically, text lines of the same object size with different 798 size of glyphs, for instance, all uppercase and all lowercase, 799 might be rendered as if they have different baseline position. 800 For example, `-` (*minus*) and `_` (*underscore*) could be 801 rendered on the same height, depending on alignment. This has 802 been changed, and now logical extents of text are used to 803 calculate and properly set its position. 804 805- Showing/hiding of hidden text can now be set individually on per 806 page view basis. 807 808### Changes in `lepton-upcfg`: 809- Fixed a logging issue when the utility is called with some file 810 path as a command line parameter. 811 812- The utility now has its own manual page `lepton-upcfg(1)`. 813 814### Changes in `lepton-attrib`: 815- The source code of the program has been transformed into a 816 library, `libleptonattrib`, and an executable script written in 817 Scheme. Thus, C functions of the new library can now be used in 818 other tools. 819 820- The option `--quiet` has been removed. 821 822### Changes in `liblepton`: 823 824- The procedure `process-gafrc()` from the module `(netlist)` has 825 been moved to the module `(lepton rc)` to be available for other 826 utilities. 827 828- A new Scheme function, `anyfile-config-context()`, and its C 829 counterpart, have been added to the library. In future, they 830 can be used to support additional configuration files, for 831 example, files containing color schemes or component library 832 descriptions. 833 834Notable changes in Lepton EDA 1.9.10 (20200319) 835----------------------------------------------- 836### General changes: 837- Utilities written in Python, `lepton-archive`, `lepton-tragesym` 838 and others (please see below for more information), have been 839 rewritten in Scheme or removed, so there is no dependency on 840 Python any more. 841 842- C source files, Scheme modules, types, functions, variables, 843 structure fields have been renamed to avoid using of ambiguous 844 word "**complex**" since it is used in Scheme to designate 845 complex numbers. The Scheme object type `'complex` has not been 846 renamed for backwards compatibility. 847 848- Two unused old scheme scripts `print-NB-attribs.scm` and 849 `list-keys.scm` have been removed. 850 851- Several other cleanups have been made in the source tree. 852 853- The Scheme auto-load subdirectory `gafrc.d` 854has been renamed to `autoload`. 855 856- Obsolete environment variables `GEDADATA` and `GEDADATARC` are 857 no longer used in Lepton. Please use Scheme procedures `load` 858 or `primitive-load` in *gafrc* files to load your extensions. 859 860- The directory *$HOME/.gEDA/* is no longer used for storing of 861 user configuration files. The new location for user config 862 files is *$XDG_CONFIG_HOME/lepton-eda/* (usually, 863 it is *$HOME/.config/lepton-eda*). 864 865- Legacy `geda*.conf` configuration files are no longer used. 866 Settings are now read from `lepton*.conf` files. 867 To convert your settings to new format, please use the 868 `lepton-upcfg` utility. 869 870- The obsolete and undocumented script `bompp.sh` has been 871 removed. 872 873### Changes when building from source: 874- The following obsolete `configure` options have been removed: 875 - `--with-kdedatadir` (for KDE 3) 876 - `--enable-relocatable` (non-portable) 877 - `--with-rcdir` (no longer usable) 878 - `--disable-deprecated` (no longer usable) 879 - `--enable-compat-symlinks` (does not make sense any more) 880 881- Detection of installed `Guile` run-time and development packages 882 has been improved. Previously, after introducing support for 883 Guile 2.2, some users could encounter difficulties with building 884 from source when Guile development headers were distributed in 885 separate packages in their distribution and there was two 886 different Guile versions (2.0 and 2.2) installed on their 887 systems. They could get mysterious error messages about 888 applying a wrong object type. Point is that Guile 2.0 and Guile 889 2.2 use incompatible binary code format for compiled programs. 890 Now Lepton build system checks what development packages are 891 installed on user's system and chooses a correct version of 892 Guile for compilation. If it is impossible due to missing 893 required package, it reports the error on the configure stage. 894 895- The `autogen.sh` script, while still available, is no longer 896 required for installation from the git repository. Please use 897 `autoreconf -ivf` instead. 898 899- Building of the Scheme API HTML documentation with multiple 900 make jobs on FreeBSD has been fixed. 901 902- `icon-theme-installer` script has been fixed by simplifying 903 its command line arguments checks, which makes it more portable 904 among various build environments. 905 906- The command `make maintainer-clean` no longer removes 907 *configure* and its helper files, as well as *ChangeLog* and 908 *Makefile.in* files. 909 910### Scheme API changes: 911- The module `(geda log-rotate)` has been renamed to `(lepton 912 log-rotate)`. 913 914- Several `(geda *)` modules have been renamed to `(lepton *)` 915 ones. All the functions and variables available are still 916 re-exported in the former ones but their using is discouraged. 917 The following renames have been made: 918 - `(geda attrib)` => `(lepton attrib)` 919 - `(geda config)` => `(lepton config)` 920 - `(geda log)` => `(lepton log)` 921 - `(geda object)` => `(lepton object)` 922 - `(geda os)` => `(lepton os)` 923 - `(geda repl)` => `(lepton repl)` 924 925- The following *core* (written in C) Scheme modules have been 926 renamed: 927 - `(geda core attrib)` => `(lepton core attrib)` 928 - `(geda core complex)` => `(lepton core component)` 929 - `(geda core config)` => `(lepton core config)` 930 - `(geda core deprecated)` => `(lepton core deprecated)` 931 - `(geda core gettext)` => `(lepton core gettext)` 932 - `(geda core log)` => `(lepton core log)` 933 - `(geda core object)` => `(lepton core object)` 934 - `(geda core os)` => `(lepton core os)` 935 - `(geda core page)` => `(lepton core page)` 936 - `(geda core smob)` => `(lepton core smob)` 937 - `(geda core toplevel)` => `(lepton core toplevel)` 938 939- Apart from expanding environment variables, the function 940 `expand-env-variables` from the `(lepton os)` module now replaces 941 **~/** (user home directory prefix) in file names in order to 942 make such names understandable for other functions. This allows 943 using this prefix in functions like `component-library` and 944 `source-library`. 945 946- A couple of functions have been added to the `(lepton object)` 947 module to work with object's "embedded" state: 948 `object-embedded?` and `set-object-embedded!`. 949 950- The **cache** configuration context can now be accessed in 951 Scheme code: `cache-config-context` function has been added 952 to the `(lepton config)` module. 953 954- A new function, `component-filename`, has been added to the 955 `(lepton object)` module. It returns the full component's symbol 956 file path. 957 958- `config-load!()` function in the `(lepton config)` module has been 959 modified to accept a new optional `boolean` parameter `force-load`, 960 which is `false` by default. Configuration is no longer reloaded 961 each time this function is called, unless you explicitly request 962 it by `#:force-load #t`. 963 964### Changes in `liblepton`: 965- The module `(lepton library component)` has been amended to 966 support new Scheme layer around internal `%component-library` in 967 the `component-library` procedure, which prevents loading of 968 duplicate component libraries. 969 970- The `bitmap-directory` `gafrc` option has been removed. 971 972- The `gafrc` options listed below have been deprecated 973and replaced with new configuration settings. 974Please refer to the [Deprecated Settings](https://github.com/lepton-eda/lepton-eda/wiki/Deprecated-Settings#user-content-deprecated-gafrc) wiki document. 975 - `bus-ripper-symname` => `[schematic]::bus-ripper-symname` 976 - `always-promote-attributes` => `[schematic.attrib]::always-promote` 977 - `keep-invisible` => `[schematic.attrib]::keep-invisible` 978 - `attribute-promotion` => `[schematic.attrib]::promote` 979 - `promote-invisible` => `[schematic.attrib]::promote-invisible` 980 - `make-backup-files` => `[schematic.backup]::create-files` 981 982- Fixed rotation of logs broken in Lepton 1.9.8. 983 984- Fixed two long standing bugs in the procedure 985 `component-library-search`: 986 987 - Failure of the procedure in some cases when the root directory 988 processed by the procedure contained symbol files. 989 990 - Failure of the procedure with the `'out-of-range` exception if 991 the processed path contained 2 identical components at the end 992 and trailing slash (e.g. "/path/sym/sym/"). 993 994### Changes in `lepton-netlist`: 995 996- The module `(netlist rename)` has been removed. All previous 997 renaming functionality has been wholly thrown away. 998 999- The module `(netlist pin-net)` has been removed. `<pin-net>` 1000 records are no longer used in netlisting. 1001 1002- The module `(netlist traverse)` has been removed. All its 1003 functions have been moved to other appropriate modules. 1004 1005- New data structures, *hierarchical*, or *over-port*, or 1006 *vertical*, connections, have been introduced. They are used to 1007 produce net names for schematics with subcircuits. This fixed 1008 the issue with toplevel unnamed connections, using of which lead 1009 to wrong netlists, and resulted in the following changes in output 1010 netlists: 1011 1012 - The `geda` backend no longer displays intermediate renamings 1013 the same way it is used for unnamed nets shown in netlists. 1014 Renamed unnamed nets of a subschematic are shown by the geda 1015 backend differently, e.g., 1016 "*hierarchical/subciruit/name/unnamed_net_at_XxY*", where X 1017 and Y are coords of one of their members. 1018 1019 - If a net has more than one preferred attribute attached 1020 ("*net=*" or "*netname=*"), the lowest one by means of the 1021 predicate `refdes<?` is chosen then. 1022 1023 - The sequence numbers of unconnected pins and unnamed nets have 1024 been reduced due to removing of internal ones from the 1025 sequence. 1026 1027- During netlisting, page contents is filtered once to make 1028 connections. 1029 1030- Hierarchical names are now used for subschematics. 1031 1032- A new field, `parent`, has been added to the 1033 `<schematic-component>` record to get hierarchical data. For a 1034 component, it contains the link to the `<subschematic>` instance 1035 the component belongs to. 1036 1037- The `<schematic-connection>` record now also contains a new 1038 field, `parent`. For a connection, it contains the link to the 1039 `<subschematic>` instance the connection belongs to. 1040 1041- The `<subschematic>` record now also contains a new field, 1042 `parent`. It contains the component the `<subschematic>` 1043 belongs to, if any. 1044 1045- The unused `sources` field has been removed from the `<package>` 1046 record. 1047 1048- The unused `tag` field has been removed from the `<package>` 1049 record. 1050 1051- The <package-pin> record now contains a new field, 1052 `port-connection`, which holds a hierarchical 1053 `<schematic-connection>` a pin belongs to. 1054 1055- Crashes, when source file cannot be found, are now avoided. 1056 1057- Fixed crashes on power symbols (the symbols having one pin and 1058 no *"refdes="* attribute) having a *"net="* attribute but no 1059 *"pinnumber=* attribute attached to its pin. 1060 1061- Fixed crashes in the `spice-sdb` backend when processing I/O 1062 components. 1063 1064- Removed output of version in the `spice-sdb` backend. It has 1065 not been updated since 2007 and does not reflect the changes in 1066 the backend code. 1067 1068- Fixed a link to documentation in the output of the `spice-sdb` 1069 backend. 1070 1071- A new module, `(netlist mode)`, has been added. It contains 1072 accessor functions for current netlisting mode. 1073 1074- A new module, `(netlist schematic-port)` has been added. It 1075 defines a new record, `<schematic-port>`, which contains info 1076 about connections via ports between hierarchical levels. 1077 1078- A new module, `(netlist schematic-named-connection)`, has been 1079 added. It contains functions for merging connections by net 1080 name. 1081 1082- A new module, `(netlist subschematic)`, has been added. It 1083 defines a new record, `<subschematic>`, which extends 1084 `<#geda-page>` internal C structure and contains various netlist 1085 related fields. 1086 1087- The `<package-pin>` record now has several new fields: 1088 - `net-map` is defined for virtual pins created from the 1089 *"net="* attribute. 1090 - `parent` contains link to the parent component of a pin. 1091 1092- A new field, `pins`, has been added to the 1093 `<schematic-connection>` record. For a connection object, it 1094 contains `<package-pin>` objects that belong to the connection. 1095 1096- A new field, `subschematic`, has been added to the `<schematic>` 1097 record. It contains toplevel multi-page `<subschematic>` of 1098 `<schematic>`, thus allowing recursive access to low level 1099 subschematics. 1100 1101- A new field, `subschematic`, has been added to the 1102 `<schematic-component>` record. It contains its parent 1103 `<subschematic> record. 1104 1105- A new field, `port`, has been added to the 1106 `<schematic-component>` record. The field contains port 1107 (`<schematic-port>` record) for components being port components 1108 in subcircuits. 1109 1110- A new field, `net-maps`, has been added to the 1111 `<schematic-component>` record. It provides info on net mapping 1112 for the component pins. 1113 1114- A new field, `named-connection`, has been added to the 1115 `<package-pin>` record, which contains the parent 1116 `<named-connection>` of a pin instance. 1117 1118- Fixed wrong usage of the *"netname="* attribute instead of 1119 *"net="* when the `netname-priority` config setting is set to 1120 false (`#f`), that is, when *"net="* should be preferred. 1121 1122- Fixed issue with output of wrong warnings about renaming nets 1123 with the same name (shorted to themselves). 1124 1125- Previously, the program used to exit with error if some source 1126 file was not readable or missing, even in the interactive mode. 1127 Now, `lepton-netlist` just reports such errors as critical 1128 without exit. 1129 1130- The module `(netlist page)` has been eliminated in favour of the 1131 `(lepton page)` module. All functions from the former have been 1132 moved to the latter. The procedure `filename->page()` has been 1133 renamed to `file->page()`. 1134 1135- The unused Scheme module `(netlist repl)` has been removed. 1136 1137- Netlist backends can now set the desired netlist mode by defining 1138 a `request-netlist-mode` function, which should return either `'geda` or 1139 `'spice`. `lepton-netlist` no longer relies on the backend's filename 1140 when setting the operation mode. 1141 1142- The `spice-sdb` backend has been fixed to generate SPICE 1143`.MODEL` lines correctly. 1144 1145- The `--list-backends` command line option now has a short 1146equivalent: `-b`. 1147 1148### Changes in `lepton-archive`: 1149- The initial Python script has been rewritten in Scheme. It was 1150 broken at least since 2007, when *system-gafrc* was refactored by 1151 removing `component-library` calls from it. It parsed that file 1152 for the "component-library" strings, but could not find and save 1153 any stock symbols. The new Scheme script has the following 1154 advantages: 1155 1156 - It eliminates issues with Python versions incompatibilities 1157 due to moving in most distributions to the more recent 1158 versions. 1159 1160 - The previous script could only expand one environment variable 1161 in a file name. Now all environment variables are expanded 1162 recursively in file names, the tilda prefix (**~**) is 1163 expanded, too. 1164 1165 - OS specific file name separator is now supported. 1166 1167 - The script replaces using of system utilites *cp*, *mv*, *rm* 1168 in most cases with appropriate Scheme procedures. 1169 1170 - Instead of direct parsing of component lines in schematic 1171 files (**"C x y ..."**), which may be wrong in some cases, it 1172 uses info on internal schematic provided by `liblepton` 1173 modules. 1174 1175 - The new script eliminates direct setting of any environment 1176 variables to the directory where `system-gafrc` should be 1177 placed, and parsing of the lines containing 1178 `component-library` and `component-library-search` in system 1179 rc files, as it is no longer required. 1180 1181 - `gafrc` is now used instead of `gschemrc` as rc file to 1182 update; local project's `gafrc` is processed to get info on 1183 component libraries used in the project. `gafrc` in the 1184 resulting archive is changed in that to load symbols from its 1185 local cache directory. 1186 1187 - Symbol and SPICE file cache directory name has been changed 1188 from `gschem-files` to `cache`. 1189 1190 - The program can now collect and cache all symbols and 1191 subschematics in a hierarchical schematic, as well as 1192 subcircuits mentioned in the *"file="* attributes of 1193 components. 1194 1195 - RC file listing files to be archived is no longer used. The 1196 file set by the option `--files-from` (`-f`) is used 1197 instead. The script copies all files mentioned in that file 1198 and in command line to the archive, including files not living 1199 in the project directory. 1200 1201 - Lowercase archive name is now used by default: 1202 `project-archive.tar.gz` instead of 1203 `ProjectArchive.tar.gz`. It is to avoid issues with case 1204 sensitive filesystems. 1205 1206 - The program options now have long equivalents, please see 1207 `lepton-archive --help` for more information. 1208 1209 - The program now supports both absolute and relative source 1210 filenames (such as "*/tmp/simulation.cmd*") or using relative 1211 paths (like "*./*" or "*../*"). 1212 1213 - Files missing in the source library are reported. 1214 1215 - The output archive file name can be specified without the 1216 "*.tar.gz*" suffix. The users can just use `-o 1217 project-archive` to save their project to the 1218 *project-archive.tar.gz* file. 1219 1220### Changes in `lepton-schlas`: 1221- This utility has been rewritten in Scheme and renamed to `lepton-embed`. 1222- Its functionality has been extended: it can now embed/unembed pictures (`-p`) 1223 or components (`-c`) only, and may be instructed to leave source files intact, 1224 saving its output to a separate files with a given suffix (`-x`). 1225 1226### Changes in `lepton-cli`: 1227- A new command line option has been added for the `export` 1228 command: `--paper-names` (`-P`). It displays a list of paper 1229 size names suitable for the `--paper` option. 1230 1231- The default paper size is now defined in the system configuration 1232 files: the `paper` configuration key in the `export` and 1233 `schematic.printing` (`gschem.printing`) groups is set to `iso_a4`. 1234 1235- `lepton-cli config` can now read and write configuration 1236 stored in the **cache** configuration context: a new 1237 command-line option `--cache` (`-c`) has been added. 1238 1239### Changes in `lepton-tragesym`: 1240- The initial Python script has been rewritten in Scheme. The 1241 program now does anything the previous version did, and more: 1242 1243 - `liblepton` functions are now used to create objects instead 1244 of dealing with symbol text format directly. 1245 1246 - Fixed calculation of symbol width so that pins always touch 1247 symbol box even if the user specified too little width in the 1248 template file. 1249 1250 - Dealing with "spacer"s gives better results/notifications. 1251 1252- The man page of the program has been updated to provide 1253 information about the source file format. Please see 1254 *lepton-tragesym(1)* for more information. 1255 1256### Changes in `lepton-schematic`: 1257- Several `(gschem *)` modules have been renamed to `(schematic 1258 *)` ones. All the functions and variables available are still 1259 re-exported in the former ones but their using is discouraged. 1260 The following renames have been made: 1261 - `(gschem action)` => `(schematic action)` 1262 - `(gschem attrib)` => `(schematic attrib)` 1263 - `(gschem builtins)` => `(schematic builtins)` 1264 - `(gschem gschemdoc)` => `(schematic gschemdoc)` 1265 - `(gschem hook)` => `(schematic hook)` 1266 - `(gschem keymap)` => `(schematic keymap)` 1267 - `(gschem selection)` => `(schematic selection)` 1268 - `(gschem symbol check)` => `(schematic symbol check)` 1269 - `(gschem util)` => `(schematic util)` 1270 - `(gschem window)` => `(schematic window)` 1271 1272- The following modules were simply renamed without providing any 1273 backwards compatibility: 1274 - `(gschem core gettext)` => `(schematic core gettext)` 1275 - `(gschem repl)` => `(schematic repl)` 1276 1277- The following *core* (written in C) Scheme modules have been 1278 renamed: 1279 - `(gschem core attrib)` => `(schematic core attrib)` 1280 - `(gschem core builtins)` => `(schematic core builtins)` 1281 - `(gschem core hook)` => `(schematic core hook)` 1282 - `(gschem core keymap)` => `(schematic core keymap)` 1283 - `(gschem core selection)` => `(schematic core selection)` 1284 - `(gschem core util)` => `(schematic core util)` 1285 - `(gschem core window)` => `(schematic core window)` 1286 1287- Grips can now be turned on and off at run-time. 1288 Use the new 'Options → Grips: On/Off' menu item or 1289 <kbd>O</kbd>-<kbd>I</kbd> keyboard shortcut. 1290 1291- In the 'Select Component' dialog, it is now possible to copy 1292 names and values of attributes to clipboard. 1293 1294- In tabbed GUI, tabs can now be rearranged by dragging them 1295 with mouse. 1296 1297- A context menu with common actions (`New`, `Open`, `Save`, 1298 `Save As`, `Page Manager`, and `Close`) has been added to 1299 the active tab's header widget. 1300 1301- The main menu code has been refactored and changed so that the 1302 type of selected objects is taken into account. Thus, some menu 1303 entries are not sensitive in some cases where it is 1304 inappropriate. 1305 1306- If *Help* → *Find Component Documentation* cannot find any 1307 documentation, a message box is displayed. No backtrace, nor 1308 Guile errors are printed to the log window. 1309 1310- All the `gschemrc` options are now deprecated, the settings have been migrated 1311 to new configuration system (`*.conf` files). Use `lepton-cli config` to read 1312 and modify them. New options have the same names and possible values (use 1313 `true`/`false` for booleans instead of `"enabled"` and `"disabled"`). Please refer 1314 to the 1315 [Configuration Settings](https://github.com/lepton-eda/lepton-eda/wiki/Configuration-Settings) 1316 document ("Deprecated Settings") for more information. 1317 1318- In the `Save As` dialog, the filter field now shows 1319file extensions (`.sch`, `.sym`). A file's extension in the 1320`Name` box is updated when the filter is changed. 1321 1322- Tree view columns in the `Page Manager` window are now 1323automatically resized. It helps when displayed paths are long: 1324the `Changed` column becomes visible again when you uncheck 1325the `Show full paths` checkbox. 1326 1327- The `file-preview` option (`[schematic.gui]` group) processing 1328has been fixed. The user can turn the preview area in the 1329`Open...` dialog on and off. 1330 1331- The user can now change the paper size and orientation in the 1332`Print` dialog. The combo boxes with these settings used to be set 1333to default values and disabled. 1334 1335- The context menu has been reorganized and updated. 1336 1337- Informational messages have been added to several 1338lepton-schematic dialog boxes. 1339 1340- An "untitled" page can no longer be reverted (`Page → Revert`). 1341This operation doesn't make sense for it and has been disabled. 1342 1343- A new configuration parameter has been added: `show-tooltips` in 1344the `schematic.tabs` group (`boolean`, `true` by default). It 1345enables or disables tooltips for tab header widgets in tabbed GUI. 1346 1347- The `Single Attribute Editor` dialog can now be accepted by 1348pressing the `Enter` key when the `Name` field is focused. 1349 1350- The save font configuration dialog has been improved so now it 1351 shows the name of selected font and full path names for 1352 configuration files. 1353 1354- The files *lepton-gtkrc* are now read from the system and user 1355 configuration directories. They can be used to customize the 1356 appearance of the program. 1357 1358- Fixed crashes on printing via the menu 'File → Print...' on some 1359 systems. 1360 1361- Fixed segfaults when the locale set by environment variables was 1362 not installed. 1363 1364- Fixed issue of incorrect main menu creation if system 1365 configuration file is missing. 1366 1367### Changes in `examples`: 1368- Three new examples of analog simulation have been added. They 1369 reside in the directory *netlist/examples/analog/*. 1370 1371- `RF_Amp` and `TwoStageAmp` examples have been updated to make 1372 SPICE simulation work properly. 1373 1374- `gTAG` example scripts and configuration files have been fixed. 1375 1376- Several `README` files have been updated. 1377 1378- The obsolete Python script `bom` has been removed. 1379 1380Notable changes in Lepton EDA 1.9.9 (20191003) 1381---------------------------------------------- 1382### General changes: 1383- The version of the `libleptonrenderer` library has been fixed. 1384 1385- The utility `lepton-xyrs` has been removed from the distribution 1386 since it has not been maintained or changed for many years and 1387 it does not belong to schematic capture. 1388 1389### Changes in `liblepton`: 1390- Static gettext domain name is now used for translation files. 1391 1392### Changes in `lepton-netlist`: 1393- Two new procedures, `page-list->schematic` and 1394 `file-name-list->schematic` have been added to the `(lepton 1395 schematic)` module to provide users with more intuitive way of 1396 `<schematic>` record creation. The previously present procedure 1397 `make-toplevel-schematic` is still there, and has been made an 1398 alias of the latter. Its `netlist-mode` argument has been made 1399 optional and is `'geda` by default. 1400 1401Notable changes in Lepton EDA 1.9.8 (20190928) 1402---------------------------------------------- 1403### Breaking changes: 1404- The configure switch `--disable-gattrib` has been renamed to 1405 `--disable-attrib`. 1406 1407### General changes: 1408 1409- A new configuration upgrade tool, `lepton-upcfg`, and C and 1410 Scheme infrastructure for it have been added to simplify moving 1411 to Lepton's new configuration system. The new tool is aimed to 1412 convert legacy `geda*.conf` files into new `lepton*.conf` files 1413 by importing and renaming the settings in them. For example, in 1414 order to produce `lepton-user.conf` from `geda-user.conf`, the 1415 user can use the command `lepton-upcfg --user`. Additionally, 1416 the user can switch between using of legacy and new 1417 configuration system using a new function, 1418 `config-set-legacy-mode!()`, which may be set in some of Scheme 1419 files loaded by the tools. 1420 1421- The module `(geda library)` has been renamed to `(lepton library)`. 1422 All the functions and variables available are still re-exported 1423 in the former one but its using is discouraged. 1424 1425- Warnings about deprecated and "dead" RC functions are now more 1426 verbose, and contain link to Configuration Settings wiki page. 1427 1428- Several clean-ups in the code and documentation have been made 1429 in both libraries' and GUI tools' code, removed some unused 1430 function arguments. 1431 1432- A main category has been added into Lepton desktop 1433 files. According to 1434 https://specifications.freedesktop.org/menu-spec/latest/apa.html, 1435 previously there was no valid main category in the desktop 1436 files. The problem is that without a main category, it is not 1437 possible to know for sure if a freedesktop compliant menu will 1438 show the applications the desktop files were made up for. This 1439 has been fixed by adding "Development" as main category for 1440 Lepton. Two additional categories have been rearranged in order 1441 "Electronics" to have priority over "Engineering". 1442 1443- The following rc procedures are now exported in the module 1444`(lepton library)`: 1445 1446 - `component-library-command` 1447 - `component-library-funcs` 1448 - `component-library-search` 1449 - `component-library` 1450 - `reset-component-library` 1451 1452- The following rc procedures are now exported in the module 1453`(geda deprecated)`: 1454 1455 - `always-promote-attributes` 1456 - `attribute-promotion` 1457 - `bitmap-directory` 1458 - `bus-ripper-symname` 1459 - `keep-invisible` 1460 - `make-backup-files` 1461 - `print-color-map` 1462 - `promote-invisible` 1463 - `scheme-directory` 1464 1465- Symbols with duplicated names have been moved to separate folders: 1466 1467 - `share/lepton-eda/sym-gnetman` 1468 - `share/lepton-eda/sym-verilog` 1469 - `share/lepton-eda/sym-vhdl` 1470 1471 Now it's possible to use `gafrc` function `component-library-search` 1472 with `share/lepton-eda/sym` without getting tons of warnings about 1473 duplicated symbols in the log. 1474 1475- System-wide configuration file, `lepton-system.conf`, has been 1476 added to the distribution with default settings applicable for 1477 most installations. Its legacy predecessor, `geda-system.conf`, 1478 has been added as well for backwards compatibility. 1479 1480- The location of log files has been changed to `$XDG_CACHE_HOME/lepton-eda/logs/`. 1481 Previously they were stored in the user's configuration directory. 1482 1483### Changes when building from source: 1484 1485- Building of the tools with Guile 2.2 is now supported. 1486 1487- Lepton now requires Glib 2.38.0 or later versions for build. 1488 1489- It is now possible to accelerate the tools some parts of which 1490 are written in Scheme when they are launched for the first time. 1491 Previously, on first running much time would be spent on 1492 compilation of Scheme code involved. The startup time can be 1493 reduced if the code is compiled and installed in advance. To 1494 make it work, a new `make` target, `precompile` has been added. 1495 While the command `make precompile` can be used for local 1496 builds, it could be much more convenient for end users if 1497 package managers working on packaging Lepton for some 1498 distributions "precompile" the code on the package building 1499 stage. The technik of "precompilation" has been already 1500 implemented to make packages for FreeBSD: 1501 [FreeBSD port](https://github.com/graahnul-grom/freebsd-lepton-eda/tree/master/wip.pc) 1502 and [binary package](http://graahnul.beget.tech/lepton-eda-pc/lepton-eda-1.9.7.txz) 1503 made from it. In essence, it included two steps: 1504 1505 - A relevant section has been added to the port's 1506 [`Makefile`](https://github.com/graahnul-grom/freebsd-lepton-eda/blob/master/wip.pc/Makefile), and 1507 - The list of compiled files has been added to the port's [`pkg-plist`](https://github.com/graahnul-grom/freebsd-lepton-eda/blob/master/wip.pc/pkg-plist). 1508 1509 Package managers of other distributions could adopt this 1510 technik. Please see discussion at #339 for more information. 1511 1512- Fixed and improved *VPATH* (out-of-source) builds on some 1513 systems. It used to be that Lepton did not install files from 1514 the `docs/wiki/` subdirectory when the command `make install` 1515 was used, because it was assumed that the directory contained 1516 only regular files. This has been fixed by changing appropriate 1517 Makefiles to search for symlinks as well. 1518 1519- Build errors on FreeBSD 13.0-CURRENT on the link stage in the 1520 `utils/gschlas/` directory have been fixed. In earlier FreeBSD 1521 version Lepton EDA builds without errors. The issue happened to 1522 appear due to changing of the default linker from GNU `ld` to 1523 `ld.lld` from the `llvm` distribution. 1524 1525- Fixed FreeBSD build errors on the `powerpc64` architecture with 1526 base system compiler gcc-4.2: (FreeBSD bug report 1527 [#239311](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239311)). 1528 1529- Fixed build failures on Gentoo with gcc-8.2.0. 1530 1531- Several C functions in `liblepton`, various Lepton tools, 1532 contributed code (`olib`, `sarlacc_schem`, `convert_sym`, 1533 `gmk_sym`) as well as PO-files have been fixed to avoid 1534 compilation warnings and errors. Now `lepton-eda` compiles 1535 without warnings with gcc/g++ on several platforms. Several 1536 warnings reported by clang++/llvm have been fixed as well. 1537 1538- The like changes as above have been done in the Scheme part of 1539 code to prevent various compilation and deprecation warnings in 1540 several modules and tools when compiled with guile-2.0 or 1541 guile-2.2. 1542 1543- LaTeX files are no longer generated by `make doxygen` since it 1544 was reported that several Ubuntu versions do not do TRT when 1545 building LaTeX documentation. 1546 1547- **Doxygen** subsystem has been cleaned up to get rid of unused 1548 files since the tools rewritten in Scheme are not covered by its 1549 functionality any more. 1550 1551- Fixed some portability issues in documentation building. 1552 1553- Building of documentation no longer depends on the `fig2dev` 1554 program. The dependency has been eliminated. 1555 1556- **Gettext** translation subsystem has been changed for most of 1557 the tools in that to avoid unintentional and unwanted updates of 1558 their translation *PO* files when the tools are built from 1559 sources. 1560 1561- Now *Lepton EDA Scheme Reference Manual* in the `HTML` format is 1562 built and installed with other files on `make && make install`. 1563 A CSS file has been added to prettify the generated HTML pages. 1564 1565- Some empty application-specific directories that previously 1566 could not be removed after uninstalling all files by `make 1567 uninstall` are now correctly deleted. 1568 1569### Changes in `liblepton`: 1570 1571- `liblepton` configuration C and Scheme API has been extended 1572 with functions for removing configuration keys and groups. 1573 1574- A new Scheme module, `(lepton file-system)`, has been added. It 1575 exports functions that previously were global: 1576 `regular-file?()`, `directory?()`, and `file-readable?()`. The 1577 users may need to fix their scripts in which those functions 1578 were used by adding corresponding `(use-modules ...)` line.. 1579 1580- A new Scheme module, `(lepton rc)`, has been added. It exports 1581 functions and variables that previously were global: build-path, 1582 `geda-data-path()`, `geda-rc-path()`, `path-sep()`, 1583 `load-scheme-dir()`, and `load-rc-from-sys-config-dirs()`. The 1584 users may need to fix their scripts in which those functions and 1585 variables were used by adding corresponding `(use-modules ...)` 1586 line. 1587 1588- Fixed `'config-keys` unit test which previously did not work 1589 correctly on some Ubuntu versions. 1590 1591### Changes in `libleptonrenderer`: 1592- Default font name has been changed from `Arial` to `Sans`. 1593 1594- Changes in path rendering: 1595 1596 - Previously, the library was not able to render zero line width 1597 paths properly since the zero value for the line width field 1598 in the path definition was interpreted as a request for 1599 the default line width. Therefore the path objects were always 1600 enlarged by some amount in size. Now, when line width of a 1601 path is set to zero, the stroke is not rendered, thus allowing 1602 drawing of filled figures without increasing their size by a 1603 half of the line width, so the object sizes strongly 1604 correspond to what the user wanted. No line is drawn when 1605 exported with `lepton-cli export` command. In the 1606 `lepton-schematic` GUI, 1 screen pixel line is used for 1607 rendering zero line width path objects to provide visual 1608 feedback to the user. 1609 1610 - Now, path objects can be rendered with different line cap 1611 styles when the line width is non-zero. Previously, the 1612 default `square` style was always used. 1613 1614### Scheme API changes 1615- Three legacy rc procedures, `attribute-promotion`, 1616 `promote-invisible`, and `keep-invisible`, have been adjusted to 1617 return their boolean values if used with no arguments, instead 1618 of just `#t`. This allows using the results in Scheme 1619 plugins. The procedure `bitmap-directory` now returns its string 1620 value if used with no arguments. If no value has been 1621 previously set, it returns `#f`. 1622 1623- A new hook, `open-page-hook`, has been added to the `(gschem 1624 hook)` module. It allows to evaluate Scheme code when an 1625 existing schematic page is loaded. 1626 1627- New Scheme API functions for working with object selectable 1628 status have been added to the `(geda object)` module: 1629 `object-selectable?` and `set-object-selectable!`. Together 1630 with page hooks they can allow to save locking status of 1631 primitive objects without changing the current file format. 1632 1633- The function `arc-end-angle` has been fixed so it now correctly 1634 returns the end angle of an arc. Since its creation, it gave 1635 improper results because it was a sibling of a C function 1636 returning the sweep angle of an arc. A new function, 1637 `arc-sweep-angle`, has been added to maintain that 1638 functionality. 1639 1640### Changes in `lepton-netlist`: 1641 1642- A few improvements have been made in option processing: 1643 1644 - Getopt-long functions are no more directly used inside 1645 netlister modules, so the modules can now be loaded in other 1646 programs having other options. This affects unit testing and 1647 `lepton-schematic` GUI, as in those cases another set of 1648 options may be used. 1649 1650 - Processing of some options yielding lists when several of such 1651 options are used, no more results in reversed lists. 1652 1653 - Processing of the `-c` option has been fixed so there is now 1654 no errors when it used more than once. 1655 1656- The option *-w* introduced in Lepton EDA 1.9.6 has been 1657 removed. It was used to suppress warnings about missing 1658 configuration files. This is no longer needed, since the 1659 function `config-load!()` has been fixed to not complain if 1660 those files are absent. 1661 1662- A few improvements have been made in the SRFI-64 unit-test suite: 1663 1664 - There is no more limit for backtrace length if an error 1665 occurs, the unit-test script uses default stack size which 1666 makes debugging a bit more convenient. 1667 1668 - Backtrace output is now formatted properly without newline 1669 mangling. 1670 1671 - Directories containing modules `lepton-netlist` depends on 1672 have been added to the unit-test script load path. Modules 1673 depending on `liblepton` and `symcheck` can now be used with 1674 the script. 1675 1676- A new record, `<schematic-component>`, has been added. It is now 1677 the basic record for using in the backends that work with 1678 components such as **spice** ones. 1679 1680- `<schematic>` record now contains a new field, `packages`, 1681 containing the list of schematic *packages*, where any element 1682 of the list is a `<package>` record. The `<package>` records 1683 now contain sets of components with same refdes. The field 1684 *packages* is intended for use in backends working with 1685 multi-slot packages, e.g. **PCB**. 1686 1687- The `schematic-netlist` field of the `<schematic>` record has 1688 been renamed to `schematic-components` to more accurately 1689 reflect destination of the field. 1690 1691- Common `<package>` structures for `<schematic-component>`'s with 1692 default "refdes" attribute value are no longer 1693 created. Component's "refdes" value is considered to be default 1694 if the component has no attached "refdes", or its attached 1695 "refdes" is the same as the inherited one and has the suffix 1696 "?". 1697 1698- A new module, `(netlist schematic-connection)`, has been added. 1699 The module has to provide records and functions for working with 1700 schematic connections, that is, directly or indirectly connected 1701 groups of nets. 1702 1703- The `composite` field in the `<schematic-component>` record, 1704 inherited from the `<package>` structure, has been renamed to 1705 `sources`. The field can be used to get source file names. 1706 1707- The obsolete procedure `get-uref()` has been replaced with a 1708 local procedure and its using is discouraged. 1709 1710- A new module, `(netlist schematic toplevel)`, has been added. It 1711 contains accessors for `<toplevel-schematic>` record which is 1712 now obtained as a set of schematic files given on 1713 **lepton-netlist** command line. The `toplevel-schematic` 1714 variable has been replaced with same named procedure. 1715 1716- Arguments for `make-toplevel-schematic()` are now filenames 1717 instead of pages. This will allow reusing this function to 1718 encapsulate subschematics in future. 1719 1720- A new module, `(netlist deprecated)`, has been added to isolate 1721 legacy code that is a subject for deprecation in the next stable 1722 release. 1723 1724- A new function, `set-netlist-option!`, has been added to the 1725 `(netlist option)` module. It lets the users set arbitrary 1726 default netlister option values when the netlister modules are 1727 used by other tools, e.g., when they're loaded while working in 1728 `lepton-schematic` GUI. 1729 1730- A new module `(netlist page)` has been added. The new module 1731 now contains an only procedure, `filename->page()`, which opens 1732 a schematic page by filename. Depending on the form of its 1733 call, it can return either an already opened page for a given 1734 filename, or a new page, if the user so desires. 1735 1736- Several issues related to hierarchical names have been fixed: 1737 1738 - Reverse order setting for refdes attribute no longer affects 1739 netnames. 1740 1741 - Now netnames are formed using true reversed hierarchical name, 1742 before they were formed from a string representing 1743 hierarchical refdes and local netnames. Since the hierarchical 1744 refdes string might be not reversed depending of the reverse 1745 order setting for refdes, the resulting strings did not 1746 reflect hierarchy correctly. 1747 1748 - For the same reason, the separator for the "net=" and 1749 "netname=" attributes did not affected resulting net names, 1750 which has been fixed as well. 1751 1752 - Removing of refdes mangling was previously possible only if 1753 the refdes separator was "/". This has been fixed to support 1754 other separators. 1755 1756- The following fixes have been made in the VAMS example: 1757 - Deprecated gnetlistrc settings have been replaced with new 1758 configuration options. 1759 - Wrong netlister name has been fixed. 1760 - generate_netlist.scm has been moved to the example directory. 1761 1762- The `vams` backend code has been fixed as follows: 1763 1764 - The code does no longer emit Scheme return values of 1765 procedures, which previously mangled the output. 1766 1767 - The output of generic and port definitions is now going into 1768 appropriate place. 1769 1770 - A list of attributes that cannot form generics does no longer 1771 appear in the output. Two internal (or abstract) attributes, 1772 `slot=` and `net=`, are no longer used in forming VHDL generic 1773 maps, since they are intended for internal use by netlister 1774 itself. 1775 1776- The `allegro` backend has been refactored so obsolete procedures 1777 are no longer used in it. 1778 1779- Two obsolete scripts written in **sh** and **awk**, 1780 `annotate.sh` and `unannotate.sh`, have been removed from the 1781 distribution. 1782 1783- Three **sh** scripts, `bompp.sh`, `bom_xref.sh`, and 1784 `sch2eaglepos.sh`, have been moved to the *contrib/* directory. 1785 1786- The directory *netlist/utils/* and an only pretty much obsolete 1787 utility, `mk_verilog_syms`, contained in it, have been removed 1788 from the distribution. The script was used to initially create 1789 *verilog* symbols, and output symbols in obsolete format with 1790 limited set of pin attributes. By now, initially created verilog 1791 symbols have been modified in various ways, including manual 1792 intervention and generating the symbols with some new version of 1793 the program that did not however go to the repository, so the 1794 removing is safe. 1795 1796- Netlister backends and associated files have been moved to a new 1797 subdirectory `share/lepton-eda/scheme/backend`. 1798 1799- An arbitrary backend file can be loaded by specifying its path 1800 via the new `-f` command line switch to `lepton-netlist`. 1801 The file should be named like `gnet-NAME.scm`, where `NAME` is the 1802 backend's name. It's useful for testing new and 3rd party 1803 backends, as well as running backends from different 1804 installation paths. 1805 1806### Changes in `lepton-schematic`: 1807 1808- The command line option *-p* has been removed. It was used to 1809 automatically place the main window with some default widget 1810 sizes. 1811 1812- Several configuration settings have been changed to ensure 1813 reasonable default values: 1814 - The **rubber band** mode and **magnetic net** mode status bar 1815 indicators are now shown by default 1816 (`schematic.status-bar::show-rubber-band=true`, 1817 `schematic.status-bar::show-magnetic-net=true`). 1818 - The tabbed GUI is enabled (`schematic.gui::use-tabs=true`). 1819 - Monospace font is used in the log window 1820 (`schematic.log-window::font=Monospace 11`). 1821 - Monospace font is used in the macro widget entry 1822 (`schematic.macro-widget::font=Monospace 11`). 1823 1824- The attribute attachment code has been rewritten in Scheme, 1825 changed and fixed in several ways: 1826 1827 - Now attributes can be attached to any non-text objects. 1828 1829 - Only visible attributes can be now attached. 1830 1831 - If attributes are already attached or no attribute is 1832 selected, no action is undertaken. 1833 1834 - Information about successful attachment is now printed to the 1835 log. 1836 1837 - Successfully attached attributes and the object they are 1838 attached to are deselected after the attachment operation. 1839 1840- The attribute detachment behaviour has been changed. Before, 1841 attributes of selected objects (visible and invisible, selected 1842 or not) were all unconditionally stripped. The detachment code 1843 has been rewritten in Scheme, changed and fixed in several ways: 1844 1845 - Now only selected visible attributes are detached from their 1846 respective parent objects. 1847 1848 - There is no need to select parent objects in order to detach 1849 their attributes any more. 1850 1851 - The info about successfully detached attributes is now output to 1852 the log. 1853 1854 - If there is no selection, the selected attributes are not 1855 attached to any object, or selection does not include any 1856 attributes, nothing is undertaken. 1857 1858 - Just detached attributes get unselected and their color is 1859 changed to the color of detached attributes. 1860 1861- Several improvements/fixes with regard to locking/unlocking of 1862 components and their attributes have been introduced: 1863 1864 - Previously, when a component was locked, its attributes were 1865 also locked, but they changed the locking status after saving 1866 and reopening of schematic. Now, they become locked along 1867 with the component they're attached to. 1868 1869 - Previously, toggling of locking status of a component and its 1870 attributes required selecting them all to do it properly. 1871 Otherwise, the locking status of not selected attributes would 1872 not change. Now, it is sufficient to select only the 1873 component to lock or unlock it together with the attributes, 1874 without having to additionally select them. 1875 1876- The action 'File → Save All' and processing of "untitled" 1877 schematics have been improved: 1878 1879 - It used to be that on saving all files, all opened pages were 1880 silently saved, even if there were new "untitled" pages among 1881 them, that is, the pages newly created under the default file 1882 name and not yet saved to disk. Now such files are skipped 1883 from saving. 1884 1885 - When constructing file name for a new "untitled" page, the 1886 names of already opened files and existing files in the current 1887 directory are taken into account. These names are not reused 1888 to prevent possible consequent data loss. The skipped names 1889 are printed to the log. 1890 1891 - A message indicating the result of the "save all" operation is 1892 now shown in the status bar. 1893 1894 - If tabbed GUI is enabled in configuration, the header of each 1895 tab widget correctly updates to reflect the status of its 1896 page, if it is saved or not. 1897 1898 - "Save As" dialog box is now opened for new "untitled" pages on 1899 the "save all" operation, prompting the user to save them. 1900 1901- In the 'Edit Attributes' dialog, it is now possible to copy names 1902 and values of inherited attributes to clipboard. The feature was 1903 first requested on *launchpad* in 1904 [#1405314](https://bugs.launchpad.net/geda/+bug/1405314). 1905 1906- Distinct parts of the `system-gschemrc` configuration file are 1907 moved to separate files under the `conf/schematic/` subdirectory 1908 to simplify dealing with certain aspects of `lepton-schematic` 1909 behaviour and searching for appropriate settings. The new files 1910 are loaded from `system-gschemrc`: 1911 - `attribs.scm` 1912 - `deprecated.scm` 1913 - `keys.scm` 1914 - `menu.scm` 1915 - `options.scm` 1916 - `stroke.scm` 1917 1918- The following Scheme functions are now deprecated and do nothing: 1919 - `gschem-image` 1920 - `gschem-pdf` 1921 - `gschem-use-rc-values` 1922 1923- Several `gschemrc` settings has been changed as follows: 1924 - `add-attribute-offset` is now deprecated and does nothing. 1925 - `image-color` is now deprecated and does nothing. 1926 - `image-size` is now deprecated and does nothing. 1927 - `logging-destination` is now deprecated and does nothing. 1928 - `log-window-type` is now deprecated and does nothing. 1929 - `raise-dialog-boxes-on-exp` is now deprecated and does nothing. 1930 - `window-size` is now deprecated and does nothing. 1931 - `warp-cursor` is now "disabled" by default. 1932 - `fast-mousepan` is now "disabled" by default. 1933 - `log-window` is now "later" by default. 1934 - `undo-levels` is now "20" by default. 1935 - `undo-panzoom` is now "disabled" by default. 1936 1937- The `sys-doc-dir()` function code in the module `(gschem 1938 gschemdoc)` module responsible for searching for system 1939 documentation directories has been known to fail in some 1940 circumstances when it tried to guess where the documentation 1941 files are installed. The guess-work has been eliminated by using 1942 fixed compile-time variables in the code. 1943 1944- The geometry (size and position) of `lepton-schematic`'s main 1945 window can now be stored in the **cache** configuration context, 1946 in the `schematic.window-geometry` group. The geometry is saved 1947 on exit and restored on startup if the (new) 1948 `[schematic.gui]::restore-window-geometry` configuration key is 1949 set to `true` (which is so by default). 1950 1951- The **macro widget** has been improved in several ways: 1952 1953 - A new configuration group, `schematic.macro-widget`, has been 1954 added for setting up the properties of the widget. 1955 1956 - The history of Scheme expressions executed via the `:` prompt 1957 is now saved in the configuration file in the *cache* 1958 configuration context (usually 1959 `$XDG_CACHE_HOME/lepton-eda/gui.conf`). The commands are 1960 stored in the `history` key and can be accessed by choosing 1961 appropriate items from drop-down list in the macro widget. The 1962 history length is set in the `history-length` configuration 1963 key in the `schematic.macro-widget` group in the *user* 1964 configuration context. The default value is 10. 1965 1966 - The macro widget now supports auto-completion of text. 1967 1968 - A new configuration key, `font`, in the 1969 `schematic.macro-widget` group in the *user* configuration 1970 context can now be used for setting up the font of the widget. 1971 1972 - As a side effect of refactoring of the widget, the program no 1973 longer crashes on evaluating of the command `(file-quit)` in 1974 the prompt. 1975 1976- New accelerator keys have been added to facilitate keyboard 1977 navigation in the following dialogs: 1978 - `Single Attribute Editor` 1979 - `Edit Attributes` 1980 - `Select Component` 1981 - `Add Text` 1982 - `Edit Text` 1983 - `Object Properties` 1984 - `Options` 1985 - `Arc Params` 1986 1987- The log window can now be cleared by choosing "Clear Log Window" 1988 menu item in the context menu. The user can cancel the action 1989 in the confirmation dialog. 1990 1991- Long lines in the log window can now be wrapped by clicking the 1992 "Wrap Long Lines" menu item in the log window's context menu. 1993 1994- Schematic page filename and more verbose information is now 1995 displayed in the page revert dialog. 1996 1997- If you select 'Print to File' option in the print dialog, the 1998 output PDF file name is now derived from the name of the current 1999 page instead of previous default name "output.pdf". 2000 2001- File filters in the dialog boxes 'Open...' and 'Save As...' now 2002 keep their last chosen values while the program is running. 2003 Previously, the filters were always set to choosing schematic 2004 files when the user opened the dialogs. 2005 2006- Wrong behaviour of the program when the value of **draw-grips** 2007 is set to "disabled" in `gschemrc` has been fixed, so now this 2008 setting prohibits drawing grips of selected objects still 2009 allowing the user to resize them. 2010 2011- A new menu allowing exporting of netlists has been added to the 2012 program. As of now, the only item in the menu allows exporting 2013 of `allegro` netlists. Messages about processing are sent to log 2014 to provide the user with some feedback information in the log 2015 window. 2016 2017- Fixed segmentation faults in the `always-promote-attributes` rc 2018 function (called from the `gafrc` configuration file) when used 2019 with improper arguments. 2020 2021- Avoided GTK warnings on output of some message strings to the 2022 status bar containing characters which are treated specially by 2023 GTK, such as '<' and '>'. 2024 2025- Page "changed" indicator is now shown in the tab headers as 2026 well: the file name shown is output in bolder font and an 2027 asterisk is added to emphasize that the file has been changed. 2028 2029- Fixed font preview in the font selection dialog. Previously, if 2030 a custom font name was specified in the configuration key `font` 2031 in the `schematic.gui` configuration group, the text became 2032 invisible in the preview widget of the dialog, because the 2033 "Size" field was always initially set to zero. This has been 2034 fixed by setting the initial font size to non-zero value. 2035 2036- Fixed page "changed" status indication. Previously, after 2037 successful *Edit* → *Embed* and *Edit* → *Unembed* operations 2038 the "changed" status of the page would not reflect in the page 2039 manager and in the window's title. Now, both are correctly 2040 updated so that the status is visible to the user. 2041 2042- Page manager visual appearance has been improved in several ways: 2043 2044 - When working on hierarchical schematics, full schematic paths 2045 used to clutter the view most of the time. Now they can be 2046 shown at any time or hidden away by checking the "Show full 2047 paths" checkbox. By default, they are hidden. The state of 2048 the "Show full paths" checkbox is stored in the 2049 `show-full-paths` key of the `schematic.page-manager` group in 2050 the **cache** configuration context. 2051 2052 - Minimal "Filename" column width has been reduced. 2053 2054 - Scrollbars are now shown only when needed. 2055 2056 - Superfluous "Right click on the filename for more options..." 2057 label has been removed. 2058 2059 - The "Update" button has been removed from the page manager 2060 dialog, and a similar item has been added to the context menu. 2061 2062- Fixed a broken output of translated strings to the log when the 2063 program is compiled using guile-2.2. It is a [known 2064 issue](https://lists.gnu.org/archive/html/bug-guile/2017-01/msg00020.htm) 2065 in guile-2.2. The function `scm_puts()` broke translated 2066 Unicode strings and output them as sets of bytes. Their further 2067 transformation by gtk functions resulted in unreadable text in 2068 the log window. 2069 2070- Fixed segfaults triggered on some systems by the sequence 2071 <kbd>Control</kbd>+<kbd>x</kbd> <kbd>Control</kbd>+<kbd>v</kbd> 2072 when a component was selected. 2073 2074- Fixed errors triggered by the function `file-quit` on startup, 2075 for example, using the following command: `lepton-schematic -c 2076 '(file-quit)'`. 2077 2078- Fixed a bug of searching for `gschem-gtkrc` in wrong system 2079 config directories. 2080 2081- The file `gschem.scm`, that defined some previously global 2082 Scheme functions, has been transformed into two modules — 2083 `(schematic gui keymap)` and `(schematic gui strokes)`. While 2084 this simplifies Lepton code a little and eliminates a 2085 superfluous step of loading the file with auxiliary functions, 2086 the functions are no more global, so the users may have to fix 2087 up their extensions, if they want to use those functions, by 2088 making sure the necessary modules are loaded within them. 2089 2090- Exceptions in the (gschem gschemdoc) module are now catched and 2091 reported to the user in a message box. 2092 2093- The menu item *Help* → *Find Component Documentation* is now 2094 sensitive only if a component is selected, providing the user 2095 with a useful feedback. 2096 2097- The action `&repeat-last-action` (the /repeat/ key *.*) has been 2098 improved, so it now does as following: 2099 2100 - It now displays a log message when there is no last action to 2101 repeat rather than warning about an invalid action. 2102 2103 - If an invalid action is requested, instead of using the Scheme 2104 function `error()` to report the failure, it just prints a 2105 warning to the log. 2106 2107- Deprecated export scripts `image.scm`, `print.scm` and the 2108 `--output` command line option have been removed. Schematics can 2109 be exported by using `lepton-cli export` or via the 'File → 2110 Write Image...' dialog box. 2111 2112- Current schematic's full file path can be shown in the main window's 2113 title if the `title-show-path` configuration key (boolean) in the 2114 `schematic.gui` group is set to `true`. 2115 2116- Close confirmation dialog has been improved: 2117 2118 - It can be resized. 2119 - "Show full paths" checkbox has been added. 2120 2121- The `Write Image...` dialog box has been improved as follows: 2122 2123 - Image color mode can now be selected (greyscale or color). 2124 - 1024x768 has been added to the list of image sizes. 2125 - Selected directory, image size, image type and color mode 2126 are saved and restored when this dialog is opened next time. 2127 2128- New names are now used for temporary files created by undo 2129 subsystem in `$TMP`: `lepton-schematic.save*` instead of 2130 `gschem.save*`. 2131 2132### Changes in `lepton-attrib`: 2133 2134- The program no longer loads `gattribrc` files since for many 2135 years they provided no useful settings for the user. Previously 2136 available Scheme functions `quit()`, `exit()`, and 2137 `gattrib-version()` have been removed as well. 2138 2139- Separate menu description *XML* file has been removed. Now the 2140 menu structure is defined in the source code only. 2141 2142- The size and position of the main window is now saved in the 2143 **cache** configuration context, in the group 2144 `attrib.window-geometry`, and restored on launching of the 2145 program. 2146 2147### Changes in `lepton-symcheck`: 2148 2149- The program no longer requires specifying any file name when 2150 interactive mode is requested, which may be convenient, for 2151 example, for debugging its functions. 2152 2153- A simple error is output instead of Scheme backtrace when 2154 neither interactive mode nor input files are specified on 2155 command line. 2156 2157### Changes in `lepton-cli`: 2158- Default font name for the `export` command has been changed from 2159 `Arial` to `Sans` (`export::font=Sans`). 2160 2161### Changes in `lepton-schlas`: 2162- The program no longer loads `system-gschlasrc` since for many 2163 years it provided no useful settings for the user. Previously 2164 available Scheme functions `quit()`, `exit()`, and 2165 `gschlas-version()` have been removed as well. 2166 2167### Changes in `lepton-schdiff`: 2168- Default font name has been changed from `Arial` to `Sans`. 2169 2170### Changes in `gmk_sym`: 2171 2172- Non-working `-d` (debug) option has been removed. 2173 2174Notable changes in Lepton EDA 1.9.7 (20181211) 2175---------------------------------------------- 2176 2177### Changes in `lepton-schematic`: 2178 2179- A new action, `edit-object-properties`, has been added. It is a 2180 replacement for four legacy actions which opened the same 2181 dialog: `edit-color`, `edit-linetype`, `edit-filltype`, 2182 `edit-pin-type`. The action is now bound to the shortcut 2183 <kbd>E</kbd>-<kbd>O</kbd>. 2184 2185- Fixed icon name for "Down Symbol" entry in pop-up menu. 2186 2187- Improved diagnostics of input file errors: 2188 2189 - If `--verbose` (`-v`) command line option is passed to 2190 `lepton-schematic`, it prints input files line by line as they 2191 are parsed in the terminal, which facilitates debugging of 2192 broken schematics. 2193 2194 - "Failed to load file" dialog error message has been 2195 improved. It now reports line number in the schematic file 2196 where parsing was stopped due to an error. 2197 2198- Several changes in the `lepton-schematic` menu make it more 2199 organized and easier to navigate through: 2200 - A new shortcut, <kbd>O</kbd>-<kbd>F</kbd>, for 'Options → 2201 Font', has been added. 2202 - A new shortcut, <kbd>T</kbd>-<kbd>I</kbd>, for 'Attributes → 2203 Show/Hide Hidden Text', has been added while retaining the 2204 legacy one, <kbd>E</kbd>-<kbd>N</kbd>. 2205 - Shortcut for 'Help → Find Component Documentation' has been 2206 changed to <kbd>H</kbd>-<kbd>O</kbd>. 2207 - Shortcut for 'Options → Options' has been changed to 2208 <kbd>O</kbd>-<kbd>O</kbd>. 2209 - Shortcut for 'Attributes → Find Text' has been changed to 2210 <kbd>T</kbd>-<kbd>F</kbd>. 2211 - Obsolete 'Edit Pin Type' entry in pop-up menu has been 2212 replaced with 'Object Properties'. 2213 2214- Some issues with using of 'Help' menus have been fixed: 2215 - Fixed doc searching bug in `lepton-schematic`'s module 2216 `gschemdoc` which failed due to wrong guessing on the 2217 installed documentation paths. 2218 - Fixed blocking of `lepton-schematic` GUI on using 'Help' menu 2219 entries on systems where documentation viewer may not return 2220 control until the web browser is closed. 2221 2222### Changes in `lepton-netlist`: 2223 2224- A new test schematic for the `verilog` backend has been 2225 added. It allows checking changes in verilog module 2226 declarations. 2227 2228- Log initialisation has been moved from the `(netlist)` module to 2229 the `lepton-netlist` executable file to prevent repetition 2230 of the initialisation on every loading of the module and using 2231 the wrong log domain when the module is loaded, e.g., in 2232 `lepton-schematic` GUI. 2233 2234- Output of `lepton-netlist` version has been unified and placed 2235 into one procedure, `lepton-netlist-version`. Version is now 2236 output once per run, and the procedure can be used interactively 2237 in `lepton-netlist` REPL. 2238 2239- `lepton-netlist` interactive mode can now be used without 2240 specifying any file name on command line; the user can now load, 2241 traverse, and introspect arbitrary schematics data in its REPL. 2242 2243- Some backward compatibility variables have been provided to 2244 ensure compatibility with legacy geda backends. 2245 2246- `schematic-packages` and `schematic-non-unique-packages` fields 2247 have been removed from the `<schematic>` record since they are 2248 derivatives from its other structures. Two substitution 2249 procedures retrieving those data, `schematic-package-names` and 2250 `schematic-non-unique-package-names`, have been provided to 2251 provide the same functionality. 2252 2253- New procedure `netlist-error` is now used instead of `error` in 2254 many backends for reporting errors. This simplifies error output 2255 by avoiding improper output of the program execution stack where 2256 it is not necessary. 2257 2258- The program now catches errors in loaded code (specified by 2259 options `-g`, `-l`, `-m`, `-c`) and exits with appropriate error 2260 message. 2261 2262 2263### Changes in `liblepton`: 2264 2265- The library has now facilities to load schematics in a verbose 2266 manner, which is now used in `lepton-schematic` (see above) for 2267 debugging. 2268 2269 2270Notable changes in Lepton EDA 1.9.6 (20181101) 2271---------------------------------------------- 2272### Breaking changes: 2273- All `(gnetlist module-name)` Scheme modules have been renamed to 2274 `(netlist module-name)`. 2275 2276### Changes when building from source: 2277- More portable gcc flags (namely, `AX_GCC_FLAGS`) are used now. 2278 `-std=c99` substitutes for `-std=gnu99`, and 2279 `-Werror=uninitialized` is now used instead of 2280 `-Werror=maybe-uninitialized`. 2281 2282 2283### Changes in `lepton-schematic`: 2284 2285- A new configuration key `text-sizes` in `schematic.gui` group 2286 has been added. It can be set to a semicolon-separated list of 2287 text size values. Those values will appear in *Text Entry...* 2288 ('Add → Text)' and *Text* ('Edit → Text') dialogs instead of 2289 default built-in values. 2290 2291- The middle mouse button can now be used to display the popup 2292 menu. Set `(middle-button "popup")` in `gschemrc` configuration 2293 file for this to work. 2294 2295- The maximum number of recent files to show in the `File → Open 2296 Recent` menu can now be configured using `max-recent-files` key 2297 in the `schematic.gui` group. 2298 2299- Processing of `-q` (`--quiet`) command line option has been fixed. 2300 2301### Changes in `lepton-netlist`: 2302 2303- `lepton-netlist --list-backends` standard output now contains just 2304 the list of backend names, making it more script-friendly. 2305 2306- A bug in the function `get-all-connections`, which led to wrong 2307 netlists, has been fixed. The function now ignores pins of 2308 *graphical* components if they are connected to nets. 2309 2310- Filtering of "no-connect" packages and nets has been added: 2311 - A new `symbol=nc` attribute has been added to the list of 2312 processed attributes. Please see the 2313 [Attributes](https://github.com/lepton-eda/lepton-eda/wiki/Attributes) 2314 page in the lepton wiki for more information on how it works and 2315 about backward compatibility. 2316 - A new function, `package-nc?` has been added to the `(netlist 2317 package)` module to filter the "no-connect" packages. 2318 - The `<schematic>` record in the `(netlist schematic)` module 2319 has been changed to contain the field `nc-nets` providing the 2320 names of nets connected to the "no-connect" symbols. 2321 - Appropriate functions of the `drc2` backend have been modified 2322 accordingly to support the new attribute. 2323 - The "no-connect" symbols in the distribution (`nc-*.sym`) have 2324 been updated to reflect the above change. 2325 - Some netlister test schematics have been fixed to check for 2326 the new and legacy "no-connect" symbols. 2327 2328- Output of the `geda` backend has been changed. Now it outputs 2329 additional information on graphical symbols and "no-connect" 2330 symbols. 2331 2332- Error output of the `bom2` backend has been fixed. 2333 2334- Log file names are now prefixed with `netlist` instead of 2335 `gnetlist`. 2336 2337- Reduced output to log files by removing disclaimer. 2338 2339- Fixed netlister name in the output of many backends. 2340 2341- A new command line option, *-w*, has been added to prevent 2342 "annoying" warnings about missing configuration files. 2343 2344- A new module, `(netlist error)`, and a new function in it, 2345 `netlist-error()`, have been added. The function is recommended 2346 for using in code of backends instead of `error()`, since the 2347 latter outputs Scheme execution stacks awful for mere users and 2348 absolutely unnecessary in cases where there are no programming 2349 error. 2350 2351- The program now exits with exit code *1* when neither backend 2352 nor interactive mode are given. 2353 2354### Changes in `lepton-schdiff`: 2355 2356- A non-portable invocation of `mktemp` has been fixed. 2357 2358- Temporary file names are now prefixed with strings 2359 "lepton-schdiff-old", "lepton-schdiff-new", and 2360 "lepton-schdiff-diff" to facilitate debugging. 2361 2362- `lepton-cli export` is now invoked instead of deprecated Scheme 2363 scripts. 2364 2365- A new command line option, *-d [VIEWER]*, has been added to 2366 specify the image viewing program. By default, `display` from 2367 the **ImageMagick** package is used. 2368 2369- The script now uses the schematic font name set in the 2370 `schematic.gui::font` configuration key to output images. By 2371 default, if that key is not set, *Arial* is used. 2372 2373 2374Notable changes in Lepton EDA 1.9.5 (20180820) 2375---------------------------------------------- 2376 2377### Changes when building from source: 2378- The version of the `libleptonrenderer` library, mistakenly 2379 broken in the previous release, has been fixed. 2380 2381- Fixed build on systems with several versions of `guile` package 2382 installed. On such systems, the user can specify the right 2383 program binary on the `configure` stage, e.g., `./configure 2384 GUILE=/usr/bin/guile-2.0`. 2385 2386### Changes in `lepton-schematic`: 2387 2388- Log window scrolling has been fixed so that the last line of the 2389 log is shown correctly. 2390 2391### Changes in `lepton-netlist`: 2392 2393- A new backend, *tEDAx*, aimed to support for the `pcb-rnd` 2394 program, has been added. 2395 2396- The patch preventing using of some `bash`-specific constructs 2397 has been applied. 2398 2399- Duplicate backend name output by the `--list-backends` command 2400 line option has been avoided. 2401 2402 2403Notable changes in Lepton EDA 1.9.4 (20180812) 2404---------------------------------------------- 2405 2406### Breaking changes: 2407 2408- `gaf` has been renamed to `lepton-cli`, `gschem` has been 2409 renamed to `lepton-schematic`, `gnetlist` has been renamed to 2410 `lepton-netlist`, `gsch2pcb` has been renamed to 2411 `lepton-sch2pcb`, `gsymcheck` has been renamed to 2412 `lepton-symcheck`, `grenum` has been renamed to `lepton-renum`, 2413 `refdes-renum` has been renamed to `lepton-refdes_renum`, 2414 `tragesym` has been renamed to `lepton-tragesym`, 2415 `pcb_backannotate` has been renamed to 2416 `lepton-pcb_backannotate`, `garchive` has been renamed to 2417 `lepton-archive`, `gsymfix` has been renamed to `lepton-symfix`, 2418 `schdiff` has been renamed to `lepton-schdiff`, `gschlas` has 2419 been renamed to `lepton-schlas`, `gxyrs` has been renamed to 2420 `lepton-xyrs`, `gattrib` has been renamed to `lepton-attrib`. 2421 2422- By default, backward compatibility symlinks are not created for 2423 major renamed tools, namely, `gaf`, `gattrib`, `gnetlist`, 2424 `gsch2pcb`, `gschem`, and `gsymcheck`, though the user can 2425 change that. A new configure option, 2426 `--enable-compat-symlinks`, can be used to enable their 2427 creation. 2428 2429- The users have now use `info lepton-scheme` to open texinfo 2430 manual on Lepton EDA Scheme API instead of `info geda-scheme`. 2431 2432### General changes: 2433 2434- Compatibility with various non-Linux systems has been improved 2435 by avoiding of hardcoding paths for such interpreters as Perl, 2436 Python, or bash. 2437 2438- `lepton-eda` can now be compiled in C++ mode basically by using 2439 `./configure CC=g++ && make CC=g++`. 2440 2441- The same readline history file ".lepton_history" residing in the 2442 user configuration directory is used for `lepton-schematic`, 2443 `lepton-netlist`, and `lepton-symcheck`. 2444 2445- A new section about 'Makefile' creation has been added to 2446 CONTRIBUTING.md to facilitate non-gnu-make builds. 2447 2448- Fixed `--disable-deprecated` configure option. 2449 2450- Fixed non-working Scheme API procedure `reset-source-library`. 2451 2452### Changes in `lepton-cli`: 2453 2454- Fixed Postscript output in landscape orientation. 2455 2456- Fixed `--layout` option processing for export. 2457 2458### Changes in `lepton-netlist`: 2459 2460- All `lepton-netlist` (previously known as `gnetlist`) 2461 functionality has been reimplemented in Scheme. 2462 2463- Fixed processing of the `graphical` attribute. 2464 2465- Fixed a regression in the `verilog` backend. 2466 2467- A new example and 2468 [a wiki page for it](https://github.com/lepton-eda/lepton-eda/wiki/Verilog-example) 2469 have been added for the `verilog` backend. 2470 2471### Changes in `lepton-schematic`: 2472 2473- view-find-text-state action has been added ('View → Find Text State'). It 2474helps when docking windows GUI is turned off (in that case all widgets 2475are not always visible). 2476 2477- "Freestyle" colors gain default values. Now there is no need to 2478share the color schemes if one use that colors in their schematics. 2479 2480- A new widget that allows the users to change the schematic font has 2481been added ('Options → Font...'). The user can click the "Apply" button 2482to preview the chosen font and then cick the "Save..." button to save 2483the settings either to the local or user configuraion file. It 2484changes `font` key in `schematic.gui` group mentioned below. 2485 2486- A new configuration key `font` in `schematic.gui` group has been 2487 added. The user can now choose the font for schematic text. 2488 2489- Program-specific settings are now stored in separate configuration 2490 file in `$XDG_CACHE_HOME` directory. 2491 2492- A new widget for changing color scheme has been added. The user 2493 can now open 'View → Color scheme editor...', choose the colors 2494 she wants, and save the resulting color scheme under appropriate 2495 file name. 2496 2497- File save dialog now displays proper names for new files. 2498 2499- File save dialog is no longer opened after 'File → Save' for 2500 existing files if they have already been saved under default 2501 name. 2502 2503- Some duplicated log messages and superfluous newlines are no 2504 longer displayed in the log window. 2505 2506- Orphaned pages visible only in Scheme are no longer created 2507 after 'Page → Revert'. 2508 2509- Tabbed GUI support has been added to `lepton-schematic`: each 2510 schematic page can be now displayed in its own tab. By default, 2511 it is disabled and can be turned on by setting 2512 `schematic.gui::use-tabs` configuration key to `true`. Two 2513 other configuration keys related to tabbed GUI are 2514 `schematic.tabs::show-close-button` and 2515 `schematic.tabs::show-up-button`. They determine whether to show 2516 "close" and "hierarchy up" buttons on each tab, respectively. 2517 2518- Non-working options "-r" and "--config-file" have been removed. 2519 2520- A new hook, `switch-action-mode-hook`, has been added, which can 2521 be used to yield user subroutines on mode switch. Please check 2522 `info lepton-scheme` for details. 2523 2524- 'Text Entry...' dialog now respects the `text-size` option 2525 value. 2526 2527- Freestyle colors have now appropriate names in GUI. 2528 2529- A new configuration key `modify-viewport` in `schematic.undo` 2530 group has been added. It allows to change panning and zooming on 2531 undo/redo operations if `undo-panzoom` is set to "disabled" in 2532 `gschemrc` configuration file. The default value is "false". 2533 2534- Fixed naming of exported files in non-UTF-8 locales. 2535 2536- Warnings about missing standard menu items no longer clutter the 2537 log window when they are commented out in `system-gschemrc`. 2538 2539- A new widget to check symbols using `lepton-symcheck` 2540 functionality has been added. Use 'Attributes → Find Specific 2541 Text...' or <kbd>T</kbd>, <kbd>Shift</kbd>+<kbd>F</kbd>, choose 2542 'Check Symbol:' on the combo-box at left, and press the button 2543 'Find'. A message dialog with info about wrong floating 2544 attributes will appear. Closing it with the 'OK' button will 2545 lead to opening a window with info on objects having errors or 2546 warnings if such objects exist. If you select any of them, the 2547 canvas will be panned and zoomed to have it centered on the 2548 page. 2549 2550- Support for showing widgets as dialogs has been added. Now the 2551 users may decide, what type of GUI they prefer to use: dialog 2552 boxes (as it was before 1.9.2) or docking widgets. The type of 2553 GUI is controlled by the `use-docks` configuration key in the 2554 `schematic.gui` group. By default it's `true`: use docking 2555 widgets. If it's `false` then the widgets will be shown as 2556 dialog boxes. 2557 2558- A new module, `(schematic undo)` has been added, which contains 2559 a new procedure, `undo-save-state`. It saves current state onto 2560 the undo stack. Now it's possible to support undo/redo 2561 operations while modifying a schematic by scripts written in 2562 Scheme. 2563 2564- Filtering support has been added to hotkeys dialog. The user 2565 can quickly search by a desired keystroke or an action name in 2566 the `Filter:` entry. When searching for hotkeys, the user has 2567 to enter space between letters. 2568 2569- A regression in the multiattrib dialog box, resulted in the 2570 wrong height of the value textview, has been fixed. 2571 2572- A new `font` configuration key in the `schematic.log-window` 2573 group is now used to select the font used in the log window. 2574 2575- Scrollbars in the log window are no longer shown if the text 2576 fits in the window. 2577 2578- Automatic scrolling is now used in text properties and object 2579 properties widgets. 2580 2581- Color selection combo box keeps updated in line with the current 2582 color scheme. 2583 2584- Several new statusbar settings can now be used to adjust the 2585 statusbar appearance. The user can change one of the settings in 2586 the `schematic.status-bar` configuration group in order to get 2587 her favorite view: 2588 2589 - Rubberband and magnetic net mode indicators can be now turned 2590 on by setting `show-rubber-band` and/or `show-magnetic-net` 2591 configuration keys to `true`, accordingly. 2592 2593 - Indication of mouse button assignment can be switched off by 2594 setting `show-mouse-buttons` configuration key to `false`. 2595 2596 - The user can now affect the font style used for the active 2597 action text with two new keys: `status-active-color` and 2598 `status-bold-font`. 2599 2600 Please see 2601 [the Configuration Settings HowTo](https://github.com/lepton-eda/lepton-eda/wiki/Configuration-Settings) 2602 for more information on the above settings. 2603 2604- All status bar elements have now tooltip descriptions. 2605 2606 2607### Changes in `lepton-symcheck`: 2608 2609- `lepton-symcheck` (previously known as `gsymcheck`) 2610 functionality has been fully reimplemented in Scheme. 2611 2612- Fixed wrong evaluation of amount of failed checks. 2613 2614- No Scheme rc files are parsed for the utility any more. Useless 2615 rc procedures `gsymcheck-version`, `quit` and `exit` have been 2616 removed. 2617 2618- A new option, `--interactive`, has been added, which allows 2619 working with the tool functions in an interactive REPL. 2620 2621- Improvements and new checks in the utility: 2622 2623 - Improved error messages about various objects. 2624 2625 - Added checks for zero sized primitives. 2626 2627 - Added checks for forbidden objects inside symbols (nets, 2628 buses, components). 2629 2630 - Improved checks for duplicated floating attributes. 2631 2632 - An incorrect warning message about a trailing backslash in 2633 text objects has been fixed. 2634 2635 - Improved checks for the `pinseq` attribute multiplicity. 2636 2637 - Improved special checks for `device` and `graphical` 2638 attributes. 2639 2640 - Output messages about required floating attributes (`refdes`, 2641 `device`, and `footprint`) have been unified and have now 2642 severity `'warning` for all of them. 2643 2644 - Improved checks for symbol slotting: added checks for the 2645 `numslots` attribute and for duplicate pin numbers in the 2646 `slotdef` attributes. Checks for duplicates in wrongly formed 2647 slots are avoided. 2648 2649 - Refactored checks for duplicates in `slotdef`, `net`, and 2650 `pinnumber`. 2651 2652 - Misleading warnings about matching pin number in `net` and 2653 `pinnumber` attributes are removed. 2654 2655### Changes in `lepton-sch2pcb`: 2656 2657- Environment variable `GNETLIST` is no longer used in 2658 `lepton-sch2pcb` to custom netlister executable name. It has 2659 been replaced with `NETLISTER`. 2660 2661- New options, `--backend-cmd`, `--backend-net`, and 2662 `--backend-pcb` can be used to customize backend names. Default 2663 backend names are *pcbpins*, *PCB*, and *gsch2pcb*, respectively. 2664 2665### Changes in `gmk_sym`: 2666 2667- Using of both dot and clock in generated symbols for the 2668 `verilog` backend is now allowed. The user should use a new 2669 directive *BOTH* to make this work. 2670 2671### Changes when building from source: 2672 2673- Lepton now requires GTK+ 2.24.0, Glib 2.25.0, Gio 2.25.0, 2674 Gdk-pixbuf 2.21.0 or later versions for build. 2675 2676- Fixed option `--enable-contrib` of the *configure* script. 2677 2678 2679### Changes related to building under Cygwin: 2680 2681- An error in Cygwin port for Windows has been fixed. Information 2682 on how to build `lepton-eda` under Cygwin can be found 2683 [in the lepton-eda wiki](https://github.com/lepton-eda/lepton-eda/wiki/Lepton-EDA-and-Cygwin). 2684 2685 2686Notable changes in Lepton EDA 1.9.3 (20170226) 2687---------------------------------------------- 2688 2689### Breaking changes: 2690 2691- `libgeda` has been renamed to `liblepton` and `libgedacairo` has 2692 been renamed to `libleptonrenderer`. 2693 2694- Most legacy `gnetlist` API functions have been implemented in Scheme. Some 2695 backends may need to be adjusted slightly to take advantage of the 2696 improved API. 2697 2698- Direct output file access in `gnetlist` backends is now discouraged. 2699 Backends should write netlist data to the current Scheme output 2700 port, unless the backend is generating several files. The 2701 `output-filename` parameter to the main backend entry procedure is 2702 still meaningful; it reflects the output filename requested or is 2703 set to `#f` if `gnetlist` is generating the netlist to standard 2704 output. 2705 2706### General changes: 2707 2708- Lepton core tools will now automatically rotate per-user log files. 2709 250 log files per tool will be retained from the last 24 hours, and 2710 50 log files per tool from all time. 2711 2712- gEDA/gaf tools now search for data and configuration files in the 2713 standard XDG directories. By default, these are: 2714 2715 - `/usr/local/share/gEDA/` and `/usr/share/gEDA` for system data 2716 - `/etc/xdg/gEDA/` for system configuration 2717 - `$HOME/.local/share/gEDA/` for per-user data 2718 - `$HOME/.config/gEDA/` for per-user configuration. 2719 2720 However, gEDA/gaf tools will still use `$HOME/.gEDA` for per-user 2721 files if that directory exists, they still obey the `$GEDADATA` and 2722 `$GEDADATARC` environment variables, and by default the search path 2723 includes the installation prefix selected when compiling Lepton. 2724 2725- Lepton tools will now search for Scheme code in the `scheme` 2726 subdirectory of the per-user data directory before anywhere else, to 2727 allow easy low-level Lepton customisation. 2728 2729- The `world-size` rc function has been deprecated, and no longer does 2730 anything. 2731 2732### Changes in `gschem`: 2733 2734- The default editor view bounds have been expanded to allow symbols 2735 to be drawn without needing to translate them to the origin. 2736 2737- The multi-attribute editor now allows navigation between its 2738 controls with <kbd>Tab</kbd> and <kbd>Shift</kbd>+<kbd>Tab</kbd>, a 2739 tooltip for hinting how to add a literal linefeed or tab character, 2740 and a horizontal scrollbar to suppress window resizing. 2741 2742- You can now launch a Scheme Read-Eval-Print Loop (REPL) in gschem's 2743 controlling terminal with 'File → REPL' or with <kbd>F</kbd>, 2744 <kbd>Shift</kbd>+<kbd>R</kbd>. 2745 2746- Fix a crash when closing schematic pages, and several possible 2747 crashes when no page is open. 2748 2749- When undoing an operation the page is zoomed and scaled correctly, 2750 even if the `gschem` window was resized since the operation being 2751 undone. 2752 2753- 'File → Revert' will now detect changes to symbol libraries since 2754 the the page was loaded. This is helpful when trying to fix things 2755 up when symbols weren't found. 2756 2757- Faster page redraw operations. 2758 2759- Junction dots are now drawn slightly larger to ensure that they are 2760 clearly visible. 2761 2762### Changes in `gnetlist`: 2763 2764- `gnetlist` will no longer warn if some of the symbols in a merged 2765 component (i.e. symbols with the same `refdes` attribute) are 2766 missing an attribute. For example, you can now attach a `footprint` 2767 attribute to only one symbol in a merged component without warnings. 2768 `gnetlist` continues to warn when it finds conflicting values, 2769 however. 2770 2771- The `gnetlist` REPL is now compatible with Geiser. Packages, 2772 package pins and pin nets can now be pretty-printed in the REPL. 2773 2774- All rc functions related to hierarchy have been deprecated, and have 2775 been replaced with config file settings. 2776 2777- The `drc` backend has been extensively rewritten and improved. 2778 2779- The `makedepend` backend has been fixed and can now generate Make 2780 rules for hierarchical schematics. It can also work with 2781 non-numbered schematic names. 2782 2783- The `spice-sdb` backend now emits verbose info to standard error, so 2784 that verbose messages don't end up in the netlist. 2785 2786- The `vams` (Verilog AMS) backend now generates entity files 2787 correctly. 2788 2789- The `redac` backend no longer duplicates connection info. 2790 2791- Several backends no longer emit trailing whitespace. 2792 2793- Changes for backend authors: 2794 2795 - A new `object-id` function has been added to allow backends to 2796 access the object identifiers used during netlist generation. 2797 2798 - The `gnetlist-version` function has been removed. 2799 2800- Internal changes: 2801 2802 - A new Scheme test suite has been added, using the SRFI-64 2803 framework. 2804 2805 - "Graphical" netlists are no longer used during netlist generation. 2806 2807 - Schematic page tree creation and transformation procedures are now 2808 accessible from Scheme. 2809 2810 - A new `(gnetlist schematic)` module provides procedures for 2811 working with schematics as first-class objects during netlisting. 2812 2813 - The new `(gnetlist option)` and `(gnetlist config)` modules 2814 provide procedures for working with `gnetlist`'s command-line 2815 arguments and configuration data. 2816 2817### Scheme API changes 2818 2819- A new procedure, `log!`, has been added to the `(geda log)` module. 2820 It allows Scheme code to emit log messages in the same way that the 2821 tools' C code does. 2822 2823- Two new Scheme procedures for working with source library have been 2824 added to the `(geda library)` module: `source-library-contents` 2825 and `set-source-library-contents!`. 2826 2827- Accessing Lepton values (objects, pages, etc.) via the Scheme API is 2828 now much faster. 2829 2830Please check `info geda-scheme` for full details. 2831 2832### Changes when building from source: 2833 2834- Lepton requires Guile 2.0 or later for build. However, running the 2835 full test suite requires Guile 2.0.13. 2836 2837- The Lepton source tarball no longer includes `libintl`. When 2838 building Lepton with internationalisation support, GNU `gettext` 2839 0.18 or later is required. 2840 2841- The configure script now supports an `--enable-contrib` switch. 2842 Unless this is specified, the tools in the `contrib` directory will 2843 not be compiled or installed. 2844 2845- The configure script now supports an `--enable-relocatable` switch. 2846 When specified, Lepton tools do not have the configured prefix 2847 compiled into them. This option is not supported on BSD systems. 2848 2849- The configure script now supports a `--disable-deprecated` switch. 2850 When specified, various deprecated features and behaviour are 2851 disabled, which may break backward-compatibility with some 2852 configurations. 2853 2854---------------------------------------------------------------- 2855 2856Please see [NEWS-1.9.2.txt](docs/news/NEWS-1.9.2.txt) for info on 2857pre-1.9.3 changes (before *Lepton EDA* has forked from *geda-gaf*). 2858