Commit graph

161 commits

Author SHA1 Message Date
4a1ec06364 Update copyright notice
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2021-01-05 10:41:28 +01:00
d111522fe8 Update copyright notice
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2018-04-29 10:33:19 +02:00
30382d9d03 scripts src/scripts: Clean up inconsistent shell variable quoting
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2017-09-03 10:37:11 +02:00
0447b529bd Make: Make src/scripts/gen-tarball-version a bit nicer
When autoconf is stale, include a reminder how to fix that in the
error message.

While there, cd to $nv like we do in src/scripts/gen-client-configure
for slightly terser code.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-09-03 10:28:06 +02:00
b0bea7418a Make: Fix src/scripts/tarball argument parsing
The test for -x uses non-portable operator ==.  Screwed up in commit
63c6dd6.  Fix by using getopts instead.

Missing mandatory arguments aren't diagnosed.  Screwed up in initial
commit 1991652, v4.3.0.  Fix by checking shift's return status.

The error message for missing argument of -C neglects to print $0 and
uses echo in a non-portable way.  Also screwed up in commit 1991652.
Fix the obvious way.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-09-03 10:26:47 +02:00
ed26bc80ac Make: Make "make dist" catch stale configure
As commit 1ec9b94 explains, the version reported by configure is fixed
at configure generation time.  "make dist" happily distributes a stale
one.  Not terrible, because all that's stale is the output of
configure --version, just embarrassing.

Make gen-tarball-version fail when the configure --version doesn't
match the tarball version.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-13 14:31:07 +02:00
10ddaca6b1 Make: Fix configure generated for dist-client
Commit 1ec9b94 broke regeneration of configure for dist-client: it
uses .tarball-version, which exists only in the tarball, not in the
source tree.

Generating the client's autoconf stuff into the source tree is a
questionable idea anyway, as it won't run there.  Generate it while
building the tarball instead.

Bonus: doesn't distribute a useless .dirty-stamp.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-13 14:31:07 +02:00
63c6dd6896 Make: Move .tarball-version generation out of src/scripts/tarball
Commit 1ec9b94 made src/scripts/tarball generate .tarball-version and
.dirty-stamp.  Hardcoding it like that there is a bit ugly.

Move it into a separate tweak script that is run right before tar.
We'll tweak some more in the next commits.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-13 14:00:16 +02:00
240474195d src/scripts/tarball: Clean up to prepare for the next commit
We don't save $1 in a variable, only $1-$2.  Okay, because we don't
need $1 by itself.  However, the next commit will.  So save it.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-13 13:38:10 +02:00
afe5001a23 Update copyright notice
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-07 09:38:32 +02:00
1ec9b94f74 configure Make: More detailed version information
Version information is in output of commands version, xdump version,
and in program output for option -v.  Looks like this:

    Wolfpack Empire 4.3.33

The version number is defined in configure.ac, and incremented
manually.  It identifies only the base release (here: 4.3.33).  Fine
when this is an unmodified released version.  Pretty much useless
during development.

Add a suffix to the version number that describes it further:

    V               Unmodified release V (same as before)
    V.N-H           Modified release built from a clean git tree
                    N is the number of additional commits, and
                    H is the abbreviated commit hash
    V.N-H-dirty     Same, but the working tree is dirty
    V-dirty         Modified release built from a tarball

A git tree is clean when the contents of its files are unchanged.
Changing only the their timestamps doesn't count.  It does count when
building from a tarball, because tracking contents isn't implemented
there.

Also use this suffixed version for tarball names.

The version reported by configure is fixed at configure generation
time, i.e. it is usually out of date during development.  Ensuring a
release tarball contains one with a current version is manual for now.
Running autoconf -f should do the trick.

Elsewhere, the version is determined at build time, so it is always
current.

Dirty tracking isn't implemented in the standalone client build.  If
you start with a clean tarball, the version will not change from V to
V-dirty when you build with modifications.

Steal build-aux/git-version-gen from autoconf 2.69 to help with
computing the version string.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-06 20:09:17 +02:00
c8e2a02d2f indent-emp: Take files to indent from command line
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-06 19:59:56 +02:00
a65fcfc23c ls-sources.pl: Fix for directory relative to root of tree
Given and argument like tests/xdump, the script looks for
tests/xdump/.git, tests/.git, /.git.  The last one is wrong.  Make it
look for ./.git then.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-06 19:59:56 +02:00
bae3f5447e Update copyright notice
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-07-02 17:45:44 +02:00
dc6cffa131 tests: Fix for builds outside git-controlled source tree
We run "git ls-files" in the build tree.  Doesn't work when the source
directory isn't a git repository, or the build directory is outside
the source directory.  Broken in commit 71cb2d8.

Find source files like Make.mk does: if the source tree is a git
repository, use git ls-files, else use sources.mk.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2015-03-03 20:18:38 +01:00
49b2b13a90 New make target check
Just a smoke test so far, extracted from src/scripts/nightly/.  This
makes the existing smoke test more easily accessible.  Noteworthy
differences:

* Instead of patching the code to make output more stable, postprocess
  the output to normalize it.

* Compare actual results to expected results instead of the previous
  test run's results.

* Much faster.  The old test harness used sleep liberally to "ensure"
  things always happen in the same order.

Known shortcomings:

* The smoke test hangs when the server fails to complete startup, or
  fails to terminate.

* Normalization of xdump hardcodes columns instead of getting them
  from xdump meta.

* Normalization of time values in xdump is an ugly hack.

* xdump meta column type isn't normalized.  Actual values can vary
  between systems, because the width of enumeration types is
  implementation-defined.  The smoke test works only when they're
  represented as int, which is the case on common systems.

* Currently expected to work only with thread package LWP and a
  random() that behaves exactly like the one on my development system,
  because:

  - Thread scheduling is reliably deterministic only with LWP

  - The PRN sequence produced by random() isn't portable

  - Shell builtin kill appears not to do the job in MinGW

  - The Windows server tries to run as service when -d isn't
    specified

Further work is needed to address these shortcomings.

Getting C programs behave exactly the same on all systems is hard.
We'll likely run into system-dependent differences that upset the
smoke test.  Floating-point computation seems particularly vulnerable.

Instead of updating src/scripts/nightly/ to use "make check", retire
it.  It hasn't been used in quite a while.  Investing more into our
homegrown auto-builder doesn't make sense, as canned auto-builders
such as Travis CI and Jenkins are readily available.

The shell scripts src/scripts/nightly/tests/?? become Empire batch
files tests/smoke/.  The shell scripts are actually shell boilerplate
around Empire batch files.  To make sure git recognizes the move, this
commit moves them unchanged.  tests/smoke-test strips the boilerplate
before it feeds the batch files to the client.  The next commit will
get rid fo that.
2013-05-08 06:55:11 +02:00
df4925d696 Update copyright notice 2013-01-12 17:45:01 +01:00
1118f1c0ca Update copyright notice 2012-06-10 10:52:22 +02:00
10768189e2 Unbreak nightly build
The nightly build uses a gross hack to keep timestamps stable: it
replaces the system's time() by emp_time().  It doesn't replace other
time-related functions such as gettimeofday().  Works as long as we
don't mix hacked time with unhacked time.

The previous commit compares time gotten from gettimeofday() with time
gotten from time().  The nightly build's I/O timeouts become zero,
which makes login impossible.

Replace gettimeofday(), too.
2012-03-31 19:03:19 +02:00
2abe2baeef Disable test of pre_update_hook in nightly build
Where exactly the output from pre_update_hook gets inserted in the log
depends on timing.  Messes up diffs between test runs.
2011-06-25 17:12:39 +02:00
c697fd8856 Fix nightly's diff_to_prev.sh
Broken in commit 5d512312, v4.3.11
2011-06-25 17:12:39 +02:00
7e2008e7f4 License upgrade to GPL version 3 or later
Why upgrade?  I'm not a lawyer, but here's my take on the differences
to version 2:

* Software patents: better protection against abuse of patents to
  prevent users from exercising the rights under the GPL.  I doubt
  we'll get hit with a patent suit, but it's a good move just on
  general principles.

* License compatibility: compatible with more free licenses, i.e. can
  "steal" more free software for use in Empire.  I don't expect to steal
  much, but it's nice to have the option.

* Definition of "source code": modernization of some details for today's
  networked world, to make it easier to distribute the software.  Not
  really relevant to us now, as we normally distribute full source code.

* Tivoization: this is about putting GPL-licensed software in hardware,
  then make the hardware refuse to run modified software.  "Neat" trick
  to effectively deny its users their rights under the GPL.  Abuse was
  "pioneered" by TiVo (popular digital video recorders).  GPLv3 forbids
  it.  Unlikely to become a problem for us.

* Internationalization: more careful wording, to harden the license
  outside the US.  The lawyers tell us it better be done that way.

* License violations: friendlier way to deal with license violations.
  This has come out of past experience enforcing the GPL.

* Additional permissions: Probably not relevant to us.

Also include myself in the list of principal authors.
2011-04-12 21:20:58 +02:00
a94ae5f8c1 Fix nightly's sandbox cleanup not to hang when stdin is a tty
"rm -r" prompts for read-only files when stdin is a tty.  Probably
broken since we install builtin configuration read-only, in commit
b4161cd7, v4.3.0.

Move "done" message to the right place.  Broken in commit 70c03561,
v4.3.12.
2011-01-15 14:40:06 +01:00
c7d9d4fcf4 Fix nightly's check for existing sandbox
Broken in commit 70c03561, v4.3.12.
2011-01-15 14:40:06 +01:00
c77db95fad Clean up a useless use of cat 2011-01-15 14:40:06 +01:00
73e25ff21e Update copyright notice 2010-01-19 08:40:17 +01:00
6e30ba88a4 Fix trailing whitespace 2010-01-19 08:40:17 +01:00
611d349f3f Fix nightly build
Commit 5f89f8cb added pre_update.econfig with incorrect permissions.
2009-12-14 06:56:23 +01:00
Ron J Koenderink
5f89f8cba3 Don't patch constants.c for nightly, use econfig 2009-12-13 08:20:01 +01:00
627eb9bc1a Run git describe in nightlybuild.sh to identify what's built 2009-04-15 22:12:44 +02:00
35ef345ecb Update copyright notice 2009-02-08 09:33:18 +01:00
Ron Koenderink
b976d11884 Suppress the git checkout information for nightlybuilds 2009-01-20 19:50:33 -06:00
Ron Koenderink
8b12839565 Update windows configuration for nightlybuild 2009-01-20 19:35:17 -06:00
Ron Koenderink
c8688dbe01 Simplify the time() replacement for nightlybuilds
Move the time() replacement from emptime.c.patch file
to nightlybuild.sh.
2009-01-13 19:20:34 -06:00
4c5d3c235b Replace other occurences of git-FOO by git FOO 2008-12-03 07:57:14 -05:00
Ron Koenderink
344e91bbb9 Log out player when time per day is exceeded
Commit 3da4030 already changed player_main() to log out the player
when m_m_p_d was exceeded in command().  This crept in accidentally.
Complete the job by changing status() to log out the player instead of
downgrading him to visitor status.

Also, change player_main(), command() and status() to apply the time
limit to countries in sanctuary in addition to active countries.
Leave visitors alone, because those are shared logins.  Make the
disconnect message to a player consistent for all situations.

Note that commit 875a80d1 already changed player_main() to apply the
time limit only to active countries instead of all, just like status()
does, but neglected to document that.
2008-11-16 13:16:36 -05:00
Ron Koenderink
3da4030ac0 Prevent command from execute after game restrictions
If a player is at a prompt when either game hours
restrictions starts or logged in time limit is exceeded
the player is allow to enter one command.
2008-11-15 16:51:02 -06:00
Ron Koenderink
2ce0a58a0d Update emptime.c.patch for commit cb0a373 2008-11-15 16:21:02 -06:00
Ron Koenderink
875a80d14f Rewrite accounting of play time
Replace daychange() and gettimeleft() by update_timeused_login(),
update_timeused() and enforce_minimum_session_time().  The new
code doesn't assume the day is always 24 hours long which can
occur when transitioning into or out of DST and such.  Logging
in after more a multiple of 128 days now resets nat_timeused
properly.

Fix nat_timeused calculation on midnight rollover to include
the time since midnight.

struct natstr member nat_dayno and struct player member timeleft
are now unused, remove them.
2008-11-15 13:08:19 -06:00
Ron Koenderink
14319b89ec Represent logged in time in seconds rather than minutes
This simplifies things.  In particular, it gets rid of random rounding
in getcommand(), which created a variation in the nightly build
depending on whether the update starts before or after the deity logs
out.

Replace struct natstr member nat_minused by nat_timeused, and update
cou_ca[] accordingly (this affects xdump nat).  Replace player member
minleft by timeleft, and getminleft() by gettimeleft().  Update
getcommand(), daychange(), player_main(), status() accordingly, taking
care not to change player output.  Change edit country key 'u' to work
in seconds.
2008-10-28 08:48:25 -06:00
Ron Koenderink
436328f641 Correct the emptime.c.patch for player.c
Broken in commit 122171b.
2008-10-26 21:12:10 -06:00
Ron Koenderink
122171b8d1 Add a time base for nightly builds
Increment the time base at the each update.
Remove the unnecessary patches that overrode
the timestamp printouts.
2008-10-26 15:59:43 -06:00
Ron Koenderink
4c8bb492a3 Add more tests to nightly builds
Add Player 02 as an ally for Player 01.
Add tests for telegrams, wall, announce, relationships,
land units, wire, fire, attack, planes, autofish and autooil.
2008-10-26 15:56:04 -06:00
Ron Koenderink
488b80841b Add scrap and scuttle tests to nightly builds
Also general improvements to economy for player 08.
2008-10-18 12:06:11 -04:00
Ron Koenderink
a758e38510 Add land units tests to nightly builds and improve economy
Up the bar production.  Start education and tech for player 08
Improve the general economy for player 08.  Add land units building
tests to player 01, including ensuring the tech is high to build.
2008-10-18 12:06:11 -04:00
Ron Koenderink
62843e166c Add xdump tests to nightly builds
Add xdump meta test to Turn 00 Player 02 to verify player visibility.
Add xdump test to Turn 99 Player 00 to verify xdump output.
Add xdump test to Turn 99 Player 01 to player's version of xdump
output.
2008-10-18 10:53:36 -04:00
Ron Koenderink
8b77d0ca07 Add xdump meta and table accessible tests to nightly builds 2008-10-18 10:53:36 -04:00
Ron Koenderink
17f44e8104 Move test scripts from nightlybuild.sh to separate files
The test scripts are now in nightly/tests/TURN/PLAYER.  For each turn,
the update script is executed first (except for turn 00), and then all
the player scripts in the appropriate turn directory.  This runs
runfeed() in different directories; change it to accomodate for that.

The update script runs "report *" on all updates.  Before, it ran only
on some of them.
2008-10-16 20:50:11 -04:00
Ron Koenderink
945b473250 Add missing cd to patch step for nightlybuild.sh
If the patch step is ran without the preceeding step, the cwd
is incorrect.
2008-10-16 20:46:56 -04:00
Ron Koenderink
1047c5703f Correction for Ubuntu Conversion
Change nightlybuild.sh to allow the setting of the pthread
option for ./configure.  Remove the incorrectly added xml
header line from the ubuntu-pthread.i386.config file.
2008-09-25 21:12:24 -06:00