Subject: Re: bug#32722: bug#32722: bug#32722: bug#32722: 26.1; Org-publish depend on non-free platform ?

From: Nicolas Goaziou <[email-masked]>
Date: Sat, 29 Sep 2018 16:53:04 +0200

Hello,

Richard Stallman <[email-masked]> writes:

> This is actually good news.  It means Android MobileOrg is almost ok.
> If someone wants to do a little work on Android MobileOrg, so it could
> go into f-droid, we could recommend its use.  But the doc should be
> updated.

For the record, I rewrote the section about Org Mobile in the manual.
This removed all instances of "MobileOrg" and "Dropbox". Here it is in
its full glory (please ignore the broken links, which refer to other
parts in the Org manual):

--8<---------------cut here---------------start------------->8---
                       ━━━━━━━━━━━━━━━━━━━━━━━━━
                               ORG MOBILE
                              Release 9.2

                        The Org Mode Developers
                       ━━━━━━━━━━━━━━━━━━━━━━━━━

Table of Contents
─────────────────

1. Setting up the staging area
2. Pushing to the mobile application
3. Pulling from the mobile application

Org Mobile is a protocol for synchronizing Org files between Emacs and
other applications, e.g., on mobile devices. It enables offline-views
and capture support for an Org mode system that is rooted on a “real”
computer. The external application can also record changes to existing
entries.

This appendix describes Org’s support for agenda view formats compatible
with Org Mobile. It also describes synchronizing changes, such as to
notes, between the mobile application and the computer.

To change tags and TODO states in the mobile application, first
customize the variables `org-todo-keywords' and `org-tag-alist'. These
should cover all the important tags and TODO keywords, even if Org files
use only some of them. Though the mobile application is expected to
support in-buffer settings, it is required to understand TODO states
/sets/ (see [BROKEN LINK: *Setting up keywords for individual files])
and /mutually exclusive/ tags (see [BROKEN LINK: *Setting Tags]) only
for those set in these variables.

1 Setting up the staging area
═════════════════════════════

  The mobile application needs access to a file directory on a server[1]
  to interact with Emacs. Pass its location through the
  `org-mobile-directory' variable. If you can mount that directory
  locally just set the variable to point to that directory:

  ┌────
  │ (setq org-mobile-directory "~/orgmobile/")
  └────

  Alternatively, by using TRAMP (see [TRAMP User Manual]),
  `org-mobile-directory' may point to a remote directory accessible
  through, for example, SSH and SCP:

  ┌────
  │ (setq org-mobile-directory "/scpc:[email-masked]:org/webdav/")
  └────

  With a public server, consider encrypting the files. Org also requires
  OpenSSL installed on the local computer. To turn on encryption, set
  the same password in the mobile application and in Emacs. Set the
  password in the variable `org-mobile-use-encryption'[2]. Note that
  even after the mobile application encrypts the file contents, the file
  name remains visible on the file systems of the local computer, the
  server, and the mobile device.

[TRAMP User Manual] <info:tramp>

2 Pushing to the mobile application
═══════════════════════════════════

  The command `org-mobile-push' copies files listed in
  `org-mobile-files' into the staging area. Files include agenda files
  (as listed in `org-agenda-files'). Customize `org-mobile-files' to add
  other files. File names are staged with paths relative to
  `org-directory', so all files should be inside this directory[3].

  Push creates a special Org file `agendas.org' with custom agenda views
  defined by the user[4].

  Finally, Org writes the file `index.org', containing links to other
  files. The mobile application reads this file first from the server to
  determine what other files to download for agendas. For faster
  downloads, it is expected to only read files whose checksums[5] have
  changed.

3 Pulling from the mobile application
═════════════════════════════════════

  The command `org-mobile-pull' synchronizes changes with the server.
  More specifically, it first pulls the Org files for viewing. It then
  appends captured entries and pointers to flagged or changed entries to
  the file `mobileorg.org' on the server. Org ultimately integrates its
  data in an inbox file format, through the following steps:

  1. Org moves all entries found in `mobileorg.org'[6] and appends them
     to the file pointed to by the variable `org-mobile-inbox-for-pull'.
     It should reside neither in the staging area nor on the server. Each
     captured entry and each editing event is a top-level entry in the
     inbox file.

  2. After moving the entries, Org processes changes to the shared files.
     Some of them are applied directly and without user interaction.
     Examples include changes to tags, TODO state, headline and body
     text. Entries requiring further action are tagged as `FLAGGED'. Org
     marks entries with problems with an error message in the inbox. They
     have to be resolved manually.

  3. Org generates an agenda view for flagged entries for user
     intervention to clean up. For notes stored in flagged entries, Org
     displays them in the echo area when point is on the corresponding
     agenda item.

     ?
           Pressing ? displays the entire flagged note in another
           window. Org also pushes it to the kill ring. To store flagged
           note as a normal note, use ? z C-y C-c C-c. Pressing ? twice
           does these things: first it removes the `FLAGGED' tag;
           second, it removes the flagged note from the property drawer;
           third, it signals that manual editing of the flagged entry is
           now finished.

  From the agenda dispatcher, ? returns to the view to finish processing
  flagged entries. Note that these entries may not be the most recent
  since the mobile application searches files that were last pulled. To
  get an updated agenda view with changes since the last pull, pull
  again.

Footnotes
─────────

[1] For a server to host files, consider using a WebDAV server, such
as [Nextcloud] (<https://nextcloud.com>). Additional help is at this
[FAQ entry]
(<https://orgmode.org/worg/org-faq.html#mobileorg_webdav>).

[2] If Emacs is configured for safe storing of passwords, then
configure the variable `org-mobile-encryption-password'; please read
the docstring of that variable.

[3] Symbolic links in `org-directory' need to have the same name as
their targets.

[4] While creating the agendas, Org mode forces ID properties on all
referenced entries, so that these entries can be uniquely identified
if Org Mobile flags them for further action. To avoid setting
properties configure the variable
`org-mobile-force-id-on-agenda-items' to `nil'. Org mode then relies
on outline paths, assuming they are unique.

[5] Checksums are stored automatically in the file `checksums.dat'.

[6] The file will be empty after this operation.
--8<---------------cut here---------------end--------------->8---

I also used CTAN URL for the minted LaTeX package.

Regards,

-- 
Nicolas Goaziou