The Samba module vfs_shadow_copy2 is useful for shares hosted on snapshot capable filesystems/storage. This module allows previous “snapshot” versions of a share to be made visible to users.  This allows for self-service restore of files by end users. On a given share, in smb.conf, you configure something like

[data]
 vfs objects = acl_xattr btrfs shadow_copy2
 path = /btrfs/samba/data
 shadow:basedir = /btrfs/samba/data
 shadow:snapdir = ../data_SNAPS

Depending on your version of Samba, to use the above which includes the “../” link, you might need to add some/all of the below options:

unix extensions = no
wide links = yes
allow insecure wide links = yes

In the 4.3.x and 4.4.x releases there have been a few changes to the vfs_shadow_copy2 module meaning the above three options may or may not have been needed. The jump from 4.4.9 to 4.4.10 addressed Samba BUG 12531. This again involved changes to the vfs_shadow_copy2 module, again breaking the above config (with or without the three options listed). I’ve changed the above config on the share to be

[data]
 vfs objects = acl_xattr btrfs shadow_copy2
 path = /btrfs/samba/data
 shadow:basedir = /btrfs/samba/data
 shadow:snapdir = /btrfs/samba/data_SNAPS

which works without the three options above. Samba 4.4.13, 4.5.8, 4.6.2 also work with the above. Its frustrating since relative (which I assume includes “../”) directories are supposed to be supported with “shadow:snapdir”. Hopefully this configuration now works for all releases going forward.

I find it frustrating that minor releases can break working configs. It makes it difficult to quickly deploy security fixes as the required level of testing is much higher than one would expect for minor releases. This subtle change to the config option is not documented or mentioned in the release notes.  Anyway, more of a rant post than usual… apologies for that!

Well this is going to be a bit of a ramble as opposed to an articulate article. It comes from my frustration with Android’s bugs and Google’s seemingly unwillingness to respond. If one takes a look at

http://code.google.com/p/android/issues/list

one can see a number of long lingering bugs which have not been addressed yet. Sure, loads of bugs have been fixed and Android continues to improve. I’ll come back to “improve” below. My gripe is with the bugs, which have been around for a while, that break functionality or standards.

For instance – proper handling of IMAP folders, IMAP drafts, IMAP IDLE support, Exchange sync if you delete e-mail messages while disconnected from your Exchange server, IPSEC L2TP PSK VPNs broken. These are bugs in features that are needed for mainstream business use in a smartphone. Sure not all consumers will run into all these bugs but with the recent #PRISM leaks and continuing concerns around privacy I’m sure more people will start using “their own” (for some definition of own as opposed to BIG providers such as Gmail/Hotmail/etc) IMAP servers and IPSec VPNs.

Business users will typically either use Exchange or IMAP (OK there are still some Lotus Notes users too – ever seen that mentioned on a stock Android device??) coupled with VPNs.  Both of these key features are crippled or lacking in one or more ways. Additionally, Android’s handling of recurring calendar appointments is poor to lacking resulting in potential frustration for business users. I guess haves “issues” in these area and offering a working Gmail app plays right into Google’s plan of owning everyone’s data and obviously mining said data for ad revenue!!!

Android is no longer a “new” operating system and has been through various updates along the way. Simple things like working, reliable e-mail should “just be there”. One should not need to install app (K9 mail for instance) after app (OpenVPN) to get working functionality that is supposedly built in to the OS. As Android ages it appear to be more of a way to make more money for Google than a concerted effort at a proper phone OS.

  • “improve” – yes new releases of Android come out every year or two with new wizzy-flashy graphics to dazzle the eyes. But come on – lets get the basic underlying functionality fixed before rolling out even more buggy code!