Debian Package Tracker
Register | Log in
Subscribe

httrack

Copy websites to your computer (Offline browser)

Choose email to subscribe with

general
  • source: httrack (main)
  • version: 3.49.14-1
  • maintainer: Xavier Roche (DMD)
  • arch: all any
  • std-ver: 4.7.4
  • VCS: Git (Browse, QA)
versions [more versions can be listed by madison] [old versions available from snapshot.debian.org]
[pool directory]
  • o-o-stable: 3.49.2-1.1
  • oldstable: 3.49.4-1
  • stable: 3.49.6-1
  • testing: 3.49.13-1
  • unstable: 3.49.14-1
versioned links
  • 3.49.2-1.1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.49.4-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.49.6-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.49.13-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.49.14-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
binaries
  • httrack
  • httrack-doc
  • libhttrack-dev
  • libhttrack3
  • proxytrack
  • webhttrack
  • webhttrack-common
action needed
14 new commits since last upload, is it time to release? normal
vcswatch reports that this package seems to have new commits in its VCS but has not yet updated debian/changelog. You should consider updating the Debian changelog and uploading this new version into the archive.

Here are the relevant commit logs:
commit cb98b1b19749c6e5eaa53730e0300e724448005f
Author: Xavier Roche <roche@httrack.com>
Date:   Sun Jul 26 15:43:17 2026 +0200

    Fatal-signal backtraces are unreadable: every engine frame is a bare module+offset (#705)
    
    * Symbolize fatal-signal backtraces through addr2line
    
    backtrace_symbols_fd() resolves names from .dynsym only, and
    -fvisibility=hidden keeps every engine frame out of it, so a crash report
    arrived as a column of bare module+offset. The handler now emits the raw trace
    first and unconditionally, then groups the frames per module and runs addr2line
    (or llvm-symbolizer) over the offsets, which reads DWARF and names the static
    frames plus their inline chain.
    
    -rdynamic is dropped: it only populated .dynsym and bought exactly one named
    frame. -Wl,--build-id replaces it, so a trace from a stripped build can be
    matched to its debug symbols.
    
    Signed-off-by: Xavier Roche <xroche@gmail.com>
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * Move the crash backtrace printer into src/htsbacktrace.c
    
    httrack.c keeps only the two call sites. The symbolizer needs _GNU_SOURCE for
    dladdr(), which is now confined to its own translation unit instead of being
    forced on the whole CLI front-end.
    
    Signed-off-by: Xavier Roche <xroche@gmail.com>
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * Test: match glibc's backtrace format with or without the space
    
    backtrace_symbols_fd() prints the trailing "[0xADDR]" with a leading space on
    some glibc versions and without on others (Ubuntu 24.04), so the raw-frame
    assertion failed everywhere but the dev box. Match only up to the offset.
    
    Signed-off-by: Xavier Roche <xroche@gmail.com>
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * Skip pseudo-modules with no file on disk
    
    A frame in linux-vdso.so.1 made addr2line complain instead of resolving, so
    the arm64 leg lost its symbolized output entirely. Renumber the test too:
    77 landed on master with #700.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * Stop discarding local symbols, which made the names wrong
    
    --discard-all drops the local symbol of every static function, so addr2line
    attributes the frame to the nearest surviving global: the abort frame read
    dns_timeout_selftests instead of abortf_, with the file and line still right.
    A wrong name is worse than none, and because the symbols go at link time no
    -dbgsym package can recover them. Costs 21784 bytes on libhttrack.so.3, 0.6%.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * Symbolize once when the handler itself faults
    
    A fault inside the handler re-enters the printer, which interleaved a second
    symbolized trace on the same fd and spent a second budget: 3.04s and two
    overlapping reports, measured.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    ---------
    
    Signed-off-by: Xavier Roche <xroche@gmail.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit da8fbfff4941b60443a289cd21c40cfb47a7a0bf
Author: Xavier Roche <roche@httrack.com>
Date:   Sun Jul 26 14:49:29 2026 +0200

    Fix dead array-address checks and discarded-qualifier casts (-Waddress, -Wcast-qual) (#703)
    
    * Drop NULL tests on inline array members
    
    `lien_back::url_sav`, `htsblk::msg` and POSIX `dirent::d_name` are arrays,
    so testing their address folds to a constant and gcc/clang report it
    (-Waddress, -Wpointer-bool-conversion). Every site keeps whatever real
    condition sat beside the dead one, so behavior is unchanged.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * help_wizard: check the allocation, not the arrays it contains
    
    The out-of-memory guard has been constant-false since d593418 folded the
    nine separate wizard buffers into one struct: the names it tests are now
    inline arrays, so `malloct()`'s result is never checked and an exhausted
    heap gets a NULL-page write instead of the intended message. Also switch
    the raw free() to freet() and release the struct on the two early returns
    that leaked it.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * proxytrack: test the WebDAV header fields, not their addresses
    
    `PT_Element::lastmodified` and `::contenttype` are inline arrays, so both
    `if`s were constant-true (-Waddress); use the `[0]` form the same file
    already uses when it emits the GET headers. Neither is observable:
    get_time_rfc822("") returns 0 and falls through to the index timestamp,
    and proxytrack_add_DAV_Item already substitutes application/octet-stream
    for an empty mime, which a PROPFIND probe against a cache entry carrying
    no Content-Type confirms both before and after.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * Fix the discarded const qualifiers rather than casting them away
    
    `binput` and `cache_binput` only ever read through their source pointer,
    so they take `const char *` now; that alone clears the cast in
    htsrobots.c, and neither is exported nor declared in an installed header,
    so no ABI question arises. `treathead` keeps `char *rcvd` because it does
    NUL-cut the header in place, and the two selftest calls that fed it a
    string literal get a mutable buffer instead, matching their three
    siblings and removing a latent write to .rodata. The remaining two are
    one-liners: zlib's `next_in` is already `const` under -DZLIB_CONST, and
    htsback can call the non-const `jump_protocol` twin on its mutable
    `url_adr`. libhttrack.vcxproj gains ZLIB_CONST so the MSVC build agrees
    with autotools, as webhttrack and proxytrack already do.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * tests: prove the WebDAV mime/timestamp fallback survives an empty field
    
    proxytrack's DAV PROPFIND response computes a fallback content-type and
    timestamp when a cache entry has no Content-Type/Last-Modified; that
    fallback already existed before commit eae1dd0 changed the surrounding
    always-true array-address checks, so this test guards the equivalence
    rather than a bug. Verified it fails when the fallback default is
    disabled, and passes unmodified against the pre-eae1dd0 code too.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * tests: bound the PROPFIND request and cut the header comment
    
    curl had no --max-time; an unbounded read wedges the runner instead of
    failing it.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * tests: skip the WebDAV mime test on Windows
    
    It is the first test to run proxytrack as a live listener, and MSYS cannot
    reap a native one: the orphan wedged the whole Windows suite past its
    45-minute budget, twice, destroying the log upload with it.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    ---------
    
    Signed-off-by: Xavier Roche <roche@httrack.com>
    Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit a7fbd3f739e56209677644ee962736975696b1f7
Author: Xavier Roche <roche@httrack.com>
Date:   Sun Jul 26 13:59:15 2026 +0200

    htsserver builds the redirect Location header in a 256-byte stack buffer (#700)
    
    * htsserver builds the redirect Location header in a 256-byte stack buffer
    
    The POST redirect path checks strlen(file) but sprintf's newfile, which comes
    straight from the client's "redirect" POST field with no length cap. A 300-byte
    value overflows tmp[256]. The same value reached the Location header with no
    CR/LF check, so it could split the response and inject headers.
    
    Append into the dynamic String the other headers already use, and drop the
    header entirely when the value carries a CR or LF.
    
    The listen socket was SOCaddr_initany, so the server answered the LAN and not
    just the local browser it exists to serve. Bind 127.0.0.1 by default, with
    --bind <addr> to widen it again, resolved through the existing gethost() helper
    the way proxytrack already does.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * tests: satisfy shellcheck and shfmt in the new server test
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * tests: drop the pre-fix narration from the oversized-value comment
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * tests: assert the bound socket, not the announced URL
    
    The listen-address assertions only compared the URL= banner, which is a
    literal echo of argv: a build that announced 127.0.0.1 while binding the
    wildcard passed. Probe 127.0.0.2 on the same port instead, which a wildcard
    listener takes and a loopback-only one leaves free.
    
    Also refuse an empty --bind, which fell through to every interface and
    silently undid the new default.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * tests: bound the response read and the empty --bind run
    
    The recv() loop had no timeout and read until EOF; htsserver need not close
    the connection after responding, which wedged the macOS runner for over an
    hour. Stop at the end of the header block, which is all the test reads.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * htsserver: the session id must gate the request body, not the reply
    
    Every field of a POST body is written straight into the one global key store
    the templates and the command dispatcher both read, and "command" from there
    reaches the engine. The gate ran after that write and compared "sid" against
    "_sid" -- but "_sid" is copied into "sid" beforehand so the templates can
    render it, so a request that simply omitted the field compared equal to
    itself. Only a wrong id was refused; an absent one passed. Clearing the reply
    afterwards does not help either, because the dispatcher sits outside the reply
    guard.
    
    Authenticate before parsing instead: scan the raw body for "sid", require at
    least one occurrence and reject if any of them differs, and drop the body
    untouched when it does not match. That leaves the shared template key alone,
    and it closes the dispatcher for free.
    
    A refused request also emitted only a Content-length line, since the status
    line for that branch was behind _DEBUG. Any client reads that as a protocol
    error, which is how test 68 failed rather than reporting the refusal. Send a
    403 instead.
    
    Tests 68 and 77 posted without an id, which is what the engine used to accept,
    so both now fetch the one the server renders into the form. Test 78 covers
    accept, missing, empty and wrong, asserts the 403, and probes the key store
    through ${projname} rather than the suppressed reply -- a reply-only assertion
    passes even when the write goes through.
    
    Also fix a leak that hung macOS CI: start() runs inside a command
    substitution, so its $! never reached the parent and stop() guarded on an
    empty variable, leaving one htsserver per call. Test 77 starts four, which is
    exactly the four orphans the runner reported while sitting for half an hour
    behind a green test log. Take the pid from the PID= line the server already
    announces.
    
    Signed-off-by: Xavier Roche <xroche@gmail.com>
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    
    ---------
    
    Signed-off-by: Xavier Roche <roche@httrack.com>
    Signed-off-by: Xavier Roche <xroche@gmail.com>
    Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit c4b803eb33cd83b5c2e35ffe7c4061e0995910a9
Author: Xavier Roche <roche@httrack.com>
Date:   Sun Jul 26 13:23:03 2026 +0200

    -%S list file over 4GB overflows the heap (#702)
    
    * -%S list file over 4GB overflows the heap
    
    hts_main_internal() sized the -%S buffer as `cl + fz + 8192` and stored
    the sum in an int url_sz, then fread() the untruncated 64-bit fz into it.
    A 4GB+100KB rules file wraps the capacity to 110602 bytes on x64, the
    realloct() succeeds, and the read walks off the heap. Intermediate sizes
    land on a negative int and fail the allocation, which is luck, not design.
    
    Route the file-size arithmetic through llint_grow_size_t(), a saturating
    sibling of llint_to_size_t() that refuses a total it cannot represent, and
    widen url_sz and the filelist offsets to size_t. The "config" sizing in the
    same function and htscore.c's primary_len had the same shape: a file size
    accumulated into an int before reaching an allocator. htscache.c's two
    mirrored-file comparisons held a 64-bit fsize_utf8() in a size_t, which
    truncates on Win32 and re-downloads a >4GB file already on disk.
    
    Found by MSVC C4244 on x64; invisible to gcc/clang because int64_t to
    size_t is width-preserving on LP64.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * Print T_SOC with the format matching its width, not a bare %d
    
    T_SOC is unsigned __int64 on Win64 (htsglobal.h): passing it to fprintf's
    %d is undefined behavior, flagged by MSVC C4477. Add T_SOCP beside the
    typedef, following the existing LLintP/INTsysP precedent, and use it at
    both deletesoc() call sites (htslib.c:2601, :2607).
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * Fix MSVC C2099 in the new growsize self-test
    
    A static const object used inside another object's static initializer is a
    GNU/clang extension, not standard C: MSVC's /TC C mode rejects it ("initializer
    is not a constant"). Replace the over32 local with a macro.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * tests: cover the slack-only overrun and the largest capacity
    
    A helper dropping the slack bound passed the table; -1 as extra also refused
    either way, since llint_to_size_t() maps it to SIZE_MAX regardless.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    ---------
    
    Signed-off-by: Xavier Roche <roche@httrack.com>
    Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit 408316db99f63a2cc1bb2d1e281fa3121e783449
Author: Xavier Roche <roche@httrack.com>
Date:   Sun Jul 26 11:31:45 2026 +0200

    ARC cache replays a truncated HTTP reason phrase (#701)
    
    * ARC cache replays a truncated HTTP reason phrase
    
    proxytrack bounded the reason-phrase copy out of an ARC index by
    sizeof(pos) - 1 where pos is a const char *, so a stored "404 Not Found"
    replays as "404 Not Fou" (and "404 Not" on 32-bit). Use strncatbuff with
    the destination's own size.
    
    Fold the nine copies of the buff() family's source-capacity expression
    into HTS_SIZEOF_SRC_, applying sizeof to the type so a decayed operand no
    longer trips -Wsizeof-array-decay at five call sites; MSVC keeps the old
    expression behind the guard HTS_IS_CHAR_BUFFER already uses. The two
    other raw strncat calls become strncatbuff, htsbuff_catn stops handing
    strnlen the (size_t)-1 sentinel, and htsweb.c no longer compares ep
    against a NULL eps.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * Size the new strsafe buffers away from sizeof(char*)
    
    char[8] equals a pointer on LP64, so MSVC's array-vs-pointer heuristic
    read the unterminated source as a pointer, skipped the bound and never
    aborted; the x64 build failed while Win32 passed. Same trap the existing
    comment in that function already warns about.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    ---------
    
    Signed-off-by: Xavier Roche <roche@httrack.com>
    Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit 450db10d926734d02aad03b8ade0b867181c2f99
Author: Xavier Roche <roche@httrack.com>
Date:   Sun Jul 26 11:24:36 2026 +0200

    Compiler-flag probes accept flags clang only warns about, and -rdynamic never reaches the linker (#699)
    
    * configure: fix flag probes, move -rdynamic to the link line
    
    AX_CHECK_COMPILE_FLAG only checks the exit status, and clang merely warns on
    an unknown -W name, so -Wmissing-parameter-type reached every clang build and
    warned on all 66 TUs. Probe with -Werror; -Wformat-nonliteral also needs
    -Wformat there or gcc rejects it and the flag would be lost.
    
    -rdynamic lived in DEFAULT_CFLAGS, i.e. AM_CPPFLAGS, so no link line ever saw
    it; make it a link check. Drop -pie from CFLAGS_PIE (LDFLAGS_PIE has it), and
    drop -Wdeclaration-after-statement, a C90 rule the gnu17 build does not follow
    anywhere else.
    
    Distinct build warnings: gcc 82 -> 54, clang 54 -> 41.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * configure: tighten the two new flag-block comments
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    ---------
    
    Signed-off-by: Xavier Roche <roche@httrack.com>
    Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit dfdf10e7fd48de0dff640f73f89d00fabc81fb9a
Author: Xavier Roche <roche@httrack.com>
Date:   Sun Jul 26 09:11:12 2026 +0200

    No UTF-8 to system-codepage conversion is exported to the Windows GUI (#698)
    
    WinHTTrack is an MBCS build, so it still lands on the ANSI-only Win32 entry points (TTN_NEEDTEXTA and the like) while the engine hands it UTF-8. The other direction is already exported as `hts_convertStringSystemToUTF8`, so this adds the mirror, `hts_convertStringUTF8ToSystem`, a one-liner over the existing `hts_convertStringCPFromUTF8`. The GUI can then delegate instead of keeping its own MultiByteToWideChar/WideCharToMultiByte copy (`CopyTextUTF8ToCP` in newlang.cpp, added while fixing #114). `hts_convertStringFromUTF8` would also have done the job, but it is declared plain `extern` and never reaches the DLL export table; left alone here. Windows-only addition, so no POSIX ABI change and no soname move.
    
    The new `-#test=syscharset` self-test round-trips against the raw Win32 two-step it replaces, and skips off Windows.
    
    Signed-off-by: Xavier Roche <roche@httrack.com>
    Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit 7fe073e9fb81eb18aec4c3380849904d1f6a94c2
Author: Xavier Roche <roche@httrack.com>
Date:   Sun Jul 26 08:56:26 2026 +0200

    CLI display does not repaint when the terminal is resized (#697)
    
    * CLI: redraw the whole screen when the terminal is resized
    
    The animated -%v display assumed a fixed 80x24 layout: it cleared the screen
    once at start, and afterwards cleared only to end of line on the rows it
    wrote. A resize left stale wrapped text around the frame, and on a terminal
    shorter than the 20-row frame the stats block scrolled off the top at every
    refresh.
    
    Poll the terminal geometry at each refresh (TIOCGWINSZ, or the console screen
    buffer info on Windows) and repaint in full when it moved. The in-progress
    list is capped to the rows that fit, and the URL column follows the width; it
    stays at the historical 40 characters on an 80-column terminal.
    
    Closes #97
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * tests: assert the resize repaint, the row clamp and the URL width
    
    The first pass only checked that a clear-screen followed one resize, which a
    display clearing on every frame passes just as well, and neither the row clamp
    nor the URL budget was exercised at all: the single 24x80 to 40x100 resize
    leaves both at their 80x24 values.
    
    The harness now waits for the display instead of sleeping, resizes width and
    height separately, and asserts a repaint after each one, none in between, a
    frame that fits a 10-row terminal, and a long URL that stops being truncated at
    200 columns. The long path is a new /trickle/deep route, so the shared
    /trickle/ index other tests assert on stays untouched. Mutating any of the four
    behaviors away fails the test.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    ---------
    
    Signed-off-by: Xavier Roche <roche@httrack.com>
    Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit f47359247d3a9e29355e36b4027c9fdfb6000309
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sun Jul 26 08:37:41 2026 +0200

    Bump actions/checkout from 6 to 7 (#696)
    
    Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/actions/checkout/compare/v6...v7)
    
    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-version: '7'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit dfc72fdbc66a923cc2f05c65e64b534ee9bb6582
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sun Jul 26 08:04:17 2026 +0200

    Bump actions/cache from 4 to 6 (#695)
    
    Bumps [actions/cache](https://github.com/actions/cache) from 4 to 6.
    - [Release notes](https://github.com/actions/cache/releases)
    - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
    - [Commits](https://github.com/actions/cache/compare/v4...v6)
    
    ---
    updated-dependencies:
    - dependency-name: actions/cache
      dependency-version: '6'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 8ed607b078b854eafb3db26a172433b21f16ded5
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sun Jul 26 08:04:14 2026 +0200

    Bump actions/upload-artifact from 4 to 7 (#694)
    
    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)
    
    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-version: '7'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 0708bf9f9885b3b1e8c9d05160b065dfde2398c8
Author: Xavier Roche <roche@httrack.com>
Date:   Sat Jul 25 10:17:54 2026 +0200

    CI: let Dependabot track GitHub Actions versions (#693)
    
    Dependabot only watched vcpkg, so the action pins drifted by hand:
    windows-build.yml sat on actions/checkout@v4 while everything else moved to
    v6. Add the github-actions ecosystem and bump that stray checkout to v6.
    
    Signed-off-by: Xavier Roche <roche@httrack.com>
    Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

commit 301d7717be027381142bdbef7baaeb88a2f8f1f6
Author: Xavier Roche <roche@httrack.com>
Date:   Sat Jul 25 10:17:14 2026 +0200

    Windows CI: cache vcpkg binary archives across runs (#692)
    
    vcpkg builds openssl/brotli/zlib/zstd from source on every Windows run.
    Redirect its files binary cache into the workspace and persist it with
    actions/cache, keyed on the manifest (which carries the builtin-baseline).
    
    x-gha, which used to do this, was dropped from vcpkg-tool (#1662) after
    GitHub changed the Actions cache API; actions/cache over the archive dir is
    the endorsed replacement and stays within the GitHub-owned-actions policy.
    
    Signed-off-by: Xavier Roche <roche@httrack.com>
    Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

commit e13f0f10c9b72a24910576eec3ef78a584dacc15
Author: Xavier Roche <roche@httrack.com>
Date:   Fri Jul 24 15:31:29 2026 +0200

    Drop the removed Java .class parser from the credits (#691)
    
    * Drop the removed Java .class parser from the credits
    
    The Java binary .class parser was removed in #552, but its credit lingered:
    "JavaParserClasses: Yann Philippot" in the WinHTTrack About box (lang.def plus
    every lang/*.txt), and "for the java binary .class parser" in greetings.txt and
    the contact page. Remove the About-box line and the now-defunct descriptor,
    keeping Yann Philippot's name in the developed-by acknowledgments.
    
    lang.def and lang/*.txt are read as strict line pairs, so the edit deletes the
    substring inside the single credits line rather than removing any line, keeping
    the pairing intact and each translated file's English msgid in lockstep with
    lang.def. Verified by tests/62_lang-integrity.test.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * Also drop the localized java-parser credit from the translations
    
    The About box shows the translation (msgstr), not the English msgid. The first
    pass only removed the literal English "JavaParserClasses: Yann Philippot", so the
    12 files whose translators localized the credit (Chinese, French, Russian,
    Turkish, ...) still displayed it. Remove the localized credit line from each of
    those msgstrs too; the pairing and every English msgid are untouched.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * Reword Yann Philippot's credit as a past contributor
    
    Dropping the descriptor left a bare name in the developed-by list. Mark the
    java binary .class parser as a past contribution instead, keeping the
    acknowledgment meaningful now that the code is gone.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    * contact.html: use a literal dot in .class
    
    The " dot " spelling is the page's email anti-harvest obfuscation; applied to a
    filename extension it just left a stray double space. The page already writes
    literal dots elsewhere (v2.0, v3.0).
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Signed-off-by: Xavier Roche <roche@httrack.com>
    
    ---------
    
    Signed-off-by: Xavier Roche <roche@httrack.com>
    Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Created: 2026-07-25 Last update: 2026-07-26 14:35
testing migrations
  • This package will soon be part of the auto-openssl transition. You might want to ensure that your package is ready for it. You can probably find supplementary information in the debian-release archives or in the corresponding release.debian.org bug.
  • excuses:
    • Migration status for httrack (3.49.13-1 to 3.49.14-1): Waiting for test results or another package, or too young (no action required now - check later)
    • Issues preventing migration:
    • ∙ ∙ Too young, only 2 of 5 days old
    • Additional info (not blocking):
    • ∙ ∙ Piuparts tested OK - https://piuparts.debian.org/sid/source/h/httrack.html
    • ∙ ∙ Reproduced on amd64 - info
    • ∙ ∙ Reproduced on arm64 - info
    • ∙ ∙ Reproduced on armhf - info
    • ∙ ∙ Reproduced on i386 - info
    • Not considered
news
[rss feed]
  • [2026-07-24] Accepted httrack 3.49.14-1 (source) into unstable (Xavier Roche)
  • [2026-07-23] httrack 3.49.13-1 MIGRATED to testing (Debian testing watch)
  • [2026-07-18] Accepted httrack 3.49.13-1 (source) into unstable (Xavier Roche)
  • [2026-07-16] httrack 3.49.12-1 MIGRATED to testing (Debian testing watch)
  • [2026-07-10] Accepted httrack 3.49.12-1 (source) into unstable (Xavier Roche)
  • [2026-07-10] httrack 3.49.11-1 MIGRATED to testing (Debian testing watch)
  • [2026-07-04] Accepted httrack 3.49.11-1 (source) into unstable (Xavier Roche)
  • [2026-07-04] httrack 3.49.10-2 MIGRATED to testing (Debian testing watch)
  • [2026-06-28] Accepted httrack 3.49.10-2 (source) into unstable (Xavier Roche)
  • [2026-06-28] Accepted httrack 3.49.10-1 (source) into unstable (Xavier Roche)
  • [2026-06-27] httrack 3.49.9-1 MIGRATED to testing (Debian testing watch)
  • [2026-06-22] Accepted httrack 3.49.9-1 (source amd64 all) into unstable (Debian FTP Masters) (signed by: Xavier Roche)
  • [2026-06-22] Accepted httrack 3.49.8-2 (source amd64 all) into unstable (Debian FTP Masters) (signed by: Xavier Roche)
  • [2026-06-20] Accepted httrack 3.49.8-1 (source) into unstable (Xavier Roche)
  • [2026-06-12] httrack 3.49.7-1 MIGRATED to testing (Debian testing watch)
  • [2026-06-06] Accepted httrack 3.49.7-1 (source) into unstable (Xavier Roche)
  • [2025-03-17] httrack 3.49.6-1 MIGRATED to testing (Debian testing watch)
  • [2025-03-11] Accepted httrack 3.49.6-1 (source) into unstable (Xavier Roche)
  • [2024-02-02] httrack 3.49.5-1 MIGRATED to testing (Debian testing watch)
  • [2024-01-27] Accepted httrack 3.49.5-1 (source) into unstable (Xavier Roche)
  • [2023-01-25] httrack 3.49.4-1 MIGRATED to testing (Debian testing watch)
  • [2023-01-14] Accepted httrack 3.49.4-1 (source) into unstable (Xavier Roche)
  • [2023-01-13] Accepted httrack 3.49.3-1 (source) into unstable (Xavier Roche)
  • [2021-01-07] httrack 3.49.2-1.1 MIGRATED to testing (Debian testing watch)
  • [2021-01-01] Accepted httrack 3.49.2-1.1 (source) into unstable (Holger Levsen)
  • [2017-06-20] httrack 3.49.2-1 MIGRATED to testing (Debian testing watch)
  • [2017-05-20] Accepted httrack 3.49.2-1 (source all amd64) into unstable (Xavier Roche)
  • [2017-04-01] Accepted httrack 3.49.1-1 (source all amd64) into unstable (Xavier Roche)
  • [2016-09-04] httrack 3.48.24-1 MIGRATED to testing (Debian testing watch)
  • [2016-08-24] Accepted httrack 3.48.24-1 (source all amd64) into unstable (Xavier Roche)
  • 1
  • 2
bugs [bug history graph]
  • all: 0
links
  • homepage
  • lintian
  • buildd: logs, reproducibility, cross
  • popcon
  • browse source code
  • other distros
  • security tracker
  • screenshots
ubuntu Ubuntu logo [Information about Ubuntu for Debian Developers]
  • version: 3.49.13-1

Debian Package Tracker — Copyright 2013-2025 The Distro Tracker Developers
Report problems to the tracker.debian.org pseudo-package in the Debian BTS.
Documentation — Bugs — Git Repository — Contributing