Move contents of PreLoadElementPCB and PostLoadElementPCB into parse_y.y
[geda-pcb/pcjc2.git] / NEWS
bloba8f436d0c7cb0f551ff5dd153f42333cd75f404e
1 ========================================================================
2 Release Notes for PCB snapshot 20140316
3 ========================================================================
4 This release represents over 421 commits (mostly bugfixes and code
5 refactoring) and as such this summary clearly is not complete.  See
6 the ChangeLog file for the complete list of changes.
8 Features
9 --------
11 - GTK gui uses GL now, including a pseudo-3D mode.
12 - Brazilian translation added, others updated.
13 - Many internationalization tweaks.
14 - Mice with right-left scroll wheels now supported.
15 - Major upgrades to the GCode exporter.
16 - rat-thickness parameter can take a 'px' suffix
17 - metric and imperial grids are now more independent.
18 - photo exporter supports multiple color schemes.
19 - gerbers can be output in metric.
20 - There's now a difference between "found" (what the netlist wants)
21   and "connected" (what the copper says).
22 - PNG exporter has --fill-holes to omit the "drill helper" completely.
23 - gerber drill files now 0.1mil resolution.
24 - XY file is now IPC 7531 compliant.
26 Bug Fixes
27 ---------
29 - Fix pan locking up pcb if you leave the window.
30 - Many bugfixes related to the metric conversion, including the two
31   autorouters.
32 - ps alignment marks fixed.
33 - route styles in *.pcb files may contain units.
34 - able to select more parts by their mark when their mark is on-grid.
35 - gtk route selector may now have nothing selected, if the board has
36   custom route settings.
37 - drc no longer hangs when some layers are skipped.
38 - ps_bloat works again.
39 - EPS header is more standards-compliant.
40 - PS outlines are only drawn on copper layers, not mask layers.
41 - cursor position and zoom are no longer written to the *.pcb file.
42 - lines with different clearances aren't auto-merged.
43 - pin names are drawn in the pinout window.
44 - gerber aperture numbers won't increase between runs.
45 - misc doc tweaks and fixes.
47 Other
48 -----
50 - Many tweaks to the source code to make it cleaner.
51 - The top and bottom layers are now consistently called "top" and
52   "bottom" instead of "solder" and "component"
53 - *.pcb file version bumped to 20091103 to reflect coordinate units change.
54 - gEDA/pcb project moved to geda-project.org
56 ========================================================================
57 Release Notes for PCB snapshot 20110918
58 ========================================================================
59 This release represents over 797 commits and as such this summary 
60 clearly is not complete.  See the ChangeLog file for the complete list
61 of changes.
63 Features
64 --------
66 - Internal coordinate space is now metric.  This should fix the "trace
67   nubs on metric grids" issue.  Also, units are allowed on pretty much
68   every "coordinate" that PCB accepts.  Example: 5.4in, 10cm, 0.55mm.
69   New configure option --enable-coord64 to force (slower?) 64-bit type
70   for coordinates on 32-bit systems (if you need a board bigger than 1
71   meter across).  The internal precision is 1 nanometer, the internal
72   type is "Coord".
73 - MinGW support.
74 - New GL mode for the gtk hid with translucent traces.
76 - New GTK layer view/choose widget and other GUI enhancements.
77 - GTK HID warns if the *.pcb file has changed on disk.
78 - Enhanced grid snapping logic.
79 - Select/report nets by name.
80 - Auto-pan has been removed.
81 - Zoom can zoom out beyond the edge of the board's workspace.
82 - GTK: title string matches GNOME conventions.
83 - Personally identifiable information is no longer stored in the PCB.
84 - Toggling vias from hole to plated is reversible.
85 - Gerber exporter has options for including outlines on other layers.
86 - Edited footprint files are saved as footprints, not pcbs.
87 - Improved gtk library search/filter.
88 - Default layer stack is now a six-layer template with outline.
89 - If the board has an outline layer, an outline will be shown if no
90   other outline is specified.
91 - Group[] string allows t/b synonyms for c/s.  "top" and "bottom" are
92   the standard names now.
93 - PCB will save files with an older version tag if newer features aren't needed.
94 - Autorouter has a progress dialog.
95 - PCB will no longer let you delete the last top/bottom layer.
96 - Refcard has been updated.
97 - Documentation updates.
98 - Layes with the PCB::skip-drc attribute set are ignored during DRC.
99 - Allow numeric keys to also choose the silk layer.
100 - Minor readability tweaks to the default font.
101 - Via copper may overlap.
102 - User is notified if an Import() cannot find all the footprints.
104 Bug Fixes
105 ---------
107 - Optimizer won't try to optimize overlapping pads
108 - Undo should fail less, in corner cases.
109 - Nested key-bound actions won't crash lesstif.
110 - Do not select invisible pads on the far side.
111 - Protect Import() from command injection.
112 - Fix conversion of far-side polygons to element pads.
113 - Fix initial clearance values of text when loading PCBs.
114 - Fix solder mask drawing on vias.
115 - Add missing action documentation.
116 - Fab drawing notes actual outline trace width.
117 - Zero clearance pins and pads won't cause DRC failures.
118 - PS export: fix draw-rectangle (used to do fill, not outline)
119 - Gerber export no longer fills unfilled rectanges.
120 - If there are no image formats available, the PNG hid is not enabled.
121 - You can no longer select pins/pads of locked elements.
122 - The m4-to-newlib converter now creates file names that match the
123   library view.
124 - Never set the FOUND flag on new silk lines.
125 - Lesstif HID won't crash if both Xinerama and XRender are detected.
126 - Lesstif menu is now internationalizable.
127 - Refdes labels in a font-less layout can be moved.
128 - Import can correctly update elements on the bottom side.
129 - DRC no longer treats unplated holes as conducting.
131 Other
132 -----
134 - Updated and new translations, including Dutch.
135 - Many polygon speedups.
136 - Numerous build-related cleanups.
137 - Numerous minor speed-related cleanups.
138 - GTK 2.18 is the minimum required version.
139 - GTS moved out of the src/ tree so it can be built with different flags.
140 - More C++ compatible.
141 - Expanded regex documentation.
142 - Much code which is no longer needed has been removed.
143 - HID init method changed to allow for hid struct expansion without
144   breaking everything.
145 - New HID calls for whole-pad and whole-pin drawing.
146 - ClearAndRedrawOutput() replaced with Redraw().
147 - Board objects use hashes instead of lists to store parts, so
148   pointers don't change.
149 - DVI documentation output is no longer generated.
151 ========================================================================
152 Release Notes for PCB snapshot 20100929
153 ========================================================================
154 This release represents over 240 commits and as such this summary 
155 clearly is not complete.  See the ChangeLog file for the complete list
156 of changes.
158 Features
159 --------
161 - PCB can directly import (forward annotate) schematics while running.
162 - Many places where measurements are entered now accept units, like
163   "5mm", and "cm" and "in" are allowed too.
164 - Free Rotate Buffer added to menu
165 - Polygon Hole tool.
166 - F12 invokes the Lock tool.
167 - Russian translation added.
168 - DBUS is enabled by default when possible.
169 - Command-line exporters can run action scripts too.
170 - GTK tool tips on elements, pins, and nets.
171 - Command-line actions in GUIs do not require (,,) syntax.
172 - PCB can import footprints both in subdirectories and the named directories.
173 - New GCode exporter.
174 - Footprint files use ".fp" as the suffix; this is automatically
175   searched for if needed.
176 - GTK dialogs do not show at startup unless requested.
177 - Stackup can be specified on the command line for command-line exporting.
178 - Reference card updated.
179 - The snap-point in pads is the center.
180 - The 's' key toggles polygons to clear/notclear all pads and pins
182 Bug Fixes
183 ---------
185 - Various PNG export fixes.
186 - lesstif's magic toggle-layers-on-flip fixed.
187 - Arc bounding box math fixed.
188 - Fixed: sometimes, disabling silk also disabled the solder layer.
189 - "pcb --help" prints all options again
190 - Add mnemonic for "close without saving"
191 - Don't select silk on the back side when it's invisible.
192 - Various polygon rendering bugs fixed.
193 - PNG drill bloat export fixed.
194 - Attempts to change polygon clearance *on* polygons results in a hint.
195 - PNG doesn't segfault if not all graphic formats are supported.
196 - Various toporouter fixes and improvements
197 - HID_Mixed is supported in attribute dialogs
198 - Flipped rectangles in PS exports are drawn correctly.
199 - Optimizer removes micro-traces under pads.
200 - Vias, pins, and pads are now drawn under the mask instead of over.
201 - Windows supported better.
203 Other
204 -----
206 - Sources converted to C99
207 - Doc extraction gives more control over categories.
208 - Thermal documentation updated.
209 - Actions can see the context they were invoked in
211 ========================================================================
212 Release Notes for PCB snapshot 20091103
213 ========================================================================
214 This release represents almost 200 commits and as such this summary 
215 clearly is not complete.  See the ChangeLog file for the complete list
216 of changes.
218 - [feature] Add attributes to layers
219 - [bugfix]  Remove memory leak in attributes
220 - [bugfix]  Avoid layer buttons getting confused (GTK)
221 - [bugfix]  Fix dereference bug in hid_find_action()
222 - [feature] Speed up some polygon operations
223 - [bugfix]  Don't let DRC change the grid setting
224 - [bugfix]  Correct URL's in some dialogs and output
225 - [feature] Add filters to load file chooser dialog (GTK)
226 - [bugfix]  Avoid segfaults with png HID with newer versions of libgd
227 - [bugfix]  Don't disperse locked elements
228 - [feature] Added experimental topological autorouter
229 - [feature] Added the beginning of a testsuite.
230 - [docs]    Document FreeRotateBuffer()
231 - [docs]    Add some additional notes on the usage of the existing
232             autorouter
233 - [feature] Add --png-bloat option
234 - [bugfix]  Fix several bugs found with valgrind
235 - [bugfix]  Improve the pre-install wrapper script
236 - [bugfix]  Several fixes to the autorouter
237 - [feature] Allow quoted strings and escaped characters in action
238             arguments
239 - [footprints] Add missing INDC3216M, remove duplicated RESC3216M
240 - [feature] Added the ability to customize mouse events via gpcb-menu.res
241             in the GTK HID.
242 - [feature] Added the ability to use mod1 (alt)(option) in
243             HIDs.  Useful on OSX.
244 - [bugfix]  Fix compilation issues on centos
245 - [bugfix]  Make the detection of tools and build system around
246             building the documentation be more robust.  Users should
247             not be worrying about --disable-doc or --enable-maintainer-mode
248             anymore
249 - [footprints] Add T018, T039, fix pinout of T092 to match JEDEC
250 - [bugfix]  Speed up rendering of DRC violation previews under GTK
251 - [bugfix]  Fix some crashing bugs related to polygons and thindraw mode
252 - [feature] Added a DRC refresh button
253 - [bugfix]  Fix some pango markup in the GTK DRC dialog
254 - [bugfix]  Fix cursor warping on flipped boards (GTK)
255 - [feature] Added preview images in the DRC violations window (GTK)
256 - [feature] Add a DrcViolationType structure and add hooks to allow HID's to use this
257 - [bugfix]  Fix some polygon memory leaks
258 - [feature] Add an API for registering actions with a context to support scripting
259             languages like GPMI.
260 - [bugfix]  Fix a bug with the Report(NetLength) action and NULL pin/pad names
261 - [bugfix]  Allow exporters to work with hairlines (width of 0)
262 - [tools]   Increase autoconf version to 2.60 since we were using some features of it
263 - [bugfix]  Fix a number of polygon related issues
264 - [bugfix]  Fix a number of gcc warnings
265 - [feature] Don't display undocumented options in help output.  This helps
266             the transition when deprecating an option.
267 - [feature] Add outline mode for photo-mode exporting
268 - [footprints] Put the mark on pin 1 for axial footprints to make them more likely
269                to fall on grid
270 - [bugfix]  Fix flipping of arcs
271 - [bugfix]  Fix parsing of old-syntax arcs
272 - [bugfix]  Include explicit text/lines on silk layers in the assembly drawing output
273 - [feature] '--ben-mode' has been renamed to '--photo-mode'
274 - [bugfix]  Fix some crashign bugs on boards with a large number of rats
275 - [bugfix]  Fix an off-by-one bug in the GTK netlist window
276 - [docs]    Add getting started guide
277 - [feature] Add support for parsing suffixes on numbers ("um", "mm", "in", "mil")
278 - [bugfix]  Fix some configure/build issues when cross compiling
279 - [bugfix]  Fix some improperly used automake conditionals
280 - [bugfix]  Fix some uninstall of shortcuts issues under windows Vista
281 - [feature] Add additional crosshair shapes
282 - [bugfix]  Various windows build script improvements
284 ========================================================================
285 Release Notes for PCB snapshot 20081128
286 ========================================================================
287 This release represents over 70 commits and as such this summary 
288 clearly is not complete.  See the ChangeLog file for the complete list
289 of changes.
291 - Minor bug fixes in RS274-X output.
292 -.Bug fixes in postscript output
293 - DRC checks for annular ring on pads only uses the mininum annular ring
294   drc setting instead of also checking minimum copper width.
295 - Fix postscript output for zero length lines.
296 - Improve the 'save before closing' dialogs.
297 - Fixed bugs where objects attached to the cursor vanish sometimes.
298 - Various minor code portability improvements.
299 - Enabled additional gcc warnings (when using gcc)
300 - Allow outline layers to have only arcs.
301 - Added "Ben Mode" png output which provides a simulated "photograph"
302   of the board.  Very nice for publications.
303 - Fix poly clearance around rotated pads.
304 - Fix the batch HID which had bit rotted a little.
305 - Display net names hierarchically.
306 - Various speed improvements in the GTK HID.
307 - Various speed improvements in the autorouter.
308 - Minor improvements to the windows port.
309 - Other various bug fixes.
311 ========================================================================
312 Release Notes for PCB snapshot 20080202
313 ========================================================================
314 This release represents over 180 commits and as such this summary 
315 clearly is not complete.  See the ChangeLog file for the complete list
316 of changes.
318 - Added a footprin preview in the library window
319 - Added gnome/kde desktop integration files (app and mime icons, and
320   .desktop file)
321 - Added i18n support
322 - Updated dbus support
323 - Fix a number of GCC 4 compiler warnings
324 - Make the gtk gui more robust against malformed menu resource files
325 - Added checking for duplicate hot key definitions in the menu resource
326   file in the gtk gui.
327 - Improved support for building on win32.
328 - Removed automake/autoconf generated files from cvs
329 - Fixed some parallel make bugs
330 - Fixed some scrolling/panning bugs in the gtk gui.
331 - Added the ability to load edif netlists
332 - Closed a number of bugs in the sourceforge tracker
333 - Fix a bg in the x-y output files where the y values were mirrored and offset
334 - Add XRENDER support to the lesstif HID to support layer transparency
335 - Fix some polygon dicer bugs
336 - Fix a handful of bugs in the png export HID
337 - Avoid vias snapping to pins and moving elements snapping to their own
338   pins/pads
339 - Fix a number of undo bugs
340 - Fix printer calibration
341 - Add global puller
342 - Various improvements to the postscript export HID
343 - Improve all the GetXY prompts in the menu resource files
344 - Improved the pin/via report
345 - Improved pin/pad vs grid snapping
346 - Various footprint improvements 
347   o fixed some drill sizes
348   o fixed some silk sizes
349   o Added a handful of QFP family footprints
350   o Converted the QFP family to the hi-res format
351 - Several other bug fixes
353 ========================================================================
354 Release Notes for PCB snapshot 20070912
355 ========================================================================
356 This release represents nearly 200 commits and as such this summary 
357 clearly is not complete.  See the ChangeLog file for the complete list
358 of changes.
360 - Many many bug fixes.  Too many to list.
361 - Added keystone, C&K, Nichicon, and Optek footprint libraries
362 - Add attribute editor to the GTK HID
363 - Add a fileselect() function to the HID spec
364 - Fix ps output with drill helper on
365 - Add a visual indicater when elements are locked
366 - Corrections to the manual
367 - BOM can export in mm as well as mil 
368 - Fix a ps output bug with arcs
369 - Fix some memory leaks found with Coverity
370 - Added autoconf test for buggy versions of m4
371 - Fixed some footprint drill sizes
372 - Add user customizable menus for the gtk HID.  The gtk HID now is capable
373   of reading the same format menu resource files as the lesstif HID.
374   This represents significant rework of the menu code and menu callback code.
375 - Added Center() action
376 - Store the file format in the .pcb file.  This will let pcb know when
377   presented with a file which is too new.  The code for checking the format
378   was present in the prior snapshot.
379 - Fix DRC checking of square pads to square pads
380 - Added window panning/cursor warping
381 - Add the ability to directly load a footprint from a file as if it were
382   a complete layout.
383 - Add a Popup() action
385 ========================================================================
386 Release Notes for PCB snapshot 20070208
387 ========================================================================
388 - Add polygon clipping code.  This is a big change to how polygons are handled.  
389   The new code now removes islands and correctly identifies open circuits caused
390   by a trace fully cutting through a polygon.  In addition, the RS-274-X output
391   is now simpler and works with some board houses that use older non-conforming
392   sofware.  Different styles for thermal reliefs are also now supported as part
393   of the polygon clipper code.
394 - Add support for plugins
395 - Many improvements to the autorouter.
396 - Various improvements to the trace optimizer.
397 - Add a fontmode for editing pcb fonts
398 - Add progress() hook to HID structure
399 - Fix a bug with non-functional windows on some window managers commonly
400   found on OS-X
401 - Add support for controlling pcb via dbus
402 - Fix various bugs which would cause a crash
403 - Add --scale for postscript scaling
404 - Intercept window manager delete events with the GTK gui
405 - Scan the .pcb file for a FileVersion value.  This is not written out yet
406   but will be in future versions.  
407 - Warn if non-manhattan lines are trying to become pads.
408 - Allow no-solder paste pads to support fiducials
409 - Report in mm or mils as selected by user
410 - Allow reordering of layers
411 - add some more QFN packages
412 - fix building with sun studio c compiler
413 - Made a pcb installation be relocatable.
414 - Convert the m4 libraries to newlib libraries as part of building a distfile.
415   The m4 libraries are still considered the sources and as such are still
416   distributed but this eliminates the need for m4 at runtime for footprints.
417 - Got rid of the pcb wrapper script around pcb-bin.
418 - Remove some old footprints of questionable naming, accuracy, or usefulness.
419 - Get the autosave/backup code working on all GUI's
420 - Fix some drill size rounding in the reports
421 - Changed the backup file name to be derived from the .pcb file name
422 - Added a command line option for DrawGrid
423 - Fix logic for adding new ratlines
424 - Fix gtk grid when board is flipped
425 - Add "find" and "rip-up" buttons to the netlist window
426 - Draw plated holes when exporting
427 - Fix some bugs when converting selection to element
428 - Fix build on cygwin
429 - Enhance the win32/build_pcb script used to generate a non-cygwin windows
430   installer.
431 - Make pcb work under non-cygwin windows
433 ========================================================================
434 Release Notes for PCB snapshot 20060822
435 ========================================================================
436 - various manual updates
437 - update the INSTALL documentation
438 - fix a bug where pins turned into pure holes when an element
439   was smashed.
440 - use locale-independent strtod and dtostr functions to avoid problems
441   loading files saved in some locales.
442 - fixed various bugs which caused pcb to crash
443 - update the gtk status line after save/save as
444 - make the gerber file names be compatible with pre-HID versions
445 - split plated and unplated drill output
446 - fix various typos in menus and comments
447 - add a batch mode HID.
448 - fix drawing of box around text in the buffer
449 - various fixes and improvements to the trace optimizer and the
450   autorouter
451 - fix board flipping code
452 - fix rounding bug when creating list of drill sizes
453 - add support for > 8 copper layers
454 - avoid strict aliasing violations encountered with gcc4
455 - refactor code related to handling the filenames in the export
456   HID's
457 - fix layer group parsing code
458 - add the ability to user-configure mouse actions in the lesstif GUI.
459 - enable loaded netlists by default
460 - improve the positioning of the drill list in the postscript output
461 - various improvements to the configure script to improve robustness
462   and improve error messages when thing don't go well.
463 - add IPC style footprints for 01005 passives.
464 - added a Renumber() action which will renumber all reference designators
465   and produced an annotation file for backannotating to schematics.
466 - Draw via annulii on assembly drawings
467 - various other bug fixes and improvements.
469 ========================================================================
470 Release Notes for PCB snapshot 20060422
471 ========================================================================
472 - Several minor portability fixes for Solaris and the SunPRO compiler and
473   for Irix and the MIPSpro compiler.
475 - Added --psfade option for the postscript HID.
477 - Fixed a bug where the "load layout" and some other menu choices
478   didn't do anything.
480 - Added remaining actions to the actions reference section of the manual.
482 - Worked around X11 polluting the name space with some of the X header files.
484 - Fix route style "Save as default" bug.
486 - For the Gtk HID, add an alternate vertical window layout mode to
487   help on lower vertical resolution displays.
489 - Fix soldermask draw while TAB view from solder side.
491 - Change default PNG output scaling to be 100 dpi instead of fixing
492   the max dimension at 800 pixels.
494 - Added background image support for the GTK HID (lesstif one has it too).
496 - Fix missing window icons for the main GTK window and log window.
498 ========================================================================
499 Release Notes for PCB snapshot 20060414
500 ========================================================================
501 - This is the first snapshot of the new HID version of PCB.  HID, which
502   stands for Human Interface Device is the abstraction created by
503   DJ Delorie which seperates the core PCB code from the graphical user
504   interface.  In this release, two GUI HID's are supported, gtk and lesstif.
505   In addition, there are HID exporters for postscript and encapsulated
506   postscript, RS-274-X (gerber), bill of materials, centroid file, and
507   png/gif/jpeg.  This represents a major restructuring of the code and
508   many months of work.
510 - PCB's actions (the commands which drive the core of the program and
511   may be directly accessed by the user) now have the documentation in-line
512   in the code and the actions reference section of the manual is 
513   extracted from the in-line documentation.  The goal it to provide more
514   complete and accurate documentation.  As always the manual is still
515   a work in progress but it is getting more complete and up to date.
517 - Fixed a long standing segfault when saving connection data
519 - Fixed a DRC bug
521 - Fix some rounding issues when setting sizes.  Hopefully this will address
522   the issue with 23.99 mil drills and related problems.
524 - The html manual is now in one file instead of many files
526 - The lesstif HID now supports loading of background images to help
527   recover a layout which may exist in hardcopy form only.
529 ========================================================================
530 Release Notes for PCB snapshot 20060321
531 ========================================================================
532 - Add internal support for more than 8 layers.  By default PCB is still
533   compiled for 8 copper layers.
534 - Fixed several minor bugs in the GTK user interface including fixing
535   scrolling of the log window, fixed up some of the DRC reporting
536   and mm/mil units.
537 - Fixed several key bindings.
538 - Updated refcard.tex to reflect the current set of key bindings.
539 - Fixed some minor bugs which caused compilation problems on some
540   systems.
541 - Converted the QFN footprints to hi-res.
542 - Added documentation to the manual for the centroid file format and
543   the algorithm used for finding the centroid and rotation.
544 - Fixed a bug so that the initial layer named 'component' is actually
545   on the component side of the board and 'solder' is actually on the
546   solder side of the board.
547 - Fixed the pin order in the bourns trim pots (~bourns library)
548 - Added actions and a script to allow command line printing.
549 - Added IPC-7351 recommended footprints for 0201, 0402, etc passives.
550 - Fixed SME5 package.
551 - Fixed a bug which prevented disabling nets from the ratsnest
552 - Fixed a bug where clearances could be set 1 below the spacing
553 - Fixed clearline flag so that arcs also have this property.
554 - Speed up rtree searches and other autorouter speedups.
555 - Fixed a bug in computation of the closest polygon point.
556 - Use rtrees for polygon handling for speed improvements.
557 - Add a ChangePinName() action.
558 - Fix a bug which caused duplicate rats names when manually adding
559   rats lines.
560 - Added DRC checks for minimum drill diameter and minimum annular ring.
561 - Add a minimal glossary to the manual
562 - Fix the author name in the fab drawing
563 - Cause the crosshair to snap to pad ends instead of center for rat
564   drawing.
565 - Add "join" to SetFlag, ClrFlag and ChangeFlag.
566 - Added inline documentation for the pcb file syntax.  The manual now
567   is up to date and correctly documents the file format.  In addition
568   the inline documentation will make it much easier to maintain the
569   documentation.
570 - Remove some broken m4lib footprints
571 - Put the correct setting for the gschem footprint= attribute in []
572   in the library window for the m4 libraries.
574 ========================================================================
575 Release Notes for PCB snapshot 20050609
576 ========================================================================
578 - **** The GUI is now based on gtk2 instead of Xaw ****  This represents
579   a fairly major change.  You will now need gtk-2.4 or higher installed
580   along with any of its dependencies to build pcb.  On linux
581   distributions, it is probably the case that you already have this,
582   but see the README-GTK_PORT file for a note on gtk versions.
583   For *BSD, Solaris, and others, you may want to use NetBSD's pkgsrc
584   to help install gtk2 and its dependencies.
586 - Flags are stored symbolically in the .pcb file.  This is the start
587   of moving to support >8 layers.  Please note that >8 layer support
588   is not yet available in this snapshot.
590 - Fixes for gcc-4
592 - As part of the switch to gtk2, the user customizable menu feature has
593   been temporarily broken.  Hopefully this will be fixed by the next
594   snapshot.  In addition, the loading of background images has also been
595   temporarily broken.
597 ========================================================================
598 Release Notes for PCB snapshot 20050315
599 ========================================================================
601 - Several footprint library fixes including TO-220 parse errors and
602   incorrect drill holes on several componenets.
604 - Fixed a crashing bug in the pinout window.
606 - Allow the FAB author to be set via an Xresource to override what
607   PCB might have gotten from the gecos information.
609 - Added table of standard drill sizes to the manual.
611 - Fixed a crashing bug when trying to use arrow keys to adjust the scale
612   slider in the print dialog box.
614 ========================================================================
615 Release Notes for PCB snapshot 20050127
616 ========================================================================
618 - Fix drill size for PLCC sockets in ~geda library.  Fix drill size for
619   LED3 and LED5 footprints in ~geda library.
621 - Move the right-click popup menu to pcb-menu.res.
623 - Add DisperseElements() action for spreading out elements in an initial
624   layout.
626 - Fix fab drawing output for the case where a very small number of
627   drill sizes are used.
629 - Various documentation improvements.
631 - Remove many compiler warnings.
633 - Added metric output to the cursor display
635 - Fix <Key>. for toggling 45 degree mode.
637 - Crosshair snap snaps to center of pads and also to the mark of the
638   element.
640 - Protect all strcmp() calls with a check for a NULL pointer.  Fixes
641   various crashes.
643 - Fixed the mode buttons which were unresponsive in some versions of 
644   the X libraries.
646 - Element names may be edited over the element.
648 - Added --enable-efence for ElectricFence debugging.  Off by default
650 - Added --disable-rpath to avoid using rpath for the X libraries.
652 - Added vendor resource file support.  This allows lets you specify
653   a set of allowed drill sizes and drc rules for a particular vendor.
655 - Added -action command line option to allow executing an action on
656   startup.
658 - Date and time of compilation added to About dialog.
660 - Fix a bug where the soldermask relief on a new element is 100x smaller
661   than the default when "convert buffer to element" is used.
663 - Fix a name_tree corruption bug when changing an element name.
665 - Don't remove the formatted manual with a 'make clean' since they are
666   part of the distfile.  
668 - Let automake handle the html and pdf conversion.  This ends up using
669   texi2pdf for the pdf output which seems to do a better job than ps2pdf.
671 - Sort actions by modifier so that both Ctrl<Key>x and <Key>x work.
673 - Fix a SelectByName bug.
675 - Fix non-gcc compilation
677 - Command history added to :
679 - Fixed pinout window crash
681 - Allow Ctrl-drag to copy objects in arrow mode.
683 - Fixed a polygon clearance bug
685 - Fix an arc bounding box calculation error.
687 ========================================================================
688 Release Notes for PCB snapshot 20040903
689 ========================================================================
691 - enable -Wall when compiling with gcc.  Many compiler warnings have
692   been fixed.
694 - add a short man page which refers the user to the real documentation
696 - Added ExecuteFile(file) action which allows the execution of several
697   actions contained in a text file.
699 - Added -script <file> flag which specifies a file containing actions
700   to be executed upon startup.
702 - Various documentation improvements
704 - Protect some gcc extensions with tests for gcc.  This allows
705   compilation with the IRIX c compiler.
707 - Add support for a background image in the drawing area which can
708   help in importing a layout from a scanned image.
710 - Updated the ~geda library 150 and 300 mil width SOIC packages
711   to remove silk on pads and to more closely follow the IPC
712   recommendations
714 - Added support for menu accelerators.
716 - segfault when breaking apart an element with no element selected
717   bug fixed.
719 - autorouter improvements
721 - added more 400mil DIP packages to ~geda library
723 - fix a trace optimizer bug which produced a segfault
725 - other various bug fixes
728 ========================================================================
729 Release Notes for PCB snapshot 20040530
730 ========================================================================
731 This has been an exciting 3 months for PCB.  Many improvements have
732 been made in the program as well as additions and improvements to the
733 footprint library.  Thanks to everyone who has provided feedback,
734 patches, etc.
736 ----------------------
737 Additions/Improvements
738 ----------------------
739   - Expanded DRC checking
740   - "Realtime" DRC checking
741   - DRC settings are now stored in the board fle
742   - Centroid (X-Y) and bill of materials output
743   - Dynamic menus.  Users can now customize the menus via a
744     site-wide, per-user, or per-project menu resource file.
745   - Significant improvements to autorouting of congested designs.
746   - Autorouter can now use power planes.
747   - Improved appearance in autorouter output.
748   - Silk on pads/pins is clipped in RS-274-X output
749   - Ordering is preserved when writing output files so that diff
750     may be effectively used on pcb files.
751   - The autoplace feature now actually works
752   - Added ToggleVisibility action
753   - Most of the database is now kept in rtrees which avoids linear
754     searches.  This speeds up operation significantly.
755   - Added SetFlag, ClrFlag, ChangeFlag actions
757 ---------
758 Bug Fixes
759 ---------
760   - pin/pad bounding box calculation fixed.  Components can
761     now be placed closer to the edge of the board.
762   - miter trace optimization bug.
763   - Fix bug with pins which are enclosed by multiple polygons.
764   - Shorts to unnamed elements and pins are handled correctly.
765   - Various memory leaks fixed.
766   - Fixed some bugs with a really high zoom.
767   - Fixed default media selection in postscript print dialog
768   - Fix some DRC bugs with square pins.
770 ------------------
771 Footprint Library:
772 ------------------
773   - Added SOJ footprint family (~geda library)
774   - Added CTS series 742/3/4/5/6 resistor pack footprints (~cts library)
775   - Added PKG_CONNECTOR_DIL macro to let the HEADER*_1 footprints work
776     (~geda library)
777   - Correct the SDIP footprints (~geda library)
778   - Correct some Minicircuits footprints (~minicircuits library)
779   - Correct some panasonic footprints (~panasonic library)
780   - Change refdes silk size for sockets (~johnstech library)
781   - Increase soldermask relief on some mounting holes
782     (~johnstech library)
783   - Convert the COMMON_SMT_DIL_MIL and COMMON_SMT_DIL_MM macros
784     used by several other libraries to the hi-res format.
785   - Correct pin count on 100 pin QFP packages (100 not 72)
786     (~geda library)
787   - Correct pin count on HEADER60_2 (60 not 50) (~geda library)
789 ========================================================================
791 New Features for 2.0
793 (1) New library system. A directory tree is parsed and added to the library 
794 selector window. This directory is specified in the config.h file as 
795 PCBTREEDIR and should point to a directory where any pcb user that needs to 
796 create library elements has write privileges. The "-libtree X" switch will 
797 cause pcb to use directory X instead of the installed default for the new 
798 library directory. You should continue to be wary of the old library 
799 elements, many of them are not quite right. (Just check them carefully before 
800 fabing to be sure there are no surprises). My intent is to create a 
801 repository for new elements THAT PEOPLE HAVE FABRICATED SUCCESSFULLY in order 
802 to grow a reliable library.
804 (2) Element files can now contain layers (line, arcs, polygons), vias and 
805 elements. The new library system reads from element files (no need to learn 
806 M4). The expanded capability of element files allows you to put useful 
807 sub-circuits into the library. For example, a QFP package with a break-out 
808 via pattern can be stored as a library element. Be careful with this as the 
809 layers are saved simply by their layer number and lose any association with a 
810 group (e.g. whether it is the component, or solder-side layer).
812 (3) Improved fascilities for creating elements from drawn objects. Now you 
813 can put an element in the buffer, and break it into it's consitutent parts. 
814 Paste this to the layout, make changes, then put it back in the buffer to 
815 convert to an element. You can also save a buffer's contents to an element 
816 file (i.e. add it to the library). Of course element files are still just 
817 text files so you can edit them at will. Draw the element outline on the silk 
818 layer (lines and arcs, no polygons), use Vias to make pins or holes, and lines 
819 on the component and/or solder layers for SMD pads. Number the pins and pads 
820 with the name ("n" key) entry, then cut it all to the buffer and select 
821 "convert buffer to element". Saved elements always appear in the file in a 
822 component-side orientation (even if you save while viewing the solder side).
824 (4) Support for elements with surface-mount pads on both sides of the board. 
825 e.g. edge connectors. This also allows creation of elements with multiple
826 pins/pads having the same "number" string. This can be used, for example,
827 to create a DIP footprint that has a pad on top and bottom coincident
828 with each pin. This effectively makes the pins have elongated copper pads
829 on the top and bottom - something several home-made board makers have
830 requested.  If you do create an element with multiple pins having the
831 same number, and that number appears in the netlist, they MUST be connected
832 before the board is considered routed. See the "14DIP_oval_pad" example
833 in the "test" section of the library for an example.
835 (5) Support for the strokes library. Compiling with strokes enabled (see 
836 config.h) binds the middle button to recognize strokes for the user 
837 interface. Zoom in, Zoom out, choose the line, arrow, or via tools, rotate an 
838 object, etc. can be done with simple strokes. Check the source code 
839 (FinishStroke() in action.c) to see what the strokes are.
841 (6) Better fascilites for panning at high zoom: Shift-button3 down shows the 
842 whole layout - move the crosshair to where you want the display centered, 
843 then release the mouse button - the previous zoom level is restored, centered 
844 at the new location. You can do this while in the middle of drawing, moving, 
845 etc. You can also place the cursor in the panner area, and use the arrow keys 
846 on the keyboard to scroll half a window view per keypress. Of course you can 
847 still drag the screen with button1 with the panner tool (previously known
848 as no tool).
849 Auto-scrolling is also improved. If you want to use menus, buttons,
850 the panner, placing the pointer over them stops auto-scroll. If you
851 want to go to another window and not auto-scroll, pass the pointer
852 over one of those things before heading to the other window.
854 (7) Auto-router. The auto-router routes with the active line size, via size, 
855 and keep-away. It is a grid-less router, and will automatically avoid any 
856 existing traces, etc. that you've placed on the board. It uses all layers 
857 that are visible when invoked, so turn off any layers you don't want it to 
858 use. You can auto-route all rat lines, or selected rat lines. This was
859 written by C. Scott Ananian
861 (8) Fascilities to rip-up tracks and vias that were placed by the 
862 auto-router. You can rip-up all auto-routed tracks, or just those that are 
863 selected (and were auto-routed).
865 (9) Auto-placement code. It's broken. Don't use it.
867 (10) Many functions added to the menus that were previously accessible only 
868 through keys or typed commands. e.g. SetValue(Grid,1), DRC().
870 (11) You can turn on/off the requirement for unique element names. When 
871 unique names are required, they may be automatically generated when pasting. 
872 Turn on uniqueness for a single layout, turn off if placing several boards in 
873 a panel (or if you just want duplicate names). It's in the settings menu.
875 (12) Support for metric grids. Coordinates are still always integer mils,
876 but you can have the grid fall on a regular metric spacing to within
877 +/- 1 mil. Selectable in the "Screen" menu and also with the "SetValue(Grid, x)"
878 command; the value x is still in mils, but it's floating point now. Also
879 the concept of "absolute" grid has been eliminated - just align it where
880 you want.
882 (13) Support for viewing the soldermask. The Screen menu has a selection for
883 turning on/off the display of the solder mask. You can also change the
884 size of mask holes when the mask is displayed by using the
885 "ChangeClearSize(what, change)" function (k key). If the mask is not
886 displayed, this function changes polygon clearances as before. For example
887 you could elliminate all via soldermask holes by selecting everything
888 (make sure vias are turned on), then typing the command:
889 ":ChangeClearSize(SelectedVias, 0)" There is a special case for
890 vias to change the mask diameter equal to the via diameter, by using
891 +0 as the size change.
893 (14) Support for creation/addition of netlist by drawing rat lines.
894 Select "netlist" from the drawing layer, and use the line tool to
895 add nets. Undo removes the rat, but not the created net. To delete
896 a netlist entry, select the connection in the netlist window and
897 hit the backspace key. The "netlist" layer must be the active layer
898 to delete connections like this. This is NOT the recommended way
899 to create a netlist, but a lot of people asked for it.
901 (15) Support for snapping the crosshair to pins/pads even when they're not on
902 grid. Selectable in the "Settings" menu. Thanks to Borges for this
903 great idea.
905 (16) Doesn't draw negative lines and arcs in print output unless
906 necessary. It still does this for all pads though. Doesn't technically
907 matter, but there are a lot of bogus gerber viewers out there and
908 people that are easily confused by gerber files that completely meet
909 the specification.
911 (17) Added a "Lock" feature that lets you lock an object so it
912 can't be selected, moved, or modified. Very handy for making a
913 board-outline element (e.g. pc104 card) invisible to the Arrow
914 tool.
916 (18) lots of bug fixes (plus, no doubt, lots of newly introduced ones).
918 (19) a tool (in the tools folder) for converting to/from ncap files
919 for auto-routing with MUCS-PCB. I have not tried this myself. Written
920 By Luis Claudio G. Lopes
922 (20) a new build system based on the GNU automake and autoconf tools.
923 This should make compiling on different systems easier than with the
924 old imake based build system.
926 (21) A program for quickly generating QFP elements. Its invoked
927 from the old library (~generic/qfp menu, generic)
929 (22) Increased resolution.  The internal unit is now 0.01 mil
930 as opposed to 1.0 mil which was the previous unit.
932 Quick and dirty explanation of some as-yet undocumented features:
934 Netlist window: double-click on a net-name to enable/disable it. A "*" 
935 appears next to the name when it is disabled. Disabled means rats nests will 
936 ignore the net. Click on a connection to select it (and center it) in the 
937 layout window. "Finding" a connection starting from a pin or pad will
938 select it in the netlist window.
940 The "j" key controls whether a line (arc) clears (plow through) polygons or 
941 touches them. Newly created lines and arcs follow the setting in the 
942 "settings" menu. Put the cursor over the line or arc you want to change, then 
943 hit the "j" (j for join) key.
945 The "k" key controls the width of clearance around a line (arc) when it 
946 plows. "k" key increases clearance by 2, Shift-K decreases it by 2, also 
947 works for pins and vias piercing polygons. The initial value for new objects 
948 (but not element pins/pads which is in the element definition)
949 is controlled by the "keepaway" setting, changeable in the "sizes" menu.
951 When drawing lines, you can start a new anchor point without drawing from 
952 the previous point by either clicking button3, or Ctrl-button1. DON'T
953 USE BUTTON2 - that would be wrong, even if it sort of works.
955 The Arrow tool is for selecting/deselecting objects, and moving them. 
956 Shift-click to add to the existing selection. You can click-drag to draw 
957 boxes for box selection. If you click-drag on an already selected item, you 
958 will move the selection. If you click-drag on an un-selected item, you will 
959 move that item without selecting it. This last technique is the only way to 
960 move a point (e.g. end point of a line), and is also the only way to perform 
961 moves with rubber-banding (i.e. rubber-banding doesn't work with selections). 
962 Moving a selection actually cuts it to a special paste buffer, then pastes it 
963 at the new location. Always start a box selection by clicking in an empty 
964 region of the board. It may be desireable to turn off some visibility in 
965 order to simplify the box selection operation.  You can also lock
966 an object to make it invisible to the Arrow tool (so box selections can
967 begin over the object). If you don't configure for
968 strokes, the middle button is bound to the arrow tool.
970 To move an element or silk text to the opposite side of the board, use the 
971 "b" key (b for backside) to send it to the opposite side. You can also cut an 
972 object to a buffer, switch viewing sides (tab), then paste it. The buffer can 
973 be used this way to flip layout traces to the other side too, although if 
974 layer groups are used, the precise layer they appear on may not have the 
975 color you want, but the connectivity should not change.
978 Installation tip: BE SURE TO INSTALL THE NEW X11 RESOURCE FILE - run
979 make install to do this. If you just want to test without installing,
980 run the pcbtest.sh script in the src directory.