--- xscreensaver-5.05.orig/hacks/Makefile.in +++ xscreensaver-5.05/hacks/Makefile.in @@ -151,8 +151,8 @@ fuzzyflakes.o anemotaxis.o memscroller.o substrate.o \ intermomentary.o fireworkx.o fiberlamp.o boxfit.o \ interaggregate.o celtic.o cwaves.o webcollage-cocoa.o \ - webcollage-helper-cocoa.o m6502.0 asm6502.o abstractile.o \ - lcdscrub.c + webcollage-helper-cocoa.o m6502.o asm6502.o abstractile.o \ + lcdscrub.c NEXES = attraction blitspin bouboule braid bubbles decayscreen deco \ drift flag flame forest vines galaxy grav greynetic halo \ --- xscreensaver-5.05.orig/debian/copyright +++ xscreensaver-5.05/debian/copyright @@ -0,0 +1,70 @@ +This is the GNU/Linux prepackaged version of XScreenSaver + +This package was put together by Larry Daffner +from sources obtained from: + http://www.jwz.org/xscreensaver/xscreensaver-3.17.tar.gz + +xscreensaver is copyright (c) 1991-2005 Jamie Zawinski + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. No representations are made about the suitability of this +software for any purpose. It is provided "as is" without express or +implied warranty. + +------ + +From the hacks: + +flame, hopalong Copyright (c) 1991 by Patrick J. Naughton. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation. + +This file is provided AS IS with no warranties of any kind. The author +shall have no liability with respect to the infringement of copyrights, +trade secrets or any patents by this file or any part thereof. In no +event will the author be liable for any lost revenue or profits or +other special, indirect and consequential damages. + +------ + +maze Copyright 1988 by Sun Microsystems, Inc. Mountain View, CA. + + All Rights Reserved + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the names of Sun or MIT not be + used in advertising or publicity pertaining to distribution of the + software without specific prior written permission. Sun and M.I.T. + make no representations about the suitability of this software for + any purpose. It is provided "as is" without any express or implied warranty. + + SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT SHALL SUN BE LIABLE FOR ANY SPECIAL, INDIRECT + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS + OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE + OR PERFORMANCE OF THIS SOFTWARE. + +------ + +pedal Copyright \(co 1994, by Carnegie Mellon University. Permission to use, +copy, modify, distribute, and sell this software and its documentation +for any purpose is hereby granted without fee, provided fnord that the +above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation. +No representations are made about the suitability of fnord this software +for any purpose. It is provided "as is" without express or implied +warranty. + +------o --- xscreensaver-5.05.orig/debian/xscreensaver.svg +++ xscreensaver-5.05/debian/xscreensaver.svg @@ -0,0 +1,983 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +begin='' id='W5M0MpCehiHzreSzNTczkc9d' + + + + + + + + +Adobe PDF library 5.00 + + + + + + + + + + + + + +2004-01-18T18:22:37+02:00 + + + +2004-03-29T09:23:42Z + + + +Adobe Illustrator 10.0 + + + +2004-01-28T02:28:36+01:00 + + + + + + +JPEG + + + +256 + + + +256 + + + +/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA +AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK +DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f +Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER +AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA +AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB +UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE +1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ +qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy +obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp +0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo ++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FUJeavpNkw +W9vYLZj0E0qRk/8ABEYqh/8AFPlj/q72X/SRF/zVirv8U+WP+rvZf9JEX/NWKu/xT5Y/6u9l/wBJ +EX/NWKu/xT5Y/wCrvZf9JEX/ADVirv8AFPlj/q72X/SRF/zVirv8U+WP+rvZf9JEX/NWKu/xT5Y/ +6u9l/wBJEX/NWKu/xT5Y/wCrvZf9JEX/ADVirv8AFPlj/q72X/SRF/zVirv8U+WP+rvZf9JEX/NW +Ku/xT5Y/6u9l/wBJEX/NWKu/xT5Y/wCrvZf9JEX/ADVirv8AFPlj/q72X/SRF/zVirv8U+WP+rvZ +f9JEX/NWKu/xT5Y/6u9l/wBJEX/NWKu/xT5Y/wCrvZf9JEX/ADVirv8AFPlj/q72X/SRF/zVirv8 +U+WP+rvZf9JEX/NWKu/xT5Y/6u9l/wBJEX/NWKu/xT5Y/wCrvZf9JEX/ADVirv8AFPlj/q72X/SR +F/zVirh5o8sk0Gr2RJ6D6xF/zViqYxSxSxrJE6yRsKq6kMpHsRiq7FXYq7FXYq7FXYqtllihieWV +xHFGpeR2NFVVFSST0AGKvDfNn5o+Y/M+pS6P5RL2unoSsl6p4SSLWnPn1jTwp8R/DCBapbYflDdX +S+veXE00j/E7JxQEnr8clS3zplnAOpRaMP5MW/8Ay9f8jYP+aceGKtH8moP+Xr/kbB/zTjwxVafy +bh/5ef8AkbB/zTjwRVafydh/5ef+RsH/ADTjwRVo/k9F/wAvP/I2D/mnDwRVafygj8Ln/kbD/wA0 +48EVaP5Qp4XH/I2H/mnHgiq0/lGvhcf8jYf+aceCKrT+Ui+Fx/yNh/pjwRW2j+Uw/luP+RsP9MeC +K2tP5T/5Nx/yNh/pjwRW2j+VJ/ln/wCRsP8ATHgitrT+VTfyz/8AI2H+mHw4ra0/lY/8s/8AyNh/ +pj4cVto/la/8k/8AyMh/pj4cVtafyvk/km/5GQ/0x8OK20fywl/km/5GQ/0x8OK2tP5ZTfyTf8jI +f6Y+HFbWn8s5/wCSb/kZD/THw4rbR/LW4/33L/yMhx8OK2tP5bXH++5f+RkWHw4ra1vy4ugNo5a/ +8ZIjg8KK2h7Q+bvKV19Y0m7mgZTyeDcK4/yozVHGRliI5Lb2z8t/zNsvNtuba4VbXWoF5TWwPwSK +NjJFXenivUe+VJZxirsVdirsVdirzL8+fMc2n+WrfSrdyk2rSMshU7+hFQuu38zMo+VcVQ/5d+U7 +bTtMQyRgyChmJH25SKmvslaDLuQpDILzXVjlMcCB+JoXPSvtTERVD/p65/32n4/1w8Ku/Tdwf91p ++P8AXHhVv9MT/wAi/j/XHhV36WmP7C/j/XHhV36TlP7C/jjwq3+kJT+yv440rvrsh/ZH440rvrbn +sMaV31hj2GNK36rHsMVdyJxV3XFW+AOKu9FT3OKu+rKe5xtXfVEPc42rf1GM/tH8MbV36OiP7Tfh +jau/RcJ/bb8MeJXfomE/tt+H9MeJW/0NAf22/D+mPErv0HAR/ePX6MeJUj1vRUZDb3ADKwJilA3B +8R75KMkPJNQN75d8ww6hZuYbiCXkGXb4lO/0MMryx3tIfTXljXItc0S21GOgMqj1FH7LjqMqSmmK +uxV2KuxV4j+fZJ8zeXkO6cCeJ6byqD+rCFZ9o/w6PUbH4zX3qctlzQx0ZYhhP5hfmhD5NvtNs201 +7+XUhMYuE0cIX0Apapk23D+OMIylLhiLJRKQiLPJjX/QwR/6lqT/AKTrT/mrMn8jqP5havzOP+c3 +/wBDBn/qWpP+k60/rj+R1H8wr+Zx/wA5sf8AOQjf9S1L/wBJ1p/XH8hqP5hX8zj/AJwXf9DCt/1L +Mv8A0n2n9cfyGo/mFfzWP+cGx/zkM/8A1LEv/Sfaf1x/Iaj+YUfmsX84Lh/zkNJ/1LEv/Sfaf1x/ +k/UfzCv5rF/ODY/5yHk/6leX/pPtP64/yfqP5hX81i/nBv8A6GIk/wCpXl/6T7T+uP8AJ+o/mFfz +eL+cGx/zkTL/ANStL/0n2n9cf5P1H8wr+bxfzg3/ANDFS/8AUrS/9J9p/XH+TtT/ADCv5vF/ODf/ +AEMZL/1K0v8A0n2n9cf5O1P8wr+bxfzg3/0MbL/1K0v/AEn2n9cH8naj+YV/N4v5wb/6GPk/6lWX +/uIWn9cf5O1H8wr+bxfzg3/0MjJ/1Ksv/cQtP64/ydqP5hX83i/nBv8A6GSk/wCpVl/7iFp/XH+T +tR/MK/msX84N/wDQyr/9SrL/ANxC0/rg/k7UfzCn81i/nB3/AEMu3/Uqy/8AcQtMf5P1H8wr+ax/ +zg3/ANDMsP8AplZf+4haY/yfqP5hX8zj/nB3/QzZ/wCpVk/7iFpj/J+o/mFfzOP+cu/6GcP/AFKk +n/cRtMH8n6j+YV/M4/5zOvyu/M9fPaasRpb6W2kvbxyLJMk3M3KO6kGMAU4p+OYs4ShIxkKIboyE +hY5Mn18D6vGe/P8AgcMEvGPzFUfXJD/xYn4xYcv0qHrP5J3Dt5faFjUDiy+3bMdL0bFXYq7FXYq8 +R/Pn/lKfL/8Axj/5nDCFZ9pP/HF+iT9Zy2XNDHRliHhH/OR3/KReVf8AUvv+IxZmdl/41D4/7kuP +rP7o/jq9t8k+UPJM/kzQJ7ny/pk1xLp1o800lnbu7u0CFmZihJJO5Jyeq1GUZZATlXEep72GLHAw +Gw5dydf4J8g/9S3pX/SFbf8ANGUfms38+X+mLPwofzR8m/8ABPkL/qW9K/6Qrf8A5ox/NZv58v8A +TFfCh/NHyd/gryF/1Lelf9IVv/zRh/NZv58v9MV8KH80fJv/AAV5C/6lzSv+kK3/AOaMfzWb+fL/ +AExR4UP5o+Tv8FeQ/wDqXNK/6Qrf/mjH81m/ny/0xXwcf80fJ3+C/If/AFLmlf8ASFb/APNGP5rN +/Pl/pivg4/5o+Tf+C/If/UuaX/0hW/8AzRj+az/z5/6Yr4OP+aPk7/BfkT/qXNL/AOkK3/5ow/ms +/wDPl/pivg4/5o+Tv8F+RP8AqXNL/wCkK3/5ox/NZ/58/wDTFHg4/wCaPk7/AAX5E/6lzS/+kK3/ +AOaMfzWf+fP/AExXwcf80fJ3+C/In/UuaX/0hW//ADRj+az/AM+X+mKfBx/zR8nf4L8h/wDUuaX/ +ANIVv/zRg/NZ/wCfP/TFfBx/zR8mv8F+Q/8AqXNK/wCkK3/5ox/NZv58v9MV8HH/ADR8nf4K8h/9 +S5pX/SFb/wDNGP5rN/Pl/pivg4/5o+Tv8FeQv+pc0r/pCt/+aMfzWb+fL/TFfCh/NHya/wAFeQv+ +pb0r/pCt/wDmjH81m/ny/wBMU+FD+aPk7/BPkL/qW9K/6Qrf/mjB+azfz5f6Yr4UP5o+TX+CfIP/ +AFLelf8ASFbf80Y/ms38+X+mK+FD+aPkx78wvKXku28ja7cWugabb3MVlM8M8VpAjowQ0ZWVAQR4 +jMnR6jKc0QZSIsdS15scBA0ByYX/AM4u/Y84/wDGbSv+oSTMbtP/ABmf46Bt0n90HsGv/wC80f8A +r/wOYkHIeMfmL/vXL/xlj/5NYcv0qHqf5Jf8cZv9UfrzHS9LxV2KuxV2KvEfz5/5Sny//wAY/wDm +cMIVn2k/8cX6JP1nLZc0MdGWIeE/85G7+Y/Kn+pff8QizM7L/wAah8f9yXG1n90fh973DyRdcfJe +gLXpptoPugTJ6qP72f8AWP3scR9A9wTv6375Rws7b+t++PAvE763748COJv6374eBeJ31v3x4F4m +/rfvjwI4nfWvfHgXid9a98eBeJ31v3x4F4nfW/fHgXid9a98eBeJ31r3x4F4nfW/fHgXia+t++PA +nid9b98eBeJr6374OBeJ31v3x4E8TX1v3x4Vtjv5h3PLyNrq162Uw/4Q5k6OP76PvDXmPoPuYP8A +84vfZ84/8ZtK/wCoSTMbtT/GZ/joG3Sf3Qewa/8A7zR/6/8AA5iQch4x+Yv+9cv/ABlj/wCTWHL9 +Kh6n+SX/ABxm/wBUfrzHS9LxV2KuxV2KvEfz5/5Sny//AMY/+ZwwhWfaT/xxfok/WctlzQx0ZYh4 +V/zkUK+ZfKn+pff8QizN7K/xuHx/3JcbW/3J+H3vWfKFzx8p6Itelhaj7oVzK1Mf3sv6x+9oxS9A +9yb/AFv3yngZcTf1v3x4F4m/rfvh4EcTf1r3x4F4m/rXvh4EcTvrXvjwLxN/WvfHgXid9a98eBeJ +31r3x4EcTvrXvjwLxO+te+PAnid9a98eBeJr61748C8TvrXvjwLxNfWvfBwJ4mvrfvjwLxNfW/fB +wJ4mvrfvjwLxJF55ueXk/WVr1tJR/wAKcv0kf3sfewzS9B9zHf8AnGD/AKbL/jNpX/UJJmB2p/jM +/wAdA5Oj/uovX9f/AN5o/wDX/gcw4OS8Y/MX/euX/jLH/wAmsOX6VD1P8kv+OM3+qP15jpel4q7F +XYq7FXiP58/8pT5f/wCMf/M4YQrPtJ/44v0SfrOWy5oY6MsQ8L/5yIFfM3lP/Uvv+IRZndk/43D4 +/wC5Li67+5l8PvD0Pyvc8fLWkrXpZ24/5JLmx1Ef3kv6x+9w8cvSPcmguvfKuBlxNi698PAjiXC6 +98PAvE39a98eBHE39a98PAjib+te+PAvE76z748COJ31n3w8C8Tf1n3x4F4nfWffHgXia+s++PAv +E76z74OBeJ31r3x4E8TX1r3x4F4mvrXvg4E8TRuvfHgTxLTde+DgXiaN174OBPEk3nC45eV9VWvW +2kH/AApy/TR/eR97DLL0FBf84xdfOf8Axm0r/qEkzT9q/wCNT/HQOfov7qL17X/95o/9f+BzDg5L +xj8xf965f+Msf/JrDl+lQ9T/ACS/44zf6o/XmOl6XirsVdirsVeI/nz/AMpT5f8A+Mf/ADOGEKz7 +Sf8Aji/RJ+s5bLmhjoyxDwz/AJyFFfNHlP8A1L7/AIhFmd2R/jcPj/uS4mv/ALmXw+8Mu8v3HHQd +NXwtYB/yTXN1mj65e8uuxy9I9yYi698r4GXEuFz74eBHEuFzh4EcTYuffHgRxLhc++HgRxN/WffD +wI4nfWffHgXib+s48COJ31nHgXid9Zx4F4nfWceBeJr6z748CeJ31n3x4F4mjc++DgTxLTc++DgT +xNG5x4E8S03Pvg4E8S03Xvg4E8SVeZ7jl5e1FfG3kH/C5bp4/vI+9hll6Sr/APOMn2/Of/GfSv8A +qEkzQdrf41P8dA7TQ/3MXruv/wC80f8Ar/wOYUHKeMfmL/vXL/xlj/5NYcv0qHqf5Jf8cZv9Ufrz +HS9LxV2KuxV2KvEfz5/5Sny//wAY/wDmcMIVn2k/8cX6JP1nLZc0MdGWIeG/85B7+afKX+pf/wDE +I8z+yP8AHIfH/clw+0P7iXw+8Jzo1xx0ixWvS3iH/CDOiyw9Z95dTCXpCOF175DgXiXi598PAjiX +C598PAjiXC598PAx4lwuffDwI42/rPvh4Ecbf1n3x4F42/rPvh4EcbvrHvj4a8bvrHvj4a8bvrPv +jwLxtfWffBwJ42vrPvjwLxtG598HAnjWm598HAniWm598HAy4ljXYAqSAB3OPhp40JLrunR/buol +PhzWv3VwjTyPQo8Ud6Ua35l0mbTLq3S5DySxsiKAxqSNt6Uy7FppiQNMZ5okEWyr/nGb+886f8Z9 +K/6g5M5Ltb/Gp/joHeaD+5i9c1//AHmj/wBf+BzCg5bxj8xf965f+Msf/JrDl+lQ9T/JL/jjN/qj +9eY6XpeKuxV2KuxV4j+fP/KU+X/+Mf8AzOGEKz7Sf+OL9En6zlsuaGOjLEPDv+cgf+Ur8pf6l/8A +8m48z+x/8ch8f9yXD7R/uJfD7wq6ZccdPtRXpDGP+FGdXkh6j73RRlsEWLn3wcCDJeLn3w8COJeL +n3yXAx414uffDwMeNcLj3w8CONcLj3w8CONsXHvh8NHG39Y98fDRxt/WPfHw143fWPfHw142vrHv +j4a8bRuPfHw08anLfQxCskioPc0xGInkFOQBLrjzLZx1CcpT/kig+80y6OjkeezA6kBLrjzVeNUQ +xJGPFqsf4ZaNFHqWB1J6JdPrWrS/auWUeCUT/iNMsGngOjHxpHql8zyyGsjs58WJP68nwgckcVqD +LgIZAqbLkSGQL2X/AJxo/vvOn/GfSv8AqDkzzvtf/Gp/joHrdB/cx/HV63r/APvNH/r/AMDmDBy3 +jH5i/wC9cv8Axlj/AOTWHL9Kh6n+SX/HGb/VH68x0vS8VdirsVdirxH8+f8AlKfL/wDxj/5nDCFZ +9pP/ABxfok/WctlzQx0ZYh4f+f8A/wApZ5R/1L//AJNx5sOxv8ch8f8Aclwu0v7iXw+8IGzuKWsI +r0RR+AztJQ3LzYlsiBc++IggyVFuffJcDEzXi498PAxM14uPfJeGx414uPfD4bHjXi498l4aONcJ +8fDRxrhKceBHE36jY8KeJp5wgqzAD3wiFoM6Qk2rKuyKXPj0GWx0982BzICfU72TYN6Y8F2/Hrls +cEQ1nNIoJwzEliST1Jy2mFqZXBTIFYy5GmQKmy5EhkCpsuRIZAqTLkSGYKmy5EhmC9i/5xq/v/Ov +/GfSv+oOTPOe1/8AG5/joHruz/7iP46vWtf/AN5o/wDX/gcwYOY8Y/MX/euX/jLH/wAmsOX6VD1P +8kv+OM3+qP15jpel4q7FXYq7FXiP58/8pT5f/wCMf/M4YQrPtJ/44v0SfrOWy5oY6MsQ8Q/P7/lL +vKP+pf8A/JuPNh2N/jkPj/uS4XaX+Ly+H3hjsNxSNRXoAPwzvuB5TiV1uffCIMTNUW498kIMDNUW +498mMbAzVFuPfD4bEzVFnJyXAx41dGJ75EhbRCZAsrVA/gK5GltpvWbvQe2IpbKk1sTudz45PjY0 +pta+2ETRSjJa+2WCbEhDSW5GWCSKUGSmFbU2XAQyBU2XIkMgVJlyBDMFTZciQzBUmXIkMwXr/wDz +jX/vR51/4z6V/wBQb55x2x/jc/x0D2HZ39xH8dXrOv8A+80f+v8AwOYEHMeMfmL/AL1y/wDGWP8A +5NYcv0qHqf5Jf8cZv9UfrzHS9LxV2KuxV2KvEfz5/wCUp8v/APGP/mcMIVn2k/8AHF+iT9Zy2XND +HRliHiP5+f8AKX+UP9S//wCTcebHsX/HIfH/AHJcHtP/ABeXw+8MUQZ6GHkCVVRkgGBKqq5MBgSq +qMkAwJVUSpyTBGQwe2VSkyARsVvlMpMwESlv7ZWZsgFZbf2yBmmlQW/tkeNNO+r+2PGtLGt/bJCa +KUHt/bJiaKQ0tv7ZZGbEhBTW/tl8ZsCEE8ZByxipMuAhkCpMuQIZgqTDIlmCpMMgWYL13/nG3/en +zt/xn0r/AKg3zzftn/G5/joHsuzv7iP46vWNf/3mj/1/4HMCDmvGPzF/3rl/4yx/8msOX6VD1P8A +JL/jjN/qj9eY6XpeKuxV2KuxV4j+fP8AylPl/wD4x/8AM4YQrPtJ/wCOL9En6zlsuaGOjLEPEvz7 +/wCUw8of6l//AMm482PYv+Ow+P8AuS4Pan+Ly+H3hiqjPRQHjiVZRkgGBKqoyYDWSqotTTJMCjre +HplUpMgEwhhzHlJsARsUOUykzARKQ5WZMqVlhyBkml4hyPEmnGHHiWlrQ5ISRSg8OTEkEIaWHLIy +YkIKaHLoyYEJfcQdcyIyayEC60NMtYhSYZEswVFhkSzBUmGQLYHrX/ON3+9Xnb/jPpP/AFBvnmvb +P+Nz/HQPZ9m/3Efx1esa/wD7zR/6/wDA5gQc14x+Yv8AvXL/AMZY/wDk1hy/Soep/kl/xxm/1R+v +MdL0vFXYq7FXYq8R/Pn/AJSny/8A8Y/+ZwwhWfaT/wAcX6JP1nLZc0MdGWIeJfn1/wAph5Q/1L// +AJNx5sexP8dh8f8AclwO1P8AF5fD7wxdRnoweNKsoyYYFVUZIMCi7eOprgkUBM7eLpmNKTYAmEMW +Y8i2AI2OPKSWQCISPKyWVKyx5AllS8R4LWnGPG1pY0eEFaUnjyYLGkNLFlgLEhBTRZdEsSEvuIuu +ZEZNZCWXEdDXMmJayhWGSKQosMgWYUWGQLMPWf8AnG//AHr87f8AGfSf+oN8817Z/wAbn+Oge17N +/wAXj+Or1fX/APeaP/X/AIHNfBzXjH5i/wC9cv8Axlj/AOTWHL9Kh6n+SX/HGb/VH68x0vS8Vdir +sVdirxH8+f8AlKfL/wDxj/5nDCFZ9pP/ABxfok/WctlzQx0ZYh4n+fP/ACmPlD/Uv/8Ak1Hmx7E/ +x2H+d/uS4Han+Ly+H3hjCjPRw8YVZRkwwKsgqRkmspjbJ0ymZZgJnAnTMaRbAmEKZjyLYEZGmUks +giUTKyWSqqZAlK8LgtLiuNqsZMIKFJ0yYKENImWAsSg5ky6JYlATp1y+JayldynXMqBaylzihOXM +AosMiWwKLDIFmHq//ON/+9fnb/jPpP8A1BvnmnbP+OT/AB0D2vZv+Lx/HV6vr/8AvNH/AK/8Dmvg +5zxj8xf965f+Msf/ACaw5fpUPU/yS/44zf6o/XmOl6XirsVdirsVeI/nz/ylPl//AIx/8zhhCs+0 +n/ji/RJ+s5bLmhjoyxDxP8+P+Ux8of6mof8AJqPNj2J/jsP87/clwO1f8Xl8PvDGUz0cPGFWTJhr +KIiHxDJHkwTS2XpmNMtgTOBcxpNgR8IzHk2BGRjKiyCIQZWWSqoyBSvAwJcRiqxhhCFJxkwhDyDL +AxKDmGWxYlATjrmRFrKWXK9cyYFrKVzD4jmSOTWh3yJZhRfIFsD1b/nHD/evzv8A8Z9J/wCoN880 +7a/xyfw+4Pa9m/4vH8dXq+v/AO80f+v/AAOa+DnPGPzF/wB65f8AjLH/AMmsOX6VD1P8kv8AjjN/ +qj9eY6XpeKuxV2KuxV4j+fP/AClPl/8A4x/8zhhCs+0n/ji/RJ+s5bLmhjoyxDGfNn5c+XvNd9Y3 +mqzXsUunrKts1jOLdx63EMS/Bz0SmAWDxRJB8kSiCKIsJWPyQ8m/9XLzB/3FD/1Sy38zm/1SfzP6 +2v8AL4v5sfkFw/JDyd/1c/MH/cUP/VLH8zn/ANUn/pj+tH5bF/Nj8g2PyQ8n9tU8wj/t6H/qlj+Z +z/6pP/TH9a/lsX82PyC8fkn5THTVvMQ/7erf9UsH5jN/Pl8yn8ti/mx+QXj8lfK3bWfMY/7ezf8A +VLB4+X+fL5lfy+P+bH5BePyX8s9tb8yD/t7P/wBU8HjZf58vmV/L4/5sfkFw/Jjy3/1fPMv/AHF3 +/wCqePjZf58vmU+Bj/mx+QXD8mPLv/V98zf9xd/+qeDxcn86XzK+Bj/mj5Bsfkx5d/6v3mb/ALi7 +/wDVPHxcn86XzK+Bj/mj5Lh+S/l7/q/+Zv8AuLv/ANU8fFyfzpfMr4GP+aPk3/ypby9/1f8AzN/3 +F3/6p4+Lk/nS+ZXwMf8ANHyd/wAqU8u/9X/zN/3F3/6p4+Lk/nS+ZXwMf80fJv8A5Uj5cP8A0v8A +zN/3Fn/6p4+Nk/nS+ZXwMf8ANHyDv+VHeWj/ANL7zL/3Fn/6p4+Nl/ny+ZXwMf8ANj8g7/lRflg9 +dd8y/wDcVf8A6p4+Pl/ny+ZX8vj/AJsfkHf8qG8qnrrnmT/uKt/1Tw/mMv8APl8yj8vj/mx+Qa/5 +UD5SPXWvMR/7ejf9U8P5rN/Pl8yv5bF/Nj8g1/0L55OPXWPMP/cTP/VPH83n/wBUn/pj+tH5bF/N +j8g7/oXnyYf+lv5h/wC4kf8Aqnj+bz/z5/6Yp/LYv5sfkG/+hdvJZ/6W/mD/ALiR/wCqeP5vN/Pn +/piv5bF/Nj8gyvyJ+XXl/wAlRaimky3lw+qSQy3c19OLhyYFZEo3BD0fvlEiZGybLbGIAobBNtf/ +AN5o/wDX/gclBLxj8xf965f+Msf/ACaw5fpUPU/yS/44zf6o/XmOl6XirsVdirsVeI/nz/ylPl7/ +AFD/AMnhhCs+0jfRqDc0f9Zy2XNDHRliFwxVcMCrhilcMVXDFVwwKuGKrhiq4YquGBVwxVcMVXDF +V4wK2MVXDFV4xVsYqvGBUl0zTNPujey3ECSyfW5hyYVNA2wyRKr5bCytNZ0w20Kwl2mD8BSoERO+ +N7KngyKpdr/+80f+v/A5KCvF/wAxT/pkg7+pH/yaw5fpUPVPyS/44zf6o/XmOl6XirsVdirsVeU/ +85AaFPc6HY61ApJ0yVknI6iOfiA30Oqj6cVRfkDzJb6npcR5ANIKkfyygUdPv3GXHcWhMb3QpfVZ +7ahRt+BNCPlhElQ36Hv/AOQf8EMPEFb/AETffyD/AIIY8QVv9F3n8g+8Y8QVv9G3Y/ZH3jG1b+oX +X8o+8Y2rf1K4H7I+8YLV31Sfw/EY2rf1aUdvxxtW/RkHbFW/TcdsVdxOKt4q3yXFW/VQd8Vb9eMd +8aVv6zD4/hjSt/W4B+1+BwUrvrtv/MfuONK3+kLX+Y/ccaVALDZo8rRX1xCJZGlZE4ceTmppyQnC +q6NbFbqG5lvLid4OXprJx4guvE/ZRe2O6o86vZAfaJ9gDg4SqSa1rEbIZpT6dvENgepJ/icnGKvG +vNF82o6oI0+0zlmHWhboP9iuQynooe6/lHp7W2juxFAaAfT1H0UylLPcVdirsVdiqjeWdre2k1nd +Ria2uEaOaJujIwoQcVfPnmbyv5j/AC51Z7qw5XegXDfu5G3HiElp9mRezdD94EoypU20z85LL0QL +gvE4G6yp6g+hkNT9IyfFEoRh/OLSP9+p/wAiZf643FVp/OHSf9+J/wAiZf643FVp/ODSv9+J/wAi +pf64biq0/m/pf+/E/wCRUv8AXG4q0fze0z/fif8AIqX+uNxVafzd03+dP+RUv9cbiq0/m3p386f8 +ipf643FVp/NvT/50/wCRUv8AXHiiq0/mzYfzp/yKl/rjxRVo/mxY/wA6f8ipf64eKKrT+a9l/NH/ +AMipf648UVWn81rP+aP/AJFS/wBceKKrT+atp/NH/wAipf648UVWn81LX+aP/kXJ/XHiirR/NO2/ +mj/5Fyf1x4oqtP5pW/jH/wAi5P64eKKrT+aEHjH/AMi5P648cVWn8z4fGP8A5Fyf1x44qtP5nReM +f/IuT+uPHFWj+Zsf/Ff/ACLk/rjxxVafzMT/AIr/AORcn9ceOKrG/MpSDT0wfaOT+Jx44rSQ6t5v +v9Rb04ebsdlJFAP9VRt9ORll7lpNPJPk27vLxJZULOxHv1/XlKX0VoumR6bp8VsvVRV6eNMVR2Ku +xV2KuxV2KqdzbW91A9vcxrNBIOMkbgFSPcHFXnet/kh5cvJWlsf9GLGpjNeIr4Eb4q8p1XTvIGn3 +j2ov3u2jJV5LZC6VHYMeIb5rUYqg/wDnQv8Afl1/yLH/ADVirv8AnQv9+XX/ACLH/NWKu/50L/fl +1/yLH/NWKu/50L/fl1/yLH/NWKu/50L/AH5df8ix/wA1YqlGqDRVuAdOeSSBhuJF4sp8OpqMVQfK +D+XFXcoP5cVdyg/lxV3KD+XFXcoP5cVdyg/lxV3KD+XFXcoP5cVTTTG8scaah6wb+aNa/rYYqj/+ +dC/35df8ix/zVirv+dC/35df8ix/zVirv+dC/wB+XX/Isf8ANWKu/wCdC/35df8AIsf81Yq7/nQv +9+XX/Isf81Yqy3yx+WvlvzLbvPpGoRz+kR60LckkSvTkjAGh8emKsw0r8mbS1cGR4+I/lG/3Yqzz +SNA0/S4wtug595D1xVMcVdirsVdirsVdirsVY9+Yd3PaeR9angYpKtq6q42I5jiSPehxV47+WHlD +RtX0xpbuBJZmZzzkXnQKVUKAdu+WRApDOz+VGif8sUX/ACJX+uHiHcq0/lPov/LHF/yJX+uNjuVa +fyn0f/lji/5Er/XHiHcq0/lPpH/LHH/yJX+uPEO5Vp/KbSv+WOP/AJEr/XHiHcq0/lNpf/LJH/yJ +X+uHiHcq0/lNpv8AyyJ/yJX+uPFHuVafyl0//lkT/kUv9cbiq0/lLYf8sif8il/rjcVWn8pbL/ll +X/kUv9cbiq0/lJZ/8sq/8il/rjcVWn8pLX/llX/kUv8AXDcVWn8pLb/llH/Ipf643FVp/KOD/lmH +/Ipf643FVp/KOH/lmH/Ipf643FVp/KOP/lm/5JL/AFxuKrT+Ua/8s3/JJf643FVp/KIf8s//ACSX ++uG4qtP5RH/lnP8AyKX+uNxVCaj+WMNjavPPFwVQSvKNRUgE06+2EcJ6Kw/ytqt5oHnSKbTnMXxB +HT9l43ALIw7jKZiikPqKzuVubWK4UUEqhqeFR0yCquKuxV2KuxV2KuxV2KuxVjH5nf8AKA63/wAw +x/WMVef/AJLf8ckfOX/ia5aPpQ9d9XK0u9bGla9bFWvWxVr18NK16+NK76x740rX1jGla+se+NK1 +9Z98aVr6z740rvrXvjStfWvfGla+te+NK19b98NK19b98aV31z3xpWvrnvjStfXPfGlSDznP6mju +K9A5/wCEbJ4xugvA7f8A5SxP9dP+IjI5PqUPqXQv+ORaf8YxlaUdirsVdirsVdirsVdirsVYx+Z3 +/KA63/zDH9YxV59+S/8AxyPpl/4muWj6UPUzLkUrTLiq0zY0q0zY0hoz4qtM+GlWm498aVabjGla +Nx740q03PvhpVpuffGlYtovl638xeYNeF5e3cC2ksXorbyhB+8D1ryV/5B0ycpUAqef8qv0X/q6a +l/yPT/qnkPFPctO/5Vfov/V01L/ken/VPHxT3LTv+VX6L/1dNS/5Hp/1Tx8U9y01/wAqu0X/AKum +o/8AI9P+qePinuWnf8qu0X/q6aj/AMj4/wDqnj4p7lp3/KrtE/6umo/8j4/+qePilaSDQE/R2ua5 +YLPLNDbSxpE0zc2oOfU7D7hlh3AVGeYJ/U02UV6I5/4Q4IhXilv/AMpYn+un/ERleT6lD6l0L/jk +Wn/GMZWlHYq7FXYq7FXYq7FXYq7FWMfmd/ygOt/8wx/WMVeffkv/AMcj/kb/AMTXLR9KHpJY4FWF +jiq0scVWFjhVaWOKrCxxVaWbFVhdvHCq0u3jiqwu3jhVaXbxxVj2ga1badruum4nSH1pIuPNgteI +etKkeOSlGwFT/wDxlpf/AC3Qf8jU/rkOBXf4y0v/AJboP+Rqf1x4Fd/jLS/+W6D/AJGJ/XHgV3+M +tL/5boP+Rif1x4Fd/jLS/wDlug/5GJ/XHgV3+MtL/wCW6D/kYn9ceBWLabeJca7rVxE4dJZI2Dqa +g7N0OWVsEIzUHZrG4r/vt/8AiJxCvI7Y182J/rp+CjKMn1JD6l0L/jkWn/GMZBKOxV2KuxV2KuxV +2KuxV2KsY/M7/lAdb/5hj+sYq8+/Jf8A45H/ACN/4muWj6UPSDgVYcVWnFVhwqtOKrDhVacVWHFV +hxVYcKrTiqAn0bSppWlltInkc1Z2UEk++GyqkdB0b/lih/4AYbKrToWjf8sUP/ADGyq06Ho//LHD +/wAAMbKFh0TSP+WOL/gBjZVadF0j/lji/wCBGGyq06NpP/LJF/wIxtVSCztLbl9XiWLnTlwAFadK +/fjarL//AHiuP+Mb/wDETiFeR2n/AClaf8ZF/UMoyfUyD6m0L/jkWn/GMZBUdirsVdirsVdirsVd +irsVYx+Z3/KA63/zDH9YxV59+S//AByP+Rv/ABNctH0oekHAqw4qtOKrDhVacVWHCq04qsOKrDiq +w4VWnFVhxVacKrDiqw4qtOFVhxVYcVWnChDX/wDvFcf8Y3/4icQryO0/5StP+Mi/qGUZPqZB9TaF +/wAci0/4xjIKjsVdirsVdirsVdirsVdirGPzNBPkHW6b/wCjN+sYq86/J64gg0XnK4RayrU+PJTT +LYj0oegnVdO/5aFx4Sq06tp3/LQuPCVWHVtN/wCWhcPCVWHVtN/5aEx4Sqw6tpv/AC0JjRVadX03 +/loTDRVYdX03/loTHhKrDq+mf8tCY0VWHV9M/wCWhMaKrDrGmf8ALQmGiq06xpn/AC0JjRVYdY0z +/lpTGiqw6xpf/LSmGiqw6zpf/LSmNFVp1nS/+WlMaKrDrOl/8tKY0ULDrWl/8tKYaVYda0r/AJaU +xpVp1rSv+WlMaVDXmsaY9pMi3CFmjYAeJIOGleYWn/KVp/xkX9QzHyfUyD6m0L/jkWn/ABjGQVHY +q7FXYq7FXYq7FXYq7FVG+sra+sp7K6T1La5jaGZD3RwVYfccVfPnmX8tfN/la+kXR7qWTSp25QzI +zIfZZVXbkPHv+GEEhUm+ofmB/wAtU/8AyMf+mHiKu/R/n/8A5ap/+Rj/ANMeIq1+jvP3/LTP/wAj +H/pjxFWv0Z59/wCWmb/kY/8ATHiKu/Rfnz/lom/5GP8A0x4irX6K8+f8tE3/AAb/ANMeIq79E+e/ +9/zf8G39MeIq1+iPPX+/5f8Ag2/pjxFXfofzz/v6X/g2/pjxlWv0N54/39L/AMG39MeMq79C+d/9 ++y/8G39MeM96tfoTzt/v2X/g2/pjxnvV36D86/79k/4Nv6Y8Z71aOh+df55T/s2/pjxnvVb+g/Ov +80v/AAZx4z3q79BedPGX/gzjxnvVr9A+c/GX/gzjxnvV36A85f8AFn/BHHjPerX+H/OP/Fn/AARx +4z3q7/DvnDwk/wCCOPGe9U48p+R9UfUkluEYyFutCd/4nIq+jdOt2trGCBvtRoA3z74qiMVdirsV +dirsVdirsVdirsVaZVZSrAMp6g7jFVL6lZ/74j/4Bf6Yq76lZ/74j/4Bf6Yq76lZ/wC+I/8AgF/p +irvqVn/viP8A4Bf6Yq76lZ/74j/4Bf6Yq76lZ/74j/4Bf6Yq76lZ/wC+I/8AgF/pirvqVn/viP8A +4Bf6Yq76lZ/74j/4Bf6Yq76lZ/74j/4Bf6Yq76lZ/wC+I/8AgF/pirvqVn/viP8A4Bf6Yq76lZ/7 +4j/4Bf6Yq76lZ/74j/4Bf6Yq76lZ/wC+I/8AgF/pirvqVn/viP8A4Bf6Yq76lZ/74j/4Bf6Yq76l +Z/74j/4Bf6Yq76lZ/wC+I/8AgF/pirvqVn/viP8A4Bf6YqujtreNuUcSI3iqgH8MVVMVdirsVdir +sVf/2Q== + + + + + + + + + + + + + + + + +uuid:2eea4377-c0f1-4dba-9010-c2932c30935a + + + + + + + +image/svg+xml + + + + + +network_local.ai + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + +end='w' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --- xscreensaver-5.05.orig/debian/xscreensaver-gl.docs +++ xscreensaver-5.05/debian/xscreensaver-gl.docs @@ -0,0 +1 @@ +debian/README.gl --- xscreensaver-5.05.orig/debian/xscreensaver-data-extra.files +++ xscreensaver-5.05/debian/xscreensaver-data-extra.files @@ -0,0 +1,481 @@ +usr/lib/xscreensaver/anemone +usr/lib/xscreensaver/anemotaxis +usr/lib/xscreensaver/apollonian +usr/lib/xscreensaver/apple2 +usr/lib/xscreensaver/attraction +usr/lib/xscreensaver/barcode +usr/lib/xscreensaver/blaster +usr/lib/xscreensaver/blitspin +usr/lib/xscreensaver/bouboule +usr/lib/xscreensaver/boxfit +usr/lib/xscreensaver/braid +usr/lib/xscreensaver/bsod +usr/lib/xscreensaver/bubbles +usr/lib/xscreensaver/bumps +usr/lib/xscreensaver/ccurve +usr/lib/xscreensaver/celtic +usr/lib/xscreensaver/cloudlife +usr/lib/xscreensaver/compass +usr/lib/xscreensaver/coral +usr/lib/xscreensaver/critical +usr/lib/xscreensaver/crystal +usr/lib/xscreensaver/cynosure +usr/lib/xscreensaver/decayscreen +usr/lib/xscreensaver/deluxe +usr/lib/xscreensaver/demon +usr/lib/xscreensaver/discrete +usr/lib/xscreensaver/drift +usr/lib/xscreensaver/epicycle +usr/lib/xscreensaver/eruption +usr/lib/xscreensaver/euler2d +usr/lib/xscreensaver/fadeplot +usr/lib/xscreensaver/fireworkx +usr/lib/xscreensaver/flag +usr/lib/xscreensaver/flame +usr/lib/xscreensaver/flow +usr/lib/xscreensaver/fluidballs +usr/lib/xscreensaver/fontglide +usr/lib/xscreensaver/forest +usr/lib/xscreensaver/goop +usr/lib/xscreensaver/grav +usr/lib/xscreensaver/greynetic +usr/lib/xscreensaver/halftone +usr/lib/xscreensaver/halo +usr/lib/xscreensaver/helix +usr/lib/xscreensaver/hopalong +usr/lib/xscreensaver/hyperball +usr/lib/xscreensaver/hypercube +usr/lib/xscreensaver/ifs +usr/lib/xscreensaver/imsmap +usr/lib/xscreensaver/interaggregate +usr/lib/xscreensaver/interference +usr/lib/xscreensaver/intermomentary +usr/lib/xscreensaver/jigsaw +usr/lib/xscreensaver/juggle +usr/lib/xscreensaver/julia +usr/lib/xscreensaver/kaleidescope +usr/lib/xscreensaver/kumppa +usr/lib/xscreensaver/laser +usr/lib/xscreensaver/lightning +usr/lib/xscreensaver/lisa +usr/lib/xscreensaver/lissie +usr/lib/xscreensaver/ljlatest +usr/lib/xscreensaver/lmorph +usr/lib/xscreensaver/loop +usr/lib/xscreensaver/maze +usr/lib/xscreensaver/memscroller +usr/lib/xscreensaver/mismunch +usr/lib/xscreensaver/moire +usr/lib/xscreensaver/moire2 +usr/lib/xscreensaver/mountain +usr/lib/xscreensaver/munch +usr/lib/xscreensaver/nerverot +usr/lib/xscreensaver/noseguy +usr/lib/xscreensaver/pacman +usr/lib/xscreensaver/pedal +usr/lib/xscreensaver/penetrate +usr/lib/xscreensaver/petri +usr/lib/xscreensaver/phosphor +usr/lib/xscreensaver/piecewise +usr/lib/xscreensaver/polyominoes +usr/lib/xscreensaver/pong +usr/lib/xscreensaver/pyro +usr/lib/xscreensaver/qix +usr/lib/xscreensaver/rd-bomb +usr/lib/xscreensaver/rocks +usr/lib/xscreensaver/rorschach +usr/lib/xscreensaver/rotor +usr/lib/xscreensaver/rotzoomer +usr/lib/xscreensaver/sierpinski +usr/lib/xscreensaver/slip +usr/lib/xscreensaver/speedmine +usr/lib/xscreensaver/sphere +usr/lib/xscreensaver/spiral +usr/lib/xscreensaver/spotlight +usr/lib/xscreensaver/squiral +usr/lib/xscreensaver/starfish +usr/lib/xscreensaver/strange +usr/lib/xscreensaver/substrate +usr/lib/xscreensaver/t3d +usr/lib/xscreensaver/thornbird +usr/lib/xscreensaver/triangle +usr/lib/xscreensaver/truchet +usr/lib/xscreensaver/twang +usr/lib/xscreensaver/vermiculate +usr/lib/xscreensaver/vidwhacker +usr/lib/xscreensaver/vines +usr/lib/xscreensaver/wander +usr/lib/xscreensaver/webcollage +usr/lib/xscreensaver/webcollage-helper +usr/lib/xscreensaver/whirlwindwarp +usr/lib/xscreensaver/whirlygig +usr/lib/xscreensaver/worm +usr/lib/xscreensaver/wormhole +usr/lib/xscreensaver/xanalogtv +usr/lib/xscreensaver/xflame +usr/lib/xscreensaver/xjack +usr/lib/xscreensaver/xmatrix +usr/lib/xscreensaver/xrayswarm +usr/lib/xscreensaver/xspirograph +usr/lib/xscreensaver/xsublim +usr/lib/xscreensaver/zoom +usr/share/man/man6/anemone.6x +usr/share/man/man6/anemotaxis.6x +usr/share/man/man6/apollonian.6x +usr/share/man/man6/apple2.6x +usr/share/man/man6/attraction.6x +usr/share/man/man6/barcode.6x +usr/share/man/man6/blaster.6x +usr/share/man/man6/blitspin.6x +usr/share/man/man6/bouboule.6x +usr/share/man/man6/boxfit.6x +usr/share/man/man6/braid.6x +usr/share/man/man6/bsod.6x +usr/share/man/man6/bubbles.6x +usr/share/man/man6/bumps.6x +usr/share/man/man6/celtic.6x +usr/share/man/man6/ccurve.6x +usr/share/man/man6/cloudlife.6x +usr/share/man/man6/compass.6x +usr/share/man/man6/coral.6x +usr/share/man/man6/critical.6x +usr/share/man/man6/crystal.6x +usr/share/man/man6/cynosure.6x +usr/share/man/man6/decayscreen.6x +usr/share/man/man6/deluxe.6x +usr/share/man/man6/demon.6x +usr/share/man/man6/discrete.6x +usr/share/man/man6/drift.6x +usr/share/man/man6/epicycle.6x +usr/share/man/man6/eruption.6x +usr/share/man/man6/euler2d.6x +usr/share/man/man6/fadeplot.6x +usr/share/man/man6/fireworkx.6x +usr/share/man/man6/flag.6x +usr/share/man/man6/flame.6x +usr/share/man/man6/flow.6x +usr/share/man/man6/fluidballs.6x +usr/share/man/man6/fontglide.6x +usr/share/man/man6/forest.6x +usr/share/man/man6/goop.6x +usr/share/man/man6/grav.6x +usr/share/man/man6/greynetic.6x +usr/share/man/man6/halftone.6x +usr/share/man/man6/halo.6x +usr/share/man/man6/helix.6x +usr/share/man/man6/hopalong.6x +usr/share/man/man6/hyperball.6x +usr/share/man/man6/hypercube.6x +usr/share/man/man6/ifs.6x +usr/share/man/man6/imsmap.6x +usr/share/man/man6/interaggregate.6x +usr/share/man/man6/interference.6x +usr/share/man/man6/intermomentary.6x +usr/share/man/man6/jigsaw.6x +usr/share/man/man6/juggle.6x +usr/share/man/man6/julia.6x +usr/share/man/man6/kaleidescope.6x +usr/share/man/man6/kumppa.6x +usr/share/man/man6/laser.6x +usr/share/man/man6/lightning.6x +usr/share/man/man6/lisa.6x +usr/share/man/man6/lissie.6x +usr/share/man/man6/ljlatest.6x +usr/share/man/man6/lmorph.6x +usr/share/man/man6/loop.6x +usr/share/man/man6/maze.6x +usr/share/man/man6/memscroller.6x +usr/share/man/man6/mismunch.6x +usr/share/man/man6/moire.6x +usr/share/man/man6/moire2.6x +usr/share/man/man6/mountain.6x +usr/share/man/man6/munch.6x +usr/share/man/man6/nerverot.6x +usr/share/man/man6/noseguy.6x +usr/share/man/man6/pacman.6x +usr/share/man/man6/pedal.6x +usr/share/man/man6/penetrate.6x +usr/share/man/man6/petri.6x +usr/share/man/man6/phosphor.6x +usr/share/man/man6/piecewise.6x +usr/share/man/man6/polyominoes.6x +usr/share/man/man6/pong.6x +usr/share/man/man6/pyro.6x +usr/share/man/man6/qix.6x +usr/share/man/man6/rd-bomb.6x +usr/share/man/man6/rocks.6x +usr/share/man/man6/rorschach.6x +usr/share/man/man6/rotor.6x +usr/share/man/man6/rotzoomer.6x +usr/share/man/man6/sierpinski.6x +usr/share/man/man6/slip.6x +usr/share/man/man6/speedmine.6x +usr/share/man/man6/sphere.6x +usr/share/man/man6/spiral.6x +usr/share/man/man6/spotlight.6x +usr/share/man/man6/squiral.6x +usr/share/man/man6/starfish.6x +usr/share/man/man6/strange.6x +usr/share/man/man6/substrate.6x +usr/share/man/man6/t3d.6x +usr/share/man/man6/thornbird.6x +usr/share/man/man6/triangle.6x +usr/share/man/man6/truchet.6x +usr/share/man/man6/twang.6x +usr/share/man/man6/vermiculate.6x +usr/share/man/man6/vidwhacker.6x +usr/share/man/man6/vines.6x +usr/share/man/man6/wander.6x +usr/share/man/man6/webcollage.6x +usr/share/man/man6/whirlwindwarp.6x +usr/share/man/man6/whirlygig.6x +usr/share/man/man6/worm.6x +usr/share/man/man6/wormhole.6x +usr/share/man/man6/xanalogtv.6x +usr/share/man/man6/xflame.6x +usr/share/man/man6/xjack.6x +usr/share/man/man6/xmatrix.6x +usr/share/man/man6/xrayswarm.6x +usr/share/man/man6/xspirograph.6x +usr/share/man/man6/xsublim.6x +usr/share/man/man6/zoom.6x +usr/share/xscreensaver/config/README +usr/share/xscreensaver/config/anemone.xml +usr/share/xscreensaver/config/anemotaxis.xml +usr/share/xscreensaver/config/apollonian.xml +usr/share/xscreensaver/config/apple2.xml +usr/share/xscreensaver/config/attraction.xml +usr/share/xscreensaver/config/barcode.xml +usr/share/xscreensaver/config/blaster.xml +usr/share/xscreensaver/config/blitspin.xml +usr/share/xscreensaver/config/bouboule.xml +usr/share/xscreensaver/config/boxfit.xml +usr/share/xscreensaver/config/braid.xml +usr/share/xscreensaver/config/bsod.xml +usr/share/xscreensaver/config/bubbles.xml +usr/share/xscreensaver/config/bumps.xml +usr/share/xscreensaver/config/ccurve.xml +usr/share/xscreensaver/config/celtic.xml +usr/share/xscreensaver/config/cloudlife.xml +usr/share/xscreensaver/config/compass.xml +usr/share/xscreensaver/config/coral.xml +usr/share/xscreensaver/config/critical.xml +usr/share/xscreensaver/config/crystal.xml +usr/share/xscreensaver/config/cynosure.xml +usr/share/xscreensaver/config/decayscreen.xml +usr/share/xscreensaver/config/deluxe.xml +usr/share/xscreensaver/config/demon.xml +usr/share/xscreensaver/config/discrete.xml +usr/share/xscreensaver/config/drift.xml +usr/share/xscreensaver/config/epicycle.xml +usr/share/xscreensaver/config/eruption.xml +usr/share/xscreensaver/config/euler2d.xml +usr/share/xscreensaver/config/fadeplot.xml +usr/share/xscreensaver/config/fireworkx.xml +usr/share/xscreensaver/config/flag.xml +usr/share/xscreensaver/config/flame.xml +usr/share/xscreensaver/config/flow.xml +usr/share/xscreensaver/config/fluidballs.xml +usr/share/xscreensaver/config/fontglide.xml +usr/share/xscreensaver/config/forest.xml +usr/share/xscreensaver/config/goop.xml +usr/share/xscreensaver/config/grav.xml +usr/share/xscreensaver/config/greynetic.xml +usr/share/xscreensaver/config/halftone.xml +usr/share/xscreensaver/config/halo.xml +usr/share/xscreensaver/config/helix.xml +usr/share/xscreensaver/config/hopalong.xml +usr/share/xscreensaver/config/hyperball.xml +usr/share/xscreensaver/config/hypercube.xml +usr/share/xscreensaver/config/ifs.xml +usr/share/xscreensaver/config/imsmap.xml +usr/share/xscreensaver/config/interaggregate.xml +usr/share/xscreensaver/config/interference.xml +usr/share/xscreensaver/config/intermomentary.xml +usr/share/xscreensaver/config/jigsaw.xml +usr/share/xscreensaver/config/juggle.xml +usr/share/xscreensaver/config/julia.xml +usr/share/xscreensaver/config/kaleidescope.xml +usr/share/xscreensaver/config/kumppa.xml +usr/share/xscreensaver/config/laser.xml +usr/share/xscreensaver/config/lightning.xml +usr/share/xscreensaver/config/lisa.xml +usr/share/xscreensaver/config/lissie.xml +usr/share/xscreensaver/config/lmorph.xml +usr/share/xscreensaver/config/loop.xml +usr/share/xscreensaver/config/maze.xml +usr/share/xscreensaver/config/memscroller.xml +usr/share/xscreensaver/config/mismunch.xml +usr/share/xscreensaver/config/moire.xml +usr/share/xscreensaver/config/moire2.xml +usr/share/xscreensaver/config/mountain.xml +usr/share/xscreensaver/config/munch.xml +usr/share/xscreensaver/config/nerverot.xml +usr/share/xscreensaver/config/noseguy.xml +usr/share/xscreensaver/config/pacman.xml +usr/share/xscreensaver/config/pedal.xml +usr/share/xscreensaver/config/penetrate.xml +usr/share/xscreensaver/config/petri.xml +usr/share/xscreensaver/config/phosphor.xml +usr/share/xscreensaver/config/piecewise.xml +usr/share/xscreensaver/config/polyominoes.xml +usr/share/xscreensaver/config/pong.xml +usr/share/xscreensaver/config/pyro.xml +usr/share/xscreensaver/config/qix.xml +usr/share/xscreensaver/config/rd-bomb.xml +usr/share/xscreensaver/config/rocks.xml +usr/share/xscreensaver/config/rorschach.xml +usr/share/xscreensaver/config/rotor.xml +usr/share/xscreensaver/config/rotzoomer.xml +usr/share/xscreensaver/config/sierpinski.xml +usr/share/xscreensaver/config/slip.xml +usr/share/xscreensaver/config/speedmine.xml +usr/share/xscreensaver/config/sphere.xml +usr/share/xscreensaver/config/spiral.xml +usr/share/xscreensaver/config/spotlight.xml +usr/share/xscreensaver/config/squiral.xml +usr/share/xscreensaver/config/starfish.xml +usr/share/xscreensaver/config/strange.xml +usr/share/xscreensaver/config/substrate.xml +usr/share/xscreensaver/config/t3d.xml +usr/share/xscreensaver/config/thornbird.xml +usr/share/xscreensaver/config/triangle.xml +usr/share/xscreensaver/config/truchet.xml +usr/share/xscreensaver/config/twang.xml +usr/share/xscreensaver/config/vermiculate.xml +usr/share/xscreensaver/config/vidwhacker.xml +usr/share/xscreensaver/config/vines.xml +usr/share/xscreensaver/config/wander.xml +usr/share/xscreensaver/config/webcollage.xml +usr/share/xscreensaver/config/whirlwindwarp.xml +usr/share/xscreensaver/config/whirlygig.xml +usr/share/xscreensaver/config/worm.xml +usr/share/xscreensaver/config/wormhole.xml +usr/share/xscreensaver/config/xanalogtv.xml +usr/share/xscreensaver/config/xflame.xml +usr/share/xscreensaver/config/xjack.xml +usr/share/xscreensaver/config/xmatrix.xml +usr/share/xscreensaver/config/xrayswarm.xml +usr/share/xscreensaver/config/xspirograph.xml +usr/share/xscreensaver/config/zoom.xml +usr/share/applications/screensavers/anemone.desktop +usr/share/applications/screensavers/anemotaxis.desktop +usr/share/applications/screensavers/apollonian.desktop +usr/share/applications/screensavers/apple2.desktop +usr/share/applications/screensavers/attraction.desktop +usr/share/applications/screensavers/barcode.desktop +usr/share/applications/screensavers/blaster.desktop +usr/share/applications/screensavers/blitspin.desktop +usr/share/applications/screensavers/bouboule.desktop +usr/share/applications/screensavers/boxfit.desktop +usr/share/applications/screensavers/braid.desktop +usr/share/applications/screensavers/bsod.desktop +usr/share/applications/screensavers/bubbles.desktop +usr/share/applications/screensavers/bumps.desktop +usr/share/applications/screensavers/ccurve.desktop +usr/share/applications/screensavers/celtic.desktop +usr/share/applications/screensavers/cloudlife.desktop +usr/share/applications/screensavers/compass.desktop +usr/share/applications/screensavers/coral.desktop +usr/share/applications/screensavers/critical.desktop +usr/share/applications/screensavers/crystal.desktop +usr/share/applications/screensavers/cynosure.desktop +usr/share/applications/screensavers/decayscreen.desktop +usr/share/applications/screensavers/deluxe.desktop +usr/share/applications/screensavers/demon.desktop +usr/share/applications/screensavers/discrete.desktop +usr/share/applications/screensavers/drift.desktop +usr/share/applications/screensavers/epicycle.desktop +usr/share/applications/screensavers/eruption.desktop +usr/share/applications/screensavers/euler2d.desktop +usr/share/applications/screensavers/fadeplot.desktop +usr/share/applications/screensavers/fireworkx.desktop +usr/share/applications/screensavers/flag.desktop +usr/share/applications/screensavers/flame.desktop +usr/share/applications/screensavers/flow.desktop +usr/share/applications/screensavers/fluidballs.desktop +usr/share/applications/screensavers/fontglide.desktop +usr/share/applications/screensavers/forest.desktop +usr/share/applications/screensavers/goop.desktop +usr/share/applications/screensavers/grav.desktop +usr/share/applications/screensavers/greynetic.desktop +usr/share/applications/screensavers/halftone.desktop +usr/share/applications/screensavers/halo.desktop +usr/share/applications/screensavers/helix.desktop +usr/share/applications/screensavers/hopalong.desktop +usr/share/applications/screensavers/hyperball.desktop +usr/share/applications/screensavers/hypercube.desktop +usr/share/applications/screensavers/ifs.desktop +usr/share/applications/screensavers/imsmap.desktop +usr/share/applications/screensavers/interaggregate.desktop +usr/share/applications/screensavers/interference.desktop +usr/share/applications/screensavers/intermomentary.desktop +usr/share/applications/screensavers/jigsaw.desktop +usr/share/applications/screensavers/juggle.desktop +usr/share/applications/screensavers/julia.desktop +usr/share/applications/screensavers/kaleidescope.desktop +usr/share/applications/screensavers/kumppa.desktop +usr/share/applications/screensavers/laser.desktop +usr/share/applications/screensavers/lightning.desktop +usr/share/applications/screensavers/lisa.desktop +usr/share/applications/screensavers/lissie.desktop +usr/share/applications/screensavers/lmorph.desktop +usr/share/applications/screensavers/loop.desktop +usr/share/applications/screensavers/maze.desktop +usr/share/applications/screensavers/memscroller.desktop +usr/share/applications/screensavers/mismunch.desktop +usr/share/applications/screensavers/moire.desktop +usr/share/applications/screensavers/moire2.desktop +usr/share/applications/screensavers/mountain.desktop +usr/share/applications/screensavers/munch.desktop +usr/share/applications/screensavers/nerverot.desktop +usr/share/applications/screensavers/noseguy.desktop +usr/share/applications/screensavers/pacman.desktop +usr/share/applications/screensavers/pedal.desktop +usr/share/applications/screensavers/penetrate.desktop +usr/share/applications/screensavers/petri.desktop +usr/share/applications/screensavers/phosphor.desktop +usr/share/applications/screensavers/piecewise.desktop +usr/share/applications/screensavers/polyominoes.desktop +usr/share/applications/screensavers/pong.desktop +usr/share/applications/screensavers/pyro.desktop +usr/share/applications/screensavers/qix.desktop +usr/share/applications/screensavers/rd-bomb.desktop +usr/share/applications/screensavers/rocks.desktop +usr/share/applications/screensavers/rorschach.desktop +usr/share/applications/screensavers/rotor.desktop +usr/share/applications/screensavers/rotzoomer.desktop +usr/share/applications/screensavers/sierpinski.desktop +usr/share/applications/screensavers/slip.desktop +usr/share/applications/screensavers/speedmine.desktop +usr/share/applications/screensavers/sphere.desktop +usr/share/applications/screensavers/spiral.desktop +usr/share/applications/screensavers/spotlight.desktop +usr/share/applications/screensavers/squiral.desktop +usr/share/applications/screensavers/starfish.desktop +usr/share/applications/screensavers/strange.desktop +usr/share/applications/screensavers/substrate.desktop +usr/share/applications/screensavers/t3d.desktop +usr/share/applications/screensavers/thornbird.desktop +usr/share/applications/screensavers/triangle.desktop +usr/share/applications/screensavers/truchet.desktop +usr/share/applications/screensavers/twang.desktop +usr/share/applications/screensavers/vermiculate.desktop +usr/share/applications/screensavers/vidwhacker.desktop +usr/share/applications/screensavers/vines.desktop +usr/share/applications/screensavers/wander.desktop +usr/share/applications/screensavers/webcollage.desktop +usr/share/applications/screensavers/whirlwindwarp.desktop +usr/share/applications/screensavers/whirlygig.desktop +usr/share/applications/screensavers/worm.desktop +usr/share/applications/screensavers/wormhole.desktop +usr/share/applications/screensavers/xanalogtv.desktop +usr/share/applications/screensavers/xflame.desktop +usr/share/applications/screensavers/xjack.desktop +usr/share/applications/screensavers/xmatrix.desktop +usr/share/applications/screensavers/xrayswarm.desktop +usr/share/applications/screensavers/xspirograph.desktop +usr/share/applications/screensavers/zoom.desktop +usr/lib/xscreensaver/lcdscrub +usr/share/xscreensaver/config/lcdscrub.xml +usr/share/applications/screensavers/lcdscrub.desktop --- xscreensaver-5.05.orig/debian/rules +++ xscreensaver-5.05/debian/rules @@ -0,0 +1,141 @@ +#!/usr/bin/make -f +# Debian rules file foor xscreensaver (1.26), adapted by Larry Daffner from +# Sample debian.rules file - for GNU Hello (1.3). +# Copyright 1994,1995 by Ian Jackson. +# I hereby give you perpetual unlimited permission to copy, +# modify and relicense this file, provided that you do not remove +# my name from the file itself. (I assert my moral right of +# paternity under the Copyright, Designs and Patents Act 1988.) +# This file may have to be extensively modified + +# There used to be `source' and `diff' targets in this file, and many +# packages also had `changes' and `dist' targets. These functions +# have been taken over by dpkg-source, dpkg-genchanges and +# dpkg-buildpackage in a package-independent way, and so these targets +# are obsolete. + +# Modified on July 2007 by Jose Luis Rivas. + +# Including quilt.make +include /usr/share/quilt/quilt.make + +export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +build: patch build-stamp +build-stamp: + dh_testdir + + cp debian/xscreensaver.svg utils/images/xscreensaver.svg + + # generate POT file for translators + cd po; intltool-update --verbose -p; cd .. + + # these are for some reason in the upstream tarball, preserve them + [ -f driver/XScreenSaver_ad.h.upstream ] || [ ! -f driver/XScreenSaver_ad.h ] || \ + mv driver/XScreenSaver_ad.h driver/XScreenSaver_ad.h.upstream + [ -f driver/XScreenSaver_Xm_ad.h.upstream ] || [ ! -f driver/XScreenSaver_Xm_ad.h ] || \ + mv driver/XScreenSaver_Xm_ad.h driver/XScreenSaver_Xm_ad.h.upstream + + # configs files are outdated so we build with the updated ones + [ ! -f config.sub.upstream ] && mv config.sub config.sub.upstream && cp /usr/share/misc/config.sub config.sub + [ ! -f config.guess.upstream ] && mv config.guess config.guess.upstream && cp /usr/share/misc/config.guess config.guess + # Configure for xscreensaver + ./configure --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) \ + --prefix=/usr \ + --without-gl --with-pam --with-gtk --without-kerberos \ + --with-gnome --with-hackdir=/usr/lib/xscreensaver \ + --with-configdir=/usr/share/xscreensaver/config \ + --mandir=/usr/share/man --with-login-manager \ + --with-proc-interrupts + cp driver/XScreenSaver.ad driver/XScreenSaver.ad-nogl + # Configure for xscreensaver-gl + ./configure --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) \ + --prefix=/usr \ + --with-gl --with-pam --with-gtk --without-kerberos \ + --with-gnome --with-hackdir=/usr/lib/xscreensaver \ + --with-configdir=/usr/share/xscreensaver/config \ + --mandir=/usr/share/man --with-login-manager \ + --with-proc-interrupts + $(MAKE) + touch build-stamp + +clean: clean-patched unpatch + +clean-patched: + dh_testdir + dh_testroot + rm -f build-stamp + [ ! -f Makefile ] || $(MAKE) distclean + rm -f config.log config.h + rm -rf driver/XScreenSaver.ad-nogl + rm -rf *~ debian/tmp debian/xscreensaver debian/xscreensaver-gl \ + debian/xscreensaver-gl-extra debian/xscreensaver-data \ + debian/xscreensaver-data-extra + rm -rf debian/*~ debian/files* + rm -f po/.intltool-merge-cache + [ ! -f config.sub.upstream ] || mv config.sub.upstream config.sub + [ ! -f config.guess.upstream ] || mv config.guess.upstream config.guess + [ ! -f driver/XScreenSaver_ad.h.upstream ] || mv driver/XScreenSaver_ad.h.upstream driver/XScreenSaver_ad.h + [ ! -f driver/XScreenSaver_Xm_ad.h.upstream ] || mv driver/XScreenSaver_Xm_ad.h.upstream driver/XScreenSaver_Xm_ad.h + rm -f utils/images/xscreensaver.svg + dh_clean + +binary-indep: build +# Nothing to do here + +binary-arch: build + dh_testdir + dh_testroot + dh_clean -k + rm -rf debian/tmp debian/xscreensaver debian/xscreensaver-gl \ + debian/xscreensaver-gnome debian/xscreensaver-nognome \ + debian/xscreensaver-data debian/xscreensaver-data-extra \ + debian/xscreensaver-gl-extra + $(MAKE) install_prefix=$(CURDIR)/debian/tmp \ + GTK_DATADIR=/usr/share KDEDIR=/usr install + # Adding `NoDisplay=True' in gnome-screensaver-properties.desktop + echo "NoDisplay=true" >> debian/tmp/usr/share/applications/gnome-screensaver-properties.desktop + dh_installdirs -a + dh_installdocs -a + dh_installchangelogs -a + # install .desktop files used by gnome-screensaver + mkdir -p $(CURDIR)/debian/tmp/usr/share/applications/screensavers + cp $(CURDIR)/debian/screensavers-desktop-files/*.desktop \ + $(CURDIR)/debian/tmp/usr/share/applications/screensavers/ + # + # Adding a `x` at the end of all manpages: + #for i in $$( ls debian/tmp/usr/share/man/man6/ ); do mv debian/tmp/usr/share/man/man6/$$i debian/tmp/usr/share/man/man6/$$( echo $$i )x; done + for i in debian/tmp/usr/share/man/man6/*; do mv $${i} $${i}x; done + mv debian/tmp/usr/share/man/man6/xscreensaver-gl-helper.6x debian/tmp/usr/share/man/man6/xscreensaver-gl-helper.6 + dh_movefiles -a + dh_install -a + # make sure we got everything that was installed + # test `find debian/tmp -type f -print | wc -l` -eq 0 + find debian/tmp -type f -print + dh_installpam -a + dh_installmenu -a + # install app-defaults to proper places + mv debian/xscreensaver-data/etc/X11/app-defaults/XScreenSaver \ + debian/xscreensaver-gl/etc/X11/app-defaults/XScreenSaver-gl + install -m 644 -o root -g root driver/XScreenSaver.ad-nogl \ + debian/xscreensaver-data/etc/X11/app-defaults/XScreenSaver-nogl + # Hopefully prevent nVidia brain damage + # This is supposed to prevent accidentially linking against the + # binary nvidia drivers. Deinstall or divert them before building! + #test ! `eval ldd debian/xscreensaver-gl/usr/lib/xscreensaver/* |grep -q libGLcore && echo $$?` + dh_link -a + dh_strip -a + dh_compress -a + dh_fixperms -a + dh_installdeb -a + dh_shlibdeps -a + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +# Below here is fairly generic really + +binary: binary-indep binary-arch + +.PHONY: binary binary-arch binary-indep clean --- xscreensaver-5.05.orig/debian/control +++ xscreensaver-5.05/debian/control @@ -0,0 +1,137 @@ +Source: xscreensaver +Section: x11 +Priority: optional +Maintainer: Jose Luis Rivas +Uploaders: Tormod Volden +Build-Depends: bc, debhelper (>= 4.0), fortune-mod, libgtk2.0-dev, libpam0g-dev (>= 0.72), libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | xlibmesa-glu-dev | libglu-dev, xutils-dev, libgnome2-dev, libxml2-dev, libglade2-dev, libjpeg62-dev, libgle-dev, intltool, autotools-dev, libx11-dev, libxext-dev, libxinerama-dev, libxmu-dev, libxpm-dev, libxrandr-dev, libxss-dev, libxt-dev, libxtst-dev, libxxf86misc-dev, libxxf86vm-dev, x11proto-core-dev, xbitmaps, quilt, gdm, libxss-dev, libxtst-dev, libxxf86misc-dev +Standards-Version: 3.8.0 +Homepage: http://www.jwz.org/xscreensaver/ +Vcs-git: git://git.debian.org/git/collab-maint/xscreensaver.git +Vcs-browser: http://git.debian.org/git/collab-maint/xscreensaver.git + +Package: xscreensaver +Architecture: any +Depends: ${shlibs:Depends}, xscreensaver-data +Conflicts: funny-manpages (<< 1.3-1), suidmanager (<< 0.50), xscreensaver-gnome (<< 4.09-2), xscreensaver-nognome (<< 4.09-2), gnome-control-center (<< 1:2) +Recommends: xli | xloadimage, libjpeg-progs, perl5, miscfiles | wordlist +Suggests: xfishtank, xdaliclock, xscreensaver-gl, fortune, www-browser, qcam | streamer +Description: Automatic screensaver for X + XScreenSaver is a modular screen saver and locker for X11, + containing more than 200 screen savers. + . + This package includes the bare minimum needed to blank and lock + your screen. Install this package if you prefer xscreensaver to + gnome-screensaver. If you prefer gnome-screensaver, you don't + need to install this package. + . + The graphical display modes are in the xscreensaver-data, + xscreensaver-data-extra, xscreensaver-gl and xscreensaver-gl-extra + packages. + +Package: xscreensaver-data +Architecture: any +Depends: ${shlibs:Depends} +Conflicts: xscreensaver (<< 5.04-3), kscreensaver-xsavers (<< 4:3.5.9-1) +Replaces: xscreensaver (<< 5.04-3), gnome-screensaver (<< 2.15.4-0ubuntu1) +Description: data files to be shared among screensaver frontends + XScreenSaver is a modular screen saver and locker for X11, + containing more than 200 screen savers. + . + This package contains a small selection of graphical screen saver + modules (listed below) from the xscreensaver collection. This package + is used by both xscreensaver and gnome-screensaver. + . + This is the selected set of non-GL screensavers shipped by default: + deco, distort, fiberlamp, fuzzyflakes, galaxy, metaballs, penrose, + ripples, shadebobs, slidescreen, sonar, swirl. + . + Mode display modes can be found in xscreensaver-data-extra, xscreensaver-gl + and xscreensaver-gl-extra packages. + +Package: xscreensaver-data-extra +Architecture: any +Depends: ${shlibs:Depends}, xscreensaver-data (>= 5.04-3), dictionaries-common, libjpeg-progs, netpbm +Conflicts: xscreensaver (<< 5.04-3), kscreensaver-xsavers (<< 4:3.5.9-1) +Replaces: xscreensaver (<< 5.04-3) +Description: data files to be shared among screensaver frontends + XScreenSaver is a modular screen saver and locker for X11, + containing more than 200 screen savers. + . + This package contains the rest of the 2D screen saver modules + from the xscreensaver collection. This package is used by both + xscreensaver and gnome-screensaver. + . + This is the set of non-GL screensavers not shipped by default: + ant, anemone, anemotaxis, apollonian, apple2, attraction, barcode, blaster, + blitspin, bouboule, boxfit, braid, bsod, bubbles, bumps, ccurve, celtic, + cloudlife, compass, coral, critical, crystal, cynosure, decayscreen, + deluxe, demon, discrete, drift, epicycle, eruption, euler2d, fadeplot, + fireworkx, flag, flame, flow, fluidballs, fontglide, forest, goop, + grav, greynetic, halftone, halo, helix, hopalong, hyperball, + hypercube, ifs, imsmap, interaggregate, interference, intermomentary, jigsqw, + juggle, julia, memscroller, mismunch, moire, moire2, mountain, munch, + nerverot, noseguy, pacman, pedal, penetrate, petry, phosphor, piecewise, + polyominoes, pong, pyro, qiz, rd-bomb, rocks, rorschach, rotor, rotzoomer, + sierpinski, slip, speedmine, sphere, spiral, spotlight, squiral, starfish, + strange, substrate, t3d, thornbird, triangle, truchet, twang, vermiculate, + vidwhacker, vines, wander, webcollage, whirlwindwarp, whirlygig, worm, + wormhole, xanalogtv, xflame, xjack, xmatrix, xrayswarm, xspirograph, zoom. + . + WARNING: This package includes the 'webcollage' screen saver, which + displays images that are the result of random web searches. The + Internet being what it is, absolutely anything might show up in the + collage of search results including -- quite possibly -- pornography, or + even nudity. Please act accordingly. + . + More display modes can be found in the xscreensaver-data, xscreensaver-gl + and xscreensaver-gl-extra packages. + +Package: xscreensaver-gl +Architecture: any +Depends: ${shlibs:Depends} +Conflicts: xscreensaver (<< 5.04-3) +Recommends: xscreensaver +Description: GL(Mesa) screen hacks for xscreensaver + XScreenSaver is a modular screen saver and locker for X11, + containing more than 200 screen savers. + . + This package contains a small selection of 3D (OpenGL) screen + saver modules from the xscreensaver collection. This package is + used by both xscreensaver and gnome-screensaver. + . + This is the set of GL screensavers shipped by default: + antinspect, antspotlight, atunnel, blinkbox, bubble3d, circuit, cubestorm, + endgame, engine, flipflop, flipscreen3d, flurry, flyingtoasters, gears, + gflux, glblur, glcells, gleidescope, glknots, glmatrix, glschool, + glslideshow, glsnake, gltext, hypertorus, jigglypuff, lavalite, lockward, + mirrorblog, moebius, boebiusgears, molecule, morph3d, pipes, polyhedra, + polytopes, pulsar, queens, sierpinski3d, spheremonics, stonerview, + superquadrics, topblock, voronoi. + More GL screensavers can be found in the xscreensaver-gl-extra package. + . + Mode display modes can be found in the xscreensaver-data, + xscreensaver-data-extra and xscreensaver-gl-extra packages. + +Package: xscreensaver-gl-extra +Architecture: any +Depends: ${shlibs:Depends}, xscreensaver-gl (>= 5.04-3) +Conflicts: xscreensaver (<< 5.04-3) +Replaces: xscreensaver-gl (<< 5.04-3) +Recommends: xscreensaver +Description: GL(Mesa) screen hacks for xscreensaver + XScreenSaver is a modular screen saver and locker for X11, + containing more than 200 screen savers. + . + This package contains the rest of the 3D (OpenGL) screen saver + modules from the xscreensaver collection. This package is used + by both xscreensaver and gnome-screensaver. + . + This is the set of GL screensavers not shipped by default with + xscreensaver-gl: antmaze, atlantis, blocktube, boing, bouncingcow, boxed, + cage, carousel, crackberg, cube21, cubenetic, dangerball, extrusion, + fliptext, glforestfire, glhanoi, glplanet, juggler3d, klein, lament, menger, + noof, pinion, providence, rubik, sballs, sproingies, staris, starwars, + tangram, timetunnel. + . + More display modes can be found in the xscreensaver-data, + xscreensaver-data-extra and xscreensaver-gl packages. --- xscreensaver-5.05.orig/debian/xscreensaver-gl-extra.files +++ xscreensaver-5.05/debian/xscreensaver-gl-extra.files @@ -0,0 +1,132 @@ +usr/lib/xscreensaver/antmaze +usr/lib/xscreensaver/atlantis +usr/lib/xscreensaver/blocktube +usr/lib/xscreensaver/boing +usr/lib/xscreensaver/bouncingcow +usr/lib/xscreensaver/boxed +usr/lib/xscreensaver/cage +usr/lib/xscreensaver/carousel +usr/lib/xscreensaver/crackberg +usr/lib/xscreensaver/cube21 +usr/lib/xscreensaver/cubenetic +usr/lib/xscreensaver/dangerball +usr/lib/xscreensaver/extrusion +usr/lib/xscreensaver/fliptext +usr/lib/xscreensaver/glforestfire +usr/lib/xscreensaver/glhanoi +usr/lib/xscreensaver/glplanet +usr/lib/xscreensaver/juggler3d +usr/lib/xscreensaver/klein +usr/lib/xscreensaver/lament +usr/lib/xscreensaver/menger +usr/lib/xscreensaver/noof +usr/lib/xscreensaver/pinion +usr/lib/xscreensaver/providence +usr/lib/xscreensaver/rubik +usr/lib/xscreensaver/sballs +usr/lib/xscreensaver/sproingies +usr/lib/xscreensaver/stairs +usr/lib/xscreensaver/starwars +usr/lib/xscreensaver/tangram +usr/lib/xscreensaver/timetunnel +usr/share/man/man6/antmaze.6x +usr/share/man/man6/atlantis.6x +usr/share/man/man6/blocktube.6x +usr/share/man/man6/boing.6x +usr/share/man/man6/bouncingcow.6x +usr/share/man/man6/boxed.6x +usr/share/man/man6/cage.6x +usr/share/man/man6/carousel.6x +usr/share/man/man6/crackberg.6x +usr/share/man/man6/cube21.6x +usr/share/man/man6/cubenetic.6x +usr/share/man/man6/dangerball.6x +usr/share/man/man6/extrusion.6x +usr/share/man/man6/fliptext.6x +usr/share/man/man6/glforestfire.6x +usr/share/man/man6/glhanoi.6x +usr/share/man/man6/glplanet.6x +usr/share/man/man6/juggler3d.6x +usr/share/man/man6/klein.6x +usr/share/man/man6/lament.6x +usr/share/man/man6/menger.6x +usr/share/man/man6/noof.6x +usr/share/man/man6/pinion.6x +usr/share/man/man6/providence.6x +usr/share/man/man6/rubik.6x +usr/share/man/man6/sballs.6x +usr/share/man/man6/sproingies.6x +usr/share/man/man6/stairs.6x +usr/share/man/man6/starwars.6x +usr/share/man/man6/tangram.6x +usr/share/man/man6/timetunnel.6x +usr/share/xscreensaver/config/antmaze.xml +usr/share/xscreensaver/config/atlantis.xml +usr/share/xscreensaver/config/blocktube.xml +usr/share/xscreensaver/config/boing.xml +usr/share/xscreensaver/config/bouncingcow.xml +usr/share/xscreensaver/config/boxed.xml +usr/share/xscreensaver/config/cage.xml +usr/share/xscreensaver/config/carousel.xml +usr/share/xscreensaver/config/crackberg.xml +usr/share/xscreensaver/config/cube21.xml +usr/share/xscreensaver/config/cubenetic.xml +usr/share/xscreensaver/config/dangerball.xml +usr/share/xscreensaver/config/extrusion.xml +usr/share/xscreensaver/config/fliptext.xml +usr/share/xscreensaver/config/glforestfire.xml +usr/share/xscreensaver/config/glhanoi.xml +usr/share/xscreensaver/config/glplanet.xml +usr/share/xscreensaver/config/juggler3d.xml +usr/share/xscreensaver/config/klein.xml +usr/share/xscreensaver/config/lament.xml +usr/share/xscreensaver/config/menger.xml +usr/share/xscreensaver/config/noof.xml +usr/share/xscreensaver/config/pinion.xml +usr/share/xscreensaver/config/providence.xml +usr/share/xscreensaver/config/rubik.xml +usr/share/xscreensaver/config/sballs.xml +usr/share/xscreensaver/config/sproingies.xml +usr/share/xscreensaver/config/stairs.xml +usr/share/xscreensaver/config/starwars.xml +usr/share/xscreensaver/config/tangram.xml +usr/share/xscreensaver/config/timetunnel.xml +usr/share/applications/screensavers/antmaze.desktop +usr/share/applications/screensavers/atlantis.desktop +usr/share/applications/screensavers/blocktube.desktop +usr/share/applications/screensavers/boing.desktop +usr/share/applications/screensavers/bouncingcow.desktop +usr/share/applications/screensavers/boxed.desktop +usr/share/applications/screensavers/cage.desktop +usr/share/applications/screensavers/carousel.desktop +usr/share/applications/screensavers/crackberg.desktop +usr/share/applications/screensavers/cube21.desktop +usr/share/applications/screensavers/cubenetic.desktop +usr/share/applications/screensavers/dangerball.desktop +usr/share/applications/screensavers/extrusion.desktop +usr/share/applications/screensavers/fliptext.desktop +usr/share/applications/screensavers/glforestfire.desktop +usr/share/applications/screensavers/glhanoi.desktop +usr/share/applications/screensavers/glplanet.desktop +usr/share/applications/screensavers/juggler3d.desktop +usr/share/applications/screensavers/klein.desktop +usr/share/applications/screensavers/lament.desktop +usr/share/applications/screensavers/menger.desktop +usr/share/applications/screensavers/noof.desktop +usr/share/applications/screensavers/pinion.desktop +usr/share/applications/screensavers/providence.desktop +usr/share/applications/screensavers/rubik.desktop +usr/share/applications/screensavers/sballs.desktop +usr/share/applications/screensavers/sproingies.desktop +usr/share/applications/screensavers/stairs.desktop +usr/share/applications/screensavers/starwars.desktop +usr/share/applications/screensavers/tangram.desktop +usr/share/applications/screensavers/timetunnel.desktop +usr/lib/xscreensaver/cubicgrid +usr/share/man/man6/cubicgrid.6x +usr/share/xscreensaver/config/cubicgrid.xml +usr/share/applications/screensavers/cubicgrid.desktop +usr/lib/xscreensaver/hypnowheel +usr/share/man/man6/hypnowheel.6x +usr/share/xscreensaver/config/hypnowheel.xml +usr/share/applications/screensavers/hypnowheel.desktop --- xscreensaver-5.05.orig/debian/xscreensaver.install +++ xscreensaver-5.05/debian/xscreensaver.install @@ -0,0 +1,2 @@ +debian/xscreensaver.svg /usr/share/pixmaps +debian/xscreensaver.desktop /usr/share/applications --- xscreensaver-5.05.orig/debian/xscreensaver.docs +++ xscreensaver-5.05/debian/xscreensaver.docs @@ -0,0 +1 @@ +README --- xscreensaver-5.05.orig/debian/xscreensaver-data.files +++ xscreensaver-5.05/debian/xscreensaver-data.files @@ -0,0 +1,71 @@ +etc/X11/app-defaults/XScreenSaver +usr/bin/xscreensaver-getimage +usr/bin/xscreensaver-getimage-file +usr/bin/xscreensaver-getimage-video +usr/bin/xscreensaver-text +usr/share/man/man1/xscreensaver-getimage-file.1 +usr/share/man/man1/xscreensaver-getimage-video.1 +usr/share/man/man1/xscreensaver-getimage.1 +usr/share/man/man1/xscreensaver-text.1 +usr/lib/xscreensaver/cwaves +usr/lib/xscreensaver/deco +usr/lib/xscreensaver/distort +usr/lib/xscreensaver/fiberlamp +usr/lib/xscreensaver/fuzzyflakes +usr/lib/xscreensaver/galaxy +usr/lib/xscreensaver/metaballs +usr/lib/xscreensaver/penrose +usr/lib/xscreensaver/popsquares +usr/lib/xscreensaver/ripples +usr/lib/xscreensaver/shadebobs +usr/lib/xscreensaver/slidescreen +usr/lib/xscreensaver/sonar +usr/lib/xscreensaver/swirl +usr/lib/xscreensaver/xlyap +usr/lib/xscreensaver/abstractile +usr/lib/xscreensaver/m6502 +usr/share/man/man6/cwaves.6x +usr/share/man/man6/deco.6x +usr/share/man/man6/distort.6x +usr/share/man/man6/fiberlamp.6x +usr/share/man/man6/fuzzyflakes.6x +usr/share/man/man6/galaxy.6x +usr/share/man/man6/metaballs.6x +usr/share/man/man6/penrose.6x +usr/share/man/man6/ripples.6x +usr/share/man/man6/shadebobs.6x +usr/share/man/man6/slidescreen.6x +usr/share/man/man6/sonar.6x +usr/share/man/man6/swirl.6x +usr/share/man/man6/xlyap.6x +usr/share/man/man6/abstractile.6x +usr/share/xscreensaver/config/cwaves.xml +usr/share/xscreensaver/config/deco.xml +usr/share/xscreensaver/config/distort.xml +usr/share/xscreensaver/config/fiberlamp.xml +usr/share/xscreensaver/config/fuzzyflakes.xml +usr/share/xscreensaver/config/galaxy.xml +usr/share/xscreensaver/config/metaballs.xml +usr/share/xscreensaver/config/penrose.xml +usr/share/xscreensaver/config/popsquares.xml +usr/share/xscreensaver/config/ripples.xml +usr/share/xscreensaver/config/shadebobs.xml +usr/share/xscreensaver/config/slidescreen.xml +usr/share/xscreensaver/config/sonar.xml +usr/share/xscreensaver/config/swirl.xml +usr/share/xscreensaver/config/xlyap.xml +usr/share/xscreensaver/config/abstractile.xml +usr/share/xscreensaver/config/m6502.xml +usr/share/applications/screensavers/deco.desktop +usr/share/applications/screensavers/distort.desktop +usr/share/applications/screensavers/fiberlamp.desktop +usr/share/applications/screensavers/fuzzyflakes.desktop +usr/share/applications/screensavers/galaxy.desktop +usr/share/applications/screensavers/metaballs.desktop +usr/share/applications/screensavers/penrose.desktop +usr/share/applications/screensavers/ripples.desktop +usr/share/applications/screensavers/shadebobs.desktop +usr/share/applications/screensavers/slidescreen.desktop +usr/share/applications/screensavers/sonar.desktop +usr/share/applications/screensavers/swirl.desktop +usr/share/applications/screensavers/xlyap.desktop --- xscreensaver-5.05.orig/debian/xscreensaver.postinst +++ xscreensaver-5.05/debian/xscreensaver.postinst @@ -0,0 +1,35 @@ +#!/bin/sh + +set -e + +#fix up our old screwup +if dpkg-divert --list /usr/share/gnome/apps/Settings/Desktop/screensaver-properties.desktop | grep -q "diversion of /usr/share/gnome/apps/Settings/Desktop/screensaver-properties.desktop to /usr/share/gnome/apps/Settings/Desktop/screensaver-properties.desktop.orig by xscreensaver"; then + rm -f /usr/share/gnome/apps/Settings/Desktop/screensaver-properties.desktop + rm -f /usr/share/control-center/Desktop/screensaver-properties.desktop + dpkg-divert --package xscreensaver --remove --rename --divert \ + /usr/share/gnome/apps/Settings/Desktop/screensaver-properties.desktop.orig \ + /usr/share/gnome/apps/Settings/Desktop/screensaver-properties.desktop + dpkg-divert --package xscreensaver --remove --rename --divert \ + /usr/share/control-center/Desktop/screensaver-properties.desktop.orig \ + /usr/share/control-center/Desktop/screensaver-properties.desktop +fi + +# remove old link if it exists +if [ -L /usr/X11R6/lib/X11/app-defaults/XScreenSaver ]; then + rm /usr/X11R6/lib/X11/app-defaults/XScreenSaver +fi + +# Use the correct app defaults +cd /etc/X11/app-defaults +if [ -f XScreenSaver-gl ]; then + ln -sf XScreenSaver-gl XScreenSaver +else + ln -sf XScreenSaver-nogl XScreenSaver +fi + +# Remove /usr/doc symlink +if [ -d /usr/doc -a -h /usr/doc/xscreensaver -a -d /usr/share/doc/xscreensaver ]; then + rm -f /usr/doc/xscreensaver +fi + +#DEBHELPER# --- xscreensaver-5.05.orig/debian/changelog +++ xscreensaver-5.05/debian/changelog @@ -0,0 +1,1208 @@ +xscreensaver (5.05-3+lenny1) stable-proposed-updates; urgency=high + + * Non-maintainer upload by the security team. + * Fix local screen lock bypass vulnerability. + (Closes: #539699) + + -- Michael Gilbert Fri, 28 Aug 2009 18:13:57 -0400 + +xscreensaver (5.05-3) unstable; urgency=low + + [ Tormod Volden ] + * debian/patches/10_jwz-xscreensaver-randr-patch-3.patch: + from upstream, addresses issues with xrandr/xinerama + (Closes: #482385, #428797, #471920, #453708, #473681, #479715, #480231) + * fixed typo "screen < real_nscreens" in driver/lock:1527 from above patch + * drop 61_DualHead-nVidia_bug471920.patch (obsolete) + * drop 67_XineRama-mode_bug473681.patch (obsolete) + * fix m6502.o typo in hacks/Makefile.in + * refresh 53_XScreenSaver.ad.in.patch + * refresh (disabled) 60_add-ant-hack.patch + + [ Jose Luis Rivas ] + * add xscreensaver-demo desktop file, thanks to Daniel Dickinson + (Closes: #480592) + * update package descriptions (thanks jwz) + * fix categories in xscreensaver.menu + * change build-deps from xlibmesa-gl-dev to libgl1-mesa-dev, + xutils to xutils-dev, x-dev to x11proto-core-dev. + * bump Standards-Version to 3.8.0 + * add Vcs fields and Homepage to debian/control + * Flurry is not installed until the bug get fixed (Closes: #484112) + + -- Jose Luis Rivas Tue, 15 Jul 2008 14:48:48 -0430 + +xscreensaver (5.05-2) unstable; urgency=low + + * (this version was not published) + * debian/rules: Add `--with-proc-interrupts' to the configure command. + (Closes: #354559) + * debian/patches/61_DualHead-nVidia_bug471920.patch: + Thanks to Vincent Crevot (Closes: #471920) + * debian/patches/67_XineRama-mode_bug473681.patch: + Thanks to Lionel Elie Mamane (Closes: #473681) + * create debian/watch + * debian/control: fix libpam0g deps to use >= 0.72 instead of >=0.72-1 + * debian/xscreensaver.pam: + Add common-account for handling account service type (Closes: #475861) + + -- Jose Luis Rivas Fri, 11 Apr 2008 11:56:14 -0430 + +xscreensaver (5.05-1) unstable; urgency=low + + * New upstream release. + - fixed overlapping with Xinerama. (Closes: #453708) + - fixed double-buffering in cubestorm and noof (Closes: #310157) + - don't warn about about bogus ClientMessages of GNOME (Closes: #191530) + * debian/control: + - Added which hacks are in which package to the description field of each + package. (Closes: #469108) + - Added a warning that xss-data-extra ships webcollage and may download + porn from the internet without appropriate filters. (Closes: #458145) + - Added conflicts with kscreensaver-xsavers previous to 4:3.5.9-1 to + avoid breakage for KDE users after the package split in 5.04-3. + (Closes: #469099) + - Deleted a superfluous x-dev build-depend. + * debian/screensaver-desktop-files: Added desktop files for cubicgrid, + hypnowheel and lcdscrub (new hacks) + * debian/patches/50_driver_screensaver-properties-desktop.patch: + Use the svg icon we ship in xscreensaver.svg + * debian/xscreensaver-data-extra.files: Added new hack lcdscrub, removed + ant hack. (See note below about 60_add-ant-hack.patch) + * debian/xscreensaver-gl-extra.files: Added new hacks hypnowheel and + cubicgrid. + * debian/patches/53_XScreenSaver.ad.in.patch: Extract from the disabled + 52_driver_XScreenSaver.ad.in.patch fixing the gnome-terminal dependency + (Closes: #470466). + * debian/patches/60_add-ant-hack.patch: Deactivated for the moment, there + were several new changes in Makefile.in and XScreenSaver, besides, + ant doesn't have a man page and hasn't been shipped for a long time. + Will not be shipped until we find a way to actually make it fit the new + upstream code. + * debian/patches/70_fade_oversleep.patch: Dropped, applied upstream. + * debian/patches/71_endgame_whiter_colour.patch: Dropped, applied upstream. + * debian/patches/series: Cleaned up. + + -- Jose Luis Rivas Tue, 11 Mar 2008 22:45:00 -0430 + +xscreensaver (5.04-4) unstable; urgency=low + + * debian/control: Add replaces/conflicts to fix upgrades (Closes: #468899) + * corrected previous changelog entry on xscreensaver-gl-extra + + -- Tormod Volden Sun, 02 Mar 2008 11:41:13 +0100 + +xscreensaver (5.04-3) unstable; urgency=low + + [ Tormod Volden ] + * (From Ubuntu) Include .desktop files for hacks (Closes: #410095) + * debian/xscreensaver-data.files: Skip .desktop file for popsquares + for now until conflict is sorted out with gnome-screensaver that + also ships it + * dropped planetary_gears.desktop (gears goes planetary randomly + and has no command option for it) + * 60_add-ant-hack.patch: restore "ant" (disabled upstream in 4.23) + * Add .desktop description for "ant" + * (From Ubuntu) Split xscreensaver package into: + - xscreensaver (core backend without hacks) + - xscreensaver-data (standard hacks) + - xscreensaver-data-extra (hacks not installed by default) + * (From Ubuntu) Split xscreensaver-gl package into: + - xscreensaver-gl (standard GL hacks) + - xscreensaver-gl-extra (GL hacks not installed by default) + * 70_fade_oversleep.patch: don't hang on resume (Closes: #454523) + * 71_endgame_whiter_colour.patch: better contrast (Closes: #463345) + + [ Jose Luis Rivas ] + * debian/xscreensaver-gl.files: Deleted interplanetary-gears.desktop since + it's not shipped. + + -- Jose Luis Rivas Fri, 29 Feb 2008 18:53:35 -0430 + +xscreensaver (5.04-2) unstable; urgency=low + + [ Tormod Volden ] + * debian/rules: + + Moved POT generation from clean to build. + + xscreensaver.svg is now copied from `debian/` at build time. + * po/xscreensaver.pot: + + Is now deleted since it is autogenerated. + * debian/control: + + Added libxss-dev, libxtst-dev, libxxf86misc-dev and x-dev as + build depends. + + Added quilt and removed dpatch from build-depends. + * debian/patches/00_maindiffwithorig.patch got split up in: + - 20_hacks_Makefile.patch: add xpm libs for "maze" hack + - 22_hacks_barcode.patch: make family-friendly + - 23_hacks_glx_glsnake.patch: make family-friendly + - 30_hacks_xanalogtv.patch: use logo-50-bad.xpm + - 31_utils_images_logo-50-bad-xpm.patch: less colours + - 50_driver_screensaver-properties-desktop.patch: use svg icon + + [ Jose Luis Rivas ] + * debian/xscreensaver.files: + + Added m6502 (without manpage at the moment) and abstractile + hacks. + * debian/xscreensaver-gl.files: + + Added moebiusgears and lockward hacks. (Closes: #454601) + * debian/control: + + Added Tormod Volden as Uploader. + + Updated to 3.7.3 Standards-Version, no modification needed. + * debian/xscreensaver.install: + + Now xscreensaver.svg is in `debian/`. + + -- Jose Luis Rivas Sun, 09 Dec 2007 20:37:38 -0430 + +xscreensaver (5.04-1) unstable; urgency=low + + * New upstream release + * David Moreno Garza (damog) removed from Uploaders field. + * Fixed authentication bypass (CVE-2007-5585) by upstream (closes: #448157) + + -- Jose Luis Rivas Mon, 26 Nov 2007 14:04:52 -0400 + +xscreensaver (5.03-3.1) unstable; urgency=high + + * Non-maintainer upload by the testing-security team + * Include upstream patch to fix crash with gl screensavers, which + leads to an authentication bypass (Closes: #448157) + Fixes: CVE-2007-5585 + + -- Steffen Joeris Fri, 16 Nov 2007 15:04:15 +1100 + +xscreensaver (5.03-3) unstable; urgency=low + + * Added `gdm' to the Build-Depends field since is needed to build with + gdmflexiserver support. (Closes: #436010) + * The config problems doesn't exists anymore since there's now the original + XML file, so no changes needed. (Closes: #367791, #405266). + * debian/rules: + + Added a line that adds "NoDisplay=true" to + gnome-screensaver-properties.desktop. (Closes: #435446) + + -- Jose Luis Rivas Sat, 04 Aug 2007 16:25:39 -0400 + +xscreensaver (5.03-2) unstable; urgency=low + + * debian/rules, debian/xscreensaver.files, debian/xscreensaver-gl.files: + + Adding again the `x` at the end of each manpage. + (Closes: #435035) + + -- Jose Luis Rivas Sun, 29 Jul 2007 02:22:49 -0400 + +xscreensaver (5.03-1) unstable; urgency=low + + * New maintainer and uploader (Closes: #428813, #428798) + * New upstream version packaged (Closes: #407886) + * No error during authentication (Closes: #180063) + * No more waiting until mouse moves for starting. (Closes: #257092) + * Flurry now runs OK. (Closes: #296552) + * No more crashes during exit of `xscreensaver' (Closes: #273180) + * Xscreensaver has changed a lot how works with the pam_module and it seems + as does not ask for password anymore if is not required. (Closes: #303368) + * XScreensaver turns off both screens if is used with Dual-head on laptops + tested on a HP and a Siragon notebook. (Closes: #337100) + * Currently XScreensaver request password everytime, even if Power management + is enabled. (Closes: #330971) + * XScreensaver does not longer ignores settings on ~/.xscreensaver anymore + and modifying settings with `xscreensaver-demo' will save your settings as + should and will not be restarted. (Closes: #316931) + * xscreensaver does properly requests passwords and proccess them as should + if that's the case. (Closes: #368600) + * Now images are rotated as should when using carousel with the EXIF data of + each JPEG archive. (Closes: #375488) + * Fontglide is running OK without fonts issues. (Closes: #393140) + * The apple2 hack was tested and there's no problem. (Closes: #423560) + * Webcollage renders properly and add images to the collage without emptying + the screen (tested with nv, nvidia and vesa drivers). (Closes: #317383) + * Added the `unlock' button to login box. (Closes: #326733) + * debian/control: + + Deleted `Uploaders' field. + + Changed `Maintainer' name and email. + + Replaced build-depend on `xlibs-data' with `xbitmaps'. (Closes: #419022) + + Updated `Standard-Versions' to 3.7.2, no changes needed. + + Added Build-Depend on `dpatch'. + + Updated `xscreensaver-gl' description with `X.Org' instead of `XFree'. + + Moved `netpbm' to Depends from Suggests of xscreensaver since it's used by + packages on `xscreensaver'. (Closes: #376982) + * debian/rules: + + Included `dpatch.make' for patching. + + Changed targets to fits `dpatch' functioning. + + Changed the way as config.{sub|guess} is deleted, now is moved so isn't + showed in the final `diff.gz'. + * debian/xscreensaver.files: + + Removed line for adding `gnome-screensaver-properties.desktop' since + GNOME ships their own screensaver and the menu entrie in preferences should + not be added, users should use the another menu entrie. (Closes: #390672) + + Added new hack `cwaves'. + + Removed the `x's at the end of every manpage line. + * debian/xscreensaver-gl.files: + + Removed the `x's at the end of every manpage line. + + Added new hacks: `glcells', `glschool', `topblock' and `voronoi'. + * debian/changelog: + + Version created and no data modified, was modified in a NMU (4.23-1.1) + changed to 4.23-0.1 according to debian dev-reference. (Was lintian + warning). + + Double date on version 1.27-1, removed the old one, I left the october + one since is the most obvious (Was lintian warning). + * debian/patches: + + Created! + * debian/patches/00_maindiffwithorig.patch: + + Created! This patch was created with the end to avoid editing original + tarball as was before, instead patch's should been used. + + -- Jose Luis Rivas Fri, 13 Jul 2007 17:15:43 -0400 + +xscreensaver (4.24-5) unstable; urgency=low + + * remove /usr/doc/xscreensaver link to finish /usr/doc -> + /usr/share/doc transition (closes: #380394) + + -- Ralf Hildebrandt Sat, 29 Jul 2006 23:00:43 +0100 + +xscreensaver (4.24-4) unstable; urgency=low + + * we may be building in an environment (e.g. Debian buildd chroot) + without a proper /proc filesystem. If /proc/interrupts exists, + then we'll check that it has the bits we need, but otherwise we'll + just go on faith. Thanks to (closes: #356821) + + -- Ralf Hildebrandt Thu, 04 May 2006 11:00:43 +0100 + +xscreensaver (4.24-3) unstable; urgency=high + + * fix build-deps (closes: #364254) + + -- Ralf Hildebrandt Sun, 23 Apr 2006 11:00:43 +0100 + +xscreensaver (4.24-2) unstable; urgency=low + + * apply patch "xscreensaver-getimage-video: the first video frame should not always be grabbed" (closes: #357907) + * fix pong manpage typos (closes: #361686) + * apply patch "xscreensaver-4.16-sanitize-hacks.patch" (closes: #313492) + + -- Ralf Hildebrandt Tue, 11 Apr 2006 11:00:43 +0100 + +xscreensaver (4.24-1) unstable; urgency=low + + * new upstream release: + * New versions of cube21, glsnake, celtic. + * Fixed startup crash in getgroups() when running setuid. (closes: #302791) + * Default to not displaying stderr on the saver window. + * Fixed bad free() in `Documentation'' button. + * Don't try to run hacks that aren't installed (closes: #350029, #309443) + * Minor fixes to various XML config files and man pages. + * fix typo in German PO file (closes: #359067) + + -- Ralf Hildebrandt Sun, 26 Mar 2006 11:00:43 +0100 + +xscreensaver (4.23-4) unstable; urgency=high + + * replace xlibs-dev build-depend with the individual libraries that + the package actually build-depends on (closes: #346855). + + -- Ralf Hildebrandt Mon, 09 Jan 2006 11:00:43 +0100 + +xscreensaver (4.23-3) unstable; urgency=low + + * driver/timers.c: back out a change from 4.23 leading to screen + blanking even though the keyboard is in use (closes: #336368). + * Build-depend on autotools-dev. + * driver/XScreenSaver.ad.in: + + Restore RSS modifications that disappeared unexpectedly in a + previous upload. + + Now use planet.debian.org instead of .net. + + Set the newLoginCommand here, not trusting the result of the + configure test, making the configure.in patch unnecessary + (closes: #336590). + + Force gdmflexiserver to start a new flexible X server + (closes: #337760). + * utils/images/logo-50-bad.xpm: this is a stripped down (64 colors) + version of the logo. + * hacks/xanalogtv.c: use this version instead (closes: #304344). + + -- Josselin Mouette Fri, 9 Dec 2005 00:53:01 +0100 + +xscreensaver (4.23-2) unstable; urgency=low + + * Apply NMU patch (why was there an NMU? Hello? Talk to me before doing an NMU!) (Closes: #334193) + * Fix typo in tangram man page (Closes: #336432) + * Found out that the upstream already applied the "grayscale option patch" to bubbles (Closes: #331248) + * Suggest xfishtank (Closes: #335589) + + -- Ralf Hildebrandt Sun, 30 Oct 2005 14:43:43 +0100 + +xscreensaver (4.23-0.1) unstable; urgency=high + + * NMU. + * should not kill running xscreensavers (Close: #334193) + + -- Emfox Zhou Sun, 30 Oct 2005 01:54:04 +0800 + +xscreensaver (4.23-1) unstable; urgency=low + + * new upstream (closes: #308668, #195727, #322752, #305528) + + -- Ralf Hildebrandt Wed, 26 Sep 2005 15:23:43 +0200 + +xscreensaver (4.21-7) unstable; urgency=low + + * fixed fubared patch in lines 1596 to 1603 of file "driver/prefs.c" (closes: #323841) + thanks to Arnaud Giersch + + -- Ralf Hildebrandt Thu, 22 Sep 2005 23:23:43 +0200 + +xscreensaver (4.21-6) unstable; urgency=low + + * patch against stop_the_insanity() (closes: #323841) + * patch typo in the whirlygig.6x man page (closes: #326534) + * patch against run_hack() in driver/demo-Gtk.c (closes: #302777) + * fix dependencies (closes: #318512) + * closing old stuff that's already fixed (closes: #118089, #118881, #137073, #145814, #129124) + * closing old stuff that's WONTFIX (closes: #127276) + * relax dependency on netpbm (closes: #320446) + * fix build dependencies for gl and glu + * fix lintian bugs about debian-control-with-duplicate-fields conflicts: 12, 15 + * fix lintian bug (man pages for flow and intermomentary) + * fix lintian bug syntax-error-in-debian-changelog line 313 "unrecognised line" + + -- Ralf Hildebrandt Mon, 19 Sep 2005 11:20:43 +0200 + +xscreensaver (4.21-5) unstable; urgency=low + + * debian/control, debian/rules: remove legacy xscreensaver-gnome and + xscreensaver-nognome packages. + * Patch from Martin Pitt to generate a POT file + during the package build (closes: #313530): + + debian/control: build-depend on intltool. + + debian/rules: run intltool-update in the clean target. + + po/POTFILES.in: remove driver/xscreensaver-demo.glade which does not + exist any more. + * debian/xscreensaver.links: removed, unneeded with GNOME 2.10 + (closes: #312044). + * po/de.po: patch from Jens Seidel + (closes: #313870). + + -- Josselin Mouette Wed, 15 Jun 2005 00:34:23 +0200 + +xscreensaver (4.21-4) unstable; urgency=low + + * Fix typos (closes: #301317). + * Fix typos (closes: #301355) + * Fix metric assload of typos (closes: #312772, #312769, #312768, #312775, #312773, #312774 ,#312782, #312780) + * Fix metric assload of typos (closes: #312776, #312777, #312785, #312783, #312784, #312786, #312791, #312789) + * Fix metric assload of typos (closes: #312797, #312796, #312793, #312795, #312798, #312800, #312802, #312803) + * Apply jwz's patch to phosphor (closes: #308720) + + -- Ralf Hildebrandt Sat, 11 Jun 2005 11:20:43 +0200 + +xscreensaver (4.21-3) unstable; urgency=low + + * Patch by Joachim Breitner to check more frequently if DPMS kicked in (closes: #303374, #286664). + + -- Ralf Hildebrandt Sat, 09 Apr 2005 00:06:43 +0100 + +xscreensaver (4.21-2) unstable; urgency=low + + * driver/subprocs.c: revert unuseful patch. + * hacks/bubbles.h: BUBBLES_IO is unused now. + * debian/copyright: update copyright dates. + * configure.in: don't check for gdmflexiserver's location, so that we don't + have to build-depend on gdm. + * debian/xscreensaver.postinst: + + send SIGHUP to all running xscreensaver processes. + + don't call update-menus twice. + * improve maintainer scripts. + * driver/XScreenSaver.ad.in: use url mode by default, pointing to + planet.debian.net's RSS feed. + * driver/xscreensaver-text: fall back to text file mode when an URL isn't + found. + * hacks/webcollage: remove moot patch. + * driver/Makefile.in, hacks/Makefile.in, hacks/glx/Makefile.in: patch from + upstream, to avoid patching all the man files. + * hacks/*.man, hacks/glx/*.man: this makes all these patches unnecessary. + * hacks/vidwhacker: remove unuseful patch. + * debian/rules: install debian/changelog even in dummy packages. + + -- Josselin Mouette Thu, 24 Mar 2005 00:06:43 +0100 + +xscreensaver (4.21-1) unstable; urgency=low + + * New upstream release (closes: #300804). + + Correctly repaints the preferences window (closes: #165834). + + Includes a button to launch gdmflexiserver (closes: #276142). + * Add myself as a co-maintainer. + * Update config.guess and config.sub. + * A bit of cleanup in debian/rules and others. + * Install a new, SVG logo, based on a (LGPL) Nuvola icon. Use it in the + menu and replace the XPM logos by pixmaps generated from it. + * Remove the extra .desktop files (closes: #258955). + * Enable gdmflexiserver in the configure arguments. + * Tuning in XScreenSaver.ad.in: + + Enable DPMS by default. + + Enable locking by default after some time. + + Disable grabbing of desktop images (for obvious security reasons). + + Use fortune by default, not some nonexistent README file. + + -- Josselin Mouette Tue, 22 Mar 2005 01:20:40 +0100 + +xscreensaver (4.20-2) unstable; urgency=low + + * Alphabetically sorted *.files, closes: #129265 + * fixed spelling of description, closes: #125564 + * fixed manpage of boxed, closes: #244786 + * fixed manpage of glsnake, closes: #222833 + * 4.20 upstream closes even more bugs, closes: #279982 + * made ISO 8601 time format the default, closes: #279982, #299890 + * Debian has /etc/alternatives which the Gnome and KDE packages use + Thus XScreensaver should use x-www-browser and x-terminal-emulator + instead of gnome-terminal and the like, closes: #300285, #276648 + * No more typos in configure.in, closes: #134722 + * Fix in upstream: as of xscreensaver 4.18, if it can't grab both the keyboard and + mouse, it does not blank the screen. This means that if you are + running rdesktop or some long-keyboard-grabbing program, xscreensaver + will never lock your screen until that grab is released. + This is still bad, obviously, but perhaps it will confuse people less, + and -- perhaps -- failing to lock at all is less bad than accidentally + typing passwords at the wrong window, closes: #105995 + + -- Ralf Hildebrandt Sat, 19 Mar 2005 11:06:00 +0100 + +xscreensaver (4.20-1) unstable; urgency=low + + * New upstream version, closes: #260697, #162390, #235852, #238549, + #107549, #280513, #286076, #256765, #292283, #280652, #260160 + * KDE xscreensaver.kss was removed in the upstream version + * fixed various complaints that lintian threw out (fix inconsistent manpages) + * added manpage for screensaver-properties-capplet (just to have one) + * applied patch from #222734, closes: #222734 + * added a non-virtual wordlist package to Suggests:, closes #271283 + * changed french localization in one spot, closes: #220204 + + -- Ralf Hildebrandt Mon, 14 Mar 2005 08:30:00 +0100 + +xscreensaver (4.16-1) unstable; urgency=low + + * New upstream version, closes: closes: #250065, #245128, #244468 + * Add build dependency on xlibs-dev, closes: #251621 + + -- Karl Ramm Sat, 12 Jun 2004 00:15:10 -0400 + +xscreensaver (4.15-1) unstable; urgency=low + + * New upstream version, closes: #232932, #233457 + + -- Karl Ramm Thu, 4 Mar 2004 20:21:41 -0500 + +xscreensaver (4.14-4) unstable; urgency=low + + * disable the traditional password checking code; only use paim. + closes: #171453 + + -- Karl Ramm Sun, 2 Nov 2003 14:42:11 -0500 + +xscreensaver (4.14-3) unstable; urgency=low + + * commit the control file to accomplish the conflicting mentioned + previously. my bad. closes: #218440 + + -- Karl Ramm Fri, 31 Oct 2003 13:20:59 -0500 + +xscreensaver (4.14-2) unstable; urgency=low + + * Build the extrusion hack. closes: #217603, #127067 + * Fix a cvs fumble. closes: #217753 + * xscreensaver-gl: conflict with versions of xscreensaver << 4.14-2 due + to relocation of extrusion manpage. + + -- Karl Ramm Thu, 30 Oct 2003 00:28:02 -0500 + +xscreensaver (4.14-1) unstable; urgency=low + + * New upstream version. + + -- Karl Ramm Sat, 25 Oct 2003 06:00:11 -0400 + +xscreensaver (4.13-1) unstable; urgency=low + + * New upstream version. closes: #216841 + * Try using sensible-browser to display html. closes: #173346 + * don't build arch-independent packages in the binary-arch target. + oops. closes: #207197 + * do the new pam thing. closes: #216918 + + -- Karl Ramm Tue, 21 Oct 2003 14:50:00 -0400 + +xscreensaver (4.12-1) unstable; urgency=low + + * New upstream version. closes: #198625, #199321 + * Supposedly, 4.11 fixed an X error when starting a hack. closes: #195740 + + -- Karl Ramm Thu, 21 Aug 2003 00:29:49 -0400 + +xscreensaver (4.10-1) unstable; urgency=low + + * New upstream version + * vidwhacker shouldn't bomb out on an unrecognized file type. closes: #192960 + * fixes jigglypuff for me. closes: #192076 + * point the gnome configuration icon at an absolute path. closes: #191443 + * resurrect xscreensaver-gnome and xscreensaver-nognome in an attempt to + unconfuse people. closes: #191212, #191967 + + -- Karl Ramm Thu, 29 May 2003 00:27:25 -0400 + +xscreensaver (4.09-3) unstable; urgency=low + + * add libjpeg62-dev and an explicit xlibmesa-dev to build-depends, + closes: #191117 + + -- Karl Ramm Tue, 29 Apr 2003 10:22:22 -0400 + +xscreensaver (4.09-2) unstable; urgency=low + + * build against gnome2 and gtk2. closes: #190914, #184961 + * Building for the gnome2 control-center allows us to not depend on all + of gnome, which means we can fold -gnome and -nognome into the main + xscreensaver pacakge, making everyone's life simpler. xscreensaver + now conflicts-replaces-provides xscreensaver-gnome and + xscreensaver-nognome. closes: #170361 + + -- Karl Ramm Sun, 27 Apr 2003 23:29:32 -0400 + +xscreensaver (4.09-1) unstable; urgency=low + + * Another new upstream version. closes: #185218 + * fix rounding error in ifs, thanks to sam@zoy.org, closes: #186291 + + -- Karl Ramm Thu, 3 Apr 2003 00:32:01 -0500 + +xscreensaver (4.06-1) unstable; urgency=low + + * new upstream version. + * fix gnome2 config menu icon, closes: #169848 + * circuit segfault fixed upstream, closes: #170970 + * patch config file for glplanet, does not completely fix 173209 + * disable the paranoia leading to the "PAM: brk grew by 8k" messages + closes: #169608 + * note in the xscreensaver manpage that one should not lightly mess with + one's .fvwm2rc. closes: #167848 + * webcollage mimics netscape when talking to images.google.com. + closes: #163563 + + -- Karl Ramm Tue, 31 Dec 2002 23:42:16 -0500 + +xscreensaver (4.05-10) unstable; urgency=low + + * build against libcapplet1-dev, closes: #168058, #163180 + * don't lock up switching hacks if ther's only one random hack + selected. closes: #168821 + + -- Karl Ramm Thu, 14 Nov 2002 13:38:51 -0500 + +xscreensaver (4.05-9) unstable; urgency=low + + * Build conflict with libgkt2.0-dev, closes: #154964 + + -- Karl Ramm Wed, 31 Jul 2002 11:37:31 -0400 + +xscreensaver (4.05-8) unstable; urgency=low + + * append an 'x' to the filenames of the hack manpages. + [I am getting *really* sick of this] + closes: #154584 + * remove the undocumented symlink for screensaver-properties-capplet + closes: #154533 + + -- Karl Ramm Sun, 28 Jul 2002 12:11:57 -0400 + +xscreensaver (4.05-7) unstable; urgency=low + + * move xscreensaver hack manpages to section six: closes: #154188 + * more general cleanup. + + -- Karl Ramm Fri, 26 Jul 2002 22:52:02 -0400 + +xscreensaver (4.05-6) unstable; urgency=low + + * fix Makefile.in.in that puts locales somewhere desperately + wrong. Closes: #154205 + + -- Karl Ramm Wed, 24 Jul 2002 22:34:36 -0400 + +xscreensaver (4.05-5) unstable; urgency=low + + * update config.guess and config.sub from + http://subversions.gnu.org/cgi-bin/viewcvs/config/config/ + + -- Karl Ramm Wed, 24 Jul 2002 19:10:55 -0400 + +xscreensaver (4.05-4) unstable; urgency=low + + * actually strip the hacks. + + -- Karl Ramm Wed, 24 Jul 2002 12:13:19 -0400 + +xscreensaver (4.05-3) unstable; urgency=low + + * attempt to get my version of the package that I want to maintain + before this NMU. + + -- Karl Ramm Wed, 24 Jul 2002 10:59:27 -0400 + +xscreensaver (4.05-2.1) unstable; urgency=low + + * NMU, Sponsored by Colin Walters + - official maintainer has been MIA for a while + * New upstream release + - Closes: #146032, #146864, #148515, #150031, #136759, #134076, + #121803, #119141, #123363, #107551, #117906, #120550, #148232, + #122999, #113437, #90489, #134722, #117787, #118089, #118881, + #137073, #148811, #132109, #129124, #62887, #85620 + - Some of the above bugs should have been closed a long tme ago. + * Build with libgle3 + * Clean up debian/rules, use debhelper + * Don't print "unrecognised ClientMessage" messages. Unnecessary. + * Don't suggest xli or xloadimage anymore, we use gdk-pixbuf + * Don't call x-terminal-emulator with +sb (Closes: #145814) + * Remove driver/xscreensaver.kss on clean, so it isn't included in diff + * Allow null passwords through PAM. This doesn't work exactly as it + should, but now if you have a blank password, typing anything in + the password box will get you out of a locked screen. (Closes: #43670) + * Start xscreensaver with X if ~/.xscreensaver exists + - reference bug #127276 + + -- Ari Pollak Thu, 18 Jul 2002 12:17:37 -0400 + +xscreensaver (4.05-1) unstable; urgency=low + + * It is a tale told by an idiot, full of sound and fury, signifying nothing. + * New upstream release. closes: #148232 + + -- Karl Ramm Sun, 21 Jul 2002 17:05:40 -0400 + +xscreensaver (3.34-3) unstable; urgency=low + + * add build-dep on libgnome-dev. closes: #128953, #133924, #141544 + + -- Karl Ramm Sun, 7 Apr 2002 12:17:37 -0400 + +xscreensaver (3.34-2) unstable; urgency=low + + * New maintainer. closes: #139388 + + -- Karl Ramm Tue, 2 Apr 2002 10:47:31 -0500 + +xscreensaver (3.34-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Make /etc/X11/app-defaults/XScreenSaver-* conffiles + (closes: #132101, #132109). + + -- Colin Watson Mon, 11 Feb 2002 02:53:03 +0000 + +xscreensaver (3.34-1) unstable; urgency=low + + * New upstream version (Closes: #105372, #117331) + * Added libcapplet-dev to Build-depends + + -- Larry Daffner Tue, 6 Nov 2001 10:22:26 -0600 + +xscreensaver (3.33-5) unstable; urgency=low + + * Added Replaces: lines for older xscreensaver (Closes: #11752) + * Moved KDE file to the right place (closes : #117700) + + -- Larry Daffner Wed, 31 Oct 2001 13:38:32 -0600 + +xscreensaver (3.33-4) unstable; urgency=low + + * new packages for binaries with/without GNOME + + -- Larry Daffner Fri, 26 Oct 2001 09:40:24 -0500 + +xscreensaver (3.33-3) unstable; urgency=low + + * Removed dependency on removed package "xv" (Closes: #112395) + * Changed build-depends from xlibmesa-dev to libgl-dev (Closes: #104582) + * Include time.h in prefs.c to fix IA64 (Closes: #112973) + * Changed speedmine to ework around Alpha FP foo (Closes: #108596) + * Added note to README.gl about memory usage and GL + screensavers. (Closes: #112849) + * Fixed spelling error in molecule manpage (Closes: #100915) + * Shut up message about unknown client messages. (Closes: #109453) + * Fixed command line defaults for xaos (Closes: #99797) + + -- Larry Daffner Fri, 21 Sep 2001 17:52:17 -0500 + +xscreensaver (3.33-2) unstable; urgency=low + + * Added Build-Depends (Closes: #104040) + * Upgraded to latest Standards-Version. + + -- Larry Daffner Mon, 9 Jul 2001 23:05:46 -0500 + +xscreensaver (3.33-1) unstable; urgency=low + + * New upstream version (Closes: #97975) + * Applied patch to fix gcc3.0 build (Closes: #99373) + * Updated xaos command line (Closes: #(9797) + * Move the gl postrm to the right name (Closes: #103605) + + -- Larry Daffner Fri, 6 Jul 2001 12:20:32 -0500 + +xscreensaver (3.32-2) unstable; urgency=low + + * Added conflicts for old funny-manpages (Closes: #96446) + * Update menu entries to /usr/bin/xscreensaver{,-command} + (Closes: #97237) + * Remove /usr/doc symlink on removal (Closes: #97788) + * "Upgrade" from suidmanager usage (Closes: #97789) + * Add proper KDE files (Closes: #88321) + + -- Larry Daffner Thu, 17 May 2001 20:33:12 -0500 + +xscreensaver (3.32-1) unstable; urgency=low + + * New upstream version (Closes: #963432) + + -- Larry Daffner Fri, 4 May 2001 17:03:31 -0500 + +xscreensaver (3.31-3) unstable; urgency=low + + * app-defaults files were mistakenly left out. Correct that. + (Closes: #95683) + * Move the whole works under /usr instead of /usr/X11R6 (Closes: #94355) + + -- Larry Daffner Sun, 29 Apr 2001 21:31:04 -0500 + +xscreensaver (3.31-2) unstable; urgency=low + + * Put xscreensaver-gl-helper back in the right package + * Fix postinst for debhelper (Closes: #94291) + + -- Larry Daffner Tue, 17 Apr 2001 21:19:12 -0500 + +xscreensaver (3.31-1) unstable; urgency=low + + * New upstream version + * Moved hacks to directory /usr/X11R6/lib/xscreensaver. This will not be + a problem for the most part (except that the xworm hack is new just + worm again), since xscreensaver adds this directory to the + path. However, people running hacks by hand will have to add this + directory to their path. (Closes: #92055) + + -- Larry Daffner Fri, 13 Apr 2001 09:59:19 -0500 + +xscreensaver (3.30-1) unstable; urgency=low + + * New upstream version + * Fix to upstream manpage to document current DPMS behavior. (Closes: + #90491) + + -- Larry Daffner Mon, 26 Mar 2001 18:42:30 -0600 + +xscreensaver (3.29-3) unstable; urgency=low + + * Added safety valve to rules file to prevent nVidia brain damage + (Closes: #88530) + + -- Larry Daffner Sun, 4 Mar 2001 19:12:54 -0600 + +xscreensaver (3.29-2) unstable; urgency=low + + * Move gltext hack to correct package (Closes: #88366) + + -- Larry Daffner Sat, 3 Mar 2001 19:56:16 -0600 + +xscreensaver (3.29-1) unstable; urgency=low + + * New upstream version + + -- Larry Daffner Thu, 1 Mar 2001 20:41:39 -0600 + +xscreensaver (3.28-3) unstable; urgency=low + + * Rebuild to fix nVidia dain bramage. + + -- Larry Daffner Wed, 21 Feb 2001 02:42:39 -0600 + +xscreensaver (3.28-2) unstable; urgency=low + + * hyperball manpage already included upstream. Don't install. + * Fix thinko to REALLY add KDE integration + + -- Larry Daffner Mon, 19 Feb 2001 13:13:34 -0600 + +xscreensaver (3.28-1) unstable; urgency=low + + * New upstream version + * Use dh_movefiles to separate packages (Closes: #84591) + * Add KDEDIR to build process to ensure .kss file gets installed + (Closes: #84253) + * Disabled webcollage by default (Closes: #79258) + * Fixed path to link to remove in postinst + + -- Larry Daffner Mon, 5 Feb 2001 13:32:58 -0600 + +xscreensaver (3.26-7) unstable; urgency=low + + * Use rm -f to undo dependency (Closes: #79206, #79209) + + -- Larry Daffner Sat, 9 Dec 2000 17:30:05 -0600 + +xscreensaver (3.26-6) unstable; urgency=low + + * Don't install bogus screensaver-properties; clean up (Closes: #79119) + + -- Larry Daffner Fri, 8 Dec 2000 16:35:07 -0600 + +xscreensaver (3.26-5) unstable; urgency=low + + * Recompile to fix bad link (Closes: #78229) + * Really move app-defaults (Closes: #78289) + + -- Larry Daffner Tue, 28 Nov 2000 21:25:56 -0600 + +xscreensaver (3.26-4) unstable; urgency=low + + * Recompile for XFree 4 (Closes: #77967) + + -- Larry Daffner Mon, 27 Nov 2000 01:39:12 -0600 + +xscreensaver (3.26-3) unstable; urgency=low + + * Move gflux and xscreensaver-gl-helper to xscreensaver-gl (Closes: #77850) + + -- Larry Daffner Thu, 23 Nov 2000 16:47:06 -0600 + +xscreensaver (3.26-2) unstable; urgency=low + + * Configure --without-gnome (Closes: #77677) + + -- Larry Daffner Tue, 21 Nov 2000 22:16:50 -0600 + +xscreensaver (3.26-1) unstable; urgency=low + + * New upstream version (Closes: #75404) + * Use x-terminal-emulator to display (Closes: #59076) + + -- Larry Daffner Mon, 20 Nov 2000 20:46:21 -0600 + +xscreensaver (3.25-2) unstable; urgency=low + + * Figure gl visuals correctly for utah-glx + + -- Larry Daffner Fri, 1 Sep 2000 23:28:11 -0500 + +xscreensaver (3.25-1) unstable; urgency=low + + * New upstream version + + -- Larry Daffner Thu, 31 Aug 2000 14:07:17 -0500 + +xscreensaver (3.24-1) unstable; urgency=low + + * New upstream version + + -- Larry Daffner Wed, 19 Apr 2000 14:40:58 -0500 + +xscreensaver (3.22-7) unstable frozen; urgency=medium + + * Upload into frozen + + -- Larry Daffner Fri, 28 Jan 2000 22:15:48 -0600 + +xscreensaver (3.22-6) unstable; urgency=low + + * Fix perl dependency -> perl5 instead (Closes: Bug#56436) + + -- Larry Daffner Thu, 27 Jan 2000 19:42:53 -0600 + +xscreensaver (3.22-5) frozen unstable; urgency=low + + * Added extra suggests/depends for some scripts (Closes: #56298) + + -- Larry Daffner Thu, 27 Jan 2000 00:47:35 -0600 + +xscreensaver (3.22-4) unstable; urgency=low + + * Recompile AGAIN to fix mesa extra svgalib dependency (closes: #55538) + + -- Larry Daffner Tue, 18 Jan 2000 20:14:57 -0600 + +xscreensaver (3.22-3) frozen unstable; urgency=low + + * Recompile to fix missing mesa dependency (Closes: #55508 + + -- Larry Daffner Mon, 17 Jan 2000 21:56:16 -0600 + +xscreensaver (3.22-2) unstable; urgency=low + + * Explicitly exclude kerberos (Closes: #54995) + + -- Larry Daffner Thu, 13 Jan 2000 19:23:07 -0600 + +xscreensaver (3.22-1) unstable; urgency=low + + * New upstream version (Closes: #52262) + * Make sure PAM config is installed (Closes: #52184) + * Add missing dependencies (Closes: #52506) + + -- Larry Daffner Sat, 1 Jan 2000 14:44:06 -0600 + +xscreensaver (3.21-3) unstable; urgency=low + + * Added Suggests: www-browser (Closes: #51142) + * Don't remove webcollage - it's no longer necessary (Closes: #51260) + + -- Larry Daffner Sun, 28 Nov 1999 19:44:08 -0600 + +xscreensaver (3.21-2) unstable; urgency=low + + * fixed inadvertent worm-xworm in appdefaults (fixup in rules) (Closes: + #51005) + * Changed image program Depends: to Recommends: + * Changed suidregister to mode 2755 instead of 4755 (Closes: #44907) + + -- Larry Daffner Mon, 22 Nov 1999 23:42:37 -0600 + +xscreensaver (3.21-1) unstable; urgency=low + + * New upstream version (Closes: #50827) + * Make compatibility symlinks in /usr/doc (Closes: #47799) + * Build with GTK instead of lesstif (Closes: #39032, #47657) + + -- Larry Daffner Sun, 21 Nov 1999 00:42:08 -0600 + +xscreensaver (3.17-5) unstable; urgency=low + + * Recompiled with new lesstif + + -- Larry Daffner Sat, 16 Oct 1999 11:13:52 -0500 + +xscreensaver (3.17-4) unstable; urgency=low + + * Changed "worm" to "xworm" in appdefaults file. (Fixes: #45840) + + -- Larry Daffner Mon, 11 Oct 1999 23:24:21 -0500 + +xscreensaver (3.17-3) unstable; urgency=low + + * Fixed source URL in debian/copyright (Fixes: #35139) + * Suidunregister sonar in postrm (Fixes: #44511) + * Webcollage removed from debian package (Fixes: #44419, #43459) + * Removed bashism from rules file (Fixes: #43660) + + -- Larry Daffner Mon, 13 Sep 1999 21:25:05 -0500 + +xscreensaver (3.17-2) unstable; urgency=low + + * Previous version contained the wrong PAM config file. Fixed. + * Updated to standards version 3.0.1.0 + + -- Larry Daffner Sat, 31 Jul 1999 11:58:22 -0500 + +xscreensaver (3.17-1) unstable; urgency=low + + * New upstream version + * renamed "worm" to "xworm" + * Fixed webcollage to look in /usr/share/dict/words + + -- Larry Daffner Thu, 29 Jul 1999 21:47:32 -0500 + +xscreensaver (3.15-1) unstable; urgency=low + + * New upstream version + + -- Larry Daffner Tue, 22 Jun 1999 20:07:59 -0500 + +xscreensaver (3.13-2) unstable; urgency=low + + * Register sonar with suidmanager to allow configuring for ping mode + (disabled by default) + + -- Larry Daffner Mon, 7 Jun 1999 23:45:46 -0500 + +xscreensaver (3.13-1) unstable; urgency=low + + * New upstream version + + -- Larry Daffner Wed, 2 Jun 1999 23:24:16 -0500 + +xscreensaver (3.10-2) unstable; urgency=low + + * Fixed installation of PAM defaults file. + + -- Larry Daffner Thu, 13 May 1999 20:55:38 -0500 + +xscreensaver (3.10-1) unstable; urgency=low + + * New upstream version + * Configured in support for PAM + * Cleaner way of moving app defaults into the right place + + -- Larry Daffner Wed, 28 Apr 1999 22:04:00 -0500 + +xscreensaver (3.08-1) unstable; urgency=low + + * New upstream version + + -- Larry Daffner Wed, 24 Mar 1999 22:22:44 -0600 + +xscreensaver (3.07-3) unstable; urgency=low + + * Fixed typo in postinst (Fixes: #34829) + + -- Larry Daffner Sat, 20 Mar 1999 09:49:30 -0600 + +xscreensaver (3.07-2) unstable; urgency=low + + * Added postrm to unregister on removal (Fixes: #34590) + + -- Larry Daffner Mon, 15 Mar 1999 19:45:18 -0600 + +xscreensaver (3.07-1) unstable; urgency=low + + * New upstream version + + -- Larry Daffner Thu, 7 Jan 1999 22:19:15 -0600 + +xscreensaver (2.34-1) unstable; urgency=low + + * New upstream version + * New OpenGL hacks bubble3d and glplanet added to xscreensaver-gl + + -- Larry Daffner Tue, 13 Oct 1998 23:55:09 -0500 + +xscreensaver (2.30-1) unstable; urgency=low + + * New upstream version + + -- Larry Daffner Fri, 25 Sep 1998 21:30:37 -0500 + +xscreensaver (2.27-2) unstable; urgency=low + + * Added menu file (Fixes: #26425) + + -- Larry Daffner Mon, 7 Sep 1998 13:40:46 -0500 + +xscreensaver (2.27-1) unstable; urgency=low + + * New upstream version, including new gl hack "lament" + + -- Larry Daffner Tue, 1 Sep 1998 20:41:32 -0500 + +xscreensaver (2.24-1) unstable; urgency=low + + * new upstream version + + -- Larry Daffner Mon, 6 Jul 1998 23:29:36 -0500 + +xscreensaver (2.20-1) unstable; urgency=low + + * New upstream release; new screenhacks + + -- Larry Daffner Fri, 12 Jun 1998 16:35:22 -0500 + +xscreensaver (2.16-3) frozen unstable; urgency=low + + * Add into frozen as well + + -- Larry Daffner Fri, 3 Apr 1998 18:40:09 -0600 + +xscreensaver (2.16-2) unstable; urgency=low + + * recompiled to pick up dependency on lesstifg (fixes: #20568) + + -- Larry Daffner Thu, 2 Apr 1998 22:24:48 -0600 + +xscreensaver (2.16-1) unstable; urgency=low + + * New upstream version + * Updated to standards version 2.4.0.0 (no changes) + * fixed dependency on fortune + + -- Larry Daffner Wed, 25 Feb 1998 22:53:58 -0600 + +xscreensaver (2.15-3) unstable; urgency=low + + * Compile with Lesstif dialogs + * Updated to standards version 2.1.2.2 + * Corrected incorrect file install for XScreenSaver-nogl + * Use suidregister for xsreensaver + + -- Larry Daffner Mon, 9 Feb 1998 20:54:21 -0600 + + +xscreensaver (2.15-2) unstable; urgency=low + + * Fixed typo in control file (fixes Bug#17516) + + -- Larry Daffner Mon, 26 Jan 1998 19:02:01 -0600 + +xscreensaver (2.15-1) unstable; urgency=low + + * New upstream version (Fixes #16271) + + -- Larry Daffner Thu, 22 Jan 1998 23:45:06 -0600 + +xscreensaver (2.14-1) unstable; urgency=low + + * New upstream version + * Re-enabled decayscreen and slidescreen - they should work now. + + -- Larry Daffner Tue, 23 Dec 1997 01:24:57 -0600 + +xscreensaver (2.10-4) unstable; urgency=low + + * Disabled the slidescreen and decayscreen hacks by default (Bug #15780) + + -- Larry Daffner Wed, 10 Dec 1997 20:45:01 -0600 + +xscreensaver (2.10-3) unstable; urgency=low + + * Fixed bad symlink /usr/doc/xscreensaver-gl + + -- Larry Daffner Mon, 10 Nov 1997 19:18:37 -0600 + +xscreensaver (2.10-2) unstable; urgency=low + + * New subpackage: xscreensaver-gl + * Compiled OpenGL hacks + + -- Larry Daffner Sun, 9 Nov 1997 10:41:24 -0600 + +xscreensaver (2.10-1) unstable; urgency=low + + * New upstream version + + -- Larry Daffner Fri, 31 Oct 1997 07:46:09 +0000 + +xscreensaver (2.07-1) unstable; urgency=low + + * New upstream version + * Recompiled for libc6 + + -- Larry Daffner Sun, 14 Sep 1997 20:59:51 -0500 + +xscreensaver (1.27-2) unstable; urgency=low + + * Minor tweak to rules file + * Rebuilt to catch updated dependencies + + -- Larry Daffner Mon, 24 Feb 1997 19:05:50 -0600 + +xscreensaver (1.27-1) unstable; urgency=low + + * New upstream version + + -- Larry Daffner Wed, 2 Oct 1996 22:20:14 -0500 + +xscreensaver (1.26-1) unstable; urgency=low + + * New package + + -- Larry Daffner Wed, 2 Oct 1996 14:43:42 -0500 + + + --- xscreensaver-5.05.orig/debian/xscreensaver.postrm +++ xscreensaver-5.05/debian/xscreensaver.postrm @@ -0,0 +1,26 @@ +#!/bin/sh + +set -e + +case "$1" in + remove|purge) + if [ -x /usr/sbin/suidunregister ]; then + suidunregister -s xscreensaver /usr/X11R6/bin/xscreensaver + suidunregister -s xscreensaver /usr/X11R6/bin/sonar + suidunregister -s xscreensaver /usr/X11R6/lib/xscreensaver/sonar + suidunregister -s xscreensaver /usr/bin/xscreensaver + suidunregister -s xscreensaver /usr/lib/xscreensaver/sonar + fi + if [ -L /etc/X11/app-defaults/XScreenSaver ]; then + rm /etc/X11/app-defaults/XScreenSaver + fi + if [ -L /usr/X11R6/lib/X11/app-defaults/XScreenSaver ]; then + rm /usr/X11R6/lib/X11/app-defaults/XScreenSaver + fi + if [ -L /usr/doc/xscreensaver ]; then + rm -f /usr/doc/xscreensaver + fi + ;; +esac + +#DEBHELPER# --- xscreensaver-5.05.orig/debian/watch +++ xscreensaver-5.05/debian/watch @@ -0,0 +1,3 @@ +version=3 +#http://www.jwz.org/xscreensaver/xscreensaver-(.*)\.tar\.gz +http://www.jwz.org/xscreensaver/download.html xscreensaver-(.*)\.tar\.gz --- xscreensaver-5.05.orig/debian/xscreensaver-gl.dirs +++ xscreensaver-5.05/debian/xscreensaver-gl.dirs @@ -0,0 +1 @@ +etc/X11/app-defaults --- xscreensaver-5.05.orig/debian/xscreensaver.pam +++ xscreensaver-5.05/debian/xscreensaver.pam @@ -0,0 +1,6 @@ +# +# /etc/pam.d/xscreensaver - PAM behavior for xscreensaver +# + +@include common-auth +@include common-account --- xscreensaver-5.05.orig/debian/xscreensaver-gl.files +++ xscreensaver-5.05/debian/xscreensaver-gl.files @@ -0,0 +1,174 @@ +usr/bin/xscreensaver-gl-helper +usr/lib/xscreensaver/antinspect +usr/lib/xscreensaver/antspotlight +usr/lib/xscreensaver/atunnel +usr/lib/xscreensaver/blinkbox +usr/lib/xscreensaver/bubble3d +usr/lib/xscreensaver/circuit +usr/lib/xscreensaver/cubestorm +usr/lib/xscreensaver/endgame +usr/lib/xscreensaver/engine +usr/lib/xscreensaver/flipflop +usr/lib/xscreensaver/flipscreen3d +usr/lib/xscreensaver/flyingtoasters +usr/lib/xscreensaver/gears +usr/lib/xscreensaver/gflux +usr/lib/xscreensaver/glblur +usr/lib/xscreensaver/glcells +usr/lib/xscreensaver/gleidescope +usr/lib/xscreensaver/glknots +usr/lib/xscreensaver/glmatrix +usr/lib/xscreensaver/glschool +usr/lib/xscreensaver/glslideshow +usr/lib/xscreensaver/glsnake +usr/lib/xscreensaver/gltext +usr/lib/xscreensaver/hypertorus +usr/lib/xscreensaver/jigglypuff +usr/lib/xscreensaver/lavalite +usr/lib/xscreensaver/lockward +usr/lib/xscreensaver/mirrorblob +usr/lib/xscreensaver/moebius +usr/lib/xscreensaver/moebiusgears +usr/lib/xscreensaver/molecule +usr/lib/xscreensaver/morph3d +usr/lib/xscreensaver/pipes +usr/lib/xscreensaver/polyhedra +usr/lib/xscreensaver/polytopes +usr/lib/xscreensaver/pulsar +usr/lib/xscreensaver/queens +usr/lib/xscreensaver/sierpinski3d +usr/lib/xscreensaver/spheremonics +usr/lib/xscreensaver/stonerview +usr/lib/xscreensaver/superquadrics +usr/lib/xscreensaver/topblock +usr/lib/xscreensaver/voronoi +usr/share/man/man6/xscreensaver-gl-helper.6 +usr/share/man/man6/antinspect.6x +usr/share/man/man6/antspotlight.6x +usr/share/man/man6/atunnel.6x +usr/share/man/man6/blinkbox.6x +usr/share/man/man6/bubble3d.6x +usr/share/man/man6/circuit.6x +usr/share/man/man6/cubestorm.6x +usr/share/man/man6/endgame.6x +usr/share/man/man6/engine.6x +usr/share/man/man6/flipflop.6x +usr/share/man/man6/flipscreen3d.6x +usr/share/man/man6/flyingtoasters.6x +usr/share/man/man6/gears.6x +usr/share/man/man6/gflux.6x +usr/share/man/man6/glblur.6x +usr/share/man/man6/glcells.6x +usr/share/man/man6/gleidescope.6x +usr/share/man/man6/glknots.6x +usr/share/man/man6/glmatrix.6x +usr/share/man/man6/glschool.6x +usr/share/man/man6/glslideshow.6x +usr/share/man/man6/glsnake.6x +usr/share/man/man6/gltext.6x +usr/share/man/man6/hypertorus.6x +usr/share/man/man6/jigglypuff.6x +usr/share/man/man6/lavalite.6x +usr/share/man/man6/lockward.6x +usr/share/man/man6/mirrorblob.6x +usr/share/man/man6/moebius.6x +usr/share/man/man6/moebiusgears.6x +usr/share/man/man6/molecule.6x +usr/share/man/man6/morph3d.6x +usr/share/man/man6/pipes.6x +usr/share/man/man6/polyhedra.6x +usr/share/man/man6/polytopes.6x +usr/share/man/man6/pulsar.6x +usr/share/man/man6/queens.6x +usr/share/man/man6/sierpinski3d.6x +usr/share/man/man6/spheremonics.6x +usr/share/man/man6/stonerview.6x +usr/share/man/man6/superquadrics.6x +usr/share/man/man6/topblock.6x +usr/share/man/man6/voronoi.6x +usr/share/xscreensaver/config/antinspect.xml +usr/share/xscreensaver/config/antspotlight.xml +usr/share/xscreensaver/config/atunnel.xml +usr/share/xscreensaver/config/blinkbox.xml +usr/share/xscreensaver/config/bubble3d.xml +usr/share/xscreensaver/config/circuit.xml +usr/share/xscreensaver/config/cubestorm.xml +usr/share/xscreensaver/config/endgame.xml +usr/share/xscreensaver/config/engine.xml +usr/share/xscreensaver/config/flipflop.xml +usr/share/xscreensaver/config/flipscreen3d.xml +usr/share/xscreensaver/config/flyingtoasters.xml +usr/share/xscreensaver/config/gears.xml +usr/share/xscreensaver/config/gflux.xml +usr/share/xscreensaver/config/glblur.xml +usr/share/xscreensaver/config/gleidescope.xml +usr/share/xscreensaver/config/glknots.xml +usr/share/xscreensaver/config/glmatrix.xml +usr/share/xscreensaver/config/glslideshow.xml +usr/share/xscreensaver/config/glsnake.xml +usr/share/xscreensaver/config/gltext.xml +usr/share/xscreensaver/config/hypertorus.xml +usr/share/xscreensaver/config/jigglypuff.xml +usr/share/xscreensaver/config/lavalite.xml +usr/share/xscreensaver/config/lockward.xml +usr/share/xscreensaver/config/mirrorblob.xml +usr/share/xscreensaver/config/moebius.xml +usr/share/xscreensaver/config/moebiusgears.xml +usr/share/xscreensaver/config/molecule.xml +usr/share/xscreensaver/config/morph3d.xml +usr/share/xscreensaver/config/pipes.xml +usr/share/xscreensaver/config/polyhedra.xml +usr/share/xscreensaver/config/polytopes.xml +usr/share/xscreensaver/config/pulsar.xml +usr/share/xscreensaver/config/queens.xml +usr/share/xscreensaver/config/sierpinski3d.xml +usr/share/xscreensaver/config/spheremonics.xml +usr/share/xscreensaver/config/stonerview.xml +usr/share/xscreensaver/config/superquadrics.xml +usr/share/xscreensaver/config/glcells.xml +usr/share/xscreensaver/config/glschool.xml +usr/share/xscreensaver/config/topblock.xml +usr/share/xscreensaver/config/voronoi.xml +usr/share/applications/screensavers/antinspect.desktop +usr/share/applications/screensavers/antspotlight.desktop +usr/share/applications/screensavers/atunnel.desktop +usr/share/applications/screensavers/blinkbox.desktop +usr/share/applications/screensavers/bubble3d.desktop +usr/share/applications/screensavers/circuit.desktop +usr/share/applications/screensavers/cubestorm.desktop +usr/share/applications/screensavers/endgame.desktop +usr/share/applications/screensavers/engine.desktop +usr/share/applications/screensavers/flipflop.desktop +usr/share/applications/screensavers/flipscreen3d.desktop +usr/share/applications/screensavers/flyingtoasters.desktop +usr/share/applications/screensavers/gears.desktop +usr/share/applications/screensavers/gflux.desktop +usr/share/applications/screensavers/glblur.desktop +usr/share/applications/screensavers/glcells.desktop +usr/share/applications/screensavers/gleidescope.desktop +usr/share/applications/screensavers/glknots.desktop +usr/share/applications/screensavers/glmatrix.desktop +usr/share/applications/screensavers/glschool.desktop +usr/share/applications/screensavers/glslideshow.desktop +usr/share/applications/screensavers/glsnake.desktop +usr/share/applications/screensavers/gltext.desktop +usr/share/applications/screensavers/hypertorus.desktop +usr/share/applications/screensavers/jigglypuff.desktop +usr/share/applications/screensavers/lavalite.desktop +usr/share/applications/screensavers/lockward.desktop +usr/share/applications/screensavers/mirrorblob.desktop +usr/share/applications/screensavers/moebius.desktop +usr/share/applications/screensavers/moebiusgears.desktop +usr/share/applications/screensavers/molecule.desktop +usr/share/applications/screensavers/morph3d.desktop +usr/share/applications/screensavers/pipes.desktop +usr/share/applications/screensavers/polyhedra.desktop +usr/share/applications/screensavers/polytopes.desktop +usr/share/applications/screensavers/pulsar.desktop +usr/share/applications/screensavers/queens.desktop +usr/share/applications/screensavers/sierpinski3d.desktop +usr/share/applications/screensavers/spheremonics.desktop +usr/share/applications/screensavers/stonerview.desktop +usr/share/applications/screensavers/superquadrics.desktop +usr/share/applications/screensavers/topblock.desktop +usr/share/applications/screensavers/voronoi.desktop --- xscreensaver-5.05.orig/debian/xscreensaver.files +++ xscreensaver-5.05/debian/xscreensaver.files @@ -0,0 +1,39 @@ +usr/bin/xscreensaver +usr/bin/xscreensaver-command +usr/bin/xscreensaver-demo +usr/share/applications/gnome-screensaver-properties.desktop +usr/share/locale/ca/LC_MESSAGES/xscreensaver.mo +usr/share/locale/da/LC_MESSAGES/xscreensaver.mo +usr/share/locale/de/LC_MESSAGES/xscreensaver.mo +usr/share/locale/es/LC_MESSAGES/xscreensaver.mo +usr/share/locale/et/LC_MESSAGES/xscreensaver.mo +usr/share/locale/fi/LC_MESSAGES/xscreensaver.mo +usr/share/locale/fr/LC_MESSAGES/xscreensaver.mo +usr/share/locale/hu/LC_MESSAGES/xscreensaver.mo +usr/share/locale/it/LC_MESSAGES/xscreensaver.mo +usr/share/locale/ja/LC_MESSAGES/xscreensaver.mo +usr/share/locale/ko/LC_MESSAGES/xscreensaver.mo +usr/share/locale/nl/LC_MESSAGES/xscreensaver.mo +usr/share/locale/no/LC_MESSAGES/xscreensaver.mo +usr/share/locale/pl/LC_MESSAGES/xscreensaver.mo +usr/share/locale/pt/LC_MESSAGES/xscreensaver.mo +usr/share/locale/pt_BR/LC_MESSAGES/xscreensaver.mo +usr/share/locale/ru/LC_MESSAGES/xscreensaver.mo +usr/share/locale/sk/LC_MESSAGES/xscreensaver.mo +usr/share/locale/sv/LC_MESSAGES/xscreensaver.mo +usr/share/locale/vi/LC_MESSAGES/xscreensaver.mo +usr/share/locale/wa/LC_MESSAGES/xscreensaver.mo +usr/share/locale/zh_CN/LC_MESSAGES/xscreensaver.mo +usr/share/locale/zh_TW/LC_MESSAGES/xscreensaver.mo +usr/share/locale/nb/LC_MESSAGES/xscreensaver.mo +usr/share/man/man1/xscreensaver.1 +usr/share/man/man1/xscreensaver-command.1 +usr/share/man/man1/xscreensaver-demo.1 +usr/share/pixmaps/xscreensaver.xpm +usr/share/xscreensaver/glade/screensaver-cmndln.png +usr/share/xscreensaver/glade/screensaver-colorselector.png +usr/share/xscreensaver/glade/screensaver-diagnostic.png +usr/share/xscreensaver/glade/screensaver-locking.png +usr/share/xscreensaver/glade/screensaver-power.png +usr/share/xscreensaver/glade/screensaver-snap.png +usr/share/xscreensaver/glade/xscreensaver-demo.glade2 --- xscreensaver-5.05.orig/debian/xscreensaver.menu +++ xscreensaver-5.05/debian/xscreensaver.menu @@ -0,0 +1,27 @@ +?package(xscreensaver):needs="x11" section="Screen/Saving" \ + title="Enable XScreenSaver" \ + command="/usr/bin/xscreensaver" +?package(xscreensaver):needs="x11" section="Screen/Saving" \ + title="Disable XScreenSaver" \ + command="/usr/bin/xscreensaver-command -exit" +?package(xscreensaver):needs="x11" section="Screen/Saving" \ + title="Demo Screen Hacks" \ + command="/usr/bin/xscreensaver-command -demo" +?package(xscreensaver):needs="x11" section="Screen/Saving" \ + title="ScreenSaver Preferences" \ + command="/usr/bin/xscreensaver-command -prefs" +?package(xscreensaver):needs="x11" section="Screen/Saving" \ + title="Reinitialize XScreenSaver" \ + command="/usr/bin/xscreensaver-command -restart" +?package(xscreensaver):needs="x11" section="Screen/Saving" \ + title="Activate ScreenSaver (Random)" \ + command="/usr/bin/xscreensaver-command -activate" +?package(xscreensaver):needs="x11" section="Screen/Saving" \ + title="Activate ScreenSaver (Next)" \ + command="/usr/bin/xscreensaver-command -next" +?package(xscreensaver):needs="x11" section="Screen/Saving" \ + title="Activate ScreenSaver (Previous)" \ + command="/usr/bin/xscreensaver-command -prev" +?package(xscreensaver):needs="x11" section="Screen/Locking" \ + title="Lock Screen (XScreenSaver)" \ + command="/usr/bin/xscreensaver-command -lock" --- xscreensaver-5.05.orig/debian/xscreensaver.desktop +++ xscreensaver-5.05/debian/xscreensaver.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=XScreenSaver Setup +Exec=xscreensaver-demo +Icon=xscreensaver +Terminal=false +StartupNotify=true +Type=Application +Categories=System; --- xscreensaver-5.05.orig/debian/compat +++ xscreensaver-5.05/debian/compat @@ -0,0 +1 @@ +4 --- xscreensaver-5.05.orig/debian/xscreensaver-gl.postrm +++ xscreensaver-5.05/debian/xscreensaver-gl.postrm @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +case "$1" in + remove|purge) + if [ -L /etc/X11/app-defaults/XScreenSaver ]; then + rm /etc/X11/app-defaults/XScreenSaver + if [ -f /etc/X11/app-defaults/XScreenSaver-nogl ]; then + ln -sf XScreenSaver-nogl /etc/X11/app-defaults/XScreenSaver + fi + fi + if [ -L /usr/X11R6/lib/X11/app-defaults/XScreenSaver ]; then + rm /usr/X11R6/lib/X11/app-defaults/XScreenSaver + fi + if [ -L /usr/doc/xscreensaver-gl ]; then + rm -f /usr/doc/xscreensaver-gl + fi + ;; +esac + +#DEBHELPER# --- xscreensaver-5.05.orig/debian/README.gl +++ xscreensaver-5.05/debian/README.gl @@ -0,0 +1,31 @@ +If you are having problems with running the GL screenhacs from xscreensaver, +but not from a window, please see +, especially if you +are using nVIdia's GL implementation. This has appeared as a SIGSEGV +crash and as a failutre to allocate GL context. In particular: + + 1.I upgraded to 3.33, and xscreensaver won't run GL hacks any more (or + they run slowly), but they work fine from the command line. + + Try editing your .xscreensaver file and changing the memoryLimit + setting to 0. Version 3.33 introduced the memoryLimit option as a + precautionary limit to prevent runaway memory use if one of the + display modes happened to be buggy; it prevents any program launched + by xscreensaver from allocating more than that much memory. It + defaults to 50M, which is a lot. However, apparently certain OpenGL + libraries (notably nVidia) do something strange that makes them appear + to allocate more than 128M of memory for every OpenGL program! + Consequently, those programs die on startup because they aren't able + to allocate memory. On some systems, memoryLimit doesn't cause the GL + programs to crash, but instead, causes them to run slowly + (non-accelerated.) Turning off the memory limit should work around + this. + +The OpenGL screenhacks are included as a separate package, so the base +xscreensaver package does not depend on Mesa. The postinst scripts will +automatically add a link so that the OpenGL screenhacks are used if they +are installed. If you wish to have the OpenGL screenhacks installed, +but not used, refer to the manpage and set the XScreenSaver*programs +to an appropriate value in /etc/X11/Xresources, a personal app-defaults +file, or your .Xdefaults. + --- xscreensaver-5.05.orig/debian/xscreensaver-gl.postinst +++ xscreensaver-5.05/debian/xscreensaver-gl.postinst @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +# remove old link if it exists +if [ -L /usr/X11R6/lib/X11/app-defaults/XScreenSaver ]; then + rm /usr/X11R6/lib/X11/app-defaults/XScreenSaver +fi + +cd /etc/X11/app-defaults +if [ -f XScreenSaver-gl ]; then + ln -sf XScreenSaver-gl XScreenSaver +else + ln -sf XScreenSaver-nogl XScreenSaver +fi + +# Remove /usr/doc symlink +if [ -d /usr/doc -a -h /usr/doc/xscreensaver-gl -a -d /usr/share/doc/xscreensaver-gl ]; then + rm -f /usr/doc/xscreensaver-gl +fi + +#DEBHELPER# --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/polyominoes.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/polyominoes.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Polyominoes +Comment=Repeatedly attempts to completely fill a rectangle with irregularly-shaped puzzle pieces. Written by Stephen Montgomery-Smith. +TryExec=polyominoes +Exec=polyominoes -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/coral.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/coral.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Coral +Comment=Simulates coral growth, albeit somewhat slowly. Written by Frederick Roeber. +TryExec=coral +Exec=coral -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/helix.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/helix.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Helix +Comment=This repeatedly generates spirally string-art-ish patterns. Written by Jamie Zawinski. +TryExec=helix +Exec=helix -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/glblur.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/glblur.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=GLBlur +Comment=This program draws a box and a few line segments, and generates a radial blur outward from it. This creates flowing field effects. This is done by rendering the scene into a small texture, then repeatedly rendering increasingly-enlarged and increasingly-transparent versions of that texture onto the frame buffer. As such, it's quite graphics intensive: don't bother trying to run this if you don't have hardware-accelerated OpenGL texture support. It will hurt your machine bad. +TryExec=glblur +Exec=glblur -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/fireworkx.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/fireworkx.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Fireworkx +Comment=Pyrotechnics simulation eye-candy, MMX optimized. Turn off Light for speed. Clicks on the preview window Explodes..! Written by Rony B Chandran. http://www.ronybc.8k.com +TryExec=fireworkx +Exec=fireworkx -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/moire2.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/moire2.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Moire2 +Comment=Another example of the fun you can have with moire interference patterns; this hack generates fields of concentric circles or ovals, and combines the planes with various operations. The planes are moving independently of one another, causing the interference lines to ``spray.'' Written by Jamie Zawinski. +TryExec=moire2 +Exec=moire2 -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/twang.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/twang.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Twang +Comment=Divides the screen into a grid, and plucks them. Written by Dan Bornstein. +TryExec=twang +Exec=twang -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/rd-bomb.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/rd-bomb.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=RD-Bomb +Comment=Another variation of the `Bomb' program by Scott Draves. This draws a grid of growing square-like shapes that, once they overtake each other, react in unpredictable ways. ``RD'' stands for reaction-diffusion. +TryExec=rd-bomb +Exec=rd-bomb -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/flow.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/flow.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Flow +Comment=Strange attractors formed of flows in a 3D differential equation phase space. Written by Tim Auckland. +TryExec=flow +Exec=flow -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/polyhedra.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/polyhedra.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Polyhedra +Comment=Displays different 3D solids and some information about each. A new solid is chosen every few seconds. There are 75 uniform polyhedra, plus 5 infinite sets of prisms and antiprisms; including their duals brings the total to 160. Written by Dr. Zvi Har'El and Jamie Zawinski. +TryExec=polyhedra +Exec=polyhedra -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/cubestorm.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/cubestorm.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=CubeStorm +Comment=Draws a series of rotating 3D boxes that intersect each other and eventually fill space. Written by Jamie Zawinski. +TryExec=cubestorm +Exec=cubestorm -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/slip.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/slip.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Slip +Comment=This program throws some random bits on the screen, then sucks them through a jet engine and spews them out the other side. To avoid turning the image completely to mush, every now and then it will and then it interjects some splashes of color into the scene, or go into a spin cycle, or stretch the image like taffy, or (this is my addition) grab an image of your current desktop to chew on. Originally written by Scott Draves; whacked on by Jamie Zawinski. +TryExec=slip +Exec=slip -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/hypnowheel.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/hypnowheel.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=hypnowheel +Comment= +TryExec=hypnowheel +Exec=hypnowheel -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/flipscreen3d.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/flipscreen3d.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Flipscreen3d +Comment=Grabs an image of the desktop, turns it into a GL texture map, and spins it around and deforms it in various ways. Written by Ben Buxton. +TryExec=flipscreen3d +Exec=flipscreen3d -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/cubenetic.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/cubenetic.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Cubenetic +Comment=Draws a pulsating set of overlapping boxes with ever-chaning blobby patterns undulating across their surfaces. It's sort of a cubist Lavalite. Written by Jamie Zawinski. +TryExec=cubenetic +Exec=cubenetic -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/ant.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/ant.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Langton's Ant +Comment=A cellular automation that is really a two-dimensional Turing machine. Written by David Bagley. +TryExec=ant +Exec=ant -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/whirlygig.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/whirlygig.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=WhirlyGig +Comment=Draws zooming chains of sinusoidal spots. Written by Ashton Trey Belew. +TryExec=whirlygig +Exec=whirlygig -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/engine.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/engine.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Engine +Comment=Draws a simple model of an engine that floats around the screen. Written by Ben Buxton and Ed Beroset. +TryExec=engine +Exec=engine -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/noseguy.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/noseguy.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Noseguy +Comment=A little man with a big nose wanders around your screen saying things. The things which he says are the output of a program or the contents of a file or URL, as configured on the "Advanced" tab of the main Screensaver Preferences window. By Dan Heller and Jamie Zawinski. +TryExec=noseguy +Exec=noseguy -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/demon.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/demon.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Demon +Comment=A cellular automaton that starts with a random field, and organizes it into stripes and spirals. Written by David Bagley. +TryExec=demon +Exec=demon -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/blinkbox.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/blinkbox.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=BlinkBox +Comment=Shows a ball contained inside of a bounding box. Colored blocks blink in when the ball hits the edges. Written by Jeremy English. +TryExec=blinkbox +Exec=blinkbox -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/ccurve.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/ccurve.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=C Curve +Comment=Generates self-similar linear fractals, including the classic ``C Curve.'' Written by Rick Campbell. +TryExec=ccurve +Exec=ccurve -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/cubicgrid.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/cubicgrid.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=CubicGrid +Comment= +TryExec=cubicgrid +Exec=cubicgrid -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/interference.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/interference.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Interference +Comment=Another color-field hack, this one works by computing decaying sinusoidal waves, and allowing them to interfere with each other as their origins move. Written by Hannu Mallat. +TryExec=interference +Exec=interference -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/sierpinski3d.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/sierpinski3d.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Sierpinski3D +Comment=This draws the three-dimensional variant of the recursive Sierpinski triangle fractal, using GL. Written by Tim Robinson and Jamie Zawinski. +TryExec=sierpinski3d +Exec=sierpinski3d -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/kumppa.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/kumppa.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Kumppa +Comment=Spiraling, spinning, and very, very fast splashes of color rush toward the screen. Written by Teemu Suutari. +TryExec=kumppa +Exec=kumppa -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/moebiusgears.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/moebiusgears.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=MoebiusGears +Comment=Draws a closed, interlinked chain of rotating gears. The layout of the gears follows the path of a moebius strip. Written by Jamie Zawinski; 2007. +TryExec=moebiusgears +Exec=moebiusgears -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/euler2d.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/euler2d.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Euler2d +Comment=Simulates two dimensional Incompressible Inviscid Fluid Flow. Written by Stephen Montgomery-Smith. +TryExec=euler2d +Exec=euler2d -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/topblock.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/topblock.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=topBlock +Comment=Creates a 3D world with dropping blocks that build up and up. Written by rednuht; 2006. +TryExec=topblock +Exec=topblock -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/halo.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/halo.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Halo +Comment=This draws trippy psychedelic circular patterns that hurt to look at. It can also animate the control-points, but that takes a lot of CPU and bandwidth. Written by Jamie Zawinski. +TryExec=halo +Exec=halo -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/fuzzyflakes.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/fuzzyflakes.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=FuzzyFlakes +Comment=Falling colored snowflake/flower shapes. Written by Barry Dmytro. +TryExec=fuzzyflakes +Exec=fuzzyflakes -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/mismunch.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/mismunch.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Mismunch +Comment=Munching errors! This is a creatively broken misimplementation of the classic munching squares graphics hack. Written by Steven Hazel. +TryExec=mismunch +Exec=mismunch -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/lightning.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/lightning.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Lightning +Comment=This one draws crackling fractal lightning bolts. It's simple, direct, and to the point. If only it had sound... Written by Keith Romberg. +TryExec=lightning +Exec=lightning -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/gears.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/gears.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Gears +Comment=This draws sets of turning, interlocking gears, rotating in three dimensions. Another GL hack, by Danny Sung, Brian Paul, Ed Mackey, and Jamie Zawinski. +TryExec=gears +Exec=gears -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/extrusion.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/extrusion.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Extrusion +Comment=Draws various rotating extruded shapes that twist around, lengthen, and turn inside out. Created by David Konerding from the samples that come with the GL Extrusion library by Linas Vepstas. +TryExec=extrusion +Exec=extrusion -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/sphere.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/sphere.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Sphere +Comment=Another of the classic screenhacks of the distant past, this one draws shaded spheres in multiple colors. This hack traces its lineage back to Tom Duff in 1982. +TryExec=sphere +Exec=sphere -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/t3d.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/t3d.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=T3D +Comment=This draws a working analog clock composed of floating, throbbing bubbles. Written by Bernd Paysan. +TryExec=t3d +Exec=t3d -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/superquadrics.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/superquadrics.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Superquadrics +Comment=Ed Mackey reports that he wrote the first version of this program in BASIC on a Commodore 64 in 1987, as a 320x200 black and white wireframe. Now it is GL and has specular reflections. +TryExec=superquadrics +Exec=superquadrics -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/dangerball.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/dangerball.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=DangerBall +Comment=Draws a ball that periodically extrudes many random spikes. Ouch! Written by Jamie Zawinski. +TryExec=dangerball +Exec=dangerball -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/xjack.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/xjack.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Xjack +Comment=This program behaves schizophrenically and makes a lot of typos. Written by Jamie Zawinski. If you haven't seen Stanley Kubrick's masterpiece, ``The Shining,'' you won't get it. Those who have describe this hack as ``inspired.'' +TryExec=xjack +Exec=xjack -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/glcells.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/glcells.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=GLCells +Comment=Cells growing, dividing and dying on your screen. Written by Matthias Toussaint; 2007. +TryExec=glcells +Exec=glcells -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/speedmine.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/speedmine.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=SpeedMine +Comment=Simulates speeding down a rocky mineshaft, or a funky dancing worm. Written by Conrad Parker. +TryExec=speedmine +Exec=speedmine -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/goop.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/goop.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Goop +Comment=This draws set of animating, transparent, amoeba-like blobs. The blobs change shape as they wander around the screen, and they are translucent, so you can see the lower blobs through the higher ones, and when one passes over another, their colors merge. I got the idea for this from a cool mouse pad I have, which achieves the same kind of effect in real life by having several layers plastic with colored oil between them. Written by Jamie Zawinski. +TryExec=goop +Exec=goop -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/wander.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/wander.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Wander +Comment=Draws a colorful random-walk, in various forms. Written by Rick Campbell. +TryExec=wander +Exec=wander -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/squiral.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/squiral.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Squiral +Comment=Draws a set of interacting, square-spiral-producing automata. The spirals grow outward until they hit something, then they go around it. Written by Jeff Epler. +TryExec=squiral +Exec=squiral -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/shadebobs.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/shadebobs.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=ShadeBobs +Comment=This draws smoothly-shaded oscillating oval patterns, that look something like vapor trails or neon tubes. Written by Shane Smit. +TryExec=shadebobs +Exec=shadebobs -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/flipflop.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/flipflop.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=FlipFlop +Comment=Flipflop draws a grid of 3D colored tiles that change positions with each other. Written by Kevin Ogden. +TryExec=flipflop +Exec=flipflop -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/fiberlamp.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/fiberlamp.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Fiberlamp +Comment=Draws a groovy rotating fiber optic lamp. Written by Tim Auckland. +TryExec=fiberlamp +Exec=fiberlamp -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/juggle.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/juggle.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Juggle +Comment=Draws a juggling stick-man. Written by Tim Auckland. +TryExec=juggle +Exec=juggle -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/hypercube.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/hypercube.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Hypercube +Comment=This displays 2D projections of the sequence of 3D objects which are the projections of the 4D analog to the cube: as a square is composed of four lines, each touching two others; and a cube is composed of six squares, each touching four others; a hypercube is composed of eight cubes, each touching six others. To make it easier to visualize the rotation, it uses a different color for the edges of each face. Don't think about it too long, or your brain will melt. Written by Joe Keane, Fritz Mueller, and Jamie Zawinski. See also the "polytopes" hack for a more general version of this using OpenGL. +TryExec=hypercube +Exec=hypercube -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/atlantis.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/atlantis.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Atlantis +Comment=This is xfishtank writ large: a GL animation of a number of sharks, dolphins, and whales. The swimming motions are great. Originally written by Mark Kilgard. +TryExec=atlantis +Exec=atlantis -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/mirrorblob.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/mirrorblob.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=MirrorBlob +Comment=Draws a wobbly blob that distorts the image behind it. Requires OpenGL hardware acceleration for nice animation. Written by Jon Dowdall. +TryExec=mirrorblob +Exec=mirrorblob -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/forest.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/forest.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Forest +Comment=This draws fractal trees. Written by Peter Baumung. Everybody loves fractals, right? +TryExec=forest +Exec=forest -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/antinspect.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/antinspect.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=AntInspect +Comment=Draws a trio of ants moving their spheres around a circle. Written by Blair Tennessy. +TryExec=antinspect +Exec=antinspect -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/lockward.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/lockward.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Lockward +Comment=A translucent spinning, blinking thing. Sort of a cross between the wards in an old combination lock and those old backlit information displays that animated and changed color via polarized light. Written by Leo L. Schwab; August, 2007. +TryExec=lockward +Exec=lockward -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/popsquares.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/popsquares.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=popsquares +Comment=This draws a pop-art-ish looking grid of pulsing colors. By Levi Burton. +TryExec=popsquares +Exec=popsquares -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/starfish.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/starfish.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Starfish +Comment=This generates a sequence of undulating, throbbing, star-like patterns which pulsate, rotate, and turn inside out. Another display mode uses these shapes to lay down a field of colors, which are then cycled. The motion is very organic. Written by Jamie Zawinski. +TryExec=starfish +Exec=starfish -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/providence.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/providence.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Providence +Comment=The providence code displays an eye, shrouded in glory, set upon the base of a pyramid. Written by Blair Tennessy. +TryExec=providence +Exec=providence -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/braid.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/braid.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Braid +Comment=Draws random color-cycling inter-braided concentric circles. Written by John Neil. +TryExec=braid +Exec=braid -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/carousel.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/carousel.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Carousel +Comment=Loads several random images, and displays them flying in a circular formation. The circle changes speed and direction randomly, tilts on its axis, and the images move in and out. To tell it where to find the images to display, go to the "Advanced" tab on the Screensaver Preferences window. Select "Choose Random Images", and enter your image directory in the text field right below that. (Note: not the the "Advanced" button at the bottom of this window: the tab at the top of the *other* window.) This program requires a good video card capable of supporting large textures. Written by Jamie Zawinski. +TryExec=carousel +Exec=carousel -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/swirl.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/swirl.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Swirl +Comment=More flowing, swirly patterns. This version is by M. Dobie and R. Taylor, but you might have seen a Mac program similar to this called FlowFazer. There is also a cool Java applet of a similar concept. +TryExec=swirl +Exec=swirl -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/endgame.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/endgame.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Endgame +Comment=Black slips out of three mating nets, but the fourth one holds him tight! A brilliant composition! Written by Blair Tennessy. +TryExec=endgame +Exec=endgame -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/hopalong.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/hopalong.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Hopalong +Comment=This draws lacy fractal patterns, based on iteration in the imaginary plane, from a 1986 Scientific American article. Mostly written by Patrick Naughton. +TryExec=hopalong +Exec=hopalong -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/celtic.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/celtic.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Celtic +Comment=Celtic +TryExec=celtic +Exec=celtic -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/munch.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/munch.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Munch +Comment=DATAI 2 ADDB 1,2 ROTC 2,-22 XOR 1,2 JRST .-4 As reported by HAKMEM, in 1962, Jackson Wright wrote the above PDP-1 code. That code still lives on in this screenhack, some 35 years later. The number of lines of enclosing code has increased substantially, however. This version is by Tim Showalter. +TryExec=munch +Exec=munch -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/pulsar.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/pulsar.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Pulsar +Comment=Draws some intersecting planes, making use of alpha blending, fog, textures, and mipmaps, plus a ``frames per second'' meter so that you can tell how fast your graphics card is... Requires OpenGL. Written by David Konerding. +TryExec=pulsar +Exec=pulsar -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/jigglypuff.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/jigglypuff.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=JigglyPuff +Comment=This little gem does bad things with quasi-spherical objects. The gist of it is that you have what is, structurally, a tetrahedron with tesselated faces. the vertices on these faces have forces on them in the form of one proportional to their distance from the surface of a sphere, and one which is proportional to how far they differ from some ideal distance from their neighbors. They also have inertia. The forces and distance are parameters and there are also a couple of visual parameters. The resulting effect can range from a shape that does nothing, to a frenetic polygon storm. Somewhere in between there it usually manifests as a blob that jiggles in a kind of disturbing manner. woo. It doesn't matter, however. You should just pick 'random'. It overrides all the other options, except for fps, delay and complexity. By Keith Macleod +TryExec=jigglypuff +Exec=jigglypuff -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/pedal.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/pedal.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Pedal +Comment=This is sort of a combination spirograph/string-art. It generates a large, complex polygon, and lets the X server do the bulk of the work by giving it an even/odd winding rule. Written by Dale Moore, based on some ancient PDP-11 code. +TryExec=pedal +Exec=pedal -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/barcode.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/barcode.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Barcode +Comment=This draws a random sequence of colorful barcodes scrolling across your screen. CONSUME! By Dan Bornstein. +TryExec=barcode +Exec=barcode -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/morph3d.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/morph3d.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Morph3D +Comment=Another 3d shape-changing GL hack, by Marcelo Vianna. It has the same shiny-plastic feel as Superquadrics, as many computer-generated objects do... +TryExec=morph3d +Exec=morph3d -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/lisa.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/lisa.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Lisa +Comment=This draws Lisajous loops, by Caleb Cullen. Remember that device they had the Phantom Zone prisoners in during their trial in Superman? I think that was one of these. +TryExec=lisa +Exec=lisa -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/galaxy.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/galaxy.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Galaxy +Comment=This draws spinning galaxies, which then collide and scatter their stars to the, uh, four winds or something. Originally an Amiga program by Uli Siegmund. +TryExec=galaxy +Exec=galaxy -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/glforestfire.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/glforestfire.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=GLForestFire +Comment=Draws an animation of sprinkling fire-like 3D triangles in a landscape filled with trees. Requires OpenGL, and a machine with fast hardware support for texture maps. Written by Eric Lassauge . +TryExec=glforestfire +Exec=glforestfire -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/stonerview.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/stonerview.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=StonerView +Comment=Chains of colorful squares dance around each other in complex spiral patterns. Written by Andrew Plotkin, based on SGI's `electropaint' screensaver. +TryExec=stonerview +Exec=stonerview -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/slidescreen.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/slidescreen.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=SlideScreen +Comment=This takes an image, divides it into a grid, and then randomly shuffles the squares around as if it was one of those annoying ``16-puzzle'' games, where there is a grid of squares, one of which is missing. I hate trying to solve those puzzles, but watching one permute itself is more amusing. Written by Jamie Zawinski. +TryExec=slidescreen +Exec=slidescreen -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/timetunnel.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/timetunnel.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Timetunnel +Comment=Draws an animation similar to the opening and closing effects on the Dr. Who television show. Written by Sean P. Brennan. +TryExec=timetunnel +Exec=timetunnel -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/mountain.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/mountain.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Mountain +Comment=Generates random 3d plots that look vaguely mountainous. Written by Pascal Pensa. +TryExec=mountain +Exec=mountain -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/anemone.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/anemone.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Anemone +Comment=Wiggling tentacles. By Gabriel Finch. +TryExec=anemone +Exec=anemone -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/xspirograph.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/xspirograph.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=XSpiroGraph +Comment=Simulates that pen-in-nested-plastic-gears toy from your childhood. By Rohit Singh. +TryExec=xspirograph +Exec=xspirograph -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/strange.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/strange.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Strange +Comment=This draws strange attractors: it's a colorful, unpredictably-animating field of dots that swoops and twists around. The motion is very nice. Written by Massimino Pascal. +TryExec=strange +Exec=strange -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/bubble3d.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/bubble3d.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Bubble3D +Comment=Draws a stream of rising, undulating 3D bubbles, rising toward the top of the screen, with nice specular reflections. Written by Richard Jones. +TryExec=bubble3d +Exec=bubble3d -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/lmorph.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/lmorph.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=LMorph +Comment=This generates random spline-ish line drawings and morphs between them. Written by Sverre H. Huseby and Glenn T. Lines. +TryExec=lmorph +Exec=lmorph -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/rorschach.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/rorschach.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Rorschach +Comment=This generates random inkblot patterns. The algorithm is deceptively simple for how well it works; it merely walks a dot around the screen randomly, and then reflects the image horizontally, vertically, or both. Any deep-seated neurotic tendencies which this program reveals are your own problem. Written by Jamie Zawinski. +TryExec=rorschach +Exec=rorschach -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/fontglide.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/fontglide.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=FontGlide +Comment=Puts text on the screen using large characters that glide in from the edges, assemble, then disperse. Alternately, it can simply scroll whole sentences from right to left. The text can be the output of a program or the contents of a file or URL, as configured on the "Advanced" tab of the main Screensaver Preferences window. Written Jamie Zawinski. +TryExec=fontglide +Exec=fontglide -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/blitspin.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/blitspin.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=BlitSpin +Comment=The ``blitspin'' hack repeatedly rotates a bitmap by 90 degrees by using logical operations: the bitmap is divided into quadrants, and the quadrants are shifted clockwise. Then the same thing is done again with progressively smaller quadrants, except that all sub-quadrants of a given size are rotated in parallel. Written by Jamie Zawinski based on some cool SmallTalk code seen in in Byte Magazine in 1981. As you watch it, the image appears to dissolve into static and then reconstitute itself, but rotated. You can provide the image to use, as an XBM or XPM file, or tell it to grab a screen image and rotate that. +TryExec=blitspin +Exec=blitspin -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/imsmap.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/imsmap.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=IMSmap +Comment=This generates random cloud-like patterns. It looks quite different in monochrome and color. The basic idea is to take four points on the edge of the image, and assign each a random ``elevation''. Then find the point between them, and give it a value which is the average of the other four, plus some small random offset. Then coloration is done based on elevation. The color selection is done by binding the elevation to either hue, saturation, or brightness, and assigning random values to the others. The ``brightness'' mode tends to yield cloudlike patterns, and the others tend to generate images that look like heat-maps or CAT-scans. Written by Juergen Nickelsen and Jamie Zawinski. +TryExec=imsmap +Exec=imsmap -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/flyingtoasters.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/flyingtoasters.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Flying Toasters +Comment=A fleet of 3d space-age jet-powered flying toasters (and toast!) Inspired by the ancient Berkeley Systems After Dark flying toasters. By Jamie Zawinski and Baconmonkey. +TryExec=flyingtoasters +Exec=flyingtoasters -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/glmatrix.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/glmatrix.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=GLMatrix +Comment=Draws 3D dropping characters similar to what is seen in the title sequence of "The Matrix". See also "xmatrix" for a 2D rendering of the similar effect that appeared on the computer monitors actually *in* the movie. Written by Jamie Zawinski. +TryExec=glmatrix +Exec=glmatrix -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/discrete.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/discrete.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Discrete +Comment=More ``discrete map'' systems, including new variants of Hopalong and Julia, and a few others. Written by Tim Auckland. +TryExec=discrete +Exec=discrete -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/wormhole.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/wormhole.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Wormhole +Comment=Wormhole simulates flying through a colored wormhole in space. Written by Jon Rafkind. +TryExec=wormhole +Exec=wormhole -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/antmaze.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/antmaze.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=AntMaze +Comment=Antmaze draws a few views of a few ants walking around in a simple maze. Written by Blair Tennessy. +TryExec=antmaze +Exec=antmaze -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/truchet.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/truchet.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Truchet +Comment=This draws line- and arc-based Truchet patterns that tile the screen. Written by Adrian Likins. +TryExec=truchet +Exec=truchet -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/xrayswarm.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/xrayswarm.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=XRaySwarm +Comment=Draws a few swarms of critters flying around the screen, with nicely faded color trails behind them. Written by Chris Leger. +TryExec=xrayswarm +Exec=xrayswarm -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/queens.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/queens.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Queens +Comment=Solves the N-Queens problem (where, in this program, N is between 5 and 10 queens.) The problem is: how may one place N queens on an NxN chessboard such that no queen can attack a sister? Written by Blair Tennessy. +TryExec=queens +Exec=queens -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/vines.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/vines.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Vines +Comment=This one generates a continuous sequence of small, curvy geometric patterns. It scatters them around your screen until it fills up, then it clears the screen and starts over. Written by Tracy Camp and David Hansen. +TryExec=vines +Exec=vines -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/rocks.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/rocks.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Rocks +Comment=This draws an animation of flight through an asteroid field, with changes in rotation and direction. It can also display 3D separations for red/blue glasses! Mostly written by Jamie Zawinski. +TryExec=rocks +Exec=rocks -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/sproingies.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/sproingies.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Sproingies +Comment=Q-Bert meets Marble Madness! Written by Ed Mackey. +TryExec=sproingies +Exec=sproingies -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/laser.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/laser.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Laser +Comment=Moving radiating lines, that look vaguely like scanning laser beams. Written by Pascal Pensa. (Frankie say: relax.) +TryExec=laser +Exec=laser -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/kaleidescope.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/kaleidescope.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Kaleidescope +Comment=Another clone of an ancient meme, consisting largely of frenetic rotational motion of colored lines. This one is by Ron Tapia. The motion is nice, but I think it needs more solids, or perhaps just brighter colors. More variations in the rotational speed might help, too. +TryExec=kaleidescope +Exec=kaleidescope -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/glhanoi.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/glhanoi.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=GLHanoi +Comment=Solves the Towers of Hanoi puzzle. Move N disks from one pole to another, one disk at a time, with no disk ever resting on a disk smaller than itself. Written by Dave Atkinson. +TryExec=glhanoi +Exec=glhanoi -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/spheremonics.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/spheremonics.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Spheremonics +Comment=These closed objects are commonly called spherical harmonics, although they are only remotely related to the mathematical definition found in the solution to certain wave functions, most notable the eigenfunctions of angular momentum operators. Written by Paul Bourke and Jamie Zawinski. +TryExec=spheremonics +Exec=spheremonics -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/halftone.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/halftone.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Halftone +Comment=Draws the gravity force in each point on the screen seen through a halftone dot pattern. The gravity force is calculated from a set of moving mass points. View it from a distance for best effect. Written by Peter Jaric . +TryExec=halftone +Exec=halftone -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/webcollage.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/webcollage.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=WebCollage +Comment=This program makes collages out of random images pulled off of the World Wide Web. It finds these images by doing random web searches, and then extracting images from the returned pages. It can also be set up to filter the images through the `VidWhacker' program. WARNING: THE INTERNET SOMETIMES CONTAINS PORNOGRAPHY. The Internet being what it is, absolutely anything might show up in the collage including -- quite possibly -- pornography, or even nudity. Please act accordingly. Written by Jamie Zawinski. +TryExec=webcollage +Exec=webcollage -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/cage.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/cage.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Cage +Comment=This draws Escher's ``Impossible Cage,'' a 3d analog of a moebius strip, and rotates it in three dimensions. Written by Marcelo Vianna. +TryExec=cage +Exec=cage -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/moire.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/moire.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Moire +Comment=This one draws cool circular interference patterns. Most of the circles you see aren't explicitly rendered, but show up as a result of interactions between the other pixels that were drawn. Written by Jamie Zawinski, inspired by Java code by Michael Bayne. As he pointed out, the beauty of this one is that the heart of the display algorithm can be expressed with just a pair of loops and a handful of arithmetic, giving it a high ``display hack metric''. +TryExec=moire +Exec=moire -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/epicycle.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/epicycle.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Epicycle +Comment=This program draws the path traced out by a point on the edge of a circle. That circle rotates around a point on the rim of another circle, and so on, several times. These were the basis for the pre-heliocentric model of planetary motion. Written by James Youngman. +TryExec=epicycle +Exec=epicycle -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/apple2.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/apple2.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Apple ][ +Comment=Simulates an original Apple ][ Plus computer in all its 1979 glory. It also reproduces the appearance of display on a color television set of the period. In "Text Mode", it displays the output of a program, or the contents of a file or URL, as configured on the "Advanced" tab of the main Screensaver Preferences window. In "Slideshow Mode", it chooses a number of images from the image source you configured into XScreenSaver and displays them within the limitations of the Apple ][ display hardware. (Six available colors in hi-res mode!) In "Basic Programming Mode", a simulated user types in a BASIC program and runs it. By Trevor Blackwell. +TryExec=apple2 +Exec=apple2 -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/blaster.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/blaster.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Blaster +Comment=Draws a simulation of flying space-combat robots (cleverly disguised as colored circles) doing battle in front of a moving star field. Written by Jonathan Lin. +TryExec=blaster +Exec=blaster -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/lcdscrub.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/lcdscrub.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=LCDScrub +Comment= +TryExec=lcdscrub +Exec=lcdscrub -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/thornbird.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/thornbird.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Thornbird +Comment=Displays a view of the ``Bird in a Thornbush'' fractal. Written by Tim Auckland. +TryExec=thornbird +Exec=thornbird -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/atunnel.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/atunnel.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Atunnel +Comment=Draws an animation of a textured tunnel in GL. Requires OpenGL, and a machine with fast hardware support for texture maps. Written by Eric Lassauge and Roman Podobedov. +TryExec=atunnel +Exec=atunnel -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/decayscreen.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/decayscreen.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=DecayScreen +Comment=This takes an image and makes it melt. You've no doubt seen this effect before, but no screensaver would really be complete without it. It works best if there's something colorful visible. Warning, if the effect continues after the screen saver is off, seek medical attention. Written by David Wald, Vivek Khera, Jamie Zawinski, and Vince Levey. +TryExec=decayscreen +Exec=decayscreen -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/attraction.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/attraction.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Attraction +Comment=Like qix, this uses a simple simple motion model to generate many different display modes. The control points attract each other up to a certain distance, and then begin to repel each other. The attraction/repulsion is proportional to the distance between any two particles, similar to the strong and weak nuclear forces. One of the most interesting ways to watch this hack is simply as bouncing balls, because their motions and interactions with each other are so odd. Sometimes two balls will get into a tight orbit around each other, to be interrupted later by a third, or by the edge of the screen. It looks quite chaotic. Written by Jamie Zawinski, based on Lisp code by John Pezaris. +TryExec=attraction +Exec=attraction -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/drift.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/drift.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Drift +Comment=How could one possibly describe this except as ``drifting recursive fractal cosmic flames?'' Another fine hack from the Scott Draves collection of fine hacks. +TryExec=drift +Exec=drift -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/distort.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/distort.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Distort +Comment=This hack grabs an image of the screen, and then lets a transparent lens wander around the screen, magnifying whatever is underneath. Written by Jonas Munsin. +TryExec=distort +Exec=distort -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/deluxe.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/deluxe.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Deluxe +Comment=This draws a pulsing sequence of stars, circles, and lines. It would look better if it was faster, but as far as I can tell, there is no way to make this be both: fast, and flicker-free. Yet another reason X sucks. Written by Jamie Zawinski. +TryExec=deluxe +Exec=deluxe -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/boing.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/boing.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Boing +Comment=This bouncing ball is a clone of the first graphics demo for the Amiga 1000, which was written by Dale Luck and RJ Mical during a break at the 1984 Consumer Electronics Show (or so the legend goes.) This looks like the original Amiga demo if you turn off "smoothing" and "lighting" and turn on "scanlines". Written by Jamie Zawinski. +TryExec=boing +Exec=boing -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/antspotlight.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/antspotlight.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=AntSpotlight +Comment=Antspotlight draws an ant (with a headlight) who walks on top of an image of your desktop or other image. Written by Blair Tennessy. +TryExec=antspotlight +Exec=antspotlight -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/rotzoomer.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/rotzoomer.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=RotZoomer +Comment=Creates a collage of rotated and scaled portions of the screen. Written by Claudio Matsuoka. +TryExec=rotzoomer +Exec=rotzoomer -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/anemotaxis.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/anemotaxis.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Anemotaxis +Comment=Anemotaxis demonstrates a search algorithm designed for locating a source of odor in turbulent atmosphere. The searcher is able to sense the odor and determine local instantaneous wind direction. The goal is to find the source in the shortest mean time. Written by Eugene Balkovsky. +TryExec=anemotaxis +Exec=anemotaxis -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/xteevee.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/xteevee.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=XTeeVee +Comment=XTeeVee simulates various television problems, including static, loss of vertical hold, and a test pattern. By Greg Knauss. +TryExec=xteevee +Exec=xteevee -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/cube21.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/cube21.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Cube 21 +Comment=Animates a Rubik-like puzzle known as Cube 21 or Square-1. The rotations are chosen randomly. Requires OpenGL. Written by Vasek Potocek. +TryExec=cube21 +Exec=cube21 -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/sballs.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/sballs.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Sballs +Comment=Draws an animation of textured balls spinning like crazy in GL. Requires OpenGL, and a machine with fast hardware support for texture maps. Written by Eric Lassauge . +TryExec=sballs +Exec=sballs -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/stairs.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/stairs.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Stairs +Comment=by Marcelo Vianna's third Escher GL hack, this one draws an ``infinite'' staircase. +TryExec=stairs +Exec=stairs -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/xmatrix.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/xmatrix.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Xmatrix +Comment=Draws dropping characters similar to what is seen on the computer monitors in "The Matrix". See also "glmatrix" for a 3D rendering of the similar effect that appeared in the title sequence of the movie. Written by Jamie Zawinski. +TryExec=xmatrix +Exec=xmatrix -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/memscroller.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/memscroller.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=MemScroller +Comment=This draws a dump of its own process memory scrolling across the screen in three windows at three different rates. Written by Jamie Zawinski. +TryExec=memscroller +Exec=memscroller -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/bsod.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/bsod.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=BSOD +Comment=BSOD stands for ``Blue Screen of Death.'' The finest in personal computer emulation, this hack simulates popular screen savers from a number of less robust operating systems. Written by Jamie Zawinski. +TryExec=bsod +Exec=bsod -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/moebius.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/moebius.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Moebius +Comment=Another M. C. Escher hack by Marcelo Vianna, this one draws ``Moebius Strip II,'' a GL image of ants walking along the surface of a moebius strip. +TryExec=moebius +Exec=moebius -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/flag.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/flag.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Flag +Comment=This draws a waving colored flag, that undulates its way around the screen. The trick is the flag can contain arbitrary text and images. By default, it displays either the current system name and OS type, or a picture of ``Bob,'' but you can replace the text or the image with a command-line option. Written by Charles Vidal and Jamie Zawinski. +TryExec=flag +Exec=flag -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/ripples.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/ripples.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Ripples +Comment=This draws rippling interference patterns like splashing water. With the -water option, it manipulates your desktop image to look like something is dripping into it. Written by Tom Hammersley. +TryExec=ripples +Exec=ripples -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/polytopes.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/polytopes.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Regular 4D Polytopes +Comment=This program shows one of the six regular 4D polytopes rotating in 4D. Written by Carsten Steger, inspired by H.S.M Coxeter's book "Regular Polytopes", 3rd Edition, Dover Publications, Inc., 1973, and Thomas Banchoff's book "Beyond the Third Dimension: Geometry, Computer Graphics, and Higher Dimensions", Scientific American Library, 1990. +TryExec=polytopes +Exec=polytopes -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/crackberg.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/crackberg.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Crackberg +Comment=Flies through height maps, optionally animating the creation and destruction of generated tiles; tiles `grow' into place. +TryExec=crackberg +Exec=crackberg -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/loop.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/loop.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Loop +Comment=This one produces loop-shaped colonies that spawn, age, and eventually die. Written by David Bagley. +TryExec=loop +Exec=loop -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/fadeplot.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/fadeplot.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=FadePlot +Comment=Draws what looks like a waving ribbon following a sinusoidal path. Written by Bas van Gaalen and Charles Vidal. +TryExec=fadeplot +Exec=fadeplot -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/apollonian.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/apollonian.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Apollonian +Comment=Packs a large circle with smaller circles, demonstrating the Descartes Circle Theorem. Written by Allan R. Wilks and David Bagley. +TryExec=apollonian +Exec=apollonian -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/cynosure.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/cynosure.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Cynosure +Comment=A hack similar to `greynetic', but less frenetic. The first implementation was by Stephen Linhart; then Ozymandias G. Desiderata wrote a Java applet clone. That clone was discovered by Jamie Zawinski, and ported to C for inclusion here. +TryExec=cynosure +Exec=cynosure -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/noof.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/noof.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Noof +Comment=Draws some rotatey patterns, using OpenGL. Written by Mark Kilgard. +TryExec=noof +Exec=noof -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/eruption.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/eruption.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Eruption +Comment=An exposive version of XFlame. By W.P. van Paassen. +TryExec=eruption +Exec=eruption -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/pyro.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/pyro.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Pyro +Comment=Pyro draws exploding fireworks. Blah blah blah. Written by Jamie Zawinski. +TryExec=pyro +Exec=pyro -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/zoom.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/zoom.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Zoom +Comment=Zooms in on a part of the screen and then moves around. With the -lenses option the result is like looking through many overlapping lenses rather than just a simple zoom. Written by James Macnicol. +TryExec=zoom +Exec=zoom -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/klein.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/klein.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Klein +Comment=This draws a visualization of a Klein bottle or some other interesting parametric surfaces. Written by Andrey Mirtchovski. +TryExec=klein +Exec=klein -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/spiral.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/spiral.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Spiral +Comment=Moving circular patterns, by Peter Schmitzberger. Moving circular patterns means moire; interference patterns, of course. +TryExec=spiral +Exec=spiral -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/boxed.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/boxed.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Boxed +Comment=Draws a box full of 3D bouncing balls that explode. Written by Sander van Grieken. +TryExec=boxed +Exec=boxed -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/nerverot.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/nerverot.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=NerveRot +Comment=Draws different shapes composed of nervously vibrating squiggles, as if seen through a camera operated by a monkey on crack. By Dan Bornstein. +TryExec=nerverot +Exec=nerverot -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/penetrate.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/penetrate.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Penetrate +Comment=This hack simulates the classic arcade game Missile Command. Written by Adam Miller. +TryExec=penetrate +Exec=penetrate -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/julia.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/julia.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Julia +Comment=This one draws spinning, animating (are you detecting a pattern here yet?) explorations of the Julia set. You've probably seen static images of this fractal form before, but it's a lot of fun to watch in motion as well. One interesting thing is that there is a small swinging dot passing in front of the image, which indicates the control point from which the rest of the image was generated. Written by Sean McCullough. +TryExec=julia +Exec=julia -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/substrate.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/substrate.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Substrate +Comment=Lines like crystals grow on a computational substrate. A simple perpendicular growth rule creates intricate city-like structures. By J. Tarbell and Mike Kershaw. +TryExec=substrate +Exec=substrate -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/xlyap.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/xlyap.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Xlyap +Comment=This generates pretty fractal pictures by doing funky math involving the ``Lyapunov exponent.'' It has a cool interactive mode, too. Written by Ron Record. +TryExec=xlyap +Exec=xlyap -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/glschool.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/glschool.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=glschool +Comment=Uses Craig Reynolds' Boids algorithm to simulate a school of fish. Looks best with more fish, so raise the number of fish until the frame rate declines to 25-30 fps. Written by David C. Lambert; 2006. +TryExec=glschool +Exec=glschool -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/flurry.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/flurry.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Flurry +Comment=This port of the OSX screensaver of the same name draws a colourful star(fish)like flurry of particles. xscreensaver port by Tobias Sargeant Original Mac version by Calum Robinson http://homepage.mac.com/calumr +TryExec=flurry +Exec=flurry -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/blocktube.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/blocktube.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=BlockTube +Comment=This hack draws a swirling, falling tunnel of reflective slabs. They fade from hue to hue. Written by Lars R. Damerow. +TryExec=blocktube +Exec=blocktube -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/molecule.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/molecule.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Molecule +Comment=Draws several different representations of molecules. Some common molecules are built in, and it can also read PDB (Protein Data Base) files as input. Written by Jamie Zawinski. +TryExec=molecule +Exec=molecule -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/glplanet.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/glplanet.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=GLPlanet +Comment=Draws a planet bouncing around in space. Written by David Konerding. The built-in image is a map of the earth (extracted from `xearth'), but you can wrap any texture around the sphere, e.g., the planetary textures that come with `ssystem'. +TryExec=glplanet +Exec=glplanet -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/hypertorus.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/hypertorus.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=4D Hypertorus +Comment=This program shows a rotating Clifford Torus: a torus lying on the "surface" of a 4D hypersphere. Written by Carsten Steger, inspired by Thomas Banchoff's book "Beyond the Third Dimension: Geometry, Computer Graphics, and Higher Dimensions", Scientific American Library, 1990. +TryExec=hypertorus +Exec=hypertorus -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/flame.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/flame.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Flame +Comment=Another iterative fractal generator. Written by Scott Draves. +TryExec=flame +Exec=flame -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/qix.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/qix.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Qix +Comment=This is the swiss army chainsaw of qix programs. It bounces a series of line segments around the screen, and uses variations on this basic motion pattern to produce all sorts of different presentations: line segments, filled polygons, overlapping translucent areas... Written by Jamie Zawinski. +TryExec=qix +Exec=qix -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/triangle.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/triangle.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Triangle +Comment=Generates random mountain ranges using iterative subdivision of triangles. Written by Tobias Gloth. +TryExec=triangle +Exec=triangle -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/bubbles.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/bubbles.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Bubbles +Comment=This simulates the kind of bubble formation that happens when water boils:small bubbles appear, and as they get closer to each other, they combine to form larger bubbles, which eventually pop. Written by James Macnicol. +TryExec=bubbles +Exec=bubbles -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/crystal.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/crystal.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Crystal +Comment=Moving polygons, similar to a kaleidescope (more like a kaleidescope than the hack called `kaleid,' actually.) This one by Jouk Jansen. +TryExec=crystal +Exec=crystal -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/ifs.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/ifs.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=IFS +Comment=This one draws spinning, colliding iterated-function-system images. Note that the "quality" parameter is exponential. Number of points drawn is functions^detail. The number of colours is only used in Blend mode to provide a palette to create the base colours. These are then blended together in a non-colourmap friendly fashion. Written by Chris Le Sueur. +TryExec=ifs +Exec=ifs -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/gltext.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/gltext.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=GLText +Comment=Displays a few lines of text spinning around in a solid 3D font. Written by Jamie Zawinski. +TryExec=gltext +Exec=gltext -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/lavalite.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/lavalite.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=LavaLite +Comment=Draws a 3D Simulation a Lava Lite(r): odd-shaped blobs of a mysterious substance are heated, slowly rise to the top of the bottle, and then drop back down as they cool. This program requires OpenGL and a fairly fast machine (both CPU and 3D performance.) Written by Jamie Zawinski. "LAVA LITE(r) and the configuration of the LAVA(r) brand motion lamp are registered trademarks of Haggerty Enterprises, Inc. The configuration of the globe and base of the motion lamp are registered trademarks of Haggerty Enterprises, Inc. in the U.S.A. and in other countries around the world." +TryExec=lavalite +Exec=lavalite -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/petri.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/petri.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Petri +Comment=This simulates colonies of mold growing in a petri dish. Growing colored circles overlap and leave spiral interference in their wake. Written by Dan Bornstein. +TryExec=petri +Exec=petri -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/bouboule.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/bouboule.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Bouboule +Comment=This draws what looks like a spinning, deforming balloon with varying-sized spots painted on its invisible surface. Written by Jeremie Petit. +TryExec=bouboule +Exec=bouboule -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/circuit.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/circuit.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Circuit +Comment=Animates a number of 3D electronic components. Written by Ben Buxton. +TryExec=circuit +Exec=circuit -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/spotlight.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/spotlight.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Spotlight +Comment=Draws a spotlight scanning across a black screen, illuminating the underlying desktop when it passes. Written by Rick Schultz. +TryExec=spotlight +Exec=spotlight -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/gleidescope.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/gleidescope.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Gleidescope +Comment=An OpenGL kaleidescope that operates on your desktop image, or on image files loaded from disk. Written by andrew dean. +TryExec=gleidescope +Exec=gleidescope -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/menger.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/menger.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Menger +Comment=This draws the three-dimensional variant of the recursive Menger Gasket, a cube-based fractal object analagous to the Sierpinski Tetrahedron. Written by Jamie Zawinski. +TryExec=menger +Exec=menger -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/greynetic.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/greynetic.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Greynetic +Comment=This draws random colored and stippled rectangles. Written by Jamie Zawinski. +TryExec=greynetic +Exec=greynetic -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/vidwhacker.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/vidwhacker.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=VidWhacker +Comment=This is actually just a shell script that grabs a frame of video from the system's video input, and then uses some PBM filters (chosen at random) to manipulate and recombine the video frame in various ways (edge detection, subtracting the image from a rotated version of itself, etc.) Then it displays that image for a few seconds, and does it again. This works really well if you just feed broadcast television into it. +TryExec=vidwhacker +Exec=vidwhacker -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/voronoi.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/voronoi.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Voronoi +Comment=Draws a randomly-colored Voronoi tessellation, and periodically zooms in and adds new points. The existing points also wander around. There are a set of control points on the plane, each at the center of a colored cell. Every pixel within that cell is closer to that cell's control point than to any other control point. That is what determines the cell's shapes. Written by Jamie Zawinski; 2007. +TryExec=voronoi +Exec=voronoi -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/bumps.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/bumps.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Bumps +Comment=A bit like `Spotlight', except that instead of merely exposing part of your desktop, it creates a bump map from it. Basically, it 3D-izes a roaming section of your desktop, based on color intensity. Written by Shane Smit. +TryExec=bumps +Exec=bumps -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/glslideshow.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/glslideshow.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=GLSlideshow +Comment=Loads a random sequence of images and smoothly scans and zooms around in each, fading from pan to pan. To tell it where to find the images to display, go to the "Advanced" tab on the Screensaver Preferences window. Select "Choose Random Images", and enter your image directory in the text field right below that. (Note: not the the "Advanced" button at the bottom of this window: the tab at the top of the *other* window.) This program requires a good video card capable of supporting large textures. Written by Jamie Zawinski and Mike Oliphant. +TryExec=glslideshow +Exec=glslideshow -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/starwars.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/starwars.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=StarWars +Comment=Draws a stream of text slowly scrolling into the distance at an angle, over a star field, like at the beginning of the movie of the same name. The text can be the output of a program or the contents of a file or URL, as configured on the "Advanced" tab of the main Screensaver Preferences window. Written by Jamie Zawinski and Claudio Matauoka. +TryExec=starwars +Exec=starwars -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/fliptext.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/fliptext.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=FlipText +Comment=Draws successive pages of text. The lines flip in and out in a soothing 3D pattern. The text can be the output of a program or the contents of a file or URL, as configured on the "Advanced" tab of the main Screensaver Preferences window. Written by Jamie Zawinski. +TryExec=fliptext +Exec=fliptext -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/vermiculate.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/vermiculate.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Vermiculate +Comment=Draws squiggly worm-like paths. Written by Tyler Pierce. +TryExec=vermiculate +Exec=vermiculate -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/xflame.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/xflame.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Xflame +Comment=Draws a simulation of pulsing fire. It can also take an arbitrary image and set it on fire too. Written by Carsten Haitzler, hacked on by many others. +TryExec=xflame +Exec=xflame -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/glsnake.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/glsnake.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=GlSnake +Comment=Draws a simulation of the Rubik's Snake puzzle. Written by Jamie Wilkinson, Andrew Bennetts, and Peter Aylett. +TryExec=glsnake +Exec=glsnake -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/lament.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/lament.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Lament +Comment=Animates a simulation of Lemarchand's Box, repeatedly solving itself. Requires OpenGL, and a machine with fast hardware support for texture maps. Warning: occasionally opens doors. Written by Jamie Zawinski. +TryExec=lament +Exec=lament -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/maze.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/maze.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Maze +Comment=This is the ancient X maze demo, modified to work with xscreensaver. It generates a random maze, then solves it with visual feedback. Originally by Jim Randell; modified by a cast of thousands. +TryExec=maze +Exec=maze -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/xanalogtv.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/xanalogtv.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=XAnalogTV +Comment=XAnalogTV shows a detailed simulation of an old TV set showing various test patterns, with various picture artifacts like snow, bloom, distortion, ghosting, and hash noise. It also simulates the TV warming up. It will cycle through 12 channels, some with images you give it, and some with color bars or nothing but static. By Trevor Blackwell. +TryExec=xanalogtv +Exec=xanalogtv -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/whirlwindwarp.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/whirlwindwarp.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=WhirlwindWarp +Comment=Floating stars are acted upon by a mixture of simple 2D forcefields. The strength of each forcefield changes continuously, and it is also switched on and off at random. By Paul 'Joey' Clark. +TryExec=whirlwindwarp +Exec=whirlwindwarp -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/rotor.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/rotor.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Rotor +Comment=Another ancient xlock demo, this one by Tom Lawrence. It draws a line segment moving along a complex spiraling curve. +TryExec=rotor +Exec=rotor -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/cloudlife.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/cloudlife.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=CloudLife +Comment=Generates cloud-like formations based on a variant of Conway's Life. The difference is that cells have a maximum age, after which they count as 3 for populating the next generation. This makes long-lived formations explode instead of just sitting there burning a hole in your screen. Written by Don Marti. +TryExec=cloudlife +Exec=cloudlife -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/pinion.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/pinion.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Pinion +Comment=Draws an interconnected set of gears moving across the screen. Written by Jamie Zawinski. +TryExec=pinion +Exec=pinion -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/interaggregate.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/interaggregate.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Interaggregate +Comment=Interaggregate +TryExec=interaggregate +Exec=interaggregate -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/grav.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/grav.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Grav +Comment=This program draws a simple orbital simulation. If you turn on trails, it looks kind of like a cloud-chamber photograph. Written by Greg Bowering. +TryExec=grav +Exec=grav -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/lissie.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/lissie.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Lissie +Comment=Another Lissajous figure. This one draws the progress of circular shapes along a path. Written by Alexander Jolk. +TryExec=lissie +Exec=lissie -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/compass.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/compass.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Compass +Comment=This draws a compass, with all elements spinning about randomly, for that ``lost and nauseous'' feeling. Written by Jamie Zawinski. +TryExec=compass +Exec=compass -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/rubik.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/rubik.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Rubik +Comment=Draws a Rubik's Cube that rotates in three dimensions and repeatedly shuffles and solves itself. Another fine GL hack by Marcelo Vianna. +TryExec=rubik +Exec=rubik -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/jigsaw.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/jigsaw.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Jigsaw +Comment=This grabs a screen image, carves it up into a jigsaw puzzle, shuffles it, and then solves the puzzle. This works especially well when you feed it an external video signal instead of letting it grab the screen image (actually, I guess this is generally true...) When it is grabbing a video image, it is sometimes pretty hard to guess what the image is going to look like once the puzzle is solved. Written by Jamie Zawinski. +TryExec=jigsaw +Exec=jigsaw -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/worm.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/worm.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Worm +Comment=An ancient xlock hack that draws multicolored worms that crawl around the screen. Written by Brad Taylor, Dave Lemke, Boris Putanec, and Henrik Theiling. +TryExec=worm +Exec=worm -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/sierpinski.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/sierpinski.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Sierpinski +Comment=This draws the two-dimensional variant of the recursive Sierpinski triangle fractal. Written by Desmond Daignault. +TryExec=sierpinski +Exec=sierpinski -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/pacman.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/pacman.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Pacman +Comment=Simulates a game of Pac-Man on a randomly-created level. Written by Edwin de Jong. +TryExec=pacman +Exec=pacman -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/sonar.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/sonar.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Sonar +Comment=This program draws a simulation of a sonar screen. By default, it displays a random assortment of ``bogies'' on the screen, but if installed as "setuid root", it can ping (pun intended) your local network, and actually plot the proximity of the other hosts on your network to you. Written by Stephen Martin and Jamie Zawinski. +TryExec=sonar +Exec=sonar -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/bouncingcow.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/bouncingcow.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=BouncingCow +Comment=A Cow. A Trampoline. Together, they fight crime. By Jamie Zawinski. +TryExec=bouncingcow +Exec=bouncingcow -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/pipes.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/pipes.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Pipes +Comment=If you've ever been in the same room with a Windows NT machine, you've probably seen this GL hack. This version is by Marcelo Vianna. +TryExec=pipes +Exec=pipes -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/deco.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/deco.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Deco +Comment=This one subdivides and colors rectangles randomly. It looks kind of like Brady-Bunch-era rec-room wall paneling. (Raven says: ``this screensaver is ugly enough to peel paint.'') Written by Jamie Zawinski, inspired by Java code by Michael Bayne. +TryExec=deco +Exec=deco -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/gflux.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/gflux.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=GFlux +Comment=Draws a rippling waves on a rotating wireframe grid, using GL. Written by Josiah Pease. +TryExec=gflux +Exec=gflux -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/pong.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/pong.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Pong +Comment=The pong program simulates an ancient Pong home video game, as well as various artifacts from displaying it on a color TV set. Written by Jeremy English and Trevor Blackwell. +TryExec=pong +Exec=pong -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/glknots.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/glknots.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=GLKnots +Comment=Generates some twisting 3d knot patterns. Spins 'em around. Written by Jamie Zawinski. +TryExec=glknots +Exec=glknots -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/metaballs.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/metaballs.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=MetaBalls +Comment=Draws two dimensional metaballs: overlapping and merging balls with fuzzy edges. By W.P. van Paassen. +TryExec=metaballs +Exec=metaballs -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/hyperball.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/hyperball.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Hyperball +Comment=Hyperball is to hypercube as dodecahedron is to cube: this displays a 2D projection of the sequence of 3D objects which are the projections of the 4D analog to the dodecahedron. Technically, it is a "120 cell polytope." Written by Joe Keane. See also the "polytopes" hack for a more general version of this using OpenGL. +TryExec=hyperball +Exec=hyperball -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/boxfit.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/boxfit.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=BoxFit +Comment=Packs the screen with growing squares or circles, colored according to a horizontal or vertical gradient, or according to the colors of the desktop or a loaded image file. The objects grow until they touch, then stop. When the screen is full, they shrink away and the process restarts. Written by Jamie Zawinski. +TryExec=boxfit +Exec=boxfit -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/fluidballs.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/fluidballs.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=FluidBalls +Comment=Models the physics of bouncing balls, or of particles in a gas or fluid, depending on the settings. If "Shake Box" is selected, then every now and then, the box will be rotated, changing which direction is down (in order to keep the settled balls in motion.) By Peter Birtles and Jamie Zawinski. +TryExec=fluidballs +Exec=fluidballs -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/phosphor.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/phosphor.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Phosphor +Comment=Draws a simulation of an old terminal, with large pixels and long-sustain phosphor. This program is also a fully-functional VT100 emulator! The text can be the output of a program or the contents of a file or URL, as configured on the "Advanced" tab of the main Screensaver Preferences window. Written by Jamie Zawinski. +TryExec=phosphor +Exec=phosphor -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/piecewise.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/piecewise.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Piecewise +Comment=This draws a bunch of moving circles which switch from visibility to invisibility at intersection points. Written by Geoffrey Irving. +TryExec=piecewise +Exec=piecewise -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/intermomentary.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/intermomentary.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Intermomentary +Comment=The Intersection Momentary is a fun visualization defining the relationships between objects with Casey Reas, William Ngan, and Robert Hodgin. Commissioned for display at the Whitney Museum of American Art. A surface filled with 100 medium to small sized circles. Each circle has a different size and direction, but moves at the same slow rate. Display: A. The instantaneous intersections of the circles. B. The aggregate intersections of the circles. Ported to XScreensaver from the art project "InterMomentary" at http://www.complexification.net +TryExec=intermomentary +Exec=intermomentary -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/critical.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/critical.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Critical +Comment=Draws a system of self-organizing lines. It starts out as random squiggles, but after a few iterations, order begins to appear. Written by Martin Pool. +TryExec=critical +Exec=critical -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/tangram.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/tangram.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Tangram +Comment=Lets you watch the computer solve Tangram puzzles Written by Jeremy English. +TryExec=tangram +Exec=tangram -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/penrose.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/penrose.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Penrose +Comment=Draws quasiperiodic tilings; think of the implications on modern formica technology. Written by Timo Korvola. In April 1997, Sir Roger Penrose, a British math professor who has worked with Stephen Hawking on such topics as relativity, black holes, and whether time has a beginning, filed a copyright-infringement lawsuit against the Kimberly-Clark Corporation, which Penrose said copied a pattern he created (a pattern demonstrating that ``a nonrepeating pattern could exist in nature'') for its Kleenex quilted toilet paper. Penrose said he doesn't like litigation but, ``When it comes to the population of Great Britain being invited by a multinational to wipe their bottoms on what appears to be the work of a Knight of the Realm, then a last stand must be taken.'' As reported by News of the Weird #491, 4-jul-1997. +TryExec=penrose +Exec=penrose -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/screensavers-desktop-files/juggler3d.desktop +++ xscreensaver-5.05/debian/screensavers-desktop-files/juggler3d.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Encoding=UTF-8 +Name=Juggler3D +Comment=3D simulation of a juggler performing with balls, clubs and rings. Written by Brian Apps and partially based on his Win32 Juggle Saver program. +TryExec=juggler3d +Exec=juggler3d -root +StartupNotify=false +Terminal=false +Type=Application +Categories=Screensaver --- xscreensaver-5.05.orig/debian/patches/21_driver_xscreensaver-getimage-video +++ xscreensaver-5.05/debian/patches/21_driver_xscreensaver-getimage-video @@ -0,0 +1,22 @@ +Index: xscreensaver-5.04/driver/xscreensaver-getimage-video +=================================================================== +--- xscreensaver-5.04.orig/driver/xscreensaver-getimage-video 2007-06-06 23:46:24.000000000 +0200 ++++ xscreensaver-5.04/driver/xscreensaver-getimage-video 2007-12-08 19:03:34.000000000 +0100 +@@ -33,6 +33,8 @@ + + my $tmpdir = $ENV{TMPDIR} || "/tmp"; + my $tmpfile = sprintf("%s/xssv.%08x.ppm", $tmpdir, rand(0xFFFFFFFF)); ++my $tmpfile1 = sprintf ("%s/xssgv01.ppm", $tmpdir, rand(0xFFFFFFFF)); ++my $tmpfile3 = sprintf ("%s/xssgv03.ppm", $tmpdir, rand(0xFFFFFFFF)); + + my $verbose = 0; + my $use_stdout_p = 0; +@@ -47,7 +49,7 @@ + # If you add other programs to this list, please let me know! + # + my @programs = ( +- ++ "streamer -a -t3 -r1 -o $tmpfile1; mv $tmpfile3 $tmpfile", # XawTV after 2 sec + "bttvgrab -d q -Q -l 1 -o ppm -f $tmpfile", # BTTV + "qcam > $tmpfile", # Connectix Qcam + "gqcam -t PPM -d $tmpfile", # GTK+ Qcam clone --- xscreensaver-5.05.orig/debian/patches/60_add-ant-hack.patch +++ xscreensaver-5.05/debian/patches/60_add-ant-hack.patch @@ -0,0 +1,27 @@ +Index: xscreensaver-5.04/hacks/Makefile.in +=================================================================== +--- xscreensaver-5.04.orig/hacks/Makefile.in 2007-12-18 00:25:41.000000000 +0100 ++++ xscreensaver-5.04/hacks/Makefile.in 2007-12-18 00:25:51.000000000 +0100 +@@ -153,7 +153,7 @@ + interaggregate.o celtic.o cwaves.o webcollage-cocoa.o \ + webcollage-helper-cocoa.o m6502.0 asm6502.o abstractile.o \ + lcdscrub.c + +-NEXES = attraction blitspin bouboule braid bubbles decayscreen deco \ ++NEXES = attraction ant blitspin bouboule braid bubbles decayscreen deco \ + drift flag flame forest vines galaxy grav greynetic halo \ + helix hopalong hypercube ifs imsmap julia kaleidescope \ + laser lightning lisa lmorph maze moire noseguy pedal \ +Index: xscreensaver-5.04/driver/XScreenSaver.ad.in +=================================================================== +--- xscreensaver-5.04.orig/driver/XScreenSaver.ad.in 2007-12-18 00:26:05.000000000 +0100 ++++ xscreensaver-5.04/driver/XScreenSaver.ad.in 2007-12-18 00:26:50.000000000 +0100 +@@ -305,6 +305,7 @@ + cwaves -root \n\ + m6502 -root \n\ + abstractile -root \n\ ++ ant -root \n\ + - lcdscrub -root \n\ + - default-n: webcollage -root \n\ + - default-n: "WebCollage (whacked)" \ + webcollage -root -filter \ --- xscreensaver-5.05.orig/debian/patches/30_hacks_xanalogtv.patch +++ xscreensaver-5.05/debian/patches/30_hacks_xanalogtv.patch @@ -0,0 +1,22 @@ +Index: xscreensaver-5.04/hacks/xanalogtv.c +=================================================================== +--- xscreensaver-5.04.orig/hacks/xanalogtv.c 2006-03-31 09:21:41.000000000 +0200 ++++ xscreensaver-5.04/hacks/xanalogtv.c 2007-12-08 17:47:00.000000000 +0100 +@@ -42,7 +42,7 @@ + #include "xpm-pixmap.h" + #include "analogtv.h" + +-#include "images/logo-50.xpm" ++#include "images/logo-50-bad.xpm" + + /* #define DEBUG 1 */ + /* #define USE_TEST_PATTERNS */ +@@ -170,7 +170,7 @@ + ypos += st->ugly_font.char_h*5/2; + + analogtv_draw_xpm(st->tv, input, +- logo_50_xpm, xpos - 100, ypos); ++ logo_50_bad_xpm, xpos - 100, ypos); + + ypos += 58; + --- xscreensaver-5.05.orig/debian/patches/31_utils_images_logo-50-bad-xpm.patch +++ xscreensaver-5.05/debian/patches/31_utils_images_logo-50-bad-xpm.patch @@ -0,0 +1,123 @@ +Index: xscreensaver-5.04/utils/images/logo-50-bad.xpm +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ xscreensaver-5.04/utils/images/logo-50-bad.xpm 2007-12-08 17:47:04.000000000 +0100 +@@ -0,0 +1,118 @@ ++/* XPM */ ++static char * logo_50_bad_xpm[] = { ++"50 50 65 1", ++" c None", ++". c #070800", ++"+ c #440000", ++"@ c #5A0200", ++"# c #3B1C01", ++"$ c #551113", ++"% c #303019", ++"& c #353402", ++"* c #323433", ++"= c #D10400", ++"- c #DC0003", ++"; c #474624", ++"> c #E60000", ++", c #464745", ++"' c #4F5000", ++") c #EF0000", ++"! c #C71516", ++"~ c #FF0000", ++"{ c #535452", ++"] c #C62C02", ++"^ c #B52E26", ++"/ c #8C4444", ++"( c #6A6601", ++"_ c #60615F", ++": c #FF2500", ++"< c #855D5B", ++"[ c #C84D00", ++"} c #A56000", ++"| c #C64344", ++"1 c #E83534", ++"2 c #965959", ++"3 c #6D6D6E", ++"4 c #F43E01", ++"5 c #868500", ++"6 c #EC5803", ++"7 c #7A7C79", ++"8 c #A66E6E", ++"9 c #81848A", ++"0 c #EE7200", ++"a c #8D8E8B", ++"b c #A99C00", ++"c c #D48D00", ++"d c #93929F", ++"e c #99979B", ++"f c #F08B00", ++"g c #EC7B79", ++"h c #A2A0B2", ++"i c #BB9B9B", ++"j c #A7A9A6", ++"k c #F7A400", ++"l c #C6B52F", ++"m c #ACABBD", ++"n c #ECB800", ++"o c #D5C800", ++"p c #C8B2C2", ++"q c #EAC700", ++"r c #BFC1BE", ++"s c #FBA8AB", ++"t c #BFC0D0", ++"u c #C6CADA", ++"v c #CED1CD", ++"w c #D3D3DE", ++"x c #DEDFE9", ++"y c #E1E3DF", ++"z c #F5F6F3", ++" ", ++" ~k5 ", ++" ~4q. ", ++" ~~fb. ", ++" ~:q&. ", ++" ~~f5. ", ++" ~~~0o. ", ++" ~:~~0o. ", ++" ~~~~~k(. ", ++" ~~~~~6q..~:n(. ", ++" )~:~:n(+~:fb. ", ++" ~~:~~k5@~~0o.. ", ++" ~~~~~0q+:~:n&. ", ++" ~)~~~6q#~~~0q. ", ++" ~~:~~:n'>~~:k(. ", ++" _____________^~)~~0o$~~~0o._____________ ", ++" __9mmmmmmmmhmhi~~~~:n'|~~~fb{hdddddddddd93_ ", ++" _hxxxyyyyxwxvxg)~:~6q*1)~~k(duuwuuuuttttth9_ ", ++" {3wxuttttttpgld1~~~~4q,>~~)k(jxwxxwxxxxxxxth_ ", ++" _dxwpmd9dad|1n%1~~)::n&)>:>f53dedddedeeemxwm3_ ", ++" _axwtd,3337-4n;^~~~):k())~)0o*737337373{_wwm3_ ", ++" _9wutd,zzzz::k's)))~)0l>)))-n;zzzzzzzzze_xwm3_ ", ++" _9xupd{zzzs~)f5i)):))4q-)):)0bezzzzzzzze_xwm3_ ", ++" 39xutd,zxzg):6n3>)):)>f=~>>>4n;zxzzzzzze_xwm3_ ", ++" _9xutd,yxy1))4n;g)))~>66>)>>>f5jxxxxxxyd_xum3_ ", ++" _9xwtd{yyx1))>f5i)))>)-6>)-)=4n;yyyyyyyd_xwm3_ ", ++" _9xutd{xvx>)))4n;1>)>>>4-)>->-05avvvvvve{xwm3_ ", ++" 39xwtd{vvv-)>>-6l2>>)>>>-)>>--=n;wvwvwva3xwm3_ ", ++" _9xwpd{trv1)>)>>6b!>>>->-->>>--0b_rtrrt7_xwm3_ ", ++" _9xute{rpr->)>->-40>>>>>>>---=-=c'jrrje3_xwm3_ ", ++" _dxutd{jjr1--)>>--->---->-------[l*,****_xwm3_ ", ++" _9xwtd_jmj|>)->->-->->->--------=n%*****_xwm3_ ", ++" _9xttd_jej8>>-)->-->----------===c'*****_xum3_ ", ++" _exutd{eeee>->--------------===-=c(*****3xwm3_ ", ++" _9xutd_aaaa^>-------=---=========c'*****3xum3_ ", ++" _9xutd{99998-----=---==--=-=====]l.,,,**3xwm3_ ", ++" _9xwpd_33_3_^>----=========-===]}5*,,,,*_xwm3_ ", ++" 39xuud_*,,,,,!-====-=-==-=====-[n.{{,,,*3xwm3_ ", ++" _9xttd_;,,,{{{!====-==========[b%,{{{,,* + *splash.demo.label: Settings + *splash.help.label: Help +@@ -485,6 +511,7 @@ + *hacks.t3d.name: T3D + *hacks.shadebobs.name: ShadeBobs + *hacks.ccurve.name: C Curve ++*hacks.xteevee.name: XTeeVee + *hacks.xanalogtv.name: XAnalogTV + *hacks.xspirograph.name: XSpiroGraph + *hacks.nerverot.name: NerveRot +@@ -528,8 +555,6 @@ + *hacks.boxfit.name: BoxFit + *hacks.fliptext.name: FlipText + *hacks.glhanoi.name: GLHanoi +-*hacks.topblock.name: TopBlock +-*hacks.glschool.name: GLSchool + + ! obsolete, but still used by xscreensaver-demo-Xm. + *hacks.documentation.isInstalled: True --- xscreensaver-5.05.orig/debian/patches/53_XScreenSaver.ad.in.patch +++ xscreensaver-5.05/debian/patches/53_XScreenSaver.ad.in.patch @@ -0,0 +1,72 @@ +Index: xscreensaver/driver/XScreenSaver.ad.in +=================================================================== +--- xscreensaver.orig/driver/XScreenSaver.ad.in 2008-07-16 23:39:50.000000000 +0200 ++++ xscreensaver/driver/XScreenSaver.ad.in 2008-07-16 23:39:50.000000000 +0200 +@@ -60,7 +60,7 @@ + *textLiteral: XScreenSaver + *textFile: @DEFAULT_TEXT_FILE@ + *textProgram: fortune +-*textURL: http://www.livejournal.com/stats/latest-rss.bml ++*textURL: http://planet.debian.org/rss20.xml + + *overlayTextForeground: #FFFF00 + *overlayTextBackground: #000000 +@@ -91,16 +91,20 @@ + ! + ! And there are so very many options to choose from! + ! ++*loadURL: x-www-browser '%s' ++*manualCommand: x-terminal-emulator -title '%s manual' \ ++ -e '/bin/sh -c "man %s; read foo"' ++! + ! Gnome 2.4, 2.6: (yelp can't display man pages, as of 2.6.3) + ! +-@GNOME24@*loadURL: @WITH_BROWSER@ '%s' +-@GNOME24@*manualCommand: gnome-terminal --title '%s manual' \ ++@GNOME24@*loadURL: x-www-browser '%s' ++@GNOME24@*manualCommand: x-terminal-emulator -title '%s manual' \ + @GNOME24@ --command '/bin/sh -c "man %s; read foo"' + ! + ! Gnome 2.2: + ! +-@GNOME22@*loadURL: gnome-url-show '%s' +-@GNOME22@*manualCommand: gnome-terminal --title '%s manual' \ ++@GNOME22@*loadURL: x-www-browser '%s' ++@GNOME22@*manualCommand: x-terminal-emulator -title '%s manual' \ + @GNOME22@ --command '/bin/sh -c "man %s; read foo"' + ! + ! Gnome 1.4: +@@ -110,8 +114,8 @@ + ! + ! non-Gnome systems: + ! +-@NOGNOME@*loadURL: firefox '%s' || mozilla '%s' || netscape '%s' +-@NOGNOME@*manualCommand: xterm -sb -fg black -bg gray75 -T '%s manual' \ ++@NOGNOME@*loadURL: x-www-browser '%s' ++@NOGNOME@*manualCommand: x-terminal-emulator -title '%s manual' \ + @NOGNOME@ -e /bin/sh -c 'man "%s" ; read foo' + + +@@ -128,7 +132,8 @@ + ! (That button does not appear on the dialog if this program does not exist.) + ! For Gnome: probably "gdmflexiserver -ls". KDE, probably "kdmctl reserve". + ! +-@NEW_LOGIN_COMMAND_P@*newLoginCommand: @NEW_LOGIN_COMMAND@ ++! @NEW_LOGIN_COMMAND_P@*newLoginCommand: @NEW_LOGIN_COMMAND@ ++*newLoginCommand: gdmflexiserver -l -a -c FLEXI_XSERVER + + + ! Turning on "installColormap" on 8-bit systems interacts erratically with +@@ -465,10 +470,11 @@ + *Dialog.shadowThickness: 2 + + *passwd.heading.label: XScreenSaver %s +-*passwd.body.label: This screen is locked. ++*passwd.body.label: Please enter your password. + *passwd.unlock.label: OK + *passwd.login.label: New Login + *passwd.user.label: Username: ++*passwd.passwd.label: Password: + *passwd.thermometer.width: 8 + *passwd.asterisks: True + *passwd.uname: True --- xscreensaver-5.05.orig/debian/patches/23_hacks_glx_glsnake.patch +++ xscreensaver-5.05/debian/patches/23_hacks_glx_glsnake.patch @@ -0,0 +1,49 @@ +Index: xscreensaver-5.04/hacks/glx/glsnake.c +=================================================================== +--- xscreensaver-5.04.orig/hacks/glx/glsnake.c 2006-05-03 21:39:21.000000000 +0200 ++++ xscreensaver-5.04/hacks/glx/glsnake.c 2007-12-08 17:46:53.000000000 +0100 +@@ -535,7 +535,7 @@ + PIN, ZERO, RIGHT, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, + RIGHT, ZERO } + }, +- { "k's turd", ++ { "caterpillar", + { RIGHT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, + RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, + RIGHT, LEFT, RIGHT, PIN, ZERO } +@@ -560,22 +560,22 @@ + ZERO, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, + ZERO, ZERO, ZERO } + }, +- { "kissy box", ++ { "ribbon", + { PIN, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, + ZERO, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, + ZERO, PIN, ZERO } + }, +- { "erect penis", /* thanks benno */ ++ { "shuffle board", /* thanks benno */ + { PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, PIN, + PIN, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, + ZERO, ZERO } + }, +- { "flaccid penis", ++ { "anchor", + { PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, PIN, + PIN, ZERO, ZERO, ZERO, RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, + ZERO, ZERO } + }, +- { "vagina", ++ { "engagement ring", + { RIGHT, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, + LEFT, ZERO, ZERO, ZERO, LEFT, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, + PIN, RIGHT, ZERO } +@@ -995,7 +995,7 @@ + { "Parrot", + { ZERO, ZERO, ZERO, ZERO, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, ZERO, PIN, ZERO } + }, +- { "Penis", ++ { "Shuttle", + { PIN, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, PIN, ZERO } + }, + { "PictureComingSoon", --- xscreensaver-5.05.orig/debian/patches/50_driver_screensaver-properties-desktop.patch +++ xscreensaver-5.05/debian/patches/50_driver_screensaver-properties-desktop.patch @@ -0,0 +1,12 @@ +Index: xscreensaver-5.04/driver/screensaver-properties.desktop.in +=================================================================== +--- xscreensaver-5.04.orig/driver/screensaver-properties.desktop.in 2003-12-15 12:16:12.000000000 +0100 ++++ xscreensaver-5.04/driver/screensaver-properties.desktop.in 2007-12-08 17:48:44.000000000 +0100 +@@ -1,6 +1,6 @@ + [Desktop Entry] + Exec=xscreensaver-demo +-Icon=xscreensaver ++Icon=xscreensaver.svg + Terminal=false + _Name=Screensaver + _Comment=Change screensaver properties --- xscreensaver-5.05.orig/debian/patches/10_jwz-xscreensaver-randr-patch-3.patch +++ xscreensaver-5.05/debian/patches/10_jwz-xscreensaver-randr-patch-3.patch @@ -0,0 +1,4353 @@ +# Upstream patch, downloaded from +# http://www.jwz.org/xscreensaver/xscreensaver-randr-patch-3.txt +# + fixed typo "screen < real_nscreens" in driver/lock:1527 +# Will probably go upstream with 5.06 +# Fixes a bunch of xrandr/xinerama issues + +Please see http://jwz.livejournal.com/908354.html + +Apply this patch with: + + cd xscreensaver-5.05 + patch -p1 < ../xscreensaver-randr-patch-3.txt + +Thanks! + +Index: xscreensaver/config.h.in +=================================================================== +--- xscreensaver.orig/config.h.in 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/config.h.in 2008-07-17 00:07:00.000000000 +0200 +@@ -234,6 +234,9 @@ + available if the file /usr/include/X11/extensions/Xrandr.h exists.) */ + #undef HAVE_RANDR + ++/* Define this if the RANDR library is version 1.2 or newer. */ ++#undef HAVE_RANDR_12 ++ + /* Define this if you have the XReadDisplay extension (I think this is an + SGI-only thing; it's in .) A few of the + screenhacks will take advantage of this if it's available. */ +Index: xscreensaver/configure +=================================================================== +--- xscreensaver.orig/configure 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/configure 2008-07-17 00:07:00.000000000 +0200 +@@ -2060,6 +2060,9 @@ + + + ++ ++ ++ + # After checking to see that --srcdir is correct (which AC_INIT does) + # check for some random other files that come later in the tar file, + # to make sure everything is here. +@@ -2096,6 +2099,10 @@ + + + ++# Need to disable Objective C extensions in ANSI C on MacOS X to work ++# around an Apple-specific gcc bug. ++# ++ + + ############################################################################### + # +@@ -2124,18 +2131,6 @@ + + ############################################################################### + # +-# Function to figure out how to turn off Objective C on MacOS X. +-# (We have to do this to work around an Apple-specific gcc bug.) +-# +-############################################################################### +- +- +- +- +- +- +-############################################################################### +-# + # Function to figure out how to create directory trees. + # + ############################################################################### +@@ -3455,6 +3450,7 @@ + ac_cv_gcc_accepts_no_overlength=no + else + ac_cv_gcc_accepts_no_overlength=yes ++ CC="$CC -Wno-overlength-strings" + fi + fi + { echo "$as_me:$LINENO: result: $ac_cv_gcc_accepts_no_overlength" >&5 +@@ -3475,6 +3471,7 @@ + ac_cv_gcc_accepts_no_decl_after=no + else + ac_cv_gcc_accepts_no_decl_after=yes ++ CC="$CC -Wdeclaration-after-statement" + fi + fi + { echo "$as_me:$LINENO: result: $ac_cv_gcc_accepts_no_decl_after" >&5 +@@ -3483,7 +3480,6 @@ + fi + + if test -n "$GCC"; then +- if test -n "$GCC"; then + { echo "$as_me:$LINENO: checking whether gcc accepts -no-cpp-precomp" >&5 + echo $ECHO_N "checking whether gcc accepts -no-cpp-precomp... $ECHO_C" >&6; } + if test "${ac_cv_gcc_accepts_no_cpp_precomp+set}" = set; then +@@ -3496,6 +3492,7 @@ + ac_cv_gcc_accepts_no_cpp_precomp=no + else + ac_cv_gcc_accepts_no_cpp_precomp=yes ++ CC="$CC -no-cpp-precomp" + fi + fi + { echo "$as_me:$LINENO: result: $ac_cv_gcc_accepts_no_cpp_precomp" >&5 +@@ -3503,13 +3500,6 @@ + ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp" + fi + +- if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then +- { echo "$as_me:$LINENO: result: Disabling Objective C extensions in ANSI C code." >&5 +-echo "${ECHO_T}Disabling Objective C extensions in ANSI C code." >&6; } +- CC="$CC -no-cpp-precomp" +- fi +- fi +- + if test -n "$GCC"; then + if test -n "$GCC"; then + { echo "$as_me:$LINENO: checking whether gcc accepts -std=c89" >&5 +@@ -3524,6 +3514,7 @@ + ac_cv_gcc_accepts_std=no + else + ac_cv_gcc_accepts_std=yes ++ CC="$CC -std=c89" + fi + fi + { echo "$as_me:$LINENO: result: $ac_cv_gcc_accepts_std" >&5 +@@ -3552,7 +3543,8 @@ + # before they were in the ANSI C 99 spec... (gcc 2.96 permits // + # with -std=gnu89 but not with -std=c89.) + # +- CC="$CC -std=c89 -U__STRICT_ANSI__" ++ # $CC already contains "-std=c89" via AC_GCC_ACCEPTS_STD ++ CC="$CC -U__STRICT_ANSI__" + else + # The old way: + CC="$CC -Wp,-lang-c89" +@@ -12140,7 +12132,7 @@ + + if test "$with_randr" = yes; then + +- # first check for Randr.h ++ # first check for Xrandr.h + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then +@@ -12489,7 +12481,103 @@ + #define HAVE_RANDR 1 + _ACEOF + ++ ++ # Now check for version 1.2 in the same libs. ++ ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ ac_save_LDFLAGS="$LDFLAGS" ++# ac_save_LIBS="$LIBS" ++ ++ if test \! -z "$includedir" ; then ++ CPPFLAGS="$CPPFLAGS -I$includedir" ++ fi ++ # note: $X_CFLAGS includes $x_includes ++ CPPFLAGS="$CPPFLAGS $X_CFLAGS" ++ ++ if test \! -z "$libdir" ; then ++ LDFLAGS="$LDFLAGS -L$libdir" + fi ++ # note: $X_LIBS includes $x_libraries ++ LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" ++ ++ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` ++ LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` ++ { echo "$as_me:$LINENO: checking for XRRGetOutputInfo in -lc" >&5 ++echo $ECHO_N "checking for XRRGetOutputInfo in -lc... $ECHO_C" >&6; } ++if test "${ac_cv_lib_c_XRRGetOutputInfo+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lc $SAVER_LIBS $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char XRRGetOutputInfo (); ++int ++main () ++{ ++return XRRGetOutputInfo (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -rf conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -rf conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && ++ $as_test_x conftest$ac_exeext; then ++ ac_cv_lib_c_XRRGetOutputInfo=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_lib_c_XRRGetOutputInfo=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_XRRGetOutputInfo" >&5 ++echo "${ECHO_T}$ac_cv_lib_c_XRRGetOutputInfo" >&6; } ++if test $ac_cv_lib_c_XRRGetOutputInfo = yes; then ++ cat >>confdefs.h <<\_ACEOF ++#define HAVE_RANDR_12 1 ++_ACEOF ++ ++else ++ true ++fi ++ ++ CPPFLAGS="$ac_save_CPPFLAGS" ++ LDFLAGS="$ac_save_LDFLAGS" ++# LIBS="$ac_save_LIBS" ++ ++ fi ++ + + elif test "$with_randr" != no; then + echo "error: must be yes or no: --with-randr-ext=$with_randr" +@@ -16673,7 +16761,7 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat > conftest.$ac_ext < + #ifndef MESA_MAJOR_VERSION +@@ -19890,9 +19978,11 @@ + + #### Could use some more defaults here... + for f in \ +- "/usr/X11R6/lib/X11/doc/README" \ +- "/usr/share/doc/xserver-common/copyright" \ +- "/usr/X11R6/README" \ ++ "/usr/X11R6/lib/X11/doc/README" \ ++ "/usr/share/doc/xserver-common/copyright" \ ++ "/usr/share/doc/xserver-xorg-core/copyright" \ ++ "/usr/X11R6/README" \ ++ "/usr/share/doc/debian/debian-manifesto" \ + ; do + if test -z "$with_textfile"; then + { echo "$as_me:$LINENO: checking for text file $f" >&5 +@@ -21883,8 +21973,9 @@ + pgl="$preferred_mesagl" + + if test "$ac_mesagl_version" = unknown; then +- warnL "Unable to determine the MesaGL version number!" +- warn2 "Make sure you are using version $preferred_mesagl or newer." ++ true ++ # warnL "Unable to determine the MesaGL version number!" ++ # warn2 "Make sure you are using version $preferred_mesagl or newer." + + elif test \! "$ac_mesagl_version" -gt 2006; then + warnL "MesaGL version number is $mgv --" +@@ -22035,7 +22126,7 @@ + + if test \! -z "$rpmv" ; then + rpmbdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'` +- rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/attraction$@\1@p'` ++ rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/popsquares$@\1@p'` + + warning=no + warnL "There is already an installed RPM of xscreensaver $rpmv" +@@ -22058,6 +22149,31 @@ + fi + fi + ++# Also warn if there's a Debian package installed. ++# ++debnames="xscreensaver xscreensaver-data xscreensaver-data-extra" ++debv='' ++for dpkg in $debnames ; do ++ if test -z "$debv"; then ++ debv=`dpkg -s $dpkg 2>/dev/null | sed -n 's/^Version: \(.*\)$/\1/p'` ++ fi ++done ++ ++if test \! -z "$debv" ; then ++ debbdir=`dpkg -L $debnames 2>/dev/null | \ ++ sed -n 's@^\(.*/bin\)/xscreensaver$@\1@p'` ++ debhdir=`dpkg -L $debnames 2>/dev/null | \ ++ sed -n 's@^\(.*\)/popsquares$@\1@p'` ++ ++ warning=no ++ warnL "There is already an installed dpkg of xscreensaver" ++ warn2 "version \"$debv\" on this system." ++ echo "" ++ warn2 "The dpkg was installed in $debbdir/," ++ warn2 "with demos in $debhdir/." ++fi ++ ++ + if test "${bindir}" = "${HACKDIR}" ; then + do_dir_warning=yes + fi +Index: xscreensaver/configure.in +=================================================================== +--- xscreensaver.orig/configure.in 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/configure.in 2008-07-17 00:07:00.000000000 +0200 +@@ -106,6 +106,9 @@ + possibly elsewhere. (It's available if the file + /usr/include/X11/extensions/Xrandr.h exists.)]) + ++AH_TEMPLATE([HAVE_RANDR_12], ++ [Define this if the RANDR library is version 1.2 or newer.]) ++ + AH_TEMPLATE([HAVE_PROC_INTERRUPTS], + [Define this if you have a Linux-like /proc/interrupts file which + can be examined to determine when keyboard activity has +@@ -389,6 +392,7 @@ + ac_cv_gcc_accepts_[$1]=no + else + ac_cv_gcc_accepts_[$1]=yes ++ CC="$CC [$2]" + fi]) + ac_gcc_accepts_[$1]="$ac_cv_gcc_accepts_[$1]" + fi +@@ -400,6 +404,11 @@ + AC_DEFUN(AC_NO_MISPLACED_DECLARATIONS, + [AC_CHECK_GCC_ARG(no_decl_after, -Wdeclaration-after-statement)]) + ++# Need to disable Objective C extensions in ANSI C on MacOS X to work ++# around an Apple-specific gcc bug. ++# ++AC_DEFUN(AC_NO_OBJECTIVE_C, ++ [AC_CHECK_GCC_ARG(no_cpp_precomp, -no-cpp-precomp)]) + + ############################################################################### + # +@@ -447,7 +456,8 @@ + # before they were in the ANSI C 99 spec... (gcc 2.96 permits // + # with -std=gnu89 but not with -std=c89.) + # +- CC="$CC -std=c89 -U__STRICT_ANSI__" ++ # $CC already contains "-std=c89" via AC_GCC_ACCEPTS_STD ++ CC="$CC -U__STRICT_ANSI__" + else + # The old way: + CC="$CC -Wp,-lang-c89" +@@ -458,27 +468,6 @@ + + ############################################################################### + # +-# Function to figure out how to turn off Objective C on MacOS X. +-# (We have to do this to work around an Apple-specific gcc bug.) +-# +-############################################################################### +- +-AC_DEFUN(AC_GCC_ACCEPTS_NO_CPP_PRECOMP, +- [AC_CHECK_GCC_ARG(no_cpp_precomp, -no-cpp-precomp)]) +- +-AC_DEFUN(AC_NO_OBJECTIVE_C, +- [if test -n "$GCC"; then +- AC_GCC_ACCEPTS_NO_CPP_PRECOMP +- if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then +- AC_MSG_RESULT(Disabling Objective C extensions in ANSI C code.) +- CC="$CC -no-cpp-precomp" +- fi +- fi +-]) +- +- +-############################################################################### +-# + # Function to figure out how to create directory trees. + # + ############################################################################### +@@ -1667,7 +1656,7 @@ + + if test "$with_randr" = yes; then + +- # first check for Randr.h ++ # first check for Xrandr.h + AC_CHECK_X_HEADER(X11/extensions/Xrandr.h, [have_randr=yes],, + [#include ]) + +@@ -1696,8 +1685,13 @@ + # if that succeeded, then we've really got it. + if test "$have_randr" = yes; then + AC_DEFINE(HAVE_RANDR) ++ ++ # Now check for version 1.2 in the same libs. ++ AC_CHECK_X_LIB(c, XRRGetOutputInfo, [AC_DEFINE(HAVE_RANDR_12)], ++ [true], $SAVER_LIBS) + fi + ++ + elif test "$with_randr" != no; then + echo "error: must be yes or no: --with-randr-ext=$with_randr" + exit 1 +@@ -3414,9 +3408,11 @@ + + #### Could use some more defaults here... + for f in \ +- "/usr/X11R6/lib/X11/doc/README" \ +- "/usr/share/doc/xserver-common/copyright" \ +- "/usr/X11R6/README" \ ++ "/usr/X11R6/lib/X11/doc/README" \ ++ "/usr/share/doc/xserver-common/copyright" \ ++ "/usr/share/doc/xserver-xorg-core/copyright" \ ++ "/usr/X11R6/README" \ ++ "/usr/share/doc/debian/debian-manifesto" \ + ; do + if test -z "$with_textfile"; then + AC_MSG_CHECKING([for text file $f]) +@@ -4035,8 +4031,9 @@ + pgl="$preferred_mesagl" + + if test "$ac_mesagl_version" = unknown; then +- warnL "Unable to determine the MesaGL version number!" +- warn2 "Make sure you are using version $preferred_mesagl or newer." ++ true ++ # warnL "Unable to determine the MesaGL version number!" ++ # warn2 "Make sure you are using version $preferred_mesagl or newer." + + elif test \! "$ac_mesagl_version" -gt 2006; then + warnL "MesaGL version number is $mgv --" +@@ -4182,7 +4179,7 @@ + + if test \! -z "$rpmv" ; then + rpmbdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'` +- rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/attraction$@\1@p'` ++ rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/popsquares$@\1@p'` + + warning=no + warnL "There is already an installed RPM of xscreensaver $rpmv" +@@ -4205,6 +4202,31 @@ + fi + fi + ++# Also warn if there's a Debian package installed. ++# ++debnames="xscreensaver xscreensaver-data xscreensaver-data-extra" ++debv='' ++for dpkg in $debnames ; do ++ if test -z "$debv"; then ++ debv=`dpkg -s $dpkg 2>/dev/null | sed -n 's/^Version: \(.*\)$/\1/p'` ++ fi ++done ++ ++if test \! -z "$debv" ; then ++ debbdir=`dpkg -L $debnames 2>/dev/null | \ ++ sed -n 's@^\(.*/bin\)/xscreensaver$@\1@p'` ++ debhdir=`dpkg -L $debnames 2>/dev/null | \ ++ sed -n 's@^\(.*\)/popsquares$@\1@p'` ++ ++ warning=no ++ warnL "There is already an installed dpkg of xscreensaver" ++ warn2 "version \"$debv\" on this system." ++ echo "" ++ warn2 "The dpkg was installed in $debbdir/," ++ warn2 "with demos in $debhdir/." ++fi ++ ++ + if test "${bindir}" = "${HACKDIR}" ; then + do_dir_warning=yes + fi +Index: xscreensaver/driver/Makefile.in +=================================================================== +--- xscreensaver.orig/driver/Makefile.in 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/Makefile.in 2008-07-17 00:07:00.000000000 +0200 +@@ -116,10 +116,10 @@ + + TEST_SRCS = test-passwd.c test-uid.c test-xdpms.c test-grab.c \ + test-apm.c test-fade.c test-xinerama.c test-vp.c \ +- test-randr.c xdpyinfo.c test-mlstring.c ++ test-randr.c xdpyinfo.c test-mlstring.c test-screens.c + TEST_EXES = test-passwd test-uid test-xdpms test-grab \ + test-apm test-fade test-xinerama test-vp \ +- test-randr xdpyinfo test-mlstring ++ test-randr xdpyinfo test-mlstring test-screens + + MOTIF_LIBS = @MOTIF_LIBS@ @XPM_LIBS@ $(XMU_LIBS) + GTK_LIBS = @GTK_LIBS@ $(XMU_LIBS) +@@ -147,9 +147,9 @@ + GTK_ICONS = $(ICON_SRC)/screensaver-*.png + + DEMO_UTIL_SRCS = $(UTILS_SRC)/resources.c $(UTILS_SRC)/usleep.c \ +- $(UTILS_SRC)/visual.c ++ $(UTILS_SRC)/visual.c $(XMU_SRCS) + DEMO_UTIL_OBJS = $(UTILS_BIN)/resources.o $(UTILS_BIN)/usleep.o \ +- $(UTILS_BIN)/visual.o ++ $(UTILS_BIN)/visual.o $(XMU_OBJS) + + SAVER_UTIL_SRCS = $(UTILS_SRC)/fade.c $(UTILS_SRC)/overlay.c \ + $(UTILS_SRC)/logo.c $(UTILS_SRC)/yarandom.c \ +@@ -179,24 +179,24 @@ + $(UTILS_BIN)/logo.o $(UTILS_BIN)/minixpm.o prefs.o \ + $(XMU_OBJS) + +-SAVER_SRCS_1 = xscreensaver.c windows.c timers.c subprocs.c exec.c \ +- xset.c splash.c setuid.c stderr.c mlstring.c +-SAVER_OBJS_1 = xscreensaver.o windows.o timers.o subprocs.o exec.o \ +- xset.o splash.o setuid.o stderr.o mlstring.o ++SAVER_SRCS_1 = xscreensaver.c windows.c screens.c timers.c subprocs.c \ ++ exec.c xset.c splash.c setuid.c stderr.c mlstring.c ++SAVER_OBJS_1 = xscreensaver.o windows.o screens.o timers.o subprocs.o \ ++ exec.o xset.o splash.o setuid.o stderr.o mlstring.o + + SAVER_SRCS = $(SAVER_SRCS_1) prefs.c dpms.c $(LOCK_SRCS) \ +- $(SAVER_UTIL_SRCS) $(GL_SRCS) $(XMU_SRCS) ++ $(SAVER_UTIL_SRCS) $(GL_SRCS) + SAVER_OBJS = $(SAVER_OBJS_1) prefs.o dpms.o $(LOCK_OBJS) \ +- $(SAVER_UTIL_OBJS) $(GL_OBJS) $(XMU_OBJS) ++ $(SAVER_UTIL_OBJS) $(GL_OBJS) + + CMD_SRCS = remote.c xscreensaver-command.c + CMD_OBJS = remote.o xscreensaver-command.o + +-DEMO_SRCS_1 = prefs.c dpms.c $(XMU_SRCS) +-DEMO_OBJS_1 = prefs.o dpms.o $(XMU_OBJS) ++DEMO_SRCS_1 = prefs.c dpms.c ++DEMO_OBJS_1 = prefs.o dpms.o + +-DEMO_SRCS = prefs.c dpms.c remote.c exec.c $(DEMO_UTIL_SRCS) +-DEMO_OBJS = prefs.o dpms.o remote.o exec.o $(DEMO_UTIL_OBJS) ++DEMO_SRCS = $(DEMO_SRCS_1) remote.c exec.c $(DEMO_UTIL_SRCS) ++DEMO_OBJS = $(DEMO_OBJS_1) remote.o exec.o $(DEMO_UTIL_OBJS) + + PDF2JPEG_SRCS = pdf2jpeg.m + PDF2JPEG_OBJS = pdf2jpeg.o +@@ -453,7 +453,7 @@ + $$e " ####################################################################";\ + $$e "" ;\ + fi ; \ +- elif [ -f $$conf ]; then \ ++ elif [ -f $$conf -a "x$$dest" != "x" ]; then \ + if ( grep $$dest $$conf >/dev/null ); then \ + echo "$$conf unchanged: already has an entry for $$dest" ; \ + else \ +@@ -498,7 +498,7 @@ + echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_APPDIR)" ;\ + $(INSTALL_DIRS) "$(install_prefix)$(GTK_APPDIR)" ;\ + fi ;\ +- name2=gnome-screensaver-properties.desktop ;\ ++ name2=xscreensaver-properties.desktop ;\ + echo $(INSTALL_DATA) screensaver-properties.desktop \ + $(install_prefix)$(GTK_APPDIR)/$$name2 ;\ + $(INSTALL_DATA) screensaver-properties.desktop \ +@@ -571,7 +571,7 @@ + # into /usr/share/applications/ + uninstall-gnome:: + @if [ "$(GTK_DATADIR)" != "" ]; then \ +- f=gnome-screensaver-properties.desktop ;\ ++ f=xscreensaver-properties.desktop ;\ + echo rm -f $(install_prefix)$(GTK_APPDIR)/$$f ;\ + rm -f $(install_prefix)$(GTK_APPDIR)/$$f ;\ + fi +@@ -846,6 +846,11 @@ + test-fade: test-fade.o $(UTILS_BIN)/fade.o + $(CC) $(LDFLAGS) -o $@ $(TEST_FADE_OBJS) $(SAVER_LIBS) + ++TEST_SCREENS_OBJS = test-screens.o $(DEMO_UTIL_OBJS) ++test-screens.o: screens.c ++test-screens: test-screens.o ++ $(CC) $(LDFLAGS) -o $@ $(TEST_SCREENS_OBJS) $(SAVER_LIBS) ++ + + xdpyinfo.o: xdpyinfo.c + $(CC) -c $(INCLUDES) -DHAVE_GLX $(CFLAGS) $(X_CFLAGS) \ +@@ -913,6 +918,11 @@ + prefs.o: $(UTILS_SRC)/resources.h + remote.o: ../config.h + remote.o: $(srcdir)/remote.h ++screens.o: ../config.h ++screens.o: $(srcdir)/prefs.h ++screens.o: $(srcdir)/types.h ++screens.o: $(UTILS_SRC)/visual.h ++screens.o: $(srcdir)/xscreensaver.h + setuid.o: ../config.h + setuid.o: $(srcdir)/prefs.h + setuid.o: $(srcdir)/types.h +@@ -954,6 +964,12 @@ + test-passwd.o: $(UTILS_SRC)/visual.h + test-passwd.o: $(srcdir)/xscreensaver.h + test-randr.o: ../config.h ++test-screens.o: ../config.h ++test-screens.o: $(srcdir)/prefs.h ++test-screens.o: $(srcdir)/screens.c ++test-screens.o: $(srcdir)/types.h ++test-screens.o: $(UTILS_SRC)/visual.h ++test-screens.o: $(srcdir)/xscreensaver.h + test-uid.o: ../config.h + test-vp.o: ../config.h + test-xdpms.o: ../config.h +Index: xscreensaver/driver/XScreenSaver.ad.in +=================================================================== +--- xscreensaver.orig/driver/XScreenSaver.ad.in 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/XScreenSaver.ad.in 2008-07-17 00:07:00.000000000 +0200 +@@ -4,8 +4,8 @@ + ! a screen saver and locker for the X window system + ! by Jamie Zawinski + ! +-! version 5.05 +-! 01-Mar-2008 ++! version 5.06 ++! 05-Jul-2008 + ! + ! See "man xscreensaver" for more info. The latest version is always + ! available at http://www.jwz.org/xscreensaver/ +@@ -125,7 +125,8 @@ + + + ! This command is executed by the "New Login" button on the lock dialog. +-! (That button does not appear if this program does not exist.) ++! (That button does not appear on the dialog if this program does not exist.) ++! For Gnome: probably "gdmflexiserver -ls". KDE, probably "kdmctl reserve". + ! + @NEW_LOGIN_COMMAND_P@*newLoginCommand: @NEW_LOGIN_COMMAND@ + +Index: xscreensaver/driver/demo-Gtk.c +=================================================================== +--- xscreensaver.orig/driver/demo-Gtk.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/demo-Gtk.c 2008-07-17 00:07:00.000000000 +0200 +@@ -272,6 +272,9 @@ + void settings_cancel_cb (GtkButton *, gpointer user_data); + void settings_ok_cb (GtkButton *, gpointer user_data); + ++static void kill_gnome_screensaver (void); ++static void kill_kde_screensaver (void); ++ + + /* Some random utility functions + */ +@@ -482,9 +485,23 @@ + warning_dialog_dismiss_cb (widget, user_data); + } + ++static void warning_dialog_killg_cb (GtkWidget *widget, gpointer user_data) ++{ ++ kill_gnome_screensaver (); ++ warning_dialog_dismiss_cb (widget, user_data); ++} ++ ++static void warning_dialog_killk_cb (GtkWidget *widget, gpointer user_data) ++{ ++ kill_kde_screensaver (); ++ warning_dialog_dismiss_cb (widget, user_data); ++} ++ ++typedef enum { D_NONE, D_LAUNCH, D_GNOME, D_KDE } dialog_button; ++ + static void + warning_dialog (GtkWidget *parent, const char *message, +- Boolean restart_button_p, int center) ++ dialog_button button_type, int center) + { + char *msg = strdup (message); + char *head; +@@ -557,7 +574,7 @@ + label, TRUE, TRUE, 0); + + #ifdef HAVE_GTK2 +- if (restart_button_p) ++ if (button_type != D_NONE) + { + cancel = gtk_button_new_from_stock (GTK_STOCK_CANCEL); + gtk_container_add (GTK_CONTAINER (label), cancel); +@@ -571,7 +588,7 @@ + ok = gtk_button_new_with_label ("OK"); + gtk_container_add (GTK_CONTAINER (label), ok); + +- if (restart_button_p) ++ if (button_type != D_NONE) + { + cancel = gtk_button_new_with_label ("Cancel"); + gtk_container_add (GTK_CONTAINER (label), cancel); +@@ -582,22 +599,28 @@ + gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 10); + gtk_window_set_title (GTK_WINDOW (dialog), progclass); +- STFU GTK_WIDGET_SET_FLAGS (ok, GTK_CAN_DEFAULT); ++ GTK_WIDGET_SET_FLAGS (ok, GTK_CAN_DEFAULT); + gtk_widget_show (ok); + gtk_widget_grab_focus (ok); + + if (cancel) + { +- STFU GTK_WIDGET_SET_FLAGS (cancel, GTK_CAN_DEFAULT); ++ GTK_WIDGET_SET_FLAGS (cancel, GTK_CAN_DEFAULT); + gtk_widget_show (cancel); + } + gtk_widget_show (label); + gtk_widget_show (dialog); + +- if (restart_button_p) ++ if (button_type != D_NONE) + { +- gtk_signal_connect_object (GTK_OBJECT (ok), "clicked", +- GTK_SIGNAL_FUNC (warning_dialog_restart_cb), ++ GtkSignalFunc fn; ++ switch (button_type) { ++ case D_LAUNCH: fn = GTK_SIGNAL_FUNC (warning_dialog_restart_cb); break; ++ case D_GNOME: fn = GTK_SIGNAL_FUNC (warning_dialog_killg_cb); break; ++ case D_KDE: fn = GTK_SIGNAL_FUNC (warning_dialog_killk_cb); break; ++ default: abort(); break; ++ } ++ gtk_signal_connect_object (GTK_OBJECT (ok), "clicked", fn, + (gpointer) dialog); + gtk_signal_connect_object (GTK_OBJECT (cancel), "clicked", + GTK_SIGNAL_FUNC (warning_dialog_dismiss_cb), +@@ -644,7 +667,7 @@ + sprintf (buf, "Error:\n\n%s", err); + else + strcpy (buf, "Unknown error!"); +- warning_dialog (s->toplevel_widget, buf, False, 100); ++ warning_dialog (s->toplevel_widget, buf, D_NONE, 100); + } + if (err) free (err); + +@@ -685,7 +708,7 @@ + sprintf (buf, "Error:\n\n%s", err); + else + strcpy (buf, "Unknown error!"); +- warning_dialog (s->toplevel_widget, buf, False, 100); ++ warning_dialog (s->toplevel_widget, buf, D_NONE, 100); + } + } + else +@@ -700,7 +723,7 @@ + "The XScreenSaver daemon doesn't seem to be running\n" + "on display \"%s\". Launch it now?"), + d); +- warning_dialog (s->toplevel_widget, msg, True, 1); ++ warning_dialog (s->toplevel_widget, msg, D_LAUNCH, 1); + } + } + +@@ -875,7 +898,7 @@ + { + warning_dialog (s->toplevel_widget, + _("Error:\n\n" +- "No Help URL has been specified.\n"), False, 100); ++ "No Help URL has been specified.\n"), D_NONE, 100); + return; + } + +@@ -1001,7 +1024,7 @@ + else + strcat (buf, _("Please check your $PATH and permissions.")); + +- warning_dialog (s->toplevel_widget, buf, False, 1); ++ warning_dialog (s->toplevel_widget, buf, D_NONE, 1); + } + + force_dialog_repaint (s); +@@ -1038,12 +1061,12 @@ + if (!f || !*f) + warning_dialog (s->toplevel_widget, + _("Error:\n\nCouldn't determine init file name!\n"), +- False, 100); ++ D_NONE, 100); + else + { + char *b = (char *) malloc (strlen(f) + 1024); + sprintf (b, _("Error:\n\nCouldn't write %s\n"), f); +- warning_dialog (s->toplevel_widget, b, False, 100); ++ warning_dialog (s->toplevel_widget, b, D_NONE, 100); + free (b); + } + return -1; +@@ -1106,7 +1129,7 @@ + { + warning_dialog (GTK_WIDGET (button), + _("Error:\n\nno `manualCommand' resource set."), +- False, 100); ++ D_NONE, 100); + } + + free (oname); +@@ -1291,7 +1314,7 @@ + _("Error:\n\n" + "Unparsable time format: \"%s\"\n"), + line); +- warning_dialog (s->toplevel_widget, b, False, 100); ++ warning_dialog (s->toplevel_widget, b, D_NONE, 100); + } + else + *store = value; +@@ -1537,7 +1560,7 @@ + char b[255]; + sprintf (b, "Error:\n\n" "Directory does not exist: \"%s\"\n", + p2->image_directory); +- warning_dialog (s->toplevel_widget, b, False, 100); ++ warning_dialog (s->toplevel_widget, b, D_NONE, 100); + } + + +@@ -1808,7 +1831,7 @@ + char *str; + int list_elt; + +- STFU g_return_if_fail (!gdk_pointer_is_grabbed ()); ++ g_return_if_fail (!gdk_pointer_is_grabbed ()); + + str = gtk_tree_path_to_string (path); + list_elt = strtol (str, NULL, 10); +@@ -1996,7 +2019,7 @@ + { + char b[255]; + sprintf (b, _("Error:\n\n" "Directory does not exist: \"%s\"\n"), path); +- warning_dialog (GTK_WIDGET (top), b, False, 100); ++ warning_dialog (GTK_WIDGET (top), b, D_NONE, 100); + return; + } + +@@ -2026,7 +2049,7 @@ + { + char b[255]; + sprintf (b, _("Error:\n\n" "File does not exist: \"%s\"\n"), path); +- warning_dialog (GTK_WIDGET (top), b, False, 100); ++ warning_dialog (GTK_WIDGET (top), b, D_NONE, 100); + return; + } + +@@ -2057,7 +2080,7 @@ + { + char b[255]; + sprintf (b, _("Error:\n\n" "File does not exist: \"%s\"\n"), path); +- warning_dialog (GTK_WIDGET (top), b, False, 100); ++ warning_dialog (GTK_WIDGET (top), b, D_NONE, 100); + return; + } + # endif +@@ -3414,7 +3437,7 @@ + _("Warning:\n\n" + "file \"%s\" has changed, reloading.\n"), + f); +- warning_dialog (s->toplevel_widget, b, False, 100); ++ warning_dialog (s->toplevel_widget, b, D_NONE, 100); + free (b); + + load_init_file (dpy, p); +@@ -4247,6 +4270,77 @@ + #endif + + ++static Window ++gnome_screensaver_window (Screen *screen) ++{ ++ Display *dpy = DisplayOfScreen (screen); ++ Window root = RootWindowOfScreen (screen); ++ Window parent, *kids; ++ unsigned int nkids; ++ Window gnome_window = 0; ++ int i; ++ ++ if (! XQueryTree (dpy, root, &root, &parent, &kids, &nkids)) ++ abort (); ++ for (i = 0; i < nkids; i++) ++ { ++ Atom type; ++ int format; ++ unsigned long nitems, bytesafter; ++ unsigned char *name; ++ if (XGetWindowProperty (dpy, kids[i], XA_WM_COMMAND, 0, 128, ++ False, XA_STRING, &type, &format, &nitems, ++ &bytesafter, &name) ++ == Success ++ && type != None ++ && !strcmp ((char *) name, "gnome-screensaver")) ++ { ++ gnome_window = kids[i]; ++ break; ++ } ++ } ++ ++ if (kids) XFree ((char *) kids); ++ return gnome_window; ++} ++ ++static Bool ++gnome_screensaver_active_p (void) ++{ ++ Display *dpy = GDK_DISPLAY(); ++ Window w = gnome_screensaver_window (DefaultScreenOfDisplay (dpy)); ++ return (w ? True : False); ++} ++ ++static void ++kill_gnome_screensaver (void) ++{ ++ Display *dpy = GDK_DISPLAY(); ++ Window w = gnome_screensaver_window (DefaultScreenOfDisplay (dpy)); ++ if (w) XKillClient (dpy, (XID) w); ++} ++ ++static Bool ++kde_screensaver_active_p (void) ++{ ++ FILE *p = popen ("dcop kdesktop KScreensaverIface isEnabled 2>/dev/null", ++ "r"); ++ char buf[255]; ++ fgets (buf, sizeof(buf)-1, p); ++ pclose (p); ++ if (!strcmp (buf, "true\n")) ++ return True; ++ else ++ return False; ++} ++ ++static void ++kill_kde_screensaver (void) ++{ ++ system ("dcop kdesktop KScreensaverIface enable false"); ++} ++ ++ + static void + the_network_is_not_the_computer (state *s) + { +@@ -4360,12 +4454,36 @@ + + + if (*msg) +- warning_dialog (s->toplevel_widget, msg, True, 1); ++ warning_dialog (s->toplevel_widget, msg, D_LAUNCH, 1); + + if (rversion) free (rversion); + if (ruser) free (ruser); + if (rhost) free (rhost); + free (msg); ++ msg = 0; ++ ++ /* Note: since these dialogs are not modal, they will stack up. ++ So we do this check *after* popping up the "xscreensaver is not ++ running" dialog so that these are on top. Good enough. ++ */ ++ ++ if (gnome_screensaver_active_p ()) ++ warning_dialog (s->toplevel_widget, ++ _("Warning:\n\n" ++ "The GNOME screensaver daemon appears to be running.\n" ++ "It must be stopped for XScreenSaver to work properly.\n" ++ "\n" ++ "Stop the GNOME screen saver daemon now?\n"), ++ D_GNOME, 1); ++ ++ if (kde_screensaver_active_p ()) ++ warning_dialog (s->toplevel_widget, ++ _("Warning:\n\n" ++ "The KDE screen saver daemon appears to be running.\n" ++ "It must be stopped for XScreenSaver to work properly.\n" ++ "\n" ++ "Stop the KDE screen saver daemon now?\n"), ++ D_KDE, 1); + } + + +Index: xscreensaver/driver/exec.c +=================================================================== +--- xscreensaver.orig/driver/exec.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/exec.c 2008-07-17 00:07:00.000000000 +0200 +@@ -1,5 +1,5 @@ + /* exec.c --- executes a program in *this* pid, without an intervening process. +- * xscreensaver, Copyright (c) 1991-2006 Jamie Zawinski ++ * xscreensaver, Copyright (c) 1991-2008 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that +@@ -181,8 +181,7 @@ + int hairy_p; + + #ifndef VMS +- if (nice != 0) +- nice_process (nice_level); ++ nice_process (nice_level); + + hairy_p = !!strpbrk (command, "*?$&!<>[];`'\\\"="); + /* note: = is in the above because of the sh syntax "FOO=bar cmd". */ +Index: xscreensaver/driver/lock.c +=================================================================== +--- xscreensaver.orig/driver/lock.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/lock.c 2008-07-17 00:08:10.000000000 +0200 +@@ -1,5 +1,5 @@ + /* lock.c --- handling the password dialog for locking-mode. +- * xscreensaver, Copyright (c) 1993-2007 Jamie Zawinski ++ * xscreensaver, Copyright (c) 1993-2008 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that +@@ -179,7 +179,7 @@ + + extern void xss_authenticate(saver_info *si, Bool verbose_p); + +-static void ++static int + new_passwd_window (saver_info *si) + { + passwd_dialog_data *pw; +@@ -190,7 +190,7 @@ + + pw = (passwd_dialog_data *) calloc (1, sizeof(*pw)); + if (!pw) +- return; ++ return -1; + + /* Display the button only if the "newLoginCommand" pref is non-null. + */ +@@ -406,13 +406,14 @@ + } + + si->pw_data = pw; ++ return 0; + } + + + /** + * info_msg and prompt may be NULL. + */ +-static void ++static int + make_passwd_window (saver_info *si, + const char *info_msg, + const char *prompt, +@@ -428,11 +429,15 @@ + + cleanup_passwd_window (si); + ++ if (! ssi) /* WTF? Trying to prompt while no screens connected? */ ++ return -1; ++ + if (!si->pw_data) +- new_passwd_window (si); ++ if (new_passwd_window (si) < 0) ++ return -1; + + if (!(pw = si->pw_data)) +- return; ++ return -1; + + pw->ratio = 1.0; + +@@ -614,10 +619,11 @@ + actually be visible; this takes into account virtual viewports as + well as Xinerama. */ + { +- int x, y, w, h; +- get_screen_viewport (pw->prompt_screen, &x, &y, &w, &h, +- pw->previous_mouse_x, pw->previous_mouse_y, +- si->prefs.verbose_p); ++ saver_screen_info *ssi = &si->screens [mouse_screen (si)]; ++ int x = ssi->x; ++ int y = ssi->y; ++ int w = ssi->width; ++ int h = ssi->height; + if (si->prefs.debug_p) w /= 2; + pw->x = x + ((w + pw->width) / 2) - pw->width; + pw->y = y + ((h + pw->height) / 2) - pw->height; +@@ -678,6 +684,8 @@ + if (cmap) + XInstallColormap (si->dpy, cmap); + draw_passwd_window (si); ++ ++ return 0; + } + + +@@ -1463,6 +1471,7 @@ + static Bool any_mode_locked_p = False; + saver_preferences *p = &si->prefs; + int screen; ++ int real_nscreens = ScreenCount (si->dpy); + int event, error; + Bool status; + XErrorHandler old_handler; +@@ -1472,7 +1481,7 @@ + if (!XF86VidModeQueryExtension (si->dpy, &event, &error)) + return; + +- for (screen = 0; screen < (si->xinerama_p ? 1 : si->nscreens); screen++) ++ for (screen = 0; screen < real_nscreens; screen++) + { + XSync (si->dpy, False); + old_handler = XSetErrorHandler (ignore_all_errors_ehandler); +@@ -1509,12 +1518,13 @@ + #ifdef HAVE_XF86VMODE + saver_preferences *p = &si->prefs; + int screen; ++ int real_nscreens = ScreenCount (si->dpy); + int event, error; + + if (!XF86VidModeQueryExtension (si->dpy, &event, &error)) + return; + +- for (screen = 0; screen < si->nscreens; screen++) ++ for (screen = 0; screen < real_nscreens; screen++) + { + saver_screen_info *ssi = &si->screens[screen]; + int x, y; +@@ -1932,9 +1942,11 @@ + info_msg_trimmed = remove_trailing_whitespace(info_msg); + prompt_trimmed = remove_trailing_whitespace(prompt); + +- make_passwd_window(si, info_msg_trimmed, prompt_trimmed, +- auth_msgs[i].type == AUTH_MSGTYPE_PROMPT_ECHO +- ? True : False); ++ if (make_passwd_window(si, info_msg_trimmed, prompt_trimmed, ++ auth_msgs[i].type == AUTH_MSGTYPE_PROMPT_ECHO ++ ? True : False) ++ < 0) ++ goto fail; + + if (info_msg_trimmed) + free(info_msg_trimmed); +Index: xscreensaver/driver/passwd-kerberos.c +=================================================================== +--- xscreensaver.orig/driver/passwd-kerberos.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/passwd-kerberos.c 2008-07-17 00:07:00.000000000 +0200 +@@ -78,6 +78,10 @@ + static const char *tk_file; + #endif /* !HAVE_DARWIN */ + ++/* warning suppression: duplicated in passwd.c */ ++extern Bool kerberos_lock_init (int argc, char **argv, Bool verbose_p); ++extern Bool kerberos_passwd_valid_p (const char *typed_passwd, Bool verbose_p); ++ + + /* Called at startup to grab user, instance, and realm information + from the user's ticketfile (remember, name.inst@realm). Since we're +Index: xscreensaver/driver/passwd-pam.c +=================================================================== +--- xscreensaver.orig/driver/passwd-pam.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/passwd-pam.c 2008-07-17 00:07:00.000000000 +0200 +@@ -452,6 +452,14 @@ + + ret = si->unlock_cb(nmsgs, messages, &authresp, si); + ++ /* #### If the user times out, or hits ESC or Cancel, we return PAM_CONV_ERR, ++ and PAM logs this as an authentication failure. It would be nice if ++ there was some way to indicate that this was a "cancel" rather than ++ a "fail", so that it wouldn't show up in syslog, but I think the ++ only options are PAM_SUCCESS and PAM_CONV_ERR. (I think that ++ PAM_ABORT means "internal error", not "cancel".) Bleh. ++ */ ++ + if (ret == 0) + { + for (i = 0; i < nmsgs; ++i) +Index: xscreensaver/driver/pdf2jpeg.m +=================================================================== +--- xscreensaver.orig/driver/pdf2jpeg.m 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/pdf2jpeg.m 2008-07-17 00:07:00.000000000 +0200 +@@ -1,6 +1,6 @@ + /* pdf2jpeg -- converts a PDF file to a JPEG file, using Cocoa + * +- * Copyright (c) 2003 by Jamie Zawinski ++ * Copyright (c) 2003, 2008 by Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that +@@ -23,6 +23,7 @@ + const char *progname = argv[0]; + const char *infile = 0, *outfile = 0; + double compression = 0.85; ++ double scale = 1.0; + int verbose = 0; + int i; + +@@ -45,6 +46,18 @@ + } + compression = q / 100.0; + } ++ else if (!strcmp (argv[i], "-scale")) ++ { ++ float s; ++ if (1 != sscanf (argv[++i], " %f %c", &s, &c) || ++ s <= 0 || s > 50) ++ { ++ fprintf (stderr, "%s: scale must be 0.0 - 50.0 (%f)\n", ++ progname, s); ++ goto USAGE; ++ } ++ scale = s; ++ } + else if (!strcmp (argv[i], "-verbose")) + verbose++; + else if (!strcmp (argv[i], "-v") || +@@ -64,7 +77,7 @@ + { + USAGE: + fprintf (stderr, +- "usage: %s [-verbose] [-quality NN] " ++ "usage: %s [-verbose] [-scale N] [-quality NN] " + "infile.pdf outfile.jpg\n", + progname); + exit (1); +@@ -93,11 +106,16 @@ + NSPDFImageRep *pdf_rep = [NSPDFImageRep imageRepWithData:pdf_data]; + + // Create an NSImage instance +- NSImage *image = [[NSImage alloc] initWithSize:[pdf_rep size]]; ++ NSRect rect; ++ rect.size = [pdf_rep size]; ++ rect.size.width *= scale; ++ rect.size.height *= scale; ++ rect.origin.x = rect.origin.y = 0; ++ NSImage *image = [[NSImage alloc] initWithSize:rect.size]; + + // Draw the PDFImageRep in the NSImage + [image lockFocus]; +- [pdf_rep drawAtPoint:NSMakePoint(0.0,0.0)]; ++ [pdf_rep drawInRect:rect]; + [image unlockFocus]; + + // Load the NSImage's contents into an NSBitmapImageRep: +Index: xscreensaver/driver/prefs.c +=================================================================== +--- xscreensaver.orig/driver/prefs.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/prefs.c 2008-07-17 00:07:00.000000000 +0200 +@@ -1,5 +1,5 @@ + /* dotfile.c --- management of the ~/.xscreensaver file. +- * xscreensaver, Copyright (c) 1998-2006 Jamie Zawinski ++ * xscreensaver, Copyright (c) 1998-2008 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that +@@ -272,6 +272,7 @@ + "fadeTicks", + "captureStderr", + "captureStdout", /* not saved -- obsolete */ ++ "logFile", /* not saved */ + "ignoreUninstalledPrograms", + "font", + "dpmsEnabled", +@@ -808,6 +809,7 @@ + CHECK("fadeTicks") type = pref_int, i = p->fade_ticks; + CHECK("captureStderr") type = pref_bool, b = p->capture_stderr_p; + CHECK("captureStdout") continue; /* don't save */ ++ CHECK("logFile") continue; /* don't save */ + CHECK("ignoreUninstalledPrograms") + type = pref_bool, b = p->ignore_uninstalled_p; + +Index: xscreensaver/driver/screens.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ xscreensaver/driver/screens.c 2008-07-17 00:07:00.000000000 +0200 +@@ -0,0 +1,894 @@ ++/* screens.c --- dealing with RANDR, Xinerama, and VidMode Viewports. ++ * xscreensaver, Copyright (c) 1991-2008 Jamie Zawinski ++ * ++ * Permission to use, copy, modify, distribute, and sell this software and its ++ * documentation for any purpose is hereby granted without fee, provided that ++ * the above copyright notice appear in all copies and that both that ++ * copyright notice and this permission notice appear in supporting ++ * documentation. No representations are made about the suitability of this ++ * software for any purpose. It is provided "as is" without express or ++ * implied warranty. ++ */ ++ ++/* There are a bunch of different mechanisms for multiple monitors ++ * available in X. XScreenSaver needs to care about this for two ++ * reasons: first, to ensure that all visible areas go black; and ++ * second, so that the windows of screen savers exactly fill the ++ * glass of each monitor (instead of one saver spanning multiple ++ * monitors, or a monitor displaying only a sub-rectangle of the ++ * screen saver.) ++ * ++ * 1) Multi-screen: ++ * ++ * This is the original way. Each monitor gets its own display ++ * number. :0.0 is the first one, :0.1 is the next, etc. The ++ * value of $DISPLAY determines which screen windows open on by ++ * default. A single app can open windows on multiple screens ++ * with the same display connection, but windows cannot be moved ++ * from one screen to another. The mouse can be moved from one ++ * screen to another, though. Screens may be different depths ++ * (e.g., one can be TrueColor and one can be PseudoColor.) ++ * Screens cannot be resized or moved without restarting X. ++ * ++ * Everyone hates this way of doing things because of the ++ * inability to move a window from one screen to another without ++ * restarting the application. ++ * ++ * 2) Xinerama: ++ * ++ * There is a single giant root window that spans all the ++ * monitors. All monitors are the same depth, and windows can be ++ * moved around. Applications can learn which rectangles are ++ * actually visible on monitors by querying the Xinerama server ++ * extension. (If you don't do that, you end up with dialog ++ * boxes that try to appear in the middle of the screen actually ++ * spanning the gap between two monitors.) ++ * ++ * Xinerama doesn't work with DRI, which means that if you use ++ * it, you lose hardware acceleration on OpenGL programs. Also, ++ * screens can't be resized or moved without restarting X. ++ * ++ * 3) Vidmode Viewports: ++ * ++ * With this extension, the root window can be bigger than the ++ * monitor. Moving the mouse near the edges of the screen ++ * scrolls around, like a pan-and-scan movie. There can also be ++ * a hot key for changing the monitor's resolution (zooming ++ * in/out). ++ * ++ * Trying to combine this with Xinerama crashes the server, so ++ * you can only use this if you have only a single screen, or are ++ * in old-multi-screen mode. ++ * ++ * Also, half the time it doesn't work at all: it tends to lie ++ * about the size of the rectangle in use. ++ * ++ * 4) RANDR 1.0: ++ * ++ * The first version of the "Resize and Rotate" extension let you ++ * change the resolution of a screen on the fly. The root window ++ * would actually resize. However, it was also incompatible with ++ * Xinerama (did it crash, or just do nothing? I can't remember) ++ * so you needed to be in single-screen or old multi-screen mode. ++ * I believe RANDR could co-exist with Vidmode Viewports, but I'm ++ * not sure. ++ * ++ * 5) RANDR 1.2: ++ * ++ * Finally, RANDR added the functionality of Xinerama, plus some. ++ * Each X screen (in the sense of #1, "multi-screen") can have a ++ * number of sub-rectangles that are displayed on monitors, and ++ * each of those sub-rectangles can be displayed on more than one ++ * monitor. So it's possible (I think) to have a hybrid of ++ * multi-screen and Xinerama (e.g., to have two monitors running ++ * in one depth, and three monitors running in another?) ++ * Typically though, there will be a single X screen, with ++ * Xinerama-like division of that large root window onto multiple ++ * monitors. Also everything's dynamic: monitors can be added, ++ * removed, and resized at runtime. ++ * ++ * I believe that as of RANDR 1.2, the Xinerama extension still ++ * exists but only as a compatiblity layer: it's actually ++ * returning data from the RANDR extension. ++ * ++ * Though RANDR 1.2 allows the same image to be cloned onto more ++ * than one monitor, and also allows one monitor to show a ++ * subsection of something on another monitor (e.g., the ++ * rectangles can be enclosed or overlap). Since there's no way ++ * to put seperate savers on those duplicated-or-overlapping ++ * monitors, xscreensaver just ignores them (which allows them to ++ * display duplicates or overlaps). ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include ++ ++#ifdef HAVE_RANDR ++# include ++#endif /* HAVE_RANDR */ ++ ++#ifdef HAVE_XINERAMA ++# include ++#endif /* HAVE_XINERAMA */ ++ ++#ifdef HAVE_XF86VMODE ++# include ++#endif /* HAVE_XF86VMODE */ ++ ++/* This file doesn't need the Xt headers, so stub these types out... */ ++#undef XtPointer ++#define XtAppContext void* ++#define XrmDatabase void* ++#define XtIntervalId void* ++#define XtPointer void* ++#define Widget void* ++ ++#include "xscreensaver.h" ++#include "visual.h" ++ ++ ++typedef enum { S_SANE, S_ENCLOSED, S_DUPLICATE, S_OVERLAP, ++ S_OFFSCREEN, S_DISABLED } monitor_sanity; ++ ++/* 'typedef monitor' is in types.h */ ++struct _monitor { ++ int id; ++ char *desc; ++ Screen *screen; ++ int x, y, width, height; ++ monitor_sanity sanity; /* I'm not crazy you're the one who's crazy */ ++ int enemy; /* which monitor it overlaps or duplicates */ ++}; ++ ++static void ++free_monitors (monitor **monitors) ++{ ++ monitor **m2 = monitors; ++ if (! monitors) return; ++ while (*m2) ++ { ++ if ((*m2)->desc) free ((*m2)->desc); ++ free (*m2); ++ m2++; ++ } ++ free (monitors); ++} ++ ++ ++#ifdef HAVE_XINERAMA ++ ++static monitor ** ++xinerama_scan_monitors (Display *dpy) ++{ ++ Screen *screen = DefaultScreenOfDisplay (dpy); ++ int event, error, nscreens, i; ++ XineramaScreenInfo *xsi; ++ monitor **monitors; ++ ++ if (! XineramaQueryExtension (dpy, &event, &error)) ++ return 0; ++ ++ if (! XineramaIsActive (dpy)) ++ return 0; ++ ++ xsi = XineramaQueryScreens (dpy, &nscreens); ++ if (!xsi) return 0; ++ ++ monitors = (monitor **) calloc (nscreens + 1, sizeof(*monitors)); ++ if (!monitors) return 0; ++ ++ for (i = 0; i < nscreens; i++) ++ { ++ monitor *m = (monitor *) calloc (1, sizeof (monitor)); ++ monitors[i] = m; ++ m->id = i; ++ m->screen = screen; ++ m->x = xsi[i].x_org; ++ m->y = xsi[i].y_org; ++ m->width = xsi[i].width; ++ m->height = xsi[i].height; ++ } ++ return monitors; ++} ++ ++#endif /* HAVE_XINERAMA */ ++ ++ ++#ifdef HAVE_XF86VMODE ++ ++static monitor ** ++vidmode_scan_monitors (Display *dpy) ++{ ++ int event, error, nscreens, i; ++ monitor **monitors; ++ ++ /* Note that XF86VidModeGetViewPort() tends to be full of lies on laptops ++ that have a docking station or external monitor that runs in a different ++ resolution than the laptop's screen: ++ ++ http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=81593 ++ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=208417 ++ http://bugs.xfree86.org/show_bug.cgi?id=421 ++ ++ Presumably this is fixed by using RANDR instead of VidMode. ++ */ ++ ++# ifdef HAVE_XINERAMA ++ /* Attempts to use the VidMode extension when the Xinerama extension is ++ active can result in a server crash! Yay! */ ++ if (XQueryExtension (dpy, "XINERAMA", &error, &event, &error)) ++ return 0; ++# endif /* !HAVE_XINERAMA */ ++ ++ if (! XF86VidModeQueryExtension (dpy, &event, &error)) ++ return 0; ++ ++ nscreens = ScreenCount (dpy); ++ monitors = (monitor **) calloc (nscreens + 1, sizeof(*monitors)); ++ if (!monitors) return 0; ++ ++ for (i = 0; i < nscreens; i++) ++ { ++ monitor *m = (monitor *) calloc (1, sizeof (monitor)); ++ XF86VidModeModeLine ml; ++ int dot; ++ Screen *screen = ScreenOfDisplay (dpy, i); ++ ++ monitors[i] = m; ++ m->id = i; ++ m->screen = screen; ++ ++ if (! safe_XF86VidModeGetViewPort (dpy, i, &m->x, &m->y)) ++ m->x = m->y = -1; ++ ++ if (XF86VidModeGetModeLine (dpy, i, &dot, &ml)) ++ { ++ m->width = ml.hdisplay; ++ m->height = ml.vdisplay; ++ } ++ ++ /* Apparently, though the server stores the X position in increments of ++ 1 pixel, it will only make changes to the *display* in some other ++ increment. With XF86_SVGA on a Thinkpad, the display only updates ++ in multiples of 8 pixels when in 8-bit mode, and in multiples of 4 ++ pixels in 16-bit mode. I don't know what it does in 24- and 32-bit ++ mode, because I don't have enough video memory to find out. ++ ++ I consider it a bug that XF86VidModeGetViewPort() is telling me the ++ server's *target* scroll position rather than the server's *actual* ++ scroll position. David Dawes agrees, and says they may fix this in ++ XFree86 4.0, but it's notrivial. ++ ++ He also confirms that this behavior is server-dependent, so the ++ actual scroll position cannot be reliably determined by the client. ++ So... that means the only solution is to provide a ``sandbox'' ++ around the blackout window -- we make the window be up to N pixels ++ larger than the viewport on both the left and right sides. That ++ means some part of the outer edges of each hack might not be ++ visible, but screw it. ++ ++ I'm going to guess that 16 pixels is enough, and that the Y dimension ++ doesn't have this problem. ++ ++ The drawback of doing this, of course, is that some of the screenhacks ++ will still look pretty stupid -- for example, "slidescreen" will cut ++ off the left and right edges of the grid, etc. ++ */ ++# define FUDGE 16 ++ if (m->x > 0 && m->x < m->width - ml.hdisplay) ++ { ++ /* Not at left edge or right edge: ++ Round X position down to next lower multiple of FUDGE. ++ Increase width by 2*FUDGE in case some server rounds up. ++ */ ++ m->x = ((m->x - 1) / FUDGE) * FUDGE; ++ m->width += (FUDGE * 2); ++ } ++# undef FUDGE ++ } ++ ++ return monitors; ++} ++ ++#endif /* HAVE_XF86VMODE */ ++ ++ ++#ifdef HAVE_RANDR ++ ++static monitor ** ++randr_scan_monitors (Display *dpy) ++{ ++ int event, error, major, minor, nscreens, i, j; ++ monitor **monitors; ++ Bool new_randr_p = False; ++ ++ if (! XRRQueryExtension (dpy, &event, &error)) ++ return 0; ++ ++ if (! XRRQueryVersion (dpy, &major, &minor)) ++ return 0; ++ ++ if (major <= 0) /* Protocol was still in flux back then -- fuck it. */ ++ return 0; ++ ++# ifdef HAVE_RANDR_12 ++ new_randr_p = (major > 1 || (major == 1 && minor >= 2)); ++# endif ++ ++ if (! new_randr_p) ++ /* RANDR 1.0 -- no Xinerama-like virtual screens. */ ++ nscreens = ScreenCount (dpy); ++ else /* RANDR 1.2 or newer -- built-in Xinerama */ ++ { ++# ifdef HAVE_RANDR_12 ++ int xsc = ScreenCount (dpy); ++ nscreens = 0; ++ /* Add up the virtual screens on each X screen. */ ++ for (i = 0; i < xsc; i++) ++ { ++ XRRScreenResources *res = ++ XRRGetScreenResources (dpy, RootWindow (dpy, i)); ++ nscreens += res->noutput; ++ XRRFreeScreenResources (res); ++ } ++# endif /* HAVE_RANDR_12 */ ++ } ++ ++ monitors = (monitor **) calloc (nscreens + 1, sizeof(*monitors)); ++ if (!monitors) return 0; ++ ++ for (i = 0, j = 0; i < ScreenCount (dpy); i++) ++ { ++ Screen *screen = ScreenOfDisplay (dpy, j); ++ ++ if (! new_randr_p) /* RANDR 1.0 */ ++ { ++ XRRScreenConfiguration *rrc; ++ monitor *m = (monitor *) calloc (1, sizeof (monitor)); ++ monitors[i] = m; ++ m->screen = screen; ++ m->id = i; ++ ++ rrc = XRRGetScreenInfo (dpy, RootWindowOfScreen (screen)); ++ if (rrc) ++ { ++ SizeID size = -1; ++ Rotation rot = ~0; ++ XRRScreenSize *rrsizes; ++ int nsizes; ++ ++ size = XRRConfigCurrentConfiguration (rrc, &rot); ++ rrsizes = XRRConfigSizes (rrc, &nsizes); ++ ++ if (rot & (RR_Rotate_90|RR_Rotate_270)) ++ { ++ m->width = rrsizes[size].height; ++ m->height = rrsizes[size].width; ++ } ++ else ++ { ++ m->width = rrsizes[size].width; ++ m->height = rrsizes[size].height; ++ } ++ ++ /* don't free 'rrsizes' */ ++ XRRFreeScreenConfigInfo (rrc); ++ } ++ } ++ else /* RANDR 1.2 or newer */ ++ { ++# ifdef HAVE_RANDR_12 ++ int k; ++ XRRScreenResources *res = ++ XRRGetScreenResources (dpy, RootWindowOfScreen (screen)); ++ for (k = 0; k < res->noutput; k++) ++ { ++ monitor *m = (monitor *) calloc (1, sizeof (monitor)); ++ XRROutputInfo *rroi = XRRGetOutputInfo (dpy, res, ++ res->outputs[k]); ++ RRCrtc crtc = (rroi->crtc ? rroi->crtc : rroi->crtcs[0]); ++ XRRCrtcInfo *crtci = XRRGetCrtcInfo (dpy, res, crtc); ++ ++ monitors[j] = m; ++ m->screen = screen; ++ m->id = (i * 1000) + j; ++ m->desc = (rroi->name ? strdup (rroi->name) : 0); ++ m->x = crtci->x; ++ m->y = crtci->y; ++ ++ if (crtci->rotation & (RR_Rotate_90|RR_Rotate_270)) ++ { ++ m->width = crtci->height; ++ m->height = crtci->width; ++ } ++ else ++ { ++ m->width = crtci->width; ++ m->height = crtci->height; ++ } ++ ++ j++; ++ ++ if (rroi->connection == RR_Disconnected) ++ m->sanity = S_DISABLED; ++ /* #### do the same for RR_UnknownConnection? */ ++ ++ XRRFreeCrtcInfo (crtci); ++ XRRFreeOutputInfo (rroi); ++ } ++ XRRFreeScreenResources (res); ++# endif /* HAVE_RANDR_12 */ ++ } ++ } ++ ++ return monitors; ++} ++ ++#endif /* HAVE_RANDR */ ++ ++ ++static monitor ** ++basic_scan_monitors (Display *dpy) ++{ ++ int nscreens = ScreenCount (dpy); ++ int i; ++ monitor **monitors = (monitor **) calloc (nscreens + 1, sizeof(*monitors)); ++ if (!monitors) return 0; ++ ++ for (i = 0; i < nscreens; i++) ++ { ++ Screen *screen = ScreenOfDisplay (dpy, i); ++ monitor *m = (monitor *) calloc (1, sizeof (monitor)); ++ monitors[i] = m; ++ m->id = i; ++ m->screen = screen; ++ m->x = 0; ++ m->y = 0; ++ m->width = WidthOfScreen (screen); ++ m->height = HeightOfScreen (screen); ++ } ++ return monitors; ++} ++ ++ ++#ifdef DEBUG_MULTISCREEN ++ ++/* If DEBUG_MULTISCREEN is defined, then in "-debug" mode, xscreensaver ++ will pretend that it is changing the number of connected monitors ++ every few seconds, using the geometries in the following list, ++ for stress-testing purposes. ++ */ ++static monitor ** ++debug_scan_monitors (Display *dpy) ++{ ++ static const char * const geoms[] = { ++ "1600x1028+0+22", ++ "1024x768+0+22", ++ "800x600+0+22", ++ "800x600+0+22,800x600+800+22", ++ "800x600+0+22,800x600+800+22,800x600+300+622", ++ "800x600+0+22,800x600+800+22,800x600+0+622,800x600+800+622", ++ "640x480+0+22,640x480+640+22,640x480+0+502,640x480+640+502", ++ "640x480+240+22,640x480+0+502,640x480+640+502", ++ "640x480+0+200,640x480+640+200", ++ "800x600+400+22", ++ "320x200+0+22,320x200+320+22,320x200+640+22,320x200+960+22,320x200+0+222,320x200+320+222,320x200+640+222,320x200+960+222,320x200+0+422,320x200+320+422,320x200+640+422,320x200+960+422,320x200+0+622,320x200+320+622,320x200+640+622,320x200+960+622,320x200+0+822,320x200+320+822,320x200+640+822,320x200+960+822" ++ }; ++ static int index = 0; ++ monitor **monitors = (monitor **) calloc (100, sizeof(*monitors)); ++ int nscreens = 0; ++ Screen *screen = DefaultScreenOfDisplay (dpy); ++ ++ char *s = strdup (geoms[index]); ++ char *token = strtok (s, ","); ++ while (token) ++ { ++ monitor *m = calloc (1, sizeof (monitor)); ++ char c; ++ m->id = nscreens; ++ m->screen = screen; ++ if (4 != sscanf (token, "%dx%d+%d+%d%c", ++ &m->width, &m->height, &m->x, &m->y, &c)) ++ abort(); ++ m->width -= 2; ++ m->height -= 2; ++ monitors[nscreens++] = m; ++ token = strtok (0, ","); ++ } ++ free (s); ++ ++ index = (index+1) % countof(geoms); ++ return monitors; ++} ++ ++#endif /* DEBUG_MULTISCREEN */ ++ ++ ++#ifdef QUAD_MODE ++static monitor ** ++quadruple (monitor **monitors, Bool debug_p) ++{ ++ int i, j, count = 0; ++ monitor **monitors2; ++ while (monitors[count]) ++ count++; ++ monitors2 = (monitor **) calloc (count * 4 + 1, sizeof(*monitors)); ++ if (!monitors2) abort(); ++ ++ for (i = 0, j = 0; i < count; i++) ++ { ++ int k; ++ for (k = 0; k < 4; k++) ++ { ++ monitors2[j+k] = (monitor *) calloc (1, sizeof (monitor)); ++ *monitors2[j+k] = *monitors[i]; ++ monitors2[j+k]->width /= (debug_p ? 4 : 2); ++ monitors2[j+k]->height /= 2; ++ monitors2[j+k]->id = (monitors[i]->id * 4) + k; ++ monitors2[j+k]->name = (monitors[i]->name ++ ? strdup (monitors[i]->name) : 0); ++ } ++ monitors2[j+1]->x += monitors2[j]->width; ++ monitors2[j+2]->y += monitors2[j]->height; ++ monitors2[j+3]->x += monitors2[j]->width; ++ monitors2[j+3]->y += monitors2[j]->height; ++ j += 4; ++ } ++ ++ free_monitors (monitors); ++ return monitors2; ++} ++#endif /* QUAD_MODE */ ++ ++ ++static monitor ** ++scan_monitors (saver_info *si) ++{ ++ saver_preferences *p = &si->prefs; ++ monitor **monitors = 0; ++ ++# ifdef DEBUG_MULTISCREEN ++ if (! monitors) monitors = debug_scan_monitors (si->dpy); ++# endif ++ ++# ifdef HAVE_RANDR ++ if (! p->getviewport_full_of_lies_p) ++ if (! monitors) monitors = randr_scan_monitors (si->dpy); ++# endif ++ ++# ifdef HAVE_XF86VMODE ++ if (! monitors) monitors = vidmode_scan_monitors (si->dpy); ++# endif ++ ++# ifdef HAVE_XF86VMODE ++ if (! monitors) monitors = xinerama_scan_monitors (si->dpy); ++# endif ++ ++ if (! monitors) monitors = basic_scan_monitors (si->dpy); ++ ++# ifdef QUAD_MODE ++ if (p->quad_p) ++ monitors = quadruple (monitors, p->debug_p); ++# endif ++ ++ return monitors; ++} ++ ++ ++static Bool ++monitors_overlap_p (monitor *a, monitor *b) ++{ ++ /* Two rectangles overlap if the max of the tops is less than the ++ min of the bottoms and the max of the lefts is less than the min ++ of the rights. ++ */ ++# undef MAX ++# undef MIN ++# define MAX(A,B) ((A)>(B)?(A):(B)) ++# define MIN(A,B) ((A)<(B)?(A):(B)) ++ ++ int maxleft = MAX(a->x, b->x); ++ int maxtop = MAX(a->y, b->y); ++ int minright = MIN(a->x + a->width - 1, b->x + b->width); ++ int minbot = MIN(a->y + a->height - 1, b->y + b->height); ++ return (maxtop < minbot && maxleft < minright); ++} ++ ++ ++/* Mark the ones that overlap, etc. ++ */ ++static void ++check_monitor_sanity (monitor **monitors) ++{ ++ int i, j, count = 0; ++ ++ while (monitors[count]) ++ count++; ++ ++# define X1 monitors[i]->x ++# define X2 monitors[j]->x ++# define Y1 monitors[i]->y ++# define Y2 monitors[j]->y ++# define W1 monitors[i]->width ++# define W2 monitors[j]->width ++# define H1 monitors[i]->height ++# define H2 monitors[j]->height ++ ++ /* If a monitor is enclosed by any other monitor, that's insane. ++ */ ++ for (i = 0; i < count; i++) ++ for (j = 0; j < count; j++) ++ if (i != j && ++ monitors[i]->sanity == S_SANE && ++ monitors[j]->sanity == S_SANE && ++ X2 >= X1 && ++ Y2 >= Y1 && ++ (X2+W2) <= (X1+W1) && ++ (Y2+H2) <= (Y1+H1)) ++ { ++ if (X1 == X2 && ++ Y1 == Y2 && ++ W1 == W2 && ++ H1 == H2) ++ monitors[j]->sanity = S_DUPLICATE; ++ else ++ monitors[j]->sanity = S_ENCLOSED; ++ monitors[j]->enemy = i; ++ } ++ ++ /* After checking for enclosure, check for other lossage against earlier ++ monitors. We do enclosure first so that we make sure to pick the ++ larger one. ++ */ ++ for (i = 0; i < count; i++) ++ for (j = 0; j < i; j++) ++ { ++ if (monitors[i]->sanity != S_SANE) continue; /* already marked */ ++ if (monitors[j]->sanity != S_SANE) continue; ++ ++ if (monitors_overlap_p (monitors[i], monitors[j])) ++ { ++ monitors[i]->sanity = S_OVERLAP; ++ monitors[i]->enemy = j; ++ } ++ } ++ ++ /* Finally, make sure all monitors are enclosed by their X screen. ++ Xinerama sometimes reports 1024x768 VPs at -1936862040, -1953705044. ++ */ ++ for (i = 0; i < count; i++) ++ { ++ int sw = WidthOfScreen (monitors[i]->screen) * 2; ++ int sh = HeightOfScreen (monitors[i]->screen) * 2; ++ if (monitors[i]->sanity != S_SANE) continue; /* already marked */ ++ if (X1 < 0 || Y1 < 0 || ++ W1 <= 0 || H1 <= 0 || ++ X1+W1 > sw || Y1+H1 > sh) ++ { ++ monitors[i]->sanity = S_OFFSCREEN; ++ monitors[i]->enemy = 0; ++ } ++ } ++ ++# undef X1 ++# undef X2 ++# undef Y1 ++# undef Y2 ++# undef W1 ++# undef W2 ++# undef H1 ++# undef H2 ++} ++ ++ ++static Bool ++layouts_differ_p (monitor **a, monitor **b) ++{ ++ if (!a || !b) return True; ++ while (1) ++ { ++ if (!*a) break; ++ if (!*b) break; ++ if ((*a)->screen != (*b)->screen || ++ (*a)->x != (*b)->x || ++ (*a)->y != (*b)->y || ++ (*a)->width != (*b)->width || ++ (*a)->height != (*b)->height) ++ return True; ++ a++; ++ b++; ++ } ++ if (*a) return True; ++ if (*b) return True; ++ ++ return False; ++} ++ ++ ++void ++describe_monitor_layout (saver_info *si) ++{ ++ monitor **monitors = si->monitor_layout; ++ int count = 0; ++ int good_count = 0; ++ int bad_count = 0; ++ while (monitors[count]) ++ { ++ if (monitors[count]->sanity == S_SANE) ++ good_count++; ++ else ++ bad_count++; ++ count++; ++ } ++ ++ if (count == 0) ++ fprintf (stderr, "%s: no screens!\n", blurb()); ++ else ++ { ++ int i; ++ fprintf (stderr, "%s: screens in use: %d\n", blurb(), good_count); ++ for (i = 0; i < count; i++) ++ { ++ monitor *m = monitors[i]; ++ if (m->sanity != S_SANE) continue; ++ fprintf (stderr, "%s: %3d/%d: %dx%d+%d+%d", ++ blurb(), m->id, screen_number (m->screen), ++ m->width, m->height, m->x, m->y); ++ if (m->desc && *m->desc) fprintf (stderr, " (%s)", m->desc); ++ fprintf (stderr, "\n"); ++ } ++ if (bad_count > 0) ++ { ++ fprintf (stderr, "%s: rejected screens: %d\n", blurb(), bad_count); ++ for (i = 0; i < count; i++) ++ { ++ monitor *m = monitors[i]; ++ monitor *e = monitors[m->enemy]; ++ if (m->sanity == S_SANE) continue; ++ fprintf (stderr, "%s: %3d/%d: %dx%d+%d+%d", ++ blurb(), m->id, screen_number (m->screen), ++ m->width, m->height, m->x, m->y); ++ if (m->desc && *m->desc) fprintf (stderr, " (%s)", m->desc); ++ fprintf (stderr, " -- "); ++ switch (m->sanity) ++ { ++ case S_SANE: abort(); break; ++ case S_ENCLOSED: ++ fprintf (stderr, "enclosed by %d (%dx%d+%d+%d)\n", ++ e->id, e->width, e->height, e->x, e->y); ++ break; ++ case S_DUPLICATE: ++ fprintf (stderr, "duplicate of %d\n", e->id); ++ break; ++ case S_OVERLAP: ++ fprintf (stderr, "overlaps %d (%dx%d+%d+%d)\n", ++ e->id, e->width, e->height, e->x, e->y); ++ break; ++ case S_OFFSCREEN: ++ fprintf (stderr, "off screen (%dx%d)\n", ++ WidthOfScreen (e->screen), ++ HeightOfScreen (e->screen)); ++ break; ++ case S_DISABLED: ++ fprintf (stderr, "output disabled\n"); ++ break; ++ } ++ } ++ } ++ } ++} ++ ++ ++/* Synchronize the contents of si->ssi to the current state of the monitors. ++ Doesn't change anything if nothing has changed; otherwise, alters and ++ reuses existing saver_screen_info structs as much as possible. ++ Returns True if anything changed. ++ */ ++Bool ++update_screen_layout (saver_info *si) ++{ ++ monitor **monitors = scan_monitors (si); ++ int count = 0; ++ int good_count = 0; ++ int i, j; ++ int seen_screens[100] = { 0, }; ++ ++ if (! layouts_differ_p (monitors, si->monitor_layout)) ++ { ++ free_monitors (monitors); ++ return False; ++ } ++ ++ free_monitors (si->monitor_layout); ++ si->monitor_layout = monitors; ++ check_monitor_sanity (si->monitor_layout); ++ ++ while (monitors[count]) ++ { ++ if (monitors[count]->sanity == S_SANE) ++ good_count++; ++ count++; ++ } ++ ++ if (si->ssi_count == 0) ++ { ++ si->ssi_count = 10; ++ si->screens = (saver_screen_info *) ++ calloc (sizeof(*si->screens), si->ssi_count); ++ } ++ ++ if (si->ssi_count <= good_count) ++ { ++ si->ssi_count = good_count + 10; ++ si->screens = (saver_screen_info *) ++ realloc (si->screens, sizeof(*si->screens) * si->ssi_count); ++ memset (si->screens + si->nscreens, 0, ++ sizeof(*si->screens) * (si->ssi_count - si->nscreens)); ++ } ++ ++ if (! si->screens) abort(); ++ ++ si->nscreens = good_count; ++ ++ /* Regenerate the list of GL visuals as needed. */ ++ if (si->best_gl_visuals) ++ free (si->best_gl_visuals); ++ si->best_gl_visuals = 0; ++ ++ for (i = 0, j = 0; i < count; i++) ++ { ++ monitor *m = monitors[i]; ++ saver_screen_info *ssi = &si->screens[j]; ++ Screen *old_screen = ssi->screen; ++ int sn; ++ if (monitors[i]->sanity != S_SANE) continue; ++ ++ ssi->global = si; ++ ssi->number = j; ++ ++ sn = screen_number (m->screen); ++ ssi->screen = m->screen; ++ ssi->real_screen_number = sn; ++ ssi->real_screen_p = (seen_screens[sn] == 0); ++ seen_screens[sn]++; ++ ++ ssi->default_visual = ++ get_visual_resource (ssi->screen, "visualID", "VisualID", False); ++ ssi->current_visual = ssi->default_visual; ++ ssi->current_depth = visual_depth (ssi->screen, ssi->current_visual); ++ ++ /* If the screen changed (or if this is the first time) we need ++ a new toplevel shell for this screen's depth. ++ */ ++ if (ssi->screen != old_screen) ++ initialize_screen_root_widget (ssi); ++ ++ ssi->poll_mouse_last_root_x = -1; ++ ssi->poll_mouse_last_root_y = -1; ++ ++ ssi->x = m->x; ++ ssi->y = m->y; ++ ssi->width = m->width; ++ ssi->height = m->height; ++ ++# ifndef DEBUG_MULTISCREEN ++ { ++ saver_preferences *p = &si->prefs; ++ if (p->debug_p ++# ifdef QUAD_MODE ++ && !p->quad_p ++# endif ++ ) ++ ssi->width /= 2; ++ } ++# endif ++ ++ j++; ++ } ++ ++ si->default_screen = &si->screens[0]; ++ return True; ++} +Index: xscreensaver/driver/splash.c +=================================================================== +--- xscreensaver.orig/driver/splash.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/splash.c 2008-07-17 00:07:00.000000000 +0200 +@@ -1,4 +1,4 @@ +-/* xscreensaver, Copyright (c) 1991-2006 Jamie Zawinski ++/* xscreensaver, Copyright (c) 1991-2008 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that +@@ -170,6 +170,10 @@ + return; + + ssi = &si->screens[mouse_screen (si)]; ++ ++ if (!ssi || !ssi->screen) ++ return; /* WTF? Trying to splash while no screens connected? */ ++ + cmap = DefaultColormapOfScreen (ssi->screen); + + sp = (splash_dialog_data *) calloc (1, sizeof(*sp)); +@@ -376,7 +380,7 @@ + attrs.event_mask = (ExposureMask | ButtonPressMask | ButtonReleaseMask); + + { +- int sx, sy, w, h; ++ int sx = 0, sy = 0, w, h; + int mouse_x = 0, mouse_y = 0; + + { +@@ -393,7 +397,10 @@ + } + } + +- get_screen_viewport (ssi, &sx, &sy, &w, &h, mouse_x, mouse_y, False); ++ x = ssi->x; ++ y = ssi->y; ++ w = ssi->width; ++ h = ssi->height; + if (si->prefs.debug_p) w /= 2; + x = sx + (((w + sp->width) / 2) - sp->width); + y = sy + (((h + sp->height) / 2) - sp->height); +Index: xscreensaver/driver/stderr.c +=================================================================== +--- xscreensaver.orig/driver/stderr.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/stderr.c 2008-07-17 00:07:00.000000000 +0200 +@@ -1,5 +1,5 @@ + /* stderr.c --- capturing stdout/stderr output onto the screensaver window. +- * xscreensaver, Copyright (c) 1991-2006 Jamie Zawinski ++ * xscreensaver, Copyright (c) 1991-2008 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that +@@ -472,6 +472,47 @@ + } + + ++/* If the "-log file" command-line option has been specified, ++ open the file for append, and redirect stdout/stderr there. ++ This is called very early, before initialize_stderr(). ++ */ ++void ++stderr_log_file (saver_info *si) ++{ ++ int stdout_fd = 1; ++ int stderr_fd = 2; ++ const char *filename = get_string_resource (si->dpy, "logFile", "LogFile"); ++ int fd; ++ ++ if (!filename || !*filename) return; ++ ++ fd = open (filename, O_WRONLY | O_APPEND | O_CREAT, 0666); ++ ++ if (fd < 0) ++ { ++ char buf[255]; ++ FAIL: ++ sprintf (buf, "%.100s: %.100s", blurb(), filename); ++ perror (buf); ++ fflush (stderr); ++ fflush (stdout); ++ exit (1); ++ } ++ ++ fprintf (stderr, "%s: logging to file %s\n", blurb(), filename); ++ ++ if (dup2 (fd, stdout_fd) < 0) goto FAIL; ++ if (dup2 (fd, stderr_fd) < 0) goto FAIL; ++ ++ fprintf (stderr, "\n\n" ++ "##########################################################################\n" ++ "%s: logging to \"%s\" at %s\n" ++ "##########################################################################\n" ++ "\n", ++ blurb(), filename, timestring()); ++} ++ ++ + /* If there is anything in the stderr buffer, flush it to the real stderr. + This does no X operations. Call this when exiting to make sure any + last words actually show up. +@@ -487,8 +528,7 @@ + + stderr_callback ((XtPointer) si, &stderr_stdout_read_fd, 0); + +- if (stderr_buffer && +- stderr_tail && ++ if (stderr_tail && + stderr_buffer < stderr_tail) + { + *stderr_tail = 0; +Index: xscreensaver/driver/subprocs.c +=================================================================== +--- xscreensaver.orig/driver/subprocs.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/subprocs.c 2008-07-17 00:07:00.000000000 +0200 +@@ -851,7 +851,7 @@ + case 0: + close (ConnectionNumber (si->dpy)); /* close display fd */ + limit_subproc_memory (p->inferior_memory_limit, p->verbose_p); +- hack_subproc_environment (ssi); /* set $DISPLAY */ ++ hack_subproc_environment (ssi->screen, ssi->screensaver_window); + + if (p->verbose_p) + fprintf (stderr, "%s: %d: spawning \"%s\" in pid %lu.\n", +@@ -878,14 +878,22 @@ + } + + +-static void +-spawn_screenhack_1 (saver_screen_info *ssi, Bool first_time_p) ++void ++spawn_screenhack (saver_screen_info *ssi) + { + saver_info *si = ssi->global; + saver_preferences *p = &si->prefs; +- raise_window (si, first_time_p, True, False); + XFlush (si->dpy); + ++ if (!monitor_powered_on_p (si)) ++ { ++ if (si->prefs.verbose_p) ++ fprintf (stderr, ++ "%s: %d: X says monitor has powered down; " ++ "not launching a hack.\n", blurb(), ssi->number); ++ return; ++ } ++ + if (p->screenhacks_count) + { + screenhack *hack; +@@ -1017,55 +1025,28 @@ + break; + } + } +-} +- +- +-void +-spawn_screenhack (saver_info *si, Bool first_time_p) +-{ +- if (monitor_powered_on_p (si)) +- { +- int i; +- for (i = 0; i < si->nscreens; i++) +- { +- saver_screen_info *ssi = &si->screens[i]; +- spawn_screenhack_1 (ssi, first_time_p); +- } +- } +- else if (si->prefs.verbose_p) +- fprintf (stderr, +- "%s: X says monitor has powered down; " +- "not launching a hack.\n", blurb()); + +- store_saver_status (si); /* store current hack numbers */ ++ store_saver_status (si); /* store current hack number */ + } + + + void +-kill_screenhack (saver_info *si) ++kill_screenhack (saver_screen_info *ssi) + { +- int i; +- for (i = 0; i < si->nscreens; i++) +- { +- saver_screen_info *ssi = &si->screens[i]; +- if (ssi->pid) +- kill_job (si, ssi->pid, SIGTERM); +- ssi->pid = 0; +- } ++ saver_info *si = ssi->global; ++ if (ssi->pid) ++ kill_job (si, ssi->pid, SIGTERM); ++ ssi->pid = 0; + } + + + void +-suspend_screenhack (saver_info *si, Bool suspend_p) ++suspend_screenhack (saver_screen_info *ssi, Bool suspend_p) + { + #ifdef SIGSTOP /* older VMS doesn't have it... */ +- int i; +- for (i = 0; i < si->nscreens; i++) +- { +- saver_screen_info *ssi = &si->screens[i]; +- if (ssi->pid) +- kill_job (si, ssi->pid, (suspend_p ? SIGSTOP : SIGCONT)); +- } ++ saver_info *si = ssi->global; ++ if (ssi->pid) ++ kill_job (si, ssi->pid, (suspend_p ? SIGSTOP : SIGCONT)); + #endif /* SIGSTOP */ + } + +@@ -1137,7 +1118,7 @@ + + + void +-hack_subproc_environment (saver_screen_info *ssi) ++hack_subproc_environment (Screen *screen, Window saver_window) + { + /* Store $DISPLAY into the environment, so that the $DISPLAY variable that + the spawned processes inherit is correct. First, it must be on the same +@@ -1152,8 +1133,8 @@ + us to (eventually) run multiple hacks in Xinerama mode, where each hack + has the same $DISPLAY but a different piece of glass. + */ +- saver_info *si = ssi->global; +- const char *odpy = DisplayString (si->dpy); ++ Display *dpy = DisplayOfScreen (screen); ++ const char *odpy = DisplayString (dpy); + char *ndpy = (char *) malloc (strlen(odpy) + 20); + char *nssw = (char *) malloc (40); + char *s, *c; +@@ -1170,10 +1151,9 @@ + while (isdigit(*s)) s++; /* skip over dpy number */ + while (*s == '.') s++; /* skip over dot */ + if (s[-1] != '.') *s++ = '.'; /* put on a dot */ +- sprintf(s, "%d", ssi->real_screen_number); /* put on screen number */ ++ sprintf(s, "%d", screen_number (screen)); /* put on screen number */ + +- sprintf (nssw, "XSCREENSAVER_WINDOW=0x%lX", +- (unsigned long) ssi->screensaver_window); ++ sprintf (nssw, "XSCREENSAVER_WINDOW=0x%lX", (unsigned long) saver_window); + + /* Allegedly, BSD 4.3 didn't have putenv(), but nobody runs such systems + any more, right? It's not Posix, but everyone seems to have it. */ +@@ -1194,9 +1174,8 @@ + /* GL crap */ + + Visual * +-get_best_gl_visual (saver_screen_info *ssi) ++get_best_gl_visual (saver_info *si, Screen *screen) + { +- saver_info *si = ssi->global; + pid_t forked; + int fds [2]; + int in, out; +@@ -1217,6 +1196,11 @@ + in = fds [0]; + out = fds [1]; + ++ block_sigchld(); /* This blocks it in the parent and child, to avoid ++ racing. It is never unblocked in the child before ++ the child exits, but that doesn't matter. ++ */ ++ + switch ((int) (forked = fork ())) + { + case -1: +@@ -1237,7 +1221,7 @@ + perror ("could not dup() a new stdout:"); + return 0; + } +- hack_subproc_environment (ssi); /* set $DISPLAY */ ++ hack_subproc_environment (screen, 0); /* set $DISPLAY */ + + execvp (av[0], av); /* shouldn't return. */ + +@@ -1270,6 +1254,8 @@ + /* Wait for the child to die. */ + waitpid (-1, &wait_status, 0); + ++ unblock_sigchld(); /* child is dead and waited, unblock now. */ ++ + if (1 == sscanf (buf, "0x%lx %c", &v, &c)) + result = (int) v; + +@@ -1291,12 +1277,13 @@ + } + else + { +- Visual *v = id_to_visual (ssi->screen, result); ++ Visual *v = id_to_visual (screen, result); + if (si->prefs.verbose_p) + fprintf (stderr, "%s: %d: %s: GL visual is 0x%X%s.\n", +- blurb(), ssi->number, ++ blurb(), screen_number (screen), + av[0], result, +- (v == ssi->default_visual ? " (default)" : "")); ++ (v == DefaultVisualOfScreen (screen) ++ ? " (default)" : "")); + return v; + } + } +Index: xscreensaver/driver/test-passwd.c +=================================================================== +--- xscreensaver.orig/driver/test-passwd.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/test-passwd.c 2008-07-17 00:07:00.000000000 +0200 +@@ -1,4 +1,4 @@ +-/* xscreensaver, Copyright (c) 1998-2007 Jamie Zawinski ++/* xscreensaver, Copyright (c) 1998-2008 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that +@@ -65,21 +65,6 @@ + Atom XA_SCREENSAVER, XA_DEMO, XA_PREFS; + + void +-get_screen_viewport (saver_screen_info *ssi, +- int *x_ret, int *y_ret, +- int *w_ret, int *h_ret, +- int tx, int ty, +- Bool verbose_p) +-{ +- *x_ret = 0; +- *y_ret = 0; +- *w_ret = WidthOfScreen (ssi->screen); +- *h_ret = HeightOfScreen (ssi->screen); +- +- if (*w_ret > *h_ret * 2) *w_ret /= 2; /* xinerama kludge */ +-} +- +-void + idle_timer (XtPointer closure, XtIntervalId *id) + { + saver_info *si = (saver_info *) closure; +@@ -230,8 +215,6 @@ + visual_depth(si->default_screen->screen, + si->default_screen->current_visual); + +- /* I could call get_screen_viewport(), but it is not worthwhile. +- * These are used by the save_under pixmap. */ + ssip.width = WidthOfScreen(ssip.screen); + ssip.height = HeightOfScreen(ssip.screen); + +@@ -246,6 +229,9 @@ + pw = getpwuid (getuid ()); + si->user = strdup (pw->pw_name); + ++/* si->nscreens = 0; ++ si->screens = si->default_screen = 0; */ ++ + while (1) + { + #ifndef NO_LOCKING +Index: xscreensaver/driver/test-randr.c +=================================================================== +--- xscreensaver.orig/driver/test-randr.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/test-randr.c 2008-07-17 00:07:00.000000000 +0200 +@@ -1,5 +1,5 @@ + /* test-randr.c --- playing with the Resize And Rotate extension. +- * xscreensaver, Copyright (c) 2004, 2005 Jamie Zawinski ++ * xscreensaver, Copyright (c) 2004-2008 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that +@@ -233,6 +233,43 @@ + fprintf(stderr, "%s: XRRGetScreenInfo(dpy, %d) ==> NULL\n", + blurb(), i); + } ++ ++ ++# ifdef HAVE_RANDR_12 ++ if (major > 1 || (major == 1 && minor >= 2)) ++ { ++ int j; ++ XRRScreenResources *res = ++ XRRGetScreenResources (dpy, RootWindow (dpy, i)); ++ fprintf (stderr, "\n"); ++ for (j = 0; j < res->noutput; j++) ++ { ++ int k; ++ XRROutputInfo *rroi = ++ XRRGetOutputInfo (dpy, res, res->outputs[j]); ++ fprintf (stderr, "%s: Output %d: %s: %s (%d)\n", blurb(), j, ++ rroi->name, ++ (rroi->connection == RR_Disconnected ? "disconnected" : ++ rroi->connection == RR_UnknownConnection ? "unknown" : ++ "connected"), ++ (int) rroi->crtc); ++ for (k = 0; k < rroi->ncrtc; k++) ++ { ++ XRRCrtcInfo *crtci = XRRGetCrtcInfo (dpy, res, ++ rroi->crtcs[k]); ++ fprintf(stderr, "%s: %c CRTC %d (%d): %dx%d+%d+%d\n", ++ blurb(), ++ (rroi->crtc == rroi->crtcs[k] ? '+' : ' '), ++ k, (int) rroi->crtcs[k], ++ crtci->width, crtci->height, crtci->x, crtci->y); ++ XRRFreeCrtcInfo (crtci); ++ } ++ XRRFreeOutputInfo (rroi); ++ fprintf (stderr, "\n"); ++ } ++ XRRFreeScreenResources (res); ++ } ++# endif /* HAVE_RANDR_12 */ + } + + if (major > 0) +Index: xscreensaver/driver/test-screens.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ xscreensaver/driver/test-screens.c 2008-07-17 00:07:00.000000000 +0200 +@@ -0,0 +1,196 @@ ++/* test-screens.c --- some test cases for the "monitor sanity" checks. ++ * xscreensaver, Copyright (c) 2008 Jamie Zawinski ++ * ++ * Permission to use, copy, modify, distribute, and sell this software and its ++ * documentation for any purpose is hereby granted without fee, provided that ++ * the above copyright notice appear in all copies and that both that ++ * copyright notice and this permission notice appear in supporting ++ * documentation. No representations are made about the suitability of this ++ * software for any purpose. It is provided "as is" without express or ++ * implied warranty. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include ++ ++/* This file doesn't need the Xt headers, so stub these types out... */ ++#undef XtPointer ++#define XtAppContext void* ++#define XrmDatabase void* ++#define XtIntervalId void* ++#define XtPointer void* ++#define Widget void* ++ ++#include "xscreensaver.h" ++#include "visual.h" ++ ++#undef WidthOfScreen ++#undef HeightOfScreen ++#define WidthOfScreen(s) 10240 ++#define HeightOfScreen(s) 10240 ++ ++#undef screen_number ++#define screen_number(s) (0) ++ ++#include "screens.c" /* to get at static void check_monitor_sanity() */ ++ ++char *progname = 0; ++char *progclass = "XScreenSaver"; ++ ++const char *blurb(void) { return progname; } ++ ++Bool safe_XF86VidModeGetViewPort(Display *d, int i, int *x, int *y) { abort(); } ++void initialize_screen_root_widget(saver_screen_info *ssi) { abort(); } ++Visual *get_best_gl_visual (saver_info *si, Screen *sc) { abort(); } ++ ++ ++static const char * ++failstr (monitor_sanity san) ++{ ++ switch (san) { ++ case S_SANE: return "OK"; ++ case S_ENCLOSED: return "ENC"; ++ case S_DUPLICATE: return "DUP"; ++ case S_OVERLAP: return "OVR"; ++ case S_OFFSCREEN: return "OFF"; ++ case S_DISABLED: return "DIS"; ++ } ++} ++ ++ ++static void ++test (int testnum, const char *screens, const char *desired) ++{ ++ monitor *monitors[100]; ++ char result[2048]; ++ char *out = result; ++ int i, nscreens = 0; ++ char *token = strtok (strdup(screens), ","); ++ while (token) ++ { ++ monitor *m = calloc (1, sizeof (monitor)); ++ char c; ++ m->id = (testnum * 1000) + nscreens; ++ if (4 != sscanf (token, "%dx%d+%d+%d%c", ++ &m->width, &m->height, &m->x, &m->y, &c)) ++ { ++ fprintf (stderr, "%s: unparsable geometry: %s\n", blurb(), token); ++ exit (1); ++ } ++ monitors[nscreens] = m; ++ nscreens++; ++ token = strtok (0, ","); ++ } ++ monitors[nscreens] = 0; ++ ++ check_monitor_sanity (monitors); ++ ++ *out = 0; ++ for (i = 0; i < nscreens; i++) ++ { ++ monitor *m = monitors[i]; ++ if (out != result) *out++ = ','; ++ if (m->sanity == S_SANE) ++ sprintf (out, "%dx%d+%d+%d", m->width, m->height, m->x, m->y); ++ else ++ strcpy (out, failstr (m->sanity)); ++ out += strlen(out); ++ } ++ *out = 0; ++ ++ if (!strcmp (result, desired)) ++ fprintf (stderr, "%s: test %2d OK\n", blurb(), testnum); ++ else ++ fprintf (stderr, "%s: test %2d FAILED:\n" ++ "%s: given: %s\n" ++ "%s: wanted: %s\n" ++ "%s: got: %s\n", ++ blurb(), testnum, ++ blurb(), screens, ++ blurb(), desired, ++ blurb(), result); ++ ++# if 0 ++ { ++ saver_info SI; ++ SI.monitor_layout = monitors; ++ describe_monitor_layout (&SI); ++ } ++# endif ++ ++} ++ ++static void ++run_tests(void) ++{ ++ int i = 1; ++# define A(a) test (i++, a, a); ++# define B(a,b) test (i++, a, b) ++ ++ A(""); ++ A("1024x768+0+0"); ++ A("1024x768+0+0,1024x768+1024+0"); ++ A("1024x768+0+0,1024x768+0+768"); ++ A("1024x768+0+0,1024x768+0+768,1024x768+1024+0"); ++ ++ B("1024x768+999999+0", ++ "OFF"); ++ B("1024x768+-999999+-999999", ++ "OFF"); ++ B("1024x768+0+0,1024x768+0+0", ++ "1024x768+0+0,DUP"); ++ B("1024x768+0+0,1024x768+0+0,1024x768+0+0", ++ "1024x768+0+0,DUP,DUP"); ++ B("1024x768+0+0,1024x768+1024+0,1024x768+0+0", ++ "1024x768+0+0,1024x768+1024+0,DUP"); ++ B("1280x1024+0+0,1024x768+0+64,800x600+0+0,640x480+0+0,720x400+0+0", ++ "1280x1024+0+0,ENC,ENC,ENC,ENC"); ++ B("1024x768+0+64,1280x1024+0+0,800x600+0+0,640x480+0+0,800x600+0+0,720x400+0+0", ++ "ENC,1280x1024+0+0,ENC,ENC,ENC,ENC"); ++ B("1024x768+0+64,1280x1024+0+0,800x600+0+0,640x480+0+0,1280x1024+0+0,720x400+0+0", ++ "ENC,1280x1024+0+0,ENC,ENC,DUP,ENC"); ++ B("720x400+0+0,640x480+0+0,800x600+0+0,1024x768+0+64,1280x1024+0+0", ++ "ENC,ENC,ENC,ENC,1280x1024+0+0"); ++ B("1280x1024+0+0,800x600+1280+0,800x600+1300+0", ++ "1280x1024+0+0,800x600+1280+0,OVR"); ++ B("1280x1024+0+0,800x600+1280+0,800x600+1300+0,1280x1024+0+0,800x600+1280+0", ++ "1280x1024+0+0,800x600+1280+0,OVR,DUP,DUP"); ++ ++ /* +-------------+----+ +------+---+ 1: 1440x900, widescreen display ++ | : | | 3+4 : | 2: 1280x1024, conventional display ++ | 1+2 : 1 | +......+ | 3: 1024x768, laptop ++ | : | | 3 | 4: 800x600, external projector ++ +.............+----+ +----------+ ++ | 2 | ++ | | ++ +-------------+ ++ */ ++ B("1440x900+0+0,1280x1024+0+0,1024x768+1440+0,800x600+1440+0", ++ "1440x900+0+0,OVR,1024x768+1440+0,ENC"); ++ B("800x600+0+0,800x600+0+0,800x600+800+0", ++ "800x600+0+0,DUP,800x600+800+0"); ++ B("1600x1200+0+0,1360x768+0+0", ++ "1600x1200+0+0,ENC"); ++} ++ ++ ++int ++main (int argc, char **argv) ++{ ++ char *s; ++ progname = argv[0]; ++ s = strrchr(progname, '/'); ++ if (s) progname = s+1; ++ if (argc != 1) ++ { ++ fprintf (stderr, "usage: %s\n", argv[0]); ++ exit (1); ++ } ++ ++ run_tests(); ++ ++ exit (0); ++} +Index: xscreensaver/driver/timers.c +=================================================================== +--- xscreensaver.orig/driver/timers.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/timers.c 2008-07-17 00:07:00.000000000 +0200 +@@ -264,14 +264,18 @@ + } + else + { ++ int i; + maybe_reload_init_file (si); +- kill_screenhack (si); ++ for (i = 0; i < si->nscreens; i++) ++ kill_screenhack (&si->screens[i]); ++ ++ raise_window (si, True, True, False); + + if (!si->throttled_p) +- spawn_screenhack (si, False); ++ for (i = 0; i < si->nscreens; i++) ++ spawn_screenhack (&si->screens[i]); + else + { +- raise_window (si, True, True, False); + if (p->verbose_p) + fprintf (stderr, "%s: not launching new hack (throttled.)\n", + blurb()); +@@ -1010,28 +1014,17 @@ + if (event.type == (si->randr_event_number + RRScreenChangeNotify)) + { + /* The Resize and Rotate extension sends an event when the +- size, rotation, or refresh rate of the screen has changed. */ +- ++ size, rotation, or refresh rate of any screen has changed. ++ */ + XRRScreenChangeNotifyEvent *xrr_event = + (XRRScreenChangeNotifyEvent *) &event; +- /* XRRRootToScreen is in Xrandr.h 1.4, 2001/06/07 */ +- int screen = XRRRootToScreen (si->dpy, xrr_event->window); + + if (p->verbose_p) + { +- if (si->screens[screen].width == xrr_event->width && +- si->screens[screen].height == xrr_event->height) +- fprintf (stderr, +- "%s: %d: no-op screen size change event (%dx%d)\n", +- blurb(), screen, +- xrr_event->width, xrr_event->height); +- else +- fprintf (stderr, +- "%s: %d: screen size changed from %dx%d to %dx%d\n", +- blurb(), screen, +- si->screens[screen].width, +- si->screens[screen].height, +- xrr_event->width, xrr_event->height); ++ /* XRRRootToScreen is in Xrandr.h 1.4, 2001/06/07 */ ++ int screen = XRRRootToScreen (si->dpy, xrr_event->window); ++ fprintf (stderr, "%s: %d: screen change event received\n", ++ blurb(), screen); + } + + # ifdef RRScreenChangeNotifyMask +@@ -1040,7 +1033,15 @@ + # endif /* RRScreenChangeNotifyMask */ + + /* Resize the existing xscreensaver windows and cached ssi data. */ +- resize_screensaver_window (si); ++ if (update_screen_layout (si)) ++ { ++ if (p->verbose_p) ++ { ++ fprintf (stderr, "%s: new layout:\n", blurb()); ++ describe_monitor_layout (si); ++ } ++ resize_screensaver_window (si); ++ } + } + else + #endif /* HAVE_RANDR */ +@@ -1401,11 +1402,13 @@ + if (screenhack_running_p (si) && + !monitor_powered_on_p (si)) + { ++ int i; + if (si->prefs.verbose_p) + fprintf (stderr, + "%s: X says monitor has powered down; " + "killing running hacks.\n", blurb()); +- kill_screenhack (si); ++ for (i = 0; i < si->nscreens; i++) ++ kill_screenhack (&si->screens[i]); + } + + /* Re-schedule this timer. The watchdog timer defaults to a bit less +Index: xscreensaver/driver/types.h +=================================================================== +--- xscreensaver.orig/driver/types.h 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/types.h 2008-07-17 00:07:00.000000000 +0200 +@@ -1,7 +1,4 @@ +-/* types.h +- * +- * This file is part of XScreenSaver, +- * Copyright (c) 1993-2004 Jamie Zawinski ++/* xscreensaver, Copyright (c) 1993-2008 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that +@@ -12,20 +9,19 @@ + * implied warranty. + */ + +-#ifndef TYPES_H +-#define TYPES_H ++#ifndef __XSCREENSAVER_TYPES_H__ ++#define __XSCREENSAVER_TYPES_H__ + + typedef struct saver_info saver_info; + +-/* Unlock states. Old pw_* equivalents in square brackets: +- * ul_read - reading input (or ready to do so) [pw_read] +- * ul_success - auth success, unlock the screen [pw_ok] +- * ul_fail - authentication failed [pw_fail] +- * ul_cancel - user cancelled auth [pw_cancel or pw_null] +- * ul_time - timed out, user took too long [pw_time] +- * ul_finished - user pressed enter on the current prompt, process input +- */ +-enum unlock_state { ul_read, ul_success, ul_fail, ul_cancel, ul_time, ul_finished }; ++typedef enum { ++ ul_read, /* reading input or ready to do so */ ++ ul_success, /* auth success, unlock */ ++ ul_fail, /* auth fail */ ++ ul_cancel, /* user cancelled auth (pw_cancel or pw_null) */ ++ ul_time, /* timed out */ ++ ul_finished /* user pressed enter */ ++} unlock_state; + + typedef struct screenhack screenhack; + struct screenhack { +@@ -56,6 +52,7 @@ + typedef struct saver_screen_info saver_screen_info; + typedef struct passwd_dialog_data passwd_dialog_data; + typedef struct splash_dialog_data splash_dialog_data; ++typedef struct _monitor monitor; + + + /* This structure holds all the user-specified parameters, read from the +@@ -158,9 +155,11 @@ + saver_preferences prefs; + + int nscreens; ++ int ssi_count; + saver_screen_info *screens; + saver_screen_info *default_screen; /* ...on which dialogs will appear. */ +- ++ monitor **monitor_layout; /* private to screens.c */ ++ Visual **best_gl_visuals; /* visuals for GL hacks on screen N */ + + /* ======================================================================= + global connection info +@@ -173,7 +172,6 @@ + server extension info + ======================================================================= */ + +- Bool xinerama_p; /* Whether Xinerama is in use. */ + Bool using_xidle_extension; /* which extension is being used. */ + Bool using_mit_saver_extension; /* Note that `p->use_*' is the *request*, */ + Bool using_sgi_saver_extension; /* and `si->using_*' is the *reality*. */ +@@ -247,7 +245,7 @@ + char *user; /* The user whose session is locked. */ + char *cached_passwd; /* Cached password, used to avoid multiple + prompts for password-only auth mechanisms.*/ +- enum unlock_state unlock_state; ++ unlock_state unlock_state; + + auth_conv_cb_t unlock_cb; /* The function used to prompt for creds. */ + void (*auth_finished_cb) (saver_info *si); +@@ -349,7 +347,6 @@ + int current_depth; /* How deep the visual (and the window) are. */ + + Visual *default_visual; /* visual to use when none other specified */ +- Visual *best_gl_visual; /* visual to use for GL hacks */ + + Window real_vroot; /* The original virtual-root window. */ + Window real_vroot_value; /* What was in the __SWM_VROOT property. */ +@@ -407,4 +404,4 @@ + }; + + +-#endif ++#endif /* __XSCREENSAVER_TYPES_H__ */ +Index: xscreensaver/driver/windows.c +=================================================================== +--- xscreensaver.orig/driver/windows.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/windows.c 2008-07-17 00:07:00.000000000 +0200 +@@ -226,6 +226,14 @@ + } + + ++static void ++ungrab_keyboard_and_mouse (saver_info *si) ++{ ++ ungrab_mouse (si); ++ ungrab_kbd (si); ++} ++ ++ + static Bool + grab_keyboard_and_mouse (saver_info *si, Window window, Cursor cursor, + int screen_no) +@@ -291,18 +299,15 @@ + */ + + if (kstatus != GrabSuccess) /* Do not blank without a kbd grab. */ +- return False; ++ { ++ /* If we didn't get both grabs, release the one we did get. */ ++ ungrab_keyboard_and_mouse (si); ++ return False; ++ } + + return True; /* Grab is good, go ahead and blank. */ + } + +-static void +-ungrab_keyboard_and_mouse (saver_info *si) +-{ +- ungrab_mouse (si); +- ungrab_kbd (si); +-} +- + + int + move_mouse_grab (saver_info *si, Window to, Cursor cursor, int to_screen_no) +@@ -393,6 +398,21 @@ + (char *) id); + status = True; + } ++ ++ else if (XGetWindowProperty (dpy, kids[i], XA_WM_COMMAND, 0, 128, ++ False, XA_STRING, &type, &format, &nitems, ++ &bytesafter, &version) ++ == Success ++ && type != None ++ && !strcmp ((char *) version, "gnome-screensaver")) ++ { ++ fprintf (stderr, ++ "%s: \"%s\" is already running on display %s (window 0x%x)\n", ++ blurb(), (char *) version, ++ DisplayString (dpy), (int) kids [i]); ++ status = True; ++ break; ++ } + } + + if (kids) XFree ((char *) kids); +@@ -445,11 +465,6 @@ + + static Bool safe_XKillClient (Display *dpy, XID id); + +-#ifdef HAVE_XF86VMODE +-static Bool safe_XF86VidModeGetViewPort (Display *, int, int *, int *); +-#endif /* HAVE_XF86VMODE */ +- +- + static void + kill_xsetroot_data_1 (Display *dpy, Window window, + Atom prop, const char *atom_name, +@@ -607,7 +622,8 @@ + fprintf (stderr, + "%s: restoring __SWM_VROOT property on the real vroot (0x%lx).\n", + blurb(), (unsigned long) ssi->real_vroot); +- remove_vroot_property (si->dpy, ssi->screensaver_window); ++ if (ssi->screensaver_window) ++ remove_vroot_property (si->dpy, ssi->screensaver_window); + if (ssi->real_vroot) + { + store_vroot_property (si->dpy, ssi->real_vroot, ssi->real_vroot_value); +@@ -812,8 +828,10 @@ + + if (si->screen_blanked_p) + { ++ int i; ++ for (i = 0; i < si->nscreens; i++) ++ kill_screenhack (&si->screens[i]); + unblank_screen (si); +- kill_screenhack (si); + XSync (si->dpy, False); + } + +@@ -999,232 +1017,6 @@ + } + + +- +-/* Returns the area of the screen which the xscreensaver window should cover. +- Normally this is the whole screen, but if the X server's root window is +- actually larger than the monitor's displayable area, then we want to +- operate in the currently-visible portion of the desktop instead. +- */ +-void +-get_screen_viewport (saver_screen_info *ssi, +- int *x_ret, int *y_ret, +- int *w_ret, int *h_ret, +- int target_x, int target_y, +- Bool verbose_p) +-{ +- int w = WidthOfScreen (ssi->screen); +- int h = HeightOfScreen (ssi->screen); +- +-# ifdef HAVE_XF86VMODE +- saver_info *si = ssi->global; +- saver_preferences *p = &si->prefs; +- int event, error; +- int dot; +- XF86VidModeModeLine ml; +- int x, y; +- Bool xinerama_p = si->xinerama_p; +- +-# ifndef HAVE_XINERAMA +- /* Even if we don't have the client-side Xinerama lib, check to see if +- the server supports Xinerama, so that we know to ignore the VidMode +- extension -- otherwise a server crash could result. Yay. */ +- xinerama_p = XQueryExtension (si->dpy, "XINERAMA", &error, &event, &error); +-# endif /* !HAVE_XINERAMA */ +- +-# ifdef HAVE_XINERAMA +- if (xinerama_p) +- { +- int mouse_p = (target_x != -1 && target_y != -1); +- int which = -1; +- int i; +- +- /* If a mouse position wasn't passed in, assume we're talking about +- this screen. */ +- if (!mouse_p) +- { +- target_x = ssi->x; +- target_y = ssi->y; +- which = ssi->number; +- } +- +- /* Find the Xinerama rectangle that contains the mouse position. */ +- for (i = 0; i < si->nscreens; i++) +- { +- if (which == -1 && +- target_x >= si->screens[i].x && +- target_y >= si->screens[i].y && +- target_x < si->screens[i].x + si->screens[i].width && +- target_y < si->screens[i].y + si->screens[i].height) +- which = i; +- } +- if (which == -1) which = 0; /* didn't find it? Use the first. */ +- *x_ret = si->screens[which].x; +- *y_ret = si->screens[which].y; +- *w_ret = si->screens[which].width; +- *h_ret = si->screens[which].height; +- +- if (verbose_p) +- { +- fprintf (stderr, "%s: %d: xinerama vp: %dx%d+%d+%d", +- blurb(), which, +- si->screens[which].width, si->screens[which].height, +- si->screens[which].x, si->screens[which].y); +- if (mouse_p) +- fprintf (stderr, "; mouse at %d,%d", target_x, target_y); +- fprintf (stderr, ".\n"); +- } +- +- return; +- } +-# endif /* HAVE_XINERAMA */ +- +- if (!xinerama_p && /* Xinerama + VidMode = broken. */ +- XF86VidModeQueryExtension (si->dpy, &event, &error) && +- safe_XF86VidModeGetViewPort (si->dpy, ssi->number, &x, &y) && +- XF86VidModeGetModeLine (si->dpy, ssi->number, &dot, &ml)) +- { +- char msg[512]; +- *x_ret = x; +- *y_ret = y; +- *w_ret = ml.hdisplay; +- *h_ret = ml.vdisplay; +- +- if (*x_ret == 0 && *y_ret == 0 && *w_ret == w && *h_ret == h) +- /* There is no viewport -- the screen does not scroll. */ +- return; +- +- +- /* Apparently some versions of XFree86 return nonsense here! +- I've had reports of 1024x768 viewports at -1936862040, -1953705044. +- So, sanity-check the values and give up if they are out of range. +- */ +- if (*x_ret < 0 || *x_ret >= w || +- *y_ret < 0 || *y_ret >= h || +- *w_ret <= 0 || *w_ret > w || +- *h_ret <= 0 || *h_ret > h) +- { +- static int warned_once = 0; +- if (!warned_once) +- { +- fprintf (stderr, "\n" +- "%s: X SERVER BUG: %dx%d viewport at %d,%d is impossible.\n" +- "%s: The XVidMode server extension is returning nonsense.\n" +- "%s: Please report this bug to your X server vendor.\n\n", +- blurb(), *w_ret, *h_ret, *x_ret, *y_ret, +- blurb(), blurb()); +- warned_once = 1; +- } +- *x_ret = 0; +- *y_ret = 0; +- *w_ret = w; +- *h_ret = h; +- return; +- } +- +- sprintf (msg, "%s: %d: vp is %dx%d+%d+%d", +- blurb(), ssi->number, +- *w_ret, *h_ret, *x_ret, *y_ret); +- +- +- if (p->getviewport_full_of_lies_p) +- { +- /* XF86VidModeGetViewPort() tends to be full of lies on laptops +- that have a docking station or external monitor that runs in +- a different resolution than the laptop's screen: +- +- http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=81593 +- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=208417 +- http://bugs.xfree86.org/show_bug.cgi?id=421 +- +- The XFree86 developers have closed the bug. As far as I can +- tell, their reason for this was, "this is an X server bug, +- but it's pretty hard to fix. Therefore, we are closing it." +- +- So, now there's a preference item for those unfortunate users to +- tell us not to trust a word that XF86VidModeGetViewPort() says. +- */ +- static int warned_once = 0; +- if (!warned_once && verbose_p) +- { +- warned_once = 1; +- fprintf (stderr, +- "%s: %d: XF86VidModeGetViewPort() says vp is %dx%d+%d+%d;\n" +- "%s: %d: assuming that is a pack of lies;\n" +- "%s: %d: using %dx%d+0+0 instead.\n", +- blurb(), ssi->number, +- *w_ret, *h_ret, *x_ret, *y_ret, +- blurb(), ssi->number, +- blurb(), ssi->number, w, h); +- } +- +- *x_ret = 0; +- *y_ret = 0; +- *w_ret = w; +- *h_ret = h; +- return; +- } +- +- +- /* Apparently, though the server stores the X position in increments of +- 1 pixel, it will only make changes to the *display* in some other +- increment. With XF86_SVGA on a Thinkpad, the display only updates +- in multiples of 8 pixels when in 8-bit mode, and in multiples of 4 +- pixels in 16-bit mode. I don't know what it does in 24- and 32-bit +- mode, because I don't have enough video memory to find out. +- +- I consider it a bug that XF86VidModeGetViewPort() is telling me the +- server's *target* scroll position rather than the server's *actual* +- scroll position. David Dawes agrees, and says they may fix this in +- XFree86 4.0, but it's notrivial. +- +- He also confirms that this behavior is server-dependent, so the +- actual scroll position cannot be reliably determined by the client. +- So... that means the only solution is to provide a ``sandbox'' +- around the blackout window -- we make the window be up to N pixels +- larger than the viewport on both the left and right sides. That +- means some part of the outer edges of each hack might not be +- visible, but screw it. +- +- I'm going to guess that 16 pixels is enough, and that the Y dimension +- doesn't have this problem. +- +- The drawback of doing this, of course, is that some of the screenhacks +- will still look pretty stupid -- for example, "slidescreen" will cut +- off the left and right edges of the grid, etc. +- */ +-# define FUDGE 16 +- if (x > 0 && x < w - ml.hdisplay) /* not at left edge or right edge */ +- { +- /* Round X position down to next lower multiple of FUDGE. +- Increase width by 2*FUDGE in case some server rounds up. +- */ +- *x_ret = ((x - 1) / FUDGE) * FUDGE; +- *w_ret += (FUDGE * 2); +- } +-# undef FUDGE +- +- if (*x_ret != x || +- *y_ret != y || +- *w_ret != ml.hdisplay || +- *h_ret != ml.vdisplay) +- sprintf (msg + strlen(msg), "; fudged to %dx%d+%d+%d", +- *w_ret, *h_ret, *x_ret, *y_ret); +- +- if (verbose_p) +- fprintf (stderr, "%s.\n", msg); +- +- return; +- } +- +-# endif /* HAVE_XF86VMODE */ +- +- *x_ret = 0; +- *y_ret = 0; +- *w_ret = w; +- *h_ret = h; +-} +- +- + static Bool error_handler_hit_p = False; + + static int +@@ -1318,7 +1110,7 @@ + + + #ifdef HAVE_XF86VMODE +-static Bool ++Bool + safe_XF86VidModeGetViewPort (Display *dpy, int screen, int *xP, int *yP) + { + Bool result; +@@ -1362,13 +1154,9 @@ + XColor black; + XSetWindowAttributes attrs; + unsigned long attrmask; +- int x, y, width, height; + static Bool printed_visual_info = False; /* only print the message once. */ + Window horked_window = 0; + +- get_screen_viewport (ssi, &x, &y, &width, &height, -1, -1, +- (p->verbose_p && !si->screen_blanked_p)); +- + black.red = black.green = black.blue = 0; + + if (ssi->cmap == DefaultColormapOfScreen (ssi->screen)) +@@ -1421,13 +1209,6 @@ + attrs.backing_pixel = ssi->black_pixel; + attrs.border_pixel = ssi->black_pixel; + +- if (p->debug_p +-# ifdef QUAD_MODE +- && !p->quad_p +-# endif +- ) +- width = width / 2; +- + if (!p->verbose_p || printed_visual_info) + ; + else if (ssi->current_visual == DefaultVisualOfScreen (ssi->screen)) +@@ -1503,10 +1284,10 @@ + { + XWindowChanges changes; + unsigned int changesmask = CWX|CWY|CWWidth|CWHeight|CWBorderWidth; +- changes.x = x; +- changes.y = y; +- changes.width = width; +- changes.height = height; ++ changes.x = ssi->x; ++ changes.y = ssi->y; ++ changes.width = ssi->width; ++ changes.height = ssi->height; + changes.border_width = 0; + + if (! (safe_XConfigureWindow (si->dpy, ssi->screensaver_window, +@@ -1523,10 +1304,9 @@ + { + ssi->screensaver_window = + XCreateWindow (si->dpy, RootWindowOfScreen (ssi->screen), +- x, y, width, height, ++ ssi->x, ssi->y, ssi->width, ssi->height, + 0, ssi->current_depth, InputOutput, + ssi->current_visual, attrmask, &attrs); +- + reset_stderr (ssi); + + if (horked_window) +@@ -1578,10 +1358,10 @@ + } + + +-/* Called when the RANDR (Resize and Rotate) extension tells us that the +- size of the screen has changed while the screen was blanked. If we +- don't do this, then the screen saver will no longer fully fill the +- screen, and some of the underlying desktop may be visible. ++/* Called when the RANDR (Resize and Rotate) extension tells us that ++ the size of the screen has changed while the screen was blanked. ++ Call update_screen_layout() first, then call this to synchronize ++ the size of the saver windows to the new sizes of the screens. + */ + void + resize_screensaver_window (saver_info *si) +@@ -1589,132 +1369,97 @@ + saver_preferences *p = &si->prefs; + int i; + +- /* First update the size info in the saver_screen_info structs. +- */ +- +-# ifdef HAVE_XINERAMA +- if (si->xinerama_p) ++ for (i = 0; i < si->nscreens; i++) + { +- /* As of XFree86 4.3.0, the RANDR and XINERAMA extensions cannot coexist. +- However, maybe they will someday, so I'm guessing that the right thing +- to do in that case will be to re-query the Xinerama rectangles after +- a RANDR size change is received: presumably, if the resolution of one +- or more of the monitors has changed, then the Xinerama rectangle +- corresponding to that monitor will also have been updated. +- */ +- int nscreens; +- XineramaScreenInfo *xsi = XineramaQueryScreens (si->dpy, &nscreens); +- +- if (nscreens != si->nscreens) { +- /* Apparently some Xinerama implementations let you use a hot-key +- to change the number of screens in use! This is, of course, +- documented nowhere. Let's try to do something marginally less +- bad than crashing. +- */ +- fprintf (stderr, "%s: bad craziness: xinerama screen count changed " +- "from %d to %d!\n", blurb(), si->nscreens, nscreens); +- if (nscreens > si->nscreens) +- nscreens = si->nscreens; +- } ++ saver_screen_info *ssi = &si->screens[i]; ++ XWindowAttributes xgwa; + +- if (!xsi) abort(); +- for (i = 0; i < nscreens; i++) ++ /* Make sure a window exists -- it might not if a monitor was just ++ added for the first time. ++ */ ++ if (! ssi->screensaver_window) + { +- saver_screen_info *ssi = &si->screens[i]; +- if (p->verbose_p && +- (ssi->x != xsi[i].x_org || +- ssi->y != xsi[i].y_org || +- ssi->width != xsi[i].width || +- ssi->height != xsi[i].height)) ++ initialize_screensaver_window_1 (ssi); ++ if (p->verbose_p) + fprintf (stderr, +- "%s: %d: resize xinerama from %dx%d+%d+%d to %dx%d+%d+%d\n", +- blurb(), i, +- ssi->width, ssi->height, ssi->x, ssi->y, +- xsi[i].width, xsi[i].height, xsi[i].x_org, xsi[i].y_org); +- +- ssi->x = xsi[i].x_org; +- ssi->y = xsi[i].y_org; +- ssi->width = xsi[i].width; +- ssi->height = xsi[i].height; ++ "%s: %d: newly added window 0x%lx %dx%d+%d+%d\n", ++ blurb(), i, (unsigned long) ssi->screensaver_window, ++ ssi->width, ssi->height, ssi->x, ssi->y); + } +- XFree (xsi); +- } +- else +-# endif /* HAVE_XINERAMA */ +- { +- /* Not Xinerama -- get the real sizes of the root windows. */ +- for (i = 0; i < si->nscreens; i++) ++ ++ /* Make sure the window is the right size -- it might not be if ++ the monitor changed resolution, or if a badly-behaved hack ++ screwed with it. ++ */ ++ XGetWindowAttributes (si->dpy, ssi->screensaver_window, &xgwa); ++ if (xgwa.x != ssi->x || ++ xgwa.y != ssi->y || ++ xgwa.width != ssi->width || ++ xgwa.height != ssi->height) + { +- saver_screen_info *ssi = &si->screens[i]; +- XWindowAttributes xgwa; +- XGetWindowAttributes (si->dpy, RootWindowOfScreen (ssi->screen), +- &xgwa); +- +- if (p->verbose_p && +- (ssi->x != xgwa.x || +- ssi->y != xgwa.y || +- ssi->width != xgwa.width || +- ssi->height != xgwa.height)) ++ XWindowChanges changes; ++ unsigned int changesmask = CWX|CWY|CWWidth|CWHeight|CWBorderWidth; ++ changes.x = ssi->x; ++ changes.y = ssi->y; ++ changes.width = ssi->width; ++ changes.height = ssi->height; ++ changes.border_width = 0; ++ ++ if (p->verbose_p) + fprintf (stderr, +- "%s: %d: resize screen from %dx%d+%d+%d to %dx%d+%d+%d\n", +- blurb(), i, +- ssi->width, ssi->height, ssi->x, ssi->y, +- xgwa.width, xgwa.height, xgwa.x, xgwa.y); +- +- ssi->x = xgwa.x; +- ssi->y = xgwa.y; +- ssi->width = xgwa.width; +- ssi->height = xgwa.height; ++ "%s: %d: resize 0x%lx from %dx%d+%d+%d to %dx%d+%d+%d\n", ++ blurb(), i, (unsigned long) ssi->screensaver_window, ++ xgwa.width, xgwa.height, xgwa.x, xgwa.y, ++ ssi->width, ssi->height, ssi->x, ssi->y); ++ ++ if (! safe_XConfigureWindow (si->dpy, ssi->screensaver_window, ++ changesmask, &changes)) ++ fprintf (stderr, "%s: %d: someone horked our saver window" ++ " (0x%lx)! Unable to resize it!\n", ++ blurb(), i, (unsigned long) ssi->screensaver_window); ++ } ++ ++ /* Now (if blanked) make sure that it's mapped and running a hack -- ++ it might not be if we just added it. (We also might be re-using ++ an old window that existed for a previous monitor that was ++ removed and re-added.) ++ ++ Note that spawn_screenhack() calls select_visual() which may destroy ++ and re-create the window via initialize_screensaver_window_1(). ++ */ ++ if (si->screen_blanked_p) ++ { ++ if (ssi->cmap) ++ XInstallColormap (si->dpy, ssi->cmap); ++ XMapRaised (si->dpy, ssi->screensaver_window); ++ if (! ssi->pid) ++ spawn_screenhack (ssi); ++ ++ /* Make sure the act of adding a screen doesn't present as ++ pointer motion (and thus cause an unblank). */ ++ { ++ Window root, child; ++ int x, y; ++ unsigned int mask; ++ XQueryPointer (si->dpy, ssi->screensaver_window, &root, &child, ++ &ssi->poll_mouse_last_root_x, ++ &ssi->poll_mouse_last_root_y, ++ &x, &y, &mask); ++ } + } + } + +- /* Next, ensure that the screensaver windows are the right size, taking +- into account both the new size of the screen in question's root window, +- and any viewport within that. ++ /* Kill off any savers running on no-longer-extant monitors. + */ +- +- for (i = 0; i < si->nscreens; i++) ++ for (; i < si->ssi_count; i++) + { + saver_screen_info *ssi = &si->screens[i]; +- XWindowAttributes xgwa; +- XWindowChanges changes; +- int x, y, width, height; +- unsigned int changesmask = CWX|CWY|CWWidth|CWHeight|CWBorderWidth; +- +- XGetWindowAttributes (si->dpy, ssi->screensaver_window, &xgwa); +- get_screen_viewport (ssi, &x, &y, &width, &height, -1, -1, +- (p->verbose_p && !si->screen_blanked_p)); +- if (xgwa.x == x && +- xgwa.y == y && +- xgwa.width == width && +- xgwa.height == height) +- continue; /* no change! */ +- +- changes.x = x; +- changes.y = y; +- changes.width = width; +- changes.height = height; +- changes.border_width = 0; +- +- if (p->debug_p +-# ifdef QUAD_MODE +- && !p->quad_p +-# endif +- ) +- changes.width = changes.width / 2; +- +- if (p->verbose_p) +- fprintf (stderr, +- "%s: %d: resize 0x%lx from %dx%d+%d+%d to %dx%d+%d+%d\n", +- blurb(), i, (unsigned long) ssi->screensaver_window, +- xgwa.width, xgwa.height, xgwa.x, xgwa.y, +- width, height, x, y); +- if (! safe_XConfigureWindow (si->dpy, ssi->screensaver_window, +- changesmask, &changes)) ++ if (ssi->pid) ++ kill_screenhack (ssi); ++ if (ssi->screensaver_window) + { +- fprintf (stderr, +- "%s: %d: someone horked our saver window (0x%lx)! Unable to resize it!\n", +- blurb(), i, (unsigned long) ssi->screensaver_window); ++ XUnmapWindow (si->dpy, ssi->screensaver_window); ++ restore_real_vroot_1 (ssi); + } + } + } +@@ -2094,10 +1839,30 @@ + } + + ++static Visual * ++get_screen_gl_visual (saver_info *si, int real_screen_number) ++{ ++ int i; ++ int nscreens = ScreenCount (si->dpy); ++ ++ if (! si->best_gl_visuals) ++ si->best_gl_visuals = (Visual **) ++ calloc (nscreens + 1, sizeof (*si->best_gl_visuals)); ++ ++ for (i = 0; i < nscreens; i++) ++ if (! si->best_gl_visuals[i]) ++ si->best_gl_visuals[i] = ++ get_best_gl_visual (si, ScreenOfDisplay (si->dpy, i)); ++ ++ if (real_screen_number < 0 || real_screen_number >= nscreens) abort(); ++ return si->best_gl_visuals[real_screen_number]; ++} ++ + + Bool + select_visual (saver_screen_info *ssi, const char *visual_name) + { ++ XWindowAttributes xgwa; + saver_info *si = ssi->global; + saver_preferences *p = &si->prefs; + Bool install_cmap_p = p->install_cmap_p; +@@ -2112,6 +1877,17 @@ + */ + Bool always_recreate_window_p = True; + ++ get_screen_gl_visual (si, 0); /* let's probe all the GL visuals early */ ++ ++ /* We make sure the existing window is actually on ssi->screen before ++ trying to use it, in case things moved around radically when monitors ++ were added or deleted. If we don't do this we could get a BadMatch ++ even though the depths match. I think. ++ */ ++ memset (&xgwa, 0, sizeof(xgwa)); ++ if (ssi->screensaver_window) ++ XGetWindowAttributes (si->dpy, ssi->screensaver_window, &xgwa); ++ + if (visual_name && *visual_name) + { + if (!strcmp(visual_name, "default-i") || +@@ -2133,7 +1909,7 @@ + !strcmp(visual_name, "Gl") || + !strcmp(visual_name, "GL")) + { +- new_v = ssi->best_gl_visual; ++ new_v = get_screen_gl_visual (si, ssi->real_screen_number); + if (!new_v && p->verbose_p) + fprintf (stderr, "%s: no GL visuals.\n", progname); + } +@@ -2154,13 +1930,16 @@ + + ssi->install_cmap_p = install_cmap_p; + +- if (new_v && +- (always_recreate_window_p || +- (ssi->current_visual != new_v) || +- (install_cmap_p != was_installed_p))) ++ if ((ssi->screen != xgwa.screen) || ++ (new_v && ++ (always_recreate_window_p || ++ (ssi->current_visual != new_v) || ++ (install_cmap_p != was_installed_p)))) + { + Colormap old_c = ssi->cmap; + Window old_w = ssi->screensaver_window; ++ if (! new_v) ++ new_v = ssi->current_visual; + + if (p->verbose_p) + { +Index: xscreensaver/driver/xscreensaver-command.c +=================================================================== +--- xscreensaver.orig/driver/xscreensaver-command.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/xscreensaver-command.c 2008-07-17 00:07:00.000000000 +0200 +@@ -108,9 +108,9 @@ + (Note that one must *never* kill xscreensaver with -9!)\n\ + \n\ + -restart Causes the screensaver process to exit and then restart with\n\ +- the same command line arguments as last time. Do this after\n\ +- you've changed your X resource settings, to cause\n\ +- xscreensaver to notice the changes.\n\ ++ the same command line arguments as last time. You shouldn't\n\ ++ really need to do this, since xscreensaver notices when the\n\ ++ .xscreensaver file has changed and re-reads it as needed.\n\ + \n\ + -lock Tells the running xscreensaver process to lock the screen\n\ + immediately. This is like -activate, but forces locking as\n\ +Index: xscreensaver/driver/xscreensaver.c +=================================================================== +--- xscreensaver.orig/driver/xscreensaver.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/xscreensaver.c 2008-07-17 00:07:00.000000000 +0200 +@@ -46,6 +46,8 @@ + * via the $XSCREENSAVER_WINDOW environment variable -- this trick requires + * a recent (Aug 2003) revision of vroot.h. + * ++ * (See comments in screens.c for more details about Xinerama/RANDR stuff.) ++ * + * While we are waiting for user activity, we also set up timers so that, + * after a certain amount of time has passed, we can start a different + * screenhack. We do this by killing the running child process with +@@ -205,6 +207,7 @@ + + /* useful for debugging */ + { "-no-capture-stderr", ".captureStderr", XrmoptionNoArg, "off" }, ++ { "-log", ".logFile", XrmoptionSepArg, 0 }, + }; + + #ifdef __GNUC__ +@@ -263,7 +266,7 @@ + return str; + } + +-static Bool blurb_timestamp_p = False; /* kludge */ ++static Bool blurb_timestamp_p = True; /* kludge */ + + const char * + blurb (void) +@@ -334,27 +337,30 @@ + } + else + { ++#ifdef __GNUC__ ++ __extension__ /* don't warn about "string length is greater than the ++ length ISO C89 compilers are required to support". */ ++#endif + fprintf (real_stderr, +- "#######################################" +- "#######################################\n\n"); +- fprintf (real_stderr, ++ "#######################################################################\n" ++ "\n" + " If at all possible, please re-run xscreensaver with the command\n" +- " line arguments `-sync -verbose -no-capture', and reproduce this\n" ++ " line arguments `-sync -verbose -log log.txt', and reproduce this\n" + " bug. That will cause xscreensaver to dump a `core' file to the\n" + " current directory. Please include the stack trace from that core\n" +- " file in your bug report. *DO NOT* mail the core file itself!\n" +- " That won't work.\n"); +- fprintf (real_stderr, ++ " file in your bug report. *DO NOT* mail the core file itself! That\n" ++ " won't work. A \"log.txt\" file will also be written. Please *do*\n" ++ " include the complete \"log.txt\" file with your bug report.\n" + "\n" + " http://www.jwz.org/xscreensaver/bugs.html explains how to create\n" + " the most useful bug reports, and how to examine core files.\n" + "\n" + " The more information you can provide, the better. But please\n" + " report this bug, regardless!\n" ++ "\n" ++ "#######################################################################\n" ++ "\n" + "\n"); +- fprintf (real_stderr, +- "#######################################" +- "#######################################\n\n"); + + saver_exit (si, -1, 0); + } +@@ -658,13 +664,6 @@ + with `xscreensaver-demo' or `xscreensaver-command'.\n\ + . See the man pages for details, or check the web page:\n\ + http://www.jwz.org/xscreensaver/\n\n"); +- +- /* Since version 1.21 renamed the "-lock" option to "-lock-mode", +- suggest that explicitly. */ +- if (!strcmp (s, "-lock")) +- fprintf (stderr, "\ +- Or perhaps you meant either the \"-lock-mode\" or the\n\ +- \"-lock-timeout \" options to xscreensaver?\n\n"); + } + + exit (1); +@@ -755,110 +754,24 @@ + } + + +-#ifdef HAVE_XINERAMA +- +-static Bool +-screens_overlap_p (XineramaScreenInfo *a, XineramaScreenInfo *b) +-{ +- /* Two rectangles overlap if the max of the tops is less than the +- min of the bottoms and the max of the lefts is less than the min +- of the rights. +- */ +-# undef MAX +-# undef MIN +-# define MAX(A,B) ((A)>(B)?(A):(B)) +-# define MIN(A,B) ((A)<(B)?(A):(B)) +- +- int maxleft = MAX(a->x_org, b->x_org); +- int maxtop = MAX(a->y_org, b->y_org); +- int minright = MIN(a->x_org + a->width - 1, b->x_org + b->width); +- int minbot = MIN(a->y_org + a->height - 1, b->y_org + b->height); +- return (maxtop < minbot && maxleft < minright); +-} +- +- +-/* Go through the list of Xinerama screen descriptions, and mark the +- ones that appear to be insane, so that we don't use them. +- */ +-static void +-check_xinerama_sanity (int count, Bool verbose_p, XineramaScreenInfo *xsi) ++/* called from screens.c so that all the Xt crud is here. */ ++void ++initialize_screen_root_widget (saver_screen_info *ssi) + { +- static Bool printed_p = False; +- int i, j; +- char err[1024]; +- *err = 0; +- +-# define X1 xsi[i].x_org +-# define X2 xsi[j].x_org +-# define Y1 xsi[i].y_org +-# define Y2 xsi[j].y_org +-# define W1 xsi[i].width +-# define W2 xsi[j].width +-# define H1 xsi[i].height +-# define H2 xsi[j].height +- +-# define WHINE() do { \ +- if (verbose_p) { \ +- if (! printed_p) { \ +- fprintf (stderr, "%s: compensating for Xinerama braindamage:\n", \ +- blurb()); \ +- printed_p = True; \ +- } \ +- fprintf (stderr, "%s: %d: %s\n", blurb(), xsi[i].screen_number,err); \ +- } \ +- xsi[i].screen_number = -1; \ +- } while(0) +- +- /* If a screen is enclosed by any other screen, that's insane. +- */ +- for (i = 0; i < count; i++) +- for (j = 0; j < count; j++) +- if (i != j && +- xsi[i].screen_number >= 0 && +- xsi[j].screen_number >= 0 && +- X1 >= X2 && Y1 >= Y2 && (X1+W1) <= (X2+W2) && (X1+H1) <= (X2+H2)) +- { +- sprintf (err, "%dx%d+%d+%d enclosed by %dx%d+%d+%d", +- W1, H1, X1, Y1, +- W2, H2, X2, Y2); +- WHINE(); +- continue; +- } +- +- /* After checking for enclosure, check for other lossage against earlier +- screens. We do enclosure first so that we make sure to pick the +- larger one. +- */ +- for (i = 0; i < count; i++) +- for (j = 0; j < i; j++) +- { +- if (xsi[i].screen_number < 0) continue; /* already marked */ +- +- *err = 0; +- if (X1 == X2 && Y1 == Y2 && W1 == W2 && H1 == H2) +- sprintf (err, "%dx%d+%d+%d duplicated", W1, H1, X1, Y1); +- +- else if (screens_overlap_p (&xsi[i], &xsi[j])) +- sprintf (err, "%dx%d+%d+%d overlaps %dx%d+%d+%d", +- W1, H1, X1, Y1, +- W2, H2, X2, Y2); +- +- if (*err) WHINE(); +- } +- +-# undef X1 +-# undef X2 +-# undef Y1 +-# undef Y2 +-# undef W1 +-# undef W2 +-# undef H1 +-# undef H2 ++ saver_info *si = ssi->global; ++ if (ssi->toplevel_shell) ++ XtDestroyWidget (ssi->toplevel_shell); ++ ssi->toplevel_shell = ++ XtVaAppCreateShell (progname, progclass, ++ applicationShellWidgetClass, ++ si->dpy, ++ XtNscreen, ssi->screen, ++ XtNvisual, ssi->current_visual, ++ XtNdepth, visual_depth (ssi->screen, ++ ssi->current_visual), ++ NULL); + } + +-#endif /* HAVE_XINERAMA */ +- +- + + /* Examine all of the display's screens, and populate the `saver_screen_info' + structures. Make sure this is called after hack_environment() sets $PATH. +@@ -866,182 +779,28 @@ + static void + initialize_per_screen_info (saver_info *si, Widget toplevel_shell) + { +- Bool found_any_writable_cells = False; + int i; + +-# ifdef HAVE_XINERAMA +- { +- int event, error; +- si->xinerama_p = (XineramaQueryExtension (si->dpy, &event, &error) && +- XineramaIsActive (si->dpy)); +- } +- +- if (si->xinerama_p && ScreenCount (si->dpy) != 1) +- { +- si->xinerama_p = False; +- if (si->prefs.verbose_p) +- fprintf (stderr, +- "%s: Xinerama AND %d screens? Disabling Xinerama support!\n", +- blurb(), ScreenCount(si->dpy)); +- } +- +- if (si->xinerama_p) +- { +- int nscreens = 0; +- XineramaScreenInfo *xsi = XineramaQueryScreens (si->dpy, &nscreens); +- if (!xsi) +- si->xinerama_p = False; +- else +- { +- int j = 0; +- si->screens = (saver_screen_info *) +- calloc(sizeof(saver_screen_info), nscreens); +- check_xinerama_sanity (nscreens, si->prefs.verbose_p, xsi); +- for (i = 0; i < nscreens; i++) +- { +- if (xsi[i].screen_number < 0) /* deemed insane */ +- continue; +- si->screens[j].x = xsi[i].x_org; +- si->screens[j].y = xsi[i].y_org; +- si->screens[j].width = xsi[i].width; +- si->screens[j].height = xsi[i].height; +- j++; +- } +- si->nscreens = j; +- XFree (xsi); +- } +- si->default_screen = &si->screens[0]; +- si->default_screen->real_screen_p = True; +- } +-# endif /* !HAVE_XINERAMA */ +- +- if (!si->xinerama_p) +- { +- si->nscreens = ScreenCount(si->dpy); +- si->screens = (saver_screen_info *) +- calloc(sizeof(saver_screen_info), si->nscreens); +- si->default_screen = &si->screens[DefaultScreen(si->dpy)]; +- +- for (i = 0; i < si->nscreens; i++) +- { +- saver_screen_info *ssi = &si->screens[i]; +- ssi->width = DisplayWidth (si->dpy, i); +- ssi->height = DisplayHeight (si->dpy, i); +- ssi->real_screen_p = True; +- ssi->real_screen_number = i; +- } +- } +- +- +-# ifdef QUAD_MODE +- /* In "quad mode", we use the Xinerama code to pretend that there are 4 +- screens for every physical screen, and run four times as many hacks... +- */ +- if (si->prefs.quad_p) +- { +- int ns2 = si->nscreens * 4; +- saver_screen_info *ssi2 = (saver_screen_info *) +- calloc(sizeof(saver_screen_info), ns2); +- +- for (i = 0; i < si->nscreens; i++) +- { +- saver_screen_info *old = &si->screens[i]; ++ update_screen_layout (si); + +- if (si->prefs.debug_p) old->width = old->width / 2; +- +- ssi2[i*4 ] = *old; +- ssi2[i*4+1] = *old; +- ssi2[i*4+2] = *old; +- ssi2[i*4+3] = *old; +- +- ssi2[i*4 ].width /= 2; +- ssi2[i*4 ].height /= 2; +- +- ssi2[i*4+1].x += ssi2[i*4 ].width; +- ssi2[i*4+1].width -= ssi2[i*4 ].width; +- ssi2[i*4+1].height /= 2; +- +- ssi2[i*4+2].y += ssi2[i*4 ].height; +- ssi2[i*4+2].width /= 2; +- ssi2[i*4+2].height -= ssi2[i*4 ].height; +- +- ssi2[i*4+3].x += ssi2[i*4+2].width; +- ssi2[i*4+3].y += ssi2[i*4+2].height; +- ssi2[i*4+3].width -= ssi2[i*4+2].width; +- ssi2[i*4+3].height -= ssi2[i*4+2].height; +- +- ssi2[i*4+1].real_screen_p = False; +- ssi2[i*4+2].real_screen_p = False; +- ssi2[i*4+3].real_screen_p = False; +- } +- +- si->nscreens = ns2; +- free (si->screens); +- si->screens = ssi2; +- si->default_screen = &si->screens[DefaultScreen(si->dpy) * 4]; +- si->xinerama_p = True; +- } +-# endif /* QUAD_MODE */ +- +- /* finish initializing the screens. ++ /* Check to see whether fading is ever possible -- if any of the ++ screens on the display has a PseudoColor visual, then fading can ++ work (on at least some screens.) If no screen has a PseudoColor ++ visual, then don't bother ever trying to fade, because it will ++ just cause a delay without causing any visible effect. + */ + for (i = 0; i < si->nscreens; i++) + { + saver_screen_info *ssi = &si->screens[i]; +- ssi->global = si; +- +- ssi->number = i; +- ssi->screen = ScreenOfDisplay (si->dpy, ssi->real_screen_number); +- ssi->poll_mouse_last_root_x = -1; +- ssi->poll_mouse_last_root_y = -1; +- +- if (!si->xinerama_p) ++ if (has_writable_cells (ssi->screen, ssi->current_visual) || ++ get_visual (ssi->screen, "PseudoColor", True, False) || ++ get_visual (ssi->screen, "GrayScale", True, False)) + { +- ssi->width = WidthOfScreen (ssi->screen); +- ssi->height = HeightOfScreen (ssi->screen); ++ si->fading_possible_p = True; ++ break; + } +- +- /* Note: we can't use the resource ".visual" because Xt is SO FUCKED. */ +- ssi->default_visual = +- get_visual_resource (ssi->screen, "visualID", "VisualID", False); +- +- ssi->current_visual = ssi->default_visual; +- ssi->current_depth = visual_depth (ssi->screen, ssi->current_visual); +- +- /* Execute a subprocess to find the GL visual. */ +- ssi->best_gl_visual = get_best_gl_visual (ssi); +- +- if (ssi == si->default_screen) +- /* Since this is the default screen, use the one already created. */ +- ssi->toplevel_shell = toplevel_shell; +- else +- /* Otherwise, each screen must have its own unmapped root widget. */ +- ssi->toplevel_shell = +- XtVaAppCreateShell (progname, progclass, applicationShellWidgetClass, +- si->dpy, +- XtNscreen, ssi->screen, +- XtNvisual, ssi->current_visual, +- XtNdepth, visual_depth (ssi->screen, +- ssi->current_visual), +- NULL); +- +- if (! found_any_writable_cells) +- { +- /* Check to see whether fading is ever possible -- if any of the +- screens on the display has a PseudoColor visual, then fading can +- work (on at least some screens.) If no screen has a PseudoColor +- visual, then don't bother ever trying to fade, because it will +- just cause a delay without causing any visible effect. +- */ +- if (has_writable_cells (ssi->screen, ssi->current_visual) || +- get_visual (ssi->screen, "PseudoColor", True, False) || +- get_visual (ssi->screen, "GrayScale", True, False)) +- found_any_writable_cells = True; +- } + } + +- si->fading_possible_p = found_any_writable_cells; +- + #ifdef HAVE_XF86VMODE_GAMMA + si->fading_possible_p = True; /* if we can gamma fade, go for it */ + #endif +@@ -1115,15 +874,6 @@ + blurb()); + } + +- /* These are incompatible (or at least, our support for them is...) */ +- if (si->xinerama_p && si->using_mit_saver_extension) +- { +- si->using_mit_saver_extension = False; +- if (p->verbose_p) +- fprintf (stderr, "%s: Xinerama in use: disabling MIT-SCREEN-SAVER.\n", +- blurb()); +- } +- + #ifdef HAVE_RANDR + query_randr_extension (si); + #endif +@@ -1149,6 +899,26 @@ + } + + ++#ifdef DEBUG_MULTISCREEN ++static void ++debug_multiscreen_timer (XtPointer closure, XtIntervalId *id) ++{ ++ saver_info *si = (saver_info *) closure; ++ saver_preferences *p = &si->prefs; ++ if (update_screen_layout (si)) ++ { ++ if (p->verbose_p) ++ { ++ fprintf (stderr, "%s: new layout:\n", blurb()); ++ describe_monitor_layout (si); ++ } ++ resize_screensaver_window (si); ++ } ++ XtAppAddTimeOut (si->app, 1000*4, debug_multiscreen_timer, (XtPointer) si); ++} ++#endif /* DEBUG_MULTISCREEN */ ++ ++ + /* For the case where we aren't using an server extensions, select user events + on all the existing windows, and launch timers to select events on + newly-created windows as well. +@@ -1201,6 +971,10 @@ + + if (p->verbose_p) + fprintf (stderr, " done.\n"); ++ ++# ifdef DEBUG_MULTISCREEN ++ if (p->debug_p) debug_multiscreen_timer ((XtPointer) si, 0); ++# endif + } + + +@@ -1247,6 +1021,7 @@ + { + saver_preferences *p = &si->prefs; + Bool ok_to_unblank; ++ int i; + + while (1) + { +@@ -1342,12 +1117,15 @@ + } + } + +- kill_screenhack (si); ++ for (i = 0; i < si->nscreens; i++) ++ kill_screenhack (&si->screens[i]); + +- if (!si->throttled_p) +- spawn_screenhack (si, True); +- else if (p->verbose_p) ++ raise_window (si, True, True, False); ++ if (si->throttled_p) + fprintf (stderr, "%s: not launching hack (throttled.)\n", blurb()); ++ else ++ for (i = 0; i < si->nscreens; i++) ++ spawn_screenhack (&si->screens[i]); + + /* Don't start the cycle timer in demo mode. */ + if (!si->demoing_p && p->cycle) +@@ -1418,14 +1196,16 @@ + + was_locked = True; + si->dbox_up_p = True; +- suspend_screenhack (si, True); ++ for (i = 0; i < si->nscreens; i++) ++ suspend_screenhack (&si->screens[i], True); /* suspend */ + XUndefineCursor (si->dpy, ssi->screensaver_window); + + ok_to_unblank = unlock_p (si); + + si->dbox_up_p = False; + XDefineCursor (si->dpy, ssi->screensaver_window, ssi->cursor); +- suspend_screenhack (si, False); /* resume */ ++ for (i = 0; i < si->nscreens; i++) ++ suspend_screenhack (&si->screens[i], False); /* resume */ + + if (!ok_to_unblank && + !screenhack_running_p (si)) +@@ -1451,7 +1231,8 @@ + blurb(), timestring ()); + + /* Kill before unblanking, to stop drawing as soon as possible. */ +- kill_screenhack (si); ++ for (i = 0; i < si->nscreens; i++) ++ kill_screenhack (&si->screens[i]); + unblank_screen (si); + + set_locked_p (si, False); +@@ -1530,6 +1311,7 @@ + + shell = connect_to_server (si, &argc, argv); + process_command_line (si, &argc, argv); ++ stderr_log_file (si); + print_banner (si); + + load_init_file(si->dpy, p); /* must be before initialize_per_screen_info() */ +@@ -1951,8 +1733,10 @@ + "exiting."); + if (! until_idle_p) + { ++ int i; ++ for (i = 0; i < si->nscreens; i++) ++ kill_screenhack (&si->screens[i]); + unblank_screen (si); +- kill_screenhack (si); + XSync (si->dpy, False); + } + saver_exit (si, 0, 0); +@@ -1974,8 +1758,10 @@ + "restarting."); + if (! until_idle_p) + { ++ int i; ++ for (i = 0; i < si->nscreens; i++) ++ kill_screenhack (&si->screens[i]); + unblank_screen (si); +- kill_screenhack (si); + XSync (si->dpy, False); + } + +@@ -2254,17 +2040,15 @@ + # else + False + # endif ++ }, { "DRI", "DRI", ++ True + }, { "Apple-DRI", "Apple-DRI (XDarwin)", + True + }, + }; + +- fprintf (stderr, "%s: running on display \"%s\" (%d %sscreen%s).\n", +- blurb(), +- DisplayString(si->dpy), +- si->nscreens, +- (si->xinerama_p ? "Xinerama " : ""), +- (si->nscreens == 1 ? "" : "s")); ++ fprintf (stderr, "%s: running on display \"%s\"\n", blurb(), ++ DisplayString(si->dpy)); + fprintf (stderr, "%s: vendor is %s, %d.\n", blurb(), + ServerVendor(si->dpy), VendorRelease(si->dpy)); + +@@ -2324,21 +2108,10 @@ + } + } + +- if (si->xinerama_p) +- { +- fprintf (stderr, "%s: Xinerama layout:\n", blurb()); +- for (i = 0; i < si->nscreens; i++) +- { +- saver_screen_info *ssi = &si->screens[i]; +- fprintf (stderr, "%s: %c %d/%d: %dx%d+%d+%d\n", +- blurb(), +- (ssi->real_screen_p ? '+' : ' '), +- ssi->number, ssi->real_screen_number, +- ssi->width, ssi->height, ssi->x, ssi->y); +- } +- } ++ describe_monitor_layout (si); + } + ++ + Bool + display_is_on_console_p (saver_info *si) + { +Index: xscreensaver/driver/xscreensaver.h +=================================================================== +--- xscreensaver.orig/driver/xscreensaver.h 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/driver/xscreensaver.h 2008-07-17 00:07:00.000000000 +0200 +@@ -1,4 +1,4 @@ +-/* xscreensaver, Copyright (c) 1993-2006 Jamie Zawinski ++/* xscreensaver, Copyright (c) 1993-2008 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that +@@ -67,7 +67,10 @@ + blanking + ======================================================================= */ + ++extern Bool update_screen_layout (saver_info *si); + extern void initialize_screensaver_window (saver_info *si); ++extern void initialize_screen_root_widget (saver_screen_info *ssi); ++ + extern void raise_window (saver_info *si, + Bool inhibit_fade, Bool between_hacks_p, + Bool dont_clear); +@@ -156,12 +159,12 @@ + #endif /* !HAVE_SIGACTION */ + extern void unblock_sigchld (void); + extern void hack_environment (saver_info *si); +-extern void hack_subproc_environment (saver_screen_info *ssi); ++extern void hack_subproc_environment (Screen *, Window saver_window); + extern void init_sigchld (void); +-extern void spawn_screenhack (saver_info *si, Bool first_time_p); ++extern void spawn_screenhack (saver_screen_info *ssi); + extern pid_t fork_and_exec (saver_screen_info *ssi, const char *command); +-extern void kill_screenhack (saver_info *si); +-extern void suspend_screenhack (saver_info *si, Bool suspend_p); ++extern void kill_screenhack (saver_screen_info *ssi); ++extern void suspend_screenhack (saver_screen_info *ssi, Bool suspend_p); + extern Bool screenhack_running_p (saver_info *si); + extern void emergency_kill_subproc (saver_info *si); + extern Bool select_visual (saver_screen_info *ssi, const char *visual_name); +@@ -174,6 +177,7 @@ + + extern FILE *real_stderr; + extern FILE *real_stdout; ++extern void stderr_log_file (saver_info *si); + extern void initialize_stderr (saver_info *si); + extern void reset_stderr (saver_screen_info *ssi); + extern void clear_stderr (saver_screen_info *ssi); +@@ -194,8 +198,13 @@ + extern Bool window_exists_p (Display *dpy, Window window); + extern char *timestring (void); + extern Bool display_is_on_console_p (saver_info *si); +-extern Visual *get_best_gl_visual (saver_screen_info *ssi); ++extern Visual *get_best_gl_visual (saver_info *si, Screen *screen); + extern void check_for_leaks (const char *where); ++extern void describe_monitor_layout (saver_info *si); ++ ++#ifdef HAVE_XF86VMODE ++Bool safe_XF86VidModeGetViewPort (Display *, int, int *, int *); ++#endif /* HAVE_XF86VMODE */ + + extern Atom XA_VROOT, XA_XSETROOT_ID, XA_ESETROOT_PMAP_ID, XA_XROOTPMAP_ID; + extern Atom XA_SCREENSAVER, XA_SCREENSAVER_VERSION, XA_SCREENSAVER_ID; +Index: xscreensaver/hacks/screenhack.c +=================================================================== +--- xscreensaver.orig/hacks/screenhack.c 2008-07-16 23:47:00.000000000 +0200 ++++ xscreensaver/hacks/screenhack.c 2008-07-17 00:07:00.000000000 +0200 +@@ -882,6 +882,8 @@ + window = VirtualRootWindowOfScreen (XtScreen (toplevel)); + XtDestroyWidget (toplevel); + XGetWindowAttributes (dpy, window, &xgwa); ++ /* With RANDR, the root window can resize! */ ++ XSelectInput (dpy, window, xgwa.your_event_mask | StructureNotifyMask); + visual_warning (xgwa.screen, window, xgwa.visual, xgwa.colormap, False); + } + else