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.