Permalink
Browse files

Release 14.10.0

  Merge branch 'release'
  Merge branch 'cleanups'
  Merge branch 'xml-syntax'
  Merge branch 'hide-xml-namespaces'
  Merge branch 'factory-type-list'
  Merge branch 'MPLv2'
  Merge branch 'docs'
  Merge branch 'idl-api'
  Merge branch 'fixes-14.04'
  Merge branch 'data-bindings-alpha1'
  Merge branch 'docs-nav-tree'
  Merge branch 'remote-reference-counting'
  Merge branch 'dynamic-any'
  Merge branch 'docs-and-coverage'
  Merge branch 'rngs-and-hashing'
  Merge branch 'configure-ac'
  Merge branch 'copy-and-paste'
  Merge branch 'keyboard-input'
  Merge branch 'widget-groups'
  DOCS: adapt upload path to new testbit fs layout
  Merge branch 'docs'
  UI: sinfex.cc: work around bison & flex disagreeing on nullptr vs 0 for YY_NULL
  Merge branch 'build-fixups'
  Merge branch 'svg-images'
  Merge branch 'build-fixes'
  Merge branch 'normalized-image-tests'
  Merge branch 'docs-svg-graphics'
  configure.in: revision increment of RAPICORN_REVISION_VERSION to 1
  • Loading branch information...
tim-janik committed Oct 9, 2014
2 parents 336f240 + f2047d6 commit 3aafb648e61975236d2e9834ca7a2351afd4b6f7
Showing 372 changed files with 35,797 additions and 13,379 deletions.
@@ -5,6 +5,7 @@ Makefile
*.o
*.lo
*.pyc
/rnd-files/
/.x11test.log
/ChangeLog
/INSTALL
@@ -24,6 +25,7 @@ Makefile
/intltool-update.in
/libtool
/ltmain.sh
/test-driver
/missing
/mkinstalldirs
/po-helper.sh
@@ -1 +1 @@
Tim Janik <timj@gtk.org>
Tim Janik <timj@gnu.org>
504 COPYING

This file was deleted.

Oops, something went wrong.
373 LICENSE

Large diffs are not rendered by default.

Oops, something went wrong.
@@ -1,7 +1,4 @@
# Rapicorn
# Copyright (C) 2005 Tim Janik
#
## GNU Lesser General Public License version 2 or any later version.
include $(top_srcdir)/Makefile.decl
SUBDIRS = . po data rcore res aidacc ui rope tools tests pytests examples docs
@@ -11,7 +8,6 @@ noinst_DATA =
# === setup ===
AUTOMAKE_OPTIONS = 1.9 dist-bzip2 no-dist-gzip
configure: @DVLBUILD@ acrapicorn.m4 # acrapicorn.m4 is included by configure.in
# === web site ===
site site-preview site-update:
@@ -50,28 +46,11 @@ MAKE_API_CHECKSUM=$(strip \
$(MAKE) -C $(top_srcdir)/ui/ $(AM_MAKEFLAGS) api-content ) | \
md5sum | sed 's/ .*//' \
)
api-check: # ensure headers don't change if RELEASE=outdated && REVISION=0
cd $(srcdir) \
&& RAPICORN_CURRENT_CHECKSUM=$$($(MAKE_API_CHECKSUM)) \
&& RAPICORN_MONTHLY_VERSION="$$(expr $$(date +%Y%m) - 200000)" \
&& test "$$RAPICORN_CURRENT_CHECKSUM" = "`cat api-check.md5`" \
|| if [ "$$RAPICORN_MONTHLY_VERSION" = \
"$$(expr @RAPICORN_RELEASE_YEAR@ '*' 100 + @RAPICORN_RELEASE_MONTH@)" \
-o "@RAPICORN_REVISION_VERSION@" -gt 0 ]; then \
echo "$$RAPICORN_CURRENT_CHECKSUM" > api-check.md5 ; \
else \
MSG1="Rapicorn version needs updating (checksum: $$RAPICORN_CURRENT_CHECKSUM): " ; \
MSG2="@RAPICORN_RELEASE_YEAR@.@RAPICORN_RELEASE_MONTH@.@RAPICORN_REVISION_VERSION@ => " ; \
MSG3="$$[RAPICORN_MONTHLY_VERSION/100].$$[RAPICORN_MONTHLY_VERSION%100].0" ; \
MSG="$$MSG1$$MSG2$$MSG3" ; echo $$MSG | sed 's/./=/g'; echo $$MSG; echo $$MSG | sed 's/./=/g' ; \
exit 1 ; \
fi
api-checksum:
$(MAKE_API_CHECKSUM)
.PHONY: api-check api-checksum
#check-am: api-check # check API version upon make check
.PHONY: api-checksum
distcheck-hook: # check API version upon make distcheck
$(MAKE) $(AM_MAKEFLAGS) -C $(top_srcdir)/ api-check
$(MAKE) $(AM_MAKEFLAGS) -C $(top_srcdir)/
installcheck-local:
$(Q) cd . \
&& echo '#include <rapicorn-core.hh>' > tmpx.cc \
@@ -80,6 +59,7 @@ installcheck-local:
&& echo 'using namespace Rapicorn;' >> tmpx.cc \
&& echo 'extern "C" int main (int argc, char *argv[]) {' >> tmpx.cc \
&& echo 'ApplicationH app = init_app (".AMtest", &argc, argv);' >> tmpx.cc \
&& echo 'Blob blob = Blob::load (".");' >> tmpx.cc \
&& echo 'return app.run_and_exit(); }' >> tmpx.cc \
; eval "$$TSTDIAGNOSE" "'Create rapicorn sample program'"
$(Q) $(CXX) -Werror tmpx.cc -c `PKG_CONFIG_PATH="$(pkgconfigdir):$$PKG_CONFIG_PATH" pkg-config --cflags rapicorn@RAPICORN_RELEASE@` \
@@ -96,31 +76,25 @@ check-dynamic_cast: # check for dynamic_cast of reference types which is broken
&& find $(srcdir) -type f \( -iname '*.[hc][hc]' -o -iname '*.[hc]' \) \
-exec grep -Hn 'dynamic_cast[^<]*<[^>&]*&' {} \; \
| grep '.' ; exit $$[!$$?] # fail on matches
check-list_properties: # only public interfaces should export properties
$(Q) cd $(srcdir) \
&& echo " CHECK Repel untyped list_properties() method implementations..." \
&& ! grep '^[[:space:]]*list_properties[[:space:]]*([^)]*)[^;]*$$' -n ui/*.cc rcore/*.cc
$(Q) cd $(srcdir) \
&& echo " CHECK Repel non-interface list_properties() method implementations..." \
&& ! grep 'Impl::list_properties[[:space:]]*([^)]*)[^;]*$$' -n ui/*.cc rcore/*.cc \
--exclude ui/widget.cc --exclude ui/container.cc --exclude ui/buttons.cc --exclude ui/window.cc
check-am: check-dynamic_cast check-list_properties # run source code checks before all others
check-am: check-dynamic_cast # run source code checks before all others
# === automake fixes ===
# disable bogus cleanup checks
distcleancheck_listfiles = true # find . -type f -print
# distuninstallcheck_listfiles = true # find . -type f -print
MAINTAINERCLEANFILES += intltool-extract.in intltool-merge.in intltool-update.in
# == ChangeLog & Release Rules ==
ChangeLog: $(shell $(srcdir)/mkrelease.sh commit-stamps)
$(srcdir)/mkrelease.sh ChangeLog -R bb02c8c92f88a091ca8ca2002a5800c2102e5e1d..HEAD
noinst_DATA += ChangeLog
MAINTAINERCLEANFILES += ChangeLog
EXTRA_DIST += ChangeLog mkrelease.sh
release-news:
@$(srcdir)/mkrelease.sh news --first-parent --body
release-check:
@echo "Checking for unlisted contributors..."
@$(srcdir)/mkrelease.sh contributors -X -B timj,stw
release-upload: ChangeLog
$(srcdir)/mkrelease.sh upload -U testbit:dist/rapicorn/ -E configure.in:RAPICORN_REVISION_VERSION
$(srcdir)/mkrelease.sh upload -U testbit:dist/rapicorn/ -E configure.ac:RAPICORN_REVISION_VERSION
.PHONY: release-news release-check release-upload
@@ -1,10 +1,7 @@
# Rapicorn -*-mode:makefile;-*-
# Copyright (C) 2006 Tim Janik
#
## GNU Lesser General Public License version 2 or any later version.
# This Source Code Form is licensed MPLv2: http://mozilla.org/MPL/2.0
# declare variables that we might want to use += on.
INCLUDES=
EXTRA_HEADERS=
MAINTAINERCLEANFILES=$(GENERATED)
CLEANFILES=$(GENERATED_CLEANFILES)
@@ -58,6 +55,7 @@ export X11TEST_DISPLAY ?= $(shell $(X11TEST_FIND) && echo ":$$X11TEST_DISPLAY")
X11TEST_SERVER := \
if [ -z "$$X11TEST_DISPLAY" ] ; then \
Xvfb -help 2>&1 | grep -q display || { echo "$(MAKECMDGOALS): failed to start Xvfb" ; exit -2 ; } \
&& xset -help 2>&1 | grep -q display || { echo "$(MAKECMDGOALS): failed to start xset" ; exit -2 ; } \
&& for idoffs in `seq 1001 1500` ; do D=$$(($$idoffs + $$RANDOM % 500)) \
&& test ! -e /tmp/.X$$D-lock && break ; done \
|| { echo "$(MAKECMDGOALS): out of available X11 Display IDs" ; exit -2 ; } \
@@ -96,7 +94,6 @@ distfile-list:
check-am: check-before
check-local: check-after
check-local: ; @:
TESTS=
TSTV1=test-verbose
# === slowcheck ===
@@ -115,7 +112,7 @@ slowcheck_parallel--$(1): $(1)
&& RAPICORN_TEST="$$(TSTV$$(V)):test-slow" ./$(1) ; _e=$$$$?; \
[ $$$$_e = 0 ] || { echo "FAILED($$$$_e): $(1)" ; exit $$$$_e; }
slowcheck: slowcheck_parallel--$(1)
check: @NOTDVLBUILD@ slowcheck_parallel--$(1)
check: @NOTDEVELMODE@ slowcheck_parallel--$(1)
endef
$(foreach PRG,$(TEST_PROGS),$(eval $(call slowcheck_parallel_TEMPLATE,$(PRG))))
25 NEWS
@@ -1,4 +1,27 @@
Rapicorn 13.07.0:
Rapicorn 14.10.0: (2014-10-09)
* Project is re-license under MPLv2.
* Task List: New high level overview: http://testbit.eu/wiki/Rapicorn_Task_List
* Major documentation improvements plus new illustrations.
* Added coverage report generation.
* Extended dynamic Any to contain arbitrary C++ structures.
* Made image processing more robust.
* Integrated SVG image rendering branch.
* Support property element syntax in XML UI files.
* Simplified XML UI syntax for widget definitions and arguments.
* Added simple XML UI data bindings for Python.
* XML UI support for hsize-group & vsize-group.
* Now all widget APIs are exported through IDL definitions.
* Fixed X11 compose key handling.
* Added X11 selection copy and paste.
* Added Keccak for SHAKE & SHA3 hashing and CSPRNG.
* Added remote reference counting across IDL threads.
* Lots of bug fixes, code cleanups and elimination of old/unused code.
* Portability fixes for 32bit, 64bit, Ubuntu 14.04 and 14.10.
* Removed tarball dependencies: doxygen dot bison flex
* Build infrastructure and dependency updates: glib-2.32 g++-4.7
Rapicorn 13.07.0: (2013-07-06)
* Aida: Optimizations and cleanups in the IPC implementation.
* Aida: Protocol extension to retrieve initial remote handle.
86 README
@@ -1,64 +1,62 @@
The Rapicorn Toolkit
====================
Rapicorn is a toolkit for rapid development of user interfaces for C++ and
python development. Much is still in prototype/alpha development stage, but
a strong set of foundation technologies has already been established.
Everybody is free to participate with ideas, code or wiki contributions,
and artwork (we still need a logo, and always need icons and SVG themes).
Rapicorn is a toolkit for rapid development of user interfaces in C++ and
Python. The user interface (UI) is designed in a declarative markup language
and is connected to the programming logic using data bindings and commands.
Rapicorn brings UI-design, UI-notation and UI-programming as close together
as possible. To accomplish this, it provides concise ways for UI notation,
usable also throughout design phases.
Simple but powerful programming mechanisms are provided to automate binding
of programming and GUI logic and to minimize manual work.
New project releases can be found at the project website:
http://rapicorn.org
Cairo is used for all rendering tasks, and Pango is currently used for text
rendering. A more extensive overview is provided online:
http://rapicorn.org/introduction.html
At the moment, Rapicorn is in the "prototype" phase so some features are
still under heavy development. You can refer to the roadmap for details:
http://rapicorn.org/wiki/Rapicorn_Task_List#Roadmap
Web pages and further resources can be found at:
http://rapicorn.org
Building and Installation
=========================
A mailing list for Rapicorn development and feedback:
Rapicorn has been successfully build under 32bit, 64bit and Ubuntu versions
13.10, 14.04 and 14.10. A number of dependency packages need to be installed:
https://groups.google.com/d/forum/rapicorn
rapicorn@googlegroups.com
apt-get install libcairo2-dev libpango1.0-dev intltool python2.7-dev \
libxml2-dev libgdk-pixbuf2.0-dev libreadline6-dev Xvfb x11-xserver-utils
A programming tutorial can be found under:
http://rapicorn.org/tutorial.html
Building and testing a build is accomplished as follows:
Dependencies
============
./configure && make -j`nproc` && make install
make -j`nproc` check installcheck
In order to build Rapicorn from release tarballs, a recent version of
libpng, Cairo, Pango and Gtk+ as well as Python 2.5 are currently needed.
The sources for the required packages can be found here:
Building the Rapicorn git repository uses autogen.sh instead of configure and
needs additional packages:
autoconf libtool automake intltool dot doxygen bison flex
http://gtk.org/download.html
http://cairographics.org/download/
http://sourceforge.net/projects/libpng/
http://www.python.org/download/releases/
As Debian package list:
Support and Examples
====================
The distribution tarball includes Python and C++ examples directories:
examples/ pytests/
Also documentation is provided with the distribution and online:
$prefix/share/doc/rapicorn1410/html/apps.html
https://testbit.eu/pub/docs/rapicorn/latest/
For help, questions and feedback, an online forum is provided:
https://groups.google.com/d/forum/rapicorn
libpng12-dev libcairo2-dev libpango1.0-dev libgtk2.0-dev python2.5-dev
To get support, send email to the mailing list (forum):
rapicorn@googlegroups.com
Rapicorn tends to hit GNU C++ compiler bugs fairly frequently, so if you
have problems compiling the code, or get segfaults in STL source files,
upgrading the compiler may improve the situation.
Also developers can sometimes be found chatting on IRC:
#beast IRC channel on GimpNet: irc.gimp.org
Compiling with a different compiler version than the default on your
system and running all checks Rapicorn offers (they should all succeed)
can be done with commands like:
Bugs can be filed and discussed in the Github issue tracker:
https://github.com/tim-janik/rapicorn/issues
export CC=gcc-4.6 CXX=g++-4.6 "CPP=gcc-4.6 -E" "CPPCXX=g++-4.6 -E"
./configure
make all install
make report # execute fast tests, performance tests and slow tests
Installation
============
License
=======
See the file 'INSTALL'.
This Source Code Form is subject to the terms of the Mozilla Public
License 2.0. See the LICENSE file for license rights and limitations.
Oops, something went wrong.

0 comments on commit 3aafb64

Please sign in to comment.