public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* [ANNOUNCEMENT] Updated: inetutils-1.5-3
@ 2008-04-25  1:59 cygwin
  2008-04-25  3:09 ` Yaakov (Cygwin Ports)
  0 siblings, 1 reply; 11+ messages in thread
From: cygwin @ 2008-04-25  1:59 UTC (permalink / raw)
  To: cygwin

I've updated inetutils, based on the upstream 1.5 release.  A short list 
of the changes appears below, but the documentation has been extensively 
revised. I urge you to read /usr/share/doc/Cygwin/inetutils-1.5.README. 
The old README, from inetutils-1.3.2-40, is now located in 
/usr/share/doc/inetutils-1.5/inetutils.OLD-README.

All clients and servers appear to work, even on Vista, with the possible 
exception of talkd (see inetutils-1.5.README).

NOTE: server names have changed. You may need to update your inetd.conf 
or xinetd.conf files: in.telnetd --> telnetd, etc.

Known issues:
====================================================
* talkd (possibly just firewall issues) -- see README
* password-less rsh/rcp operation on Vista requires login-1.9-8, which
   is still in test: status as of 2008-04-24. Normal (password required)
   operation works as expected with login-1.9-7.
* anonymous ftp has not been tested
* rexec does not honor ~/.netrc. This is a possible issue in
   cygwin's rcmd() implementation).  rexec does honor $REXEC_USER
   and $REXEC_PASS.
* uucpd has not been tested


Building this package requires a patched cygport:
   http://cygwin.com/ml/cygwin-apps/2008-03/msg00139.html


Major changes with respect to current 1.3.2-40
====================================================
* new maintainer
* updated to upstream 1.5 release; forward ported all applicable
   cygwin modifications from 1.3.2-40.
* switched to cygport build framework
* servers are now called "ftpd" instead of "in.ftpd". Update your
   inetd / xinetd configuration scripts.
* inetd now supports both inetd.conf and inetd.d/ configuration
   directories.
* inetd --install-as-service is DEPRECATED. If you have installed
   inetd as a service "under its own power" -- that is, without using
   cygrunsrv -- please convert to using either cygrunsrv
     $ inetd --remove-as-service
     $ iu-config
   or run inetd as a slave of the sysvinit package's init service (see
   inetutils-1.5.README)
* Added support for parsing DOS-style paths in tftpd, recieved
   from tftp clients. (The tftpd command-line arguments must be
   in unix form, as always).
* disabled all services in the default inetd.conf
* updated default motd
* imported security fix for rshd (and rexecd) from 1.3.2-40 release
* now uses the csih package to assist with service installation.
* Added a new option to inetd: -T/--traditional-daemon, which forces
   normal unix-style fork/daemonize behavior.  This is used with the
   (also provided) sysvinit-style startup script, so that inetd can
   be run under the control of the sysvinit package's init daemon.
   So now, there are THREE ways to run inetd as a service:
      a) install as a service using cygrunsrv (with the -D option)
      b) installed as a service under its own power [DEPRECATED]
      c) as a slave to the init service, using /etc/rc.d/init.d/inetd
         (which uses the -T option when invoking inetd)
* There's also a little test program for the built-in services, provided
   as source code in /usr/share/doc/inetutils-*/.  You can easily test
   TCP services using:
      telnet <host> <port>
   but there's no easy way to test UDP services. udp_client can be used
   to do this:
      udp_client <host> <port or service name> "some data to send"
   For instance, the UDP echo service can be tested using:
      $ udp_client localhost echo "hello"
      Received from localhost: 'hello'.
      $

Upstream changes from inetutils-1.3.2 to 1.5
====================================================
inetutils-1.5 (2006-10-21)
---------------------------
* Various bugs fixes and clean ups.
* inetd
    + New option --environment enables passing client/server
      data via environment variables.
    + New option --resolve enables resolving IP addresses
      before passing them via environment.
    + Allows numeric port names as service names
    + inetd now creates a PID file
* rcp now supports the -V option
* rshd/rexecd now switches to the users home directory
   after authentication.
* rlogin now supports XON/XOFF without needing -8.
* syslogd now can actually disable forwarding.
* talk allows the use of 8-bit ASCII.
* telnet not subject to certain DNS spoofing techniques
   that could possibly foil Kerberos authentication.

inetutils-1.4.2 (2002-12-22)
---------------------------
* Fix endianess problem in ftpd.
* Various portability updates.
* Security fix for rexecd/rshd.
* Fix processing accumulated messages in syslogd

inetutils-1.4.1 (2002-09-02)
---------------------------
* Fixes a build problem on Solaris
* rsh now honours -V as well as --version
* Fixed a security problem with rshd where new files
   were being created as uid 0.
* Fixed improper ping initialization.
* The syntax of syslog.conf file has been extended.
   The new wildcard facility specification, **, catches
   all messages with a facility not specified explicitely
   in the configuration file.

inetutils-1.4.0 (2002-07-31)
---------------------------
* It is now possible to specify whether to compile
   individual utilities using arguments to configure.
* The GNU networking utilities manual has been started.
* If you have the GNU readline library installed, it will
   now be used by the ftp client (static link, no dependence
   on readline or ncurses DLLs on cygwin)
* There is now a whois client (not built on cygwin)
* Several security fixes and other bug fixes have been
   applied.
* The inetd server can read configuration file snippets
   from /etc/inetd.d/.
* The talkd and telnetd servers have been essentially
   rewritten.
* The ping program was added (not built on cygwin)
* The syslogd server supports several new features in the
   configuration file, like omitting file sync, piping messages
   into programs etc.  It also supports several new options on
   the command line.
* Inetutils should generally compile on most platforms now.

-- 
Chuck

To update your installation, click on the "Install Cygwin now" link on
the http://cygwin.com/ web page.  This downloads setup.exe to your
system.  Then, run setup and answer all of the questions.


*** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO ***

If you want to unsubscribe from the cygwin-announce mailing list, look
at the "List-Unsubscribe: " tag in the email header of this message.
Send email to the address specified there.  It will be in the format:


cygwin-announce-unsubscribe-you=yourdomain.com@cygwin.com

If you need more information on unsubscribing, start reading here:

http://sources.redhat.com/lists.html#unsubscribe-simple

Please read *all* of the information on unsubscribing that is available
starting at the above URL.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [ANNOUNCEMENT] Updated: inetutils-1.5-3
  2008-04-25  1:59 [ANNOUNCEMENT] Updated: inetutils-1.5-3 cygwin
@ 2008-04-25  3:09 ` Yaakov (Cygwin Ports)
  2008-04-25  3:12   ` Charles Wilson
  0 siblings, 1 reply; 11+ messages in thread
From: Yaakov (Cygwin Ports) @ 2008-04-25  3:09 UTC (permalink / raw)
  To: cygwin

[-- Attachment #1: Type: text/plain, Size: 546 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

cygwin@cwilson.fastmail.fm wrote:
| Building this package requires a patched cygport:
|   http://cygwin.com/ml/cygwin-apps/2008-03/msg00139.html

Are you sure?  AFAICS the attached WFM; I just need to update cygport in
the distro.


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgROyAACgkQpiWmPGlmQSPKpACgum+RmxkmWq5l/sYKj1fwa+Z/
P9IAoNyrZcc4tIw9syFYWJrirFS4QRyk
=fa1T
-----END PGP SIGNATURE-----

[-- Attachment #2: inetutils-1.5-3.cygport --]
[-- Type: text/plain, Size: 1463 bytes --]

DESCRIPTION="A collection of clients and servers for internet communication"
HOMEPAGE="http://www.gnu.org/software/inetutils/"
SRC_URI="http://ftp.gnu.org/gnu/inetutils/${PN}-${PV}.tar.gz"

DIFF_EXCLUDES="ftpcmd.c"

CYGPORT_USE_UNSTABLE_API=1
RESTRICT="postinst_info"

src_unpack_hook() {
	mkdir -p headers/arpa headers/protocols
	(cd headers/arpa      && ln -s ${C}/arpa/tftp.h .)
	(cd headers/protocols && ln -s ${C}/protocols/talkd.h .)
	(cd headers/protocols && ln -s ${C}/protocols/osockaddr.h .)
}

src_compile() {
	cd ${S}
	cygautoreconf
	cd ${B}
	cygconf --disable-ipv6
	cygmake
}

src_install() {
	cd ${B}
	cyginstall

	dodoc ${S}/ChangeLog.* ${C}/${PN}.OLD-README ${C}/udp_client.c
	dobin ${C}/iu-config ${C}/syslogd-config
	dodir /usr/include/arpa /usr/include/protocols

	insinto /usr/include/arpa
	doins ${C}/arpa/tftp.h

	insinto /usr/include/protocols
	doins ${C}/protocols/talkd.h
	doins ${C}/protocols/osockaddr.h

	dodir /etc/rc.d/init.d
	insinto /etc/rc.d/init.d
	doins ${C}/inetd

	dodir /etc/inetd.d
	keepdir /etc/inetd.d
	dodir /etc/defaults/etc
	insinto /etc/defaults/etc
	doins ${C}/defaults/ftpusers ${C}/defaults/ftpwelcome
	doins ${C}/defaults/inetd.conf ${C}/defaults/shells
	doins ${C}/defaults/motd ${C}/defaults/syslog.conf

	rm -f ${D}/usr/bin/ifconfig.exe
	rm -f ${D}/usr/bin/logger.exe
	rm -f ${D}/usr/bin/ping.exe
	rm -f ${D}/usr/bin/whois.exe

	rm -f ${D}/usr/share/man/man1/logger.1*
	rm -f ${D}/usr/share/man/man8/ping.8*
}


[-- Attachment #3: Type: text/plain, Size: 218 bytes --]

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [ANNOUNCEMENT] Updated: inetutils-1.5-3
  2008-04-25  3:09 ` Yaakov (Cygwin Ports)
@ 2008-04-25  3:12   ` Charles Wilson
  2008-04-25  3:48     ` Yaakov (Cygwin Ports)
  0 siblings, 1 reply; 11+ messages in thread
From: Charles Wilson @ 2008-04-25  3:12 UTC (permalink / raw)
  To: cygwin

Yaakov (Cygwin Ports) wrote:
> cygwin@cwilson.fastmail.fm wrote:
> | Building this package requires a patched cygport:
> |   http://cygwin.com/ml/cygwin-apps/2008-03/msg00139.html
> 
> Are you sure?  AFAICS the attached WFM; I just need to update cygport in
> the distro.

Yep, looks like that will work -- once 0.3.9 is out. However, the 
inetutils-1.5-3 cygport file *as released* requires a function in 
neither the official cygport-0.3.8 nor the upcoming cygport-0.3.9. So, 
*as released*, inetutils-1.5-3 needs a patched cygport.

inetutils-1.5-4 won't.

 From an earlier thread:
> You could create dangling symlinks, knowing that .cygwin.patch will
 > eventually "undangle" them, but you can't do that before the ${S}
 > directory is created/mirrored from ${origsrcdir} -- if you did, then
 > the (dangling) symlinks created in ${origsrcdir} will be copied over
 > to the ${S} as-is: with the incorrect relative path to
 > CYGWIN-PATCHES/real-header-file. And deliberately creating dangling
 > symlinks is just plain icky.

The problem I was trying to "solve" was that the relative path to the 
actual file was different depending on which directory you were in -- 
${S} or ${origsrcdir}/${SRC_DIR}

Mine ${origsrcdir}/${SRC_DIR}:
(cd headers/arpa && ln -s ../../../../src/${SRC_DIR}/CYGWIN-PATCHES
/arpa/tftp.h .)
This path, if mirrored to ${S}, would be wrong.

Mine ${S}:
(cd headers/arpa      && ln -s ../../CYGWIN-PATCHES/arpa/tftp.h .)

so both symlinks end up pointing directly to 
${top}/src/${SRC_DIR}/CYGWIN-PATCHES/arpa/tftp.h
using relative paths from their respective locations.

We can't do even the first part of the above before mirroring -- which 
means that src_unpack_hook is too early (as is src_patch_hook).


Of course, if you use the absolute path to the target, you avoid all 
that. <smack/>

Yours (origsrcdir):
(cd headers/arpa      && ln -s ${C}/arpa/tftp.h .)

Yeah. Like that. Still, dangling symlinks are ugly. But your solution 
with (temporarily) dangling symlinks and src_unpack_hook() is much less 
ugly that my "be sure to duplicate all actions in both src dirs".

--
Chuck


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [ANNOUNCEMENT] Updated: inetutils-1.5-3
  2008-04-25  3:12   ` Charles Wilson
@ 2008-04-25  3:48     ` Yaakov (Cygwin Ports)
  2008-04-25 22:27       ` cygport missing features after 0.3.9 [Was: Re: [ANNOUNCEMENT] Updated: inetutils-1.5-3] Charles Wilson
  0 siblings, 1 reply; 11+ messages in thread
From: Yaakov (Cygwin Ports) @ 2008-04-25  3:48 UTC (permalink / raw)
  To: cygwin

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Charles Wilson wrote:
| Yep, looks like that will work -- once 0.3.9 is out. However, the
| inetutils-1.5-3 cygport file *as released* requires a function in
| neither the official cygport-0.3.8 nor the upcoming cygport-0.3.9. So,
| *as released*, inetutils-1.5-3 needs a patched cygport.
|
| inetutils-1.5-4 won't.

Fair enough.  I just uploaded 0.3.9, so you should be able to start
porting your customized .cygport's for it.

Are there any other features you still need?

| Of course, if you use the absolute path to the target, you avoid all
| that. <smack/>
|
| Yours (origsrcdir):
| (cd headers/arpa      && ln -s ${C}/arpa/tftp.h .)
|
| Yeah. Like that. Still, dangling symlinks are ugly. But your solution
| with (temporarily) dangling symlinks and src_unpack_hook() is much less
| ugly that my "be sure to duplicate all actions in both src dirs".

As they say, KISS. :-)


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgRUuEACgkQpiWmPGlmQSNwVQCgmau73/QBHYAiSrao3h3q4scb
RCQAnjm9R+JHiFRALGfNukYt2rbtCHl3
=O1A0
-----END PGP SIGNATURE-----

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* cygport missing features after 0.3.9 [Was: Re: [ANNOUNCEMENT] Updated:  inetutils-1.5-3]
  2008-04-25  3:48     ` Yaakov (Cygwin Ports)
@ 2008-04-25 22:27       ` Charles Wilson
  2008-04-27 16:13         ` cygport missing features after 0.3.9 cygwin
  2008-05-04 23:08         ` cygport missing features after 0.3.9 [Was: Re: [ANNOUNCEMENT] Updated: inetutils-1.5-3] Yaakov (Cygwin Ports)
  0 siblings, 2 replies; 11+ messages in thread
From: Charles Wilson @ 2008-04-25 22:27 UTC (permalink / raw)
  To: cygwin

> I just uploaded 0.3.9, so you should be able to start
> porting your customized .cygport's for it.
> 
> Are there any other features you still need?

Dunno. I'll port forward my existing patches (except the relocatable 
stuff), and then see.  It's when I'm forward porting that I usually 
discover what's been obsoleted, and what needs to be reworked, among my 
patches.

Offhand, I'd say:

  (1) being able to specify a -d path to cvs that differs from 
CVS_MODULE (used by libgeotiff; the actual libgeotiff source is not a 
module itself, but is buried inside the 'geotiff' module. I don't want 
that other stuff, AND I don't want src/geotiff/libgeotiff, nor the 
libgeotiff-tarball having geotiff/ in it, where geotiff/ is otherwise 
empty.)

  (2) a post install hook (used by rxvt-unicode)

  (3) custom-cmds patch (otherwise running the cvs testsuite all-at-once 
is just too painful, since there is no -k option...it's shell script 
driven, not makefile driven)

THEN I'll think about how to port the bitrotted relocatable stuff.  But 
that may just be too ugly and intrusive, and not useful enough for 
anything other than libiconv and gettext, to push into the official 
cygport. I don't mind maintaining THAT out-of-tree; it was just that 
/plus/ all the other patches that made me want to take up a more serene 
hobby, like basejumping.

--
Chuck

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: cygport missing features after 0.3.9
  2008-04-25 22:27       ` cygport missing features after 0.3.9 [Was: Re: [ANNOUNCEMENT] Updated: inetutils-1.5-3] Charles Wilson
@ 2008-04-27 16:13         ` cygwin
  2008-05-01  4:32           ` Yaakov (Cygwin Ports)
  2008-05-04 23:08         ` cygport missing features after 0.3.9 [Was: Re: [ANNOUNCEMENT] Updated: inetutils-1.5-3] Yaakov (Cygwin Ports)
  1 sibling, 1 reply; 11+ messages in thread
From: cygwin @ 2008-04-27 16:13 UTC (permalink / raw)
  To: cygwin

[-- Attachment #1: Type: text/plain, Size: 2530 bytes --]

>> Are there any other features you still need?

See attached, against current cygport cvs.

cygport-cvs-topdir.patch:

     lib/cvs.cygclass (cvs_fetch): allow cygports to specify
     a "-d ${CVS_DIR}" argument by defining the CVS_DIR variable.
     Otherwise, the module directory name is used, as previously.
     This is useful if the desired source code is not a top-level
     module in the cvs repository (e.g. libgeotiff).

cygport-postinst-hook.patch:

     bin/cygport.in (__src_prep): (__src_postinst_hook_exec):
     call unstable function src_postinst_hook if it is defined.
     This can be useful if, for instance, the default docdir
     usr/share/doc/${PN}-${PV} is not appropriate, and should
     be "corrected" prior to packaging. See the rxvt-unicode-X
     cygport for an example.

     (main command parsing case statement) [postinst*]: call
     __src_postinst_hook_exec after __src_postinst.
     (main command parsing case statement) [inst*]: call
     __src_postinst_hook_exec after __src_postinst.
     (main command parsing case statement) [almostall, all]:
     ditto, as part of __stage Installing.

cygport-custom-cmds.patch:

   Adds new command line options:

   custom-show  display a list of all functions callable via customN-*
   customN-*    where * is the name of an function declared by cygport,
        and N is a digit, 0..9, that indicates the number
        of additional arguments to remove from the command line,
        and pass to the target function as its arguments.  That is,
          custom0-__show_help
        will call __show_help() with no arguments, while
          custom1-error "an error message"
        will call error() with "an error message" as its argument.
        Try experimenting with:
          customN-custom_dummy <arg1> <arg2> ... <argN>

   Used in conjunction with the (separable) testsuites in the cvs
   cygport.

     cygport.in (custom_dummy): public N-ary function that prints
     all N arguments to stdout. Used for demonstration purposes.
     (__custom_dummy_core): private support function for
     custom_dummy.  N-ary function that simply all N arguments
     to stdout.
     (__show_help): add documentation for custom-show and customN-*
     commands.
     (main command parsing case statement) [custom-show]: add new
     command. Shows all public functions available in the current
     cygport that can be called using the customN-* command.
     (main command parsing case statement) [customN-*]: add new
     command(s).

--
Chuck



[-- Attachment #2: cygport-custom-cmds.patch --]
[-- Type: text/plain, Size: 3620 bytes --]

Index: bin/cygport.in
===================================================================
RCS file: /cvsroot/cygwin-ports/cygport/bin/cygport.in,v
retrieving revision 1.106
diff -u -r1.106 cygport.in
--- bin/cygport.in	23 Apr 2008 14:43:48 -0000	1.106
+++ bin/cygport.in	27 Apr 2008 01:29:28 -0000
@@ -134,6 +134,17 @@
 		  finish       delete the working directory
 		  almostall    run all of the above, excluding finish
 		  all          run all of the above, including finish
+		  custom-show  display a list of all functions callable via customN-*
+		  customN-*    where * is the name of an function declared by cygport,
+			       and N is a digit, 0..9, that indicates the number
+			       of additional arguments to remove from the command line,
+			       and pass to the target function as its arguments.  That is,
+			         custom0-__show_help
+			       will call __show_help() with no arguments, while
+			         custom1-error "an error message"
+			       will call error() with "an error message" as its argument.
+			       Try experimenting with:
+			         customN-custom_dummy <arg1> <arg2> ... <argN>
 
 		See ${_privdocdir}/README for further instructions.
 
@@ -1573,10 +1584,14 @@
 #	DESCRIPTION
 #	HOMEPAGE
 #
+# public:
+#	custom_dummy
+#
 # private:
 #	__list_deps
 #	__list_files
 #	__show_info
+#	__custom_dummy_core
 #
 ################################################################################
 
@@ -1623,9 +1638,27 @@
 	)
 }
 
+__custom_dummy_core() {
+	local -i my_c=0
+	local -i my_argc=$#
+
+	while (( my_c < my_argc ))
+	do
+		my_c+=1
+		echo "${my_c}: $1"
+		shift
+	done
+}
+
+custom_dummy() {
+	inform "custom_dummy called with $# args"
+	__custom_dummy_core "$@"
+}
+
 # protect functions
+export -f custom_dummy
 readonly -f __list_files __list_deps __show_info
-
+readonly -f custom_dummy __custom_dummy_core
 
 ################################################################################
 #
@@ -2173,6 +2206,7 @@
 	error "When defining PKG_NAMES, the first package should be ${PN}.";
 fi
 
+
 ################################################################################
 #
 # End of functions
@@ -2180,6 +2214,10 @@
 ################################################################################
 
 declare -i arg_n=2
+declare -i custom_arg_n
+declare -i custom_argc
+declare -a custom_args
+declare -x custom_cmd
 
 while (( arg_n < argc ))
 do
@@ -2256,6 +2294,46 @@
 			__finish;
 			_status=$?;
 			;;
+		custom-show)
+			for fnc in $(set | sed -n '/()/s/()//p')
+			do
+				if test "$(type -t ${fnc})" == "function"
+				then
+					echo " ${fnc}"
+				fi
+			done
+			;;
+		custom0-* | custom1-* | custom2-* | custom3-* | custom4-* | \
+		custom5-* | custom6-* | custom7-* | custom8-* | custom9-* )
+			custom_argc=${argv[${arg_n}]:6:1}
+			custom_cmd=${argv[${arg_n}]:8}
+			if [ -z "${custom_cmd}" ]
+			then
+				error "${argv[${arg_n}]}* command has no target following the 'custom${custom_argc}-'"
+			fi
+
+			# consume arguments
+			custom_arg_n=0
+			while (( custom_arg_n < custom_argc )) && (( arg_n+1 < argc ))
+			do
+				arg_n+=1
+				custom_args[${custom_arg_n}]="${argv[${arg_n}]}"
+				custom_arg_n+=1
+			done
+			if (( custom_arg_n < custom_argc ))
+			then
+				error "custom${custom_argc} command ${custom_cmd}: not enough arguments"
+			fi
+			
+			if test "$(type -t ${custom_cmd})" == "function"
+			then
+				__stage ${custom_cmd} && eval "${custom_cmd} ${custom_args[@]}"
+				_status=$?;
+			else
+				error "${custom_cmd} is not a shell function"
+			fi
+			unset custom_args
+			;;
 		help)
 			__show_help;
 			exit 0;

[-- Attachment #3: cygport-cvs-topdir.patch --]
[-- Type: text/plain, Size: 1011 bytes --]

Index: lib/cvs.cygclass
===================================================================
RCS file: /cvsroot/cygwin-ports/cygport/lib/cvs.cygclass,v
retrieving revision 1.11
diff -u -r1.11 cvs.cygclass
--- lib/cvs.cygclass	11 Mar 2008 03:47:36 -0000	1.11
+++ lib/cvs.cygclass	27 Apr 2008 01:16:26 -0000
@@ -40,6 +40,7 @@
 cvs_fetch() {
 	local cvs_branch
 	local cvs_date
+	local cvs_topdir
 
 	check_prog_req cvs
 
@@ -53,10 +54,17 @@
 		cvs_date="-D ${CVS_DATE}"
 	fi
 
+	cvs_topdir="${CVS_MODULE}"
+	if defined CVS_DIR
+	then
+		cvs_dir="-d ${CVS_DIR}"
+		cvs_topdir="${CVS_DIR}"
+	fi
+
 	# T likely doesn't exist at this point, so create it first
 	mkdir -p ${T}
 	cd ${T}
-	verbose cvs -d ${CVS_URI} checkout ${cvs_branch} ${cvs_date} ${CVS_MODULE}
+	verbose cvs -d ${CVS_URI} checkout ${cvs_branch} ${cvs_date} ${cvs_dir} ${CVS_MODULE}
 
-	tar jcf ${top}/${cvs_tarball} --exclude=CVS --exclude=.cvsignore ${CVS_MODULE}
+	tar jcf ${top}/${cvs_tarball} --exclude=CVS --exclude=.cvsignore ${cvs_topdir}
 }

[-- Attachment #4: cygport-postinst-hook.patch --]
[-- Type: text/plain, Size: 2692 bytes --]

Index: bin/cygport.in
===================================================================
RCS file: /cvsroot/cygwin-ports/cygport/bin/cygport.in,v
retrieving revision 1.106
diff -u -r1.106 cygport.in
--- bin/cygport.in	23 Apr 2008 14:43:48 -0000	1.106
+++ bin/cygport.in	27 Apr 2008 01:22:43 -0000
@@ -1179,6 +1179,7 @@
 # mutable:
 #	USE_DESTDIR
 #	src_install
+#	src_postinst_hook
 #
 # public:
 #	cyginstall
@@ -1193,6 +1194,7 @@
 #	_exeinto_dir
 #	_insinto_dir
 #	__prepinstalldirs
+#	__src_postinst_hook_exec
 #
 ################################################################################
 
@@ -1296,6 +1298,20 @@
 	esac
 }
 
+# src_postinst_hook is an optional function that may be
+# defined to modify the cygport 'install' sequence. If defined,
+# it is called after the automatic "postinst" function. This 
+# can be useful if, for instance, the default docdir:
+#    usr/share/doc/${PN}-${PV}
+# is not appropriate, and should be "corrected" prior to 
+# packaging. See the rxvt-unicode-X cygport for an example.
+__src_postinst_hook_exec() {
+	if __check_function src_postinst_hook
+	then
+		__check_unstable src_postinst_hook
+	fi
+}
+
 # provides a default src_install
 # will be overridden by cygclasses or cygports as necessary
 src_install() {
@@ -2209,11 +2225,11 @@
 			;;
 		inst*)
 			__stage Installing;
-			(__prepinstalldirs && src_install && __src_postinst) 2>&1 | tee ${installlog};
+			(__prepinstalldirs && src_install && __src_postinst && __src_postinst_hook_exec) 2>&1 | tee ${installlog};
 			_status=$?;
 			;;
 		postinst*)
-			__src_postinst;
+			__src_postinst && __src_postinst_hook_exec;
 			_status=$?;
 			;;
 		list)
@@ -2244,14 +2260,14 @@
 		almostall)
 			__stage Preparing && __src_prep && \
 			__stage Compiling && src_compile 2>&1 | tee ${compilelog} && \
-			__stage Installing && (__prepinstalldirs && src_install && __src_postinst) 2>&1 | tee ${installlog} && \
+			__stage Installing && (__prepinstalldirs && src_install && __src_postinst && __src_postinst_hook_exec) 2>&1 | tee ${installlog} && \
 			__stage Packaging && (__pkg_binpkg && __pkg_pkgcheck && __pkg_srcpkg && __pkg_dist) 2>&1 | tee ${pkglog}
 			_status=$?;
 			;;
 		all)
 			__stage Preparing && __src_prep && \
 			__stage Compiling && src_compile 2>&1 | tee ${compilelog} && \
-			__stage Installing && (__prepinstalldirs && src_install && __src_postinst) 2>&1 | tee ${installlog} && \
+			__stage Installing && (__prepinstalldirs && src_install && __src_postinst && __src_postinst_hook_exec) 2>&1 | tee ${installlog} && \
 			__stage Packaging && (__pkg_binpkg && __pkg_pkgcheck && __pkg_srcpkg && __pkg_dist) 2>&1 | tee ${pkglog} && \
 			__finish;
 			_status=$?;


[-- Attachment #5: Type: text/plain, Size: 218 bytes --]

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: cygport missing features after 0.3.9
  2008-04-27 16:13         ` cygport missing features after 0.3.9 cygwin
@ 2008-05-01  4:32           ` Yaakov (Cygwin Ports)
  2008-05-01  5:44             ` Charles Wilson
  2008-05-04 21:15             ` Yaakov (Cygwin Ports)
  0 siblings, 2 replies; 11+ messages in thread
From: Yaakov (Cygwin Ports) @ 2008-05-01  4:32 UTC (permalink / raw)
  To: cygwin

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Chuck Wilson wrote:
| cygport-cvs-topdir.patch:

CVS_MODULE already supports subdirectory checkouts.  What is gained here?

| cygport-postinst-hook.patch:

I would prefer a RESTRICT="postinst-doc" option, in which case one can
install the docs manually during src_install().  I hope to make a patch
in the next few days.

| cygport-custom-cmds.patch:

I'll have to think further about this one.


Yaakov

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgZR+wACgkQpiWmPGlmQSPJTgCfSmfvG+iv2Kf9VRcq1DdPkamM
UysAoJAYWq376yp/wWGmQ/yzZqudd47a
=Nab4
-----END PGP SIGNATURE-----

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: cygport missing features after 0.3.9
  2008-05-01  4:32           ` Yaakov (Cygwin Ports)
@ 2008-05-01  5:44             ` Charles Wilson
  2008-05-04 22:40               ` Yaakov (Cygwin Ports)
  2008-05-04 21:15             ` Yaakov (Cygwin Ports)
  1 sibling, 1 reply; 11+ messages in thread
From: Charles Wilson @ 2008-05-01  5:44 UTC (permalink / raw)
  To: cygwin

Yaakov (Cygwin Ports) wrote:
> Chuck Wilson wrote:
> | cygport-cvs-topdir.patch:
> 
> CVS_MODULE already supports subdirectory checkouts.  What is gained here?

Yes, and then I get:

foo-1.2.3-1/src/StupidModuleNameThatHasNothingToDoWithMyPackage/MyPackage/*

with subdir checkouts using CVS_MODULE. You are correct in that I don't 
get any of the contents of 
StupidModuleNameThatHasNothingToDoWithMyPackage, except for the one 
subdir, MyPackage, that I care about.  However,

  (a) my "orig" src tarball, if generated via cygport * get, has an 
extra directory level in it, that src tarballs created via 'make dist' 
do not have.
  (b) I have to override all src_*() methods to add an extra 'cd 
MyPackage', because there is no Makefile or configure script in 
${S}="..../StupidModuleNameThatHasNothingToDoWithMyPackage".
  (c) Sure, to avoid (b) I could set 
SRC_DIR=StupidModuleNameThatHasNothingToDoWithMyPackage/MyPackage but I 
don't want to do that, especially because of (a).

I want
foo-1.2.3-1/src/MyPackage/*
and an "orig" tarball that looks like
MyPackage/*
So I can treat it like a normal package. I can't do that without -d.

Tools are supposed to empower their users, not limit them.

> | cygport-postinst-hook.patch:
> 
> I would prefer a RESTRICT="postinst-doc" option, in which case one can
> install the docs manually during src_install().  I hope to make a patch
> in the next few days.

You favor the cars-on-streets model: stay on the pavement, between the 
white lines, and everything will be fine. Cygwin 
package-building-on-rails is streamlined, easy, and usually works great 
even for newbies.  Except when it doesn't, and there isn't enough 
flexibility to go somewhere offroad.

I favor the boat-on-the-water model: go anywhere you want -- but if 
you're not careful you can run aground or drift too far out to sea. I 
figure the maintainers are all grown up, and can navigate their craft 
without help -- or restrictions -- from me.

I'll point out that 'postinst-doc' means, obviously, that you can 
customize only the post-installation-of-various-documents, and nothing 
else.  With a hook, the maintainer has maximum freedom -- to do things 
post-auto-install that neither you nor I have thought about -- but then 
he might get shipwrecked, too.

> | cygport-custom-cmds.patch:
> 
> I'll have to think further about this one.

...the ultimate boat-on-the-water patch...

--
Chuck

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: cygport missing features after 0.3.9
  2008-05-01  4:32           ` Yaakov (Cygwin Ports)
  2008-05-01  5:44             ` Charles Wilson
@ 2008-05-04 21:15             ` Yaakov (Cygwin Ports)
  1 sibling, 0 replies; 11+ messages in thread
From: Yaakov (Cygwin Ports) @ 2008-05-04 21:15 UTC (permalink / raw)
  To: cygwin

[-- Attachment #1: Type: text/plain, Size: 532 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Yaakov (Cygwin Ports) wrote:
| I would prefer a RESTRICT="postinst-doc" option, in which case one can
| install the docs manually during src_install().  I hope to make a patch
| in the next few days.

How about this?


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgeJ2cACgkQpiWmPGlmQSOQcgCgnxJAsaF/cbJdoNvEQTLVjoUA
S5YAoLYiiiJhkFxx+VCTILh8JHLnvN05
=61Ds
-----END PGP SIGNATURE-----

[-- Attachment #2: postinst-doc.patch --]
[-- Type: text/plain, Size: 781 bytes --]

? patches
? tmp
? tools
Index: bin/cygport.in
===================================================================
RCS file: /cvsroot/cygwin-ports/cygport/bin/cygport.in,v
retrieving revision 1.109
diff -u -r1.109 cygport.in
--- bin/cygport.in	4 May 2008 06:51:03 -0000	1.109
+++ bin/cygport.in	4 May 2008 21:12:33 -0000
@@ -1342,14 +1342,19 @@
 
 	cd ${S};
 
-	unset _docinto_dir;
-	dodoc ${default_docs} ${DOCS};
+	if defined _CYGPORT_RESTRICT_postinst_doc_
+	then
+		inform "Skipping package doc installation per request";
+	else
+		unset _docinto_dir;
+		dodoc ${default_docs} ${DOCS};
 
-	for html in ${HTMLDOCS}
-	do
-		docinto html;
-		dodoc ${html};
-	done
+		for html in ${HTMLDOCS}
+		do
+			docinto html;
+			dodoc ${html};
+		done
+	fi
 
 	if [ -e ${C}/README ]
 	then


[-- Attachment #3: Type: text/plain, Size: 218 bytes --]

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: cygport missing features after 0.3.9
  2008-05-01  5:44             ` Charles Wilson
@ 2008-05-04 22:40               ` Yaakov (Cygwin Ports)
  0 siblings, 0 replies; 11+ messages in thread
From: Yaakov (Cygwin Ports) @ 2008-05-04 22:40 UTC (permalink / raw)
  To: cygwin

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Charles Wilson wrote:
|  (a) my "orig" src tarball, if generated via cygport * get, has an extra
| directory level in it, that src tarballs created via 'make dist' do not
| have.

I suppose a cleaner solution would have been to add a '-d
${CVS_MODULE##*/}' to the checkout command, but doing that now would
break existing -src packages.

|  (b) I have to override all src_*() methods to add an extra 'cd
| MyPackage', because there is no Makefile or configure script in
| ${S}="..../StupidModuleNameThatHasNothingToDoWithMyPackage".
|  (c) Sure, to avoid (b) I could set
| SRC_DIR=StupidModuleNameThatHasNothingToDoWithMyPackage/MyPackage but I
| don't want to do that, especially because of (a).

cvs.cygclass sets SRC_DIR automatically, including in this case, so this
shouldn't be necessary.

| I want
| foo-1.2.3-1/src/MyPackage/*
| and an "orig" tarball that looks like
| MyPackage/*
| So I can treat it like a normal package. I can't do that without -d.

True.  But there are other packages where the toplevel is not SRC_DIR.

| You favor the cars-on-streets model: stay on the pavement, between the
| white lines, and everything will be fine. Cygwin
| package-building-on-rails is streamlined, easy, and usually works great
| even for newbies.  Except when it doesn't, and there isn't enough
| flexibility to go somewhere offroad.

Fair enough, but I think that I have the experience to say that cygport
*CAN* go just about anywhere nowadays, even on its "rails".  Hundreds of
packages can be built with a very simple (even one- or two-line)
.cygport script.  It may not be perfect, but IMNSHO it's far better than
the g-b-s was (not having used the latter for 2+ years).

Now there are some corner cases, and (obviously) with packages that I
don't maintain and probably never built.  When people bring these to my
attention, I try to find a solution that hopefully I and everyone else
can live with.  It may not be the proposed solution (and I know that's
been drives you nuts), but I need to be able to happy with the code
afterwards.

| I favor the boat-on-the-water model: go anywhere you want -- but if
| you're not careful you can run aground or drift too far out to sea. I
| figure the maintainers are all grown up, and can navigate their craft
| without help -- or restrictions -- from me.

Perhaps you're right about the core group of us, but there are always
new faces; I remember trying to tackle the g-b-s with my first ITP 4.5
years ago.  My goal is that cygport should be powerful enough to build
just about anything, yet be clean, simple, easy to learn, and easy to
maintain.

| I'll point out that 'postinst-doc' means, obviously, that you can
| customize only the post-installation-of-various-documents, and nothing
| else.  With a hook, the maintainer has maximum freedom -- to do things
| post-auto-install that neither you nor I have thought about -- but then
| he might get shipwrecked, too.

Then I suppose that I don't want to play Coast Guard. :-)

| ...the ultimate boat-on-the-water patch...

Which is why I'm not really convinced that it's necessary.


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgeO2AACgkQpiWmPGlmQSObEgCfbgg09CDZA4pmUuRp21lFxYu3
GggAoIdWNmDNepiH4yZtwvN3dqRlf17L
=L9sk
-----END PGP SIGNATURE-----

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: cygport missing features after 0.3.9 [Was: Re: [ANNOUNCEMENT]  Updated:  inetutils-1.5-3]
  2008-04-25 22:27       ` cygport missing features after 0.3.9 [Was: Re: [ANNOUNCEMENT] Updated: inetutils-1.5-3] Charles Wilson
  2008-04-27 16:13         ` cygport missing features after 0.3.9 cygwin
@ 2008-05-04 23:08         ` Yaakov (Cygwin Ports)
  1 sibling, 0 replies; 11+ messages in thread
From: Yaakov (Cygwin Ports) @ 2008-05-04 23:08 UTC (permalink / raw)
  To: cygwin

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Charles Wilson wrote:
|  (1) being able to specify a -d path to cvs that differs from CVS_MODULE
| (used by libgeotiff; the actual libgeotiff source is not a module
| itself, but is buried inside the 'geotiff' module. I don't want that
| other stuff, AND I don't want src/geotiff/libgeotiff, nor the
| libgeotiff-tarball having geotiff/ in it, where geotiff/ is otherwise
| empty.)

BTW, what is the point of that huge libgeotiff .src.patch?


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgeQf4ACgkQpiWmPGlmQSP9UgCeNkddOiBFH5SZAMBY9IGdQRFL
ktwAoJJeKEqD16fQhhJ8YnlGL13NvPoJ
=z9QH
-----END PGP SIGNATURE-----

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2008-05-04 23:08 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-25  1:59 [ANNOUNCEMENT] Updated: inetutils-1.5-3 cygwin
2008-04-25  3:09 ` Yaakov (Cygwin Ports)
2008-04-25  3:12   ` Charles Wilson
2008-04-25  3:48     ` Yaakov (Cygwin Ports)
2008-04-25 22:27       ` cygport missing features after 0.3.9 [Was: Re: [ANNOUNCEMENT] Updated: inetutils-1.5-3] Charles Wilson
2008-04-27 16:13         ` cygport missing features after 0.3.9 cygwin
2008-05-01  4:32           ` Yaakov (Cygwin Ports)
2008-05-01  5:44             ` Charles Wilson
2008-05-04 22:40               ` Yaakov (Cygwin Ports)
2008-05-04 21:15             ` Yaakov (Cygwin Ports)
2008-05-04 23:08         ` cygport missing features after 0.3.9 [Was: Re: [ANNOUNCEMENT] Updated: inetutils-1.5-3] Yaakov (Cygwin Ports)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).