The FTP coprocess formerly wrote the output of the "get | tar vxf -" pipe
to stderr, which resulted in no output to the feedback pipe (stdout), and
thus the timeout was not updated for any line printed by the "tar" process.
This was now changed to also feed back the chars to the expect() routine,
updating the timeout handler. The "also" part is implemented by passing
the output through "tee /dev/stderr".
At least NetBSD and Solaris have this, so no problem there.
Thanks to Frank van der Linden for helping me to debug this.
Found during a post-install of a fresh machine:
1. setenv PKG_PATH ftp://smaug.fh-regensburg.de/pub/NetBSD/arch/i386ELF/All
2. pkg_add tcsh ssh XF86Config
3. Run XF86Config
4. pkg_add kde
5. Be done.
We should do this from /etc/rc.local on first boot... :-)
'get pkg.tgz "| cd /var/tmp/inst ; gunzip | tar -x -f -"'), handle
two cases better:
1. Timing out ftp connections: Make sure the hanging pipeline gets a ^C
(SIGINT), and wait until the ftp prompt is available again. Else we
may nuke away tar's working dir, and it may be displeased.
2. One of the commands from the pipeline exiting: caught via SIGCHLD;
for this signal to be delivered, a empty handler is needed)
Adresses PR 10925 by Greg A. Woods <woods@planix.com>
a bit, to make them more descriptive
* in findbestmatchingname_fn, fix a bug where a null pointer wasn't
caught (I wonder why we didn't actually hit that case...)
* Bugfix in findbestmatchingname_fn: when comparing, strip off any
trailing ".tgz", as this will give wrong results. "1.9.8.tgz" was
found to be greater than "1.9.8.1".
Modulo some code cleanup, this gives NetBSD full wildcard support not
only in pkgsrc, but esp. for binary packages installed from local disk
and via FTP. For more information, see:
http://www.feyrer.de/NetBSD/wildcards.html
- Minor re-indenting
- Fix printing of @ignore in pkg_info (did this ever work?)
- Fix installing of local wildcard dependencies (unused in main system)
- Fix deleting of packages that depend on wildcard dependencies
(fexist() is not enough there :-)
installed version and binary packages. The size can be queried then
via pkg_info:
xfeyrer @ noon% pkg_info -s xv
Information for xv-3.10apl1:
Size of this package in bytes: 4670692
xfeyrer @ noon% pkg_info -S xv
Information for xv-3.10apl1:
Size in bytes including required pkgs: 14610165
While doing work on the size code, support for the @src directive was
removed (formerly enabled with the pkg_create -s switch, but unused in
our pkg system). The new pkg_info -s and -S switches were tested on
installed, local (file) and remote (ftp) packages.
In bsd.pkg.mk, take special care for pkg_* versions that do not have
the pkg_create -s and -S switches and do not record size information
there.
URLs, and an access function (URLlength) - saves having various
hardcoded strings all over the place. Delete isURL, and use URLlength
in its place. Also use URLlength when parsing a filename for host
and filename part.