For stuff that's not directly xv-related (3rd party utilities, etc), but really handy nonetheless, go here.

xv 3.10a source distributions

The official source distribution, gzip'ed (2.3MB)
Contains full source for xv, including the manual (in PostScript), and the required versions of the jpeg and libtiff libraries. This is almost certainly the thing you want to download.

Note: if you're going to try compiling this on RedHat Linux 6, READ THIS FIRST.  You'll be glad you did.

xv 3.10a binaries

These binaries are a handy way to play around with xv and see if it's something that interests you.  Unfortunately, due to a lack of foresight, there's no way to Register any of these binaries (they'll always claim to be an 'unregistered copy').   The practical upshot is that if you intend to register your copy(s) of xv (and by all means, please do!), you'll need to have a way to compile the source distribution on your machine.  Typically, this means you'll need an ANSI C compiler (such as gcc) and the X11 libraries ('libX11.a', et al) and include files.   For reasons I can't begin to explain, this is apparently a 'big deal' these days.   Didn't used to be!

xv executables for Solaris 2.5 on a SPARC, gzip'ed (1.2MB)
I don't have a Sun, so I haven't personally tried this out, but this would be a simple painless way to check out xv on your SparcStation. Of course, you'll eventually need to be able to compile xv from source, so you can apply the patches below, or to register your copy, or whatever.  Read this to find out how to install this file.
xv executables for HP-UX machines
I don't have an HP, either, so who knows... Still, since apparently nobody can compile XV on an HP these days (where are the frickin' X11 include files, that's what I want to know!) it's better than the alternative.
xv executable for SGI workstations (585KB)
Unsurprisingly, I also find myself without a handy SGI workstation, so once again, I can't personally attest to the usefulness of these bytes. According to The Man, this binary runs peachy-keen on both IRIX 5.3 (Indy machines) and IRIX 6.3 (O2's). Note that this file is simply the executable, gzipped. Simply download, "gunzip", "chmod +x", and run it.
xv RPM file for RedHat Linux (i386)  (1.1MB)
Linux is one of the few Unix-y systems that still supplies all the stuff you need to be able to compile xv, and there's no real trickery involved.  Just tell the Makefile where to find the X11 libs & includes, and 'make'.  Still, Linux is gaining in popularity, and is no longer solely the domain of C programmers - there's some actual users out there as well.  Hence this RPM file - no pesky compilation required.  Note: this RPM is from the RedHat 5.2 ftp distribution.  I don't know for certain that it will work on earlier versions of RedHat, though by gum, it's certainly worth a shot!
Back to top

xv 3.10a manuals

The xv manual, compress'ed PostScript version (1.0MB)
This is part of the official distribution, but there seem to be lots of folks out there who don't have it, or don't know how to extract it from the distribution, so it's presented here unbundled.
The xv manual, PDF version (1.0MB)
Converted to PDF from the PostScript version by Tobi Delbrook.
The xv manual, in HTML (460KB)
A gzip'ed tar file that contains a complete version of the xv 3.10a manual in HTML, As Seen On These Pages! Perfect for mirroring the documentation at your own site.
Back to top

Patches to xv 3.10a

Note: None of the following patches have been pre-applied to the distributions listed above, for really good reasons that I don't want to get into. You'll probably want to use Larry Wall's excellent patch program to apply the patches. Certainly that's what you're supposed to do, though of course it's perfectly possible to apply the patches by hand (as nosy/paranoid folk such as myself tend to do).

Recommended Patches (ie, bug fixes)

Patch to fix Grab problems
This patch fixes a potential problem with the Grab command. On some systems, you may find the Grab command going 'out-to-lunch', or maybe it returns, but doesn't appear to have done anything. This patch should probably be applied on all systems, even if they don't exhibit the problem, as it may be WM-dependent.
Patch to fix Visual-picking problem
On certain Sun systems with 24-bit framebuffers, xv displays images very dimly. The problem is that Sun provides two identical Visuals with different gamma correction curves, for different types of hardware. Guess what popular Unix image display program picks the wrong one. This patch can be applied on all systems, though it won't gain you anything on any other system.
Patch to read & display multi-page TIFF files
A cool one: like it says, this patch will let xv read and display multi-page TIFF files. Multi-page TIFF files work just like multi-page PostScript files: you use <PageUp> and <PageDown> to page through the file, and p brings up a "go to page #" dialog box. Note that this is a patch to the standard xv 3.10a distribution - it may or may not work in combination with the libtiff 3.4 patch.
Patch to keep xv from crashing on Really Long Filenames
If you have some big-ass filenames (32 chars or longer) you may run into cases where xv will segfault in the Visual Schnauzer or in certain pop-up dialog boxes. This patch fixes this problem. Note that this only applies to files whose base filename (with the leading path info chopped off) is 32 chars or longer. That's why this bug probably hasn't bit you. (It obviously never bit me!)
Patch to fix XPM file output errors
By cleverly harnessing the amazing power of a missing 'break' statement, xv was writing XPM files with a FITS version of the image conveniently tacked on the end. Hilarity ensues.
Patch to Image display on certain 12-, 15-, or 16-bit X Displays
A byte-ordering problem would come into play when displaying 8-bit colormapped images on certain systems.  While it's rare to run into this bug (as most people are running either 8 or 24/32-bit graphics these days), it's still a bug.  Thanks to Mr. Ryo Shimizu for finding it (and more importantly, fixing it)!
Patch to GIF-reading code
While I can't say that I've ever seen the results of this bug (obviously, or I would have fixed it), it's a bug nonetheless.  The bug could show up when viewing multiple interlaced GIF files in one run of XV, as the de-interlacer is not properly reinitialized on subsequent runs.  Thanks to Mark Hanson for finding it.
Patch to fix non-functional grab on some X servers
xv would rather rudely fail to Grab (or display certain XWD files) on systems running the eXceed X server in 24-bit mode.  The Grabs would return a correctly-sized, but completely blank image.  This patch may well fix Grab problems on other systems (and if so, I'd like to hear about it), and should not break anything.   As such, it's recommended for all users.  Thanks to Nadim Saeed for his efforts in squishing this bug.
READ THIS to compile XV on RedHat 6, and most other newer Linux distributions
It's not a patch per se, it's just something that'll tell you something important to know about compiling xv on RedHat Linux 6.0 (and presumably on all newer releases).  This same advice may stop xv from compiling on other systems, so don't take this as a generally-useful tidbit that everybody should use.  It isn't.
Patch to compile XV on BeOS
So you want to run everybody's favorite Unix image viewin' program, but you've got this newfangled BeOS thing a-sittin' on your desk.  No problem!  Thanks to David Powell, you can now compile and run XV 3.10a on BeOS.
Patch to fix TIFF files being written at 1200dpi
For whatever insane reason, the xvtiffwr.c module writes all TIFFs out with resolution tags of 1200dpi. This leaps up and bites you on the ass when you load the resultant TIFF files into a program (such as Photoshop) that actually pays attention to said tags.

This patch simply writes all TIFF files with a resolution of 72dpi, a far more reasonable value.
SECURITY PATCH for Postscript Files.
Jon Luckey has pointed out that certain malicious PostScript files could write and/or delete user files.  This is particularly dangerous if you use xv to display certain email attachments.  While most folks know not to run unknown executables received in email, they probably don't realize that PostScript files can also be dangerous.  Surprised the hell out of me, at any rate.

This patch fixes xv's call to ghostscript such that it has the "-dSAFER" flag turned on, which should prevent such shenanigans.

Optional Patches (ie, enhancements)

Patch to use Version 6 of the JPEG library
You need this trivial patch if you intend to link xv with version 6 of the Independent JPEG Group's JPEG library. This is a newer version of the library than is included in the xv 3.10a distributions listed above. You need the new library to read Progressive JPEG files.
Patch to use Version 3.4 of the TIFF Library
You need this patch if you intend to link xv with version 3.4 of Sam Leffler's TIFF library. This is a newer version of the library than is included in the xv 3.10a distribution, and probably does something good. (I haven't tried it out.)
Patch to read/write PNG files.
The patch to xv 3.10a, and other needed files (libpng and zlib) all live on this site. I haven't tested any of this personally, so I don't know what-all's involved here, but presumably everything you need to know is up here.  Finally, you'll need to apply this patch on top of everything else to fix some minor nits introduced by newer versions of the libpng libary. Sorry about that.

(Thanks to Greg Roelofs
( and Daniel Thayer (dnthayer@uiuc.edufor the updated PNG info!)

BTW, for what it's worth, as soon as I can work out some sort of arrangement with Unisys, I fully intend to release 'xv 3.20', which will come with all these accursed patches pre-applied (and some other goodies).  Won't that be fun!?!
Patch to 'read' PDF files.
According to all-around good guy Bitt Faulk, newer non-GNU/FSF versions of ghostscript can read PDF files. Therefore, it's just a trivial patch to get xv to recognize PDF files as something useful, and pass them off to ghostscript, just like PS files are currently handled.
Patch to use XV as a Netscape plugin.
Contributed by David Meleedy, this patch adds a '-windowid #' command-line option to xv, which was previously sorely lacking in command-line options. In any event, the practical upshot of all this is that you can use xv in conjunction with Plugger 3.2 to turn it into a Netscape plug-in. 

Why would you want to do that, other than to win some sort of bet?  Well, the big deal is that by doing this, you can now get Netscape to display non-standard image formats (TIFF, Rasterfile, PNG, etc.) right in a Netscape window, which is certainly cooler than downloading them and firing up xv manually.  You can even have a fully-functioning xv, schnauzer and all, running right inside a Netscape window.   (Though I dare anyone to come up with a legitimate sporting purpose for that!)

Read David's README for futher details.
Patch to read 32-bit-per-pixel BMP files.
Apparently such beasts exist these days.  (They didn't back when I originally wrote the BMP i/o module.)  Presumably the extra 8 bits are for an alpha channel, which xv will completely ignore.  Still, better'n nothing.
Back to top

xv 3.10 upgrade patch

Patch to upgrade xv 3.10 to 3.10a

xv 3.10 was distributed (by me) for less than a month before the 3.10a bug-fix release came out. Amazingly, I still hear from folks using the 3.10 original release. Anyway, you only need this patch if you're running the original 3.10 release. If you've got 3.10a already, ignore this.

Back to top

Last Modified: January 27, 2011