Documented changes and release timestamp
This commit is contained in:
parent
415d777d2a
commit
27fbcfe851
@ -6871,14 +6871,351 @@ xorriso/xorriso_private.h
|
|||||||
test/compare_file.c
|
test/compare_file.c
|
||||||
Lifted ban to derive GPLv3, extended copyright range to 2010
|
Lifted ban to derive GPLv3, extended copyright range to 2010
|
||||||
|
|
||||||
25 Jan 2010 [] ([3044])
|
25 Jan 2010 [3049] ([3044])
|
||||||
xorriso/changelog.txt
|
xorriso/changelog.txt
|
||||||
Documented changes and release timestamp
|
Documented changes and release timestamp
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.4.9 - 2010.01.25.142705
|
------------------------------------ cycle - xorriso-0.4.9 - 2010.01.25.142705
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.4.9 -
|
|
||||||
------------------------------------ cycle - xorriso-0.4.9 -
|
25 Jan 2010 [3050]
|
||||||
|
move -m Promoted branch to tag \
|
||||||
|
http://svn.libburnia-project.org/libisoburn/branches/ZeroFourEight \
|
||||||
|
http://svn.libburnia-project.org/libisoburn/tags/ZeroFourEight
|
||||||
|
|
||||||
|
27 Jan 2010 [3051]
|
||||||
|
README
|
||||||
|
Changed leftover text which disallowed GPLv3
|
||||||
|
|
||||||
|
04 Feb 2010 [3052]
|
||||||
|
xorriso/xorriso.1
|
||||||
|
Small corrections in xorriso man page
|
||||||
|
|
||||||
|
2010.02.04.082710 [3053]
|
||||||
|
acinclude.m4
|
||||||
|
configure.ac
|
||||||
|
xorriso/configure_ac.txt
|
||||||
|
Forcing use of /usr/local on FreeBSD by LDFLAGS and CPPFLAGS
|
||||||
|
|
||||||
|
2010.02.08.110814 [3055]
|
||||||
|
xorriso/xorrisoburn.c
|
||||||
|
Removed surplus quotes from an error message
|
||||||
|
|
||||||
|
8 Feb 2010 [3056]
|
||||||
|
svn move -m 'Marked libisofs SVN copy as outdated (use bzr on lp)'
|
||||||
|
http://svn.libburnia-project.org/libisofs
|
||||||
|
http://svn.libburnia-project.org/libisofs_outdated
|
||||||
|
|
||||||
|
2010.02.10.150252 [3057]
|
||||||
|
README
|
||||||
|
Updated license statement about our legal view and future licenses
|
||||||
|
|
||||||
|
2010.02.10.150501 [3058]
|
||||||
|
configure.ac
|
||||||
|
libisoburn/libisoburn.h
|
||||||
|
Requiring libisofs-0.6.28 now
|
||||||
|
|
||||||
|
2010.02.10.150547 [3059]
|
||||||
|
xorriso/configure_ac.txt
|
||||||
|
Adapted xorriso-standalone to version leap libisofs-0.6.29
|
||||||
|
|
||||||
|
10 Feb 2010 [3060]
|
||||||
|
xorriso/xorriso_eng.html
|
||||||
|
Updated xorriso web page
|
||||||
|
|
||||||
|
------------------------------------ cycle - xorriso-0.4.9 - 2010.02.10.150547
|
||||||
|
Bug fix: Regression in libisofs introduced with xorriso-0.4.2 in August 2009:
|
||||||
|
-boot_image could lead to SIGSEGV
|
||||||
|
|
||||||
|
|
||||||
|
12 Feb 2010 [3061]
|
||||||
|
xorriso/README
|
||||||
|
Switched from xorriso-standalone GPLv2+ to GNU xorriso GPLv3+
|
||||||
|
|
||||||
|
svn move -m 'Renamed xorriso/README to xorriso/README_gnu_xorriso' \
|
||||||
|
xorriso/README xorriso/README_gnu_xorriso
|
||||||
|
|
||||||
|
2010.02.12.153945 [3062]
|
||||||
|
xorriso/xorriso.c
|
||||||
|
xorriso/make_xorriso_standalone.sh
|
||||||
|
xorriso/README_gnu_xorriso
|
||||||
|
+ xorriso/COPYING_gnu_xorriso
|
||||||
|
xorriso/xorriso_eng.html
|
||||||
|
Switched from xorriso-standalone GPLv2+ to GNU xorriso GPLv3+
|
||||||
|
|
||||||
|
2010.02.12.213121 [3065]
|
||||||
|
xorriso/xorriso.1
|
||||||
|
libisoburn/libisoburn.h
|
||||||
|
xorriso/xorriso_eng.html
|
||||||
|
Changed docs and comments to "GNU/Linux" where appropriate
|
||||||
|
|
||||||
|
------------------------------------ cycle - xorriso-0.4.9 - 2010.02.12.213121
|
||||||
|
|
||||||
|
2010.02.14.151045 [3067]
|
||||||
|
README
|
||||||
|
COPYRIGHT
|
||||||
|
libisoburn/libisoburn.h
|
||||||
|
libisoburn/isoburn.h
|
||||||
|
libisoburn/isoburn.c
|
||||||
|
libisoburn/data_source.c
|
||||||
|
libisoburn/burn_wrap.c
|
||||||
|
libisoburn/isofs_wrap.c
|
||||||
|
Added or adjusted copyright and license statements in single files
|
||||||
|
|
||||||
|
2010.02.14.151610 [3068]
|
||||||
|
xorriso/xorriso.c
|
||||||
|
xorriso/xorrisoburn.c
|
||||||
|
xorriso/make_xorriso_standalone.sh
|
||||||
|
xorriso/configure_ac.txt
|
||||||
|
xorriso/xorriso_makefile_am.txt
|
||||||
|
xorriso/xorriso.1
|
||||||
|
xorriso/xorriso_eng.html
|
||||||
|
+ xorriso/AUTHORS_gnu_xorriso
|
||||||
|
+ xorriso/COPYRIGHT_gnu_xorriso
|
||||||
|
Added or adjusted copyright and license statements in single files
|
||||||
|
|
||||||
|
2010.02.14.172124 [3070]
|
||||||
|
README
|
||||||
|
xorriso/make_xorriso_standalone.sh
|
||||||
|
xorriso/xorriso_makefile_am.txt
|
||||||
|
Excluded unused libburn source module crc.c from GNU xorriso tarball
|
||||||
|
|
||||||
|
2010.02.15.204530 [3072]
|
||||||
|
xorriso/xorriso_eng.html
|
||||||
|
Adjustments with web page of GNU xorriso
|
||||||
|
|
||||||
|
------------------------------------ cycle - xorriso-0.4.9 - 2010.02.15.204530
|
||||||
|
|
||||||
|
2010.02.17.140002 [3074]
|
||||||
|
xorriso/xorriso.c
|
||||||
|
Bug fix for FreeBSD: xorriso could leave the drive tray locked
|
||||||
|
|
||||||
|
2010.02.18.125019 [3076]
|
||||||
|
xorriso/xorriso.h
|
||||||
|
xorriso/xorriso_private.h
|
||||||
|
xorriso/xorriso.c
|
||||||
|
xorriso/xorrisoburn.h
|
||||||
|
xorriso/xorrisoburn.c
|
||||||
|
xorriso/xorriso.1
|
||||||
|
New option -scsi_log
|
||||||
|
|
||||||
|
2010.02.19.172125 [3077]
|
||||||
|
xorriso/xorrisoburn.c
|
||||||
|
Bug fix: xorriso -update_r could lead to SIGSEGV if applied to a data file
|
||||||
|
|
||||||
|
19 Feb 2010 [3078] [3079]
|
||||||
|
xorriso/xorriso_eng.html
|
||||||
|
Adjustments with web page of GNU xorriso
|
||||||
|
|
||||||
|
------------------------------------ cycle - xorriso-0.4.9 - 2010.02.19.172125
|
||||||
|
Bug fix on FreeBSD: xorriso could leave the drive tray locked
|
||||||
|
Bug fix on FreeBSD: Piped input was falsely attributed a small fixed size
|
||||||
|
Bug fix: xorriso -update_r could lead to SIGSEGV if applied to a data file
|
||||||
|
New option -scsi_log
|
||||||
|
|
||||||
|
22 Feb 2010 [3081]
|
||||||
|
xorriso/README_gnu_xorriso
|
||||||
|
xorriso/xorriso_eng.html
|
||||||
|
Mentioned bug-xorriso@gnu.org as a contact address for GNU xorriso
|
||||||
|
|
||||||
|
2010.02.22.195623 [3082]
|
||||||
|
xorriso/make_xorriso_standalone.sh
|
||||||
|
xorriso/xorriso.h
|
||||||
|
xorriso/xorriso.c
|
||||||
|
Changed versioning and tarball name to match unpack directory name
|
||||||
|
|
||||||
|
22 Feb 2010 [3083]
|
||||||
|
svn copy -m Branching for libisoburn release 0.5.0
|
||||||
|
http://svn.libburnia-project.org/libisoburn/trunk
|
||||||
|
http://svn.libburnia-project.org/libisoburn/branches/ZeroFiveZero
|
||||||
|
|
||||||
|
2010.02.22.213001 [3084]
|
||||||
|
configure.ac
|
||||||
|
README
|
||||||
|
libisoburn/libisoburn.h
|
||||||
|
xorriso/README_gnu_xorriso
|
||||||
|
xorriso/xorriso.h
|
||||||
|
xorriso/xorriso.c
|
||||||
|
xorriso/xorrisoburn.h
|
||||||
|
xorriso/xorriso_eng.html
|
||||||
|
xorriso/make_xorriso_standalone.sh
|
||||||
|
xorriso/configure_ac.txt
|
||||||
|
xorriso/xorriso_timestamp.h
|
||||||
|
Version leap to libisoburn-0.5.0
|
||||||
|
|
||||||
|
22 Feb 2010 [3085]
|
||||||
|
Makefile.am
|
||||||
|
Delivering xorriso/README_gnu_xorriso with libisoburn
|
||||||
|
|
||||||
|
22 Feb 2010 [3086]
|
||||||
|
xorriso/changelog.txt
|
||||||
|
Documented changes and release timestamp
|
||||||
|
|
||||||
|
----------------------------------- release - xorriso-0.5.0 - 2010.02.22.213001
|
||||||
|
Bug fix: Regression in libisofs introduced with xorriso-0.4.2 in August 2009:
|
||||||
|
-boot_image could lead to SIGSEGV
|
||||||
|
Bug fix on FreeBSD: xorriso could leave the drive tray locked
|
||||||
|
Bug fix on FreeBSD: Piped input was falsely attributed a small fixed size
|
||||||
|
Bug fix: xorriso -update_r could lead to SIGSEGV if applied to a data file
|
||||||
|
New option -scsi_log
|
||||||
|
|
||||||
|
|
||||||
|
2010.02.23.093924 [3087]
|
||||||
|
configure.ac
|
||||||
|
README
|
||||||
|
libisoburn/libisoburn.h
|
||||||
|
xorriso/README_gnu_xorriso
|
||||||
|
xorriso/xorriso.h
|
||||||
|
xorriso/xorriso.c
|
||||||
|
xorriso/xorrisoburn.h
|
||||||
|
xorriso/xorriso_eng.html
|
||||||
|
xorriso/make_xorriso_standalone.sh
|
||||||
|
xorriso/configure_ac.txt
|
||||||
|
xorriso/xorriso_timestamp.h
|
||||||
|
Version leap to libisoburn-0.5.1
|
||||||
|
|
||||||
|
23 Feb 2010 [3088]
|
||||||
|
Makefile.am
|
||||||
|
Delivering xorriso/README_gnu_xorriso with libisoburn
|
||||||
|
|
||||||
|
23 Feb 2010 [3089]
|
||||||
|
svn move -m Promoted branch to tag
|
||||||
|
http://svn.libburnia-project.org/libisoburn/branches/ZeroFiveZero
|
||||||
|
http://svn.libburnia-project.org/libisoburn/tags/ZeroFiveZero
|
||||||
|
|
||||||
|
------------------------------------ cycle - xorriso-0.5.1 - 2010.02.23.093924
|
||||||
|
|
||||||
|
|
||||||
|
28 Feb 2010 [3094]
|
||||||
|
xorriso/make_xorriso_standalone.sh
|
||||||
|
Adjusted patcher of Makefile.in for GNU xorriso
|
||||||
|
|
||||||
|
28 Feb 2010 [3095]
|
||||||
|
xorriso/xorriso.1
|
||||||
|
Corrected spelling errors in xorriso man page
|
||||||
|
|
||||||
|
2010.03.09.065117 [3109]
|
||||||
|
libisoburn/libisoburn.h
|
||||||
|
Requiring libburn-0.7.7 now
|
||||||
|
|
||||||
|
2010.03.09.065408 [3110]
|
||||||
|
xorriso/xorriso_private.h
|
||||||
|
xorriso/xorriso.h
|
||||||
|
xorriso/xorriso.c
|
||||||
|
xorriso/xorrisoburn.c
|
||||||
|
Adapted xorriso signal handling to new libburn advise
|
||||||
|
|
||||||
|
2010.03.10.183348 [3121]
|
||||||
|
configure.ac
|
||||||
|
libisoburn/libisoburn.h
|
||||||
|
Requiring libburn-0.7.8 now
|
||||||
|
|
||||||
|
2010.03.10.183426 [3122]
|
||||||
|
xorriso/configure_ac.txt
|
||||||
|
Adapted GNU xorriso to version leap libburn-0.7.9
|
||||||
|
|
||||||
|
2010.03.18.101202 [3125]
|
||||||
|
Makefile.am
|
||||||
|
xorriso/xorriso_makefile_am.txt
|
||||||
|
xorriso/make_xorriso_standalone.sh
|
||||||
|
+ xorriso/xorriso.texi
|
||||||
|
+ xorriso/xorriso.info
|
||||||
|
+ xorriso/make_xorriso_1.c
|
||||||
|
+ xorriso/make_docs.sh
|
||||||
|
xorriso/xorriso.1
|
||||||
|
xorriso/convert_man_to_html.sh
|
||||||
|
Switched xorriso documentation to a hybrid of texinfo and man page
|
||||||
|
|
||||||
|
------------------------------------ cycle - xorriso-0.5.1 - 2010.03.18.101202
|
||||||
|
* xorriso documentation now also available in (tex)info format
|
||||||
|
|
||||||
|
|
||||||
|
2010.03.20.165317 [3126]
|
||||||
|
xorriso/make_docs.sh
|
||||||
|
xorriso/xorriso.texi
|
||||||
|
xorriso/xorriso.info
|
||||||
|
xorriso/xorriso.1
|
||||||
|
xorriso/convert_man_to_html.sh
|
||||||
|
Restructured xorriso documentation and added index
|
||||||
|
|
||||||
|
2010.03.21.124435 [3127]
|
||||||
|
Makefile.am
|
||||||
|
xorriso/xorriso_makefile_am.txt
|
||||||
|
xorriso/xorriso.texi
|
||||||
|
xorriso/xorriso.info
|
||||||
|
Distributing and installing xorriso.info
|
||||||
|
|
||||||
|
2010.03.21.124517 [3128]
|
||||||
|
libisoburn/burn_wrap.c
|
||||||
|
Silenced a harmless compiler warning
|
||||||
|
|
||||||
|
22 Mar 2010 [3129]
|
||||||
|
xorriso/xorriso.texi
|
||||||
|
Changed global info dir entry of xorriso.texi
|
||||||
|
|
||||||
|
22 Mar 2010 [3130]
|
||||||
|
xorriso/xorriso.info
|
||||||
|
Changed global info dir entry of xorriso.info
|
||||||
|
|
||||||
|
2010.03.29.103419 [3136]
|
||||||
|
libisoburn/burn_wrap.c
|
||||||
|
Avoided to declare empty tray as written media
|
||||||
|
|
||||||
|
2010.03.29.103533 [3137]
|
||||||
|
xorriso/xorrisoburn.c
|
||||||
|
Better handling of empty tray when aquiring drive
|
||||||
|
|
||||||
|
------------------------------------ cycle - xorriso-0.5.1 - 2010.03.29.103533
|
||||||
|
|
||||||
|
29 Mar 2010 [3138]
|
||||||
|
svn copy -m Branching for libisoburn release 0.5.2
|
||||||
|
http://svn.libburnia-project.org/libisoburn/trunk
|
||||||
|
http://svn.libburnia-project.org/libisoburn/branches/ZeroFiveTwo
|
||||||
|
|
||||||
|
2010.03.29.190001 [3139]
|
||||||
|
configure.ac
|
||||||
|
README
|
||||||
|
libisoburn/libisoburn.h
|
||||||
|
xorriso/README_gnu_xorriso
|
||||||
|
xorriso/xorriso.h
|
||||||
|
xorriso/xorriso.c
|
||||||
|
xorriso/xorrisoburn.h
|
||||||
|
xorriso/xorriso_eng.html
|
||||||
|
xorriso/make_xorriso_standalone.sh
|
||||||
|
xorriso/configure_ac.txt
|
||||||
|
xorriso/xorriso_timestamp.h
|
||||||
|
Version leap to libisoburn-0.5.2
|
||||||
|
|
||||||
|
30 Mar 2010 [3141]
|
||||||
|
xorriso/changelog.txt
|
||||||
|
Documented changes and release timestamp
|
||||||
|
|
||||||
|
----------------------------------- release - xorriso-0.5.2 - 2010.03.29.190001
|
||||||
|
* xorriso documentation now also available in (tex)info format
|
||||||
|
* Prepared FreeBSD system adapter to work with ahci driver
|
||||||
|
|
||||||
|
|
||||||
|
2010.03.30.082405 []
|
||||||
|
configure.ac
|
||||||
|
README
|
||||||
|
libisoburn/libisoburn.h
|
||||||
|
xorriso/README_gnu_xorriso
|
||||||
|
xorriso/xorriso.h
|
||||||
|
xorriso/xorriso.c
|
||||||
|
xorriso/xorrisoburn.h
|
||||||
|
xorriso/xorriso_eng.html
|
||||||
|
xorriso/make_xorriso_standalone.sh
|
||||||
|
xorriso/configure_ac.txt
|
||||||
|
xorriso/xorriso_timestamp.h
|
||||||
|
Version leap to libisoburn-0.5.2
|
||||||
|
|
||||||
|
[]
|
||||||
|
xorriso/changelog.txt
|
||||||
|
Documented changes and release timestamp
|
||||||
|
|
||||||
|
------------------------------------ cycle - xorriso-0.5.3 -
|
||||||
|
------------------------------------ cycle - xorriso-0.5.3 -
|
||||||
|
------------------------------------ cycle - xorriso-0.5.3 -
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
TODO
|
TODO
|
||||||
@ -6886,6 +7223,42 @@ Documented changes and release timestamp
|
|||||||
|
|
||||||
------------------------------------------------- bugs
|
------------------------------------------------- bugs
|
||||||
|
|
||||||
|
- DVD-ROM drives report CD tracks with size up to the next track start.
|
||||||
|
Why ? -> libburn
|
||||||
|
Eventually restrict -check_media to ISO image size ?
|
||||||
|
|
||||||
|
- make iso_init() and iso_finish() safe against multiple calls
|
||||||
|
from multiple threads.
|
||||||
|
|
||||||
|
- ??? disable isohybrid by default ?
|
||||||
|
|
||||||
|
|
||||||
|
- Is it harmless to have an empty xorriso->loaded_boot_cat_path ?
|
||||||
|
This situation appears if an image gets loaded that was created
|
||||||
|
by mkisofs ... -hide boot.catalog ...
|
||||||
|
xorriso -toc reports:
|
||||||
|
Boot bin_path: '/boot/isolinux/isolinux.bin'
|
||||||
|
Boot cat_path: -not-found-at-load-time-
|
||||||
|
|
||||||
|
- Not reproducible any more ?
|
||||||
|
Sesssion without MD5 does not get loaded if -md5 on
|
||||||
|
e.g. intenso USB when session 45 was youngest (w/o MD5)
|
||||||
|
|
||||||
|
libburn : DEBUG : burn_drive_is_enumerable_adr( stdio:/dev/sdb ) is true
|
||||||
|
libisoburn: DEBUG : Found 45 ISO sessions by scanning 2880 kB in 0 seconds
|
||||||
|
xorriso : NOTE : Loading ISO image tree from LBA 0
|
||||||
|
libisofs: FAILURE : Checksum mismatch between checksum tag and data blocks
|
||||||
|
libisofs: FAILURE : Image loading aborted due to MD5 mismatch of image tree data
|
||||||
|
libisofs: HINT : You may override this refusal by disabling MD5 checking
|
||||||
|
libisofs: FAILURE : Checksum mismatch in System Area, Volume Descriptors, or directory tree
|
||||||
|
Only the output drive remains. Created empty ISO image.
|
||||||
|
Drive current: -outdev '/dev/sdb'
|
||||||
|
Media current: stdio file, overwriteable
|
||||||
|
Media status : is written , is appendable
|
||||||
|
Media summary: 45 sessions, 774442 data blocks, 1513m data, 398m free
|
||||||
|
xorriso : FATAL : Cannot read ISO image tree
|
||||||
|
xorriso : HINT : You might get a questionable ISO image tree by option -md5 'off'.
|
||||||
|
xorriso : NOTE : Tolerated problem event of severity 'FATAL'
|
||||||
|
|
||||||
|
|
||||||
- what about split files and hard links ?
|
- what about split files and hard links ?
|
||||||
@ -6902,6 +7275,9 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
|
|||||||
|
|
||||||
------------------------------------------------- important
|
------------------------------------------------- important
|
||||||
|
|
||||||
|
- introduce a read offset for displaced ISO images ?
|
||||||
|
(Copy from CD block 123456 to disk. Apply -img_displaced_by 123456s )
|
||||||
|
|
||||||
- options -print_info , -print_mark
|
- options -print_info , -print_mark
|
||||||
|
|
||||||
- (ECMA-119 names in: -copyright_id , -abstract_id , -biblio_id)
|
- (ECMA-119 names in: -copyright_id , -abstract_id , -biblio_id)
|
||||||
@ -6932,8 +7308,9 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
|
|||||||
|
|
||||||
------------------------------------------------- development
|
------------------------------------------------- development
|
||||||
|
|
||||||
- Replace Libisofs_new_fs_image_inO by Libisofs_hardlink_prooF
|
- Is it possible to make use of iso_node_set_hidden()
|
||||||
and make the latter unconditional.
|
to hide e.g. boot catalogs ?
|
||||||
|
Eventually emulate mkisofs -hide -hide-list
|
||||||
|
|
||||||
- Special pseudo ACL: "--remove-default"
|
- Special pseudo ACL: "--remove-default"
|
||||||
|
|
||||||
@ -7000,11 +7377,6 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
|
|||||||
iso_node_set_name("xyz");
|
iso_node_set_name("xyz");
|
||||||
}
|
}
|
||||||
|
|
||||||
- demo/ produces on FreeBSD several binaries of 500k each.
|
|
||||||
On all systems gcc issues warnings.
|
|
||||||
- Which demo binary is still valid ?
|
|
||||||
|
|
||||||
|
|
||||||
------ feature enhancements :
|
------ feature enhancements :
|
||||||
|
|
||||||
- With 100,000 files in a single directory, adding new nodes becomes
|
- With 100,000 files in a single directory, adding new nodes becomes
|
||||||
@ -7027,14 +7399,6 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
|
|||||||
- $partok {0...1} = 0
|
- $partok {0...1} = 0
|
||||||
|
|
||||||
|
|
||||||
- File checksums as backpack and as xattr values.
|
|
||||||
Problem: If they are scattered over the data section then they will cause
|
|
||||||
a lot of random access and thus be slow with BD. They need to be buffered
|
|
||||||
in memory as zinfo and written all together after data section.
|
|
||||||
|
|
||||||
- Image checksum tag in the last data blocks of an image.
|
|
||||||
A data file entry should point to that block.
|
|
||||||
|
|
||||||
- A dummy option in IsoWriteOpts which causes iso_image_create_burn_source()
|
- A dummy option in IsoWriteOpts which causes iso_image_create_burn_source()
|
||||||
to end before actually data get written. (For -print_size)
|
to end before actually data get written. (For -print_size)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user