forked from DOMjudge/domjudge
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
862 lines (831 loc) · 45.6 KB
/
ChangeLog
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
DOMjudge Programming Contest Judging System
Version 5.2.0 - DEV
-------------------
- [security] bind PHP session cookie to specific web URI to prevent
sharing sessions between different websites on the same host.
- Allow team to download testcase data marked as 'sample'.
- Add icons to menu bars.
- Allow to filter submissions on team, problem, language.
- Show when a problem can not be judged on any judgehost.
- Use current contest as default when uploading problem archive.
- Allow to add user during team creation in UI.
- Make problem texts always downloadable for jury.
- Decode HTML entities for proper display of error messages in
submit client.
- The event feed and REST API now comply with ICPC WF 2016 specs.
- Disallow deleting a judgehost that has performed judgings,
since the dangling reference from the judging table makes
submissions being rejudged again.
- Performance: merge jury and public versions of cache database
tables into single tables. Please refresh scoreboard cache after
upgrade.
- Make Linux cgroups a requirement: running Java without it has
become too painful with memory overheads, also when compiling.
- Add 'output-limit' verdict.
- Renamed dj-setup-database to dj_setup_database for consistency
with other script names.
- Update ACE editor to version 1.2.3, jQuery to version 2.2.4.
- Implement better password hashing (#237 thanks Bert Peters).
- Allow float timelimits (#235).
Version 5.1.0 - 7 December 2015
-------------------------------
- Minimum PHP version is now 5.4.
- Minimum MySQL/MariaDB version is now 5.5.3.
- More pervasive UTF-8 support.
Also introduces new DJ_MYSQL_COLLATION configuration setting.
- Remove CHROOT_SCRIPT configuration setting: automatically run
chroot-startstop.sh if a pre-built chroot tree is found.
- Update ACE editor to version 1.2.2, JScolor to version 1.4.5.
- Support microsecond resolution contest times and timezones.
- Port XML event feed from ICPC-live branch.
- Port clarification categories feature from ICPC-live branch.
- Merge Debian/Ubuntu chroot scripts and add minor fixes.
- Drop CHROOT_SCRIPT setting, use hardcoded chroot-startstop.sh.
- Fix float compare script output and relative checking.
- Fix various small bugs in problem ZIP import.
- Fix ACE editor to resize after tab change (#145).
- Fix variance calculation in judging_statistics script.
- [security] Disable GCC family automatic language detection to
prevent submitting other languages or object/executable code.
- Write compare script errors to logfile (#179).
- Substitute invalid Unicode characters instead of producing
blank output.
- Various smaller fixes and improvements to the jury interface.
Version 5.0.0 - 11 August 2015
------------------------------
- Removed support for 'presentation-error' judgement.
- Various documentation improvements.
- Preserve aspect ratio when creating testcase image thumbnails.
- Fixed bug that REST API scoreboard "solved" was always true.
Thanks Shuhei Takahashi.
- Make REST API return properly typed values. Thanks Shuhei Takahashi.
- Synchronise selected contest between jury/team/public interfaces.
- By default only refresh caches of the selected contest.
- Show differences of a resubmission with the original submission.
- Fix length of role DB field. Thanks pinkston3 for pointing out.
- Update ACE editor to version 1.2.0.
- Update jQuery to version 2.1.4.
- Update autoconf M4 macros from upstream.
- Miscellaneous smaller fixes.
Version 5.0.0 Release Candidate 1 - 7 July 2015
-----------------------------------------------
- Add support for the problemarchive.org problem package format, thereby
dropping support for our custom format. In particular, the specification
of compare scripts has changed.
- Add support for multiple simultaneous contests.
- Add support for HTML5 desktop notifications of clarifications,
judgings and judgehost status (#133).
- Add support for optional user self-registration.
- Add support for problem points, allowing one to assign different
scoring weights to diffent problems in a contest.
- Add selection options for rejudging, and preview rejudging results
before applying them.
- Add optional per problem memory/output limits (Closes #152).
- Apply runguard limits also to compare scripts (#68).
- In runguard, kill all remaing processes in the cgroup at the end
of the run; preventing leftover processes in corner cases like
detaching from itself.
- Allow to add restrictions on contests, problems and languages to
judgehosts.
- Allow judgedaemons to query multiple domservers.
- Allow storing optional descriptive image for each test case.
- Add support for accounts.tsv import, results.tsv and userdata.tsv export.
- Add support for additional per-team penalty time (can be negative).
- Move checktestdata to stand-alone repository.
- Update dj_make_ubuntu_chroot to Trusty (#139, thanks Ruud Koot).
- Fix diff display on team submission output page when showing the
result of sample testcases is enabled (#137, thanks Ruud Koot).
- In Haskell run script, set maximum stack size to someting small to
prevent ghc from running out of memory (#138, thanks Ruud Koot).
- Update ACE editor to 1.1.8, JScolor to 1.4.4.
- Improve installation on and documentation for Red Hat(like) Linux.
- Root is not required anymore for 'make install'.
- Raise minimum required PHP version to 5.3.3.
Version 4.0.0 - 22 July 2014
----------------------------
- Fix chroot create script when using an APT proxy.
- Fix broken link to problem download for teams and public.
- Small tweaks to new judgehost load display.
- Display problem/language name instead of ID above submission lists.
- Install ACE and flot Javascript library files.
- Rename SQL upgrade snippet to release name.
- A few miscellaneous minor code improvements.
Version 4.0.0 Release Candidate 1 - 8 July 2014
-----------------------------------------------
- checktestdata logical operators are now '&&' and '||'.
- Introduce REST API; used by judgedaemon and submit client to communicate
with domserver. API is not officially declared 'stable' at this point.
- Removed submitdeamon; submit client now always uses the REST API.
- Removed xml plugin interface; use the REST API instead.
- Move nearly all judgehost configuration to the database, making it
controllable centrally from the DOMjudge web interface, including all
compile and check scripts.
- Problem, team and affiliation now have a numeric auto-incrementing ID.
Problem short names now need to be unique per contest, but not globally.
- Redesign authentication system: there's a single set of users for all
interfaces, which may have different roles, such as team or admin.
- Submitclient now also works with user/password authentication.
- New authentication scheme 'external' leverages Apache to provide a
REMOTE_USER value.
- New scoreboard layout: more compact, affil. logos replaced by names.
- Store timestamps in database as Unix epoch, independent of time zones
with subsecond resolution.
- Store recognized language extensions in database and query from
submit client through REST API.
- Show diff of team and reference output even if run stopped prematurely.
- Make timelimit overshoot margin configurable.
- Judge too-late submissions without scoring them (Closes #99).
- Update jscolor and sorttable javascript to latest upstream versions.
- Misc. minor bugs fixed reported by Coverity scan.
- Replace flex++ by flexc++, fixes a missing build dep. and code cleanup.
- Add support for new languages: Prolog, Ruby, JavaScript.
- Replace GeSHi syntax highlighter with Ace javascript code editor.
- [security] Compile as unprivileged user to prevent compile-time access
to e.g. testdata files.
- Added rankcache_* tables to improve scoreboard page for large contests
(thanks to the Amrita people), renamed scoreboard_* tables to match.
- Added support for publicly visible sample testcases.
- Move compile/run/compare scripts to database (Closes #123).
- Add option to have compiler-error not add penalty time (Closes #127).
- Gather and store metadata from runguard and start work to completely
separate program/runguard stderr output (Closes #122).
- Add statistics page with a graph of submissions during the contest.
- Add ICPC import/export, both via TSV files and via their web service.
- Notify admin of judgehosts that are down by indicating this in the
menu bar.
- Overhauled layout of submission detail page.
- Changed Java classname detection to use reflection instead of javap.
- Added script misc-tools/judging_statistics to extract various
statistics (variations in judging results and runtimes, etc.).
Version 3.4.0 - (unreleased)
----------------------------
- Add problem text to database and support viewing in PDF/HTML/ASCII.
- Add optional printing support via DOMjudge web interface. Using
local system printing remains the preferred way.
- Change non-lazy evaluation to also return the result to the team
as soon as possible while continuing to judge the remaining test
cases.
- Display verification comment for previous run.
- Check IP address equivalence with inet_pton.
- Do not apply framing protection to public interface.
- Update GeSHi to upstream 1.0.8.11.
- Update JSColor to upstream 1.4.0.
- Increase highlighted source limit from 10 kB to 32 kB.
- Add mapping to GeSHi highlighting to translate DOMjudge language
ID's to their GeSHi counterparts.
- Move configuration data to separate SQL file.
- Store CPU/wall time limits in double to prevent overflows.
- Fix bug: CSS class missing in disabled balloon interfaces rows.
- Fix bug: link to CSS colour names reference was broken.
- Make Java class name detection compatible with Java 7.
- Make Haskell example source compatible with newer GHC versions.
- Make default colour for observers grey instead of yellow.
- Fix bug: buffer underflow bug in runguard when compiled on Ubuntu 12.04:
added check for closed pipe (file descriptor == -1). Thanks Keith Johnson.
- Fix bug: change absolute time strings for those times which are specified
as relative time when starttime was changed by "start now".
- Fix bug: long overflow in runguard / output_exit_time.
- Fix bug: add missing $pagename to check_judgings.php.
- Fix bug: race condition in runguard where the forked child terminates
before the parent could setup a signal handler.
- Fix bug: handle gracefully events deleted from the database.
- Fix bug: submitclient compile error with g++ (Debian 4.7.1-2) 4.7.1.
- Don't let sudo try to read passwords.
- Various documentation improvements.
- Add cascading delete on submitid to balloons table.
- Support stringwise token compare and ignoring whitespace in check_float.
- Add option to generate testdata and add ASSERT to checktestdata syntax.
- Extend checktestdata syntax: arrays, strings, UNIQUE, INARRAY tests.
- Correct mount bind option, see Debian bug #677815. Ported from
WISVCH/DOMjudge tree at GitHub.
- Add program to "relive" simulate original contest submissions.
- Add option to display favourite teams on top of the public scoreboard.
- Make format of timestamps in web interfaces configurable.
- Use PHP multibyte string functions where applicable. Thanks Vladimir
Vassiliev for the bug report.
- Use HTML5 for multiple file uploads and form validation, when available.
- Fix: close all file descriptors when daemonizing (no PHP solution yet).
- Upgrade to PHP's 'mysqli' extension instead of the legacy 'mysql'.
- Switch make_chroot to Debian 7.0 'Wheezy' and OpenJDK 7.
- Add support for memory control in rungard with Linux cgroups.
Patch provided by Keith Johnson.
- Prevent network access from runguard when cgroups are enabled.
- Pass ONLINE_JUDGE and DOMJUDGE directives to submissions.
- Add support for new languages: Python3, Ada, Fortran, Lua, Scala.
- Make it explicit that rejudging 'all' does not include CORRECT submissions.
- Allow to (de)activate judgehosts on the judgehosts overview page.
- Apply the z-index to the clock only, otherwise the refresh button
stops being clickable.
- Remove unnecessary sleep from submitting test sources.
- Run C preprocessor on Fortran source to be able to pass defines.
- Also install an Ubuntu chroot creation script.
- Support deleting a problem description.
- Move the balloon daemon configuration into domserver-config, and install
it by default.
- Mount lib64 in the chroot if it exists.
- Allow multiple judgedaemons to be run on the same host, and use cgroups
to bind each to a separate CPU core.
- Judgehosts will auto-register with the domserver and do not need to be
manually listed beforehand.
- Fix bug that teampage_first_visit would be updated on each visit.
- Update clock in web interface each second through JavaScript.
- Further tighten permissions on files written when judging submissions,
to make the case when not using chroot more secure.
- Add c++ as a language extension for C++.
- Display a total and maximum of all testcase runtimes for a submission,
and always print runtimes with two decimals.
- Judgehosts update their status after each testcase to prevent
warning/critical status with many testcases.
Version 3.3.0 - 29 May 2012
---------------------------
- Fix bug: don't show unverified submission details if verification is
required. Thanks Keith Johnson.
- Add sourcefiles_limit setting, upper bound on the number of source
files in one submission.
- Improve polishing of multifile submission handling.
- Preselect original text in clarification form.
- Remove judgehost from submission overview tables.
- Calculate team that first solved a problem per sortorder.
- Do not show submission form when contest has not yet started.
- Add button to submission list to view only unjudged submissions.
- Improve performance of checkconfig under large databases.
- Change runguard kill process to remove unnecessary sleep()s.
- Create chroot once per judging instead of once per testcase to
remove overhead of repeated chroot start/stopping.
- Make chroot bind mounts read-only for extra security.
- Refresh scoreboard cache only after a warning has been acknowledged.
- Add advisory locking to calcScoreRow() updating of scoreboard cache,
to prevent accidental high database load.
- Check for unfinished judgings on judgehost startup and give
them back to the queue.
- Display problem description in submit confirmation dialog.
- Add configure-variables-interpolated sudoers.d-snippet.
- Fix JS sorting on id for several tables.
- Sort problems from the current contest to the top on the problems
overview page.
- Add optional judge comment field to judging verification.
- Redirect to originating page after verification of submission.
- Move checktestdata grammar specification to separate file
and publish as public domain.
- Add possibility to export a problem to a zip-bundle.
- Add specification of DOMjudge problem format zip-bundle.
- Add admin button to rejudge all submissions in the current contest.
Version 3.3.0 Release Candidate 1 - 30 April 2012
-------------------------------------------------
- [INCOMPATIBLE CHANGE,security] enable cURL SSL host/peer verification
in the command line submit client. This requires any self-signed
certificates now to be available to libcURL on a team machine.
- Add compile script and test source for language 'bash'.
- Prioritize to team's last judging (port from ETH tree).
- Fix testing for empty output with strlen (port from ETH tree).
- Update M4 macro's from upstream, fixing some problems.
- Fix configure script to allow subdir customization in FHS mode.
- Upgrade included dash shell to version 0.5.7-2.
- Use Debian 6.0 Squeeze for building Java chroot.
- Fix warning of runguard trying to reset resource limits to infinity.
- Fix minor bug in diff output coloring due to line number overflow.
- Rename SQL upgrade snippets and add README file for these.
- Raise minimum required PHP version to 5.2.
- Judges now use individual accounts to access the jury webinterface,
which will be used to track claiming, verification, etc.
- Add auditlog for all actions changing contest state.
- Protect against clickjacking by forbidding framing using the
X-Frame-Options HTTP header supported in modern browsers.
- Reimplement balloon tracking and notification backend.
- Display current contest prominently on contests page and provide
button to have the next contest milestone happen now.
- Add script to automatically submit solutions and clarifications.
- Remove duplicate queries in scoreboard generation.
- Add team 'enabled' switch which defaults to true, but when
disabled makes a team to immediately disappear from the
scoreboard and renders their team interface unusable.
- Support 'first for contest/team/problem' comments for balloons.
- Change ISO 3166-1 country codes from alpha-2 to alpha-3.
- Use CPU time as primary limit (port from ETH tree).
- Move checktestdata code to separate library for easier use in
stand-alone checkers, and add 'IF() [ELSE] END' syntax.
- Add option to display pending submissions on the scoreboard.
- Remove 'identify daemon' experimental code. It hasn't been
working for years and no-one discovered that.
- Remove 'lib.config' experimental library for INI-file configuration.
It was unused and we're moving to DB stored config with lib.dbconfig.
- Merge all MySQL users into one omnipotent user (previously
domjudge_jury). The differences between the levels were
getting to a point where the separation provided not enough
added benefit anymore. You should remove the users
domjudge_{team,public,plugin} from MySQL and dbpasswords.secret.
- Add configuration page to admin interface and move various variables
from etc/*-config.php to the DB configuration table.
- Support inclusion of external libraries under the lib/ext/ path.
- Include a copy of the GeSHi syntax highlighter.
- Result remapping is now done on each testcase result, in order
to avoid surprising interactions with results_prio. A message
is logged for each remapping done.
- Transparant redirection of stdio through runguard, Closes: #89.
- Display first solved in scoreboard (suggested by Andrés Mejía).
- Fix source code diff function to work with resubmitting modified
source from the jury interface.
- Support submissions consisting of multiple source files.
- Replace check_judgings script by web page in jury interface ('judging
verifier').
- Add toggle link for showing/hiding verdicts of previous submission by same
team.
Version 3.2.0 - SVN r3594 (unreleased)
--------------------------------------
- Add better support for interactive problems, add sample problem.
- New, redesigned single page "dashboard" team web interface.
- Change execute() function for more flexible I/O redirection.
- Add runpipe program for connecting stdin/out of two processes.
- Rename compare_program.sh to *_wrapper, allow symlinked usage.
- Add FLOAT command and exponentiation to checktestdata program.
- Add countdown before contest and timezone to clock.
- Add daemon support in C/PHP libraries, use for submit/judgedaemon.
- Add category to balloons list and button to view only unsent.
- Lots of small changes to C/C++ sources and build system for better
POSIX compliance and portability; support LLVM clang compiler.
- Replace bash by POSIX shell in compile, testcase_run. (Closes: #1735673)
- Create separate execdir subdir for judging. (Closes: #3041492)
- Replace setuid root installation of runguard with invocation
via sudo.
- Fix missing permissions for plugin interface SQL user.
- Remove CHROOTDIR (mountpoint prefix) variable to avoid confusion
with the directory where the Java chroot was created.
- Redirect to submissions overview page after verification.
- Fix information leak in clarification problems list. (Closes: #3096018)
- In JS problem name detection, probid needs to be casenormalised too.
- Fix websubmit when using numeric problem ID's, thanks Vladimir Vassiliev.
- Allow specification of contest times relative to starttime.
- Add toggle button for autorefresh of jury pages (port from ETH tree).
- Add support for team authentication via LDAP server (port from ETH tree).
- Pass SYSLOG variable from PHP config to C/C++ programs via environment.
- Set MySQL connection encoding explicitly. Introduces a new option:
DJ_CHARACTER_SET_MYSQL.
- Add 'frozen' flag option to scoreboard plugin interface.
- Remove language 'extension' column from SQL database, langid is now
used for source file extensions.
- Add multiselect filters on scoreboard with javascript hiding.
- Add cascaded deletes to DB tables: most data can now be deleted from
the admin webinterface.
Version 3.1.0 - 14 July 2010
----------------------------
- Add multiple testcases support.
- Add PHP session support as alternative to IP address authentication.
Based on patches by Tobias Werth.
- Bugfixes and improvements to checktestdata program.
- Fix error trapping in subshells, thanks Jan Jergus. (Closes: #2866430)
- Fix bug in lib.database.php with array_map "class::method" notation.
- Add 'enabled' field to contest to allow for easier editing.
- Only show the configured submission methods in the team manual.
- Fix install of gendbpasswords and use /dev/urandom.
- Add documentation on static_scoreboard.
- Add problem subject to clarifications, idea from DomJudge@FAU.
- Add WHILE command and tests to checktestdata syntax.
- Move PENALTY_TIME variable out of common-config into domserver-config.
- Add combined_scoreboard script to view scoreboard of multiple sites.
- The judgedaemon now tries to restore a lost db connection (Closes: #2897130)
- Fix: check for both htpasswd{,2} binaries in configure.
- Fix white problem colour by adding a circle image with black border.
- Ports from ETH tree: use pipes with wc and gcc.
- Fix bug: typo in presentation-error exitcode, and add safeguard.
- Add security: check for stale judging directories (port from ETH tree).
- Bugfix: allow zero size testcases (port from ETH tree).
- Show config checker runtime (port from ETH tree).
- Make syntax highlighting more modular, and add support for the
GeSHi syntax highlighter.
- Add sample PDF problem texts for inclusion in the database.
- Fix bug in handling of libmagic cookie.
- Refactor team authentication code to allow for other methods.
- Eliminate WEBBASEURI setting.
- Add JavaScript colour picker to balloon colour edit box, using
jscolor 1.3.1 by Jan Odvárko.
- Improve layout and usability of displayed tables.
- Add "viewing" to verification status in jury submission list, idea
from DomJudge@FAU.
- Added AWK, C# and Python language support.
- Added upgrade support for the SQL database.
- Fix some HTML escaping issues found with skipfish.
- In chroot-startstop, cope properly with /lib64 being a symlink to
/lib. Thanks Christoph Dittmann.
- Enforce the previously implicit notion that probid may only consist
of characters in "a-zA-Z0-9_".
- Fix SQL syntax error in restore_sources2db script.
- Upgrade included dash shell to version 0.5.5.1-6.
- Fix swapped error messages in submit client.
- Correctly handle empty optional diff file argument.
- Include standard C headers in misc/scanner.h.
Version 3.0.0 Release Candidate 2 - 3 September 2009
----------------------------------------------------
- Fix directory install permissions.
- Only show languages that are not submitable as 'disabled'
and show a separator between contests on the problems page.
- Minor updates to team manual.
Version 3.0.0 Release Candidate 1 - 16 June 2009
------------------------------------------------
- Raise required PHP version to 5.
- Replace included static bash by dash shell.
- Revise team manual.
- Add missing link to add testcases to a new problem.
- Fix bug causing segfaults of submitdaemon. (Closes: #2046031)
- Added script to check results of submitted test-sources.
- Added 'checktestdata' script for checking testdata via grammar specification.
- Add support for FHS directory structure installation.
- Move all configure paths to globally included paths.mk file.
- Repair broken documentation build/install system.
- MySQL table types are now InnoDB. Define foreign key relations
between tables (Closes: #2144325).
- Use db values instead of the userinput. (Closes #2144718)
- Add a FLUSH PRIVILEGES statement after user grants during
installation, as this may be necessary to have MySQL pick up
all changes correctly.
- Don't use -fstack-protector under Cygwin. (Closes: #2144713)
- Distribute prebuilt versions of the admin and judge manuals and
remove svn,expdlist downloads for the team manual.
- New compactified layout of team manual.
- Add note about Java class naming in team manual. (Closes: #2153189)
- Add Java compile script that autodetects class name. (Closes: #1964765)
- Add binary file check in commandline submit. (Closes: #2046017)
- Make HTML tables sortable in the jury view.
- Removed "feature" of only allowing alnum chars in filename base
for submit client problem parsing.
- Show truncated team names instead of logins in submissions overview.
- Fix bug of submittime==endtime not showing as too-late, thanks Tobias Werth.
- Replace 'hostname --short' option, fixing inconsistent results.
- Merge changes in ipv6 branch to trunk, IPv6 comparison not yet functional.
- Show unread clafications in the title of the team clarifications page.
(Closes: #2148054)
- Added test sources for java class name, network and root user.
- Only wrap unquoted lines in clarification texts. (Closes: #2244652)
- Only build submit client/daemon on request via configure. (Closes: #2046029)
- Flush results in config checker for better feedback.
- Fixed DB installation support with script 'dj-setup-database'.
- Update included dash shell to version 0.5.5.1-2 (Debian upstream).
- Replace beep by alert plugin program. (Closes: #1878083)
- Add functionality and fix security issue in runguard, thanks Thomas Rast.
- Check for safe_mode before diff-ing tempfiles. (Closes: #1808354)
- Proper error message when entering a team ip that's already in use.
- Remove javascript sorting from table columns where it doesn't make sense.
- Commandline submitclient supports only http by default now.
- Remove redundant copies of testdata by symlinks. (Closes #2805385)
- Java chroot script now uses Sun's OpenJDK-headless, allowing for a leaner
chroot and more supported architectures.
- Reorder source tree: removed bin dir, move test-sources to tests, cleanup.
- Fix DEBUG_JUDGE option for debugging judging backend.
- FreeBSD porting fixes, making DOMjudge more POSIX compliant.
- Make DOMjudge work when PHP's short_open_tag = Off.
- Add support for staged installs (DESTDIR).
Version 2.2.0 - 11 August 2008
------------------------------
- Do not install domjudge straight in $HOME by default.
- [security] Add sanity check in jury interface whether basic authentication
is enabled, and lock down jury inferface also for non-GET/POST requests
- Fix race condition in team password check.
- Improved MySQL query performance.
- Move .htaccess config to apache config.
- Fix 'NONINTERACTIVE' undefined (Closes: #1814594, thanks Maks Verver)
- Moved beep system call to separate function in lib.misc.{c,php}.
- Switch to UTF-8 for output. (Closes: #1742460)
- Represent balloon colours with a symbol rather than filling the background,
making the scoreboard less cacophonic. (Closes: #1808561)
- Add a web based tool for tracking balloon handouts.
- Fix C compiler warnings by using 'const char *'.
- Fix noninteractive/logging code in websubmit to restore submitclient
error parsing (Closes: #1829621).
- Fix variable name in judge/compare_program.sh.
- Added make dist target and removed generated figures.
- Added cookie for last verifier in jury webinterface (Closes: #1742044).
- Added option to only show unverified submissions in jury interface.
- Fix bug that jury was not allowed to set clarifications (un)answered.
- Fix problem that runguard ignored SIGALRM on some distributions (thanks
Tobias Werth).
- New required activatetime field for a contest: defines the moment the
team/public displays start to display this contest, but no submissions
accepted yet. Solves the problem of testsession data still displayed upto
the second before a contest starts (Closes: #1825555).
- Rename contest.lastscoreupdate to freezetime to be more clear
and in line with other table attributes.
- Add salt to passwords' md5 hashes.
- Move setting resource limit from run script to runguard.
- Added signal detection to daemons for graceful shutdown (Closes: #1808478).
- Fixed bug in test-stacksize.c due to compiler optimization
(Closes: #1788820).
- Add some rudimentary tests.
- Remove websubmitdaemon, submit directly to database (Closes: #1737229).
- Add script to restore submission table from SUBMITDIR files.
- Complete implementation of syslog logging (now also for C/C++).
- Send jury user back to referrer page after edits (Closes: #1821543).
- Remove .php extensions from commandline scripts.
- Higher displayed precision in float compare.
- Fix submit_copy to use bash.
- Make it easier to return custom result codes for a judging.
- Added support for "presentation error" results.
- Enable GCC security features for compiling DOMjudge helper programs.
- Automatically generate apache.conf from global.conf (Closes: #1778059).
- Added work-in-progress code for eventdaemon (Working on: #1682761).
- Added printer friendly version of jury scoreboard.
- Restyle configchecker and also check MySQL version and max_connections.
- Explicitly use DBSERVER host with mysql install (Closes: #1955439).
- Display time left to end of contest on every page (Closes: #1960940).
- Move php files that shouldn't be served to lib/www (Closes: #1957891).
- The admin can exclude submissions from a team's score (Closes: #1742043).
- Added choice of view types to submissions page, default to 50 most recent
submissions (Closes: #1964747). Choice is remembered in a cookie.
- More flexible debugging settings with a bitmask (Closes: #1759103).
- Store testdata in database and add interface to view/update it.
- Add an anchor to the first changed line in the diff (Closes: #1818874).
- Added 'domjudge_plugin' mysql user for the plugin webinterface.
- Cache hostname in team table to prevent slowdown on hosts without
working reverse.
- Removed LGPL licence by relicencing 2 files to GPL.
- Added ability to download source code for jury.
- Allow bash-static to be replaced by any static POSIX shell.
- In MySQL privileges table, add 'localhost' entries next to '%' entries
to prevent Access Denied when DB is on localhost.
Version 2.1.1 - SVN
-------------------
- Implement syslog logging (for PHP and shell scripts).
- Fix typo in jury/submission.php causing a parse error when using
PHP4 (Closes: #1808259, thanks mhil@fmf.nl).
- Fix team unread clarification count to work cross-contest.
- Update not the public, but the jury scoreboard after freeze.
- Fix poblem colour input field to match its size in the database.
- The colors of the problems are now shown in the jury problems overview
(Closes: #1808308).
- Improve contrast of default team category colours.
- Some improvements to admin manual including submission diagram.
Version 2.1.0 - 5 September 2007
--------------------------------
- Drop tempfile and mkstemps binaries, they are not necessary.
- Change runguard license to GPL 2 or higher. The current code
is a different implementation of the original idea from timeout.
- Make shell scripts /bin/sh where possible, set them to bash
where we rely on bash-specific features.
- Fixes to judge/compare.c for better handling of strange newlines and
printing first difference summary as first line.
- Allow admins to rejudge PENDING/CORRECT submissions (Closes: #1766222).
- Fix include test for Text_Highlighter to cope with missing PEAR.php.
- Fix password generation for more than one team.
- Fix test-logic bug in judge/check_program.sh: reversing judging outcomes.
- Make warning and error beeps default to something more noticeable.
- Let show_source cope with empty file submissions gracefully.
- Abort startup of judgedaemon if processes of RUNUSER still found running.
- Added extra default problem 'fltcmp' for testing check_float and special
run script code.
- Fix make_passwords.sh to cope with htpasswd2 instead of htpasswd. Thanks
Tobias Werth for the patch.
- Fix 2 generate_config.sh bugs: quoting error and tempfile cleanup.
- Print float abs/rel diffs in check_float (Closes: #1777195).
- Allow teams to respond to received clarifications (Closes: #1777179).
- Check LANG_EXTS array for consistency with languages table in configtest
(Closes: #1777182).
Version 2.0.0 - SVN
-------------------
- Use correct last modified date of team manual (Closes: #1744121).
- Allow to set a specific new password for a team (Closes: #1737142).
- Split general functions from submitcommon.cc to lib.misc.c and
improved makefile structure and build process under Cygwin.
- Replaced compare script by C program with better diff display.
- Use AJAX instead of iframe to notify team/jury of new clarifications.
- Added some security improvements to runguard.
- Drop dependency on tempfile during distclean.
- Fix compile errors/warnings in beep.c and compare.c (Closes: #1754218).
Version 2.0.0 Release Candidate 2 - 25 June 2007
------------------------------------------------
- A shared file system between judgehosts and jury system is no
longer required. The source is now communicated via the database.
- Merge judging information into submission page (Closes: #1741620).
- Improved portability to non-Linux systems (Closes: #1734046).
- Use syntax highlighting in source code viewer when PEAR
Text_Highlighter class is available.
- Generated passwords only lowercase and length 6 (Closes: #1737142).
- Split test-sources in normal and stress tests (Closes: #1737421).
- Remove 'NOW()' from SQL update/insert queries to make replication
time-independent.
- Fixed bug in submit_db: report errors before too-late submission.
- Fix bug in diff display when no newline present (Closes: #1741625).
- Select recipient explicitly on clarification send (Closes: #1741622).
- Use either wget or curl for downloading LaTeX packages.
- Add more checking and verification to database input.
- Upgrade bash to upstream Debian version 3.1dfsg and removed sources
from package to website to reduce package size.
- Bring lib.database.php up to date with latest upstream version.
- Improved error handling in team file uploads.
- Small-time cleanups.
Version 2.0.0 Release Candidate 1 - 28 May 2007
-----------------------------------------------
- Minimum MySQL version required is now 4.1: simplify SQL privilege
removal.
- [INCOMPATIBLE CHANGE] Renamed judger to judgehost everywhere to
remove ambiguity between human judges and judge computers.
- [INCOMPATIBLE CHANGE] Renamed team to teamid in database tables
refencing the 'team' table index 'login'.
- Add numbering to scoreboard.
- Make all cells in jury scoreboard links that refer to relevant
data for that cell (Closes: #1582358).
- Add affiliation icons to scoreboard (configurable). (Closes: #1355814).
- Adapt and split sql script files to allow for easier upgrading and
changing database name.
- Fix possible buffer overflow in submitcommon.cc; thanks to
Lennert Buytenhek for pointing out [CVE-2007-2977].
- Add option to commandline submit to use websubmit (Closes: #1582376)
and use libcurl for that (Closes: #1626222).
- Add unfreezetime field to contests which allows to display the final
standings to teams and public, and a button to unfreeze right away
(Closes: #1582370).
- Add problem and team category colours to MySQL DB.
- Add team summary to all main team pages.
- Add check_float program to compare floating point output.
- Parse validator XML output if xsltproc is available (Closes: #1238454).
- Add more summary data to tables.
- Fix clarification wrapping.
- Fix some language typos.
- Improve webinterface layout.
- Add MySQL transactions; will provide extra safety when the table type
supports it (otherwise does nothing).
- Rewrote submit daemon/client to use new networking code, which makes
transition to IPv6 compatibility easy. (Closes: #1576565).
- Change scoreboard sorting to use ACM ICPC (tie-breaker) rules.
- Added team information pages for teams and public and included team
members field in the SQL 'team' table.
- Unify documentation into an administrator's manual, a judgers manual
and a team manual.
- Balloon notifications can continue after scoreboard freeze, and will
list all balloons a team is supposed to have.
- Add event table to DB to store major events of the contest
(Working on: #1682761).
- Only judge submissions that are submitted strictly before the contest
end time.
- Fix check_float testing for NaN and INF (thanks to Maks Verver).
- Fix variable type to work on 64 bit systems in submit.cc (thanks to
Maks Verver).
- New script: static_scoreboard.php. Outputs a scoreboard suitable
as a static HTML page.
- Add DOMJUDGE_ADMINS variable in etc/passwords.php. This can be used
to differentiate between judges and admins for the web interface:
admins will be allowed to change more of the core data.
- Bring lib.database.php up to date with latest upstream version.
- Add Referential Integrity and HTTP Authentication check to configchecker.
- Add option to admin interface to edit and delete most data types.
- Improved build process of submit client under Windows/Cygwin.
Version 1.3.0 - 6 October 2006
------------------------------
- Fix balloons notification for new database layout introduced
in 1.1.0; thanks Lennert Buytenhek for the patch.
- Handle unwritable logfiles more gracefully.
- When scoreboard frozen, display since when.
- Some very minor tweaks to code and documentation.
Version 1.3.0 Release Candidate 2 - 18 September 2006
-----------------------------------------------------
- Large update and improvement of the documentation: more
installation information, a quick-install checklist, FAQ
is improved, example Apache configuration shipped and bugs
fixed (Closes: #1560107).
- Default hostname in MySQL privileges to '%' (all hosts), making
sure that webinterface, command line and remote judgers can all
connect (Closes: #1560108).
- Change default memory limit in global.cfg to 512MB, since the Sun
JVM consumes 200 MB by itself.
- chmod uploaded files so the websubmitdaemon can handle them
even if the webserver has a restrictive umask.
- Auto-focus the clarification textarea.
- Bring lib.database.php up to date with latest upstream version.
- Some miscellaneous minor tweaks.
Version 1.3.0 Release Candidate 1 - 15 September 2006
-----------------------------------------------------
- Added a separate script for extra setup of the chroot environment
and pass memory limit to Sun Java run script for better javac/java
support (Closes: #1508663).
- Added script to generate Java chroot environment from Debian sources.
- Added toggle buttons in jury interface for allowing submission
and judging per problem and language.
- Added option to enter verifier's name in jury interface.
- Changed config option SUBM_VERIFY to VERIFICATION_REQUIRED and
disabled "off" choice.
- Fixed some more HTML to be fully XHTML 1.0 Strict compliant.
- Included sources to comply with licences of included programs.
- Multiple other small fixes and enhancements.
Version 1.2.0 - 26 June 2006
----------------------------
- Added websubmit (Closes: #1103084).
- Added support for team passwords (generating and validating).
- Added team status light to jury teams overview (Closes: #1441783).
- Added confirm dialog when sending a clarification (reply).
- Added examples and documentation for how to use interpreted languages.
- Added support for specialised run and compare scripts.
- Timeout submitclient connection to server (Closes: #1477739).
- Minimum required PHP version now 4.3.2.
- Allow for IPv6 IP-addresses to be used.
- Correct parameters to `diff`, since '-2' is obsoleted.
- Checked all BASH scripts for 'set -e' (Closes: #1508492).
- Tweak HTML to be fully XHTML 1.0 Strict compliant.
Version 1.1.0 - 22 December 2005
--------------------------------
- Added 'make check' target which submits test-sources.
- Fixed that no compiler output gives compilation error.
- When solutions timeout, first try to kill graciously (Closes: #1312848).
- Removed LaTeX packages from the sources to remove GPL/LPPL conflicts.
- Changed runguard license to IBM Public License.
- Added diff to previous submission in source display (Closes: #1310244).
- Extra check on submission filenames to prevent theoretical exploits
(Closes: #1355816).
- Added summary of solved problems to team submissions page
(Closes: #1312241).
- Automatically quote clarification request when replying
(Closes: #1347688).
- [INCOMPATIBLE CHANGE] Renamed table category to team_category,
team_category.catid to categoryid and team.catid to categoryid,
scoreboard_{jury,public}.problem to probid.
- Added team_affiliation table which allows for storing the university,
institution or company teams belong to.
- Added room and comments fields to team table.
- Display sort-order in category overview.
- A lot of small webinterface enhancements.
Version 1.0.0 - 4 October 2005
------------------------------
- Updates to team manual and other documentation (Closes: #1306335).
- Fix case-bug in sql/mysql_privileges.sql example.
- Drop checking for existence of testdata in www/jury/checkconfig.php,
since the webserver doesn't need to be able to read that data.
- Minor enhancements to the jury webinterface display.
- Added config option to disable chroot environment for judging.
- Improved sample data.
- Add sort-order field to category table to enable some categories
to be sorted at the bottom automatically (Closes: #1311885).
- Some other small bugfixes.
Version 1.0.0 Release Candidate 1 - 21 September 2005
-----------------------------------------------------
- Added config option to autoconfigure team IP addresses.
- Added config option to (not) show compiler output to teams.
- Moved C-code from headers to separate files.
- Fixed bugs where submitdaemon couldn't handle spaces in language ext.
- Added balloons notification script (Closes: #1238416).
- Added feature: jury can do optional or required auditing of judgings
(Closes: #1070240).
- Accept late submissions, but do not judge them (Closes: #1238421).
- Improve efficiency of requesting contest data.
- Support the ICPC Validator Interface standard, concerning the
parameters of the compare script. The result.xml file is generated
but is not yet considered by test_solution (See: #1238454).
- Small improvements in Makefile's and install scripts.
- Some other small bugfixes.
Version 0.3.1 - 16 July 2005
----------------------------
- Added documentation on MySQL DB layout to INSTALL.
- Improved SQL installation/cleaning scripts.
- Added make target to automatically generate passwords.
- Fixed bug where teams received popups for their own clarifications.
(Closes: #1233038)
- Fixed missing privilege definition in MySQL table.
- Miscellaneous other small fixes.
Version 0.3.0 - 5 July 2005
---------------------------
- Added mass rejudging support per team,language,problem,judger.
(Closes: #1070241)
- Added FAQ in docs/FAQ.
- Fix missing column_priv (domjudge_user,problem,cid).
- Fix sorting for equal scores to be alphabetical on team name.
- Miscellaneous documentation improvements.
- Fix some problems with file permissions by setting those explicitly.
- Config checker now checks for existence of testdata.{in,out}.
(Closes: #1221427)
- Web interface copes better with empty database tables.
- Fixed that time_factor was inadvertently cast to int for output.
- Add tooltips explaining the scoreboard summary row.
- Made some enhancements to the Makefiles.
- Support MySQL 3/4 privilege tables and sql files installation.
Version 0.2.0 - 23 February 2005
--------------------------------
- Fixed faulty EPS-logo, finally.
- Add database privileges and move sql-files to own directory.
(Closes #1070236)
- Improve config.tex dependency.
- Make the base URI of the web interface configurable and fix redirects
to be compatible with the HTTP-specification.
- Fix bug in getSubmissions() that caused a syntax error on the
team-overview in the jury interface.
- Added some notes on security to the INSTALL docs.
- Symbolic links now included (subversion >= 1.1).
- Fixed buffer size bug in log/error C-code.
- Fix bug in submit_db where the problem name got case-normalised.
- Feature: Add caching to the Scoreboard. This vastly improves the
responsiveness and scalability of DOMjudge; outputting the scoreboard
is now an O(1) operation in queries. (Closes: #1070079)
- Some fixes to XHTML1.0 compliance.
- In tables, the time is now printed as hh:mm (without seconds).
- Complete rewrite of the clarification interface of both teams and jury.
Functional changes: added possibility to (un)set a request as "answered".
- Remove Dutch text from lib.database.php. (Closes: #1103043)
- Add functions for debugging and profiling (timing) the web interface.
- Include placeholder config files which output an error when the
system is unconfigured.
- Fix layout error of differences output.
- Only define STDERR when not already defined (differs per PHP version).
Version 0.1.1 - 24 November 2004
--------------------------------
- Improve documentation layout.
- Improve Makefiles and add global targets.
- Move passwords to separate passwords.php file.
- Redirect in webroot changed from permanent to temporary.
- Recreated EPS logo, now 75% smaller filesize.
Version 0.1.0 - 18 November 2004
--------------------------------
- First public release.