rpms/hplip/devel hplip-revert-hpijs.patch, NONE, 1.1 hplip.spec, 1.62, 1.63

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Apr 4 11:43:46 UTC 2006


Author: twaugh

Update of /cvs/dist/rpms/hplip/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv30374

Modified Files:
	hplip.spec 
Added Files:
	hplip-revert-hpijs.patch 
Log Message:
- Last known working hpijs comes from 0.9.8, so use that.

hplip-revert-hpijs.patch:
 Makefile.am                       |   33 
 Makefile.am.0.9.8-4               |  313 ++
 Makefile.in                       |   66 
 PrinterProperties.cpp             |  182 -
 PrinterProperties.h               |  130 -
 configure                         |   21 
 configure.in                      |    3 
 context.cpp                       |    2 
 dj3600.h                          |    1 
 gdevijs-krgb-1.1.patch            |  302 ++
 gdevijs-krgb-1.2-gs7.07.patch     |  616 -----
 gdevijs-krgb-1.2-gs8.50.patch     |  614 -----
 hpijs.cpp                         |   26 
 hpijs_readme.html                 |   13 
 hpijs_readme.html.0.9.8-4         | 4147 ++++++++++++++++++++++++++++++++++++++
 hpijsfax.cpp                      |    2 
 ljfastraster.cpp.0.9.8-4          | 1278 +++++++++++
 ppd/HP-DeskJet_F300-hpijs.ppd     |  440 ----
 ppd/HP-Fax-hplip.ppd              |  129 +
 ppd/HP-LaserJet_3030-hpijs.ppd    |    2 
 ppd/HP_Business_Inkjet_2800.ppd   |    2 
 ppd/HP_Color_LaserJet_2605.ppd    | 1875 +++++++++++++++++
 ppd/HP_LaserJet_1200.ppd          |    4 
 ppd/HP_LaserJet_1220.ppd          |    4 
 ppd/HP_LaserJet_1320_Series.ppd   |    4 
 ppd/HP_LaserJet_2200.ppd          |    4 
 ppd/HP_LaserJet_2410.ppd          |    4 
 ppd/HP_LaserJet_2420.ppd          |    4 
 ppd/HP_LaserJet_2430.ppd          |    4 
 ppd/HP_LaserJet_3200.ppd          |    4 
 ppd/HP_LaserJet_3300_Series.ppd   |    4 
 ppd/HP_LaserJet_4050_Series.ppd   |    4 
 ppd/HP_LaserJet_4100_MFP.ppd      |    4 
 ppd/HP_LaserJet_4100_Series.ppd   |    4 
 ppd/HP_LaserJet_4240.ppd          |    4 
 ppd/HP_LaserJet_4250.ppd          |    4 
 ppd/HP_LaserJet_4345_MFP.ppd      |    4 
 ppd/HP_LaserJet_4350.ppd          |    4 
 ppd/HP_LaserJet_8000_Series.ppd   |    4 
 ppd/HP_LaserJet_8100_Series.ppd   |    4 
 ppd/HP_LaserJet_8150_Series.ppd   |    4 
 ppd/HP_LaserJet_9000_MFP.ppd      |    4 
 ppd/HP_LaserJet_9000_Series.ppd   |    4 
 ppd/HP_LaserJet_9040.ppd          |    4 
 ppd/HP_LaserJet_9040_9050_MFP.ppd |    4 
 ppd/HP_LaserJet_9050.ppd          |    4 
 ppd/HP_Mopier_240.ppd             |    4 
 ppd/HP_Mopier_320.ppd             |    4 
 ppd/hp_LaserJet_1300_series.ppd   |    4 
 ppd/hp_LaserJet_2300.ppd          |    4 
 ppd/hp_LaserJet_3015.ppd          |    4 
 ppd/hp_LaserJet_3020_3030.ppd     |    4 
 ppd/hp_LaserJet_3380.ppd          |    4 
 ppd/hp_LaserJet_4200_Series.ppd   |    4 
 ppd/hp_LaserJet_4300_Series.ppd   |    4 
 services.cpp                      |    3 
 56 files changed, 8176 insertions(+), 2156 deletions(-)

--- NEW FILE hplip-revert-hpijs.patch ---
diff -durN hplip-0.9.10/prnt/hpijs/configure hplip-0.9.8/prnt/hpijs/configure
--- hplip-0.9.10/prnt/hpijs/configure	2006-03-21 20:00:12.000000000 +0000
+++ hplip-0.9.8/prnt/hpijs/configure	2006-01-28 00:02:18.000000000 +0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for HP Printer Driver 2.1.9.
+# Generated by GNU Autoconf 2.59 for HP Printer Driver 2.1.7x.
 #
 # Copyright (C) 2003 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
@@ -421,8 +421,8 @@
 # Identity of this package.
 PACKAGE_NAME='HP Printer Driver'
 PACKAGE_TARNAME='hpijs'
-PACKAGE_VERSION='2.1.9'
-PACKAGE_STRING='HP Printer Driver 2.1.9'
+PACKAGE_VERSION='2.1.7x'
+PACKAGE_STRING='HP Printer Driver 2.1.7x'
 PACKAGE_BUGREPORT=''
 
 # Factoring default headers for most tests.
@@ -952,7 +952,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures HP Printer Driver 2.1.9 to adapt to many kinds of systems.
+\`configure' configures HP Printer Driver 2.1.7x to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1018,7 +1018,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of HP Printer Driver 2.1.9:";;
+     short | recursive ) echo "Configuration of HP Printer Driver 2.1.7x:";;
    esac
   cat <<\_ACEOF
 
@@ -1159,7 +1159,7 @@
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-HP Printer Driver configure 2.1.9
+HP Printer Driver configure 2.1.7x
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1173,7 +1173,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by HP Printer Driver $as_me 2.1.9, which was
+It was created by HP Printer Driver $as_me 2.1.7x, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -1816,7 +1816,7 @@
 
 # Define the identity of the package.
  PACKAGE='hpijs'
- VERSION='2.1.9'
+ VERSION='2.1.7x'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -21788,7 +21788,7 @@
 -DAPDK_DJ890 -DAPDK_DJ3320 -DAPDK_LJCOLOR -DAPDK_DJGENERICVIP \
 -DAPDK_LJJETREADY  -DAPDK_LJFASTRASTER \
 -DAPDK_BUFFER_SEND -DAPDK_LDL_COMPRESS -DAPDK_EXTENDED_MEDIASIZE \
--DAPDK_MLC_PRINTER -DAPDK_DJ3600 -DAPDK_LINUX $NDBFLAG"
+-DAPDK_MLC_PRINTER -DAPDK_DJ3600 -DAPDK_LINUX"
 
 # Autoconf-style header tests for APDK
 cat >auto-include.h <<EOFH
@@ -22821,7 +22821,7 @@
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by HP Printer Driver $as_me 2.1.9, which was
+This file was extended by HP Printer Driver $as_me 2.1.7x, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -22879,7 +22879,7 @@
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-HP Printer Driver config.status 2.1.9
+HP Printer Driver config.status 2.1.7x
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
diff -durN hplip-0.9.10/prnt/hpijs/configure.in hplip-0.9.8/prnt/hpijs/configure.in
--- hplip-0.9.10/prnt/hpijs/configure.in	2006-03-21 18:01:25.000000000 +0000
+++ hplip-0.9.8/prnt/hpijs/configure.in	2005-12-02 20:05:09.000000000 +0000
@@ -5,7 +5,7 @@
 #
 
 AC_PREREQ(2.59)
-AC_INIT([HP Printer Driver], 2.1.9,, hpijs)
+AC_INIT([HP Printer Driver], 2.1.7x,, hpijs)
 AM_INIT_AUTOMAKE([1.9 foreign])
 AC_PROG_LIBTOOL
 AC_CONFIG_SRCDIR([hpijs.cpp])
@@ -38,7 +38,7 @@
 -DAPDK_DJ890 -DAPDK_DJ3320 -DAPDK_LJCOLOR -DAPDK_DJGENERICVIP \
 -DAPDK_LJJETREADY  -DAPDK_LJFASTRASTER \
 -DAPDK_BUFFER_SEND -DAPDK_LDL_COMPRESS -DAPDK_EXTENDED_MEDIASIZE \
--DAPDK_MLC_PRINTER -DAPDK_DJ3600 -DAPDK_LINUX $NDBFLAG"
+-DAPDK_MLC_PRINTER -DAPDK_DJ3600 -DAPDK_LINUX"
 
 # Autoconf-style header tests for APDK
 cat >auto-include.h <<EOFH
diff -durN hplip-0.9.10/prnt/hpijs/context.cpp hplip-0.9.8/prnt/hpijs/context.cpp
--- hplip-0.9.10/prnt/hpijs/context.cpp	2006-03-22 22:50:45.000000000 +0000
+++ hplip-0.9.8/prnt/hpijs/context.cpp	2006-01-30 20:48:09.000000000 +0000
@@ -1156,7 +1156,6 @@
     if (thePrinter)     // if printer exists due to bidi or previous call
     {
         delete thePrinter;
-        thePrinter = NULL;
     }
 
     err = DR->SelectDevice(Model);
@@ -1227,7 +1226,6 @@
     if (thePrinter)     // if printer exists due to bidi or previous call
     {
         delete thePrinter;
-        thePrinter = NULL;
     }
 
     FAMILY_HANDLE familyHandle = pPFI->FindDevIdMatch(szDeviceId);
diff -durN hplip-0.9.10/prnt/hpijs/dj3600.h hplip-0.9.8/prnt/hpijs/dj3600.h
--- hplip-0.9.10/prnt/hpijs/dj3600.h	2006-03-22 22:50:45.000000000 +0000
+++ hplip-0.9.8/prnt/hpijs/dj3600.h	2006-01-30 20:48:09.000000000 +0000
@@ -62,7 +62,6 @@
         "Deskjet 3745\0"
 		"Deskjet 3840\0"
         "Deskjet 3845\0"
-        "Deskjet F300\0"
 #ifdef APDK_MLC_PRINTER
 		"officejet 5500\0"
         "Officejet 5600\0"
diff -durN hplip-0.9.10/prnt/hpijs/gdevijs-krgb-1.1.patch hplip-0.9.8/prnt/hpijs/gdevijs-krgb-1.1.patch
--- hplip-0.9.10/prnt/hpijs/gdevijs-krgb-1.1.patch	1970-01-01 01:00:00.000000000 +0100
+++ hplip-0.9.8/prnt/hpijs/gdevijs-krgb-1.1.patch	2005-02-25 20:24:46.000000000 +0000
@@ -0,0 +1,660 @@
+diff -uNr old/gdevijs.c new/gdevijs.c
+--- old/gdevijs.c	2005-02-20 15:43:15.284386019 -0800
++++ new/gdevijs.c	2005-02-20 15:43:36.682297237 -0800
+@@ -27,15 +27,29 @@
+  * which is a security risk, since any program can be run.
+  * You should use -dSAFER which sets .LockSafetyParams to true 
+  * before opening this device.
++ *
++ * 11/26/03 David Suffield
++ * (c) 2003-2004 Copyright Hewlett-Packard Development Company, LP
++ *
++ * 1. Removed hpijs 1.0-1.0.2 workarounds, use hpijs 1.0.3 or higher.
++ * 2. Added krgb support.
++ *
++ * 02/21/05 David Suffield
++ * 1. Fixed segfault issue with 1-bit color space.
++ * 2. Fixed z-order issue with colored text on black rectangle.
++ *
+  */
+ 
+ #include "unistd_.h"	/* for dup() */
+ #include <stdlib.h>
++#include <fcntl.h>
+ #include "gdevprn.h"
+ #include "gp.h"
+ #include "ijs.h"
+ #include "ijs_client.h"
+ 
++//#define KRGB_DEBUG
++
+ /* This should go into gdevprn.h, or, better yet, gdevprn should
+    acquire an API for changing resolution. */
+ int gdev_prn_maybe_realloc_memory(gx_device_printer *pdev,
+@@ -51,6 +65,14 @@
+ private dev_proc_get_params(gsijs_get_params);
+ private dev_proc_put_params(gsijs_put_params);
+ 
++/* Following definitions are for krgb support. */
++private dev_proc_create_buf_device(gsijs_create_buf_device);
++private dev_proc_fill_rectangle(gsijs_fill_rectangle);
++private dev_proc_copy_mono(gsijs_copy_mono);
++private dev_proc_fill_mask(gsijs_fill_mask);
++private dev_proc_fill_path(gsijs_fill_path);
++private dev_proc_stroke_path(gsijs_stroke_path);
++
+ private const gx_device_procs gsijs_procs =
+ prn_color_params_procs(gsijs_open, gsijs_output_page, gsijs_close,
+ 		   gx_default_rgb_map_rgb_color, gx_default_rgb_map_color_rgb,
+@@ -83,6 +105,14 @@
+ 
[...11456 lines suppressed...]
-            if (pSys)
-            {
-                delete pSys;
-            }
-            return FALSE;
-        }
-        err = pPC->SelectDevice ((PRINTER_TYPE) iCurrentPrinter);
-        if (err != NO_ERROR)
-        {
-            if (iCurrentPrinter < iLastPrinter)
-            {
-                continue;
-            }
-            delete pPC;
-            delete pSys;
-            return FALSE;
-        }
-        strcpy (pPrinterProperties->szClassName, ModelName[iCurrentPrinter]);
-        for (i = 0; i < (int) (sizeof (PaperSizeInfoData) / sizeof (PaperSizeInfo)); i++)
-        {
-            err = pPC->SetPaperSize (PaperSizeInfoData[i].iPaperSize, 0);
-            if (err == WARN_ILLEGAL_PAPERSIZE)
-            {
-                continue;
-            }
-            strcpy (pPrinterProperties->szPaperSize, PaperSizeInfoData[i].szName);
-            pPrinterProperties->fPhysicalWidth   = pPC->PhysicalPageSizeX ();
-            pPrinterProperties->fPhysicalHeight  = pPC->PhysicalPageSizeY ();
-            pPrinterProperties->fPrintableWidth  = pPC->PrintableWidth ();
-            pPrinterProperties->fPrintableHeight = pPC->PrintableHeight ();
-            pPrinterProperties->fTopLeftX        = pPC->PrintableStartX ();
-            pPrinterProperties->fTopLeftY        = pPC->PrintableStartY ();
-
-            fprintf (stdout, "%s,%s,%.4f,%.4f,%.4f,%.4f,%.4f,%.4f\n",
-                     pPrinterProperties->szClassName,
-                     pPrinterProperties->szPaperSize,
-                     pPrinterProperties->fPhysicalWidth,
-                     pPrinterProperties->fPhysicalHeight,
-                     pPrinterProperties->fTopLeftX,
-                     pPrinterProperties->fTopLeftY,
-                     pPrinterProperties->fPrintableWidth,
-                     pPrinterProperties->fPrintableHeight);
-
-        }
-    }
-}
-
-int    main ()
-{
-    PrinterProperties   pPrProp;
-    GetPrinterProperties (&pPrProp);
-    return 0;
-}
diff -durN hplip-0.9.10/prnt/hpijs/PrinterProperties.h hplip-0.9.8/prnt/hpijs/PrinterProperties.h
--- hplip-0.9.10/prnt/hpijs/PrinterProperties.h	2006-03-03 01:21:41.000000000 +0000
+++ hplip-0.9.8/prnt/hpijs/PrinterProperties.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,130 +0,0 @@
-/*****************************************************************************\
-  Copyright (c) 2002 - 2006, Hewlett-Packard Co.
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-  3. Neither the name of Hewlett-Packard nor the names of its
-     contributors may be used to endorse or promote products derived
-     from this software without specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
-  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
-  NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-  TO, PATENT INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-\*****************************************************************************/
-#include <stdio.h>
-
-#include "hpprintapi.h"
-
-APDK_USING_NAMESPACE
-
-class PlatformServices : public SystemServices
-{
-public:
-    PlatformServices ();
-    ~PlatformServices ();
-    void            DisplayPrinterStatus (DISPLAY_STATUS ePrinterStatus);
-    DRIVER_ERROR    BusyWait (DWORD msec);
-    DRIVER_ERROR    ReadDeviceID (BYTE *strID, int iSize);
-    BYTE            *AllocMem (int iMemSize);
-    void            FreeMem (BYTE* pMem);
-    BOOL            GetStatusInfo (BYTE *bStatReg);
-    DRIVER_ERROR    ToDevice (const BYTE *pBuffer, DWORD *dwCount);
-    DRIVER_ERROR    FromDevice (BYTE *pReadBuff, DWORD *wReadCount);
-    DWORD           GetSystemTickCount (void);
-    float           power (float x, float y);
-};
-
-typedef struct
-{
-    PAPER_SIZE      iPaperSize;
-    char            *szName;
-} PaperSizeInfo;
-
-PaperSizeInfo   PaperSizeInfoData[] =
-{
-    {LETTER, "Letter"},
-    {LEGAL,  "Legal"},
-    {EXECUTIVE, "Executive"},
-    {A3,        "A3"},
-    {A4,        "A4"},
-    {A5,        "A5"},
-    {A6,        "A6"},
-    {PHOTO_SIZE,     "Photo"},
-    {PHOTO_5x7,       "5x7"},
-    {B4,        "B4"},
-    {B5,        "B5"},
-    {OUFUKU,    "Oufuku-Hagaki"},
-    {HAGAKI,    "Hagaki"},
-    {SUPERB_SIZE,   "Super B"},
-    {FLSA,      "Flsa"},
-    {ENVELOPE_NO_10,   "Number 10 Envelope"},
-    {ENVELOPE_A2,   "A2 Envelope"},
-    {ENVELOPE_C6,   "C6 Envelope"},
-    {ENVELOPE_DL,   "DL Envelope"},
-    {ENVELOPE_JPN3,    "Japanese Envelope #3"},
-    {ENVELOPE_JPN4,    "Japanese Envelope #4"}
-};
-
-typedef struct
-{
-    char    szClassName[16];
-    char    szPaperSize[32];
-    float   fPhysicalWidth;
-    float   fPhysicalHeight;
-    float   fPrintableWidth;
-    float   fPrintableHeight;
-    float   fTopLeftX;
-    float   fTopLeftY;
-} PrinterProperties;
-
-PlatformServices    *pSys = NULL;
-PrintContext        *pPC  = NULL;
-BOOL                CreatePrinterProperties ();
-int                 iCurrentPrinter = UNSUPPORTED;
-int                 iPrinterClasses[MAX_PRINTER_TYPE];
-int                 iLastPrinter = 0;
-
-#if 0
-char    *szPaperSizeNames[] =
-{
-    "Letter",
-    "A4",
-    "Legal"
-    "4x6 with tear-off tab",
-    "A6",
-    "4x6 Index Card",
-    "B4",
-    "B5",
-    "Oufuku-Hagaki",
-    "Hagaki",
-    "A6 with tear-off tab",
-    "A3",
-    "A5",
-    "Ledger",
-    "Super B",
-    "Executive",
-    "Flsa",
-    "CUSTOM_SIZE",
-	"Number 10 Envelope",
-	"A2 Envelope",
-	"C6 Envelope",
-	"DL Envelope",
-	"Japanese Envelope #3",
-	"Japanese Envelope #4",
-    "5x7"
-};
-#endif
diff -durN hplip-0.9.10/prnt/hpijs/services.cpp hplip-0.9.8/prnt/hpijs/services.cpp
--- hplip-0.9.10/prnt/hpijs/services.cpp	2006-03-01 02:07:27.000000000 +0000
+++ hplip-0.9.8/prnt/hpijs/services.cpp	2005-12-10 00:01:02.000000000 +0000
@@ -484,9 +484,6 @@
    if (size == CUSTOM_SIZE)
       pPC->SetCustomSize(width, height);
 
-   PaperWidth = pPC->PhysicalPageSizeX ();
-   PaperHeight = pPC->PhysicalPageSizeY ();
-
    if ((r = pPC->SetPaperSize((PAPER_SIZE)size, FullBleed)) != NO_ERROR)
    {
       if (r > 0)


Index: hplip.spec
===================================================================
RCS file: /cvs/dist/rpms/hplip/devel/hplip.spec,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- hplip.spec	4 Apr 2006 10:45:59 -0000	1.62
+++ hplip.spec	4 Apr 2006 11:43:44 -0000	1.63
@@ -15,6 +15,7 @@
 Patch3: hplip-quiet.patch
 Patch4: hplip-cups-backend.patch
 Patch5: hplip-strcasecmp.patch
+Patch6: hplip-revert-hpijs.patch
 BuildRoot:	%{_tmppath}/%{name}-%{version}-buildroot
 
 Requires: desktop-file-utils >= 0.2.92
@@ -77,6 +78,9 @@
 # situations.
 %patch5 -p1 -b .strcasecmp
 
+# Last known working hpijs comes from 0.9.8, so use that.
+%patch6 -p1 -b .revert-hpijs
+
 autoconf # for patch4
 
 %build
@@ -169,6 +173,7 @@
 * Tue Apr  4 2006 Tim Waugh <twaugh at redhat.com>
 - Use case-insensitive matching.  0.9.8 gave all-uppercase in some
   situations.
+- Last known working hpijs comes from 0.9.8, so use that.
 
 * Tue Mar 28 2006 Tim Waugh <twaugh at redhat.com> 0.9.10-3
 - Always use /usr/lib/cups/backend.




More information about the fedora-cvs-commits mailing list