Release notes for the gEDA/gaf 1.3.0-20071229 development snapshot
Summary
Changes
Internationalization (Peter TB Brett)
- libgeda: Use gettext to translate messages.
Debugging & error reporting (Peter TB Brett)
-
- libgeda: Load gafrc.d scripts with protected eval. Stops one bad gafrc.d script blocking system-gafrc from loading completely.
- libgeda: Make protected evaluators available from Scheme.
- libgeda: Add protected string evaluation functions.
- libgeda: Add g_scm_eval_protected(), a function that allows evaluation of a Guile expression safely, catching any exceptions and logging error messages.
- libgeda: Set Guile debug flags to aid debugging rc files
- gnetlist: Make drc2 backend not emit exceptions. It can do it more gracefully using the Guile display function.
- gnetlist: Hide a debug message from spice-sdb [1856326]
- libgeda: Clean g_assert() usage. Avoid killing the application where possible.
- General log handler improvements
- gschem: Show log in pretty colours.
- Pass all log info to x_log_update_func. Allows applications to do interesting things with log messages.
- libgeda: define s_log_message -> g_message
- gschem: Show an informative message dialog when loading a file fails.
- Make libgeda's f_open() & f_open_flags use GError.
- libgeda: Make o_read() use GError.
- libgeda: Add f_has_active_autosave(), a helper function for checking if a file has an unresolved autosave file.
- libgeda: Add f_get_autosave_filename(), a helper function for getting the autosave filename for a given file.
- Fix messages when parsing rc paths. Often, the full path to an rc file was being output twice in the log message given when parsing rc files.
- libgeda: Clean g_assert usage in s_clib.c
- gschem: Fix "failed to set sensitivity" log spam
- libgeda: Don't use assert.h (use Glib's g_assert instead)
Usability (Peter TB Brett)
- gschem: Don't lose close confirmation dialog behind window
- gschem: Warn before overwriting files. [1846593]. Also fixes a memory leak in the file save function.
- gschemdoc: Use xdg-open if available
- gschem: Fix new page behaviour. gschem now presents a blank page regardless of whether there is a page available on disk. This has the side effect of stopping gschem from trying to load backup files for new pages (this is a good thing).
Component library (Peter TB Brett)
- clib: Speed up caching by using pointer rather than string keys.
- clib: Cache symbol data between library refreshes. This should speed up large component copying operations.
- symbols: Nicer names for default libraries. Also, put them in a sensible order, and disable component library sorting by default so that that order is preserved.
- clib: Clarify naming for search cache
- libgeda: Update some component library doc comments.
Library headers (Peter TB Brett)
- libgeda: Use a dedicated header for Guile 1.6 compatibility.
- libgeda: Split out private prototypes to new header file.
- libgeda: Correct header guards for defines.h
- libgeda: Add a private counterpart to libgeda.h for internal use
Other stuff (Peter TB Brett)
- libgeda: Use goto to tidy some error handling in f_print.c
- gschem: Don't use direct o_???_translate_world() funcs
- libgeda: Make sure that Guile smobs are initialised. Rather than initialising them in gschem.
- libgeda: Now we assume GLib 2.4+, use g_setenv().
- libgeda: Compile C files in alphabetical order.
- libgeda: Correct func name in SCM_ASSERT call
- gschem: Fix NULL pointer risk in x_image.c [1802087]
- libgeda: Make f_open_flags handle missing files right [1815296]
- gschemdoc: Quote variables in case they contain spaces. [1792986]
- libgeda: Add the ability to save into a buffer.
- libgeda: Refactor file header string generation.
Desktop integration (Peter Clifton and Tomaz Solc (original artwork and mime files))
- Add desktop mime integration and icons to libgeda.
Desktop integration (Peter Clifton)
- Intltoolize build infrastructure for translating .desktop .xml etc..
- Set default window icons in gschem and gattrib to be found in the icon theme.
- Add .desktop versions of MIME registrations for older KDE desktops
- Add .desktop and icon files to gschem and gattrib.
Features (Peter Clifton)
- Change image embedding format to base64 encode the original files
- Allow standard glob matches in the component selector's filter entry.
- Add English (British) translations for libgeda and gschem
- Use Save, not Save As.. after prompt when closing modified schematics
- Process .scm files in $GEDA_DATA_DIR/gafrc.d/ to allow packages (e.g. geda-symbols) to install a config file under this dir to load its contents. Allows globally installed changes without needing to edit (and clash) in either geda-clib.scm or system-gafrc.
Bugs fixed (Peter Clifton)
- Always redraw the screen using a blit from the backbuffer. VAST speedups on composited desktops.
- Switch back to the page we were on after a saving changed pages. (Fixes bug cancelling from an at-exit time save)
- gschem: Redraw after embedding or unembedding components
- Add undo save for embed / unembed operations
- Compute picture aspect ratio in double arithmetic, not integer. (Avoids bug when grip-adjusting the picture size)
- gschem: Fix copy-paste error handling line-style keyword in g_rc.c
- Fix resolution of printed images to match that of the original data.
- Fix bug #1851403: Crash after adding component while in move mode
- Fix memory leak in o_redraw_cleanstates() called during copy or place.
- Fix i_callback_edit_copy_hotkey() to set new state after clearing old.
- XOR draw to remove component ghost when cancelling component placement.
- Fix test of object_changing in o_grips_motion() to a g_return_if_fail() (Possible segfault under bug conditions)
- Fix stroke trail to be visible on light background color scheme
- Erase stroke trails after an un-successful stroke recognition
- Fix Bug #1838164. Initialise copied_to pointer in objects to NULL. (A segfault bug probably introduced by me since 1.2.0 anyway).
- Fix a bug in o_attrib_search_name_single() were it might return NULL.
- Fix grid snapping in "Edit->Mirror Mode"
- Fix rotation code to support angles other than 90 degrees. Bug was never triggered though.
- Fix loading of embedded images. (base64 decoding bug).
- Fix memory corruption and possible segfault copying attributes
- Free gdk events obtained with gtk_event_get(). Avoids a leak.
- Spelling fixes in libgeda
GList changes (Peter Clifton)
- Make attribute / text placing use a new attrib_place_list GList.
- Remove the ATTRIB linked list in favour of a GList
- Removes the linking between TOPLEVELs, instead uses a GList in gschem
- Avoid accessing (GList)->{next|priv} directly to aid debugging.
- Use GLists to store OBJECTs in the "object_buffers[]" paste buffers.
- Replace the linked list of PAGEs with a GedaList (typecast to GedaPageList)
General code improvement (Peter Clifton)
- Add private function compselect_get_view() in x_compselect.c. Abstracts away an assumption we make about tab ordering in the dialog.
- Improve object mirroring and rotation API in libgeda + gschem
- Update the all drawing state SCREEN co-ordinates when zooming / panning. Allows XOR drawing to continue without dropping artifacts.
- Rework o_drawbounding() to work without dropping artifacts in all modes.
- Don't redraw the selected objects which are being manipulated by grips. Saves un-neceessary erase calls.
- Refactor XOR drawing functions to avoid code duplication.
- Avoid un-necessary usage of global_window_current in g_keys_execute()
- Avoid use of gtk_cell_renderer_stop_editing(), which is GTK 2.6+
- Remove ineffective redraw in o_complex_world_translate()
- Split out gschem specific TOPLEVEL variables into a new GSCHEM_TOPLEVEL
- Remove gattrib's use of GTK widget pointers stored in TOPLEVEL.
- Remove gattrib's use of TOPLEVEL rc-variables defined in gschem.
- Removed / refactored / tidied lots of dupicated and redundant code and structure members in gattrib, gschem and libgeda.
Bug Fix (Robert Fitzsimons)
- gschem: Fix segfault when trying to write an image. (Bug introduced by Peter C in splitting TOPLEVEL -> GSCHEM_TOPLEVEL)
Tragesym (Gilbert Forkel and Werner Hoch)
- Added spacer feature to tragesym
Translation updates and other changes (Werner Hoch)
- ignore generated .pot files in .gitignore
- German translation of gattrib's desktop menu
- gschem: updated german translations
- fixed symbols/linear/lm7912-1.sym
Misc changes (Ales Hvezda)
- Fixed a whole bunch of gtk+ 2.4.x and misc issues building on an older box
- Updated documentation (wiki) snapshot from master wiki on the geda website
- Bumped versions to 1.3.0/20071229/32:0:0 for the next development snapshot
- Commented out test which now no longer runs correctly because of slotting fix.
- Fix problem where changing slot= would not update pins (Known to break spice-sdb's slotted component handling)
- Added new i18n files to .gitignore to be ignored
- Removed the other now machine generated file
- Removed now machine generated file
- Fixed a minor newline typo (Dutch translation)
- Fix for Bug# 1782032: Blank attibute name when attribute value starts with " "
- Moved refresh button in component select dialog box
- Added standard Control-z and Control-y keymappings for Undo and Redo
Bug fix (Hamish Moffatt)
- Fix install location of gattrib-menus.xml to $GEDADATADIR
Translation update (Carlos Nieves Onega)
- Spanish translations for gattrib's desktop menu and libgeda
Translation update (Michele Petrecca)
- Updated Italian translation. (gschem)
Bug fix (Christian Riggenbach)
- utils: Fix indentation of comments in src/olib.l (fixes build with flex version 2.5.34)
Compilation fix (Tomaz Solc)
- Compilation fixes for Mac OS X 10.5 [1832417]
MinGW improvements (Cesar Strauss)
- Replace index and rindex by strchr and strrchr. These are functionally equivalent, and more portable to MinGW.
- MinGW does not have getuid nor getgid. (Fix code relating to this)
- MinGW does not have symlinks. (Fix code relating to them)
- Use g_path_is_absolute from GLIB instead of platform specific code.
- Use forward slashes as path separators on MinGW. They are also acceptable as path separators.
- Remove uneeded MinGW-only libraries.
- Tell git to ignore the ylwrap file.
- Tell git to ignore .exe files.
Translation updates (Bert Timmerman)
- Dutch Dutch translation for libgeda, gattrib's desktop menu
- Updated the Dutch translation for gschem.
- Fix spelling mistake in libgeda
Notes/Bugs/Errata/Known Issues/Last Minute Issues
-
Many thanks to everybody who contributed to this development release.
-
The ChangeLog contained in the released tarballs do not contain the above
listed changes. A subsequent release will pick up updated ChangeLogs.
-
Please submit all bugs to the bug tracker.
Download
Required Libraries/Programs
Required libraries:
-
gtk+ ≥ 2.4.x (tested with 2.8.x).
NOTE: gtk+ 1.2.x is no longer supported.
-
guile ≥ 1.6.x (tested with 1.6.x and 1.8.1).
NOTE: guile 1.4.x is no longer supported.
Required programs:
-
pkg-config ≥ 0.15.0
NOTE: You MUST install pkg-config regardless of gtk+ version.
Optional libraries:
Packages/Binaries/Installers
- Debian packages for unstable can be found here or using apt-get (might be slightly dated; soon to be updated).
- RPM packages for Fedora Core 7 can be found here.
- An updated gEDA Suite CD is currently being tested and will be uploaded soon.
Building/Installing/Running
There are several ways of building gEDA/gaf:
-
Download *all* the above files and the required libraries.
-
Build and install the required and optional libraries.
-
Untar all of the geda tar files in the same directory.
-
Set the prefix= variable in the Makefile
-
Run: make and set the specified variables (PATH, LD_LIBRARY_PATH, and
PKG_CONFIG_PATH)
-
Run: make install
This should complete with NO errors.
-
Run: gschem and select Help/Manual... for all available documentation.
Before you run gschem, gnetlist, gattrib, or gsymcheck you will need to set
those three environment variables, or add them to a shell startup file
(.bashrc, or .bash_profile or .profile)
-
Download all the above files and the required libraries.
-
Set the specified variables (PATH, LD_LIBRARY_PATH, and PKG_CONFIG_PATH) correctly to the place where you are installing everything.
-
Build and install the required and optional libraries.
-
Untar all of the geda tar files in the same directory.
-
Go into each directory and run:
./configure [ with --prefix=$HOME/geda if you wish ]
make install
You must build and install the packages in the following order:
-
libgeda
-
symbols
-
gschem
-
gnetlist
-
gsymcheck
-
gattrib
-
utils
-
docs
-
examples
Last Updated:
Mon Dec 31 22:46:01 EST 2007