Subject: pkg/34443: [PATCH] cad/xcircuit: Upgrade: 3.3.0 -> 3.4.26
To: None <,,>
From: Shaun Amott <>
List: pkgsrc-bugs
Date: 09/01/2006 01:55:00
>Number:         34443
>Category:       pkg
>Synopsis:       [PATCH] cad/xcircuit: Upgrade: 3.3.0 -> 3.4.26
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Fri Sep 01 01:55:00 +0000 2006
>Originator:     Shaun Amott
>Release:        NetBSD 3.0.1
System: NetBSD 3.0.1
Architecture: i386
Machine: i386

- Upgrade xcircuit to 3.4.26
- Update MASTER_SITES and Homepage
- Remove from doc/TODO

Version 3.4 (August 2005 to present)
355  v3.4 rev 21	3/20/06
     Some changes to the configure script for OpenBSD support without

354  v3.4 rev 20	3/14/06
     Corrected an error which prevented edited library object names
     from being applied to the object name.  This resulted in confusion,
     because the library would show the modified name, while the
     object itself retained its original name.

353  v3.4 rev 19	3/14/06
     One more minor correction to fix the non-Tcl, non-Win32
     compile, which was temporarily broken by the Win32 code.

352  v3.4 rev 18	3/10/06
     A few minor corrections to the Win32 code:  proper handling of
     "Makefile.win32", and proper definition for line endcap types.

352  v3.4 rev 17	3/7/06
     Incorporated Michael Goffioul's Windows native graphics
     support into the source distribution.  Also: Fixed a warning
     message on number of parts that should apply only to library
     objects, not pages.

351  v3.4 rev 16	2/24/06
     Changed the meaning of CAD_HOME to point to "libdir", such
     that distributions can set it to something like /usr/share
     without causing trouble.  Changed CAD_HOME to CAD_ROOT to
     maintain backwards compatibility.

350  v3.4 rev 15	2/23/06
     Changed code to prevent a spurious "Error: end of file"
     message.  Also:  Corrected the once again because
     Tcl/Tk defines TCL_INCLUDE_SPEC but *not*, stupidly enough,

349  v3.4 rev 14	2/21/06
     Added the Shift-Button-1 bindings to duplicate Button-2
     functions as an alternative to using "xcircuit -2".
     Also:  Added a flag to line styles representing a
     "square end cap" to a stroke.

348  v3.4 rev 13	2/20/06
     Made a couple of changes to the configure script to check
     some extra locations for the Tk header files which seem
     to have become standard on RedHat.

347  v3.4 rev 12	2/13/06
     Corrected an error that can cause xcircuit to crash when
     a box is drawn.

346  v3.4 rev 11	1/8/06
     Corrected an error in which the quick screen intersection
     check fails to include pin and info labels in the bounding
     box, and so when only pin and info labels intersect the
     screen area, nothing is drawn.

345  v3.4 rev 10        11/16/05
     Split the distribution into stable (3.4) and development
     (3.5) branches.  Removed the ASG part of the code, since it
     is probably the most unstable part of the code.
     Also:  Removed the problem with automatic generation of pin
     labels on a symbol during a copy action in the schematic.
     Also:  Added doubly-protected backups to standard file writes.
     This renames the existing file to filename + tilde ("~") so
     that the file is not truncated if a crash happens during a
     normal file write.
     Also:  Added patch files by Zvezdan Petkovic for proper
     compilation on OpenBSD.

344  v3.4 rev 9         11/14/05
     Applied (partially) a patch from Larry Doolittle that fixes a
     pointer bug in the non-Tcl version, and allows compilation of
     the non-Tcl version on a 64-bit system.
     Also: Fixed the event mechanism to allow pages to be selected
     in the page directory (otherwise, pages cannot be swapped).
     Also: Fixed the Tcl "push" command so that "push selected" now
     works, and clicking the "push" toolbar button when an object
     is selected has the expected effect.
     Also: Fixed the Tcl "label justify" command so that changing
     vertical justification does not reset the horizontal justfication.
     Also: Fixed the Tcl-to-xcircuit string conversion so that plain
     text with spaces is handled as expected (thanks to Mark Martin
     for pointing out this problem).

343  v3.4 rev 8         11/10/05
     Changed an instance of "regsub" to make it backwardly compatible
     to Tcl version 8.3;  otherwise, xcircuit fails to start up
     properly when linked to Tcl/Tk 8.3.

342  v3.4 rev 7		10/28/05
     Corrected event handling of schematic/symbol association,
     which was allowing xcircuit to return to "normal" mode while
     on a library page, resulting in bizarre behavior, and preventing
     the schematic/symbol association from being made.  Thanks to
     James Vernon for pointing out the problem.

341  v3.4 rev 6		10/25/05
     Fixed bounding-box calculations on instance loads so that
     instanced values of expression parameters are handled correctly
     on file read-in.  Also, corrected "resolveparams" to remove
     cached expression results before writing a page to a file.
     Also: Added component unnumbering feature (as written, only
     for devices having the "idx" parameter).

340  v3.4 rev 5		10/21/05
     Added command option "label replace", menu items "Text->
     Increment" and "Text->Decrement", and key bindings "i" and
     "I" (respectively) to auto-increment (decrement) numerical
     values inside text labels.  As part of this, I also rewrote
     and completed the Tcl list-to-XCircuit string conversion
     Also: Fixed a bug reported by James Vernon due to accessing
     free'd memory, which appears to be fatal under Cygwin but
     not under Linux.

339  v3.4 rev 4		10/19/05
     Added command option "library filename" and the ability to
     save the first file from which a library page was loaded.
     Also: Added the "page load -replace" and the ability to
     load/save specific libraries by name.  Changed the "File"
     menu and the popup prompts to allow all of this to be done
     from the GUI interface.
     Also: Added more Cygwin handling to the Makefile process,
     and tested the Cygwin compile and install. 

338  v3.4 rev 3		10/6/05
     Some fixes to things broken between versions 3.3 and 3.4:
     Move "undo" stays on grid.  Items being moved during move
     and copy commands stay with the cursor through pans.
     Button-3 now does the proper thing for cancellations
     during move mode.

337  v3.4 rev 2		10/6/05
     Refined and expanded the hierarchical element handle
     notation to cover all commands accepting element handles.
     This will now work for commands such as "element type".
     Still, only "polygon points", "spline points", and
     "instance center" commands translate point positions back
     to the top level.

336  v3.4 rev 1		10/5/05
     Fixed an error with finishing path edit operations,
     added "internal units" type to the grid display types,
     and implemented a (preliminary) hierarchical specification
     for element handles that can be used with the "polygon
     points" command to refer point positions back to the
     top level.

335  v3.4 rev 0		10/3/05
     Substantially revised the interface and input mechanism,
     removing the remaining methods that were hard-coded to
     various mouse buttons.  Instead, I have implemented the
     button "Hold" mechanism in a general-purpose manner that
     also allows definitions of key hold bindings.  I removed
     many of the event modes, including all of the element
     creation modes available from the GUI tool buttons, as
     these are more obviously implemented by changing button
     bindings.  This allows the various modes to be switched
     on and off, and allows wire drawing mode to be just one
     of the modes rather than the default mode.  Adding "wire",
     "move", and "pan" modes as more-or-less obvious button
     binding variations.  Added ASCII85 and Flate encoding/
     decoding to the graphic read/write operations.  Added
     a "-2" option to the command-line invocation of xcircuit
     to set mouse button bindings for 2-button mice.

Version 3.3 (September 2004 to July 2005)
334  v3.3 rev 38        9/28/05
     Corrected multiple-button checking routine to look at
     the event state only, not the button, as the button
     entry is changed by some routines.  This was preventing
     the shift-button key bindings from working.

333  v3.3 rev 37        9/20/05
     Corrected SPICE output to generate a line break and
     continuation "+" character for wraparound lines.

332  v3.3 rev 36        9/16/05
     Fixed an error with netlist output in which parameters are
     not substituted if xcircuit is run in batch mode.

331  v3.3 rev 35        9/15/05
     Fixed parameter indirection---parameter string was not
     initialized on library read-in, causing a segfault.  Also,
     changed the behavior of ordered spice lines so that they
     will be placed after any subcircuits are written, to avoid
     nesting subcircuits.  A syntax "spice@" has been added for   
     lines that really should go in front of everything (except
     for the special title line #1).

330  v3.3 rev 34        9/14/05
     Implemented "label latex" in the Tcl version, which was
     missed in the move from Xt to Tcl, and because it is an
     obscure function, was not noticed for some time.  Thanks
     to Eric West for bringing it to my attention.  Also:
     Applied a patch by Joerg Wunsch that prevents a segfault
     when rotating a path element.

329  v3.3 rev 33        9/8/05
     Corrected an error in netlisting that would incorrectly
     identify empty parameter strings as the "idx" parameter.
     Also, added a "-nowindow" switch to the UNIX command-line
     invocation to allow xcircuit to be used as a filter (batch
     process) without creating/displaying an X11 window.

328  v3.3 rev 32        9/6/05
     Changed the handling of netlist writing from symbols, in
     particular to avoid crashing on encountering unexpected
     info label contents.  Also:  Added a "-replace" option to
     file loads, that causes any object in a file to be
     overridden by one in a library "master copy".  Also:  Revised
     the "library make" command to allow an arbitrary number of
     empty libraries to be created.

327  v3.3 rev 31        8/10/05
     Fixed a problem with the graphic image handling in which graphic
     images are saved to the output file if they exist, regardless of
     whether or not they show up in the output page.  Also fixed the
     PPM reader to handle whitespace and newlines in the header
     correctly, according to the PPM spec.
     Also:  Added revision information to the "welcome"
     message in addition to the major.minor version.
     Also:  Some changes to the Makefile to properly handle
     passing of linker flags in the shared vs. static compiles.

326  v3.3 rev 30	7/28/05
     Fixed a problem with the startup TCL code that causes XCircuit
     to fail to start if a parse error is found in the user's
     ~/.Xdefaults file (even a completely unrelated parse error).
     Thanks to Roland Roberts for the bug report (and, much earlier,
     Romano Giannetti, although at the time I administered to the
     symptoms, not the disease.

325  v3.3 rev 29	7/22/05
     And yet more auto-numbering revisions.  Ensure clearing of
     device indices prior to both netlist output and auto-numbering.
     Also, fixed parseinfo() to correctly handle the mode="" case.

324  v3.3 rev 28	7/21/05
     More fixes to auto-numbering code ($#!@&).  Appears to work
     now for various cases, although I am not satisfied that it
     covers all situations.  One part of the fix forces xcircuit
     to ignore all fixed component assignments when generating
     flattened netlists.  While this ensures that all component
     numbers are unique, the output is not what might be expected,
     especially if there is no hierarchy in the schematic.
     Probably the parsing for fixed device numbers should *not*
     be done by parseinfo() but should be handled separately,
     under the assumption that this handles a limited number of
     backwardly-compatible cases and that normally it should
     expect to find "idx" and "class" parameters for each component.

323  v3.3 rev 27	7/20/05
     Revamped the auto-numbering code (again!) to better handle
     the "class" and "idx" parameter method, and make auto-numbering
     independent of the netlist format (i.e., SPICE vs. pcb).
     Device (component) name ("class") was moved from the object
     structure to the Calllist structure (after all, if the class
     is parameterized, then an instance may have a different class
     from the object's default class), and this is generated directly
     after generating the Calllist structure, since it is independent
     of the netlist output format.

322  v3.3 rev 26	7/19/05
     Further corrections to revision 20 code.  Device classes are
     now checked and updated for non-pcb devices (e.g., mosfets)
     when doing autonumbering.  Also:  parameter setting works
     for multiple selections;  e.g., several transistors can be
     selected at once and have width or length changed simultaneously
     for all of them.  Thanks to Carsten Thomas for the bug report
     and feature request.

322  v3.3 rev 25	7/18/05
     Finally logged into SourceForge and incorporated some of the
     more recent patches found there.  Includes a patch to by Min Sik Kim, and a patch to fontfile.c by

321  v3.3 rev 24	7/17/05
     Updated keybindings with the new function "Graphic", which
     otherwise causes the help utility to crash.  Thanks to John
     Rigg for the bug report.

320  v3.3 rev 23	7/15/05
     Added file load and save methods for the "graphic" element,
     as well as undo/redo operations, a menu item for loading
     graphic elements, and all essential operations.

319  v3.3 rev 22	7/14/05
     Corrected broken file parsing from revision 21.  Image data
     is now read from "objectread" like everything else inside
     the Setup block.

318  v3.3 rev 21	7/13/05
     Fixed a bug introduced in revision 20.  Also, started adding
     the new basic element type "graphic", to handle inclusion and
     placement of arbitrary graphic images.  This will eventually
     replace the buggy and cumbersome "background postscript"
     rendering via ghostscript.

317  v3.3 rev 20	7/8/05
     Changed the component auto-numbering so that all component
     values are treated as base-36, to allow handling of non-numeric
     component numbers.  Also, the routine that determines the
     number to assign will return the smallest unused integer
     instead of (1 + (largest number found)) so that use of
     non-numeric values doesn't cause the auto-numbering algorithm
     to generate strangely large numbers.  Also:  The auto-numbering
     algorithm now looks at the parameter "idx" if it cannot find
     a "pcb"-style info-label.  This allows non-pcb parts like
     transistors in VLSI schematics to be auto-numbered.  This is
     really the preferred way to handle auto-numbering, and all
     library parts ought to be updated to contain the "idx" parameter.

316  v3.3 rev 19	6/28/05
     Resolved the issue with retaining the stack order of
     parts through a delete-undo cycle, so that all previous
     undo records point to the correct parts in the correct
     order.  This eliminates a lot of spurious error messages
     coming from the undo mechanism.
     Also: Resolved the issue with polygon/arc/spline/path
     rotations, where rotations cannot be undone exactly due
     to accumulating roundoff errors.  The solution is simply
     to treat the rotation as an edit for these element types.
     Also: Fixed an error with label deletion.  Labels that
     are edited out of existance were not handled properly,
     an egregious error that was somehow overlooked.
     Also:  Modified console.tcl script to withdraw the
     console window on a window manager "close" request,
     rather than exit the application.  This bolsters
     the end-user illusion that the console is a subsidiary
     window of the layout, rather than vice versa.

315  v3.3 rev 18	6/16/05
     Fixed an error reported by Benoit Bidoggia, in which
     an attempt to clean up redundant font changes triggers
     a crash becuase it has been passed the top-level instance
     instead of NULL (NULL is necessary because this function
     is called when reading an object definition, at which
     point there are no instances).

314  v3.3 rev 17	6/12/05
     Fixed another error that showed up in Uwe's schematic,
     which is that the "test_insideness" algorithm fails if
     the box is degenerate---which happens for labels that
     are parameters set to a null string.
313  v3.3 rev 16	6/10/05
     Corrected an error found by Uwe Zimmermann in which
     xcircuit calls free() on an unallocated space when 
     destroying an object containing an indirect parameter.
     Also:  Added some experimental code replacing the
     drawing functions with OpenGL.  This can be compiled
     in by passing "--with-opengl" to the "configure"
     script.  However, the code is currently unfinished.

312  v3.3 rev 15	5/31/05
     Added another feature to the change of revision 14:
     Info labels that have negative sequence numbers (e.g.,
     "spice-1:", "spice-2:", etc.) will be written after all
     subcircuit and component output, whereas the usual positive
     sequenced labels "spice1:", "spice2:", etc., will be written
     before subcircuit and component output.  Each sequenced line
     is followed by a return character in the output.  First and
     last line of the netlist output is hard-coded (e.g., circuit
     title and ".end" line in SPICE (see rev 5 comments)).

311  v3.3 rev 14	5/27/05
     Changed behavior of netlist generation to allow (finally!)
     info labels on a top-level schematic.  These labels are
     written verbatim into the output.  Probably needs checks
     to avoid attempting to process certain embedded escapes
     like pins. . .

310  v3.3 rev 13	4/08/05
     Fixed an error that missed recalulating the instance
     bounding box after a text rejustification.

309  v3.3 rev 12	3/29/05
     Changed behavior of the netlist connectivity highlight
     function in response to a suggestion by Long Yang that
     pin connection points should be hightlighted, the better
     to show places where a net does not attach to a pin.
     Also: Added a feature in response to a comment by John
     Barry that error messages disappear when netlists are
     saved if the netlist is not recreated.  This feature
     includes a checkbox in the Tcl wrapper that by default
     forces regeneration of the netlist on each netlist file
     write function.

     IN PROGRESS---Added "idx" to Pagedata; need to separate from the actual printed page number.
     This simplifies page re-ordering and allows schematic
     libraries to be "hidden" among the rest of the pages.
     xobjs.pages and will still refer to the
     index into pagelist.

308  v3.3 rev 11	3/12/05
     Fixed an error, pointed out by Long Yang and Svenn Bjerkem
     in which xcircuit crashes when descending into an object.
     This was due to out-of-bounds array addressing, and must
     have been in the code for some time, but only shows up
     on some compilers (Solaris?).
307  v3.3 rev 10	2/27/05
     Fixed an error in the flattened netlist output that has
     probably existed in most revisions of 3.3 to date,
     where net names are not correctly passed down from
     parent cell to child cell.  Thanks to Mark Chang for
     pointing out the error.
     Also:  Fixed a bug in the selection mechanism where
     the selection is not NULLed prior to return from the
     calling routine if no selections are found.
306  v3.3 rev 9		2/5/05
     More changes to the selection mechanism.  Selection
     mechanism sorts polygons (wires) according to
     distance of the nearest edit point.  Previous
     selection is always kept and compared against
     current selection.  "pick" is only advanced if the
     selections are the same.  Pointer position when
     selecting a polygon to edit is restored from the
     warped position after a button-3 cancel function.
     Also:  Added all edit functions to the "undo"
     mechanism, as well as label creation.

305  v3.3 rev 8		2/4/05
     Corrected several mistakes in the selection mechanism
     that left pending (unfinished) events on the stack.
     Also:  Corrected a problem from rev. 7 that did not
     register unselection events (key "x") with the undo

304  v3.3 rev 7		2/1/05
     Revamped the selection mechanism (finally) to get
     rid of the cumbersome "click to select or reject"
     method.  The new method picks one element, and
     cycles through objects so that a different object
     is selected on each button press, if several elements
     are found at the pointer position.  This method would
     be equally unwieldy save for a change in the way
     object instances are selected---the selection routine
     recursively searches for elements inside objects that
     are close to the pointer position (albeit with a wider
     capture range than on the top level).  This prevents
     selecting an object instance with lots of white space
     if the pointer is in the middle of the white space
     (such as a frame or border object).
     Also:  Corrected the "Make Matching Symbol" callback.
     Thanks to Mark Chang for pointing out the error.

303  v3.3 rev 6		1/4/05
     Made additions to the "pcbout.tcl" script to support
     SMD integrated circuits, and resistors and capacitors
     (both chip and axial).  "pkg" parameter added to the
     Resistor and Capacitor parts in the "analoglib2"

302  v3.3 rev 5		12/16/04
     Corrected a fatal error in library copies if no valid
     object is selected.  Corrected a compile error (C++-like
     syntax fails on many compilers).  Added option to print
     or not to print the ".end" statement at the end of a
     SPICE deck.

301  v3.3 rev 4		12/10/04
     Corrected an error that allows "temp label" pins to be
     assigned the same name for different nets.  The number
     following "int" or "ext" on temp labels is now changed
     to match the net number when referencing the label name,
     if it is found to be different.
     Also:  Corrected another bug that causes a crash when
     copying an edited parameter back to an object.  The
     data record for the PARAM_END structure was not zeroed.
     This was okay previously because the data record was

300  v3.3 rev 3		12/6/04
     Corrected a problem in which drawn subcircuits and
     subcircuits declared with an "X.." in the info label
     will share index numbers, by forcing SPICE output to
     generate a devname of "X" for each drawn subcircuit
     Also: Changed the behavior so that device numbering
     starts at zero, not one.  Otherwise, if a device is
     numbered zero on the drawing (e.g., by having the index
     number entered by hand), xcircuit will generate a spurious
     "duplicate part" warning.

299  v3.3 rev 2		12/3/04
     Fixed an error (apparently from 3.3 rev 0) that caused
     parameters to become hosed if changed (also causes program
     Also: Added handling of X11 button4 and button5 events for
     (potential) binding to mouse scroll wheel motion.

298  v3.3 rev 1		10/8/04
     Changed the behavior of the PCB netlist generator to be
     more intelligent about finding the bottom of the
     layout hierarchy.  Also, corrected the netlist generator
     where it allowed a global net to be merged into a local
297  v3.3 rev 0		9/28/04
     Replaced the "hspice" directory with Conrad Ziesler's
     "spiceparser".  The use of routine AddNTermModule() has
     broken the spice input for now, although once fixed, the
     results should be much improved.
     Also, changed the handling of expression parameters so
     that expression parameter results may be numeric, and
     evaluated results are saved in the PostScript output as
     instance values.  When traversing the hierarchy during
     redisplay, commands invoking a "selected" element will
     pick up the object instance being rendered.  The
     combination of these changes allows the implementation
     of several useful features such as counter-rotation and
     displaying the name of an object within the object.

Version 3.2 (January 2004 to September 2004)
296  v3.2 rev 27	9/17/04
     Quick fix to allow the non-Tcl code to compile;  the
     experimental "ngspice" code contains numerous Tcl references,
     and although it does not depend on Tcl in principle, it is
     easier just to disable the code for the non-Tcl compile.
     It will not be missed.
     Also:  Changed the startup method from the hacked-up
     redirection of $HOME to a standalone "wish"-like executable
     that sets up "wish" to read in the .xcircuitrc file as its
     startup script.

295  v3.2 rev 26	9/7/04
     Changes based on comments from Dale Grover for correct
     compilation/linking/installing under "Fink" on Mac OS-X

294  v3.2 rev 25	9/6/04
     Fixed the wrapper code to ignore Tk's standard binding for
     the Tab and Shift-Tab key events during label text input.
     Otherwise, the window loses focus, which is an annoyance.

293  v3.2 rev 24	8/25/04
     One major fix to the netlist code to insist that "updatenets"
     is never run on a symbol.  Otherwise, a circuit that has a
     symbol that is not used anywhere will generate an error when
     netlisting, resulting in no netlist.
     Also, many minor fixes/enhancements to the TCL command-line
     functions, mainly to support scripting.  There is now a
     script called "sue_xc.tcl" that supports the generation of
     schematics from ".sue" files (in particular, this is to
     allow xcircuit support for the IIT standard cell library;

292  v3.2 rev 23	8/18/04
     Rather important fix from back in revision 19, in which routine
     "pointtonet" is supposed to merge crossing wires if they cross
     on top of a subcell port.  This is the method used to connect
     crossing wires with the "dot" symbol, so it is rather important.

291  v3.2 rev 22	6/21/04
     Added capability to the parameter selection mechanism to handle
     Tcl-expression parameters of the form "lindex {list} <index>".
     Such expressions will generate a listbox-type popup window in
     which the user is prompted to select one of the choices in the
     list.  The parameter will be replaced by the same expression
     but with <index> changed to reflect the index position of the
     chosen parameter value.  The way to make such parameters in the
     first place is "parameter make expression <name> {lindex {list}
     <index>}".  To change the expression itself instead of selecting
     a choice from the list, use "parameter set" instead of the GUI
     interface.  Thanks to Paul Surgeon for suggesting this method.

289  v3.2 rev 21	5/58/04
     More quick fixes:  Makefile error installing .tcl and .lps files
     due to an error in;  library object import now checks
     library version and does not attempt to import libraries that may
     be missing a dependency list.  Distribution libraries updated to
     make sure all of them will work with the library import function.
     Tcl function "library <name> <options...>" changed to accept
     "<name>" when library name is "Library: <name>".  This makes more
     sense, as it allows one to do, for instance:
	"library load asg_spice"
	"library asg_spice save asg_spice_new"

288  v3.2 rev 20	5/26/04
     Quick fix to a bug pointed out by Petter Larsson, which must have
     been in the code for some time, which checks for names incompatible
     with the PostScript interpreter but then fails to make the change.
     Also, cleaned out some source code copies left over from bus
     representation implementation.

287  v3.2 rev 19	5/20/04
     Finally got the bus notation handling into enough of a working
     condition that I dare to post the distribution.  In addition to
     basic fixes, improvements include handling of buses and partial
     buses with the "connectivity" function, and in particular,
     handling of instance-specific labels throughout the netlist
     (previously was only applicable to the netlist output).  The
     instance-specific labels allow the new "tap" object to work.
     Added the tutorial file "" to the examples directory.

286  v3.2 rev 18	5/6/04
     Removed the requirement that the GUI must be in place prior
     to startup.  XCircuit can be embedded directly in another
     application with or without its own GUI.  Without the GUI,
     it is necessary to create (and map) a "simple" window
     (e.g., "simple .mytest.draw -bg white -width 700 -height 400"),
     and then set the Tcl array variable "XCOps(window)" to be the
     Tk pathname of this window.  This creates a window into which
     things can be drawn by Tcl command-line commands.  To enable
     button and key actions, it is necessary to do:

     bind .mywin.draw <ButtonPress> {xcircuit::standardaction %b down %s}
     bind .mywin.draw <ButtonRelease> {xcircuit::standardaction %b up %s}
     bind .mywin.draw <KeyPress> {xcircuit::standardaction %k key %s}
     bind .mywin.draw <Enter> {focus %W}
     from the Tcl command line.  It is also possible to rewrite the
     wrapper script so that the whole GUI is present but rooted in a
     location different from ".xcircuit".  In that case, set the
     variable "XCOps(top)" to the top-level window name before
     invoking xcircuit::start.  In either case, one must run "wish"
     first, then load "", create the appropriate Tk window
     or windows, set the appropriate XCOps() variable, then do

     Handling of bus notation is still unfinished in this (unreleased)
     version, and probably breaks the schematic capture altogether.
     This will be fixed prior to an actual distribution release.

285  v3.2 rev 17	4/14/04
     Major enhancement:  Handling of bus notation in netlists!
     Also, Prohibit parameters from shadowing PostScript reserved
     names and definitions in, as is done for object
     names.  Also, finally found and excised the bug that was
     preventing correct comparison between object definitions on
     read-in, which was introduced along with the parameter type-
     promotion code.  Fixed another bug which prevented
     parameterizing position.  And, fixed a bug which prevented
     disabling flip invariance on text from the menu in the TCL
     version.  Also:  made more convenient constructor/destructor
     functions in elements.c, for general purpose use; these are
     called from tclxcircuit.c.  Also:  Reimplemented "strdup"
     as "Tcl_Strdup" in the TCL version; otherwise, there are
     places where memory is allocated by strdup, bypassing TCL's
     memory allocation, but free'd by Tcl_Free().  Also: modified
     the library manager "library import" routine to load any
     library instances of an object in addition to the object

284  v3.2 rev 15	3/15/04
     Reinstated colors and other parameters as XDefaults-style options
     in the TCL version using the Tk_GetOption() command.  Changed
     autoconf so that the TCL version is compiled by default (unless
     not found, or explicitly disabled).  Initial work on bus
     notation parsing.
283  v3.2 rev 14	3/03/04
     Added a library manager (often requested) for handling large
     lists of parts.  Allows objects to be imported from libraries

282  v3.2 rev 13	3/03/04
     Changed the TCL scripts and shell startup file so that the
     README directions for a test execution prior to install actually
     work as advertised.  Also, finally found a way to force automake
     to compile the tcl version with just "make" and "make install",
     thus hopefully eliminating the greatest source of compile-time
     woes.  Re-implemented the .so file loading so that the reported
     error is the real root cause error, not "file not found".  Also:
     removed Imakefile and all references to it.  Also:  Added a
     menu item for the PCB layout generation.  This is not yet
     sourced by default.

281  v3.2 rev 12	3/01/04
     A couple of fixes to bugs reported by Brek Miller.  1) Library
     copy did not copy parameters correctly (missed both the "key"
     and "which" entries), and 2) The object comparison mechanism
     failed to correctly compare objects with parameters due to a
     typo in the code.

280  v3.2 rev 11	2/27/04
     Some changes to command functions and netlist output.  Added
     file lib/tcl/pcbout.tcl, a script that converts an xcircuit
     schematic into a preliminary PCB layout.  This is very spare
     at the moment, to say the least; for instance, it only
     supports 7400-series devices.  But it's mostly proof-of-

279  v3.2 rev 10	2/26/04
     Some Makefile/configure changes, esp. for systems like Debian
     that do not find the Tcl/Tk include files.  Also, rearranged
     the menus so that "linewidth" commands (global and wire line-
     width) are more obviously placed ("wire linewidth" duplicates
     the "element border" entry).  Thanks to Forrest Cook for this
     suggestion.  Also, rewrote the library load command in
     xcircuit.tcl so that it prints the actual root cause error
     instead of complaining about "file not found".  Also, rewrote
     and extended the "help" window in Tcl, making it entirely
     script-driven from Tcl, and adding help text for each function.
     This required adding Tcl command "bindkey" variant with no
     arguments, which returns a list of all functions which can be
     bound, and "bindkey -func <function>", which definitively
     asserts that the argument is a function, not a key (because,
     e.g., "Delete" is both a key name and a function).  Also,
     made XCF_Prompt (key "%") execute xcircuit::raiseconsole in
     the TCL version (previously undefined in TCL).

278  v3.2 rev 9		2/20/04
     Greatly expanded the undo mechanism, which now covers most of
     the major xcircuit functions.  This is definitely "beta test"
     code.  Also, renamed a number of functions and definitions to
     be clear about the difference between an element and an
     object (this confusion was left over from the really early
     days of the program).

277  v3.2 rev 8		2/11/04
     Improved the ghostscript rendering mechanism so that it can
     handle (non-encapsulated) pages output from ghostview (which
     includes some global state-setting commands).  Also, greatly
     improved the rendering by backgrounding the process.  Xcircuit
     draws a blank background and continues until ghostscript
     reports that the page is finished, at which point the page
     gets redrawn with the background.

276  v3.2 rev 7		2/6/04
     Some fixes to the ASG and hspice routines;  automake now checks
     for g++-3 <stl> vs. the older <stl.h> header file and adjusts
     accordingly.  The hspice parser no longer produces files
     netlist.sp and netlist-flat.sp.  Compilation of ASG is now
     disabled by default (and will be until it's stable. . .), and
     requires "configure --enable-asg" to enable the module.

275  v3.2 rev 6		2/5/04
     Added the ASG and hspice parser modules back in, with additions
     to the master Makefile and configure script to support compiling
     both modules into the xcircuit Tcl shared object library
274  v3.2 rev 5		1/29/04
     There was a 3.2 previously for the ASG implementation.  This is
     being done again from scratch, but I'm continuing the revision
     numbers where I left off, at 5.  Prior to adding ASG back in,
     version 3.2 is in the process of implementing the "comprehensive
     undo" function by creating the framework for running undo/redo
     events and recasting the "delete" function into this framework.
     More to be added in coming revisions.

Version 3.1 (January 2003 to January 2004)
273  v3.1 rev 38	1/28/04
     Removed #ifdef SCHEMA from everything.  This should have been
     done long ago. . . Also, removed %%PageBoundingBox from the
     output for encapsulated PostScript files, as this appears to
     screw up output when including the drawing in a document, such
     as a LaTeX file.  Changed the behavior of the output dialog box
     such that the page label is checked before writing, and the page
     label is set to the filename if the label is still "Page #"
     at the time the label is set.  Fixed the behavior of selecting
     fill and border styles, especially a critical error with fill
     styles that would allow polygons to acquire an invalid state,
     causing netlist problems and/or unmatching PostScript output.
     Changed the selection behavior such that elements are not
     unselected after border/fill/color changes.  Fixed the behavior
     of network connectivity highlighting to work with multi-page
     schematics.  Changed some event handling to let most button-
     release events act on the mouse position on the previous
     button press (this works for drawing wires and editing polygons,
     but not for copying elements).  Added "%N" escape to the
     tag callback mechanism to allow all arguments to be passed to
     the callback procedure as a list.  Fixed marking of "Closed"
     checkbox in the Tcl "Border" menu.

272  v3.1 rev 37	1/23/04
     Preparing for XCircuit 3.2 (ASG).
     Revised some of the code structure of netlist.c, added routines
     NameToPosition(), from the ASG code (xcircuit-3.2), and
     PortToPosition(), which is a variant thereof.  Added the routine
     ratsnest(), called by the command "netlist ratsnest" in the
     Tcl console, which demonstrates some of the features required
     for true ASG.  Also:  removes deleted items from the netlist
     piecemeal, so that an ASG system can operate on an invalidated
     netlist without encountering dereferenced pointers, or elements
     which are not on the page they claim to be on.
     Also:  Fixed another bug similar to that in #271 where no space
     was printed after the closing "}" in multipart strings appearing
     in parameters, which equally bad results.

271  v3.1 rev 36	1/21/04
     Added support for schematics spread over multiple pages.  The
     method is that all top-level pages that have the same page
     label (object name) will be considered part of the same
     schematic.  One of the pages is considered the "master", or
     "primary" page, and keeps the netlist/portlist/calllist for
     all the pages.  The other pages are the "slave" or "secondary"
     pages, and refer to the master page for netlist information.
     Also:  Fixed a couple of bugs resulting from messing with
     the parameter formats, namely 1) put back the check for
     equal "which" value in varpcheck and varfcheck, and 2) added
     a space after printing a null-string "()" parameter value.

270  v3.1 rev 35	1/16/04
     Modified and completed support for expressions in parameters.
     In the TCL version, this supports all TCL expressions.  In the
     non-TCL version, it allows simple character strings to be used
     in parameters.  The expressions are not translated into
     PostScript; the PostScript output records the expression, which
     is unused, and the last evaluated result, which is taken to be
     the parameter value.  Cleaned up more code for numeric and
     indirect parameters, and added TCL options "-verbatim" and
     "-indirect" to the "parameter" command to facilitate handling
     indirect and expression parameters.

269  v3.1 rev 34	1/9/04
     Cleaned up and finished most of the stuff having to do with
     numeric parameters, parameters promoted from numeric to string
     types, parameters on a top-level page, and indirectly-referenced
     parameters.  Also:  Tcl variables moved into a single array.
     Also:  Some support for arithmetic expressions in parameters.
     Very rudimentary at present.

268  v3.1 rev 33	12/16/03
     Fixed the text justification routine in TCL ("label justify ...").
     Thanks to Petter Larsson for the bug report.  Fixed two problems
     with "page clear"---one reported by Brek Miller, showing that
     the free_single() routine was removing parameters from the
     referenced object, not the instance, and one reported by Joel
     Kuusk, where the Tcl "clear page" command allows clearing a page
     while editing an object instance in the hierarchy of that page,
     causing an immediate crash.  Finally, corrected prototypes.h
     for routines setjustbit() and setpinjustbit() for the non-Tcl
     compile, left in an improper state in revision 32.  Thanks to
     Dave Armbruster for this bug report.

267  v3.1 rev 32	12/10/03
     Fixes to the linewidth/border width changing from the menu in the
     TCL version, as pointed out by Rob Olsen.  Also, on suggestion from
     Makram Mansour, added LaTeX label handling.
266  v3.1 rev 31	12/08/03
     Three fixes from bug reports by Bliss Carkhuff: "page save" returns
     TCL_OK rather than an undefined value, parameter entry requires
     exact match to keywords to get text escapes such as "underline", and
     substring parameter creation corrected for creating parameters in
     the middle of a label.  Page save error also pointed out by Mark
     Martin, and Rob Olsen who additionally noted the additional error
     in linewidth selection (which has also been fixed).

265  v3.1 rev 30	12/01/03
     Made another change to the output such that all objects used on
     all pages are output first, inside a PostScript DSC block
     "DocumentSetup", followed by all the pages.  This modification
     allows viewers like ghostview to figure out that these objects
     may be used by any page, and prevents errors that occur when
     skipping pages forwards or backwards in the viewer.

264  v3.1 rev 29	11/26/03
     In response to Romano Giannetti, fixed the bounding box
     routines so that EPS files are handled the way they used to be.
     The only thing required was to set the overall bounding box to
     remove the 1" margins; the page bounding boxes remain the same,
     and ghostscript, ghostview, and EPS insertions into LaTeX
     documents all appear to be handled correctly.  Also, added the
     "override" commands to the TCL interface, although to match the
     rest of the TCL syntax, these have been changed to "library
     override", "loadfont override", etc.

263  v3.1 rev 28	11/19/03
     Changed the way XCircuit handles embedded bounding boxes
     and does page scaling and translation in the output.
     Removed the "offsets" comment line from the output and
     changed it to a PostScript translation, which means that
     all the positional values in the PostScript output on a
     top-level page are all in xcircuit internal units, without
     offset, and are therefore invariant with scale, page size,
     etc.  When an embedded bounding box is present, xcircuit
     translates the output such that the bounding box is centered
     on the page.  If "auto-scale" is selected, then the output
     is scaled such that the bounding box fits centered on the
     page with 1" margins minimum.

262  v3.1 rev 27	11/16/03
     Extended the parameter method to include parameters passed
     inherited by an object instance from its parent.  Fixed the
     "make object" method such that parameters are copied into the
     new object (as yet, the new object does not correctly inherit
     the parameter from the parent).  Added preliminary support
     for promoting numerical parameters to strings.

261  v3.1 rev 26	11/11/03
     More fixes and extensions related to parameter key:value
     pairs.  Added a popup window in the Tcl version for
     editing substring parameters of an object instance,
     including functions for formatting ASCII strings from
     string parameters and vice versa.  Added a function
     for the "Add New Color" button in the Tcl version, which
     was missing.  Command syntax "color <idx>" changed to
     "color set <idx>" and option "color add <name>" added.

260  v3.1 rev 25	11/6/02
     Changed parameter handling to a key:value pair model.
     Revised built-in libraries to take advantage of this
     method, using keys like "value", "units", "length",
     "width", etc.  Expanded and revised the "parameter"
     command in Tcl-based XCircuit to provide the key:value
     information, as well as providing parameter information
     down one level in the hierarchy for an object instance
     (using the key "-forward" as the last argument to the
     "parameter" command).  Added command option "type" to
     list parameter types, or to list parameters by type.
     Finished code for removing parameters.

259  v3.1 rev 24	9/19/03
     Added feature (macro "V" key) to make a library virtual
     instance from an object selected on a page.  This allows
     users to make temporary copies of parameterized (or
     rotated, or flipped) objects for quick retrieval.
     Several corrections:  Xcircuit now checks for symbols
     associated with schematics and saves them, even if the
     symbols are not used in any schematic.  This prevents
     associations from being lost after a save/quit/load
     cycle in an unfinished schematic.  Also:  Snap and
     polygon edit will invalidate the netlist.  Also:  "Make
     matching symbol" reports an error if the schematic page
     has an invalid name.

258  v3.1 rev 23	9/15/03
     Corrected revision 22, which duplicated the NameToObject
     routine by mistake.  Also added TCL wrapper key bindings
     for function keys "Page Up" and "Page Down" to increment
     or decrement the page number (helps with large numbers of
     schematic pages).

257  v3.1 rev 22	9/10/03
     Moved routine NameToObject from tclxcircuit.c to schema.c,
     since it is used by the non-Tcl based code and prevents
     compiling the non-Tcl version.  Thanks to Swee-Ann Teo for
     pointing out the error.

256  v3.1 rev 21	9/5/03
     Fixed a problem with the Tcl calls to the zoom functions,
     which were passing a NULL event structure.  Thanks to Ed
     Casas for pointing out this error.  Also:  Fixed the file for compilation under Cygwin, which was
     presented the wrong name for menudep.o.  Thanks to Carlos
     Davila for pointing out this error.

255  v3.1 rev 20	9/4/03
     Changed key and button handling in Tcl to work using the Tk
     "bind" function, with the usual behavior being bound to the
     "standardaction" command.  Standard actions can be rebound
     using the xcircuit "bindkey" command, or keys can be bound
     to Tcl procedures using the Tk "bind" command.

254  v3.1 rev 19	8/12/03
     Required reconfiguring without Tcl once to generate the
     "" in the Xw directory;  otherwise, automake 1.7
     becomes a requirement.

253  v3.1 rev 18	8/6/03
     A fix to the output, correcting the page numbering in the
     PostScript page headers.  The incorrect numbering can cause
     some printers to lock up. . .

252  v3.1 rev 17	7/14/03
     Thanks to Ted Roth for fixing my rather too-hasty fix of
     revision 16.  Also:  Some fixes to the autoconf script (also
     from Ted Roth), and autoconf script updated to work with the
     latest versions of autoconf/automake/aclocal.

251  v3.1 rev 16	7/08/03
     Fix to "x" and "y" output for .sim format---thanks to Kath Shih
     for pointing out this error.

250  v3.1 rev 14	5/05/03
     Incorporated a patch from Max Horn to remove all references
     to "malloc.h" from the headers, and fix the configuration file
     for Mac OS-X compilation.

249  v3.1 rev 13	4/29/03
     Fixed a problem due to automatic search for schematics which
     prevents a single page from being saved.  The output window
     now shows both "schematics" and "subcircuits" with checkboxes;
     pushing "schematics" unlinks top-level schematics, and pushing
     "subcircuits" can prevent subcircuits from being saved along
     with the file.  In either case, the filename is blanked out
     so the user will not mistakenly overwrite the original file
     with a truncated one.  In conjunction with this method, the
     Tcl "page links" command has been extended to include the
     options "independent", "dependent", "total", "pagedependent",
     and "all".  Eventually, I expect to add an additional option
     "list" to list page names instead of simply enumerating them.
     Thanks to Mark Jones for pointing out this error.

248  v3.1 rev 12	4/14/03
     Fixed the PostScript background rendering, which was only
     broken because of a broken implementation of ghostscript
     (version 6.5).

247  v3.1 rev 10	3/21/03
     Replaced TkCon with the version used with magic, fixing a
     minor issue with handling backslash escape sequences.

246  v3.1 rev 9		2/26/03
     Fixed the install for revision 8, which failed to run the
     xcircuit.tcl script through the m4 preprocessor.  Also, on
     recommendation of Mark Jones, added a warning message when
     pins exist on a symbol which do not exist in the associated

245  v3.1 rev 8		2/23/03
     Resolved numerous issues with cross-application methods.
     Overloaded the "label" Tcl procedure to accept both xcircuit
     and Tcl syntax, and removed the "bgerror.tcl" file.
     Added procedures for calling netgen, IRSIM, and magic while
     running XCircuit.

244  v3.1 rev 5		2/19/03
     Fixed (for the third time(!)) occurrences of "getline" which
     should have been changed to "setline".  Fixed the toolbar
     widget so that it recomputes its width when the window size
     changes, and so that it does not squeeze the height of the
     bottom message bar.

243  v3.1 rev 4		2/12/03
     Added handling of "va_copy" to the configuration script for
     systems which do not define it.  Also:  Added "%x" and "%y"
     escapes to the info label syntax, for writing positional
     information to the output (helps LVS programs like "netgen"
     trace back errors to the schematic).  Split the "Manifest"
     file into "CHANGES" and "TODO" and started adding revision
     numbers to the change log entries to match the revision
     number on the website download page.

242  v3.1 rev 3		2/10/03
     Added Tcl handling of the string parameter insertion via a
     popup prompt.

241  v3.1 rev 2		2/04/03
     Traced the "No per display information" error to use of an Xt
     function (XtDispatchEvent()); replaced with Tk_HandleEvent().

240  v3.1 rev 1		2/03/03
     Fixed numerous problems with the Tcl-based version, and added
     several missing functions (such as the select filter, and
     handling keystroke <return> in the filelist widget).

239  v3.1 rev 0		1/24/03
     Finished preliminary version of Tcl-based xcircuit.  Relocated
     runtime files back to (default) "/usr/local/lib" (instead of
     autoconf's default $datadir "/usr/local/share").  Threw in
     tkcon.tcl for compatibility with magic/irsim/netgen and recast
     fprintf() as macro Fprintf(), which calls "tcl_printf()" in
     the Tcl version and "fprintf()" in the other versions.  Added
     command-line function "-exec <file>" to the Tcl version for
     running in batch mode (or alternately, just to bypass the
     default startup file).



-----Begin xcircuit-3.4.26.diff-----
Index: doc/TODO
RCS file: /cvsroot/pkgsrc/doc/TODO,v
retrieving revision 1.5389
diff -u -r1.5389 TODO
--- doc/TODO	30 Aug 2006 00:21:07 -0000	1.5389
+++ doc/TODO	1 Sep 2006 01:39:25 -0000
@@ -1184,7 +1183,6 @@
 	o xalan-c-1.9.0 [requires xerces-c-2.6.0]
 	o xbindkeys-1.7.2
 	o xblast-2.10.4
-	o xcircuit-3.4.0
 	o xdaliclock-2.23
 	o xdelta-3.0e
 	o xdesktopwaves-1.3
Index: cad/xcircuit/Makefile
RCS file: /cvsroot/pkgsrc/cad/xcircuit/Makefile,v
retrieving revision 1.27
diff -u -r1.27 Makefile
--- cad/xcircuit/Makefile	4 Mar 2006 21:29:02 -0000	1.27
+++ cad/xcircuit/Makefile	1 Sep 2006 01:39:25 -0000
@@ -1,35 +1,45 @@
 # $NetBSD: Makefile,v 1.27 2006/03/04 21:29:02 jlam Exp $
-DISTNAME=	xcircuit-3.3.0
+DISTNAME=	xcircuit-3.4.26
 CATEGORIES=	cad graphics
 COMMENT=	Drawing program for X11 (especially for circuits)
 USE_TOOLS+=	gs:run
+.include "../../lang/tcl/Makefile.version"
+.include "../../x11/tk/Makefile.version"
+LDFLAGS+= 	-ltcl${TCL_VERSION:C/\.[^\.]*$//:C/\.//g}
+LDFLAGS+=	-ltk${TK_VERSION:C/\.[^\.]*$//:C/\.//g}
-INSTALL_TARGET=	install-tcl
+INSTALL_TARGET= install-tcl
-	${RM} -fr ${WRKSRC}/examples/CVS
 	${MV} -f ${WRKSRC}/examples/.xcircuitrc ${WRKSRC}/examples/xcircuitrc
 	${TOUCH} ${WRKSRC}/menudep.h
-	${INSTALL_DATA_DIR} ${PREFIX}/share/examples/xcircuit/
-	${INSTALL_DATA} ${WRKSRC}/examples/* ${PREFIX}/share/examples/xcircuit/
+	${INSTALL_DATA_DIR} ${PREFIX}/share/examples/xcircuit
+	${INSTALL_DATA} ${WRKSRC}/examples/*.* ${PREFIX}/share/examples/xcircuit/
+	${INSTALL_DATA} ${WRKSRC}/examples/xcircuitrc ${PREFIX}/share/examples/xcircuit/
 .include "../../graphics/xpm/"
 .include "../../lang/tcl/"
Index: cad/xcircuit/PLIST
RCS file: /cvsroot/pkgsrc/cad/xcircuit/PLIST,v
retrieving revision 1.4
diff -u -r1.4 PLIST
--- cad/xcircuit/PLIST	19 Nov 2004 13:24:11 -0000	1.4
+++ cad/xcircuit/PLIST	1 Sep 2006 01:39:26 -0000
@@ -1,97 +1,141 @@
 @comment $NetBSD: PLIST,v 1.4 2004/11/19 13:24:11 adam Exp $
@@ -104,17 +148,16 @@
 @dirrm share/examples/xcircuit
-@dirrm lib/xcircuit-3.3/pixmaps
-@dirrm lib/xcircuit-3.3/fonts
-@dirrm lib/xcircuit-3.3/app-defaults
-@dirrm lib/xcircuit-3.3
+@dirrm lib/xcircuit-3.4/app-defaults
+@dirrm lib/xcircuit-3.4/pixmaps
+@dirrm lib/xcircuit-3.4/fonts
+@dirrm lib/xcircuit-3.4
Index: cad/xcircuit/distinfo
RCS file: /cvsroot/pkgsrc/cad/xcircuit/distinfo,v
retrieving revision 1.9
diff -u -r1.9 distinfo
--- cad/xcircuit/distinfo	26 Jun 2006 15:24:34 -0000	1.9
+++ cad/xcircuit/distinfo	1 Sep 2006 01:39:26 -0000
@@ -1,8 +1,8 @@
 $NetBSD: distinfo,v 1.9 2006/06/26 15:24:34 joerg Exp $
-SHA1 (xcircuit-3.3.0.tgz) = ec3c0995fd4f8755a50d39e278ca0ab293705b38
-RMD160 (xcircuit-3.3.0.tgz) = 2f3621b5201ce4597a34a300a7111349825e3045
-Size (xcircuit-3.3.0.tgz) = 1308602 bytes
-SHA1 (patch-aa) = 18d6eb6a04e813c9923025de173d2019b0411a77
-SHA1 (patch-ab) = d1364d1b79f4060e5b8f7078490b7eb6bafdf26a
-SHA1 (patch-ac) = 1f84054174f790bd32d14eafa6a91444737795ff
+SHA1 (xcircuit-3.4.26.tgz) = cf3eda5c788376a09cca6a35ee120a3f12a08c33
+RMD160 (xcircuit-3.4.26.tgz) = fd9beb37f16670505ee9aadc394d6e722947d645
+Size (xcircuit-3.4.26.tgz) = 1054942 bytes
+SHA1 (patch-aa) = 073bfd799997329fc4eccd2ecea5a932c233ad44
+SHA1 (patch-ab) = d790c8fc760098c219b89d4c345c7276c603fb9c
+SHA1 (patch-ac) = 5921bc94c2288f6d1811fe5a72f136a0ef0f25e6
Index: cad/xcircuit/patches/patch-aa
RCS file: /cvsroot/pkgsrc/cad/xcircuit/patches/patch-aa,v
retrieving revision 1.7
diff -u -r1.7 patch-aa
--- cad/xcircuit/patches/patch-aa	26 Jun 2006 15:24:34 -0000	1.7
+++ cad/xcircuit/patches/patch-aa	1 Sep 2006 01:39:26 -0000
@@ -1,25 +1,17 @@
 $NetBSD: patch-aa,v 1.7 2006/06/26 15:24:34 joerg Exp $
----	2004-10-01 04:24:09.000000000 +0000
-@@ -469,6 +469,7 @@ fi
- if test "x$xc_with_tcl" != "x" ; then
-   . $tcl_config_sh
-   . $tk_config_sh
-+  LIBS="${LIBS} ${TCL_LIBS}"
-   if test "$TCL_VERSION" = "7.6" -a "$TK_VERSION" = "4.2" ; then
-     :
-@@ -544,7 +545,7 @@ fi
+---	2006-04-10 22:51:35.000000000 +0100
++++	2006-08-31 01:18:15.000000000 +0100
+@@ -633,7 +633,7 @@
  if test "x$xc_with_tcl" != "x" ; then
    case $target in
--    *-sunos4*|*-*-netbsd|NetBSD-*|FreeBSD-*|OpenBSD-*)
+-    *-sunos4*|*-*-netbsd|NetBSD-*|FreeBSD-*|*-*-openbsd*|OpenBSD-*)
 +    *-sunos4*|*-*-netbsd|*-*-netbsdelf|NetBSD-*|FreeBSD-*|OpenBSD-*|*-*-dragonfly*)
-@@ -886,13 +887,13 @@ if test "x$xc_with_tcl" != "x" ; then
+@@ -1013,12 +1013,12 @@
@@ -30,10 +22,8 @@
        if test "$test_ok" = yes; then
 -        SHLIB_CFLAGS="-fpic"
 -        SHLIB_LD="ld"
--        LDDL_FLAGS="-Bshareable -x ${LIB_SPEC}"
 +        SHLIB_CFLAGS="-fPIC"
 +        SHLIB_LD=$CC
-+        LDDL_FLAGS="-shared"
+         LDDL_FLAGS="-shared"
Index: cad/xcircuit/patches/patch-ab
RCS file: /cvsroot/pkgsrc/cad/xcircuit/patches/patch-ab,v
retrieving revision 1.7
diff -u -r1.7 patch-ab
--- cad/xcircuit/patches/patch-ab	26 Jun 2006 15:24:34 -0000	1.7
+++ cad/xcircuit/patches/patch-ab	1 Sep 2006 01:39:26 -0000
@@ -1,25 +1,17 @@
 $NetBSD: patch-ab,v 1.7 2006/06/26 15:24:34 joerg Exp $
---- configure.orig	2004-10-01 04:25:07.000000000 +0000
-+++ configure
-@@ -7629,6 +7629,7 @@ fi
- if test "x$xc_with_tcl" != "x" ; then
-   . $tcl_config_sh
-   . $tk_config_sh
-+  LIBS="${LIBS} ${TCL_LIBS}"
-   if test "$TCL_VERSION" = "7.6" -a "$TK_VERSION" = "4.2" ; then
-     :
-@@ -7704,7 +7705,7 @@ fi
+--- configure.orig	2006-06-09 18:54:33.000000000 +0100
++++ configure	2006-08-31 01:20:41.000000000 +0100
+@@ -8794,7 +8794,7 @@
  if test "x$xc_with_tcl" != "x" ; then
    case $target in
--    *-sunos4*|*-*-netbsd|NetBSD-*|FreeBSD-*|OpenBSD-*)
+-    *-sunos4*|*-*-netbsd|NetBSD-*|FreeBSD-*|*-*-openbsd*|OpenBSD-*)
 +    *-sunos4*|*-*-netbsd|*-*-netbsdelf|NetBSD-*|FreeBSD-*|OpenBSD-*|*-*-dragonfly*)
-@@ -8105,7 +8106,7 @@ fi
+@@ -9246,7 +9246,7 @@
@@ -28,16 +20,14 @@
        # Not available on all versions:  check for include file.
        if test "${ac_cv_header_dlfcn_h+set}" = set; then
    echo "$as_me:$LINENO: checking for dlfcn.h" >&5
-@@ -8244,9 +8245,9 @@ fi
+@@ -9393,8 +9393,8 @@
        if test "$test_ok" = yes; then
 -        SHLIB_CFLAGS="-fpic"
 -        SHLIB_LD="ld"
--        LDDL_FLAGS="-Bshareable -x ${LIB_SPEC}"
 +        SHLIB_CFLAGS="-fPIC"
 +        SHLIB_LD=$CC
-+        LDDL_FLAGS="-shared"
+         LDDL_FLAGS="-shared"
Index: cad/xcircuit/patches/patch-ac
RCS file: /cvsroot/pkgsrc/cad/xcircuit/patches/patch-ac,v
retrieving revision 1.2
diff -u -r1.2 patch-ac
--- cad/xcircuit/patches/patch-ac	19 Nov 2004 13:24:11 -0000	1.2
+++ cad/xcircuit/patches/patch-ac	1 Sep 2006 01:39:26 -0000
@@ -1,8 +1,8 @@
 $NetBSD: patch-ac,v 1.2 2004/11/19 13:24:11 adam Exp $
----	2004-10-01 04:25:06.000000000 +0000
-@@ -51,7 +51,7 @@ AUTOMAKE = @AUTOMAKE@
+---	2006-06-14 09:15:38.000000000 +0100
++++	2006-09-01 01:55:36.000000000 +0100
+@@ -102,7 +102,7 @@
  AWK = @AWK@
  CC = @CC@
@@ -11,11 +11,56 @@
  CPP = @CPP@
-@@ -82,6 +82,7 @@ LIBS = @LIBS@
- M4 = @M4@
-+RM ?= rm -f
+@@ -123,7 +123,7 @@
+ LD = @LD@
+@@ -155,7 +155,7 @@
++STARTUP_FILE = ../startup.script
+@@ -226,7 +226,7 @@
- # Man page
- M4_DEFS = @M4_DEFS@ @DEFS@
+ # Directories for app-defaults file and manual page
+ appdefaultsdir = $(datadir)/$(PACKAGE)-$(VERSION)/app-defaults
+-appmandir = $(datadir)/$(PACKAGE)-$(VERSION)/man
++appmandir = $(mandir)
+ 	-DCAD_DIR=\"$(libdir)\" \
+@@ -640,14 +640,14 @@
+ 		xcwrap.c -c -o xcwrap.o
+ lib/tcl/xcircuit${SHDLIB_EXT}: xcwrap.o ${xcircuit_OBJECTS} ${xcircuit_DEPEND}
+-	$(RM) lib/xcircuit${SHDLIB_EXT}
++#	$(RM) lib/xcircuit${SHDLIB_EXT}
+ 	$(CC) ${CFLAGS} ${SHLIB_CFLAGS} -o $@ ${LDDL_FLAGS} xcwrap.o \
+ 		${xcircuit_OBJECTS} ${xcircuit_LDADD} ${LDFLAGS} \
+ xcircexec$(EXEEXT): xcircexec.o
+-	$(RM) ./xcircexec$(EXEEXT)
++#	$(RM) ./xcircexec$(EXEEXT)
+ 		xcircexec.c -o xcircexec$(EXEEXT) ${LDFLAGS} \
+@@ -694,7 +694,7 @@
+ 	$(mkinstalldirs) $(DESTDIR)$(appdefaultsdir)
+ 	$(mkinstalldirs) $(DESTDIR)$(appmandir)
+ 	$(INSTALL_DATA) lib/ $(DESTDIR)$(appdefaultsdir)/XCircuit
+-	$(INSTALL_DATA) lib/xcircuit.1 $(DESTDIR)$(appmandir)/xcircuit.1
++	$(INSTALL_DATA) lib/xcircuit.1 $(DESTDIR)$(appmandir)/man1/xcircuit.1
+ 	@echo "Installing library files"
+ 	$(mkinstalldirs) $(DESTDIR)$(librarydir)
+ 	( cd lib ; for i in $(PROLOGUE_FILE) *.lps; do \
-----End xcircuit-3.4.26.diff-----