Skip to content

Releases: avramovic/gumpress

Release list

v2.0.1

Choose a tag to compare

@avramovic avramovic released this 15 Aug 07:48

Fixed: a rejected activation could deactivate every legitimate site on the license

max_uses (seat limiting) had a serious flaw against Gumroad direct: a
rejected activation attempt still counted against Gumroad's uses
field, because the verify call sent increment_uses_count=true before any
local seat check ran. Since uses is global, never decrements, and carries
no site identity, a single blocked pirate attempt — or an innocent clone, a
restored backup, a search-replace'd domain — could push the counter past
max_uses and silently deactivate every genuinely-activated site on its
next re-check.

What changed

  • Probe before claiming. Against Gumroad direct, whenever the local
    max_uses cap could actually reject the call, GumPress now sends a
    non-incrementing check first (increment_uses_count=false), and only
    follows up with the real, incrementing call if there's room. A rejected
    site no longer touches the counter at all. A custom license_check_url
    is unaffected — it already enforces its own seat model.
  • A claimed seat is never revoked later. Each site now remembers its
    own position among the license's activations at the moment it claimed a
    seat, and is judged against that position instead of the live (and
    only ever growing) uses count. A rejected third site, a clone, or
    another site still running an older GumPress version can no longer take
    a seat away from a site that legitimately holds one.

Upgrade notes

  • Drop-in replacement — no config changes required, no new options.
  • No retroactive amnesty: a license that was already over its
    max_uses limit before upgrading to 2.0.1 stays blocked (there's no
    reliable way to tell a poisoned counter apart from a genuine over-limit
    activation). See Seat limiting → Recovering an already-over-limit
    license

    for options: temporarily raise max_uses, switch max_uses_policy to
    'warn', or reset uses from the Gumroad seller side.

Full Changelog: v2.0.0...v2.0.1

v2.0.0

Choose a tag to compare

@avramovic avramovic released this 07 Aug 22:35

A complete rewrite of the GumPress shim, now distribuited both as a set of PHP classes and as a single PHP file (amalgamation).