mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-26 21:33:03 +03:00
Merge pull request #24804 from Ericson2314/platform-whitespace
top-level/platforms.nix: Reformat and clean up whitespace
This commit is contained in:
commit
2b85b38b1f
@ -28,105 +28,104 @@ rec {
|
|||||||
kernelBaseConfig = "multi_v5_defconfig";
|
kernelBaseConfig = "multi_v5_defconfig";
|
||||||
kernelArch = "arm";
|
kernelArch = "arm";
|
||||||
kernelAutoModules = false;
|
kernelAutoModules = false;
|
||||||
kernelExtraConfig =
|
kernelExtraConfig = ''
|
||||||
''
|
BLK_DEV_RAM y
|
||||||
BLK_DEV_RAM y
|
BLK_DEV_INITRD y
|
||||||
BLK_DEV_INITRD y
|
BLK_DEV_CRYPTOLOOP m
|
||||||
BLK_DEV_CRYPTOLOOP m
|
BLK_DEV_DM m
|
||||||
BLK_DEV_DM m
|
DM_CRYPT m
|
||||||
DM_CRYPT m
|
MD y
|
||||||
MD y
|
REISERFS_FS m
|
||||||
REISERFS_FS m
|
BTRFS_FS m
|
||||||
BTRFS_FS m
|
XFS_FS m
|
||||||
XFS_FS m
|
JFS_FS m
|
||||||
JFS_FS m
|
EXT4_FS m
|
||||||
EXT4_FS m
|
USB_STORAGE_CYPRESS_ATACB m
|
||||||
USB_STORAGE_CYPRESS_ATACB m
|
|
||||||
|
|
||||||
# mv cesa requires this sw fallback, for mv-sha1
|
# mv cesa requires this sw fallback, for mv-sha1
|
||||||
CRYPTO_SHA1 y
|
CRYPTO_SHA1 y
|
||||||
# Fast crypto
|
# Fast crypto
|
||||||
CRYPTO_TWOFISH y
|
CRYPTO_TWOFISH y
|
||||||
CRYPTO_TWOFISH_COMMON y
|
CRYPTO_TWOFISH_COMMON y
|
||||||
CRYPTO_BLOWFISH y
|
CRYPTO_BLOWFISH y
|
||||||
CRYPTO_BLOWFISH_COMMON y
|
CRYPTO_BLOWFISH_COMMON y
|
||||||
|
|
||||||
IP_PNP y
|
IP_PNP y
|
||||||
IP_PNP_DHCP y
|
IP_PNP_DHCP y
|
||||||
NFS_FS y
|
NFS_FS y
|
||||||
ROOT_NFS y
|
ROOT_NFS y
|
||||||
TUN m
|
TUN m
|
||||||
NFS_V4 y
|
NFS_V4 y
|
||||||
NFS_V4_1 y
|
NFS_V4_1 y
|
||||||
NFS_FSCACHE y
|
NFS_FSCACHE y
|
||||||
NFSD m
|
NFSD m
|
||||||
NFSD_V2_ACL y
|
NFSD_V2_ACL y
|
||||||
NFSD_V3 y
|
NFSD_V3 y
|
||||||
NFSD_V3_ACL y
|
NFSD_V3_ACL y
|
||||||
NFSD_V4 y
|
NFSD_V4 y
|
||||||
NETFILTER y
|
NETFILTER y
|
||||||
IP_NF_IPTABLES y
|
IP_NF_IPTABLES y
|
||||||
IP_NF_FILTER y
|
IP_NF_FILTER y
|
||||||
IP_NF_MATCH_ADDRTYPE y
|
IP_NF_MATCH_ADDRTYPE y
|
||||||
IP_NF_TARGET_LOG y
|
IP_NF_TARGET_LOG y
|
||||||
IP_NF_MANGLE y
|
IP_NF_MANGLE y
|
||||||
IPV6 m
|
IPV6 m
|
||||||
VLAN_8021Q m
|
VLAN_8021Q m
|
||||||
|
|
||||||
CIFS y
|
CIFS y
|
||||||
CIFS_XATTR y
|
CIFS_XATTR y
|
||||||
CIFS_POSIX y
|
CIFS_POSIX y
|
||||||
CIFS_FSCACHE y
|
CIFS_FSCACHE y
|
||||||
CIFS_ACL y
|
CIFS_ACL y
|
||||||
|
|
||||||
WATCHDOG y
|
WATCHDOG y
|
||||||
WATCHDOG_CORE y
|
WATCHDOG_CORE y
|
||||||
ORION_WATCHDOG m
|
ORION_WATCHDOG m
|
||||||
|
|
||||||
ZRAM m
|
ZRAM m
|
||||||
NETCONSOLE m
|
NETCONSOLE m
|
||||||
|
|
||||||
# Disable OABI to have seccomp_filter (required for systemd)
|
# Disable OABI to have seccomp_filter (required for systemd)
|
||||||
# https://github.com/raspberrypi/firmware/issues/651
|
# https://github.com/raspberrypi/firmware/issues/651
|
||||||
OABI_COMPAT n
|
OABI_COMPAT n
|
||||||
|
|
||||||
# Fail to build
|
# Fail to build
|
||||||
DRM n
|
DRM n
|
||||||
SCSI_ADVANSYS n
|
SCSI_ADVANSYS n
|
||||||
USB_ISP1362_HCD n
|
USB_ISP1362_HCD n
|
||||||
SND_SOC n
|
SND_SOC n
|
||||||
SND_ALI5451 n
|
SND_ALI5451 n
|
||||||
FB_SAVAGE n
|
FB_SAVAGE n
|
||||||
SCSI_NSP32 n
|
SCSI_NSP32 n
|
||||||
ATA_SFF n
|
ATA_SFF n
|
||||||
SUNGEM n
|
SUNGEM n
|
||||||
IRDA n
|
IRDA n
|
||||||
ATM_HE n
|
ATM_HE n
|
||||||
SCSI_ACARD n
|
SCSI_ACARD n
|
||||||
BLK_DEV_CMD640_ENHANCED n
|
BLK_DEV_CMD640_ENHANCED n
|
||||||
|
|
||||||
FUSE_FS m
|
FUSE_FS m
|
||||||
|
|
||||||
# systemd uses cgroups
|
# systemd uses cgroups
|
||||||
CGROUPS y
|
CGROUPS y
|
||||||
|
|
||||||
# Latencytop
|
# Latencytop
|
||||||
LATENCYTOP y
|
LATENCYTOP y
|
||||||
|
|
||||||
# Ubi for the mtd
|
# Ubi for the mtd
|
||||||
MTD_UBI y
|
MTD_UBI y
|
||||||
UBIFS_FS y
|
UBIFS_FS y
|
||||||
UBIFS_FS_XATTR y
|
UBIFS_FS_XATTR y
|
||||||
UBIFS_FS_ADVANCED_COMPR y
|
UBIFS_FS_ADVANCED_COMPR y
|
||||||
UBIFS_FS_LZO y
|
UBIFS_FS_LZO y
|
||||||
UBIFS_FS_ZLIB y
|
UBIFS_FS_ZLIB y
|
||||||
UBIFS_FS_DEBUG n
|
UBIFS_FS_DEBUG n
|
||||||
|
|
||||||
# Kdb, for kernel troubles
|
# Kdb, for kernel troubles
|
||||||
KGDB y
|
KGDB y
|
||||||
KGDB_SERIAL_CONSOLE y
|
KGDB_SERIAL_CONSOLE y
|
||||||
KGDB_KDB y
|
KGDB_KDB y
|
||||||
'';
|
'';
|
||||||
kernelMakeFlags = [ "LOADADDR=0x0200000" ];
|
kernelMakeFlags = [ "LOADADDR=0x0200000" ];
|
||||||
kernelTarget = "uImage";
|
kernelTarget = "uImage";
|
||||||
uboot = "sheevaplug";
|
uboot = "sheevaplug";
|
||||||
@ -147,77 +146,76 @@ rec {
|
|||||||
kernelDTB = true;
|
kernelDTB = true;
|
||||||
kernelArch = "arm";
|
kernelArch = "arm";
|
||||||
kernelAutoModules = false;
|
kernelAutoModules = false;
|
||||||
kernelExtraConfig =
|
kernelExtraConfig = ''
|
||||||
''
|
BLK_DEV_RAM y
|
||||||
BLK_DEV_RAM y
|
BLK_DEV_INITRD y
|
||||||
BLK_DEV_INITRD y
|
BLK_DEV_CRYPTOLOOP m
|
||||||
BLK_DEV_CRYPTOLOOP m
|
BLK_DEV_DM m
|
||||||
BLK_DEV_DM m
|
DM_CRYPT m
|
||||||
DM_CRYPT m
|
MD y
|
||||||
MD y
|
REISERFS_FS m
|
||||||
REISERFS_FS m
|
BTRFS_FS y
|
||||||
BTRFS_FS y
|
XFS_FS m
|
||||||
XFS_FS m
|
JFS_FS y
|
||||||
JFS_FS y
|
EXT4_FS y
|
||||||
EXT4_FS y
|
|
||||||
|
|
||||||
IP_PNP y
|
IP_PNP y
|
||||||
IP_PNP_DHCP y
|
IP_PNP_DHCP y
|
||||||
NFS_FS y
|
NFS_FS y
|
||||||
ROOT_NFS y
|
ROOT_NFS y
|
||||||
TUN m
|
TUN m
|
||||||
NFS_V4 y
|
NFS_V4 y
|
||||||
NFS_V4_1 y
|
NFS_V4_1 y
|
||||||
NFS_FSCACHE y
|
NFS_FSCACHE y
|
||||||
NFSD m
|
NFSD m
|
||||||
NFSD_V2_ACL y
|
NFSD_V2_ACL y
|
||||||
NFSD_V3 y
|
NFSD_V3 y
|
||||||
NFSD_V3_ACL y
|
NFSD_V3_ACL y
|
||||||
NFSD_V4 y
|
NFSD_V4 y
|
||||||
NETFILTER y
|
NETFILTER y
|
||||||
IP_NF_IPTABLES y
|
IP_NF_IPTABLES y
|
||||||
IP_NF_FILTER y
|
IP_NF_FILTER y
|
||||||
IP_NF_MATCH_ADDRTYPE y
|
IP_NF_MATCH_ADDRTYPE y
|
||||||
IP_NF_TARGET_LOG y
|
IP_NF_TARGET_LOG y
|
||||||
IP_NF_MANGLE y
|
IP_NF_MANGLE y
|
||||||
IPV6 m
|
IPV6 m
|
||||||
VLAN_8021Q m
|
VLAN_8021Q m
|
||||||
|
|
||||||
CIFS y
|
CIFS y
|
||||||
CIFS_XATTR y
|
CIFS_XATTR y
|
||||||
CIFS_POSIX y
|
CIFS_POSIX y
|
||||||
CIFS_FSCACHE y
|
CIFS_FSCACHE y
|
||||||
CIFS_ACL y
|
CIFS_ACL y
|
||||||
|
|
||||||
ZRAM m
|
ZRAM m
|
||||||
|
|
||||||
# Disable OABI to have seccomp_filter (required for systemd)
|
# Disable OABI to have seccomp_filter (required for systemd)
|
||||||
# https://github.com/raspberrypi/firmware/issues/651
|
# https://github.com/raspberrypi/firmware/issues/651
|
||||||
OABI_COMPAT n
|
OABI_COMPAT n
|
||||||
|
|
||||||
# Fail to build
|
# Fail to build
|
||||||
DRM n
|
DRM n
|
||||||
SCSI_ADVANSYS n
|
SCSI_ADVANSYS n
|
||||||
USB_ISP1362_HCD n
|
USB_ISP1362_HCD n
|
||||||
SND_SOC n
|
SND_SOC n
|
||||||
SND_ALI5451 n
|
SND_ALI5451 n
|
||||||
FB_SAVAGE n
|
FB_SAVAGE n
|
||||||
SCSI_NSP32 n
|
SCSI_NSP32 n
|
||||||
ATA_SFF n
|
ATA_SFF n
|
||||||
SUNGEM n
|
SUNGEM n
|
||||||
IRDA n
|
IRDA n
|
||||||
ATM_HE n
|
ATM_HE n
|
||||||
SCSI_ACARD n
|
SCSI_ACARD n
|
||||||
BLK_DEV_CMD640_ENHANCED n
|
BLK_DEV_CMD640_ENHANCED n
|
||||||
|
|
||||||
FUSE_FS m
|
FUSE_FS m
|
||||||
|
|
||||||
# nixos mounts some cgroup
|
# nixos mounts some cgroup
|
||||||
CGROUPS y
|
CGROUPS y
|
||||||
|
|
||||||
# Latencytop
|
# Latencytop
|
||||||
LATENCYTOP y
|
LATENCYTOP y
|
||||||
'';
|
'';
|
||||||
kernelTarget = "zImage";
|
kernelTarget = "zImage";
|
||||||
uboot = null;
|
uboot = null;
|
||||||
gcc = {
|
gcc = {
|
||||||
@ -232,80 +230,79 @@ rec {
|
|||||||
kernelBaseConfig = "bcm2709_defconfig";
|
kernelBaseConfig = "bcm2709_defconfig";
|
||||||
kernelDTB = true;
|
kernelDTB = true;
|
||||||
kernelAutoModules = false;
|
kernelAutoModules = false;
|
||||||
kernelExtraConfig =
|
kernelExtraConfig = ''
|
||||||
''
|
BLK_DEV_RAM y
|
||||||
BLK_DEV_RAM y
|
BLK_DEV_INITRD y
|
||||||
BLK_DEV_INITRD y
|
BLK_DEV_CRYPTOLOOP m
|
||||||
BLK_DEV_CRYPTOLOOP m
|
BLK_DEV_DM m
|
||||||
BLK_DEV_DM m
|
DM_CRYPT m
|
||||||
DM_CRYPT m
|
MD y
|
||||||
MD y
|
REISERFS_FS m
|
||||||
REISERFS_FS m
|
BTRFS_FS y
|
||||||
BTRFS_FS y
|
XFS_FS m
|
||||||
XFS_FS m
|
JFS_FS y
|
||||||
JFS_FS y
|
EXT4_FS y
|
||||||
EXT4_FS y
|
|
||||||
|
|
||||||
IP_PNP y
|
IP_PNP y
|
||||||
IP_PNP_DHCP y
|
IP_PNP_DHCP y
|
||||||
NFS_FS y
|
NFS_FS y
|
||||||
ROOT_NFS y
|
ROOT_NFS y
|
||||||
TUN m
|
TUN m
|
||||||
NFS_V4 y
|
NFS_V4 y
|
||||||
NFS_V4_1 y
|
NFS_V4_1 y
|
||||||
NFS_FSCACHE y
|
NFS_FSCACHE y
|
||||||
NFSD m
|
NFSD m
|
||||||
NFSD_V2_ACL y
|
NFSD_V2_ACL y
|
||||||
NFSD_V3 y
|
NFSD_V3 y
|
||||||
NFSD_V3_ACL y
|
NFSD_V3_ACL y
|
||||||
NFSD_V4 y
|
NFSD_V4 y
|
||||||
NETFILTER y
|
NETFILTER y
|
||||||
IP_NF_IPTABLES y
|
IP_NF_IPTABLES y
|
||||||
IP_NF_FILTER y
|
IP_NF_FILTER y
|
||||||
IP_NF_MATCH_ADDRTYPE y
|
IP_NF_MATCH_ADDRTYPE y
|
||||||
IP_NF_TARGET_LOG y
|
IP_NF_TARGET_LOG y
|
||||||
IP_NF_MANGLE y
|
IP_NF_MANGLE y
|
||||||
IPV6 m
|
IPV6 m
|
||||||
VLAN_8021Q m
|
VLAN_8021Q m
|
||||||
|
|
||||||
CIFS y
|
CIFS y
|
||||||
CIFS_XATTR y
|
CIFS_XATTR y
|
||||||
CIFS_POSIX y
|
CIFS_POSIX y
|
||||||
CIFS_FSCACHE y
|
CIFS_FSCACHE y
|
||||||
CIFS_ACL y
|
CIFS_ACL y
|
||||||
|
|
||||||
ZRAM m
|
ZRAM m
|
||||||
|
|
||||||
# Disable OABI to have seccomp_filter (required for systemd)
|
# Disable OABI to have seccomp_filter (required for systemd)
|
||||||
# https://github.com/raspberrypi/firmware/issues/651
|
# https://github.com/raspberrypi/firmware/issues/651
|
||||||
OABI_COMPAT n
|
OABI_COMPAT n
|
||||||
|
|
||||||
# Fail to build
|
# Fail to build
|
||||||
DRM n
|
DRM n
|
||||||
SCSI_ADVANSYS n
|
SCSI_ADVANSYS n
|
||||||
USB_ISP1362_HCD n
|
USB_ISP1362_HCD n
|
||||||
SND_SOC n
|
SND_SOC n
|
||||||
SND_ALI5451 n
|
SND_ALI5451 n
|
||||||
FB_SAVAGE n
|
FB_SAVAGE n
|
||||||
SCSI_NSP32 n
|
SCSI_NSP32 n
|
||||||
ATA_SFF n
|
ATA_SFF n
|
||||||
SUNGEM n
|
SUNGEM n
|
||||||
IRDA n
|
IRDA n
|
||||||
ATM_HE n
|
ATM_HE n
|
||||||
SCSI_ACARD n
|
SCSI_ACARD n
|
||||||
BLK_DEV_CMD640_ENHANCED n
|
BLK_DEV_CMD640_ENHANCED n
|
||||||
|
|
||||||
FUSE_FS m
|
FUSE_FS m
|
||||||
|
|
||||||
# nixos mounts some cgroup
|
# nixos mounts some cgroup
|
||||||
CGROUPS y
|
CGROUPS y
|
||||||
|
|
||||||
# Latencytop
|
# Latencytop
|
||||||
LATENCYTOP y
|
LATENCYTOP y
|
||||||
|
|
||||||
# Disable the common config Xen, it doesn't build on ARM
|
# Disable the common config Xen, it doesn't build on ARM
|
||||||
XEN? n
|
XEN? n
|
||||||
'';
|
'';
|
||||||
kernelTarget = "zImage";
|
kernelTarget = "zImage";
|
||||||
uboot = null;
|
uboot = null;
|
||||||
};
|
};
|
||||||
@ -327,76 +324,75 @@ rec {
|
|||||||
kernelBaseConfig = "lemote2f_defconfig";
|
kernelBaseConfig = "lemote2f_defconfig";
|
||||||
kernelArch = "mips";
|
kernelArch = "mips";
|
||||||
kernelAutoModules = false;
|
kernelAutoModules = false;
|
||||||
kernelExtraConfig =
|
kernelExtraConfig = ''
|
||||||
''
|
MIGRATION n
|
||||||
MIGRATION n
|
COMPACTION n
|
||||||
COMPACTION n
|
|
||||||
|
|
||||||
# nixos mounts some cgroup
|
# nixos mounts some cgroup
|
||||||
CGROUPS y
|
CGROUPS y
|
||||||
|
|
||||||
BLK_DEV_RAM y
|
BLK_DEV_RAM y
|
||||||
BLK_DEV_INITRD y
|
BLK_DEV_INITRD y
|
||||||
BLK_DEV_CRYPTOLOOP m
|
BLK_DEV_CRYPTOLOOP m
|
||||||
BLK_DEV_DM m
|
BLK_DEV_DM m
|
||||||
DM_CRYPT m
|
DM_CRYPT m
|
||||||
MD y
|
MD y
|
||||||
REISERFS_FS m
|
REISERFS_FS m
|
||||||
EXT4_FS m
|
EXT4_FS m
|
||||||
USB_STORAGE_CYPRESS_ATACB m
|
USB_STORAGE_CYPRESS_ATACB m
|
||||||
|
|
||||||
IP_PNP y
|
IP_PNP y
|
||||||
IP_PNP_DHCP y
|
IP_PNP_DHCP y
|
||||||
IP_PNP_BOOTP y
|
IP_PNP_BOOTP y
|
||||||
NFS_FS y
|
NFS_FS y
|
||||||
ROOT_NFS y
|
ROOT_NFS y
|
||||||
TUN m
|
TUN m
|
||||||
NFS_V4 y
|
NFS_V4 y
|
||||||
NFS_V4_1 y
|
NFS_V4_1 y
|
||||||
NFS_FSCACHE y
|
NFS_FSCACHE y
|
||||||
NFSD m
|
NFSD m
|
||||||
NFSD_V2_ACL y
|
NFSD_V2_ACL y
|
||||||
NFSD_V3 y
|
NFSD_V3 y
|
||||||
NFSD_V3_ACL y
|
NFSD_V3_ACL y
|
||||||
NFSD_V4 y
|
NFSD_V4 y
|
||||||
|
|
||||||
# Fail to build
|
# Fail to build
|
||||||
DRM n
|
DRM n
|
||||||
SCSI_ADVANSYS n
|
SCSI_ADVANSYS n
|
||||||
USB_ISP1362_HCD n
|
USB_ISP1362_HCD n
|
||||||
SND_SOC n
|
SND_SOC n
|
||||||
SND_ALI5451 n
|
SND_ALI5451 n
|
||||||
FB_SAVAGE n
|
FB_SAVAGE n
|
||||||
SCSI_NSP32 n
|
SCSI_NSP32 n
|
||||||
ATA_SFF n
|
ATA_SFF n
|
||||||
SUNGEM n
|
SUNGEM n
|
||||||
IRDA n
|
IRDA n
|
||||||
ATM_HE n
|
ATM_HE n
|
||||||
SCSI_ACARD n
|
SCSI_ACARD n
|
||||||
BLK_DEV_CMD640_ENHANCED n
|
BLK_DEV_CMD640_ENHANCED n
|
||||||
|
|
||||||
FUSE_FS m
|
FUSE_FS m
|
||||||
|
|
||||||
# Needed for udev >= 150
|
# Needed for udev >= 150
|
||||||
SYSFS_DEPRECATED_V2 n
|
SYSFS_DEPRECATED_V2 n
|
||||||
|
|
||||||
VGA_CONSOLE n
|
VGA_CONSOLE n
|
||||||
VT_HW_CONSOLE_BINDING y
|
VT_HW_CONSOLE_BINDING y
|
||||||
SERIAL_8250_CONSOLE y
|
SERIAL_8250_CONSOLE y
|
||||||
FRAMEBUFFER_CONSOLE y
|
FRAMEBUFFER_CONSOLE y
|
||||||
EXT2_FS y
|
EXT2_FS y
|
||||||
EXT3_FS y
|
EXT3_FS y
|
||||||
REISERFS_FS y
|
REISERFS_FS y
|
||||||
MAGIC_SYSRQ y
|
MAGIC_SYSRQ y
|
||||||
|
|
||||||
# The kernel doesn't boot at all, with FTRACE
|
# The kernel doesn't boot at all, with FTRACE
|
||||||
FTRACE n
|
FTRACE n
|
||||||
'';
|
'';
|
||||||
kernelTarget = "vmlinux";
|
kernelTarget = "vmlinux";
|
||||||
uboot = null;
|
uboot = null;
|
||||||
gcc.arch = "loongson2f";
|
gcc.arch = "loongson2f";
|
||||||
};
|
};
|
||||||
|
|
||||||
beaglebone = armv7l-hf-multiplatform // {
|
beaglebone = armv7l-hf-multiplatform // {
|
||||||
name = "beaglebone";
|
name = "beaglebone";
|
||||||
kernelBaseConfig = "omap2plus_defconfig";
|
kernelBaseConfig = "omap2plus_defconfig";
|
||||||
@ -417,14 +413,13 @@ rec {
|
|||||||
kernelPreferBuiltin = true;
|
kernelPreferBuiltin = true;
|
||||||
uboot = null;
|
uboot = null;
|
||||||
kernelTarget = "zImage";
|
kernelTarget = "zImage";
|
||||||
kernelExtraConfig =
|
kernelExtraConfig = ''
|
||||||
''
|
# Fix broken sunxi-sid nvmem driver.
|
||||||
# Fix broken sunxi-sid nvmem driver.
|
TI_CPTS y
|
||||||
TI_CPTS y
|
|
||||||
|
|
||||||
# Hangs ODROID-XU4
|
# Hangs ODROID-XU4
|
||||||
ARM_BIG_LITTLE_CPUIDLE n
|
ARM_BIG_LITTLE_CPUIDLE n
|
||||||
'';
|
'';
|
||||||
gcc = {
|
gcc = {
|
||||||
# Some table about fpu flags:
|
# Some table about fpu flags:
|
||||||
# http://community.arm.com/servlet/JiveServlet/showImage/38-1981-3827/blogentry-103749-004812900+1365712953_thumb.png
|
# http://community.arm.com/servlet/JiveServlet/showImage/38-1981-3827/blogentry-103749-004812900+1365712953_thumb.png
|
||||||
|
Loading…
Reference in New Issue
Block a user