summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaúl Porcel <armin76@gentoo.org>2008-02-08 17:41:11 +0000
committerRaúl Porcel <armin76@gentoo.org>2008-02-08 17:41:11 +0000
commit88ae6d87aadfc2ef862200e40fe893c4148bcd5a (patch)
tree70a28e3785673001112fd869f4214c71f855dd21 /sys-boot/elilo
parentVersion bump, thanks to plasmaroo for testing (diff)
downloadgentoo-2-88ae6d87aadfc2ef862200e40fe893c4148bcd5a.tar.gz
gentoo-2-88ae6d87aadfc2ef862200e40fe893c4148bcd5a.tar.bz2
gentoo-2-88ae6d87aadfc2ef862200e40fe893c4148bcd5a.zip
Version bump wrt #208639, thanks to plasmaroo for testing
(Portage version: 2.1.3.19)
Diffstat (limited to 'sys-boot/elilo')
-rw-r--r--sys-boot/elilo/ChangeLog13
-rw-r--r--sys-boot/elilo/elilo-3.4-r3.ebuild59
-rw-r--r--sys-boot/elilo/elilo-3.6.ebuild60
-rw-r--r--sys-boot/elilo/elilo-3.8.ebuild73
-rw-r--r--sys-boot/elilo/files/elilo-3.3a-devscheme.patch124
-rw-r--r--sys-boot/elilo/files/elilo-3.4-makefile.patch8
-rw-r--r--sys-boot/elilo/files/elilo-3.4-proc-sigsetjmp.patch15
-rw-r--r--sys-boot/elilo/files/elilo.8-3.4113
-rw-r--r--sys-boot/elilo/files/eliloalt.8-3.420
9 files changed, 84 insertions, 401 deletions
diff --git a/sys-boot/elilo/ChangeLog b/sys-boot/elilo/ChangeLog
index bb8ab03b0a3d..ff560f02648b 100644
--- a/sys-boot/elilo/ChangeLog
+++ b/sys-boot/elilo/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for sys-boot/elilo
-# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-boot/elilo/ChangeLog,v 1.19 2007/02/22 00:57:10 jokey Exp $
+# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/elilo/ChangeLog,v 1.20 2008/02/08 17:41:11 armin76 Exp $
+
+*elilo-3.8 (08 Feb 2008)
+
+ 08 Feb 2008; Raúl Porcel <armin76@gentoo.org>
+ -files/elilo-3.3a-devscheme.patch, -files/elilo.8-3.4,
+ -files/eliloalt.8-3.4, -files/elilo-3.4-makefile.patch,
+ -files/elilo-3.4-proc-sigsetjmp.patch, -elilo-3.4-r3.ebuild,
+ -elilo-3.6.ebuild, +elilo-3.8.ebuild:
+ Version bump wrt #208639, thanks to plasmaroo for testing
22 Feb 2007; Markus Ullmann <jokey@gentoo.org> ChangeLog:
Redigest for Manifest2
diff --git a/sys-boot/elilo/elilo-3.4-r3.ebuild b/sys-boot/elilo/elilo-3.4-r3.ebuild
deleted file mode 100644
index 3a60f38bb3e8..000000000000
--- a/sys-boot/elilo/elilo-3.4-r3.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-boot/elilo/elilo-3.4-r3.ebuild,v 1.4 2006/03/10 18:49:06 agriffis Exp $
-
-inherit eutils toolchain-funcs
-
-DESCRIPTION="Linux boot loader for EFI-based systems such as IA-64"
-HOMEPAGE="http://elilo.sourceforge.net/"
-SRC_URI="ftp://ftp.hpl.hp.com/pub/linux-ia64/${P}.tar.gz
- mirror://gentoo/elilo-3.4.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="ia64"
-IUSE=""
-
-# gnu-efi contains only static libs, so there's no run-time dep on it
-DEPEND=">=sys-boot/gnu-efi-3.0"
-RDEPEND="sys-boot/efibootmgr
- sys-fs/dosfstools"
-PROVIDE="virtual/bootloader"
-
-src_unpack() {
- unpack ${P}.tar.gz
- gzip -dc ${DISTDIR}/elilo-3.4.gz > elilo-script
- cd ${S}
- epatch ${FILESDIR}/elilo-3.4-makefile.patch
- epatch ${FILESDIR}/elilo-3.4-proc-sigsetjmp.patch
- epatch ${FILESDIR}/elilo-3.3a-devscheme.patch
-}
-
-src_compile() {
- local iarch
- case $(tc-arch) in
- ia64) iarch=ia64 ;;
- x86) iarch=ia32 ;;
- *) die "unknown architecture: $(tc-arch)" ;;
- esac
-
- # "prefix" on the next line specifies where to find gcc, as, ld,
- # etc. It's not the usual meaning of "prefix". By blanking it we
- # allow PATH to be searched.
- emake -j1 prefix= CC="$(tc-getCC)" ARCH=${iarch} || die "emake failed"
-}
-
-src_install() {
- newsbin ${WORKDIR}/elilo-script elilo || die "elilo failed"
- dosbin tools/eliloalt || die "eliloalt failed"
-
- exeinto /usr/lib/elilo
- doexe elilo.efi || die "elilo.efi failed"
-
- insinto /etc
- newins ${FILESDIR}/elilo.conf.sample elilo.conf
-
- dodoc docs/* ${FILESDIR}/elilo.conf.sample
- newman ${FILESDIR}/elilo.8-${PV} elilo.8
- newman ${FILESDIR}/eliloalt.8-${PV} eliloalt.8
-}
diff --git a/sys-boot/elilo/elilo-3.6.ebuild b/sys-boot/elilo/elilo-3.6.ebuild
deleted file mode 100644
index 913b6541af0e..000000000000
--- a/sys-boot/elilo/elilo-3.6.ebuild
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-boot/elilo/elilo-3.6.ebuild,v 1.4 2006/03/10 18:49:06 agriffis Exp $
-
-inherit eutils toolchain-funcs
-
-DESCRIPTION="Linux boot loader for EFI-based systems such as IA-64"
-HOMEPAGE="http://elilo.sourceforge.net/"
-SRC_URI="mirror://sourceforge/elilo/${P}.src.tgz
- mirror://gentoo/elilo-3.4.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="ia64"
-IUSE=""
-
-# gnu-efi contains only static libs, so there's no run-time dep on it
-DEPEND=">=sys-boot/gnu-efi-3.0"
-RDEPEND="sys-boot/efibootmgr
- sys-fs/dosfstools"
-PROVIDE="virtual/bootloader"
-
-S=${WORKDIR}/${PN}
-
-src_unpack() {
- unpack ${P}.src.tgz
- gzip -dc ${DISTDIR}/elilo-3.4.gz > elilo-script
- cd ${S}
- epatch ${FILESDIR}/elilo-3.4-makefile.patch
- epatch ${FILESDIR}/elilo-3.3a-devscheme.patch
-}
-
-src_compile() {
- local iarch
- case $(tc-arch) in
- ia64) iarch=ia64 ;;
- x86) iarch=ia32 ;;
- *) die "unknown architecture: $(tc-arch)" ;;
- esac
-
- # "prefix" on the next line specifies where to find gcc, as, ld,
- # etc. It's not the usual meaning of "prefix". By blanking it we
- # allow PATH to be searched.
- emake -j1 prefix= CC="$(tc-getCC)" ARCH=${iarch} || die "emake failed"
-}
-
-src_install() {
- newsbin ${WORKDIR}/elilo-script elilo || die "elilo failed"
- dosbin tools/eliloalt || die "eliloalt failed"
-
- exeinto /usr/lib/elilo
- doexe elilo.efi || die "elilo.efi failed"
-
- insinto /etc
- newins ${FILESDIR}/elilo.conf.sample elilo.conf
-
- dodoc docs/* ${FILESDIR}/elilo.conf.sample
- newman ${FILESDIR}/elilo.8-3.4 elilo.8
- newman ${FILESDIR}/eliloalt.8-3.4 eliloalt.8
-}
diff --git a/sys-boot/elilo/elilo-3.8.ebuild b/sys-boot/elilo/elilo-3.8.ebuild
new file mode 100644
index 000000000000..fa56147fb0c8
--- /dev/null
+++ b/sys-boot/elilo/elilo-3.8.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/elilo/elilo-3.8.ebuild,v 1.1 2008/02/08 17:41:11 armin76 Exp $
+
+inherit toolchain-funcs eutils
+
+DESCRIPTION="Linux boot loader for EFI-based systems such as IA-64"
+HOMEPAGE="http://elilo.sourceforge.net/"
+SRC_URI="mirror://sourceforge/elilo/${P}.tar.gz"
+SRC_URI="${SRC_URI} mirror://debian/pool/main/e/elilo/elilo_3.8-1.diff.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~ia64"
+IUSE=""
+
+# gnu-efi contains only static libs, so there's no run-time dep on it
+DEPEND=">=sys-boot/gnu-efi-3.0d
+ sys-devel/patch
+ dev-util/patchutils"
+RDEPEND="sys-boot/efibootmgr
+ sys-fs/dosfstools"
+PROVIDE="virtual/bootloader"
+
+S="${WORKDIR}/${PN}"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ ebegin Applying ../*.diff
+ # Using epatch on this is annoying because it wants to create the elilo-3.6/
+ # directory. Since all the files are new, it doesn't know better.
+ filterdiff -p1 -i debian/\* ../*.diff | patch -s -p1
+ eend $? || return
+
+ # Now Gentooize it
+ sed -i "
+ 1s:/bin/sh:/bin/bash:;
+ s/##VERSION##/$PV/;
+ s/Debian GNU\//Gentoo /g;
+ s/Debian/Gentoo/g;
+ s/debian/gentoo/g;
+ s/dpkg --print-installation-architecture/uname -m/" debian/elilo.sh
+}
+
+src_compile() {
+ local iarch
+ case $(tc-arch) in
+ ia64) iarch=ia64 ;;
+ x86) iarch=ia32 ;;
+ *) die "unknown architecture: $(tc-arch)" ;;
+ esac
+
+ # "prefix" on the next line specifies where to find gcc, as, ld,
+ # etc. It's not the usual meaning of "prefix". By blanking it we
+ # allow PATH to be searched.
+ emake -j1 prefix= CC="$(tc-getCC)" ARCH=${iarch} || die "emake failed"
+}
+
+src_install() {
+ exeinto /usr/lib/elilo
+ doexe elilo.efi || die "elilo.efi failed"
+
+ newsbin debian/elilo.sh elilo || die "elilo failed"
+ dosbin tools/eliloalt || die "eliloalt failed"
+
+ insinto /etc
+ newins "${FILESDIR}"/elilo.conf.sample elilo.conf
+
+ dodoc docs/* "${FILESDIR}"/elilo.conf.sample
+ doman debian/*.[0-9]
+}
diff --git a/sys-boot/elilo/files/elilo-3.3a-devscheme.patch b/sys-boot/elilo/files/elilo-3.3a-devscheme.patch
deleted file mode 100644
index 3d8f0c42f55d..000000000000
--- a/sys-boot/elilo/files/elilo-3.3a-devscheme.patch
+++ /dev/null
@@ -1,124 +0,0 @@
---- elilo-3.3a/devschemes/simple.c.devscheme 2002-09-16 20:51:52.000000000 +0200
-+++ elilo-3.3a/devschemes/simple.c 2003-05-26 15:05:13.000000000 +0200
-@@ -38,52 +38,50 @@ typedef struct {
- } devices_types_t;
-
-
--static UINT32 atapi_count, scsi_count, net_count;
-+static UINT32 cdrom_count, hd_count, net_count;
-
- static INTN
--atapi_device(device_t *dev, EFI_DEVICE_PATH *dp)
-+network_device(device_t *dev, EFI_DEVICE_PATH *dp)
- {
-- //ATAPI_DEVICE_PATH *atapi = (ATAPI_DEVICE_PATH *)dp;
-+ //MAC_ADDR_DEVICE_PATH *mac = (MAC_ADDR_DEVICE_PATH *)dp;
-
-- dev->name[0] = L'a';
-- dev->name[1] = L't';
-- dev->name[2] = L'a';
-- dev->name[3] = L'p';
-- dev->name[4] = L'i';
-+ dev->name[0] = L'n';
-+ dev->name[1] = L'e';
-+ dev->name[2] = L't';
-
-- SPrint(dev->name+5,FILEOPS_DEVNAME_MAXLEN-5-1, L"%d", atapi_count);
-- atapi_count++;
-+ SPrint(dev->name+3,FILEOPS_DEVNAME_MAXLEN-3-1, L"%d", net_count);
-+ net_count++;
-
- return 0;
- }
-
- static INTN
--scsi_device(device_t *dev, EFI_DEVICE_PATH *dp)
-+harddrive_device(device_t *dev, EFI_DEVICE_PATH *dp)
- {
- //SCSI_DEVICE_PATH *scsi = (SCSI_DEVICE_PATH *)dp;
-
-- dev->name[0] = L's';
-- dev->name[1] = L'c';
-- dev->name[2] = L's';
-- dev->name[3] = L'i';
-+ dev->name[0] = L'h';
-+ dev->name[1] = L'd';
-
-- SPrint(dev->name+4, FILEOPS_DEVNAME_MAXLEN-4-1, L"%d", scsi_count);
-- scsi_count++;
-+ SPrint(dev->name+2, FILEOPS_DEVNAME_MAXLEN-2-1, L"%d", hd_count);
-+ hd_count++;
-
- return 0;
- }
-
- static INTN
--network_device(device_t *dev, EFI_DEVICE_PATH *dp)
-+cdrom_device(device_t *dev, EFI_DEVICE_PATH *dp)
- {
- //MAC_ADDR_DEVICE_PATH *mac = (MAC_ADDR_DEVICE_PATH *)dp;
-
-- dev->name[0] = L'n';
-- dev->name[1] = L'e';
-- dev->name[2] = L't';
-+ dev->name[0] = L'c';
-+ dev->name[1] = L'd';
-+ dev->name[2] = L'r';
-+ dev->name[3] = L'o';
-+ dev->name[4] = L'm';
-
-- SPrint(dev->name+3, FILEOPS_DEVNAME_MAXLEN-3-1, L"%d", net_count);
-- net_count++;
-+ SPrint(dev->name+5, FILEOPS_DEVNAME_MAXLEN-5-1, L"%d", cdrom_count);
-+ cdrom_count++;
-
- return 0;
- }
-@@ -92,9 +90,12 @@ network_device(device_t *dev, EFI_DEVICE
- * what we are looking for in the device path
- */
- static devices_types_t dev_types[]={
-- { MESSAGING_DEVICE_PATH, MSG_ATAPI_DP, atapi_device},
-- { MESSAGING_DEVICE_PATH, MSG_SCSI_DP, scsi_device},
-+ // { MESSAGING_DEVICE_PATH, MSG_ATAPI_DP, atapi_device},
-+ // { MESSAGING_DEVICE_PATH, MSG_SCSI_DP, scsi_device},
- { MESSAGING_DEVICE_PATH, MSG_MAC_ADDR_DP, network_device},
-+ { MEDIA_DEVICE_PATH, MEDIA_HARDDRIVE_DP, harddrive_device},
-+ { MEDIA_DEVICE_PATH, MEDIA_CDROM_DP, cdrom_device},
-+ // { MEDIA_DEVICE_PATH, MEDIA_PROTOCOL_DP, network_device},
- { 0, 0 , NULL}
- };
-
-@@ -121,6 +122,7 @@ simple_scheme(device_t *tab, UINTN n)
-
- for(i=0; i < n; i++) {
- dp = DevicePathFromHandle(tab[i].dev);
-+ Print(L"New Dev :");
- if (dp == NULL) {
- ERR_PRT((L"cannot get device path for device %d", i));
- continue;
-@@ -128,6 +130,7 @@ simple_scheme(device_t *tab, UINTN n)
- dp1 = dp = UnpackDevicePath(dp);
-
- while (!IsDevicePathEnd(dp)) {
-+ Print(L"(%d,%d) ",DevicePathType(dp),DevicePathSubType(dp) );
- p = dev_types;
- while (p->type) {
- if ( p->type == DevicePathType(dp)
-@@ -135,6 +138,8 @@ simple_scheme(device_t *tab, UINTN n)
- (*p->device_func)(tab+i, dp);
- goto done;
- }
-+ // if (DevicePathType(dp) == MEDIA_DEVICE_PATH) Print(L"Unknown : %d : %d\n", DevicePathType(dp) , DevicePathSubType(dp) );
-+
-
- p++;
- }
-@@ -142,6 +147,7 @@ simple_scheme(device_t *tab, UINTN n)
- }
- done:
- FreePool(dp1);
-+ Print(L"\n");
- }
- return 0;
- }
diff --git a/sys-boot/elilo/files/elilo-3.4-makefile.patch b/sys-boot/elilo/files/elilo-3.4-makefile.patch
deleted file mode 100644
index 2a315c0352f6..000000000000
--- a/sys-boot/elilo/files/elilo-3.4-makefile.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- elilo-3.4/Make.defaults.makefile 2002-10-08 20:50:27.000000000 +0200
-+++ elilo-3.4/Make.defaults 2003-05-26 14:59:04.000000000 +0200
-@@ -123,3 +121,5 @@
- OBJCOPY = $(prefix)objcopy
- endif
- endif
-+
-+CFLAGS += $(shell if $(CC) -fno-merge-constants -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-fno-merge-constants"; fi)
diff --git a/sys-boot/elilo/files/elilo-3.4-proc-sigsetjmp.patch b/sys-boot/elilo/files/elilo-3.4-proc-sigsetjmp.patch
deleted file mode 100644
index 5796b0f05d13..000000000000
--- a/sys-boot/elilo/files/elilo-3.4-proc-sigsetjmp.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Fix an error with newer binutils:
-
-setjmp.S: Assembler messages:
-setjmp.S:170: Error: .endp outside of procedure
-
---- elilo-3.4/ia64/setjmp.S
-+++ elilo-3.4/ia64/setjmp.S
-@@ -78,6 +78,7 @@
-
- /* __sigsetjmp(__jmp_buf buf, int savemask) */
-
-+ .proc __sigsetjmp
- __sigsetjmp:
- //.prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2)
- alloc loc1=ar.pfs,2,2,2,0
diff --git a/sys-boot/elilo/files/elilo.8-3.4 b/sys-boot/elilo/files/elilo.8-3.4
deleted file mode 100644
index a88dcec3d015..000000000000
--- a/sys-boot/elilo/files/elilo.8-3.4
+++ /dev/null
@@ -1,113 +0,0 @@
-.TH ELILO 8 "18 Mar 2002"
-.SH NAME
-elilo \- install EFI boot loader
-.SH SYNOPSIS
-.B elilo
-.RI [ options ]
-.SH DESCRIPTION
-This manual page documents briefly the
-.B elilo
-command, which was written specifically for the Debian distribution to
-simplify configuring and using the elilo.efi bootloader. The command works
-equally on Gentoo Linux.
-.sp
-There are two parts to elilo, the bootloader itself and this utility which
-installs or updates a bootload configuration.
-.sp
-The primary function of elilo is to copy files necessary for booting
-Gentoo Linux from the main filesystem to a subdirectory /EFI/gentoo
-on the boot partition. These include elilo.efi, elilo.conf, and the kernel
-and ramdisk images referenced by elilo.conf.
-.sp
-In addition, elilo can create a default
-configuration file, /etc/elilo.conf, and can invoke efibootmgr to create
-an entry in the EFI Boot Manager menu such that a system will autoboot
-in to Gentoo Linux on power up.
-.sp
-.B elilo
-requires a couple of extra parameters in elilo.conf that elio.efi does
-not currently support.
-These are needed so that a normal run of elilo with no parameters can find
-the elilo.efi binary and boot partition in order to rebuild it.
-They are:
-.sp
-install=<path to elilo.efi>
-.br
-boot=<boot partition>
-.sp
-.SH OPTIONS
-This program follows the usual GNU command line syntax, with long
-options starting with two dashes (`-').
-.TP
-.B \-b, \-\-boot
-set bootstrap partition device [ -b /dev/sda1 ]
-.TP
-.B \-i, \-\-install
-pathname to the actual bootloader binary,
-default: /usr/{local/}lib/elilo/elilo.efi
-.TP
-.B \-C, \-\-config
-use alternate configuration file [ -C config_file ]
-.TP
-.B \-\-autoconf
-auto-generate a /etc/elilo.conf. Typically only used during system
-installation. In normal use, an elilo.conf file already exists and will not
-be modified by elilo.
-.TP
-.B \-\-efiboot
-elilo auto configuration: create an efi boot manager entry for elilo. This
-option requires that the
-.B efibootmgr
-package also be installed.
-.TP
-.B \-\-timeout
-elilo auto configuration: sets the time elilo
-will wait for user input before booting default
-image default: 20 (2 seconds)
-.TP
-.B \-\-image
-elilo auto configuration: sets the path to the
-kernel image. default: /vmlinuz
-.TP
-.B \-\-label
-elilo auto configuration: sets the image label
-default: Linux
-.TP
-.B \-\-root
-elilo auto configuration: sets the root device default: /dev/sda3
-.TP
-.B \-\-format
-create a new FAT filesystem on the boot partition. Use this cautiously if
-you have more than one operating system installed, and they may be sharing
-the same EFI partition!
-.TP
-.B \-v, \-\-verbose
-make elilo more verbose
-.TP
-.B \-\-debug
-print boring junk only useful for debugging
-.TP
-.B \-h, \-\-help
-display this help and exit
-.TP
-.B \-V, \-\-version
-output version information and exit
-.SH FILES
-.I /etc/elilo.conf
-.br
-.I /usr/lib/elilo/elilo.efi
-.SH SEE ALSO
-.BR efibootmgr (8)
-.sp
-Additional information about
-.B elilo
-is available in the /usr/share/doc/elilo directory.
-.SH AUTHOR
-The
-.B elilo
-program and this manual page were written by
-Richard Hirst <rhirst@linuxcare.com> and Bdale Garbee <bdale@gag.com>
-as additions to the
-.B elilo
-bootloader package from Stephane Eranian <eranian@hpl.hp.com>
-for the Debian GNU/Linux system (but may be used by others).
diff --git a/sys-boot/elilo/files/eliloalt.8-3.4 b/sys-boot/elilo/files/eliloalt.8-3.4
deleted file mode 100644
index 81bcdf6e80a8..000000000000
--- a/sys-boot/elilo/files/eliloalt.8-3.4
+++ /dev/null
@@ -1,20 +0,0 @@
-.TH ELILOALT 8 "18 Mar 2002"
-.SH NAME
-eliloalt \- manipulate elilo alternate
-.SH SYNOPSIS
-.B eliloalt
-.RI [ options ]
-.SH DESCRIPTION
-The
-.B eliloalt
-command makes it possible to coerce elilo to boot an alternate
-kernel configuration one time only, as when engaging in kernel development or
-debugging.
-.sp
-.SH SEE ALSO
-Additional information about
-.B eliloalt
-is available in the /usr/share/doc/elilo directory.
-.SH AUTHOR
-This manual page was written by Bdale Garbee <bdale@gag.com>
-for the Debian GNU/Linux system (but may be used by others).