Opened 9 years ago

Last modified 7 years ago

#47801 closed request

Proposal for adding more recent rpcgen (from FreeBSD2007) — at Initial Version

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

Description

Hi,

I have been helping the maintainer of the Octave package for Instrument Control get his software building on OS-X. The major issue was that rpcgen in OS-X is an older version that does not support the '-M' thread-safe code generation option. I found that a relatively recent (but not the most recent) copy of the FreeBSD sources for Sun Microsystems' rpcgen will build as-is so I would like to ask if we can have this rpcgen available as a MacPort. Could the more recent rpcgen be added to MacPorts?

Below is a small script that downloads and builds rpcgen from a 2007 era FreeBSD-current. To show the difference in use options, I have also included the help message from both rpcgen - the first is for OS-X rpcgen which mentions that it is has a SunOS 4.1 compatibility mode and the second is the more recent FreeBSD version which has the new '-M' switch and mentions FreeBSD 4.X compatibility.

Thanks, Phillip Musumeci

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

# # Simply download FreeBSD-current rpcgen sources and build for OS-X # - Some octave packages require a more modern version of rpcgen. The # Sun Microsystems version of rpcgen as found in FreeBSD in 2007 will # build as-is, so we use it to replace a much earlier OS-X version. # # p.musumeci@… 21-May-2015 #

SRV=http://mirror.ancl.hawaii.edu/pub/FreeBSD/FreeBSD-current/src/usr.bin/rpcgen

SRC="Makefile rpc_clntout.c rpc_cout.c rpc_hout.c rpc_main.c rpc_parse.c rpc_parse.h rpc_sample.c rpc_scan.c rpc_scan.h rpc_svcout.c rpc_tblout.c rpc_util.c rpc_util.h rpcgen.1"

mkdir -p sun_rpcgen cd sun_rpcgen

for x in $SRC ; do

echo "Downloading $x" fetch -m $SRV/$x done

######################################## mv Makefile Makefile.sun echo '# Simple build of rpcgen

all:

cc -O -o rpcgen *.c

' > Makefile

######################################## echo 'These files for Sun Microsystems rpcgen were downloaded from

http://mirror.ancl.hawaii.edu/pub/FreeBSD/FreeBSD-current/src/usr.bin/rpcgen

and used as-is to build an rpcgen on OS-X.' > README.txt

######################################## ls -l echo 'Build command: cc -O -o rpcgen *.c'

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Current OS-X

giotto $ /usr/bin/rpcgen usage: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/rpcgen infile

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/rpcgen [-a][-b][-C][-Dname[=value]] -i size [-I [-K seconds]] [-A][-L][-M toolkit][-N][-T] infile /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/rpcgen [-c | -h | -l | -m | -t | -Sc | -Ss] [-o outfile] [infile] /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/rpcgen [-s nettype]* [-o outfile] [infile] /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/rpcgen [-n netid]* [-o outfile] [infile]

options: -A generate svc_caller() function -a generate all files, including samples -b backward compatibility mode (generates code for SunOS 4.1) -c generate XDR routines -C ANSI C mode -Dname[=value] define a symbol (same as #define) -h generate header file -i size size at which to start generating inline code -I generate code for inetd support in server (for SunOS 4.1) -K seconds server exits after K seconds of inactivity -l generate client side stubs -L server errors will be printed to syslog -m generate server side stubs -n netid generate server code that supports named netid -N supports multiple arguments and call-by-value -o outfile name of the output file -s nettype generate server code that supports named nettype -Sc generate sample client code that uses remote procedures -Ss generate sample server code that defines remote procedures -t generate RPC dispatch table -T generate code to support RPC dispatch tables -Y path directory name to find C preprocessor (cpp)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FreeBSD from around 2007

giotto $ rpcgen usage: rpcgen infile

rpcgen [-abCLNTM] [-Dname[=value]] [-i size][-I -P [-K seconds]] [-Y path] infile rpcgen [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm][-o outfile] [infile] rpcgen [-s nettype]* [-o outfile] [infile] rpcgen [-n netid]* [-o outfile] [infile]

options: -a generate all files, including samples -b backward compatibility mode (generates code for FreeBSD 4.X) -c generate XDR routines -C ANSI C mode -Dname[=value] define a symbol (same as #define) -h generate header file -i size size at which to start generatinginline code -I generate code for inetd support in server -K seconds server exits after K seconds ofinactivity -l generate client side stubs -L server errors will be printed to syslog -m generate server side stubs -M generate MT-safe code -n netid generate server code that supportsnamed netid -N supports multiple arguments andcall-by-value -o outfile name of the output file -P generate code for port monitoring support in server -s nettype generate server code that supports namednettype -Sc generate sample client code that uses remoteprocedures -Ss generate sample server code that definesremote procedures -Sm generate makefile template -t generate RPC dispatch table -T generate code to support RPC dispatch tables -Y path path where cpp is found

Change History (2)

Changed 9 years ago by pmusumeci@…

Attachment: sh.get_sun_rpcgen added

This script will download and build rpcgen from FreeBSD

Changed 9 years ago by pmusumeci@…

Did not realise ticket text was reformatted - here are the respective rpcgen help messages

Note: See TracTickets for help on using tickets.