This list is closed, nobody may subscribe to it.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(12) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(13) |
Feb
(2) |
Mar
(1) |
Apr
(1) |
May
|
Jun
(38) |
Jul
(10) |
Aug
(70) |
Sep
(63) |
Oct
(61) |
Nov
(41) |
Dec
(28) |
| 2002 |
Jan
(43) |
Feb
(11) |
Mar
(9) |
Apr
(2) |
May
(97) |
Jun
(94) |
Jul
(13) |
Aug
(49) |
Sep
(41) |
Oct
(24) |
Nov
(55) |
Dec
(126) |
| 2003 |
Jan
(90) |
Feb
(75) |
Mar
(32) |
Apr
(24) |
May
(54) |
Jun
(54) |
Jul
(22) |
Aug
(4) |
Sep
(16) |
Oct
(8) |
Nov
(6) |
Dec
(13) |
| 2004 |
Jan
|
Feb
(17) |
Mar
(60) |
Apr
(21) |
May
(12) |
Jun
|
Jul
(13) |
Aug
|
Sep
(29) |
Oct
|
Nov
|
Dec
(2) |
| 2005 |
Jan
(22) |
Feb
(3) |
Mar
(2) |
Apr
(13) |
May
(82) |
Jun
(18) |
Jul
(30) |
Aug
(17) |
Sep
(3) |
Oct
(19) |
Nov
(4) |
Dec
(8) |
| 2006 |
Jan
(1) |
Feb
(6) |
Mar
(2) |
Apr
(40) |
May
|
Jun
(21) |
Jul
(1) |
Aug
(410) |
Sep
(3) |
Oct
|
Nov
(56) |
Dec
(7) |
| 2007 |
Jan
(19) |
Feb
|
Mar
(4) |
Apr
(8) |
May
(19) |
Jun
(6) |
Jul
(4) |
Aug
(6) |
Sep
|
Oct
(4) |
Nov
(3) |
Dec
(2) |
| 2008 |
Jan
(13) |
Feb
(18) |
Mar
(12) |
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
(6) |
Mar
(8) |
Apr
(2) |
May
(2) |
Jun
|
Jul
|
Aug
(2) |
Sep
(11) |
Oct
(13) |
Nov
(17) |
Dec
(6) |
| 2010 |
Jan
(24) |
Feb
(10) |
Mar
(27) |
Apr
(20) |
May
(108) |
Jun
(8) |
Jul
(23) |
Aug
(38) |
Sep
(49) |
Oct
(17) |
Nov
(12) |
Dec
(14) |
| 2011 |
Jan
(17) |
Feb
(7) |
Mar
(28) |
Apr
(8) |
May
(20) |
Jun
(11) |
Jul
(7) |
Aug
(12) |
Sep
(4) |
Oct
(20) |
Nov
(19) |
Dec
(2) |
| 2012 |
Jan
(2) |
Feb
(6) |
Mar
(5) |
Apr
(24) |
May
(5) |
Jun
(4) |
Jul
(6) |
Aug
(18) |
Sep
(38) |
Oct
(26) |
Nov
(12) |
Dec
(6) |
| 2013 |
Jan
(19) |
Feb
(18) |
Mar
(44) |
Apr
(35) |
May
(18) |
Jun
(21) |
Jul
(10) |
Aug
(19) |
Sep
(44) |
Oct
(25) |
Nov
(1) |
Dec
(2) |
| 2014 |
Jan
(8) |
Feb
|
Mar
|
Apr
(5) |
May
(1) |
Jun
(3) |
Jul
|
Aug
(3) |
Sep
|
Oct
(4) |
Nov
(4) |
Dec
(7) |
| 2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(2) |
Jun
(4) |
Jul
(6) |
Aug
(2) |
Sep
(8) |
Oct
(2) |
Nov
(1) |
Dec
(3) |
| 2016 |
Jan
(7) |
Feb
(9) |
Mar
(5) |
Apr
(5) |
May
(9) |
Jun
(4) |
Jul
(20) |
Aug
(4) |
Sep
(7) |
Oct
(6) |
Nov
(9) |
Dec
(2) |
| 2017 |
Jan
(7) |
Feb
(7) |
Mar
(5) |
Apr
|
May
(1) |
Jun
(4) |
Jul
(12) |
Aug
(4) |
Sep
(1) |
Oct
(4) |
Nov
(11) |
Dec
(14) |
| 2018 |
Jan
(3) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
1
|
2
|
3
|
4
|
5
|
|
6
|
7
|
8
|
9
|
10
(1) |
11
(1) |
12
|
|
13
|
14
(1) |
15
(3) |
16
|
17
(1) |
18
|
19
|
|
20
|
21
|
22
|
23
|
24
(2) |
25
(2) |
26
|
|
27
|
28
|
29
|
30
|
|
|
|
|
From: Keith M. <kei...@us...> - 2009-09-25 21:45:04
|
Update of /cvsroot/mingw/MinGW In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv25161 Modified Files: Tag: MinGW-5_1 ChangeLog MinGW_LICENSE.rtf mingw.nsi Log Message: Fix MinGW-bug 2861359; release MinGW-5.1.6 Index: MinGW_LICENSE.rtf =================================================================== RCS file: /cvsroot/mingw/MinGW/Attic/MinGW_LICENSE.rtf,v retrieving revision 1.6.2.2 retrieving revision 1.6.2.3 diff -C2 -d -r1.6.2.2 -r1.6.2.3 *** MinGW_LICENSE.rtf 24 Sep 2009 21:42:47 -0000 1.6.2.2 --- MinGW_LICENSE.rtf 25 Sep 2009 21:44:47 -0000 1.6.2.3 *************** *** 2,6 **** {\colortbl ;\red0\green0\blue255;} \viewkind4\uc1\pard\nowidctlpar\qc\b\f0\fs28 Minimal GNU for Windows\par ! \i\fs24 Version 5.1.5\par \cf1\ul\i0\f1\fs20 http://www.mingw.org/\cf0\ulnone\i\f0\fs24\par \pard\nowidctlpar\b0\i0\f1\fs20\par --- 2,6 ---- {\colortbl ;\red0\green0\blue255;} \viewkind4\uc1\pard\nowidctlpar\qc\b\f0\fs28 Minimal GNU for Windows\par ! \i\fs24 Version 5.1.6\par \cf1\ul\i0\f1\fs20 http://www.mingw.org/\cf0\ulnone\i\f0\fs24\par \pard\nowidctlpar\b0\i0\f1\fs20\par Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/MinGW/Attic/ChangeLog,v retrieving revision 1.9.2.2 retrieving revision 1.9.2.3 diff -C2 -d -r1.9.2.2 -r1.9.2.3 *** ChangeLog 24 Sep 2009 21:42:46 -0000 1.9.2.2 --- ChangeLog 25 Sep 2009 21:44:47 -0000 1.9.2.3 *************** *** 1,2 **** --- 1,15 ---- + 2009.09.25 Keith Marshall <kei...@us...> + + Correct syntax error, per MinGW-bug 2861359 + Release as MinGW-5.1.6.exe + + * mingw.nsi (PRODUCT_VERSION): Increment to 5.1.6. + (inetc::get): Add "" argument to /POPUP. + + * MinGW_LICENSE.rtf: Update for new PRODUCT_VERSION. + + * mingw.ini (Build): Increment to 12. + (Filename): Update to match PRODUCT_VERSION. + 2009.08.21 Keith Marshall <kei...@us...> Index: mingw.nsi =================================================================== RCS file: /cvsroot/mingw/MinGW/Attic/mingw.nsi,v retrieving revision 1.8.2.2 retrieving revision 1.8.2.3 diff -C2 -d -r1.8.2.2 -r1.8.2.3 *** mingw.nsi 24 Sep 2009 21:42:47 -0000 1.8.2.2 --- mingw.nsi 25 Sep 2009 21:44:47 -0000 1.8.2.3 *************** *** 7,11 **** ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "MinGW" ! !define PRODUCT_VERSION "5.1.5" !define PRODUCT_PUBLISHER "MinGW" !define PRODUCT_WEB_SITE "http://www.mingw.org" --- 7,11 ---- ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "MinGW" ! !define PRODUCT_VERSION "5.1.6" !define PRODUCT_PUBLISHER "MinGW" !define PRODUCT_WEB_SITE "http://www.mingw.org" *************** *** 597,601 **** DetailPrint "Downloading $Name" ! inetc::get /POPUP /CAPTION "Downloading $Name" /RESUME "Your connection appears to have dropped out. Reconnect your dial up or check your IE proxy settings." "http://downloads.sourceforge.net/mingw/$DownloadName" "$EXEDIR\$Name" /END Pop $0 StrCmp $0 "OK" DownLoadOK --- 597,601 ---- DetailPrint "Downloading $Name" ! inetc::get /POPUP "" /CAPTION "Downloading $Name" /RESUME "Your connection appears to have dropped out. Reconnect your dial up or check your IE proxy settings." "http://downloads.sourceforge.net/mingw/$DownloadName" "$EXEDIR\$Name" /END Pop $0 StrCmp $0 "OK" DownLoadOK |
|
From: Keith M. <kei...@us...> - 2009-09-25 21:44:57
|
Update of /cvsroot/mingw/MinGW/inifiles In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv25161/inifiles Modified Files: Tag: MinGW-5_1 mingw.ini Log Message: Fix MinGW-bug 2861359; release MinGW-5.1.6 Index: mingw.ini =================================================================== RCS file: /cvsroot/mingw/MinGW/inifiles/Attic/mingw.ini,v retrieving revision 1.12.2.4 retrieving revision 1.12.2.5 diff -C2 -d -r1.12.2.4 -r1.12.2.5 *** mingw.ini 24 Sep 2009 21:42:48 -0000 1.12.2.4 --- mingw.ini 25 Sep 2009 21:44:47 -0000 1.12.2.5 *************** *** 1,6 **** [mingw] ! Build=11 URL=http://prdownloads.sourceforge.net/mingw ! Filename=MinGW-5.1.5.exe packages=previous|current|candidate --- 1,6 ---- [mingw] ! Build=12 URL=http://prdownloads.sourceforge.net/mingw ! Filename=MinGW-5.1.6.exe packages=previous|current|candidate |
|
From: Keith M. <kei...@us...> - 2009-09-24 21:43:00
|
Update of /cvsroot/mingw/MinGW/inifiles In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv18627/inifiles Modified Files: Tag: MinGW-5_1 mingw.ini Log Message: Move 2009-08-21 updates to MinGW-5.1 branch Index: mingw.ini =================================================================== RCS file: /cvsroot/mingw/MinGW/inifiles/Attic/mingw.ini,v retrieving revision 1.12.2.3 retrieving revision 1.12.2.4 diff -C2 -d -r1.12.2.3 -r1.12.2.4 *** mingw.ini 1 May 2009 20:30:50 -0000 1.12.2.3 --- mingw.ini 24 Sep 2009 21:42:48 -0000 1.12.2.4 *************** *** 2,10 **** Build=11 URL=http://prdownloads.sourceforge.net/mingw ! Filename=MinGW-5.1.4.exe packages=previous|current|candidate [current] ! runtime=mingwrt-3.15.2-mingw32-dev.tar.gz|7200 w32api=w32api-3.13-mingw32-dev.tar.gz|14420 binutils=binutils-2.19.1-mingw32-bin.tar.gz|21093 --- 2,11 ---- Build=11 URL=http://prdownloads.sourceforge.net/mingw ! Filename=MinGW-5.1.5.exe packages=previous|current|candidate [current] ! runtime=mingwrt-3.15.2-mingw32-dev.tar.gz|7616 ! runtimeDLL=mingwrt-3.15.2-mingw32-dll.tar.gz|40 w32api=w32api-3.13-mingw32-dev.tar.gz|14420 binutils=binutils-2.19.1-mingw32-bin.tar.gz|21093 |
|
From: Keith M. <kei...@us...> - 2009-09-24 21:42:58
|
Update of /cvsroot/mingw/MinGW In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv18627 Modified Files: Tag: MinGW-5_1 ChangeLog MinGW_LICENSE.rtf mingw.nsi Log Message: Move 2009-08-21 updates to MinGW-5.1 branch Index: MinGW_LICENSE.rtf =================================================================== RCS file: /cvsroot/mingw/MinGW/Attic/MinGW_LICENSE.rtf,v retrieving revision 1.6.2.1 retrieving revision 1.6.2.2 diff -C2 -d -r1.6.2.1 -r1.6.2.2 *** MinGW_LICENSE.rtf 15 Aug 2008 13:31:01 -0000 1.6.2.1 --- MinGW_LICENSE.rtf 24 Sep 2009 21:42:47 -0000 1.6.2.2 *************** *** 2,6 **** {\colortbl ;\red0\green0\blue255;} \viewkind4\uc1\pard\nowidctlpar\qc\b\f0\fs28 Minimal GNU for Windows\par ! \i\fs24 Version 5.1.4\par \cf1\ul\i0\f1\fs20 http://www.mingw.org/\cf0\ulnone\i\f0\fs24\par \pard\nowidctlpar\b0\i0\f1\fs20\par --- 2,6 ---- {\colortbl ;\red0\green0\blue255;} \viewkind4\uc1\pard\nowidctlpar\qc\b\f0\fs28 Minimal GNU for Windows\par ! \i\fs24 Version 5.1.5\par \cf1\ul\i0\f1\fs20 http://www.mingw.org/\cf0\ulnone\i\f0\fs24\par \pard\nowidctlpar\b0\i0\f1\fs20\par *************** *** 18,20 **** Ea...@us...\par } ! \ No newline at end of file --- 18,20 ---- Ea...@us...\par } ! Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/MinGW/Attic/ChangeLog,v retrieving revision 1.9.2.1 retrieving revision 1.9.2.2 diff -C2 -d -r1.9.2.1 -r1.9.2.2 *** ChangeLog 15 Aug 2008 13:31:00 -0000 1.9.2.1 --- ChangeLog 24 Sep 2009 21:42:46 -0000 1.9.2.2 *************** *** 1,2 **** --- 1,18 ---- + 2009.08.21 Keith Marshall <kei...@us...> + + Support installation of MinGW Runtime from new distribution, + with separate development and DLL components. + + * mingw.nsi (PRODUCT_VERSION): Increment to 5.1.5. + (runtimeDLL): New variable; declare it; assign to... + (SecRuntimeDLL): ...this new section; process it. + (INIfiles): Update all references; make them match... + (inifiles): ...this actual directory name. + + * MinGW_LICENSE.rtf: Update for new PRODUCT_VERSION. + + * mingw.ini (Filename): Update to match PRODUCT_VERSION. + (runtimeDLL): Assign it. + 2008.05.14 Chris Sutcliffe <ir0...@us...> Index: mingw.nsi =================================================================== RCS file: /cvsroot/mingw/MinGW/Attic/mingw.nsi,v retrieving revision 1.8.2.1 retrieving revision 1.8.2.2 diff -C2 -d -r1.8.2.1 -r1.8.2.2 *** mingw.nsi 15 Aug 2008 13:31:04 -0000 1.8.2.1 --- mingw.nsi 24 Sep 2009 21:42:47 -0000 1.8.2.2 *************** *** 7,11 **** ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "MinGW" ! !define PRODUCT_VERSION "5.1.4" !define PRODUCT_PUBLISHER "MinGW" !define PRODUCT_WEB_SITE "http://www.mingw.org" --- 7,11 ---- ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "MinGW" ! !define PRODUCT_VERSION "5.1.5" !define PRODUCT_PUBLISHER "MinGW" !define PRODUCT_WEB_SITE "http://www.mingw.org" *************** *** 111,114 **** --- 111,115 ---- var runtime + var runtimeDLL var W32API var binutils *************** *** 129,132 **** --- 130,136 ---- SectionIn 1 2 3 SectionEnd + Section runtime SecRuntimeDLL + SectionIn 1 2 3 + SectionEnd Section w32api SecW32API SectionIn 1 2 *************** *** 169,172 **** --- 173,180 ---- Call DownloadIfNeeded + push ${SecRuntimeDLL} + push $runtimeDLL + Call DownloadIfNeeded + push ${SecW32API} push $W32API *************** *** 210,214 **** CreateDirectory $INSTDIR ! File / INIfiles\installed.ini WriteINIStr $INSTDIR\installed.ini "settings" "installtype" $Package --- 218,222 ---- CreateDirectory $INSTDIR ! File / inifiles\installed.ini WriteINIStr $INSTDIR\installed.ini "settings" "installtype" $Package *************** *** 220,223 **** --- 228,236 ---- Call ExtractTarball + push ${SecRuntimeDLL} + push $runtimeDLL + push "runtimeDLL" + Call ExtractTarball + push ${SecW32API} push $W32API *************** *** 359,363 **** extractINI: ; extract built in ini file ! File / INIfiles\mingw.ini ReadINIStr $R1 "$EXEDIR\mingw.ini" "mingw" "Build" --- 372,376 ---- extractINI: ; extract built in ini file ! File / inifiles\mingw.ini ReadINIStr $R1 "$EXEDIR\mingw.ini" "mingw" "Build" *************** *** 419,422 **** --- 432,436 ---- first_install: SectionSetText ${SecRuntime} "" + SectionSetText ${SecRuntimeDLL} "" SectionSetText ${SecW32API} "" SectionSetText ${SecBinutils} "" *************** *** 650,653 **** --- 664,675 ---- SectionSetSize ${SecRuntime} $R1 + ReadINIStr $R0 "$EXEDIR\mingw.ini" $Package "runtimeDLL" + ${If} $R0 == "" + ReadINIStr $R0 "$EXEDIR\mingw.ini" current "runtimeDLL" + ${EndIf} + ${StrTok} $runtimeDLL $R0 "|" 0 0 + ${StrTok} $R1 $R0 "|" 1 0 + SectionSetSize ${SecRuntimeDLL} $R1 + ReadINIStr $R0 "$EXEDIR\mingw.ini" $Package "w32api" ${If} $R0 == "" *************** *** 718,721 **** --- 740,749 ---- call CheckVersion + ReadINIStr $R0 "$INSTDIR\installed.ini" "components" "runtimeDLL" + push $R0 + push $runtimeDLL + push ${SecRuntimeDLL} + call CheckVersion + ReadINIStr $R0 "$INSTDIR\installed.ini" "components" "w32api" push $R0 |
|
From: Keith M. <kei...@us...> - 2009-09-17 18:37:12
|
Update of /cvsroot/mingw/lpr-enhanced In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22673 Modified Files: ChangeLog Log Message: lpr-enhanced-1.0.2 released Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/ChangeLog,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ChangeLog 15 Sep 2009 20:59:17 -0000 1.6 --- ChangeLog 17 Sep 2009 18:37:00 -0000 1.7 *************** *** 1,2 **** --- 1,6 ---- + 2009-09-17 Keith Marshall <kei...@us...> + + lpr-enhanced-1.0.2 released. + 2009-09-15 Keith Marshall <kei...@us...> |
|
From: Keith M. <kei...@us...> - 2009-09-15 20:59:28
|
Update of /cvsroot/mingw/lpr-enhanced In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv30898 Modified Files: ChangeLog Makefile.in Log Message: Make `install' / `uninstall' procedures more robust. Index: Makefile.in =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/Makefile.in,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Makefile.in 15 Sep 2009 20:17:02 -0000 1.4 --- Makefile.in 15 Sep 2009 20:59:17 -0000 1.5 *************** *** 92,98 **** # install-lpr-basic: ! if test -e ${bindir}/lpr.exe; then \ ! rm -f ${bindir}/lpr-basic.exe; \ ! mv ${bindir}/lpr.exe ${bindir}/lpr-basic.exe; \ fi --- 92,112 ---- # install-lpr-basic: ! if test -f ${bindir}/lpr.exe; then \ ! if test -f ${bindir}/lpr-basic.exe; then \ ! if cmp ${bindir}/lpr.exe ${bindir}/lpr-basic.exe > /dev/null 2>&1; \ ! then \ ! if test -h ${bindir}/lpr-basic.exe; then \ ! rm -f ${bindir}/lpr-basic.exe; \ ! mv ${bindir}/lpr.exe ${bindir}/lpr-basic.exe; \ ! else \ ! rm -f ${bindir}/lpr.exe; \ ! fi; \ ! else \ ! rm -f ${bindir}/lpr-orig.exe; \ ! mv ${bindir}/lpr.exe ${bindir}/lpr-orig.exe; \ ! fi; \ ! else \ ! mv ${bindir}/lpr.exe ${bindir}/lpr-basic.exe; \ ! fi; \ fi *************** *** 103,107 **** cd ${bindir}; $(LN_S) lpr-enhanced lpr; $(LN_S) lpr-enhanced lp $(INSTALL_DATA) example ${localstatedir}/spool/lp/config ! $(INSTALL_DATA) example ${sysconfdir}/printcap # 'uninstall' reverses the effect of an `install', removing those files --- 117,122 ---- cd ${bindir}; $(LN_S) lpr-enhanced lpr; $(LN_S) lpr-enhanced lp $(INSTALL_DATA) example ${localstatedir}/spool/lp/config ! test -f ${sysconfdir}/printcap || \ ! $(INSTALL_DATA) example ${sysconfdir}/printcap # 'uninstall' reverses the effect of an `install', removing those files *************** *** 111,120 **** # uninstall: rm -rf ${localstatedir}/spool/lp ! test rmdir ${localstatedir}/spool || true rm -f ${bindir}/lpr-enhanced ${bindir}/lpr ${bindir}/lp ! if test -e ${bindir}/lpr-basic.exe; then \ ! rm -f ${bindir}/lpr.exe; \ ! mv ${bindir}/lpr-basic.exe ${bindir}/lpr.exe; \ fi --- 126,144 ---- # uninstall: + if test -f ${sysconfdir}/printcap \ + && test -f ${localstatedir}/spool/lp/config/example \ + && cmp ${localstatedir}/spool/lp/config/example \ + ${sysconfdir}/printcap > /dev/null 2>&1; then \ + rm -f ${sysconfdir}/printcap; \ + fi rm -rf ${localstatedir}/spool/lp ! rmdir ${localstatedir}/spool || true rm -f ${bindir}/lpr-enhanced ${bindir}/lpr ${bindir}/lp ! if test ! -f ${bindir}/lpr.exe; then \ ! if test -f ${bindir}/lpr-orig.exe; then \ ! mv ${bindir}/lpr-orig.exe ${bindir}/lpr.exe; \ ! elif test -f ${bindir}/lpr-basic.exe; then \ ! cd ${bindir}; $(LN_S) lpr-basic.exe lpr.exe; \ ! fi; \ fi *************** *** 123,127 **** # accommodate, within a full distribution bundle, a preconfigured binary # installation image, together with supporting documentation and licence ! # packages, conforming to mingw.org packaging standards. # dist: srcdist bindist licdist docdist --- 147,151 ---- # accommodate, within a full distribution bundle, a preconfigured binary # installation image, together with supporting documentation and licence ! # packages, conforming to mingw.org packaging conventions. # dist: srcdist bindist licdist docdist *************** *** 164,167 **** --- 188,192 ---- install-lpr-enhanced cd $(STAGED)${bindir}; rm -f lp lpr + rm -f $(STAGED)${sysconfdir}/printcap (cd $(STAGED); $(MK_TAR) *) | $(ZIPCMD) > $(DISTNAME)-bin.$(ZIPEXT) rm -rf $(STAGED) Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ChangeLog 15 Sep 2009 20:17:02 -0000 1.5 --- ChangeLog 15 Sep 2009 20:59:17 -0000 1.6 *************** *** 1,4 **** --- 1,20 ---- 2009-09-15 Keith Marshall <kei...@us...> + Make `install' / `uninstall' procedures more robust. + + * Makefile.in (install-lpr-basic): Check for `lpr-basic.exe' as a + symbolic link; don't leave it dangling. Otherwise, don't overwrite it + if both it and `lpr.exe' exist; instead use `lpr-orig.exe' as backup + name for `lpr.exe', overwriting this alternative if required. + (install-lpr-enhanced): Don't clobber `${sysconfdir}/printcap' if it + is already present; don't ever include it in... + (bindist): ...this. + (uninstall): Correct syntactical misuse of `test rmdir ...'. + Don't remove `${sysconfdir}/printcap', if it differs from the copy + installed as `${localstatedir}/spool/lp/config.example'; reflect + backup name changes applied in `install-lpr-basic'. + + 2009-09-15 Keith Marshall <kei...@us...> + Reorganise file assignment to documentation / licence distributions. |
|
From: Keith M. <kei...@us...> - 2009-09-15 20:17:14
|
Update of /cvsroot/mingw/lpr-enhanced In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv27216 Modified Files: ChangeLog Makefile.in Log Message: Reorganise file assignment to documentation / licence distributions. Index: Makefile.in =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/Makefile.in,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile.in 15 Sep 2009 20:08:36 -0000 1.3 --- Makefile.in 15 Sep 2009 20:17:02 -0000 1.4 *************** *** 23,28 **** BIN_DISTFILES = lpr-enhanced example ! DOC_DISTFILES = README ! LIC_DISTFILES = AUTHORS COPYING srcdir = @srcdir@ --- 23,28 ---- BIN_DISTFILES = lpr-enhanced example ! DOC_DISTFILES = README AUTHORS ! LIC_DISTFILES = COPYING srcdir = @srcdir@ Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ChangeLog 15 Sep 2009 20:08:35 -0000 1.4 --- ChangeLog 15 Sep 2009 20:17:02 -0000 1.5 *************** *** 1,4 **** --- 1,11 ---- 2009-09-15 Keith Marshall <kei...@us...> + Reorganise file assignment to documentation / licence distributions. + + * Makefile.in (DOC_DISTFILES): Add `AUTHORS', removing it from... + (LIC_DISTFILES): ...this. + + 2009-09-15 Keith Marshall <kei...@us...> + * Makefile.in (bindist, docdist, licdist): Construct distribution tarballs directly, so eliminating... |
|
From: Keith M. <kei...@us...> - 2009-09-15 20:08:52
|
Update of /cvsroot/mingw/lpr-enhanced In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv26570 Modified Files: ChangeLog Makefile.in Log Message: Eliminate redundant recursive makes. Index: Makefile.in =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/Makefile.in,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.in 14 Sep 2009 21:18:48 -0000 1.2 --- Makefile.in 15 Sep 2009 20:08:36 -0000 1.3 *************** *** 138,141 **** --- 138,145 ---- STAGED = ./tmp + # The source distribution is created by replicating the distributable + # files from our working source directory, into an appropriately named + # local directory, and packaging that. + # srcdist: rm -rf ${SRC_DISTDIR} *************** *** 148,154 **** rm -rf ${SRC_DISTDIR} - bindist: all - $(MAKE) -$(MAKEFLAGS) prefix="" bindist-recursive - # To create a binary distribution, we perform a regular installation into # a local staging directory, overriding the configured `prefix'; note that --- 152,155 ---- *************** *** 156,160 **** # likely to have been configured independently of `prefix'. # ! bindist-recursive: rm -rf $(STAGED) $(MAKE) $(MFLAGS) prefix=`pwd`/$(STAGED) \ --- 157,161 ---- # likely to have been configured independently of `prefix'. # ! bindist: all rm -rf $(STAGED) $(MAKE) $(MFLAGS) prefix=`pwd`/$(STAGED) \ *************** *** 166,173 **** rm -rf $(STAGED) licdist: - $(MAKE) -$(MAKEFLAGS) prefix="" licdist-recursive - - licdist-recursive: rm -rf $(STAGED) $(MKDIR_P) $(STAGED)${DOC_DISTDIR} --- 167,175 ---- rm -rf $(STAGED) + # Conversely, the licence and other documentation file distributions are + # created, by simply replicating the source files in an appropriately named + # local staging directory, much as for the source distribution. + # licdist: rm -rf $(STAGED) $(MKDIR_P) $(STAGED)${DOC_DISTDIR} *************** *** 180,186 **** docdist: - $(MAKE) -$(MAKEFLAGS) prefix="" docdist-recursive - - docdist-recursive: rm -rf $(STAGED) $(MKDIR_P) $(STAGED)${DOC_DISTDIR} --- 182,185 ---- Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ChangeLog 14 Sep 2009 21:18:48 -0000 1.3 --- ChangeLog 15 Sep 2009 20:08:35 -0000 1.4 *************** *** 1,2 **** --- 1,9 ---- + 2009-09-15 Keith Marshall <kei...@us...> + + * Makefile.in (bindist, docdist, licdist): Construct distribution + tarballs directly, so eliminating... + (bindist-recursive, docdist-recursive, licdist-recursive): ...these + redundantly recursive goals respectively; remove them. + 2009-09-14 Charles Wilson <mi...@cw...> |
|
From: Keith M. <kei...@us...> - 2009-09-14 21:18:58
|
Update of /cvsroot/mingw/lpr-enhanced In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv19409 Modified Files: ChangeLog Makefile.in Log Message: Explicitly set `localstatedir' and `sysconfdir' for bindist staged installation. Index: Makefile.in =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/Makefile.in,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Makefile.in 11 Sep 2009 20:34:52 -0000 1.1 --- Makefile.in 14 Sep 2009 21:18:48 -0000 1.2 *************** *** 151,157 **** $(MAKE) -$(MAKEFLAGS) prefix="" bindist-recursive bindist-recursive: rm -rf $(STAGED) ! $(MAKE) -$(MAKEFLAGS) prefix=`pwd`/$(STAGED) install-lpr-enhanced cd $(STAGED)${bindir}; rm -f lp lpr (cd $(STAGED); $(MK_TAR) *) | $(ZIPCMD) > $(DISTNAME)-bin.$(ZIPEXT) --- 151,165 ---- $(MAKE) -$(MAKEFLAGS) prefix="" bindist-recursive + # To create a binary distribution, we perform a regular installation into + # a local staging directory, overriding the configured `prefix'; note that + # we must also override `localstatedir' and `sysconfdir', since these are + # likely to have been configured independently of `prefix'. + # bindist-recursive: rm -rf $(STAGED) ! $(MAKE) $(MFLAGS) prefix=`pwd`/$(STAGED) \ ! localstatedir=`pwd`/$(STAGED)${localstatedir} \ ! sysconfdir=`pwd`/$(STAGED)${sysconfdir} \ ! install-lpr-enhanced cd $(STAGED)${bindir}; rm -f lp lpr (cd $(STAGED); $(MK_TAR) *) | $(ZIPCMD) > $(DISTNAME)-bin.$(ZIPEXT) Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/ChangeLog,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ChangeLog 11 Sep 2009 20:34:52 -0000 1.2 --- ChangeLog 14 Sep 2009 21:18:48 -0000 1.3 *************** *** 1,2 **** --- 1,7 ---- + 2009-09-14 Charles Wilson <mi...@cw...> + + * Makefile.in (bindist-recursive): Explicitly set `localstatedir' and + `sysconfdir' for staged installation. + 2009-09-11 Keith Marshall <kei...@us...> |
|
From: Keith M. <kei...@us...> - 2009-09-11 20:35:10
|
Update of /cvsroot/mingw/lpr-enhanced In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv28129 Modified Files: ChangeLog README example.in lpr-enhanced.sh Added Files: .cvsignore .gitignore AUTHORS COPYING Makefile.in configure.ac install-sh Log Message: Incorporate Charles Wilson's 2009-08-28 updates --- NEW FILE: .cvsignore --- *.a *.o *.obj *.dll *.diff stamp-* INSTALL Makefile configure config.h.in aclocal.m4 autom4te.cache NEWS Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ChangeLog 10 Sep 2009 21:49:23 -0000 1.1 --- ChangeLog 11 Sep 2009 20:34:52 -0000 1.2 *************** *** 1,11 **** 2009-09-10 Keith Marshall <kei...@us...> ! Initial import, based on files from lpr-1.0.1-msys.tar.gz ! * usr/spool/lp/bin/lpr: Original script file... ! * lpr-enhanced.sh: ...renamed to this. ! * usr/spool/lp/config/example: Original sample configuration... ! * example.in: ...renamed to this. * usr/spool/lp/config/README: Original file, moved to top directory. --- 1,57 ---- + 2009-09-11 Keith Marshall <kei...@us...> + + Incorporate Charles Wilson's 2009-08-28 updates, excluding automake. + Include some additional minor bug-fixes and enhancements. + + * configure.ac: Exclude automake specifics. + * install-sh: New file, copied from autoconf-2.63 sources. + * m4/, build-aux/: Omit directories, and all content. + * Makefile.am, NEWS: Omit. + * Makefile.in: New file. + + * README: Elaborate installation instructions. + + * lpr-enhanced.sh (-#): Escape `\#' in case identification. + (PACKAGE_TARNAME, PACKAGE_VERSION): Add; use autoconf substitutions. + (prefix, exec_prefix): Do not define; remove all references. + (PRINTER): Make this environment variable setting override... + (LPDEST): ...this one, when emulating BSD `lpr'. + 2009-09-10 Keith Marshall <kei...@us...> ! Initial CVS import, based on files from lpr-1.0.1-msys.tar.gz ! * usr/spool/lp/bin/lpr: Original script file, moved... ! * lpr-enhanced.sh: ...and renamed to this. ! * usr/spool/lp/config/example: Original sample configuration, moved... ! * example.in: ...and renamed to this. * usr/spool/lp/config/README: Original file, moved to top directory. + + 2009-08-28 Charles Wilson <mi...@cw...> + + Prepare for repackaging, using autotools. + + * COPYING: New file. + * Makefile.am: New file. + * configure.ac: New file. + * AUTHORS: New file. + * NEWS: New file. + * usr/spool/lp/config/README: Move to top directory, as... + * README: ...this; modify paths to better mimic standard paths; + update build/install instructions for autotooled release. + * usr/spool/lp/bin/lpr: Move to top directory; rename to... + * lpr-enhanced.sh: ...this; make paths sensitive to configure vars. + * usr/spool/lp/config/example: Move to top directory; rename to... + * example.in: ...this; make paths sensitive to configure vars. + * .cvsignore: New file. + * .gitignore: New file. + * m4/.cvsignore: New file. + * m4/.gitignore: New file. + * build-aux/.cvsignore: New file. + * build-aux/.gitignore: New file. + + 2007-09-12 Keith Marshall <kei...@us...> + + lpr-1.0.1 released. --- NEW FILE: Makefile.in --- # @configure_input@ # Makefile for MSYS/Cygwin lpr-enhanced package. PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ # Written by Keith Marshall <kei...@us...> # Hereby donated to the public domain. # # This is free software. It is provided `as is', in the hope that it # may be useful. There is NO WARRANTY of ANY KIND; not even an implied # warranty of MERCHANTABILITY, nor of FITNESS for ANY PARTICULAR PURPOSE. # At no time will the author accept liability for damages, however caused, # resulting from the use of this software. SUBSYSTEM_NAME = msys SUBSYSTEM_VERSION = 1.0.11 SUBSYSTEM = $(SUBSYSTEM_NAME)-$(SUBSYSTEM_VERSION) SRC_DISTFILES = ChangeLog $(LIC_DISTFILES) $(DOC_DISTFILES) \ configure configure.ac Makefile.in install-sh lpr-enhanced.sh example.in BIN_DISTFILES = lpr-enhanced example DOC_DISTFILES = README LIC_DISTFILES = AUTHORS COPYING srcdir = @srcdir@ abs_top_srcdir = @abs_top_srcdir@ VPATH = $(srcdir) prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ datarootdir = @datarootdir@ sysconfdir = @sysconfdir@ localstatedir = @localstatedir@ docdir = @docdir@ # Conventionally, the `all' target is the default, to build everything; # in this case, that comprises the files needed for a binary distribution. # all: $(BIN_DISTFILES) # All files in the binary distribution are scripts; they are provided in # template form, requiring only to have some substitutions resolved by the # following sed script. # MAKE_ALL_SED_SCRIPT = \ -e 's,@'PACKAGE_TARNAME'@,$(PACKAGE_TARNAME),g' \ -e 's,@'PACKAGE_VERSION'@,$(PACKAGE_VERSION),g' \ -e 's,@'localstatedir'@,$(localstatedir),g' \ -e 's,@'sysconfdir'@,$(sysconfdir),g' \ -e 's,@'bindir'@,$(bindir),g' # Most templates require substitution alone... # %: %.in sed $(MAKE_ALL_SED_SCRIPT) $< > $@ # but, shell scripts should also be made executable. # %: %.sh sed $(MAKE_ALL_SED_SCRIPT) $< > $@ chmod 755 $@ # Installation... # This is conventionally done by `make install' or `make install-strip'; # We have nothing to strip, so `install' and `install-strip' may be synonyms. # install install-strip: installdirs install-lpr-basic install-lpr-enhanced MKDIR_P = @MKDIR_P@ INSTALL = @INSTALL@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_DATA = @INSTALL_DATA@ LN_S = @LN_S@ # The directories we need, to support our standard installation... # installdirs: $(MKDIR_P) ${bindir} ${sysconfdir} $(MKDIR_P) $(localstatedir)/spool/lp/config $(MKDIR_P) $(localstatedir)/spool/lp/debug $(MKDIR_P) $(localstatedir)/spool/lp/filter $(MKDIR_P) $(localstatedir)/spool/lp/log $(MKDIR_P) $(localstatedir)/spool/lp/tmp # If the user has cygutils' `lpr.exe' installed, we move it out of the way. # install-lpr-basic: if test -e ${bindir}/lpr.exe; then \ rm -f ${bindir}/lpr-basic.exe; \ mv ${bindir}/lpr.exe ${bindir}/lpr-basic.exe; \ fi # Installation of deliverables from this package. # install-lpr-enhanced: all installdirs $(INSTALL_SCRIPT) lpr-enhanced ${bindir} cd ${bindir}; $(LN_S) lpr-enhanced lpr; $(LN_S) lpr-enhanced lp $(INSTALL_DATA) example ${localstatedir}/spool/lp/config $(INSTALL_DATA) example ${sysconfdir}/printcap # 'uninstall' reverses the effect of an `install', removing those files # we installed in ${bindir} and ${sysconfdir}, together with the local state # directories normally associated exclusively with them; it also reinstates # cygutils' `lpr.exe', if it appears to have been moved out of the way. # uninstall: rm -rf ${localstatedir}/spool/lp test rmdir ${localstatedir}/spool || true rm -f ${bindir}/lpr-enhanced ${bindir}/lpr ${bindir}/lp if test -e ${bindir}/lpr-basic.exe; then \ rm -f ${bindir}/lpr.exe; \ mv ${bindir}/lpr-basic.exe ${bindir}/lpr.exe; \ fi # Distribution... # We must provide, at least, a source distribution package; we also # accommodate, within a full distribution bundle, a preconfigured binary # installation image, together with supporting documentation and licence # packages, conforming to mingw.org packaging standards. # dist: srcdist bindist licdist docdist MK_TAR = tar chf - ZIPCMD = lzma -c ZIPEXT = tar.lzma DISTNAME = $(SRC_DISTDIR)$(SNAPSHOT)-$(SUBSYSTEM) SRC_DISTDIR = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) DOC_DISTDIR = ${docdir}/$(PACKAGE_VERSION)$(SNAPSHOT) STAGED = ./tmp srcdist: rm -rf ${SRC_DISTDIR} mkdir ${SRC_DISTDIR} cd ${SRC_DISTDIR}; \ for file in $(SRC_DISTFILES); \ do $(LN_S) ${abs_top_srcdir}/$$file .; \ done $(MK_TAR) ${SRC_DISTDIR} | $(ZIPCMD) > $(DISTNAME)-src.$(ZIPEXT) rm -rf ${SRC_DISTDIR} bindist: all $(MAKE) -$(MAKEFLAGS) prefix="" bindist-recursive bindist-recursive: rm -rf $(STAGED) $(MAKE) -$(MAKEFLAGS) prefix=`pwd`/$(STAGED) install-lpr-enhanced cd $(STAGED)${bindir}; rm -f lp lpr (cd $(STAGED); $(MK_TAR) *) | $(ZIPCMD) > $(DISTNAME)-bin.$(ZIPEXT) rm -rf $(STAGED) licdist: $(MAKE) -$(MAKEFLAGS) prefix="" licdist-recursive licdist-recursive: rm -rf $(STAGED) $(MKDIR_P) $(STAGED)${DOC_DISTDIR} cd $(STAGED)${DOC_DISTDIR}; \ for file in $(LIC_DISTFILES); \ do $(LN_S) ${abs_top_srcdir}/$$file .; \ done (cd $(STAGED); $(MK_TAR) *) | $(ZIPCMD) > $(DISTNAME)-lic.$(ZIPEXT) rm -rf $(STAGED) docdist: $(MAKE) -$(MAKEFLAGS) prefix="" docdist-recursive docdist-recursive: rm -rf $(STAGED) $(MKDIR_P) $(STAGED)${DOC_DISTDIR} cd $(STAGED)${DOC_DISTDIR}; \ for file in $(DOC_DISTFILES); \ do $(LN_S) ${abs_top_srcdir}/$$file .; \ done (cd $(STAGED); $(MK_TAR) *) | $(ZIPCMD) > $(DISTNAME)-doc.$(ZIPEXT) rm -rf $(STAGED) # Source and build tree clean-up... # clean: rm -f $(BIN_DISTFILES) distclean: clean rm -f config.status config.log Makefile maintainer-clean: distclean rm -rf autom4te.cache rm -f configure *.$(ZIPEXT) # Makefile.in: end of file --- NEW FILE: .gitignore --- *.a *.o *.obj *.dll *.diff stamp-* INSTALL Makefile configure config.h.in aclocal.m4 autom4te.cache NEWS --- NEW FILE: configure.ac --- # -*- autoconf -*- vim: filetype=config # configure.ac for MSYS/Cygwin lpr-enhanced package. # # Written by Keith Marshall <kei...@us...> # Hereby donated to the public domain. # # This is free software. It is provided `as is', in the hope that it # may be useful. There is NO WARRANTY of ANY KIND; not even an implied # warranty of MERCHANTABILITY, nor of FITNESS for ANY PARTICULAR PURPOSE. # At no time will the author accept liability for damages, however caused, # resulting from the use of this software. m4_define([MINGW_AC_BUG_TRACKER], [http://sourceforge.net/tracker/?group_id=2435&atid=102435]dnl ) AC_INIT([lpr-enhanced], [1.0.2], [MINGW_AC_BUG_TRACKER]) AC_PROG_INSTALL AC_PROG_MKDIR_P AC_PROG_LN_S AC_CONFIG_FILES([Makefile]) AC_OUTPUT # configure.ac: end of file --- NEW FILE: COPYING --- Contributed by Keith Marshall <kei...@us...> Hereby donated to the public domain. This is free software. There is no warranty of any kind, not even any implied warranty of merchantibility, nor of fitness for any particular purpose; the author will, at no time, accept liability for damage of any kind, however caused, resulting from the use of this software. --- NEW FILE: AUTHORS --- Keith Marshall <kei...@us...> Original implementation. Charles Wilson <mi...@cw...> Initial autotool build framework. Index: README =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/README,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** README 10 Sep 2009 21:49:23 -0000 1.1 --- README 11 Sep 2009 20:34:52 -0000 1.2 *************** *** 1,4 **** ! README for lpr-1.0.1-MSYS ! ========================= Contributed by Keith Marshall <kei...@us...> --- 1,4 ---- ! README for lpr-enhanced-1.0.2 ! ============================= Contributed by Keith Marshall <kei...@us...> *************** *** 7,11 **** This package provides a rudimentary emulation of a UNIX System-V `lp', or BSD `lpr' command line interface to a MS-Windows print spooler; it is suitable for ! use with MSYS or with Cygwin. This is free software. There is no warranty of any kind, not even any implied --- 7,13 ---- This package provides a rudimentary emulation of a UNIX System-V `lp', or BSD `lpr' command line interface to a MS-Windows print spooler; it is suitable for ! use with MSYS or with Cygwin. It provides more features than the simplistic ! `lpr.exe' distributed with the cygutils package for both Cygwin and MSYS, but ! requires additional configuration; lpr.exe does its simple job out of the box. This is free software. There is no warranty of any kind, not even any implied *************** *** 14,25 **** caused, resulting from the use of this software. ! To install this software, simply extract the tarball into the root of your ! MSYS or Cygwin directory tree, and copy or link the `/usr/spool/lp/bin/lpr' ! script to `/usr/bin/lp' and/or to `/usr/bin/lpr'. You will also need to ! create a `/etc/printcap' file, based on `/usr/spool/lp/config/example', and ! adjusted to suit your printer spool configuration; (if your system supports ! file linking, you may also choose to keep a linked copy of `/etc/printcap' in ! `/usr/spool/lp/config/.active', or on any system, to use this as a exclusive ! alternative configuration file). ! Usage instructions are included, as comments, within the `lpr' script itself. --- 16,69 ---- caused, resulting from the use of this software. ! This software is provided in the forms of both source code and binary packages, ! (for use on MSYS); however, the most convenient method of installation is from ! the source code package. To install the software in this recommended manner, ! unpack the source distribution and execute (in the usual manner[*]): ! $ configure ! $ make all install ! ! [*] For a typical system configuration, the following configure arguments are ! recommended: ! ! $ configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc ! ! Note that installing from source code, in this manner, installs the script as ! `${exec_prefix}/bin/lpr-enhanced', and also creates copies, (symbolic links on ! Cygwin), providing appropriate functionality via scripts with the alternative ! names `${exec_prefix}/bin/lp' and `${exec_prefix}/bin/lpr'. Additionally, to ! avoid a potential conflict with the Cygwin (and MSYS) `lpr.exe', installed as ! part of the `cygutils' package on those platforms, if this program is already ! installed as `${exec_prefix}/bin/lpr.exe', it will be renamed to eliminate the ! conflict, as `${exec_prefix}/bin/lpr-basic.exe'. ! ! On the other hand, if you choose to install the binary package, you should be ! aware that it has been packaged for installation based on standard MSYS path ! conventions, (i.e. `/' and `/usr' represent the same physical directory), and ! you should unpack the distribution into your MSYS root directory. You should ! also note that, while the script is installed as `/bin/lpr-enhanced', (also to ! be found as `/usr/bin/lpr-enhanced'), neither of the alternatively named copies ! of the script is installed, nor is any already installed `/bin/lpr.exe' moved ! out of the way. Thus, to deploy the installed software for use (in place of ! the cygutils lpr.exe), after installation you must also do: ! ! $ cd /usr/bin ! $ mv lpr.exe lpr-basic.exe ! $ <LN> lpr-enhanced lp ! $ <LN> lpr-enhanced lpr ! ! where <LN> is 'ln -f', 'ln -fs', or 'cp', as desired. (You really want to ! avoid having both `lpr' and `lpr.exe' installed into the same directory; doing ! so may lead to a number of problems with cygwin-1.7 and cygwin-1.5 when the ! CYGWIN=transparent_exe option is set; it may also cause problems with MSYS). ! ! Finally, regardless of which installation method you have chosen, you must ! manually set up the printer definitions for your environment. Typically, this ! involves creating (or modifying) an `/etc/printcap' file, based on the sample ! in `/var/spool/lp/config/example', and adjusted to suit your printer spool ! configuration; (if your system supports file linking, you may also choose to ! keep a linked copy of `/etc/printcap' in `/var/spool/lp/config/.active', or ! on any system, to use this as an exclusive alternative configuration file). ! ! Usage instructions are included, as comments, within the `lpr-enhanced' ! script itself. --- NEW FILE: install-sh --- #!/bin/sh # install - install a program, script, or datafile scriptversion=2006-12-25.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Index: lpr-enhanced.sh =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/lpr-enhanced.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** lpr-enhanced.sh 10 Sep 2009 21:49:23 -0000 1.1 --- lpr-enhanced.sh 11 Sep 2009 20:34:52 -0000 1.2 *************** *** 1,5 **** #! /bin/bash #------------------------------------------------------------------------------- ! # lpr.sh v1.0.1, Copyright (C) 2002, 2007 by Keith Marshall #------------------------------------------------------------------------------- # --- 1,5 ---- #! /bin/bash #------------------------------------------------------------------------------- ! # @PACKAGE_TARNAME@.sh v@PACKAGE_VERSION@; Public Domain. #------------------------------------------------------------------------------- # *************** *** 11,23 **** # Description: # ! # This script is typically installed as "/usr/bin/lp", with support files in ! # "/usr/spool/lp". All printer specific configuration is established in the ! # file "/usr/spool/lp/config/.active"; this may typically be linked to ! # "/etc/printcap"; (symlinked for Cygwin; hard linked for MSYS on NTFS; if ! # preferred, just use /etc/printcap, especially with MSYS on FAT-32). # ! # A sample configuration is provided in "/usr/spool/lp/config/example". # ! # When invoked as "lpr", this implementation currently supports the # following subset of the standard capabilities of BSD "lpr" ... # --- 11,23 ---- # Description: # ! # This script is typically installed as "@bindir@/lp" and/or "@bindir@/lpr", ! # with support files in "@localstatedir@/spool/lp". All printer specific configuration ! # is established in the file "@localstatedir@/spool/lp/config/.active"; this may typically ! # be linked to "@sysconfdir@/printcap"; (symlinked for Cygwin; hard linked for MSYS on ! # NTFS; if preferred, just use @sysconfdir@/printcap, especially with MSYS on FAT-32). # ! # A sample configuration is provided in "@localstatedir@/spool/lp/config/example". # ! # When invoked as "lpr", this implementation currently supports the # following subset of the standard capabilities of BSD "lpr" ... # *************** *** 29,66 **** # the values of the environment variables LDPEST or # else PRINTER are substituted, in that order; if a ! # printer still has not been identified, then the ! # default set in "/usr/spool/lp/config/.active" is # used. # # -c selects a filter for printing "cifplot" formatted ! # output data, when a filter for this purpose is # defined in the printer configuration. # ! # -d selects a filter for printing "tex" device ! # independent output data, when a filter for this # purpose is defined in the printer configuration. # ! # -f selects a filter for printing output data with ! # FORTRAN carriage control formatting attributes, ! # when a filter for this purpose is defined in the # printer configuration. # ! # -g selects a filter for printing plot format output ! # data, when a filter for this purpose is defined # in the printer configuration. # # -n selects a filter for printing "ditroff" formatted ! # output data, when a filter for this purpose is # defined in the printer configuration. # ! # -t selects a filter for printing "troff" formatted ! # output data, when a filter for this purpose is # defined in the printer configuration. # # -v selects a filter for printing raster image output ! # data, when a filter for this purpose is defined # in the printer configuration. # ! # other "lpr" options, as described on the relevant "man" page, may be # specified; they will be silently ignored. # --- 29,66 ---- # the values of the environment variables LDPEST or # else PRINTER are substituted, in that order; if a ! # printer still has not been identified, then the ! # default set in "@localstatedir@/spool/lp/config/.active" is # used. # # -c selects a filter for printing "cifplot" formatted ! # output data, when a filter for this purpose is # defined in the printer configuration. # ! # -d selects a filter for printing "tex" device ! # independent output data, when a filter for this # purpose is defined in the printer configuration. # ! # -f selects a filter for printing output data with ! # FORTRAN carriage control formatting attributes, ! # when a filter for this purpose is defined in the # printer configuration. # ! # -g selects a filter for printing plot format output ! # data, when a filter for this purpose is defined # in the printer configuration. # # -n selects a filter for printing "ditroff" formatted ! # output data, when a filter for this purpose is # defined in the printer configuration. # ! # -t selects a filter for printing "troff" formatted ! # output data, when a filter for this purpose is # defined in the printer configuration. # # -v selects a filter for printing raster image output ! # data, when a filter for this purpose is defined # in the printer configuration. # ! # other "lpr" options, as described on the relevant "man" page, may be # specified; they will be silently ignored. # *************** *** 75,89 **** # the values of the environment variables LDPEST or # else PRINTER are substituted, in that order; if a ! # printer still has not been identified, then the ! # default set in "/usr/spool/lp/config/.active" is # used. # # -o OPTIONS specifies options to be passed to the filter used ! # to format files for output; these are passed as # typed, without validation. # # -s suppress informational messages. # ! # other "lp" options, as described on the relevant "man" page, may be # specified; they will be silently ignored. # --- 75,89 ---- # the values of the environment variables LDPEST or # else PRINTER are substituted, in that order; if a ! # printer still has not been identified, then the ! # default set in "/usr/spool/lp/config/.active" is # used. # # -o OPTIONS specifies options to be passed to the filter used ! # to format files for output; these are passed as # typed, without validation. # # -s suppress informational messages. # ! # other "lp" options, as described on the relevant "man" page, may be # specified; they will be silently ignored. # *************** *** 93,97 **** # for the spool file system used by "lp" ... # ! SPOOL=/usr/spool/lp # # and also the location of the printer configuration file ... --- 93,97 ---- # for the spool file system used by "lp" ... # ! SPOOL=@localstatedir@/spool/lp # # and also the location of the printer configuration file ... *************** *** 99,103 **** # LP_CONFIG_FILE=$SPOOL/config/.active ! test -r $LP_CONFIG_FILE || LP_CONFIG_FILE=/etc/printcap # # establish the default printer ... --- 99,103 ---- # LP_CONFIG_FILE=$SPOOL/config/.active ! test -r $LP_CONFIG_FILE || LP_CONFIG_FILE=@sysconfdir@/printcap # # establish the default printer ... *************** *** 125,130 **** # # when invoked as "lpr" ... ! # then we must honour the BSD option set ... # while getopts 1:2:3:4:"#":cC:dfghi:J:lmnpP:rstT:U:vw: opt do --- 125,132 ---- # # when invoked as "lpr" ... ! # then we must honour the BSD option set, and $PRINTER should ! # not be influenced by System V's $LPDEST setting ... # + LPDEST=$PRINTER while getopts 1:2:3:4:"#":cC:dfghi:J:lmnpP:rstT:U:vw: opt do *************** *** 134,138 **** 3) ;; 4) ;; ! #) ;; c) IF=cf ;; C) ;; --- 136,140 ---- 3) ;; 4) ;; ! \#) ;; c) IF=cf ;; C) ;; Index: example.in =================================================================== RCS file: /cvsroot/mingw/lpr-enhanced/example.in,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** example.in 10 Sep 2009 21:49:23 -0000 1.1 --- example.in 11 Sep 2009 20:34:52 -0000 1.2 *************** *** 121,125 **** ## # output to file ... ! # captures printer output in file "/usr/spool/lp/debug/output" ... # to assist in debugging of filters ... --- 121,125 ---- ## # output to file ... ! # captures printer output in file "@localstatedir@/spool/lp/debug/output" ... # to assist in debugging of filters ... *************** *** 127,131 **** :lp=/dev/null: :if=/bin/pr -e -h"$FILE":sf:lm#8:mi=o:\ ! :of=/usr/bin/tee /usr/spool/lp/debug/output:\ :pl=64:pw=85: --- 127,131 ---- :lp=/dev/null: :if=/bin/pr -e -h"$FILE":sf:lm#8:mi=o:\ ! :of=/usr/bin/tee @localstatedir@/spool/lp/debug/output:\ :pl=64:pw=85: |
|
From: Keith M. <kei...@us...> - 2009-09-10 21:49:35
|
Update of /cvsroot/mingw/lpr-enhanced In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv18293 Added Files: ChangeLog README example.in lpr-enhanced.sh Log Message: Initial import, based on files from lpr-1.0.1-msys.tar.gz --- NEW FILE: README --- README for lpr-1.0.1-MSYS ========================= Contributed by Keith Marshall <kei...@us...> Hereby donated to the public domain. This package provides a rudimentary emulation of a UNIX System-V `lp', or BSD `lpr' command line interface to a MS-Windows print spooler; it is suitable for use with MSYS or with Cygwin. This is free software. There is no warranty of any kind, not even any implied warranty of merchantibility, nor of fitness for any particular purpose; the author will, at no time, accept liability for damage of any kind, however caused, resulting from the use of this software. To install this software, simply extract the tarball into the root of your MSYS or Cygwin directory tree, and copy or link the `/usr/spool/lp/bin/lpr' script to `/usr/bin/lp' and/or to `/usr/bin/lpr'. You will also need to create a `/etc/printcap' file, based on `/usr/spool/lp/config/example', and adjusted to suit your printer spool configuration; (if your system supports file linking, you may also choose to keep a linked copy of `/etc/printcap' in `/usr/spool/lp/config/.active', or on any system, to use this as a exclusive alternative configuration file). Usage instructions are included, as comments, within the `lpr' script itself. --- NEW FILE: ChangeLog --- 2009-09-10 Keith Marshall <kei...@us...> Initial import, based on files from lpr-1.0.1-msys.tar.gz * usr/spool/lp/bin/lpr: Original script file... * lpr-enhanced.sh: ...renamed to this. * usr/spool/lp/config/example: Original sample configuration... * example.in: ...renamed to this. * usr/spool/lp/config/README: Original file, moved to top directory. --- NEW FILE: example.in --- # sample-printcap ## # # sample printer configuration for MSYS/Cygwin "lp" and "lpr" commands ... # contributed by Keith Marshall <kei...@us...> # # the format of this file closely follows that of BSD printcap ... # but only a subset of the BSD standard is currently implemented, viz. ... # # - each printer configuration record occupies ONE LOGICAL line # in the configuration file # - a LOGICAL line may be extended over multiple PHYSICAL lines, # by placing "\" as the last character on all but the last # PHYSICAL line # - comment lines may be introduced, by placing "#" as the first # non-blank character on the line # - each printer configuration record comprises a list of colon (":") # separated configuration data fields # - the LOGICAL printer name occupies the FIRST field of the # configuration record; there MUST be NO leading colon # - alternate printer names are supported, by specifing the name # field as a "|" separated list of alternate names; common usage # specifies: # primary-name|alt-name-1|...|alt-name-n|description # - additional configuration data fields, following the printer # name field, specify configuration parameters with ONE # "parameter=value" pair per field; parameters currently # supported by "lp" and "lpr" are restricted to: # :lp=output stream path of local printer: # :rp=share name of remote printer: # :rm=machine name for remote printer host: # :lf=full path name of log file for spooling error messages: # :sd=path to directory where spool files are written: # :ld=start of job leader string to initialise printer: # :if=inline filter for file formatting and spooling: # :of=output filter for job dispatch: # :pw#output page width as characters per line: # :pl#output page length as lines per page: # :ff=form feed string; default=\014: # :fo: ; boolean to force form feed at start of job # :fq: ; boolean to force form feed at end of job # :sf: ; boolean to suppress form feed between output files # :tr=end of job trailer string to reset printer: # - any arbitrary parameter, which is not listed above, may be # specified, but will be silently ignored # # in addition to the standard printcap implementation, as described above, # the system default printer is specified by including the special name # "<default>" as an alternate name for any ONE configured printer; # additionally, the implementation supports the following non-standard # printcap attributes: # # - :bg: boolean, set by default; use :bg@: to spool in foreground # # - :lm#margin columns: # number of character width columns used for left margin # # - :mi=margin indicator: # flag char to pass "lm" to "if", as in "$if -$mi$lm ..." # defaults to "i"; (WARNING: set :mi=o: if :if=/bin/pr ...:) # # CAUTION: # string arguments to "ff", "ld" and "tr" parameters are represented in a # form suitable for interpretation by "echo -en"; they CANNOT contain # embedded ":" or "|" characters; however these may be represented using # the octal escape notation, as "\072" and "\174" respectively # ## # # sample printer configurations follow ... # ## ## # remote colour LaserJet set up for A4 paper ... # with 85 characters per line @ 12 cpi, 64 lines per page @ 6 lpi ... # ( may need enhanced "if" to handle colour ) ... LPT1|PRINTER1|Print Room Colour LaserJet 4550:\ :rm=printserver:\ :rp=PRINTER1:\ :of=/usr/bin/unix2dos --unix2dos:\ :if=/bin/pr -e -h"$FILE":sf:lm#8:mi=o:\ :ld=\033E\033&l0O\033(s1B\033&l6d3E\033&k4S\033&a0L:\ :pl#64:\ :pw#85:\ :tr=\0339: ## # B/W LaserJet set up as system default, using A4 paper ... # with 85 characters per line @ 12 cpi, 64 lines per page @ 6 lpi ... # ( note that Cygwin allows UNC path to reference remote printer as local ) ... LPT2|PRINTER2|Local LaserJet 4100|<default>:\ :lp=//printserver/PRINTER2:\ :of=/usr/bin/unix2dos --unix2dos:\ :if=/bin/pr -e -h"$FILE":sf:lm#8:mi=o:\ :ld=\033E\033&l0O\033(s1B\033&l6d3E\033&k4S\033&a0L:\ :pl#64:\ :pw#85:\ :tr=\0339: ## # on screen print previewer ... # set up to mimic the page layout of the default printer ... # but with output to the screen, via the "less" pager ... PREVIEW|TTY|OnScreen Previewer:\ :lp=/dev/tty:bg@:\ :if=/bin/pr -e -h"$FILE":mi=o:\ :of=/bin/less -S:\ :pl#64:pw#85:sf: ## # zero output device ... # discards ALL printer output; can be useful while debugging filters ... DISCARD|NUL|NULL|Bit Bucket (useful for system testing):\ :lp=/dev/null: ## # output to file ... # captures printer output in file "/usr/spool/lp/debug/output" ... # to assist in debugging of filters ... DEBUG|Capture Output to Debugging File:\ :lp=/dev/null: :if=/bin/pr -e -h"$FILE":sf:lm#8:mi=o:\ :of=/usr/bin/tee /usr/spool/lp/debug/output:\ :pl=64:pw=85: ## # sample-printcap: end of file --- NEW FILE: lpr-enhanced.sh --- #! /bin/bash #------------------------------------------------------------------------------- # lpr.sh v1.0.1, Copyright (C) 2002, 2007 by Keith Marshall #------------------------------------------------------------------------------- # # Shell script for use under MSYS or Cygwin, providing a daemonless emulation # of the UNIX System V "lp", or BSD "lpr", line printing utility. # # Author: Keith Marshall <kei...@us...> # # Description: # # This script is typically installed as "/usr/bin/lp", with support files in # "/usr/spool/lp". All printer specific configuration is established in the # file "/usr/spool/lp/config/.active"; this may typically be linked to # "/etc/printcap"; (symlinked for Cygwin; hard linked for MSYS on NTFS; if # preferred, just use /etc/printcap, especially with MSYS on FAT-32). # # A sample configuration is provided in "/usr/spool/lp/config/example". # # When invoked as "lpr", this implementation currently supports the # following subset of the standard capabilities of BSD "lpr" ... # # lpr [-P PRINTER] [-cdfgntv] file ... # # where ... # # -P PRINTER specifies the printer to be used; if not supplied # the values of the environment variables LDPEST or # else PRINTER are substituted, in that order; if a # printer still has not been identified, then the # default set in "/usr/spool/lp/config/.active" is # used. # # -c selects a filter for printing "cifplot" formatted # output data, when a filter for this purpose is # defined in the printer configuration. # # -d selects a filter for printing "tex" device # independent output data, when a filter for this # purpose is defined in the printer configuration. # # -f selects a filter for printing output data with # FORTRAN carriage control formatting attributes, # when a filter for this purpose is defined in the # printer configuration. # # -g selects a filter for printing plot format output # data, when a filter for this purpose is defined # in the printer configuration. # # -n selects a filter for printing "ditroff" formatted # output data, when a filter for this purpose is # defined in the printer configuration. # # -t selects a filter for printing "troff" formatted # output data, when a filter for this purpose is # defined in the printer configuration. # # -v selects a filter for printing raster image output # data, when a filter for this purpose is defined # in the printer configuration. # # other "lpr" options, as described on the relevant "man" page, may be # specified; they will be silently ignored. # # When invoked as "lp", this implementation currently supports the following # subset of the normal capabilities of UNIX System V "lp" ... # # lp [-d PRINTER] [-o OPTIONS] [-s] file ... # # where ... # # -d PRINTER specifies the printer to be used; if not supplied # the values of the environment variables LDPEST or # else PRINTER are substituted, in that order; if a # printer still has not been identified, then the # default set in "/usr/spool/lp/config/.active" is # used. # # -o OPTIONS specifies options to be passed to the filter used # to format files for output; these are passed as # typed, without validation. # # -s suppress informational messages. # # other "lp" options, as described on the relevant "man" page, may be # specified; they will be silently ignored. # #------------------------------------------------------------------------------- # # first identify the base path ... # for the spool file system used by "lp" ... # SPOOL=/usr/spool/lp # # and also the location of the printer configuration file ... # (default is $SPOOL/config/.active, with fall back to /etc/printcap) ... # LP_CONFIG_FILE=$SPOOL/config/.active test -r $LP_CONFIG_FILE || LP_CONFIG_FILE=/etc/printcap # # establish the default printer ... # inheriting any "$PRINTER" setting from the environment ... # otherwise, using the default established in the "$LP_CONFIG_FILE" ... # : ${PRINTER:="<default>"} # # if specified in the environment ... # the System V compatible "$LPDEST" overrides "$PRINTER" assignment ... # : ${LPDEST:=$PRINTER} # # make sure we don't inherit any exported settings ... # for parameters we want to conditionally establish locally ... # unset LP_SERVER LP_DEVICE LP_STREAM LP_FILTER LP_DRIVER unset LPSTAT LPOPTS LM MI PL PW FF FQ # # we can now parse the "lp" command line options ... # ( this may override the default "$LPDEST" ) ... # if test "${CMD:=$(basename $0)}" = "lpr" then # # when invoked as "lpr" ... # then we must honour the BSD option set ... # while getopts 1:2:3:4:"#":cC:dfghi:J:lmnpP:rstT:U:vw: opt do case $opt in 1) ;; 2) ;; 3) ;; 4) ;; #) ;; c) IF=cf ;; C) ;; d) IF=df ;; f) IF=rf ;; g) IF=gf ;; h) ;; i) LM=$OPTARG echo $LM | grep -q "[^0-9]" && LM=8 OPTIND=$(($OPTIND-1)) ;; J) ;; l) ;; m) ;; n) IF=nf ;; p) ;; P) LPDEST=$OPTARG ;; r) ;; s) ;; t) IF=tf ;; T) ;; U) ;; v) IF=vf ;; w) PW=$OPTARG ;; *) exit 1 ;; esac done # else # # when invoked as "lp" ... # then we honour the UNIX System V "lp" option set ... # while getopts cd:f:H:imn:o:pP:q:rsS:t:T:wy: opt do case $opt in c) ;; d) LPDEST=$OPTARG ;; f) ;; H) ;; i) ;; m) ;; n) ;; o) LPOPTS=${LPOPTS:+"$LPOPTS "}$OPTARG ;; p) ;; P) ;; q) ;; r) ;; s) LPSTAT=/dev/null ;; S) ;; t) ;; T) ;; w) ;; y) ;; *) exit 1 ;; esac done fi # # with any supplied options safely interpreted ... # we can now delete them from the command line ... # leaving just the list of files to print ... # shift $(( $OPTIND - 1 )) # # now we must extract the configuration record for the target printer ... # from the printer configuration file ... # UNCOMMENT="-e /^[`echo -en \\011\\040`]*#/d" GET_CONFIG="-e s/|/:/g -e /$LPDEST:/,/[^\\]\$/p" LP_CONFIG=`sed -n $UNCOMMENT $GET_CONFIG $LP_CONFIG_FILE | tr -d '\012'` unset UNCOMMENT GET_CONFIG # # if we are using the default printer ... # then we should resolve it back to its primary system name ... # test "$LPDEST" = "<default>" && LPDEST=$(echo "$LP_CONFIG" | cut -d: -f1) # # now we can use the following functions ... # function extract() { # to identify printer specific options ... # from the configuration field identified by the "$1" function argument ... # provided such a field is defined for the current printer ... # if echo $2 | grep -q "^.*:$1[=#]" then echo $2 | sed -e s/"^.*:$1[=#]"// -e s/':.*$'// fi } # # and ... # function asserted() { # to test if a specified printcap flag ... # is asserted or revoked for the current printer ... # DEFAULT_YES=0 DEFAULT_NO=1 # echo $2 | grep -q ":$1:" && return $DEFAULT_YES echo $2 | grep -q ":$1@:" && return $DEFAULT_NO return ${3:-$DEFAULT_NO} } # # now we attempt to identify the printer output stream ... # initially assuming it is configured by an "lp" (local printer) record ... # : ${LP_SERVER:=${LP_DEVICE:=${LP_STREAM:=$(extract lp "$LP_CONFIG")}}} # # if we didn't find a local printer definition ... # then we MUST have an "rp" (remote printer) configuration ... # : ${LP_DEVICE:=$(extract rp "$LP_CONFIG")} : ${LP_DEVICE:?"printer '$LPDEST' not configured"} # # a remote printer definition ... # MUST be supported by an "rm" (remote machine) server configuration ... # : ${LP_STREAM:=//${LP_SERVER:=$(extract rm "$LP_CONFIG")}/$LP_DEVICE} : ${LP_SERVER:?"remote printer '$LPDEST' has no known server"} # # once we have established "LP_STREAM" ... # we can safely forget about "LP_SERVER" and "LP_DEVICE" ... # unset LP_SERVER LP_DEVICE # # request a unique print job identifier ... # by evaluation of the "lpd job index" registry entry ... # # (The following three commented commands work only for Cygwin) ... # # LP_REGKEY="/user/Software/Cygnus Solutions/Cygwin/Program Options/lpd" # regtool -q check "$LP_REGKEY" || regtool -q add "$LP_REGKEY" # LP_JOBKEY=$(regtool -q get "$LP_REGKEY/job index") # # On MSYS, we don't have the `regtool' command, so we track the index in # a data file instead; (this works on Cygwin too, in place of the above # use of `regtool'; Cygwin users may comment these, and uncomment above, # if use of the registry is preferred) ... # test -d ${LP_REGKEY="/usr/spool/lp/data"} || mkdir -p $LP_REGKEY test -f $LP_REGKEY/.job.id && LP_JOBKEY=$( cat $LP_REGKEY/.job.id ) LP_JOBKEY=$(( ${LP_JOBKEY:-0} + 1 )) # # we generate a serial number for the current print job ... # by incrementing the index returned from the registry lookup ... # wrapping around to one, when we exceed 32767 ... # test $LP_JOBKEY -ge 32767 && LP_JOBKEY=1 # # we must now update the job index in the registry ... # before we forget the key name ... # # regtool -q set "$LP_REGKEY/job index" $LP_JOBKEY echo $LP_JOBKEY > $LP_REGKEY/.job.id unset LP_REGKEY # # we can now format the print job identifier ... # from the target printer name and job serial number ... # LP_JOBKEY=$(printf "%s-%04d" "$LPDEST" $LP_JOBKEY) # # process a single file named "-" ... # as if no file list was specified ... # test "$*" = "-" && set -- # # unless suppressed by "-s" command line option ... # log a "request id" message ... # test $# -gt 0 || FILES="1 file (standard input)" eval echo '"request id is $LP_JOBKEY; ${FILES:-$# file(s)}" >'${LPSTAT:-"&2"} unset FILES # # define a function ... # to handle the actual printing operation ... # function spool() { # # set up a temporary spool file ... # and initialise it, by writing any specified job leader string ... # LP_SPOOL_FILE=$(extract sd "$LP_CONFIG") LP_SPOOL_FILE=${LP_SPOOL_FILE:-"$SPOOL/tmp"}/$LP_JOBKEY echo -en $(extract ld "$LP_CONFIG") > $LP_SPOOL_FILE # # set up form feed controls ... # : ${FF:=$(extract ff "$LP_CONFIG")} : ${FQ:=${FF:='\014'}} # # output an initial form feed, if required ... # asserted fo "$LP_CONFIG" $DEFAULT_NO && echo -en "$FF" >> $LP_SPOOL_FILE # # activate form feed suppression, if required ... # asserted sf "$LP_CONFIG" $DEFAULT_NO && unset FF # # identify the formatting and output filters ... # applicable for this print job ... # : ${LP_DRIVER:=$(extract ${OF:-of} "$LP_CONFIG")} : ${LP_FILTER:=$(extract ${IF:-if} "$LP_CONFIG")} # # if "$LP_CONFIG" doesn't specify a formatting filter ... # then force the margin indicator character to "o" ... # and default to using "/bin/pr" with tab expansion ... # : ${LP_FILTER:-${MI:="o"}} : ${LP_FILTER:='/bin/pr -e -h$FILE'} # # establish the printer's default page size ... # : ${PW:=$(extract pw "$LP_CONFIG")} : ${PL:=$(extract pl "$LP_CONFIG")} # # establish the width for the optional left margin ... # : ${MI:=$(extract mi "$LP_CONFIG")} : ${LM:=$(extract lm "$LP_CONFIG")} # # pass the page size and margin settings to the formatting filter ... # by prepending to the "$LPOPTS" string ... # LPOPTS=${PW:+"-w$PW "}${PL:+"-l$PL "}${LM:+"-${MI:-i}$LM "}$LPOPTS # # establish a destination for any error messages ... # LP_LOG_FILE=$(extract lf "$LP_CONFIG") exec 2>> ${LP_LOG_FILE:-"/dev/tty"} # # loop over all specified files to be printed ... # test $# -gt 0 || set -- - for FILE do # # when the specified file is at least readable ... # if test "$FILE" = "-" -o -r $FILE then # # pass it through the formatting filter ... # and append it to the spool file, followed by a page eject ... # test "$FILE" = "-" && FILE=" " /bin/cat $FILE | eval $LP_FILTER $LPOPTS >> $LP_SPOOL_FILE echo -en "$FF" >> $LP_SPOOL_FILE # else # # when the file is NOT readable ... # write an appropriate message to the error log ... # echo $0: $LPDEST: $FILE: cannot access file >&2 # fi done # # after all files have been processed ... # output a terminal form feed, if required ... # and append the configured job termination string (if any) ... # asserted fq "$LP_CONFIG" $DEFAULT_NO && echo -en "$FQ" >> $LP_SPOOL_FILE echo -en $(extract tr "$LP_CONFIG") >> $LP_SPOOL_FILE # # and finally ... # push the spool file to the printer output stream ... # through any applicable output filter ... # and then delete the spool file ... # eval /bin/cat $LP_SPOOL_FILE ${LP_DRIVER:+"| $LP_DRIVER"} > $LP_STREAM /bin/rm -f $LP_SPOOL_FILE # } # # and finally ... # invoke the printing function ... # if asserted bg "$LP_CONFIG" $DEFAULT_YES then # # forking a background process to complete it ... # when background printing is supported by the printer configuration ... # spool "$@" & # else # # otherwise ... # we must keep the print job in the foreground ... # spool "$@" fi # #------------------------------------------------------------------------------- # lpr: end of file |