Imported gnome-build.

This is the GNOME Build Framework (GBF).
This commit is contained in:
rillig 2007-01-04 02:51:02 +00:00
parent e9ec1d2a34
commit 126775d61f
7 changed files with 527 additions and 0 deletions

1
devel/gnome-build/DESCR Normal file
View file

@ -0,0 +1 @@
This is the GNOME Build Framework (GBF).

View file

@ -0,0 +1,34 @@
# $NetBSD: Makefile,v 1.1.1.1 2007/01/04 02:51:02 rillig Exp $
#
DISTNAME= gnome-build-0.1.3
CATEGORIES= devel gnome
MASTER_SITES= ${MASTER_SITE_GNOME:=sources/gnome-build/0.1/}
EXTRACT_SUFX= .tar.bz2
MAINTAINER= rillig@NetBSD.org
HOMEPAGE= http://www.gnome.org/projects/devtools/
COMMENT= Project management components for GNOME development
BL3_DEPENDS+= devel/gal
BL3_DEPENDS+= devel/gdl
BL3_DEPENDS+= devel/libbonobo
BL3_DEPENDS+= devel/libgnome
BL3_DEPENDS+= devel/libgnomeui
BL3_DEPENDS+= devel/oaf
BL3_DEPENDS+= devel/pango
BL3_DEPENDS+= x11/gtk2
GNU_CONFIGURE= yes
USE_LIBTOOL= yes
USE_TOOLS+= pkg-config perl:run
PKGCONFIG_OVERRIDE+= gnome-build-1.0.pc.in
REPLACE_PERL+= src/backends/libgbf_am/gbf-am-parse.in
REPLACE_PERL+= src/backends/libgbf_mkfile/gbf-mkfile-parse.in
.for d in ${BL3_DEPENDS}
. include "../../${d}/buildlink3.mk"
.endfor
.include "../../mk/bsd.pkg.mk"

71
devel/gnome-build/PLIST Normal file
View file

@ -0,0 +1,71 @@
@comment $NetBSD: PLIST,v 1.1.1.1 2007/01/04 02:51:02 rillig Exp $
bin/gbf-am-parse
bin/gbf-mkfile-parse
include/gnome-build-1.0/gbf/gbf-backend.h
include/gnome-build-1.0/gbf/gbf-build-info.h
include/gnome-build-1.0/gbf/gbf-project-model.h
include/gnome-build-1.0/gbf/gbf-project-util.h
include/gnome-build-1.0/gbf/gbf-project-view.h
include/gnome-build-1.0/gbf/gbf-project.h
include/gnome-build-1.0/gbf/gbf-tree-data.h
include/gnome-build-1.0/gbf/gbf-widgets.h
include/gnome-build-1.0/gbf/glue-plugin.h
lib/gnome-build-1.0/backends/gbf-am.server
lib/gnome-build-1.0/backends/gbf-mkfile.server
lib/gnome-build-1.0/backends/libgbf-am.la
lib/gnome-build-1.0/backends/libgbf-mkfile.la
lib/libgbf-1.la
lib/libgbf-widgets-1.la
lib/pkgconfig/gnome-build-1.0.pc
share/gnome-build/GBF/AmFiles.pm
share/gnome-build/GBF/General.pm
share/gnome-build/GBF/Make.pm
share/gnome-build/glade/create_dialogs.glade
share/gnome-build/glade/gbf-am-dialogs.glade
share/locale/am/LC_MESSAGES/gbf-1.mo
share/locale/az/LC_MESSAGES/gbf-1.mo
share/locale/be/LC_MESSAGES/gbf-1.mo
share/locale/ca/LC_MESSAGES/gbf-1.mo
share/locale/cs/LC_MESSAGES/gbf-1.mo
share/locale/de/LC_MESSAGES/gbf-1.mo
share/locale/el/LC_MESSAGES/gbf-1.mo
share/locale/en_CA/LC_MESSAGES/gbf-1.mo
share/locale/en_GB/LC_MESSAGES/gbf-1.mo
share/locale/es/LC_MESSAGES/gbf-1.mo
share/locale/fi/LC_MESSAGES/gbf-1.mo
share/locale/fr/LC_MESSAGES/gbf-1.mo
share/locale/gl/LC_MESSAGES/gbf-1.mo
share/locale/hr/LC_MESSAGES/gbf-1.mo
share/locale/hu/LC_MESSAGES/gbf-1.mo
share/locale/it/LC_MESSAGES/gbf-1.mo
share/locale/ja/LC_MESSAGES/gbf-1.mo
share/locale/lv/LC_MESSAGES/gbf-1.mo
share/locale/mk/LC_MESSAGES/gbf-1.mo
share/locale/ml/LC_MESSAGES/gbf-1.mo
share/locale/ms/LC_MESSAGES/gbf-1.mo
share/locale/nb/LC_MESSAGES/gbf-1.mo
share/locale/ne/LC_MESSAGES/gbf-1.mo
share/locale/nl/LC_MESSAGES/gbf-1.mo
share/locale/pa/LC_MESSAGES/gbf-1.mo
share/locale/pl/LC_MESSAGES/gbf-1.mo
share/locale/pt/LC_MESSAGES/gbf-1.mo
share/locale/pt_BR/LC_MESSAGES/gbf-1.mo
share/locale/ru/LC_MESSAGES/gbf-1.mo
share/locale/rw/LC_MESSAGES/gbf-1.mo
share/locale/sk/LC_MESSAGES/gbf-1.mo
share/locale/sq/LC_MESSAGES/gbf-1.mo
share/locale/sr/LC_MESSAGES/gbf-1.mo
share/locale/sr@Latn/LC_MESSAGES/gbf-1.mo
share/locale/sv/LC_MESSAGES/gbf-1.mo
share/locale/uk/LC_MESSAGES/gbf-1.mo
share/locale/vi/LC_MESSAGES/gbf-1.mo
share/locale/zh_CN/LC_MESSAGES/gbf-1.mo
share/pixmaps/gbf-build.png
share/pixmaps/gbf-install.png
@dirrm share/gnome-build/glade
@dirrm share/gnome-build/GBF
@dirrm share/gnome-build
@dirrm lib/gnome-build-1.0/backends
@dirrm lib/gnome-build-1.0
@dirrm include/gnome-build-1.0/gbf
@dirrm include/gnome-build-1.0

View file

@ -0,0 +1,8 @@
$NetBSD: distinfo,v 1.1.1.1 2007/01/04 02:51:02 rillig Exp $
SHA1 (gnome-build-0.1.3.tar.bz2) = 2261b865296647a16efc97fa8c5554aa597f7766
RMD160 (gnome-build-0.1.3.tar.bz2) = 8ff1ebc87a64343f87acd56fd550ebc111f1b238
Size (gnome-build-0.1.3.tar.bz2) = 444539 bytes
SHA1 (patch-aa) = e4f1d3b55db03b0e6db86158b2b16bd4ba594037
SHA1 (patch-ab) = a85e1668824b9f62e2e413861c010ade19824918
SHA1 (patch-ac) = 5a7ca1a63080d145e5b8263656d2fbe2be639d1f

View file

@ -0,0 +1,196 @@
$NetBSD: patch-aa,v 1.1.1.1 2007/01/04 02:51:02 rillig Exp $
Replaced the GNU regular expressions with POSIX regular expressions,
since the latter are more portable.
--- src/backends/libgbf_am/gbf-am-build.c.orig 2004-01-17 22:34:56.000000000 +0100
+++ src/backends/libgbf_am/gbf-am-build.c 2007-01-04 03:16:49.000000000 +0100
@@ -38,10 +38,11 @@ typedef struct {
GList *callbacks;
/* Regex structures. */
- struct re_pattern_buffer dir_buf;
- struct re_pattern_buffer warn_buf;
- struct re_pattern_buffer err_buf;
- struct re_registers reg;
+ regex_t dir_buf;
+ regex_t warn_buf;
+ regex_t err_buf;
+#define N_GROUPS 5 /* 1 + maximum number of groups + 1 */
+ regmatch_t reg[N_GROUPS];
/* Build info. */
char *build_dir;
@@ -55,12 +56,9 @@ build_info_free (BuildInfo *info)
if (info->build_dir)
g_free (info->build_dir);
- if (info->dir_buf.fastmap)
- g_free (info->dir_buf.fastmap);
- if (info->warn_buf.fastmap)
- g_free (info->warn_buf.fastmap);
- if (info->err_buf.fastmap)
- g_free (info->err_buf.fastmap);
+ regfree (&info->dir_buf);
+ regfree (&info->warn_buf);
+ regfree (&info->err_buf);
g_free (info);
}
@@ -79,33 +77,36 @@ build_msg (BuildInfo *info,
}
}
+/* Returns a copy of the ''n''th captured group. */
+#define GBF_GETGROUP(n) \
+ g_strndup (line + info->reg[n].rm_so, \
+ info->reg[n].rm_eo - info->reg[n].rm_so)
+
static void
parse_output (BuildInfo *info,
const char *line)
{
- int line_length = strlen (line);
+ size_t line_length = strlen (line);
+ int n;
/* Check for directory changes. */
- if (re_search (&info->dir_buf, line, line_length, 0,
- line_length, &info->reg) != -1) {
- if (info->reg.num_regs >= 2) {
- if (info->build_dir)
- g_free (info->build_dir);
- info->build_dir = g_strndup (line + info->reg.start[1],
- info->reg.end[1] - info->reg.start[1]);
- }
+ if (regexec (&info->dir_buf, line, N_GROUPS, info->reg, 0) == 0) {
+ g_assert (info->reg[1].rm_so != -1 && info->reg[2].rm_so == -1);
+ if (info->build_dir)
+ g_free (info->build_dir);
+ info->build_dir = GBF_GETGROUP(1);
}
/* Check for warnings & errors. */
- if (re_search (&info->warn_buf, line, line_length, 0,
- line_length, &info->reg) != -1) {
+ if (regexec (&info->warn_buf, line, N_GROUPS, info->reg, 0) == 0) {
GbfBuildWarning *warn;
char *text;
+ g_assert (info->reg[3].rm_so != -1 && info->reg[4].rm_so == -1);
+
/* Create new warning. */
warn = g_new0 (GbfBuildWarning, 1);
- text = g_strndup (line + info->reg.start[1],
- info->reg.end[1] - info->reg.start[1]);
+ text = GBF_GETGROUP(1);
if (text[0] != '/') { /* only prepend build_dir if path not absolute */
warn->filename = g_strconcat (info->build_dir, "/", text, NULL);
g_free (text);
@@ -113,25 +114,21 @@ parse_output (BuildInfo *info,
warn->filename = text;
}
- text = g_strndup (line + info->reg.start[2],
- info->reg.end[2] - info->reg.start[2]);
+ text = GBF_GETGROUP(2);
warn->line = atoi (text);
g_free (text);
- warn->warning = g_strndup (line + info->reg.start[3],
- info->reg.end[3] - info->reg.start[3]);
+ warn->warning = GBF_GETGROUP(3);
warn->output = g_strdup (line);
build_msg (info, GBF_BUILD_WARNING, warn);
/* FIXME: We should free warn here, and make copy in gbf-build-info.c. */
- } else if (re_search (&info->err_buf, line, line_length, 0,
- line_length, &info->reg) != -1) {
+ } else if (regexec (&info->err_buf, line, N_GROUPS, info->reg, 0) == 0) {
GbfBuildError *err;
char *text;
/* Create new error. */
err = g_new0 (GbfBuildError, 1);
- text = g_strndup (line + info->reg.start[1],
- info->reg.end[1] - info->reg.start[1]);
+ text = GBF_GETGROUP(1);
if (text[0] != '/') { /* only prepend build_dir if path not absolute */
err->filename = g_strconcat (info->build_dir, "/", text, NULL);
g_free (text);
@@ -139,12 +136,10 @@ parse_output (BuildInfo *info,
err->filename = text;
}
- text = g_strndup (line + info->reg.start[2],
- info->reg.end[2] - info->reg.start[2]);
+ text = GBF_GETGROUP(2);
err->line = atoi (text);
g_free (text);
- err->error = g_strndup (line + info->reg.start[3],
- info->reg.end[3] - info->reg.start[3]);
+ err->error = GBF_GETGROUP(3);
err->output = g_strdup (line);
build_msg (info, GBF_BUILD_ERROR, err);
@@ -153,6 +148,7 @@ parse_output (BuildInfo *info,
build_msg (info, GBF_BUILD_OUTPUT, (gpointer)line);
}
}
+#undef GBF_GETGROUP(n)
static gboolean
build_output_cb (GIOChannel *chan,
@@ -192,24 +188,10 @@ build_output_cb (GIOChannel *chan,
}
static gboolean
-compile_pattern (struct re_pattern_buffer *buf,
+compile_pattern (regex_t *buf,
const char *pattern)
{
- memset (buf, 0, sizeof (struct re_pattern_buffer));
- buf->translate = NULL;
- buf->fastmap = g_malloc (256);
- buf->allocated = 0;
- buf->buffer = NULL;
- buf->can_be_null = 0;
- buf->no_sub = 0;
-
- if (!re_compile_pattern (pattern, strlen (pattern), buf)) {
- if (re_compile_fastmap (buf) != 0) {
- g_warning ("IMPORTANT REGEX FAILED TO CREASTE FASTMAP");
- g_free (buf->fastmap);
- buf->fastmap = NULL;
- }
- } else {
+ if (regcomp(buf, pattern, REG_EXTENDED) != 0) {
g_warning ("IMPORTANT REGEX FAILED TO COMPILE");
return FALSE;
}
@@ -234,7 +216,6 @@ gbf_build_run (GbfAmProject *project,
char *tmp, *msg;
int output, err, pid;
GIOChannel *out_channel, *err_channel;
- reg_syntax_t old_options;
GError *error = NULL;
const char *charset;
GNode *g_node;
@@ -347,9 +328,6 @@ gbf_build_run (GbfAmProject *project,
info->build_dir = NULL;
/* Intialize regexs. */
- old_options = re_syntax_options;
- re_syntax_options = RE_SYNTAX_EGREP;
-
if (!compile_pattern (&info->dir_buf, dir_regex) ||
!compile_pattern (&info->warn_buf, warn_regex) ||
!compile_pattern (&info->err_buf, err_regex)) {
@@ -360,8 +338,6 @@ gbf_build_run (GbfAmProject *project,
return -1;
}
- re_syntax_options = old_options;
-
g_signal_emit_by_name (G_OBJECT (project), "build_start");
tmp = g_strjoinv (" ", (char **) argv);

View file

@ -0,0 +1,191 @@
$NetBSD: patch-ab,v 1.1.1.1 2007/01/04 02:51:02 rillig Exp $
Replaced the GNU regular expressions with POSIX regular expressions,
since the latter are more portable.
--- src/backends/libgbf_mkfile/gbf-mkfile-build.c.orig 2005-09-22 13:18:46.000000000 +0200
+++ src/backends/libgbf_mkfile/gbf-mkfile-build.c 2007-01-04 03:28:10.000000000 +0100
@@ -43,10 +43,11 @@ typedef struct {
GList *callbacks;
/* Regex structures. */
- struct re_pattern_buffer dir_buf;
- struct re_pattern_buffer warn_buf;
- struct re_pattern_buffer err_buf;
- struct re_registers reg;
+ regex_t dir_buf;
+ regex_t warn_buf;
+ regex_t err_buf;
+#define N_GROUPS 5 /* 1 + maximum number of groups + 1 */
+ regmatch_t reg[N_GROUPS];
/* Build info. */
char *build_dir;
@@ -60,12 +61,9 @@ build_info_free (BuildInfo *info)
if (info->build_dir)
g_free (info->build_dir);
- if (info->dir_buf.fastmap)
- g_free (info->dir_buf.fastmap);
- if (info->warn_buf.fastmap)
- g_free (info->warn_buf.fastmap);
- if (info->err_buf.fastmap)
- g_free (info->err_buf.fastmap);
+ regfree (&info->dir_buf);
+ regfree (&info->warn_buf);
+ regfree (&info->err_buf);
g_free (info);
}
@@ -84,6 +82,11 @@ build_msg (BuildInfo *info,
}
}
+/* Returns a copy of the ''n''th captured group. */
+#define GBF_GETGROUP(n) \
+ g_strndup (line + info->reg[n].rm_so, \
+ info->reg[n].rm_eo - info->reg[n].rm_so)
+
static void
parse_output (BuildInfo *info,
const char *line)
@@ -91,26 +94,20 @@ parse_output (BuildInfo *info,
int line_length = strlen (line);
/* Check for directory changes. */
- if (re_search (&info->dir_buf, line, line_length, 0,
- line_length, &info->reg) != -1) {
- if (info->reg.num_regs >= 2) {
- if (info->build_dir)
- g_free (info->build_dir);
- info->build_dir = g_strndup (line + info->reg.start[1],
- info->reg.end[1] - info->reg.start[1]);
- }
+ if (regexec (&info->dir_buf, line, N_GROUPS, info->reg, 0) == 0) {
+ g_assert(info->reg[1].rm_so != -1);
+ g_free (info->build_dir);
+ info->build_dir = GBF_GETGROUP(1);
}
/* Check for warnings & errors. */
- if (re_search (&info->warn_buf, line, line_length, 0,
- line_length, &info->reg) != -1) {
+ if (regexec (&info->warn_buf, line, N_GROUPS, info->reg, 0) == 0) {
GbfBuildWarning *warn;
char *text;
/* Create new warning. */
warn = g_new0 (GbfBuildWarning, 1);
- text = g_strndup (line + info->reg.start[1],
- info->reg.end[1] - info->reg.start[1]);
+ text = GBF_GETGROUP(1);
if (text[0] != '/') { /* only prepend build_dir if path not absolute */
warn->filename = g_strconcat (info->build_dir, "/", text, NULL);
g_free (text);
@@ -118,25 +115,21 @@ parse_output (BuildInfo *info,
warn->filename = text;
}
- text = g_strndup (line + info->reg.start[2],
- info->reg.end[2] - info->reg.start[2]);
+ text = GBF_GETGROUP(2);
warn->line = atoi (text);
g_free (text);
- warn->warning = g_strndup (line + info->reg.start[3],
- info->reg.end[3] - info->reg.start[3]);
+ warn->warning = GBF_GETGROUP(3);
warn->output = g_strdup (line);
build_msg (info, GBF_BUILD_WARNING, warn);
/* FIXME: We should free warn here, and make copy in gbf-build-info.c. */
- } else if (re_search (&info->err_buf, line, line_length, 0,
- line_length, &info->reg) != -1) {
+ } else if (regexec(&info->err_buf, line, N_GROUPS, info->reg, 0) == 0) {
GbfBuildError *err;
char *text;
/* Create new error. */
err = g_new0 (GbfBuildError, 1);
- text = g_strndup (line + info->reg.start[1],
- info->reg.end[1] - info->reg.start[1]);
+ text = GBF_GETGROUP(1);
if (text[0] != '/') { /* only prepend build_dir if path not absolute */
err->filename = g_strconcat (info->build_dir, "/", text, NULL);
g_free (text);
@@ -144,12 +137,10 @@ parse_output (BuildInfo *info,
err->filename = text;
}
- text = g_strndup (line + info->reg.start[2],
- info->reg.end[2] - info->reg.start[2]);
+ text = GBF_GETGROUP(2);
err->line = atoi (text);
g_free (text);
- err->error = g_strndup (line + info->reg.start[3],
- info->reg.end[3] - info->reg.start[3]);
+ err->error = GBF_GETGROUP(3);
err->output = g_strdup (line);
build_msg (info, GBF_BUILD_ERROR, err);
@@ -158,6 +149,7 @@ parse_output (BuildInfo *info,
build_msg (info, GBF_BUILD_OUTPUT, (gpointer)line);
}
}
+#undef GBF_GETGROUP
static gboolean
build_output_cb (GIOChannel *chan,
@@ -197,24 +189,10 @@ build_output_cb (GIOChannel *chan,
}
static gboolean
-compile_pattern (struct re_pattern_buffer *buf,
+compile_pattern (regex_t *buf,
const char *pattern)
{
- memset (buf, 0, sizeof (struct re_pattern_buffer));
- buf->translate = NULL;
- buf->fastmap = g_malloc (256);
- buf->allocated = 0;
- buf->buffer = NULL;
- buf->can_be_null = 0;
- buf->no_sub = 0;
-
- if (!re_compile_pattern (pattern, strlen (pattern), buf)) {
- if (re_compile_fastmap (buf) != 0) {
- g_warning ("IMPORTANT REGEX FAILED TO CREASTE FASTMAP");
- g_free (buf->fastmap);
- buf->fastmap = NULL;
- }
- } else {
+ if (regcomp(buf, pattern, REG_EXTENDED) != 0) {
g_warning ("IMPORTANT REGEX FAILED TO COMPILE");
return FALSE;
}
@@ -239,7 +217,6 @@ gbf_build_run (GbfMkfileProject *proj
char *tmp, *msg;
int output, err, pid;
GIOChannel *out_channel, *err_channel;
- reg_syntax_t old_options;
GError *error = NULL;
const char *charset;
GNode *g_node;
@@ -342,9 +319,6 @@ gbf_build_run (GbfMkfileProject *proj
info->build_dir = NULL;
/* Intialize regexs. */
- old_options = re_syntax_options;
- re_syntax_options = RE_SYNTAX_EGREP;
-
if (!compile_pattern (&info->dir_buf, dir_regex) ||
!compile_pattern (&info->warn_buf, warn_regex) ||
!compile_pattern (&info->err_buf, err_regex)) {
@@ -355,8 +329,6 @@ gbf_build_run (GbfMkfileProject *proj
return -1;
}
- re_syntax_options = old_options;
-
g_signal_emit_by_name (G_OBJECT (project), "build_start");
tmp = g_strjoinv (" ", (char **) argv);

View file

@ -0,0 +1,26 @@
$NetBSD: patch-ac,v 1.1.1.1 2007/01/04 02:51:02 rillig Exp $
Tags: for-upstream
Did you know that gcc has a -Wformat=2 option?
--- src/backends/libgbf_mkfile/gbf-mkfile-properties.c.orig 2005-09-22 13:18:46.000000000 +0200
+++ src/backends/libgbf_mkfile/gbf-mkfile-properties.c 2007-01-04 03:29:10.000000000 +0100
@@ -197,7 +197,7 @@ on_group_widget_destroy (GtkWidget *wid,
gbf_mkfile_project_set_group_config (project, group_id, new_config, &err);
if (err)
{
- g_warning (err->message);
+ g_warning ("%s", err->message);
g_error_free (err);
}
g_object_unref (table);
@@ -290,7 +290,7 @@ on_target_widget_destroy (GtkWidget *wid
gbf_mkfile_project_set_target_config (project, target_id, new_config, &err);
if (err)
{
- g_warning (err->message);
+ g_warning ("%s", err->message);
g_error_free (err);
}
g_object_unref (table);