[MacPorts] #47801: Proposal for adding more recent rpcgen (from FreeBSD2007)
MacPorts
noreply at macports.org
Thu May 21 19:30:51 PDT 2015
#47801: Proposal for adding more recent rpcgen (from FreeBSD2007)
--------------------------+--------------------------------
Reporter: pmusumeci@… | Owner: macports-tickets@…
Type: request | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: rpcgen |
--------------------------+--------------------------------
Changes (by ryandesign@…):
* keywords: rpcgen =>
* version: 2.3.3 =>
* port: => rpcgen
Old 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 at ieee.org 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
New 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 at ieee.org 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
}}}
--
Comment:
You have to use WikiFormatting.
--
Ticket URL: <https://trac.macports.org/ticket/47801#comment:1>
MacPorts <https://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list