patch|hack: amd64 native cvsup with compress working
Bjoern A. Zeeb
bzeeb-lists at lists.zabbadoz.net
Tue Jun 1 14:26:09 PDT 2004
Hi,
I have compiled ezm3 and cvsup-without-gui from the sources with the
files from http://people.freebsd.org/~peter/ezm3-amd64/ .
As discussed in this thread[1] there still is a problem with
compression (libz).
[1] http://lists.freebsd.org/pipermail/freebsd-amd64/2004-February/thread.html#669
The following hack makes cvsup work with compression:
--- hack/patch ---
!
! the problem seems to be that Ugzip.Z_BUF_ERROR = -5 but
! if status = -5 it actually is 4294967291 and not -5
!
! most likely other negative values might have the same problem.
!
--- suplib/src/GzipWr.m3.orig Tue Mar 4 19:26:23 2003
+++ suplib/src/GzipWr.m3 Tue Jun 1 21:06:41 2004
@@ -125,8 +125,8 @@
0,
ADR(self.wr.buff[self.wr.st]) + self.wr.cur - self.wr.lo,
self.wr.hi - self.wr.cur,
- Ugzip.Z_PARTIAL_FLUSH);
- IF status # Ugzip.Z_OK AND status # Ugzip.Z_BUF_ERROR THEN
+ Ugzip.Z_SYNC_FLUSH); (* Z_PARTIAL_FLUSH will go away according to zlib.h*)
+ IF status # Ugzip.Z_OK AND status # 4294967291 AND status # Ugzip.Z_BUF_ERROR THEN
RAISE Wr.Failure(GzipError.FromStatus(status));
END;
self.wr.cur := self.wr.hi - self.strmp.avail_out;
--- suplib/src/GzipRd.m3.orig Tue Jun 1 21:02:48 2004
+++ suplib/src/GzipRd.m3 Tue Jun 1 21:03:30 2004
@@ -168,7 +168,7 @@
ELSE
RETURN RdClass.SeekResult.Eof;
END;
- ELSIF status # Ugzip.Z_OK AND status # Ugzip.Z_BUF_ERROR THEN
+ ELSIF status # Ugzip.Z_OK AND status # 4294967291 AND status # Ugzip.Z_BUF_ERROR THEN
RAISE Rd.Failure(GzipError.FromStatus(status));
END;
--- /hack/patch ---
while one can reproduce the problem by using a Logger to print
Fmt.Int(status) (* 4294967291 *)
Fmt.Int(-5) (* -5 *)
Fmt.Int(Ugzip.Z_BUF_ERROR) (* -5 *)
I am still unsure where the problem comes from; but that's been
my first hours looking at m3 and I will most likely not further
dig into this.
here my test. I picked out one file of those and it looked ok.
--- cut ---
bz at noc:/u2/ports/net/cvsup-without-gui/work/cvsup-snap-16.1h/client/FBSD_AMD64> ./cvsup -g -L2 -z -s /u2/test/distrib-supfile
Parsing supfile "/u2/test/distrib-supfile"
Connecting to cvsup2.de.FreeBSD.org
Connected to cvsup2.de.FreeBSD.org
Server software version: SNAP_16_1h
Negotiating file attribute support
Exchanging collection information
Establishing multiplexed-mode data connection
Running
Updating collection distrib/cvs
Mkdir distrib
Mkdir distrib/cvsup
Mkdir distrib/cvsup/sup
Create distrib/cvsup/sup/README,v
Mkdir distrib/cvsup/sup/cvs-all
Create distrib/cvsup/sup/cvs-all/list.cvs,v
Create distrib/cvsup/sup/cvs-all/releases,v
...
SetAttrs distrib/cvsup/sup/www
SetAttrs distrib/cvsup/sup
Create distrib/cvsup/supfile,v
SetAttrs distrib/cvsup
SetAttrs distrib
Shutting down connection to server
Finished successfully
--- cut ---
--
Greetings
Bjoern A. Zeeb bzeeb at Zabbadoz dot NeT
More information about the freebsd-amd64
mailing list