[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