File: ChangeLog

package info (click to toggle)
binfmt-support 2.2.2-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,060 kB
  • sloc: ansic: 31,469; sh: 6,548; python: 166; makefile: 135
file content (1034 lines) | stat: -rw-r--r-- 32,613 bytes parent folder | download | duplicates (3)
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
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
2022-06-02  Colin Watson  <cjwatson@debian.org>

	Version: 2.2.2

2022-06-02  Colin Watson  <cjwatson@debian.org>

	Revert use of ProtectHome=true from systemd service

	I've noticed this sometimes failing at least in LXD containers as
	follows:

	  Failed to set up mount namespacing: /run/systemd/unit-root/run/user: Permission denied
	  Failed at step NAMESPACE spawning /usr/sbin/update-binfmts: Permission denied

	Since this isn't a long-running service, we can afford to forgo this
	particular piece of hardening in the name of robustness.

	* init/systemd/binfmt-support.service.in: Remove `ProtectHome=true`.

2022-06-02  Colin Watson  <cjwatson@debian.org>

	Add NEWS entry for previous commit

2022-06-02  Michael Biebl  <biebl@debian.org>

	Run binfmt-support.service after systemd-binfmt.service

	This fixes a race condition during boot when both services try to access
	/proc/sys/fs/binfmt_misc/register at the same time which can lead to the
	following error:

	 systemd[1]: Starting Enable support for additional executable binary formats...
	 update-binfmts[536]: update-binfmts: warning: unable to close /proc/sys/fs/binfmt_misc/register: File exists
	 update-binfmts[536]: update-binfmts: warning: unable to close /proc/sys/fs/binfmt_misc/register: File exists
	 update-binfmts[536]: update-binfmts: warning: unable to close /proc/sys/fs/binfmt_misc/register: File exists
	 update-binfmts[536]: update-binfmts: exiting due to previous errors
	 systemd[1]: binfmt-support.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
	 systemd[1]: binfmt-support.service: Failed with result 'exit-code'.
	 systemd[1]: Failed to start Enable support for additional executable binary formats.

	Fixes Debian bug #1012154.

2022-04-23  Colin Watson  <cjwatson@debian.org>

	gitlab-ci: Run tests with VERBOSE=1

	This makes it easier to diagnose test failures.

	* .gitlab-ci.yml (build-distcheck:script, build-out-of-tree:script): Set
	VERBOSE=1.

2022-04-23  Colin Watson  <cjwatson@debian.org>

	Update pre-commit hooks

	* .pre-commit-config.yaml (pre-commit-hooks): Update to v4.2.0.
	(black): Update to 22.3.0.
	(pyupgrade): Update to v2.32.0.

2022-03-08  Colin Watson  <cjwatson@debian.org>

	pre-commit: Add shellcheck

	* .pre-commit-config.yaml: Add shellcheck.
	* .shellcheckrc: New file.

2022-03-08  Colin Watson  <cjwatson@debian.org>

	tests: Add a few shellcheck directives

	* src/tests/detectors, src/tests/display, src/tests/enable,
	src/tests/find, src/tests/import, src/tests/install: Add `shellcheck
	source-path=SCRIPTDIR` directive before sourcing testlib.sh.
	* src/tests/detectors: Disable SC2154; `pkglibexecdir` is always set by
	the test runner.
	* src/tests/testlib.sh: Tell shellcheck which shell syntax to assume,
	since this file has no `#!` line.
	(fake_proc): Disable SC2154; `srcdir` is always set by the test files
	that include this library.

2022-03-08  Colin Watson  <cjwatson@debian.org>

	tests: Improve quoting

	* src/tests/detectors, src/tests/display, src/tests/enable,
	src/tests/find, src/tests/import, src/tests/install,
	src/tests/testlib.sh: Use ': "${var=default}"' idiom to assign default
	values rather than ': ${var=default}', pacifying shellcheck.

2022-03-08  Colin Watson  <cjwatson@debian.org>

	tests: Make pass/fail reporting more shellcheck-friendly

	* src/tests/detectors, src/tests/display, src/tests/enable,
	src/tests/find, src/tests/import, src/tests/install: Refactor to use
	report function rather than expect_pass.
	* src/tests/testlib.sh (expect_pass): Remove.

2022-03-08  Colin Watson  <cjwatson@debian.org>

	tests: Add an expect_files_equal helper function

	* src/tests/testlib.sh (report): New function, similar to expect_pass
	but taking an exit code rather than a command string to evaluate.
	(expect_pass): Refactor using report function.
	(expect_files_equal): New function.
	* src/tests/detectors, src/tests/display, src/tests/enable,
	src/tests/find, src/tests/import, src/tests/install: Use
	expect_files_equal instead of the equivalent expect_pass construction.

2022-03-06  Colin Watson  <cjwatson@debian.org>

	Add some hardening options to the systemd service

	* init/systemd/binfmt-support.service.in: Add some hardening options.
	(This may produce warnings with `systemd < 244`.)
	* NEWS.md: Document this.

2022-01-16  Colin Watson  <cjwatson@debian.org>

	Update to Gnulib 20220116

	* bootstrap: Sync to Gnulib 1eae0f7ea3c220d054025f2c9211700665f9f4a0.
	* bootstrap.conf (GNULIB_REVISION): Set to
	1eae0f7ea3c220d054025f2c9211700665f9f4a0.

2022-01-16  Colin Watson  <cjwatson@debian.org>

	Update pre-commit hooks

	* .pre-commit-config.yaml (pre-commit-hooks): Update to v4.1.0.
	(black): Update to 21.12b0.
	(pyupgrade): Update to v2.31.0.
	(flake8): Update to 5.10.1.

2022-01-03  Colin Watson  <cjwatson@debian.org>

	Remove release.sh

	GitLab CI handles building releases now.

	* release.sh: Remove.
	* Makefile.am (EXTRA_DIST): Remove release.sh.

2022-01-03  Colin Watson  <cjwatson@debian.org>

	Add release automation

	When a tag is pushed to GitLab, upload the bootstrapped source tarball
	to the package registry, and create a release in GitLab associated with
	the tag.

	* .gitlab-ci.yml (stages): Remove test, since it had no jobs.  Add
	upload and release.
	(upload, release): New jobs.

2022-01-03  Colin Watson  <cjwatson@debian.org>

	Reformat release notes as Markdown

	* NEWS: Move to ...
	* NEWS.md: ... here.  Reformat as Markdown.

2022-01-02  Colin Watson  <cjwatson@debian.org>

	Enable many more GCC warnings

	* bootstrap.conf (gnulib_modules): Add manywarnings.
	* configure.ac: Add gl_MANYWARN_ALL_GCC, with some refinements to
	disable -Wsystem-headers and -Wmissing-field-initializers.
	(--enable-gcc-warnings): New option, based on code in coreutils.  Use
	this to enable -fanalyzer only if --enable-gcc-warnings=expensive is
	used; it's useful but slow.

2022-01-02  Colin Watson  <cjwatson@debian.org>

	Update to Gnulib 20211231

	* bootstrap: Sync to Gnulib 14db2b71b5bd05b94ec6126617fd32cd5f1016cd.
	* bootstrap.conf (GNULIB_REVISION): Set to
	14db2b71b5bd05b94ec6126617fd32cd5f1016cd.

2022-01-02  Colin Watson  <cjwatson@debian.org>

	Add build-distcheck CI artifact

	This should eventually allow publishing release tarballs built by a CI
	process rather than on my laptop.

	* .gitlab-ci.yml (variables): Set GIT_DEPTH to 0; we need full history
	in order to build the ChangeLog file.
	(build-distcheck:before_script): Add git, needed by gitlog-to-changelog.
	(build-distcheck:artifacts): Add bootstrapped/*.tar.gz.

2021-11-28  Colin Watson  <cjwatson@debian.org>

	Fix pre-commit CI

	* .gitlab-ci.yml (bootstrap): Install git.

2021-11-28  Colin Watson  <cjwatson@debian.org>

	Run pre-commit in GitLab CI

	* .gitlab-ci.yml (stages): Add bootstrap.
	(pre-commit): New job.
	(bootstrap): Move to bootstrap stage.

2021-11-17  Colin Watson  <cjwatson@debian.org>

	Apply pyupgrade (no-op)

	* .pre-commit-config.yaml: Add pyupgrade.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Ignore the "black" commit for "git blame"

	Developers should apply the following config setting:

	    git config blame.ignoreRevsFile .git-blame-ignore-revs

	* .git-blame-ignore-revs: New file.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Apply black code formatter for Python

	* .pre-commit-config.yaml: Add black, flake8, and isort.
	* .flake8: New file.
	* src/tests/pyproject.toml: New file.
	* src/tests/binfmt_misc.py: Reformat using black.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Update pre-commit-hooks

	* .pre-commit-config.yaml: Update pre-commit-hooks to v4.0.1.
	(trailing-whitespace): Exclude src/mp.h.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Reduce indentation depth using C99

	* src/update-binfmts.c (parse_opt): Move declaration of "p" to the
	initialization clause of its "for" statement, allowing us to remove an
	enclosing block and associated indentation level.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Document C99 compiler requirement

	The use of MPP_DECLARE in src/glcontainers.h needs this.  While I've
	historically tried to stick to C89, that's probably too picky: it should
	be easy to find a C99 compiler for any system that can run
	binfmt-support.

	* README.md (Installation): Document C99 compiler requirement.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Inform build system about mp.h

	* src/Makefile.am (COMMON): Add mp.h.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Remove superfluous blank line

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Simplify interface to container iterator macros

	The Gnulib container iterator macros (GL_LIST_FOREACH_* and
	GL_OMAP_FOREACH_*) have to run code both before and after a chunk of
	user-supplied code.  This previously required a START/END macro pair
	used something like this:

	    GL_LIST_FOREACH_START (formats, binfmt) {
	        ...
	    } GL_LIST_FOREACH_END (formats);

	This doesn't look natural in C, and so it was easy to get it wrong.

	It's possible to do better, at the cost of some tricky macros.
	Fortunately, Simon Tatham has already done the hard work in
	https://www.chiark.greenend.org.uk/~sgtatham/mp/, and the necessary
	header file is MIT-licensed, so we can incorporate it.  Now these
	iterator macros are used more like this, which is a much more natural C
	style:

	    GL_LIST_FOREACH (formats, binfmt) {
	        ...
	    }

	* src/mp.h: New file.
	* src/glcontainers.h (GL_LIST_FOREACH_START, GL_LIST_FOREACH_END):
	Rewrite as ...
	(GL_LIST_FOREACH): ... this.
	(GL_OMAP_FOREACH_START, GL_OMAP_FOREACH_END): Rewrite as ...
	(GL_OMAP_FOREACH): ... this.
	* src/find.c (find_interpreters): Update uses of iterator macros.
	* src/run-detectors.c (main): Likewise.
	* src/update-binfmts.c (act_enable, act_disable, act_display, act_find):
	Likewise.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Fix tests to work with Python 3

	I attempted to do this in 505cdc5630 way back in 2012, but didn't get it
	quite right.

	* src/tests/binfmt_misc.py: Set #! to /usr/bin/python3, since that's
	more likely to exist nowadays.
	(create_entry): Return bytes.
	(write): Decode buffer before trying to parse it.
	* NEWS: Document this.
	* .gitlab-ci.yml (build-distcheck, build-out-of-tree): Install
	python3-fuse so that the tests run.
	(build-out-of-tree): Run "make" before "make check".

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Generate better git diffs for Python files

	* .gitattributes: Set "diff=python" for *.py files.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Introduce pre-commit

	* .pre-commit-config.yaml: New file.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Update remaining HTTP URLs to HTTPS

	* COPYING: Update from current contents of
	https://www.gnu.org/licenses/gpl-3.0.txt (no substantive licensing
	changes, only updated URLs).

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Upgrade to Gnulib 20211103

	In line with Gnulib, we now require Autoconf 2.64.

	* bootstrap: Sync to Gnulib d902ad1b7507776bd16fa48d605fb9e2109bda16.
	* bootstrap.conf (GNULIB_REVISION): Set to
	d902ad1b7507776bd16fa48d605fb9e2109bda16.
	(buildreq): Bump required autoconf version to 2.64.
	* configure.ac (AC_PREREQ): Bump to 2.64.
	* NEWS: Document this.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	NEWS: Document move to GitLab

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Add a brief README

	* README.md: New file.

2021-11-08  Colin Watson  <cjwatson@debian.org>

	Add .gitlab-ci.yml

2021-09-19  Colin Watson  <cjwatson@debian.org>

	Update some obsolete Autoconf macros

	* configure.ac: Replace AC_GNU_SOURCE and AC_ISC_POSIX with
	AC_USE_SYSTEM_EXTENSIONS.  Replace AC_CONFIG_HEADER with
	AC_CONFIG_HEADERS.

2020-04-17  Colin Watson  <cjwatson@debian.org>

	Version: 2.2.1

	NEWS: Document changes for 2.2.1

2020-04-17  Colin Watson  <cjwatson@debian.org>

	Fix build with gcc -fno-common

	Fixes Debian bug #957038.

	* src/paths.h (admindir, importdir, procdir, auxdir): Declare as extern.

2020-01-01  Colin Watson  <cjwatson@debian.org>

	Ensure that standard I/O streams are open

	Otherwise behaviour is undefined if somebody (unwisely) closes them
	before calling us.

	* bootstrap.conf (gnulib_modules): Add xstdopen.
	* src/update-binfmts.c (main): Call xstdopen.

2019-12-27  Colin Watson  <cjwatson@debian.org>

	Replace kvhash with gl_map/gl_omap

	A list was a clumsy implementation of this; a map is more appropriate.

	* bootstrap.conf (gnulib_modules): Add hash-map, hash-pjw-bare,
	rbtree-omap, stdbool, xmap, and xomap; remove rbtreehash-list.

	* src/glcontainers.c: New file.
	* src/glcontainers.h (string_equals, string_hash, plain_free,
	new_string_map, new_string_omap, map_contains, omap_contains): Add
	prototypes.
	(GL_OMAP_FOREACH_START, GL_OMAP_FOREACH_END): New macros.

	* src/format.c (binfmt_new): Take a map rather than a list.
	(kvhash_dispose_binfmt): Remove.
	* src/format.h (binfmt_new): Update prototype.
	(kvhash_dispose_binfmt): Remove prototype.

	* src/update-binfmts.c (formats): Declare as a map rather than a list.
	(get_import, load_format, act_enable, act_disable, act_install,
	act_remove, act_import, act_unimport, act_display, main): Update to the
	map API.
	(act_import, act_unimport): Free import before returning.

	* src/kvhash.c, src/kvhash.h: Remove.

	* src/Makefile.am (COMMON): Add glcontainers.c; remove kvhash.c and
	kvhash.h.

2019-11-18  Helmut Grohne  <helmut.grohne@intenta.de>

	Fix wrongly-documented "fix_binary" format entry

	The manual page says:

	| The magic, offset, mask, extension, detector, credentials, preserve, and
	| fix-binary options correspond to the command-line options of the same
	| names.

	However, the code parses "fix_binary" rather than "fix-binary". Use of
	"fix-binary" is silently ignored.

	Fixes Debian bug #945020.

	* man/update-binfmts.man8 (FORMAT FILES): Correct spelling of
	"fix_binary" option.

2019-02-10  Colin Watson  <cjwatson@debian.org>

	Use macros for common cases of list iteration

	* src/glcontainers.h: New file.
	* src/Makefile.am (COMMON): Add glcontainers.h.
	* src/find.c (find_interpreters): Replace manual list iteration with
	equivalent macros.
	* src/run-detectors.c (main): Likewise.
	* src/update-binfmts.c (act_enable, act_disable, act_display): Likewise.

2019-01-24  Colin Watson  <cjwatson@debian.org>

	Version: 2.2.0

	Update to Gnulib 20190124

2019-01-13  Colin Watson  <cjwatson@debian.org>

	Warn about fix-binary/detectors incompatibility

	"--fix-binary yes" is incompatible with detectors.  Warn the user if
	they try to use both at once.

	Thanks to Stefan Agner; fixes Debian bug #918901.

	* src/update-binfmts.c (act_enable): Warn and return if a detector is
	needed and the fix-binary flag is set.
	* man/update-binfmts.man8 (BINARY FORMAT SPECIFICATIONS): Document the
	incompatibility.
	* NEWS: Document this.

2019-01-13  Colin Watson  <cjwatson@debian.org>

	Avoid cleanup problems in chroots

	Don't enable formats on import or disable them on unimport unless
	/proc/sys/fs/binfmt_misc is already mounted.

	Fixes Debian bug #847788 and Ubuntu bug #534211.

	* src/update-binfmts.c (is_enabled): New function.
	(load_binfmt_misc): Use is_enabled rather than equivalent code.
	(act_install): Add always_update_kernel argument.  Only enable/disable
	if always_update_kernel or if binfmt_misc is already enabled.
	(act_remove): Add always_update_kernel argument.  Only disable if
	always_update_kernel or if binfmt_misc is already enabled.
	(act_import, act_unimport, main): Adjust calls to act_install and
	act_remove.
	* NEWS: Document this.

2019-01-13  Colin Watson  <cjwatson@debian.org>

	Add a new --unimport action

	This is the inverse of --import.

	* src/update-binfmts.c (act_unimport): New function.
	(enum opts, options, mode_name, parse_opt, argp, main): Handle
	--unimport.
	* src/tests/import: Test --unimport.
	* man/update-binfmts.man8 (SYNOPSIS): Add --unimport.
	(COMMON OPTIONS): Mention --unimport in description of --package.
	(ACTIONS): Document --unimport.
	* NEWS: Document this.

2019-01-05  Colin Watson  <cjwatson@debian.org>

	Upgrade to Gnulib 20190105

	In line with Gnulib, we now require Autoconf 2.63.

	* bootstrap: Sync to Gnulib d271f868a8df9bbec29049d01e056481b7a1a263.
	* bootstrap.conf (GNULIB_REVISION): Set to
	d271f868a8df9bbec29049d01e056481b7a1a263.
	(buildreq): Bump required autoconf version to 2.63.
	* configure.ac (AM_SILENT_RULES): Remove conditional, which was there
	for Automake 1.10 support.
	(AC_PREREQ): Bump to 2.63.
	* NEWS: Document this.

2019-01-05  Colin Watson  <cjwatson@debian.org>

	Add release.sh script

	* release.sh: New file.
	* Makefile.am (EXTRA_DIST): Add release.sh.

2019-01-05  Colin Watson  <cjwatson@debian.org>

	Use tar --sort=name if available

	* m4/binfmt-tar-sort-name.m4: New file.
	* configure.ac: Call BINFMT_TAR_SORT_NAME.
	* Makefile.am (ACLOCAL_AMFLAGS): Add -I m4.

2019-01-04  Colin Watson  <cjwatson@debian.org>

	Sort formats by name in --display

	The easiest way to do this was to recast kvhash as a wrapper around a
	gl_list_t (specifically a red-black tree hash) rather than a Hash_table.

	* bootstrap.conf (gnulib_modules): Remove hash; add rbtreehash-list.

	* src/kvhash.c (kvhash_hasher): Rename to ...
	(kvhash_hashcode): ... this, make static, and replace the hash
	implementation with one from Gnulib.
	(kvhash_compare): New function.
	(kvhash_comparator): Rename to ...
	(kvhash_equals): ... this, make static, and reimplement using
	kvhash_compare.
	(kvhash_dispose, kvhash_dispose_plain): New functions.
	(kvhash_initialize, kvhash_exists, kvhash_lookup, kvhash_insert,
	kvhash_delete): Use a list rather than a hash.
	* src/kvhash.h (kvhash_hasher, kvhash_comparator): Remove prototypes.
	(kvhash_dispose, kvhash_dispose_plain): Add prototypes.
	(kvhash_initialize, kvhash_exists, kvhash_lookup, kvhash_insert,
	kvhash_delete): Update prototypes.

	* src/format.c (binfmt_new): Take a list rather than a hash table.
	(binfmt_hash_free): Rename to ...
	(kvhash_dispose_binfmt): ... this, and update to the list API.
	* src/format.h (binfmt_new): Update prototype.
	(binfmt_hash_free): Rename to ...
	(kvhash_dispose_binfmt): ... this, and update prototype.

	* src/update-binfmts.c (formats): Declare as a list rather than a hash
	table.
	(get_import, act_enable, act_disable, act_import, act_display, main):
	Update to the list API.

	* NEWS: Document this.

2018-12-24  Colin Watson  <cjwatson@debian.org>

	More (void *) 0 as variadic sentinel

	* src/find.c (find_interpreters): Use (void *) rather than NULL as a
	sentinel for variadic functions.

2018-12-24  Colin Watson  <cjwatson@debian.org>

	Use (void *) 0 as a variadic sentinel

	NULL is formally incorrect here since the standard allows it to be an
	integer constant expression.

	* src/update-binfmts.c (rename_mv, load_binfmt_misc,
	unload_binfmt_misc): Use (void *) rather than NULL as a sentinel for
	variadic functions.

2018-12-24  Colin Watson  <cjwatson@debian.org>

	Tidy up and document removal of procfs support

	* src/update-binfmts.c (unload_binfmt_misc): Move declarations to top of
	function.  Remove obsolete comment.
	* NEWS: Document removal of procfs support.

2018-12-24  Bastian Blank  <waldi@debian.org>

	Remove ancient unused procfs support

	* src/update-binfmts.c (enum binfmt_style, get_binfmt_style): Remove.
	(load_binfmt_misc, unload_binfmt_misc): Remove procfs case.

2018-05-29  Colin Watson  <cjwatson@debian.org>

	Avoid gl directory confusion

	* bootstrap.conf (local_gl_dir): Set to 'gnulib-local'.

2018-05-28  Colin Watson  <cjwatson@debian.org>

	Upgrade to Gnulib 20180527

	* bootstrap.conf (GNULIB_URL): Remove.
	(GNULIB_REVISION): Set to 90f289f249a266b1afb9c63e182f5d979d17df5f.
	(gnulib_extra_files): Remove.  (This has the effect of reverting to
	bootstrap's default of also copying some files in build-aux/ from
	Gnulib.)

2018-05-28  Colin Watson  <cjwatson@debian.org>

	Switch to bootstrap

	We no longer keep autogenerated files in git.

	* .gitignore: Add **/Makefile, **/Makefile.in, /INSTALL, /aclocal.m4,
	/build-aux, /config.h.in, /configure, /gl, and /gnulib.  Remove
	doc/Makefile, gnulib/*, init/Makefile, init/openrc/Makefile,
	init/systemd/Makefile, init/sysvinit/Makefile, init/upstart/Makefile,
	man/Makefile, src/Makefile, and src/tests/Makefile.
	* INSTALL, Makefile.in, aclocal.m4, autogen.sh, build-aux, config.h.in,
	configure, doc/Makefile.in, gnulib, init/Makefile.in,
	init/openrc/Makefile.in, init/systemd/Makefile.in,
	init/sysvinit/Makefile.in, init/upstart/Makefile.in, man/Makefile.in,
	src/Makefile.in, src/tests/Makefile.in: Remove.
	* bootstrap, bootstrap.conf: New files.
	* Makefile.am (SUBDIRS, EXTRA_DIST, ACLOCAL_AMFLAGS): Refer to gl/
	rather than gnulib/ (gnulib/ now contains pristine source).
	(EXTRA_DIST): Replace autogen.sh with bootstrap and bootstrap.conf.
	Remove gnulib/m4/gnulib-cache.m4 and gnulib/m4/gnulib-tool.m4.
	* configure.ac (AC_CONFIG_FILES): Refer to gl/ rather than gnulib/.
	* src/Makefile.am (AM_CPPFLAGS, LIBGNU): Likewise.

2017-08-22  Colin Watson  <cjwatson@debian.org>

	Version: 2.1.8.

2017-08-22  Colin Watson  <cjwatson@debian.org>

	Add --disable-{upstart,systemd} configure options

	* configure.ac: Add --disable-upstart and --disable-systemd options.
	* init/upstart/Makefile.am: Don't install job if --disable-upstart is
	used.
	* init/systemd/Makefile.am: Don't install unit if --disable-systemd is
	used.
	* NEWS: Document this.

2017-07-09  Colin Watson  <cjwatson@debian.org>

	Version: 2.1.7.

2017-07-09  Dan Nicholson  <nicholson@endlessm.com>

	Add support for fix-binary flag

	Recent kernels provide a binfmt flag F referred to as fix binary[1].
	This flag instructs the kernel to open the interpreter immediately and
	use always use the opened image. This has a big advantage in containers
	or chroots where the interpreter may not exist at the specified path.

	A primary use case would be for a static linked QEMU user emulator where
	an architecture can be emulated in a container or chroot without any
	alterations so long as the binfmt configuration is handled on the host.

	1. https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.html

2017-07-09  Colin Watson  <cjwatson@debian.org>

	Various build system upgrades

	Upgrade to Automake 1.15.1, config.guess 2016-10-02, and config.sub
	2016-11-04.

2016-02-21  Colin Watson  <cjwatson@debian.org>

	Version: 2.1.6.

2016-02-21  Colin Watson  <cjwatson@debian.org>

	Various build system upgrades

	Upgrade to Autoconf 2.69-9 (from Debian), config.guess 2015-08-20,
	config.sub 2015-08-20, and pkg-config 0.29.

2016-02-21  Colin Watson  <cjwatson@debian.org>

	Implement a stop action for the systemd service

	* init/systemd/binfmt-support.service.in: Implement ExecStop, but
	with manual dependencies so that the service doesn't need to be
	(unnecessarily) stopped on shutdown.  Thanks to Michael Biebl; fixes
	Debian bug #739085.
	* NEWS: Document this.

2016-02-21  Raphaƫl Hertzog  <hertzog@debian.org>

	Always install DB entry even if /proc entry exists

	* src/update-binfmts.c (act_install): Remove test for existing /proc
	entry, superseded by test in act_enable.  Fixes Debian bug #750245.
	* NEWS: Document this.

2015-08-06  Colin Watson  <cjwatson@debian.org>

	Upgrade to Automake 1.15 and config.sub 2014-09-11.

2014-08-24  Colin Watson  <cjwatson@debian.org>

	Version: 2.1.5.

	Upgrade to Gettext 0.19.2.

2014-08-19  Colin Watson  <cjwatson@debian.org>

	Update to config.guess 2014-03-23 and config.sub 2014-05-01.

2014-08-18  Riku Voipio  <riku.voipio@linaro.org>

	Add support for preserve-argv0 flag

	Qemu will start requiring setting P in binfmt_misc
	flags [P]. Unfortunately update-binfmts doesn't just
	pass flags section as-is. The only supported flag
	so far is credentials, which is supported via --credentials
	command line flag.

	I've implemented a similar --preserve flag in this commit.

	This commit (or something similar) needs to land to Debian
	before qemu 2.2 can be uploaded.

	[P] https://www.kernel.org/doc/Documentation/binfmt_misc.txt

2014-03-30  Colin Watson  <cjwatson@debian.org>

	Version: 2.1.4.

	Upgrade to Automake 1:1.14.1-3 (from Debian).

2014-03-30  Cameron Norman  <camerontnorman@gmail.com>

	upstart: do not act as a task

	* init/upstart/binfmt-support.conf.in: Make the job a service with
	pre-start and post-stop stanzas rather than a task, as a task with a
	corresponding init script prevents startpar from continuing the boot
	sequence past that init script (because the job is considered
	"stopped").
	* NEWS: Document this.

2014-03-06  Colin Watson  <cjwatson@debian.org>

	Fix --disable-sysvinit and --disable-openrc configure options

	* configure.ac: Check whether $enable_sysvinit and $enable_openrc
	are set to "yes", not merely whether they are set at all.
	* NEWS: Document this.

2014-02-20  Colin Watson  <cjwatson@debian.org>

	Fix test suite when libexecdir is not /usr/lib

	* src/tests/Makefile.am (TESTS_ENVIRONMENT): Export pkglibexecdir to
	tests.
	* src/tests/detectors: Expect interpreter to be set to
	$pkglibexecdir/run-detectors rather than
	/usr/lib/binfmt-support/run-detectors.
	* NEWS: Document this.

2014-02-20  Colin Watson  <cjwatson@debian.org>

	* .gitignore: Add src/tests/*.log and src/tests/*.trs.

2014-02-20  Colin Watson  <cjwatson@debian.org>

	Move Autotools auxiliary build files from tools to build-aux.

	"build-aux" is a more conventional location for the Autotools files.

2014-02-18  Colin Watson  <cjwatson@debian.org>

	Upgrade to Gnulib 20140202.

2014-02-08  Colin Watson  <cjwatson@debian.org>

	Version: 2.1.3.

	* init/openrc/binfmt-support.in: Check uname in stop as well.

2014-02-08  Colin Watson  <cjwatson@debian.org>

	Fix reversed logic in OpenRC script

	* init/openrc/binfmt-support.in (start): Fix reversed uname check.
	* NEWS: Document this.

2014-02-07  Colin Watson  <cjwatson@debian.org>

	Version: 2.1.2.

2014-02-07  Colin Watson  <cjwatson@debian.org>

	Add --enable-sysvinit and --enable-openrc configure options

	* configure.ac: Add --enable-sysvinit and --enable-openrc options.
	Check that at most one of these is used.
	* init/openrc/Makefile.am: Install script if --enable-openrc is
	used.
	* init/sysvinit/Makefile.am: Install script if --enable-sysvinit is
	used.
	* NEWS: Document this.

2014-02-07  Colin Watson  <cjwatson@debian.org>

	Remove unnecessary file extension

	* init/sysvinit/Makefile.am (EXTRA_DIST, CLEANFILES, noinst_SCRIPTS,
	binfmt-support): Remove ".sh" extension.
	* init/sysvinit/binfmt-support.sh.in: Rename to ...
	* init/sysvinit/binfmt-support.in: ... this.
	* .gitignore: Ignore init/sysvinit/binfmt-support rather than
	init/sysvinit/binfmt-support.sh.

2014-02-07  Colin Watson  <cjwatson@debian.org>

	Add OpenRC support

	* configure.ac (AC_CONFIG_FILES): Add init/openrc/Makefile.
	* init/Makefile.am (SUBDIRS): Add openrc.
	* init/openrc/Makefile.am: New file.
	* init/openrc/binfmt-support.in: New file.
	* .gitignore: Add init/openrc/Makefile and
	init/openrc/binfmt-support.
	* NEWS: Document this.

2014-02-07  Colin Watson  <cjwatson@debian.org>

	Embed full path to update-binfmts into init files

	* init/sysvinit/binfmt-support.sh: Rename to ...
	* init/sysvinit/binfmt-support.sh.in: ... this, substituting
	@sbindir@ and removing PATH setting.
	* init/sysvinit/Makefile.am (EXTRA_DIST): Distribute
	binfmt-support.sh.in.
	(CLEANFILES): Clean binfmt-support.sh.
	(dist_noinst_SCRIPTS): Rename to ...
	(noinst_SCRIPTS): ... this.
	(binfmt-support.sh): Generate from binfmt-support.sh.in.
	* init/upstart/binfmt-support.conf: Rename to ...
	* init/upstart/binfmt-support.conf.in: ... this, substituting
	@sbindir@.
	* init/upstart/Makefile.am (EXTRA_DIST): Distribute
	binfmt-support.conf.in.
	(CLEANFILES): Clean binfmt-support.conf.
	(dist_upstart_DATA): Rename to ...
	(upstart_DATA): ... this.
	(binfmt-support.conf): Generate from binfmt-support.conf.in.
	* .gitignore: Add init/sysvinit/binfmt-support.sh and
	init/upstart/binfmt-support.conf.
	* NEWS: Document this.

2014-02-07  Colin Watson  <cjwatson@debian.org>

	Ensure all necessary directories exist after installation

	* configure.ac: Add AC_PROG_MKDIR_P.
	* src/Makefile.am (install-data-hook): Create $(admindir) and
	$(importdir).
	* NEWS: Document this.

2014-02-07  Colin Watson  <cjwatson@debian.org>

	Stop hardcoding Debian defaults for various directories

	* configure.ac: Substitute admindir, importdir, and procdir.
	* man/update-binfmts.8: Rename to ...
	* man/update-binfmts.man8: ... this, without hardcoding directories.
	* man/Makefile.am (dist_man8_MANS): Rename to ...
	(man8_MANS): ... this.
	(CLEANFILES): Clean $(man8_MANS).
	(.man8.8): Generate manual page with appropriate substitutions.
	(dist-hook): Distribute update-binfmts.man8.
	* src/Makefile.am (AM_CPPFLAGS): Define ADMINDIR, IMPORTDIR,
	PROCDIR, and AUXDIR.
	* src/paths.c (admindir, importdir, procdir, auxdir): Use
	definitions rather than hardcoding.
	* src/run-detectors.c (options): Likewise.
	* src/update-binfmts.c (options): Likewise.
	* .gitignore: Add man/update-binfmts.8.
	* NEWS: Document this.

2014-02-06  Colin Watson  <cjwatson@debian.org>

	Upgrade to Automake 1.14.1.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	Version: 2.1.1.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	Fix installation of systemd unit files.

	* configure.ac (AC_CONFIG_FILES): Remove
	init/systemd/binfmt-support.service.
	* init/systemd/Makefile.am (EXTRA_DIST): Add
	binfmt-support.service.in.
	(CLEANFILES): Add binfmt-support.service.
	(systemdsystemunit_DATA): Rename to ...
	(nodist_systemdsystemunit_DATA): ... this.
	(binfmt-support.service): Generate from binfmt-support.service.in.
	* NEWS: Document this.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	* configure.ac: Fix --with-systemdsystemunitdir.

	* .gitignore: Add **/*.a and **/*.o.

	Version: 2.1.0.

	* Makefile.am (gen_start_date): Fix fencepost error.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	Add a systemd unit file.

	* configure.ac: Add --with-systemdsystemunitdir option.
	(AC_CONFIG_FILES): Add init/systemd/Makefile and
	init/systemd/binfmt-support.service.
	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Ensure that
	--with-systemdsystemunitdir points under ${prefix}.
	* init/Makefile.am (SUBDIRS): Add systemd.
	* init/systemd/Makefile.am: New file.
	* init/systemd/binfmt-support.service.in: New file.
	* NEWS: Document this.
	* .gitignore: Update.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	Add copyright/licence notices to init files.

	* .gitignore: Remove Debian-specific files.

	* NEWS: New file.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	Add sample init configuration.

	* Makefile.am (SUBDIRS): Add init.
	* configure.ac (AC_CONFIG_FILES): Add init/Makefile,
	init/sysvinit/Makefile, and init/upstart/Makefile.
	* init/Makefile.am: New file.
	* init/sysvinit/Makefile.am: New file.
	* init/sysvinit/binfmt-support.sh: New file, stripped down from
	debian/init.d in the Debian packaging.
	* init/upstart/Makefile.am: New file.
	* init/upstart/binfmt-support.conf: New file, copied from
	debian/upstart in the Debian packaging.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	gnulib: Import gnupload module.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	Improve accuracy of "make dist".

	* Makefile.am (SUBDIRS): Add doc.
	(EXTRA_DIST): Add gnulib/m4/math_h.m4.
	* configure.ac (AC_CONFIG_FILES): Add doc/Makefile.
	* doc/Makefile.am: New file.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	Stop trying to distribute non-existent files.

	* Makefile.am (EXTRA_DIST): Remove gnulib/gets.patch and
	gnulib/lib/argp-parse.patch.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	Automatically generate ChangeLog from git

	* Makefile.am (dist-hook): Add gen-ChangeLog.
	(gen-ChangeLog): New rule, based on that in coreutils.
	* gnulib: Import gitlog-to-changelog module.
	* .gitignore: Add **/*~.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	Remove Debian packaging.

	* debian/changelog: Copy to ...
	* ChangeLog-2013: ... here.
	* Makefile.am (EXTRA_DIST): Add ChangeLog-2013.
	* configure.ac (AC_INIT): Stop autogenerating version from
	debian/changelog.  Bump to 2.1.0.

2013-12-29  Colin Watson  <cjwatson@debian.org>

	Move to git.

	* .bzrignore: Move to ...
	* .gitignore: ... here, adjusting for differences between bzr and
	git.
	* Makefile.am (EXTRA_DIST): Replace .bzrignore with .gitignore.
	* gnulib: Add --no-vc-files.