Commit 917ea0db authored by Didier Raboud's avatar Didier Raboud

Imported Upstream version 4.0.5

parent 2a44f3c1
2010-08-09 Till Kamppeter <till.kamppeter@gmail.com>
* Tagged branch for release 4.0.5.
* README, USAGE, configure.ac: Updated for release 4.0.5.
2010-07-10 Till Kamppeter <till.kamppeter@gmail.com>
* foomatic-perl-data.c: Added support for the new "fingerprint"
parameter of the <package> tag.
2010-07-05 Till Kamppeter <till.kamppeter@gmail.com>
* README: Documented new "fingerprint" parameter for the <package>
tag. It provides a link to key fingerprint on the web site of the
issuer of the driver.
2010-06-23 Till Kamppeter <till.kamppeter@gmail.com>
* foomatic-compiledb.1.in, foomatic-kitload.8.in: Fixed some
hyphen-used-as-minus lintian warnings. Thanks to Didier Raboud
(didier at raboud dot com) for the patch.
2010-06-11 Till Kamppeter <till.kamppeter@gmail.com>
* Makefile.in: Do "make install" in lib/ directory with explicit
use of DESTDIR. Otherwise it can come to a duplicate insertion
of DESTDIR. Thanks to Tim Mooney for the patch (Bug #445).
* configure.ac: Simplified and generalized the check for the Perl
library directory prefix in the configure script. Thanks to Tim
Mooney (Bug #418).
* configure.ac: Check for functions of libxml with CFLAGS and LIBS
containing the detected references to libxml. Thanks to Tim Mooney
for the patch (Bug #444).
2010-03-16 Till Kamppeter <till.kamppeter@gmail.com>
* lib/Foomatic/DB.pm: apply_driver_and_pdl_info(): Do not add
"lj5mono" to the list of suitable drivers any more, this driver
entry was removed from the OpenPrinting database.
2010-02-26 Till Kamppeter <till.kamppeter@gmail.com>
* foomatic-printermap-to-gutenprint-xml.in: Adjusted indenting of the
generated XML code to match the indenting of the XML code exported
from the MySQL database on the OpenPrinting web server.
2010-02-15 Till Kamppeter <till.kamppeter@gmail.com>
* Tagged branch for release 4.0.4.
......
......@@ -188,7 +188,7 @@ install-bin: check-config lib/Makefile
# $(DESTDIR) properly
( cd lib && \
$(MAKE) PREFIX=$(PERLPREFIX) && \
$(MAKE) PREFIX=$(DESTDIR)$(PERLPREFIX) pure_install \
$(MAKE) PREFIX=$(PERLPREFIX) DESTDIR=$(DESTDIR) pure_install \
)
${SRC}/mkinstalldirs $(DESTDIR)$(BINDIR)
${SRC}/mkinstalldirs $(DESTDIR)$(SBINDIR)
......
Foomatic 4.0.4
Foomatic 4.0.5
==============
......@@ -1675,7 +1675,7 @@ things, but the two biggies are the prototype and the printers list
# Example for packages provided by an external site:
# <packages>
# <package scope="general">http://download.example.com/printerdrivers/rpm/RPMS/i486/;http://download.example.com/printerdrivers/rpm/RPMS/x86_64/*splix*;http://download.example.com/printerdrivers/debian/dists/*splix*;http://download.example.com/printerdrivers/debian/dists/lsb3.2/main/binary-i386/*splix*;http://download.example.com/printerdrivers/debian/dists/lsb3.2/main/binary-amd64/*splix*</package>
# <package scope="general" fingerprint="http://download.example.com/printerdrivers/gpg/key-fingerprint.txt">http://download.example.com/printerdrivers/RPMS/i486/*laserstar*;http://download.example.com/printerdrivers/RPMS/x86_64/*laserstar*;http://download.example.com/printerdrivers/debian/dists/lsb3.2/main/binary-i386/*laserstar*;http://download.example.com/printerdrivers/debian/dists/lsb3.2/main/binary-amd64/*laserstar*</package>
# </packages>
# Note that more than one mask can be supplied separating them with
......@@ -1702,6 +1702,19 @@ things, but the two biggies are the prototype and the printers list
# wildcards are only allowed for the file name and not for the
# directory names.
# If the packages are signed, all packages of the same <package> entry
# should be signed with the same key and the key should be registered
# on the key server network. The key fingerprint should be made
# available as a text file on the web site of the driver issuer and
# the site should be with an SSL certificate which has been signed by
# an official registrar. The "fingerprint=..." parameter should then
# provide the link to the file with the key fingerprint. The link must
# be an "https://..." URL and point to a file on a server of the
# driver issuer. Packages must be signed for fully automatic upload by
# default on Linux distributions. See also
# https://www.linuxfoundation.org/collaborate/workgroups/openprinting/writingandpackagingprinterdrivers
# The <functionality> section should make it easier for a user to
# compare different drivers by giving some technical properties and
# ratings (0...100) for common document types, system load, and
......
Foomatic 4.0.4
Foomatic 4.0.5
==============
foomatic-db-engine
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for footmatic-db-engine 4.0.4.
# Generated by GNU Autoconf 2.61 for footmatic-db-engine 4.0.5.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
......@@ -572,8 +572,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='footmatic-db-engine'
PACKAGE_TARNAME='footmatic-db-engine'
PACKAGE_VERSION='4.0.4'
PACKAGE_STRING='footmatic-db-engine 4.0.4'
PACKAGE_VERSION='4.0.5'
PACKAGE_STRING='footmatic-db-engine 4.0.5'
PACKAGE_BUGREPORT=''
ac_unique_file="foomatic-perl-data.c"
......@@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then
# 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 footmatic-db-engine 4.0.4 to adapt to many kinds of systems.
\`configure' configures footmatic-db-engine 4.0.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1275,7 +1275,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of footmatic-db-engine 4.0.4:";;
short | recursive ) echo "Configuration of footmatic-db-engine 4.0.5:";;
esac
cat <<\_ACEOF
......@@ -1357,7 +1357,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
footmatic-db-engine configure 4.0.4
footmatic-db-engine configure 4.0.5
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
......@@ -1371,7 +1371,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by footmatic-db-engine $as_me 4.0.4, which was
It was created by footmatic-db-engine $as_me 4.0.5, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
......@@ -3819,6 +3819,107 @@ fi
for ac_func in strdup strspn strstr
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
For example, HP-UX 11i <limits.h> declares gettimeofday. */
#define $ac_func innocuous_$ac_func
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
#undef $ac_func
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char $ac_func ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined __stub_$ac_func || defined __stub___$ac_func
choke me
#endif
int
main ()
{
return $ac_func ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
eval "$as_ac_var=yes"
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
eval "$as_ac_var=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
conftest$ac_exeext conftest.$ac_ext
fi
ac_res=`eval echo '${'$as_ac_var'}'`
{ echo "$as_me:$LINENO: result: $ac_res" >&5
echo "${ECHO_T}$ac_res" >&6; }
if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
fi
done
#
# augment CFLAGS and LIBS temporarily while searching for the xml* functions
#
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
CFLAGS="$XML_CFLAGS $CFLAGS"
LIBS="$XML_LIBS $LIBS"
......@@ -3826,7 +3927,7 @@ fi
for ac_func in strdup strspn strstr xmlParseFile xmlCreatePushParserCtxt xmlParseChunk xmlFreeParserCtxt xmlFreeDoc xmlDocGetRootElement xmlNodeListGetString
for ac_func in xmlParseFile xmlCreatePushParserCtxt xmlParseChunk xmlFreeParserCtxt xmlFreeDoc xmlDocGetRootElement xmlNodeListGetString
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
......@@ -3919,6 +4020,8 @@ _ACEOF
fi
done
CFLAGS="$save_CFLAGS"
LIBS="$save_LIBS"
SPOOLSEARCHPATH=/var/spool:/usr/spool/:/usr/local/spool:/usr/local/var/spool:/var/local/spool:/var/local
......@@ -4393,22 +4496,14 @@ if test x$prefix = xNONE; then
else
PREFIX=$prefix
fi
echo -n Checking whether Perl will find libraries installed under $PREFIX...
if ( $PERL -V | egrep "^ *$PREFIX/lib(/perl[0-9]?|)(/site_perl|)/[0-9]" > /dev/null); then
PERLPREFIX=$PREFIX
echo " yes"
else
echo " no"
echo -n Checking whether Perl will find libraries installed under /usr/local...
if ( $PERL -V | egrep "^ */usr/local/lib(/perl[0-9]?|)(/site_perl|)/[0-9]" > /dev/null); then
PERLPREFIX=/usr/local
echo " yes"
echo Installing the Perl libraries with prefix /usr/local.
else
PERLPREFIX=/usr
echo " no"
echo Installing the Perl libraries with prefix /usr.
fi
echo -n Checking where Perl will find its libraries...
eval `${PERL} -V:installprefix`
PERLPREFIX=`echo $installprefix`
if test -n "$PERLPREFIX"; then
echo " $PERLPREFIX"
else
PERLPREFIX=/usr
echo " not found, installing the Perl libraries with prefix /usr."
fi
......@@ -7299,7 +7394,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by footmatic-db-engine $as_me 4.0.4, which was
This file was extended by footmatic-db-engine $as_me 4.0.5, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -7342,7 +7437,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
footmatic-db-engine config.status 4.0.4
footmatic-db-engine config.status 4.0.5
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
......
dnl Process this file with autoconf to produce a configure script.
AC_INIT([footmatic-db-engine], 4.0.4)
AC_INIT([footmatic-db-engine], 4.0.5)
AC_CONFIG_SRCDIR(foomatic-perl-data.c)
dnl If the user didn't specify the $sysconfdir on the command line, let it
......@@ -48,7 +48,18 @@ dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
dnl Checks for library functions.
AC_CHECK_FUNCS(strdup strspn strstr xmlParseFile xmlCreatePushParserCtxt xmlParseChunk xmlFreeParserCtxt xmlFreeDoc xmlDocGetRootElement xmlNodeListGetString)
AC_CHECK_FUNCS(strdup strspn strstr)
#
# augment CFLAGS and LIBS temporarily while searching for the xml* functions
#
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
CFLAGS="$XML_CFLAGS $CFLAGS"
LIBS="$XML_LIBS $LIBS"
AC_CHECK_FUNCS(xmlParseFile xmlCreatePushParserCtxt xmlParseChunk xmlFreeParserCtxt xmlFreeDoc xmlDocGetRootElement xmlNodeListGetString)
CFLAGS="$save_CFLAGS"
LIBS="$save_LIBS"
dnl Checks for programs/directories which are used by Foomtic
......@@ -183,22 +194,14 @@ if test x$prefix = xNONE; then
else
PREFIX=$prefix
fi
echo -n Checking whether Perl will find libraries installed under $PREFIX...
if ( $PERL -V | egrep "^ *$PREFIX/lib(/perl[[0-9]]?|)(/site_perl|)/[[0-9]]" > /dev/null); then
PERLPREFIX=$PREFIX
echo " yes"
echo -n Checking where Perl will find its libraries...
eval `${PERL} -V:installprefix`
PERLPREFIX=`echo $installprefix`
if test -n "$PERLPREFIX"; then
echo " $PERLPREFIX"
else
echo " no"
echo -n Checking whether Perl will find libraries installed under /usr/local...
if ( $PERL -V | egrep "^ */usr/local/lib(/perl[[0-9]]?|)(/site_perl|)/[[0-9]]" > /dev/null); then
PERLPREFIX=/usr/local
echo " yes"
echo Installing the Perl libraries with prefix /usr/local.
else
PERLPREFIX=/usr
echo " no"
echo Installing the Perl libraries with prefix /usr.
fi
PERLPREFIX=/usr
echo " not found, installing the Perl libraries with prefix /usr."
fi
AC_SUBST(PERLPREFIX)
......
......@@ -47,8 +47,8 @@ project using output from the associated binary.
.SH BUGS
Existing files are always conserved instead of older files being
overwritten. So deleting the destination directory (rm -rf dir) and
calling foomatic-compiledb without the -f option is recommended.
overwritten. So deleting the destination directory (rm \-rf dir) and
calling foomatic-compiledb without the \-f option is recommended.
Please post bug reports on
......
......@@ -5,12 +5,12 @@
foomatic-kitload \- installs a data kit into the foomatic database.
.SH SYNOPSIS
.B foomatic-kitload
[\fI -k kit-dir\fR]
[\fI -d dest-dir\fR]...
[\fI \-k kit-dir\fR]
[\fI \-d dest-dir\fR]...
.SH DESCRIPTION
.B foomatic-kitload
installs a foomatic data kit into the local data library. It takes a
\fI-k\fR \fIdirname\fR
\fI\-k\fR \fIdirname\fR
option, where \fIdirname\fR is the toplevel directory of a foomatic
driver "kit". A "kit" is a selection of XML source files arranged
exactly as in the source/section of the master database (ie, opt/driver/printer/ subdirs).
......
......@@ -212,6 +212,7 @@ typedef struct comboData {
int num_packages;
xmlChar **packageurls;
xmlChar **packagescopes;
xmlChar **packagefingerprints;
xmlChar *drvmaxresx;
xmlChar *drvmaxresy;
xmlChar *drvcolor;
......@@ -352,6 +353,7 @@ typedef struct driverEntry {
int num_packages;
xmlChar **packageurls;
xmlChar **packagescopes;
xmlChar **packagefingerprints;
xmlChar *maxresx;
xmlChar *maxresy;
xmlChar *color;
......@@ -1698,7 +1700,7 @@ parseComboDriver(xmlDocPtr doc, /* I - The whole combo data tree */
xmlNodePtr cur3; /* Another XML node pointer */
xmlNodePtr cur4; /* Another XML node pointer */
xmlChar *id; /* Full driver ID, with "driver/" */
xmlChar *level, *version, *scope;
xmlChar *level, *version, *scope, *fingerprint;
xmlChar *url;
/* Initialization of entries */
......@@ -1726,6 +1728,7 @@ parseComboDriver(xmlDocPtr doc, /* I - The whole combo data tree */
ret->num_packages = 0;
ret->packageurls = NULL;
ret->packagescopes = NULL;
ret->packagefingerprints = NULL;
ret->drvmaxresx = NULL;
ret->drvmaxresy = NULL;
ret->drvcolor = NULL;
......@@ -1897,13 +1900,21 @@ parseComboDriver(xmlDocPtr doc, /* I - The whole combo data tree */
sizeof(xmlChar *) *
ret->num_packages);
scope = xmlGetProp(cur2, (const xmlChar *) "scope");
ret->packagefingerprints =
(xmlChar **)
realloc((xmlChar **)ret->packagefingerprints,
sizeof(xmlChar *) *
ret->num_packages);
fingerprint = xmlGetProp(cur2, (const xmlChar *) "fingerprint");
ret->packageurls[ret->num_packages - 1] =
perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
ret->packagescopes[ret->num_packages - 1] = perlquote(scope);
ret->packagefingerprints[ret->num_packages - 1] = perlquote(fingerprint);
if (debug)
fprintf(stderr, " %s (%s)\n",
fprintf(stderr, " %s (%s), key fingerprint on %s\n",
ret->packageurls[ret->num_packages - 1],
ret->packagescopes[ret->num_packages - 1]);
ret->packagescopes[ret->num_packages - 1],
ret->packagefingerprints[ret->num_packages - 1]);
}
cur2 = cur2->next;
}
......@@ -2914,7 +2925,7 @@ parseDriverEntry(xmlDocPtr doc, /* I - The whole driver data tree */
xmlNodePtr cur4; /* Another XML node pointer */
xmlChar *id; /* Full driver ID, with "driver/" */
drvPrnEntryPtr entry; /* An entry for a printer supported by this driver*/
xmlChar *url, *level, *version, *scope;
xmlChar *url, *level, *version, *scope, *fingerprint;
/* Initialization of entries */
ret->id = NULL;
......@@ -2940,6 +2951,7 @@ parseDriverEntry(xmlDocPtr doc, /* I - The whole driver data tree */
ret->num_packages = 0;
ret->packageurls = NULL;
ret->packagescopes = NULL;
ret->packagefingerprints = NULL;
ret->maxresx = NULL;
ret->maxresy = NULL;
ret->color = NULL;
......@@ -3097,13 +3109,21 @@ parseDriverEntry(xmlDocPtr doc, /* I - The whole driver data tree */
sizeof(xmlChar *) *
ret->num_packages);
scope = xmlGetProp(cur2, (const xmlChar *) "scope");
ret->packagefingerprints =
(xmlChar **)
realloc((xmlChar **)ret->packagefingerprints,
sizeof(xmlChar *) *
ret->num_packages);
fingerprint = xmlGetProp(cur2, (const xmlChar *) "fingerprint");
ret->packageurls[ret->num_packages - 1] =
perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
ret->packagescopes[ret->num_packages - 1] = perlquote(scope);
ret->packagefingerprints[ret->num_packages - 1] = perlquote(fingerprint);
if (debug)
fprintf(stderr, " %s (%s)\n",
fprintf(stderr, " %s (%s), key fingerprint on %s\n",
ret->packageurls[ret->num_packages - 1],
ret->packagescopes[ret->num_packages - 1]);
ret->packagescopes[ret->num_packages - 1],\
ret->packagefingerprints[ret->num_packages - 1]);
}
cur2 = cur2->next;
}
......@@ -3932,6 +3952,10 @@ generateOverviewPerlData(overviewPtr overview, /* I/O - Foomatic overview
!= NULL)
printf(" 'scope' => '%s',\n",
overview->overviewDrivers[k]->packagescopes[l]);
if (overview->overviewDrivers[k]->packagefingerprints[l]
!= NULL)
printf(" 'fingerprint' => '%s',\n",
overview->overviewDrivers[k]->packagefingerprints[l]);
printf(" },\n");
}
}
......@@ -4368,6 +4392,10 @@ generateComboPerlData(comboDataPtr combo, /* I/O - Foomatic combo data
!= NULL)
printf(" 'scope' => '%s',\n",
combo->packagescopes[i]);
if (combo->packagefingerprints[i]
!= NULL)
printf(" 'fingerprint' => '%s',\n",
combo->packagefingerprints[i]);
printf(" },\n");
}
}
......@@ -4883,6 +4911,10 @@ generateDriverPerlData(driverEntryPtr driver, /* I/O - Foomatic driver
!= NULL)
printf(" 'scope' => '%s',\n",
driver->packagescopes[i]);
if (driver->packagefingerprints[i]
!= NULL)
printf(" 'fingerprint' => '%s',\n",
driver->packagefingerprints[i]);
printf(" },\n");
}
}
......
......@@ -119,7 +119,7 @@ $gutenprintxml =~ s:(\n\s*<\s*/\s*printers\s*>):\n <!-- The following printers
print STDERR "Inserting printer entries of foomatic-printermap ";
foreach my $printer (@printermap) {
print STDERR ".";
$gutenprintxml =~ s:(\n\s*<\s*/\s*printers\s*>):\n <printer>\n <id>$printer</id>\n </printer>$1:s;
$gutenprintxml =~ s:(\n\s*<\s*/\s*printers\s*>):\n <printer>\n <id>$printer</id>\n </printer>$1:s;
}
print STDERR "\n\n";
......
......@@ -30,7 +30,10 @@ sub new {
my %driver_types = ('F' => 'Filter',
'P' => 'Postscript',
'U' => 'Ghostscript Uniprint',
'G' => 'Ghostscript');
'G' => 'Ghostscript built-in',
'I' => 'IJS',
'C' => 'CUPS Raster',
'V' => 'OpenPrinting Vector');
# Translate old numerical PostGreSQL printer IDs to the new clear text ones.
sub translate_printer_id {
......@@ -1263,7 +1266,6 @@ sub apply_driver_and_pdl_info {
} else {
$drivers{'pxlmono'} = 1;
$drivers{'lj5gray'} = 1;
$drivers{'lj5mono'} = 1;
}
} elsif ($level eq "5e") {
$drivers{'ljet4d'} = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment