Opened 17 years ago

Last modified 15 years ago

#13116 closed defect

ettercap-NG-0.7.3 doesn't compile on Mac OS X Leopard (10.5) — at Initial Version

Reported by: neetocin@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.5.0
Keywords: Cc:
Port:

Description

When one tries to install ettercap-ng by "sudo port install ettercap-ng" the compilation fails with a message:

---> Building ettercap-ng with target all Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_net_ettercap-ng/work/ettercap-NG-0.7.3" && make all " returned error 2 Command output: wdg.c:821: error: dereferencing pointer to incomplete type wdg.c:821: error: dereferencing pointer to incomplete type wdg.c:823: error: dereferencing pointer to incomplete type wdg.c:824: error: dereferencing pointer to incomplete type wdg.c:826: error: dereferencing pointer to incomplete type wdg.c:826: error: dereferencing pointer to incomplete type wdg.c: In function 'wdg_get_ncols': wdg.c:837: error: dereferencing pointer to incomplete type wdg.c:838: error: dereferencing pointer to incomplete type wdg.c:840: error: dereferencing pointer to incomplete type wdg.c:840: error: dereferencing pointer to incomplete type wdg.c:842: error: dereferencing pointer to incomplete type wdg.c:843: error: dereferencing pointer to incomplete type wdg.c:845: error: dereferencing pointer to incomplete type wdg.c:845: error: dereferencing pointer to incomplete type wdg.c: In function 'wdg_get_begin_x': wdg.c:855: error: dereferencing pointer to incomplete type wdg.c:856: error: dereferencing pointer to incomplete type wdg.c:858: error: dereferencing pointer to incomplete type wdg.c:858: error: dereferencing pointer to incomplete type wdg.c: In function 'wdg_get_begin_y': wdg.c:865: error: dereferencing pointer to incomplete type wdg.c:866: error: dereferencing pointer to incomplete type wdg.c:868: error: dereferencing pointer to incomplete type wdg.c:868: error: dereferencing pointer to incomplete type make[4]: * [libwdg_a-wdg.o] Error 1 make[3]: * [all-recursive] Error 1 make[2]: * [all-recursive] Error 1 make[1]: * [all-recursive] Error 1 make: * [all-recursive] Error 1

Commentary:

Upon brief analysis of this code, I think the reason why this is happening is because a "typedef unsigned char u_char" got removed somewhere. Here are the patches to fix it:

--- ettercap-NG-0.7.3.old/src/interfaces/curses/widgets/wdg.c 2004-03-18 09:22:19.000000000 -0500 +++ ettercap-NG-0.7.3.new/src/interfaces/curses/widgets/wdg.c 2007-11-03 01:43:01.000000000 -0400 @@ -78,9 +78,9 @@

void wdg_set_size(struct wdg_object *wo, int x1, int y1, int x2, int y2); void wdg_draw_object(struct wdg_object *wo); size_t wdg_get_type(struct wdg_object *wo);

-void wdg_init_color(u_char pair, u_char fg, u_char bg); -void wdg_set_color(wdg_t *wo, size_t part, u_char pair); -void wdg_screen_color(u_char pair); +void wdg_init_color(unsigned char pair, unsigned char fg, unsigned char bg); +void wdg_set_color(wdg_t *wo, size_t part, unsigned char pair); +void wdg_screen_color(unsigned char pair);

size_t wdg_get_nlines(struct wdg_object *wo); size_t wdg_get_ncols(struct wdg_object *wo);

@@ -753,7 +753,7 @@

/*

  • set the color of an object */

-void wdg_set_color(wdg_t *wo, size_t part, u_char pair) +void wdg_set_color(wdg_t *wo, size_t part, unsigned char pair)

{

switch (part) {

case WDG_COLOR_SCREEN:

@@ -780,7 +780,7 @@

/*

  • init a color pair */

-void wdg_init_color(u_char pair, u_char fg, u_char bg) +void wdg_init_color(unsigned char pair, unsigned char fg, unsigned char bg)

{

init_pair(pair, fg, bg);

}

@@ -788,7 +788,7 @@

/*

  • erase the screen with the specified color */

-void wdg_screen_color(u_char pair) +void wdg_screen_color(unsigned char pair)

{

wbkgd(stdscr, COLOR_PAIR(pair)); erase();


--- ettercap-NG-0.7.3.old/src/interfaces/curses/widgets/wdg.h 2004-09-28 09:50:37.000000000 -0400 +++ ettercap-NG-0.7.3.new/src/interfaces/curses/widgets/wdg.h 2007-11-03 01:43:38.000000000 -0400 @@ -186,12 +186,12 @@

int x1, y1, x2, y2;

/* object colors */

  • u_char screen_color;
  • u_char border_color;
  • u_char focus_color;
  • u_char title_color;
  • u_char window_color;
  • u_char select_color;

+ unsigned char screen_color; + unsigned char border_color; + unsigned char focus_color; + unsigned char title_color; + unsigned char window_color; + unsigned char select_color;

/* title */ char *title;

@@ -301,15 +301,15 @@

extern size_t wdg_get_type(wdg_t *wo); extern void wdg_set_focus(wdg_t *wo); extern void wdg_set_title(wdg_t *wo, char *title, size_t align);

-extern void wdg_init_color(u_char pair, u_char fg, u_char bg); -extern void wdg_set_color(wdg_t *wo, size_t part, u_char pair); +extern void wdg_init_color(unsigned char pair, unsigned char fg, unsigned char bg); +extern void wdg_set_color(wdg_t *wo, size_t part, unsigned char pair);

#define WDG_COLOR_SCREEN 0 #define WDG_COLOR_TITLE 1 #define WDG_COLOR_BORDER 2 #define WDG_COLOR_FOCUS 3 #define WDG_COLOR_WINDOW 4 #define WDG_COLOR_SELECT 5

-extern void wdg_screen_color(u_char pair); +extern void wdg_screen_color(unsigned char pair);

/* object size */ extern size_t wdg_get_nlines(wdg_t *wo);

Since this is my first bug report, I'm sorry if I breached some mysterious protocol that I don't know about or I botched up the diff files since it's my first time.

Change History (0)

Note: See TracTickets for help on using tickets.