Bug 64635 - New port: sysutils/hourglass a real-time application to learn >how CPU scheduling works
Summary: New port: sysutils/hourglass a real-time application to learn >how CPU schedu...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Thierry Thomas
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-03-23 21:40 UTC by Olivier Tharan
Modified: 2004-04-12 16:57 UTC (History)
0 users

See Also:


Attachments
hourglass.shar (2.22 KB, text/plain)
2004-03-23 21:40 UTC, Olivier Tharan
no flags Details
hourglass.shar (2.48 KB, text/plain; charset=iso-8859-1)
2004-03-25 18:25 UTC, Olivier Tharan
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Olivier Tharan 2004-03-23 21:40:06 UTC
Make a new port for hourglass, as requested by David O'Brien.

This port is a real-time application that can be used to learn how CPU
scheduling in a general-purpose operating system works at microsecond and
millisecond granularities.

Tested it on 4-STABLE and 5.2.1-RELEASE.
portlint -CN and portlint -abvt ok!

I don't knwo how it performs with the thread library on -CURRENT (one strange
thing is the dependance on linuxthreads!), so there may be some things to
check here (I will be happy to integrate them).

How-To-Repeat: This is a new port
Comment 1 Thierry Thomas freebsd_committer freebsd_triage 2004-03-23 22:12:24 UTC
Responsible Changed
From-To: freebsd-ports-bugs->thierry

I'll take it.
Comment 2 Olivier Tharan 2004-03-25 18:25:33 UTC
* Olivier Tharan <olive@oban.frmug.org> (20040323 22:32):
> >Description:
> Make a new port for hourglass, as requested by David O'Brien.
> 
> This port is a real-time application that can be used to learn how CPU
> scheduling in a general-purpose operating system works at microsecond and
> millisecond granularities.
> 
> Tested it on 4-STABLE and 5.2.1-RELEASE.
> portlint -CN and portlint -abvt ok!

Here is a new shar with some modifications suggested by thierry@:

- use GNU_CONFIGURE
- install the CALIBRATION file documentation

-- 
olive
Comment 3 Olivier Tharan 2004-04-12 08:48:40 UTC
* Olivier Tharan <olive@oban.frmug.org> (20040323 22:32):
> >Synopsis:       New port: sysutils/hourglass a real-time application to learn >how CPU scheduling works

Here is a new shar, with patches suggested by thierry@ to make
the port LOCALBASE and CFLAGS -compliant.

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	hourglass
#	hourglass/distinfo
#	hourglass/Makefile
#	hourglass/pkg-descr
#	hourglass/pkg-plist
#	hourglass/files
#	hourglass/files/patch-configure
#	hourglass/files/patch-src::Makefile.in
#
echo c - hourglass
mkdir -p hourglass > /dev/null 2>&1
echo x - hourglass/distinfo
sed 's/^X//' >hourglass/distinfo << 'END-of-hourglass/distinfo'
XMD5 (hourglass-1.0.0.tar.gz) = a282877889bddd3307e7ef7674f32415
XSIZE (hourglass-1.0.0.tar.gz) = 112374
END-of-hourglass/distinfo
echo x - hourglass/Makefile
sed 's/^X//' >hourglass/Makefile << 'END-of-hourglass/Makefile'
X# New ports collection makefile for:	hourglass
X# Date created:		23 March 2004
X# Whom:			olive
X#
X# $FreeBSD$
X#
X
XPORTNAME=	hourglass
XPORTVERSION=	1.0.0
XCATEGORIES=	sysutils parallel
XMASTER_SITES=	http://www.cs.utah.edu/~regehr/hourglass/
X
XMAINTAINER=	olive@oban.frmug.org
XCOMMENT=	A real-time application useful to learn how CPU scheduling works
X
XRUN_DEPENDS=	jgraph:${PORTSDIR}/graphics/jgraph
X
XUSE_REINPLACE=	yes
XGNU_CONFIGURE=	yes
XCONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
X
X.include <bsd.port.pre.mk>
X
X.if ${OSVERSION} >= 500035
XLIB_DEPENDS+=	lthread.3:${PORTSDIR}/devel/linuxthreads
X.else
XLIB_DEPENDS+=	lthread.2:${PORTSDIR}/devel/linuxthreads
X.endif
X
Xpost-patch:
X	@${REINPLACE_CMD} -e 's,%LOCALBASE%,${LOCALBASE},g' \
X		${WRKSRC}/configure
X
Xpost-install:
X.if !defined(NOPORTDOCS)
X	${MKDIR} ${DOCSDIR}
X	${INSTALL_MAN} ${WRKSRC}/CALIBRATION ${DOCSDIR}
X.endif
X
X.include <bsd.port.post.mk>
END-of-hourglass/Makefile
echo x - hourglass/pkg-descr
sed 's/^X//' >hourglass/pkg-descr << 'END-of-hourglass/pkg-descr'
XThis is a port of hourglass, a synthetic real-time application that
Xcan be used to learn how CPU scheduling in a general-purpose operating
Xsystem works at microsecond and millisecond granularities.
X
X- It creates very detailed map of when each Hourglass thread has
X  access to the CPU
X
X- It supports multiple thread execution models; e.g. periodic and
X  CPU-bound
X
X- It acts as an abstraction layer for threading, timing, and CPU
X  scheduling functionality on Unix- and Win32-based systems
X
XWWW: http://www.cs.utah.edu/~regehr/hourglass/
END-of-hourglass/pkg-descr
echo x - hourglass/pkg-plist
sed 's/^X//' >hourglass/pkg-plist << 'END-of-hourglass/pkg-plist'
Xbin/busy
Xbin/hourglass
X%%PORTDOCS%%%%DOCSDIR%%/CALIBRATION
X%%PORTDOCS%%@dirrm %%DOCSDIR%%
END-of-hourglass/pkg-plist
echo c - hourglass/files
mkdir -p hourglass/files > /dev/null 2>&1
echo x - hourglass/files/patch-configure
sed 's/^X//' >hourglass/files/patch-configure << 'END-of-hourglass/files/patch-configure'
X--- configure.orig	Mon Apr 12 09:28:22 2004
X+++ configure	Mon Apr 12 09:31:04 2004
X@@ -3994,8 +3994,10 @@
X   on_unix='yes' ;
X   on_windows='no' ;;
X *freebsd*)
X-  LDFLAGS='-llthread -llgcc_r -L/usr/local/lib' ;
X-  CFLAGS='-D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads' ;
X+  CFLAGS_sav=$CFLAGS ;
X+  LDFLAGS_sav=$LDFLAGS ;
X+  LDFLAGS="$LDFLAGS_sav -llthread -llgcc_r -L%LOCALBASE%/lib" ;
X+  CFLAGS="$CFLAGS_sav -D_THREAD_SAFE -I%LOCALBASE%/include/pthread/linuxthreads" ;
X   on_unix='yes' ;
X   on_windows='no' ;;
X *cygwin*)
END-of-hourglass/files/patch-configure
echo x - hourglass/files/patch-src::Makefile.in
sed 's/^X//' >hourglass/files/patch-src::Makefile.in << 'END-of-hourglass/files/patch-src::Makefile.in'
X--- src/Makefile.in.orig	Mon Apr 12 09:27:10 2004
X+++ src/Makefile.in	Mon Apr 12 09:28:02 2004
X@@ -188,7 +188,7 @@
X AM_CFLAGS = -Wall -Wshadow -Wpointer-arith				\
X 	-Wcast-qual -Wcast-align -Wwrite-strings -Wconversion		\
X 	-Waggregate-return -Wstrict-prototypes				\
X-	-Wmissing-prototypes -g -O3					\
X+	-Wmissing-prototypes -g					\
X 	$(CMU_RK_INCLUDES) $(TS_RK_INCLUDES) $(HRTIMERS_INCLUDES)	\
X 	$(HLS_INCLUDES) $(RTCTIMERS_INCLUDES)
X 
END-of-hourglass/files/patch-src::Makefile.in
exit

-- 
olive
Comment 4 Thierry Thomas freebsd_committer freebsd_triage 2004-04-12 16:56:29 UTC
State Changed
From-To: open->closed


Committed, thanks! 
(without pkg-plist)