diff options
author | fredb <fredb> | 2000-02-06 03:49:47 +0000 |
---|---|---|
committer | fredb <fredb> | 2000-02-06 03:49:47 +0000 |
commit | 8cdf71e0852193d5a26e1990f204f602df1db604 (patch) | |
tree | 4453bc5378c9da5344ed2d5a6586858ae46abced | |
parent | 58202b238019e420dd4aac827cea2428e6d5dcf8 (diff) | |
download | pkgsrc-8cdf71e0852193d5a26e1990f204f602df1db604.tar.gz |
- -Install only example "arenarc" into ${PREFIX}/share/Arena, with working
global "arenarc" copied to ${LOCALBASE}/etc, unless it exists already.
- -Fix "fly-by"'s, otherwise known as pop-up help, or "tool-tips".
In particular, disable the the insane heuristic that caused the delay
to increase by one second with each use on systems where setitimer()
has 1s resolution (NetBSD). Prior, it appeared to me that the fly-by's
only worked once or twice, but then never again.
- -Clean up package Makefile.
- -Work all patches to configure into configure.in, and regenerate configure
with "autoconf".
cvs: ----------------------------------------------------------------------
-rw-r--r-- | www/arena/Makefile | 30 | ||||
-rw-r--r-- | www/arena/files/patch-sum | 7 | ||||
-rw-r--r-- | www/arena/patches/patch-ab | 110 | ||||
-rw-r--r-- | www/arena/patches/patch-ae | 37 | ||||
-rw-r--r-- | www/arena/patches/patch-ag | 123 | ||||
-rw-r--r-- | www/arena/pkg/PLIST | 6 |
6 files changed, 247 insertions, 66 deletions
diff --git a/www/arena/Makefile b/www/arena/Makefile index dc67f013e48..cc6f447fc23 100644 --- a/www/arena/Makefile +++ b/www/arena/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.16 2000/02/05 14:02:07 wiz Exp $ +# $NetBSD: Makefile,v 1.17 2000/02/06 03:49:47 fredb Exp $ # FreeBSD Id: Makefile,v 1.10 1998/05/04 20:22:31 jseger Exp # @@ -10,19 +10,21 @@ MASTER_SITES= ftp://ftp.yggdrasil.com/pub/dist/web/arena/ MAINTAINER= tv@netbsd.org HOMEPAGE= http://www.yggdrasil.com/Products/Arena/ -DEPENDS= gettext-0.10.*:../../devel/gettext \ - jpeg-6b:../../graphics/jpeg \ - libwww-5.2.8:../../www/libwww \ - png-1.0.3:../../graphics/png \ - xpm-3.4k:../../graphics/xpm +BUILD_DEPENDS+= autoconf:../../devel/autoconf +DEPENDS+= gettext-0.10.*:../../devel/gettext +DEPENDS+= jpeg-6b:../../graphics/jpeg +DEPENDS+= libwww-5.2.8:../../www/libwww +DEPENDS+= png-1.0.3:../../graphics/png +DEPENDS+= xpm-3.4k:../../graphics/xpm NOT_FOR_PLATFORM= *-*-alpha #Runs, displays black screen -USE_GMAKE= yes -MAKEFILE= makefile GNU_CONFIGURE= yes +MAKEFILE= makefile +USE_GMAKE= yes USE_X11BASE= yes -CONFIGURE_ARGS+= --without-debug + +CONFIGURE_ARGS+= --without-debug --with-arenarc-dir=${LOCALBASE}/etc CONFIGURE_ARGS+= --with-libwww-include=${LOCALBASE}/include/w3c-libwww CONFIGURE_ARGS+= --with-libwww-libdir=${LOCALBASE}/lib CONFIGURE_ARGS+= --with-libwww-config-h-dir=${WRKDIR} @@ -31,19 +33,21 @@ CONFIGURE_ENV+= CPPFLAGS="-I${LOCALBASE}/include -I${X11BASE}/include -I${WRKDI # Arena requires libwww's "config.h" header - it is installed as "wwwconf.h", # so make a symlink in ${WRKDIR} and add it to the -I list. pre-configure: - @${LN} -sf ${LOCALBASE}/include/w3c-libwww/wwwconf.h ${WRKDIR}/config.h + ${LN} -sf ${LOCALBASE}/include/w3c-libwww/wwwconf.h ${WRKDIR}/config.h + cd ${WRKSRC} && autoconf do-install: ${INSTALL_PROGRAM} ${WRKSRC}/Arena/netbsd/arena ${PREFIX}/bin/ - ${INSTALL_DATA_DIR} ${PREFIX}/share/Arena -# XXX not quite right, breaks on some platforms - ${INSTALL_DATA} ${WRKSRC}/Arena/Source/arenarc ${PREFIX}/share/Arena/ + ${INSTALL_DATA} ${WRKSRC}/Arena/Source/arenarc ${PREFIX}/share/examples/ + if [ ! -f ${LOCALBASE}/etc/arenarc ]; then \ + ${CP} ${PREFIX}/share/examples/arenarc ${LOCALBASE}/etc/; fi ${INSTALL_DATA_DIR} ${PREFIX}/share/locale/en/LC_MESSAGES msgfmt --output-file=${WRKDIR}/Arena.gmo ${WRKSRC}/Arena/LC_MESSAGES/en/Arena.po ${INSTALL_DATA} ${WRKDIR}/Arena.gmo ${PREFIX}/share/locale/en/LC_MESSAGES/ ${INSTALL_DATA} ${WRKSRC}/Arena/doc/arena.man ${PREFIX}/man/man1/arena.1 .include "../../mk/bsd.prefs.mk" + .if defined(EXTRACT_USING_PAX) GLOBAL_EXCLUDE_ARG= -c .else diff --git a/www/arena/files/patch-sum b/www/arena/files/patch-sum index 393ae074b3d..4d5fe936c2d 100644 --- a/www/arena/files/patch-sum +++ b/www/arena/files/patch-sum @@ -1,8 +1,9 @@ -$NetBSD: patch-sum,v 1.2 1999/10/14 07:27:35 fredb Exp $ +$NetBSD: patch-sum,v 1.3 2000/02/06 03:49:49 fredb Exp $ MD5 (patch-aa) = 0e622e0708e094ab8df8c846ba74a49d -MD5 (patch-ab) = 6cf33eefd79e0573ac6ac8bc907eb2bb +MD5 (patch-ab) = 55f4eb5525d3538fc8357305fea81b6a MD5 (patch-ac) = 40905e3365148fe285587c3486b9f2dd MD5 (patch-ad) = 8cceb647b902faea6bbbdf0c895b32fc -MD5 (patch-ae) = abe39f7487e08b2faad6e3db6870f5f6 +MD5 (patch-ae) = 239dba602d23271695a07188c59fa38c MD5 (patch-af) = ff3e759482b7a51afa19a641821b422e +MD5 (patch-ag) = e416d54f3774c1aa9cf4e8736e928289 diff --git a/www/arena/patches/patch-ab b/www/arena/patches/patch-ab index 67a6fde4e24..0dde5804cf1 100644 --- a/www/arena/patches/patch-ab +++ b/www/arena/patches/patch-ab @@ -1,52 +1,72 @@ -$NetBSD: patch-ab,v 1.2 1999/10/14 07:27:35 fredb Exp $ +$NetBSD: patch-ab,v 1.3 2000/02/06 03:49:49 fredb Exp $ ---- configure.orig Wed Nov 25 05:21:07 1998 -+++ configure Sun Oct 10 12:01:16 1999 -@@ -2517,7 +2517,7 @@ - # - LibWWW_headers="WWWLib.h WWWApp.h WWWFile.h WWWHTTP.h WWWMIME.h WWWNews.h WWWTrans.h" - LibWWW_HTAncMan_h="HTAncMan.h" --LibWWW_config_h="config.h" -+LibWWW_config_h="wwwconf.h" +--- configure.in.orig Wed Nov 25 05:20:37 1998 ++++ configure.in Sun Oct 31 00:59:09 1999 +@@ -333,13 +333,13 @@ + ) + AC_ARG_WITH(libwww_libdir, + [ --with-libwww-libdir=DIR +- Specify directory where the libwww.a resides.], ++ Specify directory where the libwww modules reside.], + [ + if test "${with_libwww_libdir+set}" = "set" ; + then + if test "${with_libwww_libdir}" = "no" ; + then +- AC_MSG_WARN(Without libwww.a library? =O) ++ AC_MSG_WARN(Without libwww modules? =O) + else + libwww_library_dir="${with_libwww_libdir}" + if test -d ${libwww_library_dir} ; +@@ -395,7 +395,7 @@ + ] + ) +-libwww="libwww" ++libwww="libwwwinit" # -@@ -2853,22 +2853,22 @@ + if test "${libwww_include+set}" = "set" && \ +@@ -474,7 +474,7 @@ + fi + fi # - # If not all defined yet, then we've failed with it. +- libwww_dep="$libwww" ++ libwww_dep="$libwwwinit" # -- if eval ${libwww_not_defined_yet} ; -- then -- ac_path_libwww=missing -- libwww_dir="" -- libwww_version="" -- libwww_distribution="" -- libwww_library_dir="" -- libwww_include="" -- libwww_config_h_dir="" -- libwww_suffix="" -- libwww_library="" -- libwww_make_dir="" -- libwww_make_target="" -- echo "$ac_t""no" 1>&6 -- { echo "configure: error: Cannot find W3C libwww. Do worry! Arena cannot be built." 1>&2; exit 1; } -- fi -+# if eval ${libwww_not_defined_yet} ; -+# then -+# ac_path_libwww=missing -+# libwww_dir="" -+# libwww_version="" -+# libwww_distribution="" -+# libwww_library_dir="" -+# libwww_include="" -+# libwww_config_h_dir="" -+# libwww_suffix="" -+# libwww_library="" -+# libwww_make_dir="" -+# libwww_make_target="" -+# echo "$ac_t""no" 1>&6 -+# { echo "configure: error: Cannot find W3C libwww. Do worry! Arena cannot be built." 1>&2; exit 1; } -+# fi + # Aren't all the necessary symbols already defined? # - # If we get managed to reach this point, - # then all the libwww stuff has been already found. +@@ -531,7 +531,7 @@ + # + for ac_dir in $LibWWWPATH ; + do +- if test -f ${ac_dir}/libwww.a && \ ++ if test -f ${ac_dir}/libwwwinit.a && \ + test -f ${ac_dir}/include/WWWLib.h && \ + test -f ${ac_dir}/config.h ; + then +@@ -566,7 +566,7 @@ + test -f ${ac_dir}/config.h.in ; + then + ac_dir_f="`cd $ac_dir ; $BINPWD`" +- libwww_dep="libwww" ++ libwww_dep="libwwwinit" + : ${libwww_dir:="$ac_dir_f"} + libwww_version="5" + libwww_distribution="source" +@@ -897,6 +897,15 @@ + + AC_CHECK_FUNCS(snprintf vsnprintf strerror strncpy strndup strdup strstr) + ++if test "${ac_cv_header_sys_time_h}" = "yes" ; ++ then ++ AC_CHECK_FUNCS(setitimer) ++ if test "${ac_cv_func_setitimer}" = "yes" ; ++ then ++dnl XXX Need to actually test for itimerval in sys/time.h! ++ AC_DEFINE(SETITIMER_USES_TIMEVAL) ++ fi ++fi + + # + # Check if we want to use index or strchr diff --git a/www/arena/patches/patch-ae b/www/arena/patches/patch-ae index 381966b4630..d86d7edc0d2 100644 --- a/www/arena/patches/patch-ae +++ b/www/arena/patches/patch-ae @@ -1,7 +1,7 @@ -$NetBSD: patch-ae,v 1.3 1999/10/14 07:27:35 fredb Exp $ +$NetBSD: patch-ae,v 1.4 2000/02/06 03:49:49 fredb Exp $ --- arena.h.in.orig Sun Mar 8 11:35:06 1998 -+++ arena.h.in Sun Oct 10 13:46:21 1999 ++++ arena.h.in Sat Oct 30 17:21:26 1999 @@ -60,6 +60,9 @@ # define ARENA_TRACE_MASK 0xffffffff /* Default mask for libwww debug tracing */ @@ -12,3 +12,36 @@ $NetBSD: patch-ae,v 1.3 1999/10/14 07:27:35 fredb Exp $ #endif /* Persistent cache location. +@@ -267,9 +270,9 @@ + # define ARENA_FLYBY_HINT 1 + # define ARENA_FLYBY_TERSE 2 + # define ARENA_FLYBY_VERBOSE 3 +-# define ARENA_FLYBY_HOW_MUCH ARENA_FLYBY_HINT ++# define ARENA_FLYBY_HOW_MUCH ARENA_FLYBY_VERBOSE + +-# define ARENA_FLYBY_TIMER_INCREMENT 2 ++# define ARENA_FLYBY_TIMER_INCREMENT 0 + #endif + + +@@ -445,6 +448,20 @@ + */ + #ifndef HAVE_STRSTR + # undef HAVE_STRSTR ++#endif ++ ++/* Define the HAVE_SETITIMER preprocessor variable, ++ * if you have setitimer(). ++ */ ++#ifndef HAVE_SETITIMER ++# undef HAVE_SETITIMER ++#endif ++ ++/* Define the SETITIMER_USES_TIMEVAL preprocessor variable, ++ * if your setitimer() uses timevals (uS resolution). ++ */ ++#ifndef SETITIMER_USES_TIMEVAL ++# undef SETITIMER_USES_TIMEVAL + #endif + + diff --git a/www/arena/patches/patch-ag b/www/arena/patches/patch-ag new file mode 100644 index 00000000000..b36760e346a --- /dev/null +++ b/www/arena/patches/patch-ag @@ -0,0 +1,123 @@ +$NetBSD: patch-ag,v 1.1 2000/02/06 03:49:49 fredb Exp $ + +--- Arena/Source/main.c.orig Sun Mar 8 11:22:20 1998 ++++ Arena/Source/main.c Sat Oct 30 09:42:10 1999 +@@ -80,7 +80,31 @@ + static int FlyByStoredX = -2; + static int FlyByStoredY = -2; + static int FlyByShowing = 0; ++#if defined(HAVE_SETITIMER) ++/* ++ * Actual time to activate the "fly by" roll-overs is at least twice the value ++ * set in TIMER_ON, i.e. 2*180000uS = 0.36 seconds. SET_TIMER and DISABLE_TIMER ++ * are fashioned as macros to make it easier to add code to allow for ++ * implementation differences. ++ * ++ * Enabling this completely disables the misbegotten FlyByTimerIncrement. ++ * It would not be difficult to fix it, and it could even benefit from ++ * the smaller timeval/timespec increments, but to me, it's just not worth ++ * the trouble. ++ * ++ * October 30, 1999 -- Frederick Bruckman <fredb@netbsd.org> ++ */ ++#if defined(SETITIMER_USES_TIMEVAL) ++const struct itimerval TIMER_ON = {{0, 0}, {0, 180000}}; ++#else /* assume timespec */ ++const struct itimerval TIMER_ON = {{0, 0}, {0, 180000000}}; ++#endif /* SETITIMER_USES_TIMEVAL */ ++const struct itimerval TIMER_OFF = {{0, 0}, {0, 0}}; ++#define SET_TIMER setitimer(ITIMER_REAL, &TIMER_ON, 0); ++#define DISABLE_TIMER setitimer(ITIMER_REAL, &TIMER_OFF, 0); ++#else + static int FlyByAlarm = 0; ++#endif /* HAVE_SETITIMER */ + static Window FlyByWindow; + static GC FlyByGC; + static XFontStruct *FlyByFont = NULL; +@@ -702,8 +726,12 @@ + static int Lx, Ly; + + ++#if defined(HAVE_SETITIMER) ++ DISABLE_TIMER ++#else + FlyByAlarm = 0; + alarm(FlyByAlarm); ++#endif + signal(SIGALRM, SIG_DFL); + if (FlyByHints == ARENA_FLYBY_NONE) return; + +@@ -720,7 +748,9 @@ + char *text = ToolBarFlyByText(i); + FlyByCreate(FlyByStoredX, FlyByStoredY+20, text ? text :"(null)"); + FlyByShowing = i; ++#if !defined(HAVE_SETITIMER) + FlyByData[i-1].displayed_times += FlyByTimerIncrement; ++#endif + } + else + { +@@ -728,12 +758,16 @@ + * and it's the same, we'll diplay it then! Use "last" timer + * delay... but NOT zero! + */ +- FlyByAlarm = 1; + signal(SIGALRM, ArenaSIGALRMHandler); + ++#if defined(HAVE_SETITIMER) ++ SET_TIMER ++#else ++ FlyByAlarm = 1; + if (FlyByData[i-1].displayed_times == 0) + FlyByData[i-1].displayed_times = 1; + alarm(FlyByData[i-1].displayed_times); ++#endif + } + } + } +@@ -820,8 +854,8 @@ + h = SPACING(FlyByFont) * nline; + + /* decide whether x and y are ok or need to be modified */ +- x = (x + w > display_width ? display_width - w - 1 : x); +- y = (y + h > display_height ? display_height - h - 1 : y); ++ x = (x + w > win_width ? win_width - w - 20 : x); ++ y = (y + h > win_height ? win_height - h - 20 : y); + + /* create window */ + FlyByWindow = XCreateSimpleWindow(display, win, x, y, w, h, 1, +@@ -879,6 +913,11 @@ + */ + void FlyByDestroy(void) + { ++#if defined(HAVE_SETITIMER) ++ DISABLE_TIMER ++ signal(SIGALRM, SIG_DFL); ++ FlyByStoredX = FlyByStoredY = -1; ++#else + if (FlyByAlarm != 0) + { + FlyByAlarm = 0; +@@ -886,6 +926,7 @@ + FlyByStoredX = FlyByStoredY = -1; + signal(SIGALRM, SIG_DFL); + } ++#endif + + if (FlyByShowing) + { +@@ -1286,9 +1326,13 @@ + int i = ToolBarWhichButton(FlyByStoredX, FlyByStoredY); + if (i > 0) + { +- FlyByAlarm = 1; + signal(SIGALRM, ArenaSIGALRMHandler); ++#if defined(HAVE_SETITIMER) ++ SET_TIMER ++#else ++ FlyByAlarm = 1; + alarm(FlyByAlarm); ++#endif + } + } + } diff --git a/www/arena/pkg/PLIST b/www/arena/pkg/PLIST index 2545e2ddfff..9dbfadd6baa 100644 --- a/www/arena/pkg/PLIST +++ b/www/arena/pkg/PLIST @@ -1,8 +1,8 @@ -@comment $NetBSD: PLIST,v 1.4 1999/10/14 07:27:36 fredb Exp $ +@comment $NetBSD: PLIST,v 1.5 2000/02/06 03:49:50 fredb Exp $ bin/arena +share/examples/arenarc +@exec if [ ! -f ${LOCALBASE}/etc/arenarc ]; then cp %D/share/examples/arenarc ${LOCALBASE}/etc/; fi man/man1/arena.1 -share/Arena/arenarc -@dirrm share/Arena share/locale/en/LC_MESSAGES/Arena.gmo @unexec (rmdir %D/share/locale/en/LC_MESSAGES 2>/dev/null || true) @unexec (rmdir %D/share/locale/en 2>/dev/null || true) |