pcb-rnd 3.0.3 (r36039) ~~~~~~~~~~~~~~~~~~~~~~ [act_draw] -Fix: typo in PolyBool help/syntax text (wrong action name) [build] -Add: check for librnd version, require 3.1.0 -Add: config.h has a #define for libxml2 presence so that plugins with partial libxml2 dependency can enable/disable parts of their code -Add: when libxml2 not found, mention that amf model loading is also disabled [core] -Fix: don't attempt to xor-draw hole of a padstack if the prototype is missing -Fix: do not attempt to draw slot if proto is NULL -Fix: don't call extobj float pre if there's no valid object -Fix: plug_io warns for underspecified format only if the format yields multiple yields of _different_ loader functions -Fix: undo bug: when rotating a padstack off-center so that the padstack's coords also change (move), undo did not move it back, only rotated it back -Fix: buffer: make sure to not load config when importing a board into paste buffer -Fix: buffer: when loading a board into buffer, skip side effects such as design dir setting and routing style updates -Fix: text rotatation: wrong clamp on negative rotation angles resulted in inverted angle -Fix: buffer rotation: set bottom side text rotation to negative angle so it rotates the same way as top side text -Fix: change default rendering order so that paste is cut through not only by mech (slots) but holes too -Fix: remember when picking up buffer from the bottom side and when converted to subc, put subc-aux on the bottom side too -Fix: convert-to-subc: subc aux layer creation: broken x/y vectors on the bottom side -Fix: convert-to-subc: when converting a subc on the bottom side and have to create refdes text, place that on bottom side as well as that's the primary side for this subc -Fix: unbind board.c events on exit -Fix: wrong uninit sequence caused inf loop on exit -Fix: lock-floaters and only-floaters are exclusive settings; the menu shall use the display() action instead of the more generic conf() action so that the xor logic is executed -Fix: library sorting: keep configured order of roots to reflect search order in the library window -Fix: subc preview draw: reset info to all 0 because there may be fields with side effects in pstk draw that we don't explicitly set -Fix: do not crash on failed pstk conversion (freeing shapes from uninitialized memory) -Split: subc preview draw: padstack draw code into a separate function as it will need to be called multiple times for various layers -Add: subc preview draw: render only visible layers -Add: subc preview draw: draw mask & paste of padstacks when visible -Add: subc preview draw: pass on host layers for coloring padstack to match user preference (current board) -Add: subc preview draw: draw on-padstack objects too on top mask and top paste -Add: footprint lib code: make it possible to remember format for footprint entries so loading from the lib doesn't need to try different formats again if they were tested during mapping already -Add: check for librnd minimum version runtime - just in case the executable was compiled with a different version than installed runtime -Add: include librnd full version string in program ID (CLI: --version; GUI: about box) -Add: if gtk2 HID is not available, also try gtk4 HID as fallback [diag] -Del: conf diagnostic actions - they got moved to librnd 3.1.0 [dialogs] -Fix: 'save as' initial format guess hides the guess failure message initially (format is surely known) with both the old and the new fsd -Fix: create doc layer groups on top, bottom and global for the library window footprint preview to serve as a fallback for any courtyard, keepoiut or custom layer (in modern footprints) -Fix: scroll the tree table widget, not parent box; it's possible from librnd 3.1.0 and fixes scoll-with-arrow-key -Add: library dialog: subc preview layer visibility control checkboxes so that unwanted layers can be hidden from the preview -Add: library dialog: get default preview checkbox settings from config -Add: library preview: copy layer colors from the current board -Add: preferences: modular tab system; moved generic tabs from pcb-rnd to librnd [doc] -Update: bridges and format list: eagle xml .lbr load -Update: datasheet for altium boards and protel 98/99 boards, export_stl's amf -Update: action reference: moved some action between plugins -Add: tutorials link in the "menu" with cuvoodoo's 'getting started' video is the main tutorial now -Add: specify minimum librnd version requirement in INSTALL (3.1.0) -Add: altium board load, protel 98/99 board load, amf export and projector export on the bridges drawing -Add: appendix file format list: amf and projector exports [export_stl] -Fix: don't pass repeated poly corners in padstack shapes to the triangulation lib -Fix: don't segfault when stl model not found -Fix: reverse coords on cutout vertical walls so triangle normals always point out -Fix: subc rotation is negative on the bottom side -Add: abstraction layer for different formats; be able to load multiple model formats, independently of export format -Add: support for the amf format (model load and export) -Add: vertex hash for amf and later projector -Add: model load fallback mechanism: try model format matching the output format first then fall back to other model formats -Add: output-only format: projector(1) [export_xy] -Fix: pick up bottom-pnp-origin (without suffix) -Cleanup: get rid of xray_theta (always 0) -Add: support for optional xy::rotate and xy::translate attributes -Add: --vendor argument so multiple rotate and translate can be used -Add: xy::translate needs to be rotated around the pcb-rnd origin of the subc because the p&p machine will rotate around the translated point while pcb-rnd rotates around the pcb-rnd origin -Add: generalize board level pnp-origin function so it will be reusable for multiple origins -Add: new substs: side-x, side-y, side-padcx, side-padcy that use the bottom-pnp-origin(-*) for reference -Add: %side-rot% and %side-negrot% substs -Add: %side-negrot180% subst -Add: %subc.side-rot180% subst that reproduces original gEDA/pcb behavior [find.c] -Fix: bloated poly vs. poly jump got "too accurate": a thermal doesn't really overlap with the object so it didn't find connection; cheat with a few nanometers of extra bloat -Fix: poly-poly bloated intersect: don't attempt to use negaive thickness in intersect tester line -Fix: bloat override on "line vs. polygon" check so that the bloat adjustment used to overcome numeric precision problems can be applied -Fix: use minimum line thickness 4 nanometer instead of 2 for line-to-poly to avoid self intersecting lines -Fix: padstack zero-thickness line edge should be taken as 4 nanometer so the line intersection test is actually done -Cleanup: const correctness on find context and missing cast to any-obj -Add: TODO on making bloated poly-poly test cheaper [footprint] -Add: stl models for 1206 and SOT23 [fp_fs] -Add: remember format for footprints bundling in multi-footprint file libs [io_altium] -Fix: handle all types without aborting on bool conversion (broken user input shouldn't abort) -Change: plgin enabled by default, now that we depend on librnd 3.1.0 [io_bxl] -Fix: don't run an extra round of parsing on error [io_dsn] -Fix: wrong return value for boolean func is_protected() -Fix: loading a board: this format doesn't have a design conf tree in the file, still some config nodes are loaded from other fields; make sure plug_io won't reset the subtree -Fix: read all rules, not only the first one from structure/rule -Fix: when loading a board, make sure subcircuits have the sub-aux objets so that subc orientation and side are correct -Fix: activate bottom side mirror fix in the placement lib so that bottom side rotation+mirror is done right -Fix: for proper bottom side rotation we need the rotate_first placement strategy, not the mirror_first -Fix: enable the "space omitted before opening brace" fix for reading eagle produced dsns now that librnd 3.1.0 has the required API -Cleanup: function with no return value should be void [io_eagle] -Fix: wire layer allocation fail should print the actual layer number not a random number -Split: function that reads a single package from library read code so it can be reused for loading a single footprint for a lbr file -Add: set default units to mm for footprint/lib files -Add: footprint map implementation (somewhat slow as it requires xml parsing) -Add: layers subtree parse: create bound layers when data is not NULL (for footprint file parsing) -Add: get_layer() handles footprint context if pcb is not available (when we are reading a footprint file) -Add: parse the package subtree when laoding a footprint file -Add: tolerate missing pcb on package parsing for layers and extents (for loading footprints) -Add: support for loading binary libs -Add: create layers on get_layer even if they were not in the layer subtree (some binary libs do not have a layer subtree) [io_kicad] -Fix: do not attempt to create empty text objects while loading a board or footprint [io_lihata] -Fix: do not load layer attributes when loading a board into buffer (it's a side effect that would affect menus) -Fix: loading a pre-v5 board won't have a design conf tree in the file, still some config nodes are loaded from other fields; make sure plug_io won't reset the subtree -Fix: pre-v7 did not have pixmap support, do no write the pixmap subtree -Cleanup: use rnd_trace for persistence format preservation debug -Add: persistent write: preserve numeric format of arc angles (as double) [io_pcb] -Fix: print an error and skip empty text objects while loading (would result in an object that's extremely hard to handle on the GUI) [lib_netmap] -Add: option for alternate y mirroring on bottom side footprints (for io_dsn fix) [libcdtr] -Fix: debug draw should use coords and not rely on int -Fix: don't hardwire point violation circle radius in debug draw, calculate it from drawing size -Add: tester command for polygon triangulation -Add: tester command to draw violations in animator -Add: Wojciech's fix for floating point precision caused inifinite looping on poly triangulation -Add: regression tests for the lib compiled with doubles [librnd] -Cleanup: use rnd_hid_fileselect() instead of direct call to hid->fileselect for easier forward porting at version bmp librnd 4.0.0 [plugins] -Update: change plugin state from "WIP" to "works" on plugins that got enough mileage of testing: export_openscad, export_stl, import_sch2, import_ttf, io_bxl, io_pads [propedit] -Fix: recurse to editable subcircuit objects on the first level of subcircuits (floaters, padstacks) when dealing with selection -Cleanup: reduce code duplication in executing set/del/map on selected objects, so that there is only one TODO#28 to make sure it's always handled the same [query] -Cleanup: remove local_str in favor of const string return from thermal API [renumber] -Fix: do not ask for overwrite permission twice -Fix: pass on subc to change name on as ptr2 as callee expects that (fixes a crash) [shape] -Fix: make "last point" coords persistent while drawing a rounded rect so in "Majenko's round corner case" when two rounding arcs meets exactly there won't be coord duplication making the resulting poly invalid [tests] -Fix: don't try to directly compile the diag plugin code into the tester but depend on librnd -Fix: ignore empty lines printed as part of error messages for the menu test -Fix: fitler out pup loading error messages from the output in tests doing output comparison: some unrelated plugins may be broken -Update: bottom side subc rotation error in xy due to loading from pcb format was broken pcb-rnd 3.0.2 ~~~~~~~~~~~~~ Out-of-order bugfix release: 3.0.1 + a single bugfix pcb-rnd 3.0.1 (r35718) ~~~~~~~~~~~~~~~~~~~~~~ [ar_extern] -Add: run freerouting.cli and freerouting.net -Add: provide 3 progress bars for more detailed progress report [core] -Fix: padstack preview draw should draw slot shapes when hole drawing is enabled so slots are not invisible -Fix: footprint mass-import (ElementList()), frame placer: line up new subcircuits close to the frame even if the subcircuit origin is far off from 0 -Fix: footprint mass-import (ElementList()), frame placer: space subcircuits at a fixed distance, accurately along the frame -Fix: menu actions: when switching drawing mode conf, also force a redraw to make sure the new settings take effect on screen (fixes lesstif no refresh bug) -Fix: find.c: poly padstack shape vs. polygon intersection check does not ignore bloat anymore (fixes: poly padstack vs. poly clearance vilation missed in drc checks) -Fix: find.c: poly-poly bloated isc failed to find some matches because of search box was not bloated up (affected axis aligned rectangles mostly) -Fix: find.c: don't run the padstack thermal optimization if bloat is non-zero - bloat may be a game changer in whether the padstack touches the sorrunding poly -Add: when xor-drawing padstacks, draw hole or slot; this helps positioning vias but also acts as the only indication for a copperless mounting hole -Add: utility function to check if a text object has invalid chars in a font -Add: pcb_thermal_chars2bits() that can convert the 2 byte text representation of per layer thermals back from text to bin (used in query and later in propedit) -Add: a variant of the therm bits to chars conv function that returns const char * to simplify memory management in query [dialogs] -Fix: fontsel: missing else made per object fontsel unavailable [doc] -Del: web client from the bridges drawing - won't be finished any time soon -Add: document the new query function for invalid characters in text -Add: BXL in bridges -Add: bridges: separate group for external autorouters [drc_query] -Add: DRC rule for finding text with invalid chars [export_stl] -Fix: coord range to let the GUI enable user to set anything positive for min hole and slot size -Fix: coord range for override-thickness so the gui lets the user set anything positive [import_pxm_gd] -Fix: used the wrong feature macros for deciding if formats are available (librnd separation related bug) [io_dsn] -Fix: implicit declaration on rnd_strcasecmp() [io_tedax] -Fix: autorouter config import: use the right fields for default value and max value -Fix: autorouter config import: convert coord values from mm to internal -Add: implement loading arcs from route result [propedit] -Add: padstack/thermal/lid/ subtree [query] -Add: glue function for counting invalid characters in a text -Add: allow integers in parenthesis as part of field name path -Add: support the thermal/lid subtree (same as in propedit) pcb-rnd 3.0.0 (r35609) ~~~~~~~~~~~~~~~~~~~~~~ [asm] -Add: exclude_query config node for handling all the optional builds and DNP [autoroute] -Fix: do not generate invalid bounding box for terminals with certain copper/clearance ratio -Fix: do not ruin the head of the netlist with NULL while trying to remember the last valid net [conf] -Change: rename pcb-conf.lht to conf_core.lht for clarity [core] -Fix: Display(RealignGrid): do not force a new click; when invoked by hotkey or action, just use the current position of the crosshair; this allows the user to take advantage of a coarse grid and object snap -Fix: remove obsolete checks and restrictions on last copper layer(group) removal -Fix: don't let the One Subcircuit removed by the operation code in footprint edit mode -Fix: obj hashing: coord neq comparison should apply the same 4 nanometer tolerance as hash calculation to overcome rounding problems in rotation/mirroring -Fix: enfroce clearance: enable find-through-rats so disjunct same-net objects can be connected -Fix: pstk rendering: always set cap style for the unplated sign else the GUI will assert when the drawing contains only unplated holes (e.g. all other layers are turned off) -Fix: pstk: get clearance at layer: do not crash if the padstack does not have a global clearance and there's no shape on the given layer -Fix: find.c: corner case on any-layer pstk line shape ISC check on mech (hole/slot) - the layer of the line shape is not known, query mech shape on any layer -Fix: extobj: do not let extobj floaters be moved to another layer (would break edit objects being edit objects in most extobj implementation) - rather ask the user to change layer bindings instead -Fix: pcb_subc_alloc_layer_like() should do the layer binding properly when source layer is not a subc (bound) layer but a real board layer -Fix: polygon clipping: when an object can not be cleared from a polygon, don't abort the whole clearing process, only abort clearing that specific object (fixes a bug with one non-clearing line blocking other objects to clear) -Fix: 'move selected to current layer': do not stop after the first object moved -Fix: draw: local default xform uninitialized memory when input xform is NULL -Fix: hshadow of a padstack is always connected to the plated hole of the padstack (shape can not be off-center) -Fix: poly validity check low level: check outer countour then holes separately, then check each hole against other holes and the outer contour for intersection -Fix: adding a hole in a polygon shouldn't remove polygon attributes -Optimize: find: intersection between pstk and poly: skip expensive polygon calculation if there's a clearance (and no thermal) -Import: is-angle-in-arc function from libgrbs -Add: alternative (main) name for Display(ToggleGrid): Display(RealignGrid) for clarity -Add: pcb_arc_get_angle() that calculates the angle for an x;y - it's more than just an atan2() because of the broken coordinate system we use -Add: ExecActionFile() alias for ExecuteFile() - this one should be the same in all Ringdove apps -Add: generic point-on-object utility function -Add: pcb_arc_get_xy() because of the strange coordinate system we use -Add: view: remember netnames when the view is about a net -Add: pcb_poly_to_polygons_on_layer() should return the newly created polygon, the hole-destroys-attribute bugfix will depend on it [data] -Cleanup: remove /data; move the stock desktop file and file(1) magic to doc/resources/ [dialogs] -Del: manage plugins dialog: moved to librnd -Fix: typo in DrcDialog() syntax text -Fix: close file after writing padstack -Fix: padstack proto lib dialog action: no-argument call should default to the new 'auto' mode, which selects either the board (in board edit mode) or the first subc (in footprint edit mode) as target; fixes the bug thta in fp edit mode it popped up an irrelevant context -Fix: layer binding dialog crash on empty name -Fix: layer binding: when figuring intern copper layer offset for the dialog box, set it from top or bottom, never from global -Fix: layer binding: react on changing layer offset (it is a spin widget, compound, so the original test falesly thought it was already handled) [doc] -Fix: packager's auto gen script: if the checkout is not configured, try /usr or /usr/local -Fix: pcb-rnd.1: the full name of the hid is gtk2_gdk -Fix: packager's doc generator: $C hint is /etc/pcb-rnd as the default has changed -Fix: packager's doc: HID plugins are prefixed with librnd3-, not pcb-rnd- -Fix: packager's doc: meta pkg needs to depend on the gui lib so the default install works with gui -Fix: bridges: dsn net is unidirectional -Fix: broken link: we don't really have a prop list in query yet -Fix: query: mklist() explanation (copy&paste error) -Fix: query lang has no native comment, only the file format that contains the script may have comments -Cleanup: remove reference to devlog/, it got moved out to the knowledge pool long ago -Update: ircnet is no longer available for support -Update: INSTALL for the separate librnd dependency -Update: bridges: dsn board and pads ascii board are both bidirectional -Update: action ref for "SetGridOffs" and dsn related changes -Change: rnd is ringdove; link all other ringdove projects, add the logo -Add: list and explain all directories in README -Add: test compilation result on IRIX -Add: missing description for pcb-rnd-import-geo -Add: packager's changelog for 3.0.0 -Add: faq entry and INSTALL.librnd.txt mention of ldconfig -Add: packager's doc: export major version of librnd in auto/ -Add: start documenting the altium binary file format, as figured from the kicad converter perl script [drc_query] -Fix: dialog: look up rule source lihata node by working back from the native config node, because it may be in an append subtree -Fix: dialog: copy all rules to design when a read-only-role rule is edited and saved -Fix: when cursor is lost in the rule or def list, don't throw an error, just fill in all '-' on the right side -Fix: violation callback: non-null objects are considered true -Add: dialog: DrcQueryRuleMod(remove) to remove rules -Add: dialog: remove button for rules in the rule list dialog [export_dsn] -Del: reimplemented in io_dsn [export_gerber] -Fix: don't hardwire lib_hid_common dependency by C call (on xpm name resolution), rather use an action - GUI is not mandatory for gerber exporting [export_lpr] -Fix: dynamic allocate values[] on start, querying export_ps option list len (fixes a buffer overrun) [export_svg] -Fix: photo mode: did not work due to a fix went wrong years ago on compositing layers -Fix: photo mode: missing holes -Fix: photo mode: flipped export: move bottom copper layers on top of the visibility stack for proper coloring -Fix: offseted polygon vertex coordinate transformation applied y-flip before the offseting which catapulted polygons out of their intended location in flip-mode renders -Add: photo mode: blend noise on top to make the result look less artificial (optional) [footprint] -Fix: tru-hole -> thru-hole rename in make install [import_dsn] -Del: session import (moved to io_dsn) [import_gnetlist] -Add: direct the user to stderr if external netlister failed (also print the command line for easier manual testing) -Add: error handling on non-gnetlist (tedax) import failure [io_dsn] -Fix: read: subc keepout layer names shall include "keepout" on parse, else the lookup in predefined layer list won't work -Fix: read: do not perform polygon offset if offset value is in a few nanometer range -Fix: read: use the pcb-rnd convention for keepout layer group purpose strings -Fix: read: attempt to read only numerics as via coords in image -Fix: read: qarc angle corner case - always go from start to end -Fix: read: fix buffer overflow in dsn_parse_file() that smashed the stack -Import: session import code from import_dsn -Cleanup: rename LoadDsnFrom() to ImportSes() (keep a redirection action on the old name with a bold error message for a while) -Add: register dsn export for backward compatibility that calls the plugin's save code -Add: read: parse rule/clearance and set the new drc width and clearance nodes in the conf tree -Add: provision for enabling no-space-before-parenthesis parsing when librnd 3.1.0 is out -Add: write: structure/boundary (both drawing area (board extents) and the first outline from the boundary layer) -Add: write: create a padstack library mapping board and all subcircuit padstacks - this lib will be written out in the (library) section later on -Add: write: write (library) with (padstack) nodes -Add: write: export line shape in padstack proto -Add: write: export off-center circle shape as zero-length line (path) in padstacks -Add: write: support for hshadow padstack shape -Add: write: polygon padstack shape -Add: write: remember layer group names when generating (structure) -Add: write: print a matching padstack shape for every copper layer but omit anything else (e.g. mask and paste) -Add: write: put all board level padstacks as vias in wiring -Add: write: export hole/slot in padstack protos -Add: write: padstack proto: plated/nonplated -Add: write: throw io incompatibility errors on rotated vias - the file format does not support that -Add: write: write footprints in the local lib -Add: write (pin) subtrees n (library (image)) subtrees -Add: write: (placement) subtree -Add: write: build the netlist in the (network) tree -Add: write: net class with default via geo and trace geo copied from the "pen" -Add: write: export wire polygons -Add: write: io_incompat for poly holes -Add: write: (via) should have a (net) subtree too -Add: write: support for wire (qarc) -Add: write: "protect" only locked objects for now -Add: write: export options for router trace width, clearance and via pstk proto override (for compatibility and for easier access from the CLI) -Add: read: hint based "fuzzy" logics for test-parse: some CADs export dsn without filling in the quote char or any CAD identification field -Change: enable the plugin by default -Change: refine write format with 'specctra' just in case dsn doesn't ring a bell [io_eagle] -Fix: mask and paste should be created with the right comb bits (auto for both, also sub for mask) -Fix: read: make sure mask and paste layers are always created [io_lihata] -Fix: when loading a padstack v6, set read context version to 6 so that the padstack proto loader function understands the context [io_pads] -Fix: read: corner case when reading hole in rectangular/square pads -Fix: read: ignore section logic: if it was ignoring an empty section, it accidentally ignored the whole next section as well -Fix: read: be able to read multiple 2nets per net -Add: write (save) board capability -Add: plugin configuration -Add: read: don't load teardrops when disabled -Add: read: don't load polygons when disabled -Fix: read: "CLOSED" piece is not a filled polygon [io_tedax] -Fix: handle the corner case of last line not having a newline termination, when saving a drc_query rule [lib_compat_help] -Split: padstack shape to rectange converter into a reusable API function -Fix: make sure polygon terminals are clipped before trying to build a padstack of them [lib_hid_pcbui] -Fix: wrong make target for shorthand build -Fix: layersel: don't use lys fields when it is NULL for enforced layer visibility -Fix: do not crash in term tootlip popup when rat target layer group is NULL -Del: online-help xpm (moved to librnd for 3.0.0) -Add: bind route styles to hotkey {r N} where N is 1..9 [lib_netmap] -Add: map_2nets API (for io_pads write) -Add: padstack library API: map pcb_data_t * and store all new padstack prototypes in a padstack proto lib [librnd separation] -Fix: link to fungw if a system installed one is available -Fix: API CHANGE: typo in public symbol prefix (rnd_pcphl_*) -Fix: typo in conf gen tool path for gsch2pcb-rnd -Fix: scconfig hooks.c: need to set scconfig template dir in post-arg hook so that libarchdir is already set -Fix: scconfig: set -L and -I for non-standard librnd installation only after figuring libarchdir -Fix: gsch2pcb-rnd uses the safe scconfig template path with libarchdir embedded -Fix: plugin compilation's tmpasm uses safe librnd scconfig template dir with archlibdir embedded -Fix: use the right librnd scconfig node to figure if gui is available -Fix: use system installed fungw's -l from librnd's scconfig node -Fix: gd detection for export_png needs to happen locally because librnd doesn't yet support it in practice -Del: local svn extern of librnd from src_3rd - pcb-rnd is going to depend on independently installed librnd -Del: LD_PRELOAD hack from pcb-rnd-src; replace it with an echo that prints a note on the external librnd dep we have from now on -Del: remove plugins that got split out to librnd from scconfig plugins table -Del: ./configure --coord; this is set in librnd, pcb-rnd passively follows what's set there -Del: 'make map_plugins' librnd/hidlib specific hack for the all-plugin list is not needed anymore -Del: generating buildin list doesn't need to do anything with librnd plugins anymore -Del: doc: action detail source files for actions moved to librnd -Cleanup: gsch2pcb-rnd uses -l for linking librnd -Cleanup: proper librnd uninit sequence in gsch2pcb-rnd -Cleanup: remove hidlib pup list - it's empty since librnd is not in source tree -Cleanup: remove unused RND_DAD_CFG_NOLABEL -Cleanup: remove HL_* from the build - these were relevant to librnd -Cleanup: remove $LC and $LP from packager's doc - we are not installing anything librnd anymore -Cleanup: doc: replace developer doc that got moved to librnd with placeholders with links to the new place -Change: switch over central build and scconfig detections to exclusively use installed librnd instead of depending on a local svn extern -Update: util makefiles for separate librnd install (affects gsch2pcb-rnd and bxl2txt) -Update: follow librnd API changes for 3.0.0 -Update: make local tests compile and run with librnd3 -Update: packaging doc: deps for the external librnd3 package names -Add: temporary glue code in gsch2pcb-rnd for -l linking of librnd-hid -Add: specify host app revision -Add: set LIBRND_PREFIX in Makefile.conf (for tests) -Add: Makefile.conf delivers the full path to librnd.mak to simplify test Makefiles -Add: gsch2pcb-rnd sets rnd_app package, version and revision -Add: import librnd's plugin state list before calculating plugin deps -Add: document using non-standard prefix librnd installation -Add: scconfig hooks.c should create a dedicated variable with the full path to librnd scconfig templates, and that shouldn't hardwire /lib but should use arch specific libdir (e.g. lib64 if the user specified that) -Add: document --libarchdir match requirement -Add: static link librnd option: also use librnd.mak for the -L's and -l's -Add: doc: do an svn checkout from librnd action doc and include librnd actions in the action reference (in a separate details section; marked as RND on the list) [menu] -Add: dedicated text/terminal ID edit submenu for {e t} in the edit menu [pcblib] -Rename: pcblib to footprint; by the default config footprints are loaded from: footprint/ from the board file's directory (for existing board files); user dir ~/.pcb-rnd/footprint (and ~/pcblib for compatibility); ../footprint (for running from source); $SHARE/pcb-rnd/footprint (system installed) [plugins] -Cleanup: rename ultimate fallback export basename from pcb-out to pcb-rnd-out in all export plugins [puller] -Cleanup: remove glib's hash table, use genht's htpp -Cleanup: remove glib dependency from compilation [query] -Fix: advanced search fialog: do not crash on converting invalid query expression back to gui -Fix: advanced search dialog: don't ruin user's expression on compilation error -Fix: net_len: net seg len API needs to get query context else it can not return the segment struct, which depends on the context -Fix: net_len: properly mark HUB segments and remember at least two connected objects -Fix: net_len: disable one of the hub removal heuristics because it never removed the hub but the next object -Fix: net_len: special casing padstack <-> traceobject connection: it is common that trace object only slightly overlaps with the padstack (e.g. via) because of a (now ignored) dog leg connection -Add: net_len: public API call for accessing low level net segment mapper -Add: net_len: remember junction hubs and set junction glue fields -Add: net_len: optional rat inclusion (useful for net mappers) -Add: net_len: decide and return which of the two objects is a hub object in a T junction -Add: net_len: detect invalid junction (X-junction, e.g. when two lines intersect in the middle) -Add: net_len: helper function to decide if an object pair is a padstack and a trace object fully overlapping with the padstack -Add: net_len: pre-map trace objects fully overlapping with padstacks so they can be ignored later -Add: net_len: internal API config option for 'stop at terminal' preference -Add: expose val_free_fields for callers handling query results -Add: expose low level iterator reset and upgrade it to work with persistent iterators as well -Add: expose a low level free() for iterator fields [route_style] -Fix: use the new 'last route style selected' cache to get the right style selected when when multiple route styles match -Fix: non-strict route style match: if a route style doesn't have via proto set, it matches any pen via proto -Fix: do a route style update after creating a new style to make sure the GUI shows the right style -Fix: when editing a route style using the dialog box, never jump target to a different style only because of matching fields [scconfig] -Fix: never use -ansi in the c99 compilation: recent gcc generates an error on the ((unused)) attribute for that -Fix: do not crash when value is missing for --key=value custom args -Fix: don't run configure program if it failed to compile -Add: ./configure needs to figure LIBRND_PREFIX before compiling scconfig as parts of the final ./configure binary is coming from librnd -Add: be able to compile local scconfig with librnd installed to non-standard prefix -Add: print --prefix and --confdir in configuration summary -Del: local computation of the final conf dir: librnd3 does that in an unified way and /local/confdir has the final value [svg] -Fix: photo mode export in flip mode: invert photo offset Y on polygons so that the shadow is on the right corner [tests] -Fix: uniq_name doesn't depend on system installed genht -Optimize: speed up pcbflags test by removing library search and default font using command line config [tool_std] -Fix: some old scripts depend on action Mode(PasteBuffer) while our tool is called "buffer" only; add an invisible alternative tool called PasteBuffer so old scripts work [util] -Fix: typo (excess $ROOT for librnd paths) in Makefile template