Merge pull request #112068 from doronbehar/pkg/qt-3

authored by Sandro and committed by GitHub 6408a8f4 bc3adcc2

+2 -425
-75
pkgs/applications/misc/taskjuggler/2.x/default.nix
··· 1 - {stdenv, fetchurl, 2 - zlib, libpng, libjpeg, perl, expat, qt3, 3 - libX11, libXext, libSM, libICE, 4 - }: 5 - 6 - stdenv.mkDerivation rec { 7 - name = "taskjuggler-2.4.3"; 8 - src = fetchurl { 9 - url = "http://www.taskjuggler.org/download/${name}.tar.bz2"; 10 - sha256 = "14gkxa2vwfih5z7fffbavps7m44z5bq950qndigw2icam5ks83jl"; 11 - }; 12 - 13 - buildInputs = 14 - [zlib libpng libX11 libXext libSM libICE perl expat libjpeg] 15 - ; 16 - 17 - patches = [ ./timezone-glibc.patch ]; 18 - 19 - preConfigure = '' 20 - for i in $(grep -R "/bin/bash" . | sed 's/:.*//'); do 21 - substituteInPlace $i --replace /bin/bash $(type -Pp bash) 22 - done 23 - for i in $(grep -R "/usr/bin/perl" . | sed 's/:.*//'); do 24 - substituteInPlace $i --replace /usr/bin/perl ${perl}/bin/perl 25 - done 26 - 27 - # Fix install 28 - for i in docs/en/Makefile.in Examples/BigProject/Common/Makefile.in Examples/BigProject/Makefile.in Examples/BigProject/Project1/Makefile.in Examples/BigProject/Project2/Makefile.in Examples/FirstProject/Makefile.in Examples/ShiftSchedule/Makefile.in; do 29 - # Do not use variable substitution because there is some text after the last '@' 30 - substituteInPlace $i --replace 'docprefix = @PACKAGES_DIR@' 'docprefix = $(docdir)/' 31 - done 32 - 33 - # Comment because the ical export need the KDE support. 34 - for i in Examples/FirstProject/AccountingSoftware.tjp; do 35 - substituteInPlace $i --replace "icalreport" "# icalreport" 36 - done 37 - 38 - for i in TestSuite/testdir TestSuite/createrefs \ 39 - TestSuite/Scheduler/Correct/Expression.sh; do 40 - substituteInPlace $i --replace '/bin/rm' 'rm' 41 - done 42 - 43 - # Some tests require writing at $HOME 44 - HOME=$TMPDIR 45 - ''; 46 - 47 - configureFlags = [ 48 - "--without-arts" "--disable-docs" 49 - "--x-includes=${libX11.dev}/include" 50 - "--x-libraries=${libX11.out}/lib" 51 - "--with-qt-dir=${qt3}" 52 - ]; 53 - 54 - preInstall = '' 55 - mkdir -p $out/share/emacs/site-lisp/ 56 - cp Contrib/emacs/taskjug.el $out/share/emacs/site-lisp/ 57 - ''; 58 - 59 - # kde_locale is not defined when installing without kde. 60 - installFlags = [ "kde_locale=\${out}/share/locale" ]; 61 - 62 - meta = { 63 - homepage = "http://www.taskjuggler.org"; 64 - license = lib.licenses.gpl2; 65 - description = "Project management tool"; 66 - longDescription = '' 67 - TaskJuggler is a modern and powerful, Open Source project management 68 - tool. Its new approach to project planing and tracking is more 69 - flexible and superior to the commonly used Gantt chart editing 70 - tools. It has already been successfully used in many projects and 71 - scales easily to projects with hundreds of resources and thousands of 72 - tasks. 73 - ''; 74 - }; 75 - }
···
-48
pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch
··· 1 - From the discussion in http://groups.google.com/group/taskjuggler-users/browse_thread/thread/f65a3efd4dcae2fc/a44c711a9d28ebee?show_docid=a44c711a9d28ebee 2 - 3 - From: Chris Schlaeger <cs@kde.org> 4 - Date: Sat, 27 Feb 2010 06:33:35 +0000 (+0100) 5 - Subject: Try to fix time zone check for glibc 2.11. 6 - X-Git-Url: http://www.taskjuggler.org/cgi-bin/gitweb.cgi?p=taskjuggler.git;a=commitdiff_plain;h=2382ed54f90c3c899badb3f56aaa2b3b5dba361e;hp=c666c5068312fec7db75e17d1c567d94127d1dda 7 - 8 - Try to fix time zone check for glibc 2.11. 9 - 10 - Reported-by: Lee <pFQh8RQn4fqB@dyweni.com> 11 - --- 12 - 13 - diff --git a/taskjuggler/Utility.cpp b/taskjuggler/Utility.cpp 14 - index 5e2bf21..9b7fce2 100644 15 - --- a/taskjuggler/Utility.cpp 16 - +++ b/taskjuggler/Utility.cpp 17 - @@ -206,16 +206,28 @@ setTimezone(const char* tZone) 18 - 19 - /* To validate the tZone value we call tzset(). It will convert the zone 20 - * into a three-letter acronym in case the tZone value is good. If not, it 21 - - * will just copy the wrong value to tzname[0] (glibc < 2.5) or fall back 22 - - * to UTC. */ 23 - + * will 24 - + * - copy the wrong value to tzname[0] (glibc < 2.5) 25 - + * - or fall back to UTC (glibc >= 2.5 && < 2.11) 26 - + * - copy the part before the '/' to tzname[0] (glibc >= 2.11). 27 - + */ 28 - tzset(); 29 - + char* region = new(char[strlen(tZone) + 1]); 30 - + region[0] = 0; 31 - + if (strchr(tZone, '/')) 32 - + { 33 - + strcpy(region, tZone); 34 - + *strchr(region, '/') = 0; 35 - + } 36 - if (timezone2tz(tZone) == 0 && 37 - - (strcmp(tzname[0], tZone) == 0 || 38 - + (strcmp(tzname[0], tZone) == 0 || strcmp(tzname[0], region) == 0 || 39 - (strcmp(tZone, "UTC") != 0 && strcmp(tzname[0], "UTC") == 0))) 40 - { 41 - UtilityError = QString(i18n("Illegal timezone '%1'")).arg(tZone); 42 - + delete region; 43 - return false; 44 - } 45 - + delete region; 46 - 47 - if (!LtHashTab) 48 - return true;
···
-38
pkgs/development/libraries/qt-3/builder.sh
··· 1 - source $stdenv/setup 2 - 3 - 4 - preConfigure() { 5 - 6 - # Patch some of the configure files a bit to get of global paths. 7 - # (Buildings using stuff in those paths will fail anyway, but it 8 - # will cause ./configure misdetections). 9 - for i in config.tests/unix/checkavail config.tests/*/*.test mkspecs/*/qmake.conf; do 10 - echo "patching $i..." 11 - substituteInPlace "$i" \ 12 - --replace " /lib" " /FOO" \ 13 - --replace "/usr" "/FOO" 14 - done 15 - } 16 - 17 - 18 - # !!! TODO: -system-libmng 19 - configureFlags="-prefix $out $configureFlags" 20 - dontAddPrefix=1 21 - 22 - configureScript=configureScript 23 - configureScript() { 24 - echo yes | ./configure $configureFlags 25 - export LD_LIBRARY_PATH=$(pwd)/lib 26 - } 27 - 28 - 29 - postInstall() { 30 - # Qt's `make install' is broken; it copies ./bin/qmake, which 31 - # is a symlink to ./qmake/qmake. So we end up with a dangling 32 - # symlink. 33 - rm $out/bin/qmake 34 - cp -p qmake/qmake $out/bin 35 - } 36 - 37 - 38 - genericBuild
···
-92
pkgs/development/libraries/qt-3/default.nix
··· 1 - { lib, stdenv, fetchurl 2 - , xftSupport ? true, libXft ? null 3 - , xrenderSupport ? true, libXrender ? null 4 - , xrandrSupport ? true, libXrandr ? null 5 - , xineramaSupport ? true, libXinerama ? null 6 - , cursorSupport ? true, libXcursor ? null 7 - , threadSupport ? true 8 - , mysqlSupport ? false, libmysqlclient ? null 9 - , libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms 10 - , openglSupport ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms 11 - , libGL ? null, libGLU ? null, libXmu ? null 12 - , xlibsWrapper, xorgproto, zlib, libjpeg, libpng, which 13 - }: 14 - 15 - assert xftSupport -> libXft != null; 16 - assert xrenderSupport -> xftSupport && libXrender != null; 17 - assert xrandrSupport -> libXrandr != null; 18 - assert cursorSupport -> libXcursor != null; 19 - assert mysqlSupport -> libmysqlclient != null; 20 - assert openglSupport -> libGL != null && libGLU != null && libXmu != null; 21 - 22 - stdenv.mkDerivation { 23 - name = "qt-3.3.8"; 24 - 25 - builder = ./builder.sh; 26 - 27 - setupHook = ./setup-hook.sh; 28 - 29 - src = fetchurl { 30 - url = "http://download.qt.io/archive/qt/3/qt-x11-free-3.3.8.tar.bz2"; 31 - sha256 = "0jd4g3bwkgk2s4flbmgisyihm7cam964gzb3pawjlkhas01zghz8"; 32 - }; 33 - 34 - nativeBuildInputs = [ which ]; 35 - propagatedBuildInputs = [libpng xlibsWrapper libXft libXrender zlib libjpeg]; 36 - 37 - hardeningDisable = [ "format" ]; 38 - 39 - configureFlags = let 40 - mk = cond: name: "-${lib.optionalString (!cond) "no-"}${name}"; 41 - in [ 42 - "-v" 43 - "-system-zlib" "-system-libpng" "-system-libjpeg" 44 - "-qt-gif" 45 - "-I${xorgproto}/include" 46 - (mk threadSupport "thread") 47 - (mk xrenderSupport "xrender") 48 - (mk xrandrSupport "xrandr") 49 - (mk xineramaSupport "xinerama") 50 - (mk xrandrSupport "xrandr") 51 - (mk xftSupport "xft") 52 - ] ++ lib.optionals openglSupport [ 53 - "-dlopen-opengl" 54 - "-L${libGL}/lib" "-I${libGLU}/include" 55 - "-L${libXmu.out}/lib" "-I${libXmu.dev}/include" 56 - ] ++ lib.optionals xrenderSupport [ 57 - "-L${libXrender.out}/lib" "-I${libXrender.dev}/include" 58 - ] ++ lib.optionals xrandrSupport [ 59 - "-L${libXrandr.out}/lib" "-I${libXrandr.dev}/include" 60 - ] ++ lib.optionals xineramaSupport [ 61 - "-L${libXinerama.out}/lib" "-I${libXinerama.dev}/include" 62 - ] ++ lib.optionals cursorSupport [ 63 - "-L${libXcursor.out}/lib -I${libXcursor.dev}/include" 64 - ] ++ lib.optionals mysqlSupport [ 65 - "-qt-sql-mysql" "-L${libmysqlclient}/lib/mysql" "-I${libmysqlclient}/include/mysql" 66 - ] ++ lib.optionals xftSupport [ 67 - "-L${libXft.out}/lib" "-I${libXft.dev}/include" 68 - "-L${libXft.freetype.out}/lib" "-I${libXft.freetype.dev}/include" 69 - "-L${libXft.fontconfig.lib}/lib" "-I${libXft.fontconfig.dev}/include" 70 - ]; 71 - 72 - patches = [ 73 - # Don't strip everything so we can get useful backtraces. 74 - ./strip.patch 75 - 76 - # Build on NixOS. 77 - ./qt-pwd.patch 78 - 79 - # randr.h and Xrandr.h need not be in the same prefix. 80 - ./xrandr.patch 81 - 82 - # Make it build with gcc 4.6.0 83 - ./qt3-gcc4.6.0.patch 84 - ]; 85 - 86 - passthru = {inherit mysqlSupport;}; 87 - 88 - meta = with lib; { 89 - license = with licenses; [ gpl2 qpl ]; 90 - platforms = platforms.linux; 91 - }; 92 - }
···
-15
pkgs/development/libraries/qt-3/qt-pwd.patch
··· 1 - diff -ruN qt-x11-free-3.3.3/configure qt-x11-free-3.3.3.new/configure 2 - --- qt-x11-free-3.3.3/configure 2004-06-14 11:18:55.000000000 +0200 3 - +++ qt-x11-free-3.3.3.new/configure 2005-11-12 19:39:43.000000000 +0100 4 - @@ -16,9 +16,9 @@ 5 - relconf=`basename $0` 6 - # the directory of this script is the "source tree" 7 - relpath=`dirname $0` 8 - -relpath=`(cd $relpath; /bin/pwd)` 9 - +relpath=`(cd $relpath; pwd)` 10 - # the current directory is the "build tree" or "object tree" 11 - -outpath=`/bin/pwd` 12 - +outpath=`pwd` 13 - 14 - # later cache the command line in config.status 15 - OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
···
-23
pkgs/development/libraries/qt-3/qt3-gcc4.6.0.patch
··· 1 - I picked it here: 2 - https://bugs.archlinux.org/task/23915 3 - 4 - --- qt-x11-free-3.3.8b/src/tools/qmap.h~ 2008-01-15 19:09:13.000000000 +0000 5 - +++ qt-x11-free-3.3.8b/src/tools/qmap.h 2011-04-11 00:16:04.000000000 +0100 6 - @@ -50,6 +50,7 @@ 7 - #endif // QT_H 8 - 9 - #ifndef QT_NO_STL 10 - +#include <cstddef> 11 - #include <iterator> 12 - #include <map> 13 - #endif 14 - --- qt-x11-free-3.3.8b/src/tools/qvaluelist.h~ 2008-01-15 19:09:13.000000000 +0000 15 - +++ qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2011-04-11 00:16:49.000000000 +0100 16 - @@ -48,6 +48,7 @@ 17 - #endif // QT_H 18 - 19 - #ifndef QT_NO_STL 20 - +#include <cstddef> 21 - #include <iterator> 22 - #include <list> 23 - #endif
···
-1
pkgs/development/libraries/qt-3/setup-hook.sh
··· 1 - export QTDIR=@out@
···
-18
pkgs/development/libraries/qt-3/strip.patch
··· 1 - diff -rc qt-x11-free-3.3.3-orig/mkspecs/linux-g++/qmake.conf qt-x11-free-3.3.3/mkspecs/linux-g++/qmake.conf 2 - *** qt-x11-free-3.3.3-orig/mkspecs/linux-g++/qmake.conf 2004-08-05 16:42:57.000000000 +0200 3 - --- qt-x11-free-3.3.3/mkspecs/linux-g++/qmake.conf 2005-03-02 12:25:55.000000000 +0100 4 - *************** 5 - *** 85,90 **** 6 - QMAKE_DEL_FILE = rm -f 7 - QMAKE_DEL_DIR = rmdir 8 - QMAKE_STRIP = strip 9 - ! QMAKE_STRIPFLAGS_LIB += --strip-unneeded 10 - QMAKE_CHK_DIR_EXISTS = test -d 11 - QMAKE_MKDIR = mkdir -p 12 - --- 85,90 ---- 13 - QMAKE_DEL_FILE = rm -f 14 - QMAKE_DEL_DIR = rmdir 15 - QMAKE_STRIP = strip 16 - ! QMAKE_STRIPFLAGS_LIB += --strip-debug 17 - QMAKE_CHK_DIR_EXISTS = test -d 18 - QMAKE_MKDIR = mkdir -p
···
-42
pkgs/development/libraries/qt-3/xrandr.patch
··· 1 - diff -rc qt-x11-free-3.3.6-orig/config.tests/x11/xrandr.test qt-x11-free-3.3.6/config.tests/x11/xrandr.test 2 - *** qt-x11-free-3.3.6-orig/config.tests/x11/xrandr.test 2006-09-14 14:00:08.000000000 +0200 3 - --- qt-x11-free-3.3.6/config.tests/x11/xrandr.test 2006-09-14 14:10:39.000000000 +0200 4 - *************** 5 - *** 52,69 **** 6 - INCDIRS="$IN_INCDIRS $XDIRS /FOO/include /include" 7 - F= 8 - for INCDIR in $INCDIRS; do 9 - ! if [ -f $INCDIR/$INC -a -f $INCDIR/$INC2 ]; then 10 - F=yes 11 - ! XRANDR_H=$INCDIR/$INC 12 - RANDR_H=$INCDIR/$INC2 13 - ! [ "$VERBOSE" = "yes" ] && echo " Found $INC in $INCDIR" 14 - break 15 - fi 16 - done 17 - if [ -z "$F" ] 18 - then 19 - XRANDR=no 20 - ! [ "$VERBOSE" = "yes" ] && echo " Could not find $INC anywhere in $INCDIRS" 21 - fi 22 - fi 23 - 24 - --- 52,69 ---- 25 - INCDIRS="$IN_INCDIRS $XDIRS /FOO/include /include" 26 - F= 27 - for INCDIR in $INCDIRS; do 28 - ! if [ -f $INCDIR/$INC2 ]; then 29 - F=yes 30 - ! # XRANDR_H=$INCDIR/$INC 31 - RANDR_H=$INCDIR/$INC2 32 - ! [ "$VERBOSE" = "yes" ] && echo " Found $INC2 in $INCDIR" 33 - break 34 - fi 35 - done 36 - if [ -z "$F" ] 37 - then 38 - XRANDR=no 39 - ! [ "$VERBOSE" = "yes" ] && echo " Could not find $INC2 anywhere in $INCDIRS" 40 - fi 41 - fi 42 -
···
-38
pkgs/tools/graphics/lprof/default.nix
··· 1 - { lib, stdenv, fetchurl, sconsPackages, qt3, lcms1, libtiff, vigra }: 2 - 3 - /* how to calibrate your monitor: 4 - Eg see https://wiki.archlinux.org/index.php/ICC_Profiles#Loading_ICC_Profiles 5 - */ 6 - stdenv.mkDerivation { 7 - name = "lprof-1.11.4.1"; 8 - nativeBuildInputs = [ sconsPackages.scons_3_0_1 ]; 9 - buildInputs = [ qt3 lcms1 libtiff vigra ]; 10 - 11 - hardeningDisable = [ "format" ]; 12 - 13 - preConfigure = '' 14 - export QTDIR=${qt3} 15 - export qt_directory=${qt3} 16 - ''; 17 - 18 - src = fetchurl { 19 - url = "mirror://sourceforge/lprof/lprof/lprof-1.11.4/lprof-1.11.4.1.tar.gz"; 20 - sha256 = "0q8x24fm5yyvm151xrl3l03p7hvvciqnkbviprfnvlr0lyg9wsrn"; 21 - }; 22 - 23 - sconsFlags = "SYSLIBS=1"; 24 - preBuild = '' 25 - export CXX=g++ 26 - ''; 27 - prefixKey = "PREFIX="; 28 - 29 - patches = [ ./lcms-1.17.patch ./keep-environment.patch ]; 30 - 31 - meta = { 32 - description = "Little CMS ICC profile construction set"; 33 - homepage = "https://sourceforge.net/projects/lprof"; 34 - license = lib.licenses.gpl2; 35 - platforms = lib.platforms.linux; 36 - broken = true; # Broken since 2020-07-28 (https://hydra.nixos.org/build/135234622) 37 - }; 38 - }
···
-16
pkgs/tools/graphics/lprof/keep-environment.patch
··· 1 - --- lprof-1.11.4.1.org/SConstruct 2006-06-06 02:11:32.000000000 +0100 2 - +++ lprof-1.11.4.1/SConstruct 2017-08-29 12:56:13.425654683 +0100 3 - @@ -22,12 +22,7 @@ 4 - # opts.Add(BoolOption('qt-mt-lib', 'Flag used to set QT library to either qt-mt or qt. Value of 1 = qt-mt, 0 = qt.', 'yes')) 5 - 6 - # setup base environment 7 - -env = Environment( 8 - - ENV = { 9 - - 'PATH' : os.environ[ 'PATH' ], 10 - - 'HOME' : os.environ[ 'HOME' ], # required for distcc 11 - - 'LDFLAGS' : '' 12 - - }, options = opts) 13 - +env = Environment(ENV = os.environ, options = opts) 14 - 15 - opts.Update(env) 16 - opts.Save('lprof.conf', env) # Save, so user doesn't have to
···
-13
pkgs/tools/graphics/lprof/lcms-1.17.patch
··· 1 - --- a/src/liblprof/lcmsprf.h 2007-08-31 15:36:20.000000000 -0700 2 - +++ b/src/liblprof/lcmsprf.h 2007-08-31 15:37:39.000000000 -0700 3 - @@ -67,6 +67,9 @@ 4 - #define mmax(a,b) ((a) > (b)?(a):(b)) 5 - #endif 6 - 7 - +#if LCMS_VERSION > 116 8 - +typedef int BOOL; 9 - +#endif 10 - 11 - /* Misc operations ------------------------------------------------------------------------ */ 12 - 13 -
···
+2
pkgs/top-level/aliases.nix
··· 361 362 linux-steam-integration = throw "linux-steam-integration has been removed, as the upstream project has been abandoned"; # added 2020-05-22 363 loadcaffe = throw "loadcaffe has been removed, as the upstream project has been abandoned"; # added 2020-03-28 364 lttngTools = lttng-tools; # added 2014-07-31 365 lttngUst = lttng-ust; # added 2014-07-31 366 lua5_1_sockets = lua51Packages.luasocket; # added 2017-05-02 ··· 573 retroshare06 = retroshare; 574 gtk-recordmydesktop = throw "gtk-recordmydesktop has been removed from nixpkgs, as it's unmaintained and uses deprecated libraries"; # added 2019-12-10 575 qt-recordmydesktop = throw "qt-recordmydesktop has been removed from nixpkgs, as it's abandoned and uses deprecated libraries"; # added 2019-12-10 576 rfkill = throw "rfkill has been removed, as it's included in util-linux"; # added 2020-08-23 577 riak-cs = throw "riak-cs is not maintained anymore"; # added 2020-10-14 578 rkt = throw "rkt was archived by upstream"; # added 2020-05-16
··· 361 362 linux-steam-integration = throw "linux-steam-integration has been removed, as the upstream project has been abandoned"; # added 2020-05-22 363 loadcaffe = throw "loadcaffe has been removed, as the upstream project has been abandoned"; # added 2020-03-28 364 + lprof = throw "lprof has been removed as it's unmaintained upstream and broken in nixpkgs since a while ago"; # added 2021-02-15 365 lttngTools = lttng-tools; # added 2014-07-31 366 lttngUst = lttng-ust; # added 2014-07-31 367 lua5_1_sockets = lua51Packages.luasocket; # added 2017-05-02 ··· 574 retroshare06 = retroshare; 575 gtk-recordmydesktop = throw "gtk-recordmydesktop has been removed from nixpkgs, as it's unmaintained and uses deprecated libraries"; # added 2019-12-10 576 qt-recordmydesktop = throw "qt-recordmydesktop has been removed from nixpkgs, as it's abandoned and uses deprecated libraries"; # added 2019-12-10 577 + qt-3 = throw "qt-3 has been removed from nixpkgs, as it's unmaintained and insecure"; # added 2021-02-15 578 rfkill = throw "rfkill has been removed, as it's included in util-linux"; # added 2020-08-23 579 riak-cs = throw "riak-cs is not maintained anymore"; # added 2020-10-14 580 rkt = throw "rkt was archived by upstream"; # added 2020-05-16
-6
pkgs/top-level/all-packages.nix
··· 4233 4234 lp_solve = callPackage ../applications/science/math/lp_solve { }; 4235 4236 - lprof = callPackage ../tools/graphics/lprof { }; 4237 - 4238 fastlane = callPackage ../tools/admin/fastlane { }; 4239 4240 fatresize = callPackage ../tools/filesystems/fatresize {}; ··· 16374 qjson = callPackage ../development/libraries/qjson { }; 16375 16376 qolibri = libsForQt5.callPackage ../applications/misc/qolibri { }; 16377 - 16378 - qt3 = callPackage ../development/libraries/qt-3 { 16379 - libpng = libpng12; 16380 - }; 16381 16382 qt4 = qt48; 16383
··· 4233 4234 lp_solve = callPackage ../applications/science/math/lp_solve { }; 4235 4236 fastlane = callPackage ../tools/admin/fastlane { }; 4237 4238 fatresize = callPackage ../tools/filesystems/fatresize {}; ··· 16372 qjson = callPackage ../development/libraries/qjson { }; 16373 16374 qolibri = libsForQt5.callPackage ../applications/misc/qolibri { }; 16375 16376 qt4 = qt48; 16377