head	1.10;
access;
symbols
	pkgsrc-2026Q2:1.10.0.4
	pkgsrc-2026Q2-base:1.10
	pkgsrc-2026Q1:1.10.0.2
	pkgsrc-2026Q1-base:1.10
	pkgsrc-2025Q4:1.9.0.4
	pkgsrc-2025Q4-base:1.9
	pkgsrc-2025Q3:1.9.0.2
	pkgsrc-2025Q3-base:1.9
	pkgsrc-2025Q2:1.8.0.2
	pkgsrc-2025Q2-base:1.8
	pkgsrc-2025Q1:1.6.0.2
	pkgsrc-2025Q1-base:1.6
	pkgsrc-2024Q4:1.5.0.2
	pkgsrc-2024Q4-base:1.5
	pkgsrc-2024Q3:1.4.0.8
	pkgsrc-2024Q3-base:1.4
	pkgsrc-2024Q2:1.4.0.6
	pkgsrc-2024Q2-base:1.4
	pkgsrc-2024Q1:1.4.0.4
	pkgsrc-2024Q1-base:1.4
	pkgsrc-2023Q4:1.4.0.2
	pkgsrc-2023Q4-base:1.4
	pkgsrc-2023Q3:1.3.0.2
	pkgsrc-2023Q3-base:1.3
	pkgsrc-2023Q2:1.1.0.4
	pkgsrc-2023Q2-base:1.1
	pkgsrc-2023Q1:1.1.0.2
	pkgsrc-2023Q1-base:1.1;
locks; strict;
comment	@# @;


1.10
date	2026.02.26.12.51.54;	author pin;	state Exp;
branches;
next	1.9;
commitid	M6UlrXhjJ8Mp0TvG;

1.9
date	2025.08.04.09.07.26;	author wiz;	state Exp;
branches;
next	1.8;
commitid	USHjksWqAkBRno5G;

1.8
date	2025.04.10.13.19.49;	author pin;	state Exp;
branches;
next	1.7;
commitid	1kIJWwKN7FpDvvQF;

1.7
date	2025.04.02.10.56.26;	author pin;	state Exp;
branches;
next	1.6;
commitid	dPCBoedg3wFoYsPF;

1.6
date	2025.01.13.20.30.50;	author pin;	state Exp;
branches;
next	1.5;
commitid	yHUwGw4eznCWGmFF;

1.5
date	2024.12.11.09.51.18;	author pin;	state Exp;
branches;
next	1.4;
commitid	hro1lrKvntljd4BF;

1.4
date	2023.10.24.22.09.43;	author wiz;	state Exp;
branches;
next	1.3;
commitid	MTsrqKm6aGrQAVJE;

1.3
date	2023.09.15.13.46.12;	author schmonz;	state Exp;
branches;
next	1.2;
commitid	dItgvb8BlqHD4SEE;

1.2
date	2023.09.15.06.26.14;	author pin;	state Exp;
branches;
next	1.1;
commitid	noXh5oyvvidKDPEE;

1.1
date	2023.03.08.23.45.10;	author nikita;	state Exp;
branches;
next	;
commitid	Xn611d2H7REzwngE;


desc
@@


1.10
log
@mail/himalaya: update to 1.2.0

Added

    Added --quiet flag (#545).
    Added support for custom TLS certificate.
    Added support for multiple config files via HIMALAYA_CONFIG=path1:path2:… (#612).
    Added -d|--downloads-dir argument to attachment download command (#559).
    Added View and View MIME post edit choices (#486).
    Made message send and template send return id (#627).
    Enabled shell expansion for email, IMAP and SMTP login fields, which allows usage of environment variables (#632).

Fixed

    Bumped all deps, fixing rustls-platform-verifier compatibility version issue.
    Fixed invalid fetch with NIL body encoding (#525).
    Fixed freeze when sending large attachments (#593).
    Fixed abusive warn logs from IMAP libs (#552).
    Downgraded toml@@0.8 due to regression (#611).
@
text
@# $NetBSD: Makefile,v 1.9 2025/08/04 09:07:26 wiz Exp $

DISTNAME=	himalaya-1.2.0
CATEGORIES=	mail
MASTER_SITES=	${MASTER_SITE_GITHUB:=pimalaya/}
GITHUB_TAG=	v${PKGVERSION_NOREV}

MAINTAINER=	pkgsrc-users@@NetBSD.org
HOMEPAGE=	https://github.com/pimalaya/himalaya
COMMENT=	Command-line interface for email management
LICENSE=	mit

# See, https://github.com/briansmith/ring/issues/1999
.include "../../mk/compiler/i386-sse2.mk"

USE_LANGUAGES+=	c c++

.include "cargo-depends.mk"

#RUST_REQ=	1.93.1
#Upstream does not state the required MSRV.
#This package is confirmed to build with Rust 1.93.1 on amd64

INSTALLATION_DIRS=	bin
INSTALLATION_DIRS+=	${PKGMANDIR}/man1
INSTALLATION_DIRS+=	share/bash-completion/completions
INSTALLATION_DIRS+=	share/fish/vendor_completions.d
INSTALLATION_DIRS+=	share/zsh/site-functions

MAKE_ENV+=		OPENSSL_DIR=${BUILDLINK_PREFIX.openssl}

BIN_CMD=		${WRKSRC}/target/release/himalaya

pre-install:
	cd ${WRKSRC} && ${BIN_CMD} man ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
	cd ${WRKSRC} && ${BIN_CMD} completion bash > himalaya.bash
	cd ${WRKSRC} && ${BIN_CMD} completion fish > himalaya.fish
	cd ${WRKSRC} && ${BIN_CMD} completion zsh > himalaya.zsh
	#cd ${WRKSRC} && ${BIN_CMD} completion elvish > elvish.txt
	#cd ${WRKSRC} && ${BIN_CMD} completion powershell > powershell.txt

do-install:
	${INSTALL_PROGRAM} ${BIN_CMD} ${DESTDIR}${PREFIX}/bin
	${INSTALL_DATA} ${WRKSRC}/himalaya.bash ${DESTDIR}${PREFIX}/share/bash-completion/completions/himalaya
	${INSTALL_DATA} ${WRKSRC}/himalaya.fish ${DESTDIR}${PREFIX}/share/fish/vendor_completions.d/himalaya.fish
	${INSTALL_DATA} ${WRKSRC}/himalaya.zsh ${DESTDIR}${PREFIX}/share/zsh/site-functions/_himalaya

.include "../../lang/rust/cargo.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
@


1.9
log
@himalaya: use default pkgsrc shell completion directories

Bump PKGREVISION.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.8 2025/04/10 13:19:49 pin Exp $
d3 1
a3 2
DISTNAME=	himalaya-1.1.0
PKGREVISION=	1
d20 1
a20 1
#RUST_REQ=	1.83.0
d22 1
a22 1
#This package is confirmed to build with Rust 1.83.0 on amd64
@


1.8
log
@mail/himalaya: needs sse2
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.7 2025/04/02 10:56:26 pin Exp $
d4 1
d10 1
a10 1
HOMEPAGE=	https://pimalaya.org/himalaya/
a26 1
INSTALLATION_DIRS+=	share/examples/himalaya/completion
d28 2
a29 2
INSTALLATION_DIRS+=	share/fish/completions

d45 3
a47 3
	${INSTALL_DATA} ${WRKSRC}/himalaya.bash ${DESTDIR}${PREFIX}/share/bash-completion/completions/
	${INSTALL_DATA} ${WRKSRC}/himalaya.fish ${DESTDIR}${PREFIX}/share/fish/completions/
	${INSTALL_DATA} ${WRKSRC}/himalaya.zsh ${DESTDIR}${PREFIX}/share/examples/himalaya/completion/
@


1.7
log
@mail/himalaya: not for i386
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.6 2025/01/13 20:30:50 pin Exp $
d14 1
a14 1
NOT_FOR_PLATFORM+=	*-*-i386
@


1.6
log
@mail/himalaya: update to 1.1.0

[1.1.0] - 2025-01-11
Added

    Added -y|--yes flag for folder purge and folder delete commands. #469

Changed

    Put back warn the default log level. #522

    Since logs are sent to stderr, warnings can be easily discarded by prepending commands with RUST_LOG=off or by appending commands with 2>/dev/null.

    Changed message.send.save-copy default to true. #536

    Changed default downloads directory. core#1

Fixed

    Fixed permissions issues when using install.sh. #515
    Fixed de/serialization issues of backends' none variant. #523
    Fixed list envelopes out of bound error when empty result. #535
    Fixed macOS x86_64 builds. #538
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.5 2024/12/11 09:51:18 pin Exp $
d13 3
@


1.5
log
@mail/himalaya: update to 1.0.0

## [1.0.0] - 2024-12-09

The Himalaya CLI scope has changed. It does not include anymore the synchronization, nor the envelope watching. These scopes have moved to dedicated projects:

- [Neverest CLI](https://github.com/pimalaya/neverest), CLI to synchronize, backup and restore emails
- [Mirador CLI](https://github.com/pimalaya/mirador), CLI to watch mailbox changes

Due to the long time difference with the previous `v1.0.0-beta.4` release, this changelog may be incomplete. The simplest way to upgrade is to reconfigure Himalaya CLI from scratch, using the wizard or the [`config.sample.toml`](./config.sample.toml).

Himalaya CLI will now try to adopt the [conventional commits specification](https://github.com/conventional-commits/conventionalcommits.org). Tools like [`git-cliff`](https://git-cliff.org/) may help us generating more accurate changelogs in the future.

### Added

- Added `message edit` command to edit a message. To edit on place (replace a message), use `--on-place`.
- Added `account.list.table.preset` global config option, `accounts.<name>.folder.list.table.preset` and `accounts.<name>.envelope.list.table.preset` account config options.

  These options customize the shape of tables, see examples at [`comfy_table::presets`](https://docs.rs/comfy-table/latest/comfy_table/presets/index.html). Defaults to `"||  |-|||           "`, which corresponds to [`comfy_table::presets::ASCII_MARKDOWN`](https://docs.rs/comfy-table/latest/comfy_table/presets/constant.ASCII_MARKDOWN.html).

- Added `account.list.table.name-color` config option to customize the color used for the accounts' `NAME` column (defaults to `green`).
- Added `account.list.table.backends-color` config option to customize the color used for the folders' `BACKENDS` column (defaults to `blue`).
- Added `account.list.table.default-color` config option to customize the color used for the folders' `DEFAULT` column (defaults to `reset`).
- Added `accounts.<name>.folder.list.table.name-color` account config option to customize the color used for the folders' `NAME` column (defaults to `blue`).
- Added `accounts.<name>.folder.list.table.desc-color` account config option to customize the color used for the folders' `DESC` column (defaults to `green`).
- Added `accounts.<name>.envelope.list.table.id-color` account config option to customize the color used for the envelopes' `ID` column (defaults to `red`).
- Added `accounts.<name>.envelope.list.table.flags-color` account config option to customize the color used for the envelopes' `FLAGS` column (defaults to `reset`).
- Added `accounts.<name>.envelope.list.table.subject-color` account config option to customize the color used for the envelopes' `SUBJECT` column (defaults to `green`).
- Added `accounts.<name>.envelope.list.table.sender-color` account config option to customize the color used for the envelopes' `FROM` column (defaults to `blue`).
- Added `accounts.<name>.envelope.list.table.date-color` account config option to customize the color used for the envelopes' `DATE` column (defaults to `dark_yellow`).
- Added `accounts.<name>.envelope.list.table.unseen-char` account config option to customize the char used for unseen envelopes (defaults to `*`).
- Added `accounts.<name>.envelope.list.table.replied-char` account config option to customize the char used for replied envelopes (defaults to `R`).
- Added `accounts.<name>.envelope.list.table.flagged-char` account config option to customize the char used for flagged envelopes (defaults to `!`).
- Added `accounts.<name>.envelope.list.table.attachment-char` account config option to customize the char used for envelopes with at least one attachment (defaults to `@@`).

### Changed

- Refactored the `account configure` command: this command stands now for creating or editing account configurations from the wizard. The command requires the `wizard` cargo feature.
- Improved the `account doctor` command: it now checks the state of the config, and the new `--fix` argument allows you to configure keyring, OAuth 2.0 etc.
- Improved long version `--version`. [#496]
- Improved error messages when missing cargo features. For example, if a TOML configuration uses the IMAP backend without the `imap` cargo features, the error `missing "imap" feature` is displayed. [#20](https://github.com/pimalaya/core/issues/20)
- Normalized enum-based configurations, using the [internally tagged representation](https://serde.rs/enum-representations.html#internally-tagged) `type =`. It should reduce issues due to misconfiguration, and improve othe error messages. Yet it is not perfect, see [#802](https://github.com/toml-rs/toml/issues/802):

  - `imap.*`, `maildir.*` and `notmuch.*` moved to `backend.*`:

	```toml
	# before
	imap.host = "localhost"
	imap.port = 143

	# after
	backend.type = "imap"
	backend.host = "localhost"
	backend.port = 143
	```

  - `smtp.*` and `sendmail.*` moved to `message.send.backend.*`:

	```toml
	# before
	smtp.host = "localhost"
	smtp.port = 25

	# after
	message.send.backend.type = "smtp"
	message.send.backend.host = "localhost"
	message.send.backend.port = 25
	```

  - `pgp.backend` renamed `pgp.type`:

	```toml
	# before
	pgp.backend = "commands"
	pgp.encrypt-cmd = "gpg --encrypt --quiet --armor <recipients>"

	# after
	pgp.type = "commands"
	pgp.encrypt-cmd = "gpg --encrypt --quiet --armor <recipients>"
	```

  - `{imap,smtp}.auth` moved as well:

    ```toml
    # before
    imap.password.cmd = "pass show example"
    smtp.oauth2.method = "xoauth2"

    # after
    backend.auth.type = "password"
    backend.auth.cmd = "pass show example"
    message.send.backend.auth.type = "oauth2"
    message.send.backend.auth.method = "xoauth2"
    ```

- Moved IMAP and SMTP `encryption` to `encryption.type`.

  This change prepares the config to accept different TLS providers with their options. The `true` and `false` variant have been removed as well:

	```toml
	# before
	backend.encryption = "none" # or false
	backend.encryption = "start-tls"
	message.send.backend.encryption = "tls" # or true

	# after
	backend.encryption.type = "none"
	backend.encryption.type = "start-tls"
	message.send.backend.encryption.type = "tls"
	```

### Fixed

- Fixed pre-release archives issue. [#492]
- Fixed mailto parsing issue. [core#10]
- Fixed `Answered` flag not set when replying to a message. [#508]

### Removed

- Removed systemd service from `assets/` folder, as Himalaya CLI scope does not include synchronization nor watching anymore.

## [1.0.0-beta.4] - 2024-04-16

### Added

- Added systemd service in `assets/` folder.
- Added configuration option `message.delete.style` that can be either `folder` (deleted messages are moved to the Trash folder, default style) or `flag` (deleted messages receive the Deleted flag).
- Added `--debug` as an alias for `RUST_LOG=debug`.
- Added `--trace` as an alias for `RUST_LOG=trace` and `RUST_BACKTRACE=1`.
- Added notes about `--debug` and `--trace` when error occurs.

### Changed

- **Added back the search feature**: you can now give an optional filter and sort query at the end of the `envelope list` command. See `envelope list --help` or [pimalaya.org](https://pimalaya.org/himalaya/cli/master/usage/advanced/envelope/list.html#query) for more detail on the search API.
- Changed the `envelope list` folder argument due to the search query: it became a flag `--folder|-f`.
- Made the global `--config|-c` option repeatable: the first option is considered the path to the main config, and successive options are considered partial overrides [#184].
- Refactored error management: error should be more clear, colored and can now contain spantrace and backtrace.
- Made `--help` content wrapping properly thanks to the `clap` cargo feature `wrap_help`.
- Improved `template {new,reply,forward}` command JSON output: they return now a JSON object with 3 properties:
  - `content`: the content of the template
  - `cursor.row`: the row at which the cursor should be placed by the interface using the template
  - `cursor.col`: the column at which the cursor should be placed by the interface using the template

### Fixed

- Fixed watch IMAP envelopes when folder was empty [#179].
- Prevented parsing of undefined config options [#188].
- Fixed `In-Reply-To` header being skipped from mailto URLs [#194].
- Fixed error page out of bounds when filtering envelopes returned an empty result [#195].

## [1.0.0-beta.3] - 2024-02-25

### Added

- Added `account check-up` command.
- Added wizard warning about google passwords [#41].

### Changed

- Removed account configurations flatten level in order to improve diagnostic errors, due to a [bug](https://github.com/toml-rs/toml/issues/589#issuecomment-1872345017) in clap. **This means that accounts need to be prefixed by `accounts`: `[my-account]` becomes `[accounts.my-account]`**. It also opens doors for interface-specific configurations.
- Rolled back cargo feature additions from the previous release. It was a mistake: the amount of features was too big, the code (both CLI and lib) was too hard to maintain. Cargo features kept: `imap`, `maildir`, `notmuch`, `smtp`, `sendmail`, `account-sync`, `account-discovery`, `pgp-gpg`, `pgp-commands` and `pgp-native`.
- Moved `sync.strategy` to `folder.sync.filter`.
- Changed location of the synchronization data from `$XDG_DATA_HOME/himalaya/<account-name>` to `$XDG_DATA_HOME/pimalaya/email/sync/<account-name>-cache`.
- Changed location of the synchronization cache from `sync.dir` to `$XDG_CACHE_HOME/pimalaya/email/sync/<hash>/`.
- Replaced id mapping database `SQLite` by `sled`, a pure key-val store written in Rust to improve portability of the tool. **Therefore, id aliases are reset**.
- Improved pre and post edit choices interaction [#58].
- Improved account synchronization performances, making it 50% faster than `mbsync` and 370% faster than `OfflineIMAP`.
- Changed `envelope.watch.{event}.{hook}`: hooks can now be cumulated. For example it is possible to send a system notification and execute a shell command when receiving a new envelope:

  ```toml
  envelope.watch.received.notify.summary = "New message from {sender}"
  envelope.watch.received.notify.body = "{subject}"
  envelope.watch.received.cmd = "echo {id} >> /tmp/new-email-counter"
  ```

### Fixed

- Fixed bug that was preventing watch placeholders to be replaced when using shell command hook.
- Fixed watch IMAP envelopes issue preventing events to be triggered.
- Fixed DNS account discovery priority issues.
- Fixed SMTP messages not properly sent to all recipients [#172].
- Fixed backend feature badly linked, leading to reply and forward message errors [#173].

## [1.0.0-beta.2] - 2024-01-27

### Added

- Added cargo feature `wizard`, enabled by default.
- Added one cargo feature per backend feature:
  - `account` including `account-configure`, `account-list`, `account-sync` and the `account-subcmd`
  - `folder` including `folder-add`, `folder-list`, `folder-expunge`, `folder-purge`, `folder-delete` and the `folder-subcmd`
  - `envelope` including `envelope-list`, `envelope-watch`, `envelope-get` and the `envelope-subcmd`
  - `flag` including `flag-add`, `flag-set`, `flag-remove` and the `flag-subcmd`
  - `message` including `message-read`, `message-write`, `message-mailto`, `message-reply`, `message-forward`, `message-copy`, `message-move`, `message-delete`, `message-save`, `message-send` and the `message-subcmd`
  - `attachment` including `attachment-download` and the `attachment-subcmd`
  - `template` including `template-write`, `template-reply`, `template-forward`, `template-save`, `template-send` and the `template-subcmd`
- Added wizard capability to autodetect IMAP and SMTP configurations, based on the [Thunderbird Autoconfiguration](https://wiki.mozilla.org/Thunderbird:Autoconfiguration) standard.
- Added back Notmuch backend features.

### Changed

- Renamed `folder create` to `folder add` in order to better match types. An alias has been set up, so both `create` and `add` still work.

### Fixed

- Fixed default command: running `himalaya` without argument lists envelopes, as it used to be in previous versions.
- Fixed bug when listing envelopes with `backend = "imap"`, `sync.enable = true` and `envelope.watch.backend = "imap"` led to unwanted IMAP connection creation (which slowed down the listing).
- Fixed builds related to enabled cargo features.

## [1.0.0-beta] - 2024-01-01

Few major concepts changed:

- The concept of *Backend* and *Sender* changed. The Sender does not exist anymore (it is now a backend feature). A Backend is now a set of features like add folders, list envelopes or send raw message. The backend of every single feature can be customized in the configuration file, which gives users more flexibility. Here the list of backend features that can be customized:
  - `backend` ***(required)***: the backend used by default by all backend features (`maildir`, `imap` or `notmuch`)
  - `folder.add.backend`: override the backend used for creating folders (`maildir`, `imap` or `notmuch`)
  - `folder.list.backend`: override the backend used for listing folders (`maildir`, `imap` or `notmuch`)
  - `folder.expunge.backend`: override the backend used for expunging folders (`maildir`, `imap` or `notmuch`)
  - `folder.purge.backend`: override the backend used for purging folders (`maildir`, `imap` or `notmuch`)
  - `folder.delete.backend`: override the backend used for deleting folders (`maildir`, `imap` or `notmuch`)
  - `envelope.list.backend`: override the backend used for listing envelopes (`maildir`, `imap` or `notmuch`)
  - `envelope.get.backend`: override the backend used for getting envelopes (`maildir`, `imap` or `notmuch`)
  - `envelope.watch.backend`: override the backend used for watching envelopes (`maildir`, `imap` or `notmuch`)
  - `flag.add.backend`: override the backend used for adding flags (`maildir`, `imap` or `notmuch`)
  - `flag.set.backend`: override the backend used for setting flags (`maildir`, `imap` or `notmuch`)
  - `flag.remove.backend`: override the backend used for removing flags (`maildir`, `imap` or `notmuch`)
  - `message.send.backend` ***(required)***: override the backend used for sending messages (`sendmail` or `smtp`)
  - `message.read.backend`: override the backend used for reading messages (`maildir`, `imap` or `notmuch`)
  - `message.write.backend`: override the backend used for adding flags (`maildir`, `imap` or `notmuch`)
  - `message.copy.backend`: override the backend used for copying messages (`maildir`, `imap` or `notmuch`)
  - `message.move.backend`: override the backend used for moving messages (`maildir`, `imap` or `notmuch`)
- The CLI API changed: every command is now prefixed by its domain following the format `himalaya <domain> <action>`. List of domain available by running `himalaya -h` and list of actions for a domain by running `himalaya <domain> -h`.
- TOML configuration file options use now the dot notation rather than the dash notation. For example, `folder-listing-page-size` became `folder.list.page-size`. See the [changed](#changed) section below for more details.

### Added

- Added cargo feature `maildir` (not plugged yet).
- Added cargo feature `sendmail` (not plugged yet).
- Added watch hooks `envelope.watch.received` (when a new envelope is received) and `envelope.watch.any` (for any other event related to envelopes). A watch hook can be:
  - A shell command: `envelope.watch.any.cmd = "mbsync -a"`
  - A system notification:
    - `envelope.watch.received.notify.summary = "📬 New message from {sender}"`: customize the notification summary (title)
    - `envelope.watch.received.notify.body = "{subject}"`: customize the notification body (content)

	*Available placeholders: id, subject, sender, sender.name, sender.address, recipient, recipient.name, recipient.address.*
- Added watch support for Maildir backend features.

### Changed

- Renamed cargo feature `imap-backend` → `imap`.
- Renamed cargo feature `notmuch-backend` → `notmuch`.
- Renamed cargo feature `smtp-sender` → `smtp`.
- Changed the goal of the config option `backend`: it is now the default backend used for all backend features. Valid backends: `imap`, `maildir`, `notmuch`.
- Moved `folder-aliases` config option to `folder.alias(es)`.
- Moved `folder-listing-page-size` config option to `folder.list.page-size`.
- Moved `email-listing-page-size` config option to `envelope.list.page-size`.
- Moved `email-listing-datetime-fmt` config option to `envelope.list.datetime-fmt`.
- Moved `email-listing-datetime-local-tz` config option to `envelope.list.datetime-local-tz`.
- Moved `email-reading-headers` config option to `message.read.headers`.
- Moved `email-reading-format` config option to `message.read.format`.
- Moved `email-writing-headers` config option to `message.write.headers`.
- Move `email-sending-save-copy` config option to `message.send.save-copy`.
- Move `email-hooks.pre-send` config option to `message.send.pre-hook`.
- Moved `sync` config option to `sync.enable`.
- Moved `sync-dir` config option to `sync.dir`.
- Moved `sync-folders-strategy` config option to `sync.strategy`.
- Moved `maildir-*` config options to `maildir.*`.
- Moved `imap-*` config options to `imap.*`.
- Moved `notmuch-*` config options to `notmuch.*`.
- Moved `sendmail-*` config options to `sendmail.*`.
- Moved `smtp-*` config options to `smtp.*`.
- Replaced options `imap-ssl`, `imap-starttls` and `imap-insecure` by `imap.encryption`:
  - `imap.encryption = "tls" | true`: use required encryption (SSL/TLS)
  - `imap.encryption = "start-tls"`: use opportunistic encryption (StartTLS)
  - `imap.encryption = "none" | false`: do not use any encryption
- Replaced options `smtp-ssl`, `smtp-starttls` and `smtp-insecure` by `smtp.encryption`:
  - `smtp.encryption = "tls" | true`: use required encryption (SSL/TLS)
  - `smtp.encryption = "start-tls"`: use opportunistic encryption (StartTLS)
  - `smtp.encryption = "none" | false`: do not use any encryption

### Removed

- Disabled temporarily the `notmuch` backend because it needs to be refactored using the backend features system (it should be reimplemented soon).
- Disabled temporarily the `search` and `sort` command because they need to be refactored, see [#39].
- Removed the `notify` command (replaced by the new `watch` command).
- Removed all global options except for `display-name`, `signature`, `signature-delim` and `downloads-dir`.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.4 2023/10/24 22:09:43 wiz Exp $
d3 1
a3 1
DISTNAME=	himalaya-1.0.0
d17 1
a17 1
#RUST_REQ=	1.81.0
d19 1
a19 1
#This package is confirmed to build with Rust 1.81.0 on amd64
@


1.4
log
@*: bump for openssl 3
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.3 2023/09/15 13:46:12 schmonz Exp $
d3 1
a3 2
DISTNAME=	himalaya-0.9.0
PKGREVISION=	1
d5 1
a5 1
MASTER_SITES=	${MASTER_SITE_GITHUB:=soywod/}
d17 4
@


1.3
log
@himalaya: de-404 HOMEPAGE.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.2 2023/09/15 06:26:14 pin Exp $
d4 1
@


1.2
log
@mail/himalaya: update to 0.9.0

v0.9.0
This version should be the last before the v1.0.0-beta!
Added
 - Added 3 new cargo features:
     - pgp-commands: enables the commands PGP backend (enabled by default,
       same behaviour as before)
     - pgp-gpg: enables the GPG backend (requires the gpgme lib on the system)
     - pgp-native: enables the native PGP backend
 - Added account configuration pgp to configure the way PGP operations are
   performed.

Changed
 - Moved email-writing-encrypt-cmdto pgp.encrypt-cmd.
 - Moved email-reading-decrypt-cmd to pgp-decrypt-cmd.
 - Moved email-writing-sign-cmd to pgp.sign-cmd.
 - Moved email-reading-verify-cmd to pgp.verify-cmd.

v0.8.4
Fixed
 - Fixed windows releases due to cargo deps typo.

v0.8.3
Fixed
 - Fixed windows releases due to coredump crate compilation error.
 - Fixed macos releases due to macos 12 System Integrity Protection.

v0.8.2
Changed
 - Made the code async using the tokio async runtime.
 - On Linux, made the kernel keyring the default one (the one based on
   keyutils).

Fixed
 - Fixed the way folder aliases are resolved. In some case, aliases were
   resolved CLI side and lib side, which led to alias errors [sourcehut#95].

pimalaya-email-tpl
Fixed
 - Fixed default PGP verify command that was using invalid option --recipient.

pimalaya-email
Changed
 - Changed the way folder aliases are resolved. They are now resolved directly
   from backend implementations, which frees interfaces from this
   responsibility [#95].
 - Bumped pimalaya_email_tpl@@0.3.1.

Fixed
 - Fixed absolute folder aliases for the maildir backend [#94].
 - Fixed notmuch virtual folder [#92].

v0.8.1
Added
 - Implemented OAuth 2.0 refresh token flow for IMAP and SMTP, which means that
   access tokens are now automatically refreshed and is transparent for users.
 - Added imap-oauth2-redirect-host and smtp-oauth2-redirect-host options to
   customize the redirect server host name (default: localhost).
 - Added imap-oauth2-redirect-port and smtp-oauth2-redirect-port options to
   customize the redirect server port (default: 9999).
 - Added email-listing-datetime-fmt to customize envelopes datetime format.
   See format spec here.
 - Added email-listing-local-datetime to transform envelopes datetime's
   timezone to the user's local one. For example, if the user's local is set to
   UTC, the envelope date 2023-06-15T09:00:00+02:00 becomes
   2023-06-15T07:00:00-00:00.

Fixed
 - Fixed missing < and > around Message-ID and In-Reply-To headers.

v0.8.0
Added
 - Added keyring support, which means Himalaya can now use your system's global
   keyring to get/set sensitive data like passwords or tokens.
 - Added required IMAP option imap-auth and SMTP option smtp-auth. Possible
   values: passwd, oauth2.
 - Added OAuth 2.0 support for IMAP and SMTP.
 - Added passwords and OAuth 2.0 configuration via the wizard.
 - Added email-sending-save-copy option to control whenever a copy of any sent
   email should be saved in the sent folder defined in folder-aliases.
 - Imported id mapper from the lib, which means that the id mapping is now done
   by the CLI.
 - Added BackendConfig to AccountConfig::backend to match sender implementation.
 - Added support for pipeline commands, which means commands can be either a
   single command (string) or piped commands (list of strings). It applies for:
     - email-writing-verify-cmd
     - email-writing-decrypt-cmd
     - email-writing-sign-cmd
     - email-writing-encrypt-cmd

Changed
 - Changed release archive extensions from .tar.gz to .tgz.
 - Moved wizard module into domains (config, account, backend…).
 - [BREAKING] Changed the way secrets are managed. A secret is a sensitive data
   like passwords or tokens. There is 3 possible ways to declare a secret in
   the config file:
     - { raw = <secret> } for the raw secret as string (unsafe, not
       recommanded),
     - { cmd = <secret-cmd> } for command that exposes the secret,
     - { keyring = <secret-entry> } for entry in your system's global keyring
       that contains the secret.

 - This applies for:
     - imap-passwd
     - imap-oauth2-client-secret
     - imap-oauth2-access-token
     - imap-oauth2-refresh-token
     - smtp-passwd
     - smtp-oauth2-client-secret
     - smtp-oauth2-access-token
     - smtp-oauth2-refresh-token

Fixed
 - Fixed Windows releases corrupted archives.

Removed
 - [BREAKING] Removed -s|--sanitize option. It is done by default now, except
   if the -t|--mime-type html is set.
 - [BREAKING] Removed native-tls support, rustls-tls is now the only TLS
   provider available. Removed in consequence native-tls, rustls-tls and
   rustls-native-certs cargo features.

pimalaya-email
Added
 - Added IP support using rustls v0.21 [#80].
 - Added AccountConfig::generate_tpl_interpreter function to generate a
   template interpreter with default options based on the config (pgp encrypt,
   pgp verify and attachments dir).

Changed
 - Changed AccountConfig::addr return type from lettre::Mailbox to
   mail_builder::Address.
 - Changed AccountConfig::email_reading_headers default values to ["From",
   "To", "Cc", "Subject"].
 - Changed AccountConfig::email_writing_headers default values to ["From",
   "To", "In-Reply-To", "Cc", "Subject"].
 - Removed noise around signature by trimming it.
 - Changed Email::parsed return type from mailparse::ParsedMail to
   mail_parser::Message.
 - Changed Email::new_tpl_builder return type from Result<TplBuilder> to
   NewTplBuilder.
 - Renamed Email::to_read_tpl_builder to Email::to_read_tpl which returns now a
   Result<Tpl> directly.
 - Changed Email::to_reply_tpl_builder return type from Result<TplBuilder> to
   ReplyTplBuilder.
 - Changed Email::to_forward_tpl_builder return type from Result<TplBuilder> to
   ForwardTplBuilder.
 - Renamed backend::imap::Error::ListEnvelopesOutOfBounds by
   BuildPageRangeOutOfBoundsError.
 - Replaced [lettre] by [mail-send], [mailparse] by [mail-parser] and [maildir]
   by [maildirpp].
 - Removed native-tls support, rustls-tls is now the only TLS provider
   available. Removed in consequence native-tls, rustls-tls and
   rustls-native-certs cargo features.

Fixed
 - Fixed notmuch path not being expanded correctly.
 - Fixed .notmuch folder created by notmuch new command being treated as a
   folder. Because it is a folder starting by a dot, it was considered as a
   Maildir++ folder (which is not).
 - Fixed IMAP pagination error when listing envelopes [#76].

pimalaya-email-tpl
Added
 - Added parsing template from raw message support. Parsing is done via the
   TplInterpreter builder, and functions TplInterpreter::interpret_* return the
   parsed template.

Changed
 - Replaced [lettre] by [mail-builder] and [mail-parser].
 - Use crate [nanohtml2text] instead of manual html to plain transform using
   ammonia, html-escape and regex.
 - Moved MML stuff in its own mml module, to be as close as what provides the
   Emacs MML module. The tpl module contains stuff related to template.
   A template is just an email composed of headers and one unique plain text
   part. This plain text part can be written in MML.
 - Compiler options are now attached to the Tpl structure.

v0.7.3
Fixed
 - Fixed Windows releases (due to typo in the github action script).
 - Fixed unit tests.

v0.7.2
Added
 - Added create and delete folder commands [sourcehut#54].
 - Added generated completions and man pages to releases [sourcehut#43].
 - Added new account config option sync-folders-strategy which allows
   to choose a folders synchronization strategy [sourcehut#59]:
     - sync-folders-strategy = "all": synchronize all existing folders
        for the current account
     - sync-folders-strategy.include = ["folder1", "folder2", …]:
     - synchronize only the given folders for the current account
     - sync-folders-strategy.exclude = ["folder1", "folder2", …]:
     - synchronizes all folders except the given ones for the current
        account

 - Also added new account sync arguments that override the account
   config option:
     -A|--all-folders: include all folders to the synchronization.
     -F|--include-folder: include given folders to the
     synchronization. They can be repeated -F folder1 folder2 or -F folder1
      -F folder2.
     -x|--exclude-folder: exclude given folders from the
     synchronization. They can be repeated -x folder1 folder2 or -x folder1
      -F folder2.

 - Added cargo features native-tls (default), rustls-tls and
   rustls-native-certs.

Changed
 - Made global options truly global, which means they can be used
   everywhere (not only before commands but also after)
   [sourcehut#60].
 - Replaced reply all -a argument with -A because it conflicted
   with the global option -a|--account.
 - Replaced himalaya-lib by pimalaya-email.
 - Renamed feature vendored to native-tls-vendored.
 - Removed the develop branch, all the development is now done on the
   master branch.

Fixed
 - Fixed config deserialization issue with email-hooks and
   email-reading-format.
 - Fixed flags case sensitivity.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.1 2023/03/08 23:45:10 nikita Exp $
d9 1
a9 1
HOMEPAGE=	https://pimalaya.org/himalaya/docs/index.html
@


1.1
log
@mail/himalaya: Import as himalaya version 0.7.1

Himalaya is a CLI based on the himalaya-lib that allows you to manipulate
your emails using commands in your console.

Features:
    Folder listing
    Envelopes listing, searching and sorting
    Email composition based on $EDITOR
    Email manipulation (copy/move/delete)
    Multi-accounting
    Account listing
    Account synchronization for offline usage
    IMAP, Maildir and Notmuch support
    IMAP IDLE mode for real-time notifications
    PGP end-to-end encryption
    Completions for various shells
    JSON output
    ...
@
text
@d1 1
a1 1
# $NetBSD$
d3 1
a3 1
DISTNAME=	himalaya-0.7.1
a5 1
GITHUB_PROJECT=	himalaya
@

