Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nelsonjr/ddclient
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: ddclient/ddclient
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Able to merge. These branches can be automatically merged.

Commits on Dec 19, 2024

  1. update porkbun api endpoint domain

    cristian-aldea authored and rhansen committed Dec 19, 2024
    Copy the full SHA
    d936535 View commit details
  2. Copy the full SHA
    eb48bb5 View commit details
  3. Merge pull request ddclient#752 from cristian-aldea/master

    update porkbun api endpoint domain
    rhansen authored Dec 19, 2024
    Copy the full SHA
    aba1df3 View commit details
  4. Copy the full SHA
    b200e0c View commit details
  5. Copy the full SHA
    d3e793b View commit details
  6. Copy the full SHA
    8aedcf4 View commit details
  7. Copy the full SHA
    8fbf9ed View commit details
  8. Delete checked-in copy of tap-driver.sh

    It is not needed now that RHEL 6 and CentOS 6 have reached EOL.
    rhansen committed Dec 19, 2024
    Copy the full SHA
    ceced7e View commit details
  9. Ignore build-aux/config.guess, build-aux/config.sub

    These currently aren't installed by `autoreconf --install`, but ignore
    them anyway as a defensive measure.
    rhansen committed Dec 19, 2024
    Copy the full SHA
    6dfcede View commit details
  10. Makefile.am: Fix Automake portability warning

    This silences:
    
        Makefile.am:20: warning: escaping \# comment markers is not portable
    rhansen committed Dec 19, 2024
    Copy the full SHA
    a12398c View commit details
  11. Merge pull request ddclient#771 from rhansen/build

    Build system improvements
    rhansen authored Dec 19, 2024
    Copy the full SHA
    af4ea14 View commit details

Commits on Dec 22, 2024

  1. Rename master branch to main

    rhansen committed Dec 22, 2024
    Copy the full SHA
    9f2d627 View commit details

Commits on Dec 24, 2024

  1. Use semver 2.0.0 as the human-readable version string format

    This avoids the need to escape tilde in tag names.
    rhansen committed Dec 24, 2024
    Copy the full SHA
    54b6d0c View commit details

Commits on Dec 25, 2024

  1. Merge pull request ddclient#777 from rhansen/semver

    Use semver 2.0.0 as the human-readable version string format
    rhansen authored Dec 25, 2024
    Copy the full SHA
    4d7d6ae View commit details
  2. New GitHub workflow to enforce linear pull requests

    When combined with GitHub's "Require branches to be up to date before
    merging" setting, this forces semi-linear merging.  This check can be
    disabled by adding the "pr-permit-nonlinear" label to the PR.
    rhansen committed Dec 25, 2024
    Copy the full SHA
    07289d5 View commit details
  3. Merge pull request ddclient#779 from rhansen/linear-pr

    New GitHub workflow to enforce linear pull requests
    rhansen authored Dec 25, 2024
    Copy the full SHA
    59495e9 View commit details
  4. Release v4.0.0-rc.1

    rhansen committed Dec 25, 2024
    Copy the full SHA
    87a919a View commit details

Commits on Dec 27, 2024

  1. Copy the full SHA
    3da4259 View commit details
  2. Merge pull request ddclient#782 from indrajitr/typo-fix

    Fix small typo in 'nochg' message grammar
    rhansen authored Dec 27, 2024
    Copy the full SHA
    0a687d5 View commit details

Commits on Jan 7, 2025

  1. Prepare for v4.0.0-rc.2

    rhansen committed Jan 7, 2025
    Copy the full SHA
    59f6c29 View commit details
  2. add mail-from option

    TinfoilSubmarine authored and indrajitr committed Jan 7, 2025
    Copy the full SHA
    8030a46 View commit details
  3. fixup! add mail-from option

    refine usage wording
    rhansen authored and indrajitr committed Jan 7, 2025
    Copy the full SHA
    a2e818d View commit details
  4. fixup! add mail-from option

    default to undef
    rhansen authored and indrajitr committed Jan 7, 2025
    Copy the full SHA
    2de77f1 View commit details
  5. fixup! add mail-from option

    factor out duplicate code
    rhansen authored and indrajitr committed Jan 7, 2025
    Copy the full SHA
    d1f81dc View commit details
  6. fixup! add mail-from option

    move variable declaration closer to usage
    rhansen authored and indrajitr committed Jan 7, 2025
    Copy the full SHA
    d2b1a4d View commit details
  7. fixup! add mail-from option

    add changelog entry
    rhansen authored and indrajitr committed Jan 7, 2025
    Copy the full SHA
    76fccba View commit details
  8. fixup! add main-from option

    move changelog entry to v4.0.0-rc.2
    indrajitr committed Jan 7, 2025
    Copy the full SHA
    cf4bad1 View commit details
  9. Copy the full SHA
    4008ccf View commit details
  10. Correct NearlyFreeSpeech.NET example

    extra spaces in the protocol and a trailing comma caused connection issues if not corrected.
    Zorks authored and indrajitr committed Jan 7, 2025
    Copy the full SHA
    e492037 View commit details
  11. nfsn Rearrange zone property in example

    Usually, the zone property is not the last property
    in the configuration convention that is followed in
    ddclient config examples.
    indrajitr committed Jan 7, 2025
    Copy the full SHA
    678b76f View commit details
  12. Merge pull request ddclient#754 from Zorks/patch-1

    Correct NearlyFreeSpeech.NET example
    indrajitr authored Jan 7, 2025
    Copy the full SHA
    8ffbedd View commit details
  13. New GitHub workflow to prohibit autosquash commits

    This prohibits commits whose commit message starts with "squash!",
    "fixup!", or "amend!" unless the PR has the 'pr-permit-autosquash'
    label.  Such commits are created via the `--fixup` or `--squash`
    options to `git commit`, and cause `git rebase --autosquash` to
    automatically adjust the todo list appropriately before performing the
    rebase.  Their existence implies that the PR should be rebased with
    `--autosquash` before merging.
    rhansen committed Jan 7, 2025
    Copy the full SHA
    56f88e3 View commit details
  14. Merge pull request ddclient#790 from rhansen/autosquash

    New GitHub workflow to prohibit autosquash commits
    rhansen authored Jan 7, 2025
    Copy the full SHA
    60bedd0 View commit details
  15. Copy the full SHA
    7248341 View commit details
  16. Merge pull request ddclient#789 from rhansen/confdir

    Change default location of `ddclient.conf` to `${sysconfdir}/ddclient`
    rhansen authored Jan 7, 2025
    Copy the full SHA
    fee71b4 View commit details
  17. Release v4.0.0-rc.2

    rhansen committed Jan 7, 2025
    Copy the full SHA
    660bb11 View commit details
  18. Post-release version bump

    We'll probably just release `v4.0.0` without an `-rc.3`, but I'm
    setting it to `-rc.3` just in case (decreasing the version number can
    break automatically built daily Git snapshots).
    rhansen committed Jan 7, 2025
    Copy the full SHA
    8decfc4 View commit details

Commits on Jan 8, 2025

  1. tests: Localize config setting

    This isn't strictly necessary, but is good practice because it
    guarantees that the config is cleaned up after each test case.
    rhansen committed Jan 8, 2025
    Copy the full SHA
    3f3b8cf View commit details
  2. Copy the full SHA
    c89a2d6 View commit details
  3. Copy the full SHA
    06c4769 View commit details
  4. Merge pull request ddclient#792 from rhansen/ssl-validate-tests

    tests: Fix t/ssl-validate.pl in minimal test environments
    rhansen authored Jan 8, 2025
    Copy the full SHA
    6408be6 View commit details
  5. tests: Delete vestigial code

    This deleted code came from a previous unpublished prior draft of the
    tests and was accidentally not deleted when the approach changed.
    rhansen committed Jan 8, 2025
    Copy the full SHA
    ecaa05a View commit details
  6. Merge pull request ddclient#796 from rhansen/vestigial

    tests: Delete vestigial code
    rhansen authored Jan 8, 2025
    Copy the full SHA
    9ab0384 View commit details
  7. tests: Add missing semicolon

    This should have been in commit
    06c4769.  The tests that use this
    module did not fail because an import failure is assumed to be caused
    by a missing dependency, not a genuine bug.
    rhansen committed Jan 8, 2025
    Copy the full SHA
    ddeaedc View commit details
  8. tests: Only skip HTTPD tests if dependencies are unavailable

    This prevents the tests from passing due to syntax errors in
    the ddclient::t::HTTPD module.
    rhansen committed Jan 8, 2025
    Copy the full SHA
    8cf322e View commit details
  9. Merge pull request ddclient#795 from rhansen/missing-semicolon

    tests: Add missing semicolon; prevent similar future bugs
    rhansen authored Jan 8, 2025
    Copy the full SHA
    741a234 View commit details

Commits on Jan 9, 2025

  1. Copy the full SHA
    8883641 View commit details
  2. Copy the full SHA
    8dcea0d View commit details
  3. Merge pull request ddclient#783 from indrajitr/eval-cmd-skip

    Make 'cmd-skip' warning message consistent for IPv4 and IPv6
    rhansen authored Jan 9, 2025
    Copy the full SHA
    17fc4c0 View commit details

Commits on Jan 10, 2025

  1. Do not use quotemeta on cmdv4 and cmdv6 arguments

    `quotemeta` prevents executing commands with arguments.  With this
    change, it is now possible to get an IP address with:
    
        usev4=cmdv4
        cmdv4="dig +short myip.opendns.com @resolver1.opendns.com"
    steven authored and rhansen committed Jan 10, 2025
    Copy the full SHA
    ae01ba2 View commit details
49 changes: 49 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Pull Request
on:
pull_request:
types:
- labeled
- opened
- reopened
- synchronize
- unlabeled

jobs:
linear-history:
if: ${{ !contains(github.event.pull_request.labels.*.name, 'pr-permit-nonlinear') }}
name: Linear History
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: No new merge commits
run: |
log() { printf %s\\n "$*" >&2; }
error() { log "ERROR: $@"; }
fatal() { error "$@"; exit 1; }
try() { log "Running command $@"; "$@" || fatal "'$@' failed"; }
out=$(try git rev-list -n 1 --merges '${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}') || exit 1
[ -z "${out}" ] || {
error "pull request includes a merge commit and does not have the 'pr-permit-nonlinear' label"
git show "${out}" >&2
exit 1
}
no-autosquash:
if: ${{ !contains(github.event.pull_request.labels.*.name, 'pr-permit-autosquash') }}
name: No --autosquash commits
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 'No commits with messages starting with "fixup!", "squash!", or "amend!"'
run: |
log() { printf %s\\n "$*" >&2; }
error() { log "ERROR: $@"; }
fatal() { error "$@"; exit 1; }
try() { log "Running command $@"; "$@" || fatal "'$@' failed"; }
out=$(try git log --oneline '${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}') || exit 1
! grep -E '^[^ ]* (fixup|squash|amend)!' <<EOF || fatal "--autosquash commits not allowed without the 'pr-permit-autosquash' label"
${out}
EOF
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -7,8 +7,11 @@ release
/Makefile.in
/aclocal.m4
/autom4te.cache/
/build-aux/config.guess
/build-aux/config.sub
/build-aux/install-sh
/build-aux/missing
/build-aux/tap-driver.sh
/config.log
/config.status
/configure
28 changes: 14 additions & 14 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -80,7 +80,7 @@ perltidy -l=99 -conv -ci=4 -ola -ce -nbbc -kis -pt=2 -b ddclient

## Git Hygiene

* Please keep your pull request commits rebased on top of master.
* Please keep your pull request commits rebased on top of `main`.
* Please use `git rebase -i` to make your commits easy to review:
- Put unrelated changes in separate commits
- Squash your fixup commits
@@ -190,11 +190,11 @@ better to revert the original change then redo it:

### Merging Pull Requests

To facilitate reviews and code archaeology, `master` should have a
To facilitate reviews and code archaeology, `main` should have a
semi-linear commit history like this:

```
* f4e6e90 sandro.jaeckel@gmail.com 2020-05-31 07:29:51 +0200 (master)
* f4e6e90 sandro.jaeckel@gmail.com 2020-05-31 07:29:51 +0200 (main)
|\ Merge pull request #142 from rhansen/config-line-format
| * 30180ed rhansen@rhansen.org 2020-05-30 13:09:38 -0400
|/ Expand comment documenting config line format
@@ -231,7 +231,7 @@ has value:
change was made) and the merge timestamp (when it went live).
To achieve a history like the above, the pull request must be rebased
onto `master` before merging. Unfortunately, GitHub does not have a
onto `main` before merging. Unfortunately, GitHub does not have a
one-click way to do this (the "Rebase and merge" option does a
fast-forward merge, which is not what we want). See
[isaacs/github#1143](https://github.com/isaacs/github/issues/1143) and
@@ -254,15 +254,15 @@ git remote set-url origin git@github.com:ddclient/ddclient.git
# Add a remote for the fork used in the PR
git remote add "${PR_USER:?}" git@github.com:"${PR_USER:?}"/ddclient
# Fetch the latest commits for the PR and ddclient master
# Fetch the latest commits for the PR and ddclient main
git remote update -p
# Switch to the pull request branch
git checkout -b "${PR_USER:?}-${PR_BRANCH:?}" "${PR_USER:?}/${PR_BRANCH:?}"
# Rebase the commits (optionally using -i to clean up history) onto
# the current ddclient master branch
git rebase origin/master
# the current ddclient main branch
git rebase origin/main
# Force update the contributor's fork. This will only work if the
# contributor has checked the "Allow edits by maintainers" box in the
@@ -276,19 +276,19 @@ git push -f
# "Allow edits by maintainers", or if you prefer to merge manually,
# continue with the next steps.
# Switch to the local master branch
git checkout master
# Switch to the local main branch
git checkout main
# Make sure the local master branch is up to date
git merge --ff-only origin/master
# Make sure the local main branch is up to date
git merge --ff-only origin/main
# Merge in the rebased pull request branch **WITHOUT DOING A
# FAST-FORWARD MERGE**
git merge --no-ff "${PR_USER:?}-${PR_BRANCH:?}"
# Review the commits before pushing
git log --graph --oneline --decorate origin/master..
git log --graph --oneline --decorate origin/main..
# Push to ddclient master
git push origin master
# Push to ddclient main
git push origin main
```
45 changes: 43 additions & 2 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,50 @@
# ChangeLog

This document describes notable changes. For details, see the [source code
repository history](https://github.com/ddclient/ddclient/commits/master).
repository history](https://github.com/ddclient/ddclient/commits/main).

## v4.0.0~alpha (unreleased work-in-progress)
## v4.0.1-alpha (unreleased work-in-progress)

## 2025-01-19 v4.0.0

### Breaking changes

* ddclient now looks for `ddclient.conf` in `${sysconfdir}/ddclient` by
default instead of `${sysconfdir}`.
[#789](https://github.com/ddclient/ddclient/pull/789)

To retain the previous behavior, pass `'--with-confdir=${sysconfdir}'` to
`configure`. For example:

```shell
# Before v4.0.0:
./configure --sysconfdir=/etc
# Equivalent with v4.0.0 and later (the single quotes are intentional):
./configure --sysconfdir=/etc --with-confdir='${sysconfdir}'
```

or:

```shell
# Before v4.0.0:
./configure --sysconfdir=/etc/ddclient
# Equivalent with v4.0.0 and later:
./configure --sysconfdir=/etc
```

* The `--ssl` option is now enabled by default.
[#705](https://github.com/ddclient/ddclient/pull/705)
* Unencrypted (plain) HTTP is now used instead of encrypted (TLS) HTTP if the
URL uses `http://` instead of `https://`, even if the `--ssl` option is
enabled. [#608](https://github.com/ddclient/ddclient/pull/608)
* The string argument to `--cmdv4` or `--cmdv6` is now executed as-is by the
system's shell, matching the behavior of the deprecated `--cmd` option.
This makes it possible to pass command-line arguments, which reduces the
need for a custom wrapper script. Beware that the string is also subject to
the shell's command substitution, quote handling, variable expansion, field
splitting, etc., so you may need to add extra escaping to ensure that any
special characters are preserved literally.
[#766](https://github.com/ddclient/ddclient/pull/766)
* The default web service for `--webv4` and `--webv6` has changed from Google
Domains (which has shut down) to ipify.
[5b104ad1](https://github.com/ddclient/ddclient/commit/5b104ad116c023c3760129cab6e141f04f72b406)
@@ -53,6 +86,8 @@ repository history](https://github.com/ddclient/ddclient/commits/master).

### New features

* New `--mail-from` option to control the "From:" header of email messages.
[#565](https://github.com/ddclient/ddclient/pull/565)
* Simultaneous/separate updating of IPv4 (A) records and IPv6 (AAAA) records
is now supported in the following services: `gandi`
([#558](https://github.com/ddclient/ddclient/pull/558)), `nsupdate`
@@ -97,6 +132,10 @@ repository history](https://github.com/ddclient/ddclient/commits/master).
[#719](https://github.com/ddclient/ddclient/pull/719)
* `directnic`: Added support for updatng Directnic records.
[#726](https://github.com/ddclient/ddclient/pull/726)
* `porkbun`: The update URL hostname is now configurable via the `server`
option. [#752](https://github.com/ddclient/ddclient/pull/752)
* `dnsexit2`: Multiple hosts are updated in a single API call when possible.
[#684](https://github.com/ddclient/ddclient/pull/684)
### Bug fixes
@@ -164,6 +203,8 @@ repository history](https://github.com/ddclient/ddclient/commits/master).
[#721](https://github.com/ddclient/ddclient/pull/721)
* `dyndns2`: Fixed handling of responses for multi-host updates.
[#728](https://github.com/ddclient/ddclient/pull/728)
* `porkbun`: The default update URL was updated from `porkbun.com` to
`api.porkbun.com`. [#752](https://github.com/ddclient/ddclient/pull/752)
## 2023-11-23 v3.11.2
28 changes: 13 additions & 15 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ACLOCAL_AMFLAGS = -I m4
ACLOCAL_AMFLAGS = -I build-aux/m4
EXTRA_DIST = \
CONTRIBUTING.md \
COPYING \
@@ -16,27 +16,22 @@ EXTRA_DIST = \
sample-get-ip-from-fritzbox
CLEANFILES =

# Command that replaces substitution variables with their values.
subst = sed \
-e 's|@PACKAGE_VERSION[@]|$(PACKAGE_VERSION)|g' \
-e '1 s|^\#\!.*perl$$|\#\!$(PERL)|g' \
-e 's|@localstatedir[@]|$(localstatedir)|g' \
-e 's|@runstatedir[@]|$(runstatedir)|g' \
-e 's|@sysconfdir[@]|$(sysconfdir)|g' \
-e 's|@CURL[@]|$(CURL)|g'

# Files that will be generated by passing their *.in file through
# $(subst).
subst_files = ddclient ddclient.conf

EXTRA_DIST += $(subst_files:=.in)
CLEANFILES += $(subst_files)

$(subst_files): Makefile
rm -f '$@' '$@'.tmp
in='$@'.in; \
test -f "$${in}" || in='$(srcdir)/'$${in}; \
$(subst) "$${in}" >'$@'.tmp && \
sed \
-e 's|@PACKAGE_VERSION[@]|$(PACKAGE_VERSION)|g' \
-e '1 s|^#\!.*perl$$|#\!$(PERL)|g' \
-e 's|@localstatedir[@]|$(localstatedir)|g' \
-e 's|@confdir[@]|$(confdir)|g' \
-e 's|@runstatedir[@]|$(runstatedir)|g' \
-e 's|@CURL[@]|$(CURL)|g' \
"$${in}" >'$@'.tmp && \
{ ! test -x "$${in}" || chmod +x '$@'.tmp; }
mv '$@'.tmp '$@'

@@ -45,7 +40,7 @@ ddclient.conf: $(srcdir)/ddclient.conf.in

bin_SCRIPTS = ddclient

sysconf_DATA = ddclient.conf
conf_DATA = ddclient.conf

install-data-local:
$(MKDIR_P) '$(DESTDIR)$(localstatedir)'/cache/ddclient
@@ -82,6 +77,7 @@ handwritten_tests = \
t/skip.pl \
t/ssl-validate.pl \
t/update_nics.pl \
t/use_cmd.pl \
t/use_web.pl \
t/variable_defaults.pl \
t/write_recap.pl
@@ -161,7 +157,9 @@ EXTRA_DIST += $(handwritten_tests) \
t/lib/ddclient/Test/Fake/HTTPD/dummy-ca-cert.pem \
t/lib/ddclient/Test/Fake/HTTPD/dummy-server-cert.pem \
t/lib/ddclient/Test/Fake/HTTPD/dummy-server-key.pem \
t/lib/ddclient/Test/Fake/HTTPD/other-ca-cert.pem \
t/lib/ddclient/t.pm \
t/lib/ddclient/t/HTTPD.pm \
t/lib/ddclient/t/Logger.pm \
t/lib/ddclient/t/ip.pm \
t/lib/ok.pm
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -105,7 +105,7 @@ operating system. See the image to the right for a list of distributions with a
```shell
./configure \
--prefix=/usr \
--sysconfdir=/etc/ddclient \
--sysconfdir=/etc \
--localstatedir=/var
make
make VERBOSE=1 check
26 changes: 12 additions & 14 deletions autogen
Original file line number Diff line number Diff line change
@@ -7,18 +7,16 @@ fatal() { error "$@"; exit 1; }
try() { "$@" || fatal "'$@' failed"; }

try cd "${0%/*}"
try mkdir -p m4 build-aux
# aclocal complains if a directory passed to AC_CONFIG_MACRO_DIR doesn't exist.
try mkdir -p build-aux/m4
# autoreconf's '--force' option doesn't affect any of the files installed by the '--install' option.
# Remove the files to truly force them to be updated.
try rm -f \
aclocal.m4 \
build-aux/config.guess \
build-aux/config.sub \
build-aux/install-sh \
build-aux/missing \
build-aux/tap-driver.sh \
;
try autoreconf -fviW all

# Ignore changes to build-aux/tap-driver, but only if we're in a clone
# of the ddclient Git repository. Once CentOS 6 and RHEL 6 reach
# end-of-life we can delete build-aux/tap-driver.sh and this block of
# code. (tap-driver.sh is checked in to this Git repository only
# because we want to support all currently maintained CentOS and RHEL
# releases, and CentoOS 6 and RHEL 6 ship with Automake 1.11 which
# does not come with tap-driver.sh.)
command -v git >/dev/null || exit 0
git rev-parse --is-inside-work-tree >/dev/null 2>&1 || exit 0
cdup=$(try git rev-parse --show-cdup) || exit 1
[ -z "${cdup}" ] || exit 0
try git update-index --assume-unchanged -- build-aux/tap-driver.sh
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading