aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
blob: b69ea3b0c52351bf6153a9557676733873733b99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [2.2.0] - 2024-03-29
### Added
 - flashcp: Add write last option
 - flash_erase: Add an option for JFFS2 cleanmarker size
 - ubiattach: Add disable fastmap option
 - ubiattach: Add option to reserve peb pool for fastmap
 - support building without zlib
 - CHANGELOG & README files

### Fixed
 - jffs2dump: check return value of lseek
 - mkfs.ubifs: fix xattr scanning for builds with selinux support

### Changed
 - overhaul dependency handling in the build system

## [2.1.6] - 2023-08-30
### Added
 - flash_speed: Measure read while write latency
 - Support `mtd:<num>` syntax for several tools

### Fixed
 - flashcp: check for lseek errors
 - flashcp: fix buffer overflow
 - flashcp: verify data in `--partition`
 - flashcp: abort on `--partition` and `--erase-all`
 - flashcp: correct casting for percent display
 - mtdpart: document partition of size 0
 - mkfs.ubifs: Non-terminated string related failure with option selinux
 - nandtest: handle nand devices larger than 4G
 - Fix printf format specifiers for 64 bit integer types

### Changed
 - flashcp: merge duplicate write code paths
 - flashcp: merge duplicate MEMERASE code paths
 - flashcp: simplify logging

## [2.1.5] - 2022-10-07
### Fixed
 - mkfs.jffs2: spelling of `--compression-mode` parameter in help text
 - ubinfo: `--vol_id` return code for absent volume id
 - nandflipbits: fix corrupted oob
 - libmtd: do not ignore non-zero eraseblock size when `MTD_NO_ERASE` is set
 - jffs2reader: warning about unaligned pointer
 - tests: Remove unused linux/fs.h header from includes
 - fix test bashism
 - nanddump: fix writing big images on 32bit machines
 - nor-utils: fix memory leak

### Changed
 - flash_otp_dump: make offset optional
 - nandwrite: warn about writing 0xff blocks

## [2.1.4] - 2022-10-07
### Added
 - ubiscan debugging and statistics utility

### Fixed
 - Some mtd-tests erroneously using sub-pages instead of the full page size
 - Buffer overrun in fectest
 - Build failures due to missing jffs2 kernel header

## [2.1.3] - 2021-07-25
### Added
 - flashcp: Add new function that copy only different blocks
 - flash_erase: Add flash erase chip
 - Add flash_otp_erase
 - Add an ubifs mount helper
 - Add nandflipbits tool

### Fixed
 - mkfs.ubifs: Fix runtime assertions when running without crypto
 - Use AC_SYS_LARGEFILE
 - Fix test binary installation
 - libmtd: avoid divide by zero
 - ubihealthd: fix UBIFS build dependency
 - mkfs.ubifs: remove `OPENSSL_no_config()`
 - misc-utils: Add fectest to build system
 - mkfs.ubifs: Fix build with SELinux
 - Fix typos found by Debian's lintian tool
 - Fix jffs2 build if zlib or lzo headers are not in default paths

## [2.1.2] - 2020-07-13
### Added
 - flashcp: Add option `-A`, `--erase-all`
 - mtd-utils: add optional offset parameter to `flash_otp_dump`
 - ubi-utils: Implement a ubihealthd
 - mkfs.ubifs: Add authentication support

### Fixed
 - mtd-utils: Fix return value of ubiformat
 - ubiupdatevol: Prevent null pointer dereference
 - libubigen: remove unnecessary include
 - libubi: remove private kernel header from includes
 - mkfs.ubifs: fscrypt: bail from encrypt_block if gen_essiv_salt fails
 - mkfs.ubifs: abort add_directory if readdir fails
 - mkfs.ubifs: close file descriptor in add_file error path
 - mkfs.ubifs: don't leak copied command line arguments
 - mkfs.ubifs: free derived fscrypt context in add_directory error paths
 - mkfs.ubifs: don't leak hastable iterators
 - mkfs.ubifs: don't leak temporary buffers
 - mkfs.ubifs: propperly cleanup in ALL interpret_table_entry error paths
 - mkfs.jffs2: don't leak temporary buffer if readlink fails
 - libmtd: don't leak temporary buffers
 - ftl_check: don't leak temporary buffers
 - ftl_format: don't leak temporary buffers
 - ubiformat: don't leak file descriptors
 - nanddump: don't leak copied command line arguments
 - mtd_debug: cleanup error handling in flash_to_file
 - jittertest: fix error check for open system call
 - fs-tests: don't leak temporary buffers
 - mtd-utils: Fix printf format specifiers with the wrong type
 - mtd-utils: Fix potential negative arguments passed to close(2)
 - mtd-utils: Fix various TOCTOU issues
 - mtd-utils: Fix some simple cases of uninitialized value reads
 - mtd-utils: Fix wrong argument to sizeof in nanddump
 - mtd-utils: Fix "are we really at EOF" test logic in libubi read_data
 - mtd-utils: Fix potentially unterminated strings
 - mtd-utils: Add checks to code that copies strings into fixed sized buffers
 - mkfs.ubifs: fix broken build if fscrtyp is disabled

### Changed
 - ubifs-media: Update to Linux-5.3-rc3

## [2.1.1] - 2019-07-21
### Added
 - mkfs.ubifs: Add ZSTD compression

### Fixed
 - ubiformat: Dont ignore sequence number CLI option
 - mkfs.ubifs: fix build without openssl
 - mkfs.ubifs: fix regression when trying to store device special files
 - mkfs.ubifs: fix description of favor_lzo
 - unittests/test_lib: Include proper header for `_IOC_SIZE`
 - unittests/libmtd_test: Include fcntl header
 - unittests: Define the use of `_GNU_SOURCE`
 - ubinize: Exit with non-zero exit code on error.
 - mtd-tests: nandbiterrs: Fix issue that just insert error at bit 7
 - ubi-tests: ubi_mkvol_request: Fully initialize `struct ubi_mkvol_request req`
 - ubi-tests: io_read: Filter invalid offset before `lseek` in `io_read` test
 - ubi-tests: mkvol test: Checks return value `ENOSPC` for `ubi_mkvol`
 - ubi-tests: fm_param: Replace `fm_auto` with `fm_autoconvert`

## [2.1.0] - 2019-03-19
### Added
 - mkfs.ubifs: Implement support for file system encryption
 - mkfs.ubifs: Implement selinux labelling support
 - ubinize: add support for skipping CRC check of a static volume when opening
 - ubimkvol: add support for skipping CRC check of a static volume when opening
 - Add lsmtd program

### Fixed
 - update various kernel headers
 - Instead of doing preprocessor magic, just output off_t as long long
 - fix verification percent display in flashcp
 - mkfs.ubifs: fix double free
 - mkfs.ubifs: Fix xattr nlink value
 - ubinize: avoid to create two `UBI_LAYOUT_VOLUME_ID` volume
 - common.h: fix prompt function
 - libmtd: don't print an error message for devices without ecc support
 - io_paral: Fix error handling of update_volume()
 - ubimkvol: Initialize req to zero to make sure no flags are set by default
 - libubi: add volume flags to `ubi_mkvol_request`
 - mkfs.ubifs: add_xattr is not depending on host XATTR support
 - Revert "Return correct error number in ubi_get_vol_info1" which
   introduced a regression.
 - make sure pkg-config is installed in configure script
 - ubiformat: process command line arguments before handling file arguments

### Changed
 - ubiformat: remove no-volume-table option

## [2.0.2] - 2018-04-16
### Added
 - libmtd: Add support to access OOB available size
 - mkfs.ubifs: Allow root entry in device table

### Fixed
 - Fix unit-test header and file paths for out of tree builds
 - Fix unit test mockup for oobavail sysfs file
 - misc-utils: flash_erase: Fix Jffs2 type flash erase problem
 - libmtd_legacy: Fix some function description mismatches
 - mtd-utils: ubifs: fix typo in without_lzo definition
 - mtd: tests: check erase block count in page test
 - mtd: unittests: Stop testing stat() calls
 - mtd: unittests: Decode arg size from ioctl request
 - mtd: unittests: Use proper unsigned long type for ioctl requests
 - mtd: tests: Fix check on ebcnt in nandpagetest
 - ubi-utils: ubicrc32: process command line arguments first
 - nandbiterrs: Fix erroneous counter increment in for loop body
 - jittertest: Use the appropriate versions of abs()
 - Mark or fix switch cases that fall through
 - mkfs.ubifs: ignore EOPNOTSUPP when listing extended attributes
 - misc-utils: initialize "ip" in docfdisk to NULL
 - mkfs.ubifs: Apply squash-uids to the root node

### Changed
 - ubi-utils: ubiformat.c: convert to integer arithmetic
 - mtd-utils: common.c: convert to integer arithmetic
 - Run unit test programs through "make check"
 - Enable more compiler warning flags, fix warnings
 - Add no-return attribute to usage() style functions
 - Remove self-assignments of unused paramters
 - tests: checkfs: Remove unused source file from makefiles
 - ubi-tests: io_update: fix missleading indentation
 - Add ctags files to .gitignore
 - libscan: fix a comment typo in libscan.h
 - libmtd: fix a comment typo in dev_node2num

## [2.0.1] - 2017-08-24
### Added
 - nandbiterrs: Add Erased Pages Bit Flip Test
 - mkfs.ubifs: Add support for symlinks in device table
 - nanddump: Add `--skip-bad-blocks-to-start` option
 - nandwrite: Add `--skip-bad-blocks-to-start` option

### Fixed
 - common: Always terminate with failure status if command line options
   are unknown or missing
 - common: Fix format specifier definitions for `off_t` and `loff_t`
 - common: More consistent exit codes
 - libmtd: Fix error status if MTD is not present on the system
 - libubi: Add klibc specific fixes for `ioctl`
 - libubi: Fix error status in `ubi_get_vol_info1` for non-existing volumes
 - misc-utils: Support jffs2 flash-erase for large OOB (>32b)
 - mkfs.jffs2: Add missing header inclusions required for build with musl
 - mkfs.ubifs: Fix alignment trap triggered by NEON instructions
 - mkfs.ubifs: Fix uuid.h path
 - mkfs.ubifs: Replace broken ubifs_assert with libc assert
 - nandbiterrs: Actually get the new ECC bit flip count before comparing stats
 - nandpagetest: Improved argument sanity checking
 - nandwrite: Fix bad block skipping
 - nandwrite: Improved argument sanity checking
 - ubinfo: Improved argument sanity checking
 - ubi-tests: Replace variable-length array with `malloc`
 - ubi-tests: Support up to 64k NAND page size

### Changed
 - build-system: Enable compiler warnings
 - build-system: Restructure autoconf dependency checking
 - common: Add const modifier to read only strings and string constants
 - common: Eliminate warnings about missing prototypes
 - common: Get rid of rpmatch usage
 - common: Remove README.udev from ubi-tests extra dist
 - common: Remove unused variables and functions
 - common: Silence warnings about unused arguments
 - flashcp: Drop custom defines for `EXIT_FAILURE` and `EXIT_SUCCESS`
 - libiniparser: remove unused function needing float
 - libmissing: Use autoconf header detection directly
 - libubi: Remove `UDEV_SETTLE_HACK`
 - misc-utils: Move libfec to common public header & library directory
 - nandwrite: replace erase loop with mtd_erase_multi
 - serve_image: Use PRIdoff_t as format specifier.
 - ubi-tests: Speedup io_paral by using rand_r()
 - ubirename: Fix spelling

## [2.0.0] - 2016-12-22
### Added
 - libmissing with stubs for functions not present in libraries like musl
 - unittests for libmtd and libubi
 - port most kernel space mtd test modules to userspace
 - mkfs.ubifs: extended attribute support
 - ubinize: Move lengthy help text to a man page
 - nandwrite: Add skip-all-ff-pages option
 - flash_{un,}lock: support for MEMISLOCKED
 - nandtest: support hex/dec/oct for `--offset` and `--length`

### Fixed
 - common: Fix 'unchecked return code' warnings
 - common: Fix PRI{x,d}off definitions for x86_64 platform
 - common: include sys/sysmacros.h for major/minor/makedev
 - common: fix wrong format specifiers on mips32
 - libmtd: Fix uninitialized buffers
 - libmtd: Eliminate warnings about implicit non-const casting
 - libmtd: Fix return status in mtd_torture test function
 - libmtd: mtd_read: Take the buffer offset into account when reading
 - mkfs.ubifs: use gid from table instead 2x uid
 - mkfs.ubifs: fix compiler warning for WITHOUT_LZO
 - mkfs.ubifs: fix build when WITHOUT_LZO is set
 - mkfs.ubifs: correct the size of nnode in memset
 - mkfs.jffs2: initialize lzo decompression buffer size
 - mkfs.jffs2: Fix scanf() formatstring for modern C version
 - nanddump: check write function result for errors
 - nanddump: write requested length only
 - flash_{un,}lock: don't allow "last byte + 1"
 - flash_{un,}lock: improve strtol() error handling
 - ubinize: Always return error code (at least -1) in case of an error
 - recv_image: fix build warnings w/newer glibc & _BSD_SOURCE
 - serve_image: use proper POSIX_C_SOURCE value
 - flashcp: Use %llu to print filestat.st_size
 - mtd_debug: check amount of data read.
 - fs-tests: integrity: don't include header <bits/stdio_lim.h>
 - tests: Fix endian issue with CRC generation algorithm
 - make_a_release.sh: fix MTD spelling
 - Fix packaging of unit test files
 - Correct casting for final status report in flashcp

### Changed
 - autotools based build system
 - complete restructuring of the source tree
 - cleanup of some utilities
 - removal of some very old, unused or duplicated files from the source tree
 - libmtd: removal of very old, completely unused and broken functions
 - nandwrite: Factor out buffer checking code

## [1.5.2] - 2015-07-24
### Added
 - mtdpart utility to add/delete partition
 - jffs2dump: XATTR and XREF support for content dump & endianess conversion

### Fixed
 - ubifs-media.h: include "byteorder.h"
 - ubiformat: fix the subpage size hint on the error path
 - include/common.h: fix build against current uClibc
 - include/common.h: fix build against recent 0.9.33 uClibc
 - libmtd: fix comment typo
 - mkfs.ubifs: Fix build with gcc 5.1
 - libmtd: don't ignore "region index" parameter in `mtd_regioninfo()`
 - .gitignore: add new mtdpart utility
 - ubi-tests: fix a some overflows
 - formating issues (trailing whitespaces, space-before-tab, blank line at EOF)
 - fs-tests: pass `TEST_DIR` to integck in run_all.sh
 - nandtest: fix `--reads` argument
 - libmtd: fix `mtd_dev_present` return value on legacy systems
 - libfec: use standard C type instead of `u_long`
 - serve_image: do not include error.h
 - recv_image: do not include error.h
 - include/common.h: fix build against musl
 - integck: Use `$(CC)` and `$(AR)` instead of `gcc` and `ar` consistently

### Changed
 - mkfs.ubifs: start using common code, move some macros to common header
 - Move mkfs.ubifs/ubifs-media.h to include/mtd
 - make_a_release.sh: suggest announcement e-mail
 - nandtest: Remove redundant check
 - nandtest: Move the "read and compare" code to a function
 - nandtest: Introduce multiple reads & check iterations

## [1.5.1] - 2014-04-07
### Added
 - tests: ubi: add stress-test.sh
 - ubi-utils: Add ubiblock tool
 - flash_erase, flash_otp_write: check the nand type
 - ubiupdatevol: add a `--skip` option
 - nandwrite: add `--input-{skip,size}` options
 - mkfs.ubifs: allow reformatting of devices
 - new prompt() helper for talking to the user

### Fixed
 - Makefile: add LDFLAGS_mkfs.ubifs, fix libuuid issue
 - runtests.sh: print more consistent messages
 - integck: fix identation
 - nandwrite: apply corrent version of `--input-*` patch series
 - ubi-tests: argument number mismatch for `ubi_leb_change_start`
 - ubi-tests: fix pthreads linking
 - ubiformat: correct "non-ubifs" warning message
 - mkfs.ubifs: correct and improve LEB size error prints
 - ubi-utils: Fix file descriptor leaks in libubi
 - integck.c: Fix buffer overflow in save_file
 - integck.c: Only verify the operation after datastructures have been updated
 - mkfs.ubifs: Improve error handling of is_contained()
 - nandwrite: clean up length types
 - nand{dump, test, write}: clean up `--help` handling
 - fix build errors w/newer kernel headers & glibc
 - ubinize: fix usage text
 - consistency between `u_int32_t` / `off_t` / `off64_t`
 - tests: io_update correct lseek parameters order
 - ubiformat: fix failure on big partitions (>4Gio)
 - Check mtdoffset is not larger than mtd.size in case of a bad block.
 - flash_otp_write: fix writing to NAND in presence of partial reads
 - flash_otp_write: fix a buffer overflow on NAND with write size > 2048
 - ubiformat: really skip some messages when quiet
 - ubiformat: fix error path

### Changed
 - nandwrite: minor cleanups
 - tests: ubi: clean-up the runtests.sh script
 - libubi: Remove `ubi_attach_mtd`
 - load_nandsim.sh: switch to sh, remove bashisms, cleanup code
 - load_nandsim.sh: introduce a usage function
 - load_nandsim.sh: intruduce fatal function
 - load_nandsim.sh: use dochere for help output
 - mkfs.ubifs: rewrite path checking
 - ubi-tests: switch to using common.h from the top level
 - ubi-tests: rename common.[ch] to helpers.[ch]
 - integck.c: immediately dump the buffer containing the errors
 - use xstrdup in a few more places
 - move `_GNU_SOURCE` to the main makefile
 - ftl_check/ftl_format/nftldump: use existing mtd_swab.h header
 - flash_erase: use `pwrite()` rather than `lseek()` and `write()`
 - UBI: sync ubi-user.h with kernel v3.6-rc1
 - introduce `PRIxoff_t` and `PRIdoff_t` printf helpers
 - ubiattach: use `max_beb_per1024` in `UBI_IOCATT` ioctl
 - ubiattach: fail if kernel ignores max_beb_per1024
 - libubi: factorize `ubi_attach` and `ubi_attach_mtd` code
 - Makefile: Build and install `flash_otp_lock`, `flash_otp_write`
 - ubiformat: clean up synopsis of command-line parameters

## [1.5.0] - 2012-05-07
### Added
 - limbtd: implement `mtd_dev_present` for older kernels
 - libubi: make `ubi_dev_present()` a library function
 - libmtd: add `mtd_dev_present()` library function

### Fixed
 - mkfs.ubifs: do not ignore `--max-leb-cnt` when formatting an UBI volume
 - ubinfo: fix `--all` for non-consecutive device numbers
 - mtdinfo: fix `--all` for non-consecutive device numbers
 - libmtd: fix segmentation fault on lib->mtd
 - mtdinfo: correct grammar on error message
 - libmtd: fix `mtd_write()` issues for large data-only writes
 - libmtd: check if the device is present before accessing it
 - libmtd_legacy: don't open device in R/W
 - Makefile: fix "make clean" for old GNU find
 - libmtd: Variable name same as function name causing compile to fail (Android)

### Changed
 - make_a_release.sh: remind about pushing the master branch
 - docfsdisk: minor cosmetic cleanup
 - mkfs.jffs2: improve documentation of `--pagesize` parameter

## [1.4.9] - 2011-12-17
### Added
 - Add a script to make releases
 - nandtest: add seed argument

### Fixed
 - nandtest: seed random generator with time
 - libmtd: allow write operations when MEMWRITE is not supported
 - nandtest: set oldstats.failed
 - Makefile: fix install target with out-of-tree builds

### Changed
 - Makefile: separate man page install and compression steps

## [1.4.8] - 2011-11-19
### Fixed
 - Makefile: Version number accedientally left at 1.4.6 in last release

## [1.4.7] - 2011-11-18
### Added
 - libmtd: support MEMWRITE ioctl

### Fixed
 - jffs2reader: get rid of linker error
 - jffs2reader: eliminate compiler errors
 - ubiformat: handle write errors correctly
 - mtd-utils: add jffs2reader to .gitignore

### Changed
 - jffs2reader: use major() and minor() helpers
 - jffs2reader: print ctime only by user's request
 - jffs2reader: use const char * for path variables
 - jffs2reader: introduce ADD_BYTES macro
 - jffs2reader: update the header inclusion block
 - nandtest: print number of bits corrected during test
 - mkfs.ubifs/ubinize: increase PEB size limit to 2MiB
 - mtdinfo: provide info when used without arguments
 - nandwrite: use common.h "errmsg" functions
 - nandwrite: re-implement `--autoplace` option
 - move OOB auto-layout into libmtd's mtd_write
 - nandwrite: merge `mtd_write_oob` and `mtd_write` calls
 - libmtd: modify `mtd_write` to cover OOB writes
 - update mtd-abi.h
 - nandwrite: consolidate buffer usage
 - nanddump: kill usages of MEMSETOOBSEL ioctl
 - nandwrite: refactor "old_oobinfo" code
 - nandwrite: cleanup "oobinfochanged" leftovers
 - nandwrite: remove C99 comment style
 - use `__func__` instead of `__FUNCTION__`
 - mtd_debug: replace #defines with enum
 - mtd_debug: fixup style

### Removed
 - tests: checkfs: remove unused code
 - nandwrite: kill `--raw` option
 - nandwrite: kill -j, -y, and -f options
 - nandwrite: remove `autoplace` features

## [1.4.6] - 2011-08-20
### Fixed
 - mkfs.ubifs: fix a gcc warning
 - integck: fix build error (MS_DIRSYNC, MS_RELATIME)
 - mtd-tests: checkfs: fix size_t related warning
 - mtd-tests: io_paral: build error, "variable length strings"
 - flash_erase: fix incorrect help message
 - Makefile: fix "version.h" build for cross-compiling
 - Makefile: fix "make clean" for cross-compile
 - mtdinfo: don't open NULL pointer when getting region_info with `-a'
 - mtdinfo: refactor code to remove "args.all" dependency
 - mtdinfo: fixup "example usage" help section
 - nandwrite: invalid erase after page write failure

### Changed
 - nanddump: change default to `--bb=skipbad`
 - nanddump: change `-o` to mean `--oob`, not `--omitoob`
 - nanddump: default to NOT dumping OOB data
 - mkfs.ubifs: use common.h
 - switch more utils to unified versioning
 - add common version printing function
 - mtdinfo: restructure help message
 - mtdinfo: consolidate help as display_help()
 - rewrite build system to avoid recursion
 - autogenerate version.h from build system

### Removed
 - mtdinfo: remove -m leftovers
 - mkfs.ubifs: remove root inode squash feature
 - nanddump: kill `--omitbad`, `--noskipbad`
 - kill flash_info
 - mtdinfo: kill `-m` option
 - build: remove old SYMLINKS variable

## [1.4.5] - 2011-07-25
### Added
 - Makefile: introduce new target tests in Makefile
 - Makefile: introduce cscope target
 - nanddump: add `--oob` option
 - nanddump: add `--bb=METHOD` option
 - mkfs.ubifs: add `-F` option for `free-space fixup`
 - libmtd: add helper funcs for getting regioninfo and locked info
 - mtdinfo: add regioninfo/eraseblock map display
 - flash_info: allow people to get info on multiple devices

### Fixed
 - serve_image: adjust classifier and type for printf
 - libmtd: use PRIu64 classifier for uint64_t printf arguments
 - mkfs.jffs2: fix casting of __off64_t
 - tests: ubi-tests: clean libubi.a and *.o
 - tests: fs-tests: ssize_t return type in read() wrapper
 - mkfs.jffs2: fix casting of printf argument
 - tests: jittertest: fix set of compiler warnings
 - tests: ubi-tests: seed_random_generator() was used w/o prototype
 - tests: fs-tests: check return value of functions
 - tests: checkfs: fix linker warnings
 - tests: checkfs: fix compiler warnings
 - tests: make jittertest buildable
 - mkfs.ubifs: check output first
 - flash_{lock, unlock}: fix off-by-one error for "entire device" length
 - fs-tests: use independent random generators for ops and data
 - ubi-utils: ubimkvol: fix parameters parsing regression

### Changed
 - tests: checkfs: integerate with common Makefile
 - fs-tests: integck: major cleanup/rewrite
 - mtdinfo: deprecate the -m option
 - libmtd: improve mtd_islocked interface
 - switch ubi and ubifs tools to use common strtoX funcs
 - mtdinfo: separate out ubi information printing
 - fs_tests: make the test-suite finish faster
 - nanddump: document, warn about future default `--omitoob`
 - feature-removal-schedule: describe nanddump changes
 - nanddump: warn about new default BB handling
 - nanddump: update help message for BB method changes
 - nanddump: sort options in help message alphabetically by shortname
 - jffs2: make lzo optional at build time
 - flash_info: deprecate
 - ubi-utils: send help/version info to stdout
 - libmtd: use O_CLOEXEC
 - include/mtd: sync with kernel
 - flash_info: convert to common.h
 - ignore (FLAT) gdb files
 - flash_{lock,unlock}: convert to common code
 - flash_{lock,unlock}: merge into one util
 - flash_{lock,unlock}: merge functionality
 - flash_lock/flash_unlock/flash_info: clean up style

### Removed
 - punt redundant libcrc32
 - mtdinfo: remove now unused ubigen info

## [1.4.4] - 2011-04-01
### Added
 - libmtd: fix OOB read and write interface

### Fixed
 - fs-tests: test_1: fix compilation warnings
 - fs-tests: perf: fix compilation warning
 - fs-tests: integck: improve re-mounting test coverage

### Changed
 - mkfs.ubifs: deprecate `squash-rino-perm` options
 - nanddump: fail if `-s` parameter is unaligned

## [1.4.3] - 2011-03-18
### Added
 - nandwrite: add only write oob option

### Fixed
 - common.h: simple_strtoll type

### Changed
 - flash_erase: start position should be in bytes

## [1.4.2] - 2010-12-31
### Added
 - nandwrite: Large page+oob support
 - nanddump/nandwrite: 64-bit support utilizing libmtd
 - introduce xzalloc() helper
 - add xasprintf() helper
 - new memory wrappers
 - new strtoX helpers
 - new bareverbose() helper
 - libmtd: add lock/unlock helpers
 - nandwrite: add `--skipbad` to write bad blocks

### Fixed
 - nanddump: fix initialization of bad blocks oob data buffer
 - nanddump: always check the first erase block
 - flash_erase: Fix output of offsets
 - nanddump/nandwrite: Style fixups
 - nanddump/nandwrite: style, signed-ness, printing fixups
 - nandwrite: type consistency
 - nandwrite: prevent 32-bit overflow
 - nandwrite: avoid NULL buffer pointers
 - libmtd: fix OOB size initialization in legacy code
 - Makefile: Use $(CURDIR) in place of $(PWD)
 - mkfs.ubifs: Fix heap corruption on LEB overrun
 - mkfs.ubifs: Fix --squash-rino-perm / --nosquash-rino-perm
 - Fix make install errors
 - libmtd: fix "fount" typo
 - sys_errmsg: fix indentation
 - recv_image: fix `__USE_GNU` hack
 - ubi-utils: tweak const strings decls
 - compr_rtime: fix unused warning
 - libfec: fix up pointer warnings in fec magic computation
 - mkfs.jffs2: fix devtable count as mkfs.ubifs does
 - mkfs.jffs2: fix repeated dev nodes
 - mkfs.ubifs: Fix typo in short options of mkfs.ubifs

### Changed
 - mkfs.ubifs: do not override root inode permissions
 - Makefile: remove old ubi-utils
 - Add --squash-rino-perm removal plan
 - nanddump: warn when the start address is not page aligned
 - nanddump: Dynamic buffer, increase pagesize/oobsize
 - nandwrite: Use libmtd to get correct mtd parameters
 - nandwrite: switch "oobsize" for "writesize"
 - nandwrite: Clarify usage of aligned "erasesize"
 - nandwrite: add check for negative blockalign
 - nandwrite: use common.h "errmsg_die"
 - nanddump: choose correct "printf" format-specifier
 - nanddump: check for negative inputs
 - nanddump: change "unsigned" to "signed"
 - nanddump/nandwrite: use "simple_" str functions
 - common.h: Add MAX() macro, fix MIN()
 - nanddump: Refactor pretty print code into an sprintf()
 - jffs2reader: convert to common.h helpers
 - libmtd: make malloc failures fatal
 - sumtool/libfec: convert "()" to "(void)" in func defs
 - sumtool: convert to common.h helpers
 - mkfs.jffs2: convert to common.h and xalloc.h helpers
 - libmtd: unify some error messages
 - xalloc: simplify/unify error messages
 - enable garbage collection of unused function/data sections
 - mkfs.jffs2: use new xasprintf() helper
 - unify flash_erase and flash_eraseall
 - common.h: clean up PROGRAM_NAME usage
 - standardize PROGRAM_NAME
 - mkfs.ubifs: use common ARRAY_SIZE
 - punt duplicate normsg_cont define
 - convert to common.h/min
 - libmtd: unify erase block argument checking
 - compr: drop unused model argument
 - compr_zlib: mark local functions as static
 - rbtree: avoid redefining offsetof

### Removed
 - ftl_check: drop unused verbose flag
 - nandwrite: Remove redundant 'autoplace' check

## [1.4.1] - 2010-10-19
### Changed
 - Hide zlib's crc32 in compr_zlib.c and mkfs.ubifs/compr.c

## [1.4.0] - 2010-09-13
### Added
 - libmtd: add OOB read and write interfaces
 - libmtd: support MEMERASE64
 - lib: Add forgotten Makefile
 - libmtd: add mtd_write_img
 - ubi-tests: add normsg
 - ubinfo: document the new -N option
 - nanddump: add canonical (hex+ascii) flag
 - nanddump: add "forcebinary" flag
 - nanddump: add `--nobad` to read bad blocks
 - libubi: add support to attach/detach by MTD device path
 - ubiattach/ubidetach: add support to attach/detach by path
 - nanddump: Support 4096+218 and 4096+224 page sizes
 - ubinfo: add -N option to get info by name of ubi volume
 - support 4096+64 page sizes

### Fixed
 - mkfs.jffs2: fix `--enable-compressor`
 - lib: fix libcrc32 generation
 - rename crc32 to mtd_crc32
 - mkfs.ubifs: fix compilation warning
 - mkfs.jffs2: fixed warnings
 - nandtest: Fixed indentation
 - fix spelling error
 - fix compiler warnings
 - nandwrite: fix the bug of writing a yaffs2 image to NAND
 - nandwrite: check if the start address is page-aligned
 - nandtest: fix `--keep` argument
 - fix parallel build between ubi-utils and mkfs.ubifs
 - clean up compile warnings
 - ubi-utils: reformat help text to fit in 80 columns
 - nanddump: Fix hexdump nybble ordering
 - mtd_debug: fix creation mode parameter
 - mkfs.jffs2: fix integer underflow in jffs2_rtime_compress()

### Changed
 - libs: remove ubiutils-specific stuff from common.h
 - libs: make crc32 and fec to be libraries
 - libscan: rename hdr to ech
 - ubi-test: seed the random genrator in tests
 - ubi-tests: use rand instead of random in io_paral
 - ubi-utils: harmonize mtd device node variables
 - ubi-utils: harmonize libmtd interface a bit
 - ubi-tests: remove some junk from the integ test
 - libubigen: make init_vid_hdr externally visible
 - libubigen: move header comments
 - libubigen: do not create huge arrays on stack
 - ubi-tests: teach errmsg and failed return error code
 - ubi-tests: rename err_msg to errmsg
 - libubi: provide mtd number in UBI device information
 - libubi: remove few fields from volume info
 - nanddump: increase max OOB size
 - nanddump: rename `--nobad` to `--noskipbad`
 - build: add option to not force largefile support
 - ubi-utils: drop -Werror in old utils
 - flash_eraseall: tweaks to make binary size smaller
 - mtd: change flash_eraseall to use libmtd-wrapped ioctls
 - mtd-utils: update to latest mtd-abi.h from kernel.org
 - move libmtd source files to lib/ subdirectory
 - ubi-utils: provide default value for /dev/ubi_ctrl

### Removed
 - nanddump: drop unused --ignoreerrors option

## [1.3.1] - 2010-01-15
### Fixed
 - ubiformat: always initialize seq number
 - ubiformat: be consistent with sequence numbers

## [1.3.0] - 2009-12-09
### Added
 - Makefile: Add Optional ZLIB and LZO CPPFLAGS and LDFLAGS
 - Add mkfs.ubifs
 - Add support for 4k pages
 - ubirmvol: remove volume by name
 - nandwrite: Support reading from standard input
 - nanddump: Add Support for Quiet Option
 - ubinize: allow an absent 'image' in the ubinize configuration
 - handle non-power-of-2 erase size
 - add ubirename utility
 - ubiformat: mark faulty blocks as bad
 - ubi-utils: add sysfs interface support and new tool
 - libubi: add `ubi_set_property`, `ubi_leb_unmap` interfaces
 - libubi: add `ubi_is_mapped()` function
 - ubinize: add sequence number support
 - ubiformat: add image sequence support
 - ubi-utils: add ubirsvol tool to resize UBI volumes
 - flash_unlock: enhancing for unlocking of specified number of blocks

### Fixed
 - ubi-tests: fix makefile
 - ubi-tests: fix run script
 - ubinize: validate number of sections
 - ubinize: add more ini-file validation
 - ubinize: fix static volumes generation
 - fs-tests: fix symlink bug in integrity test
 - fs-tests: fix max file name length in integrity test
 - fs-tests: allow for symlink name too long in integrity test
 - ubi-utils: fixed and enhanced `--flash-image` option
 - ubimkvol: check for free LEBs
 - ubiupdatevol: remove non-existing option from help message
 - fs-tests: also preserve mount options when mounting again
 - nandwrite/nanddump: Pass Real Names as Arguments to perror
 - ubinize: correct subpage_size print and initialise vol_info to zero
 - flash_eraseall reports incorrect percentage
 - ubi-utils: fix CFLAGS handling wrt cross compilation
 - Makefile: Separate '-m' and the mode with a space when invoking 'install'
 - ubi-utils: various fixes
 - ubiformat.c: fix printf(%d, size_t) warning
 - ubi-utils: fix up build system
 - nandwrite: correct data reading
 - mkfs.jffs2: fix dir creation in /
 - ubi-utils: fix warning in fprintf() code
 - common.mk: tweak rules to workaround make-3.80 bugs
 - fs-tests: fix remounting in integck
 - ubi-utils: minor printing fix
 - ubi-utils: fix compilation warnings
 - ubi-tests: fix build and some warnings
 - ubiupdatevol: fix -t parameter
 - mkfs.jffs2: fix lzo usage on 64bit systems
 - make sure compiler supports warning flags
 - libmtd: fix mtd_is_bad return code
 - libubigen: don't define large array on stack
 - ubiformat: fix segfault and messages
 - Prevent git-clean from removing cscope files
 - ubinfo: handle -d correctly
 - ubiformat: fix build error
 - ubi-tests: make tests compile again
 - libubigen: add missing include
 - libubi: fix multiple memory corruptions
 - ubi-utils: fix memory corruptions
 - libmtd: recognize pre-MTD-sysfs kernels better
 - nandwrite: fix loop condition
 - nandwrite: return error if failure when reading from standard input
 - nandwrite: fix error handling
 - libubi: fix wrong size calculation with sizes > 4GiB
 - ubiformat: allow zero erase counter
 - ubi-utils: fix compilation errors when using CPPFLAGS
 - nandwrite: fix incorrect use of errno
 - ubiformat: fix typo in the help output
 - ubiformat: fix `--erase-counter` handling
 - flash_lock: fix length being passed
 - ubiformat: check that min IO size is power of 2
 - ubiformat: fix error message

### Changed
 - enable parallel build process
 - ubi-utils: use 'stat(2)' instead of 'lstat(2)'
 - ubi-utils: allow ubiformat to read from stdin
 - ubi-utils: minor rename
 - nandwrite/nanddump: cleanup qualifiers, exit mnemonics, booleans, usage
 - fec.c: replace bzero, bcopy, bcmp wiuth memset, memcpy, memcmp
 - libubi: be more verbose about errors
 - libubi: remove some too verbose messages
 - Unify all common build system parts
 - ubiformat: nicify error messages
 - libmtd: Add `_FILE_OFFSET_BITS=64`, fix `lseek` overflow
 - update ubi-user.h, ubi-header.h,  ubi-media.h
 - Add generated binaries to gitignore
 - ubi-utils: re-arrange directory layout
 - ubi-utils: tweak vpath handling
 - libmtd: move comments to headers
 - libubi: amend included header files
 - libubi: remove unnecessary header files
 - libmtd: amend interface
 - ubi-utils: rename `ubi_node_type`, `mtd_get_info`, `mtd_info`
 - libubi: improve `libubi_open` interface, error handling
 - libubi: do not use udevsettle
 - libmtd: rename `allows_bb`, `rdonly`, `num` fields
 - libmtd: make type_str to be an array
 - ubi-tests: improve io_paral test
 - ubiformat: torture eraseblocks on write errors
 - ubiformat: minor printing clean-up
 - ubiformat: nicify error output
 - ubiformat: make badblocks output less confusing
 - common: remove depricated KB,MB,GB support
 - ubi-utils: update ubi-media.h
 - ubiformat: clean up help output a little
 - jffs2dump: rewrite `--help` output to be more suitable for `help2man`
 - nandwrite: unified reading from standard input and from file

### Removed
 - ubi-utils: remove debugging leftovers
 - ubi-utils: remove depricated -d option

## [1.2.0] - 2008-06-27
### Added
 - nandwrite: add 'markbad' option
 - Add nand integrity testing utility
 - Add utilities for multicast send/receive of MTD images
 - ubi-utils: add -m option to ubimkvol
 - ubi-utils: add -S option to ubimkvol
 - ubi-utils: Add rmvol test
 - Add test program orph.c
 - mkfs.jffs2.c: detect hardlinks
 - ubi-utils: add ubinfo, ubiupdate, ubiattach, ubidetach
 - ubi-utils: bin2nand, nand2bin support for different ecc layouts
 - ubi-utils: ubinize, ubiformat
 - Add libmtd, libscan
 - libubi: support atomic LEB change ioctl
 - mtd_debug: support new flags
 - Add load_nandsim.sh script
 - fs-tests: add simple performance test
 - mkfs.jffs2: Add Support for Symlinks to Device Table

### Fixed
 - Fix repeated warning about ECC correction, in nandtest
 - fs-tests: fix bug in simple test_2
 - ubi-utils: Fixup oob data generation
 - ubi-utils: various fixes in unubi
 - ubi-utils: nand2bin had ECC calculation problems
 - libubi: fix use of negative `errno` values
 - libubi: fail gracefully if ubi is not supported on the current system
 - ubi-utils: fix readdir error checking
 - ubi-utils: fix bytes output formating
 - libubi: fix sysfs direntries scanning
 - ubi-utils: pddcustomize fixup update volume
 - ubi-utils: fix warnings for gcc 4.2.3
 - ubi-utils: ubimkvol: fix wrong variable printout
 - Use LSB locations for manpages
 - compr_lzo.c: allocate enough memory for lzo compressor.
 - mkfs.jffs2.c: fix issue with crashing when using lzo compression
 - fs-tests: preserve mount options when mounting again
 - mkfs.jffs2: Remove Incorrect Find Optimization

### Changed
 - nandtest: Mark blocks bad on failed write; don't abort
 - Makefile: Make optflags easier for distros to override
 - Makefile: build ubi-utils from top dir, add to install target
 - Improve option handling in nandtest, add markbad and offset/length options
 - ubi-utils: rename `__unused` to `ubi_unused`
 - ubi-utils: remove useless build information
 - ubi-utils: Nand2bin add more information when bad blocks occur
 - ubi-utils: migrate to new libubi
 - ubi-utils: Update and bugfix unubi
 - ubi-utils: Test-case for unubi
 - ubi-utils: unubi: add physical erase block number for analysis
 - ubi-utils: overhaul README, tests
 - ubi-utils: move UBI tests to tests/ubi-tests/
 - ubi-utils: move jffs2_test.sh to ubi-tests
 - mkfs.jffs2: use separate ino field in struct filesystem_entry for jffs2 ino#
 - mkfs.jffs2: Set mkfs.jffs2 page size runtime instead of fixed
 - ubi-tools: major cleanups in ubimkvol, ubirmvol
 - libubi: consistently rename `eb` to `leb`
 - ubi-utils: cleanup ubicrc32
 - ubi-utils: more sanity checks
 - Move perl scripts to scritps directory
 - tests: move checkfs test, jittertest to tests directory
 - ubi-utils: update headers
 - ubi-utils: CLI handling for ubigen consistent with other tools
 - ubi-utils: scripts/mkdevs.pl: create control device node as well
 - ubi-utils: major overhaul/rewrite for pfi2ubi
 - ubi-tools: use uint32_t in userspace
 - ubi-utils: use macros not hardcoded constants
 - ubi-utils: use mtd_swab.h
 - ubi-tools: improve printing macros
 - ubi-tools: consistent option handling for ubimkvol, ubirmvol, ubiupdatevol
 - ubi-utils: don't use argp.h
 - Teach libubi_open not to prirnt error message
 - ubi-utils: use common.h in libubi
 - fs-tests: allow for ENOSPC in test fwrite00
 - Makefile: respect CFLAGS/CPPFLAGS from build environment

### Removed
 - Remove mkfs.jffs utility
 - ubi-utils: remove unused directory, testcases.txt

## [1.1.0] - 2007-08-03
### Added
 - Add GPL license text, .gitignore file
 - mkfs.jffs2: Add XATTR support
 - nanddump: Add `-n` argument (no-ecc)
 - Support for 1KB page & 32 bytes spare NAND
 - Add feature removal schedule file
 - Add fs-tests from Adrian Hunter
 - Add UBI utilities
 - Add lzo helper functions

### Fixed
 - nanddump.c: add missing `--file` long options
 - fix handling of ioctl return value in nand-utils
 - Correct integrity test calculations of free space

### Changed
 - nandwrite: Allow `-s` argument to accept hex and octal values
 - Add usage message for flash_erase.c
 - Consolidate the swab macros into one location
 - Switch to using standard types
 - Update mtd-abi.h from upstream kernel.
 - Update user headers from latest kernel tree
 - Update mtd-abi.h and use new NAND ECC functionality
 - Makefile: Support out-of-tree builds
 - mkfs.jffs2: Add xseqno into `jffs2_raw_xref`
 - Report compressed file sizes (including node headers) in mkfs.jffs2 stats
 - Consistently use getopt based option parsing
 - Amend tests not to insist that file system type is JFFS2
 - Remove CVS $Id:$ tags

### Removed
 - mkfs.ffs2
 - Remaining Automake files

## [1.0.0] - 2006-04-30
### Added
 - Import source from CVS
 - Add user space headers

### Fixed
 - memory leak in `write_regular_file`
 - Fix cbuf free properly
 - Fix mtd_debug after removal of some MTD types and flags
 - Fix `make install` target

### Changed
 - Build using in-tree user space headers