{"action":"created","comment":{"url":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/comments/67119508","id":67119508,"diff_hunk":"@@ -309,6 +320,29 @@ impl<'a> EntryFields<'a> {\n                                         for `{}`\", mode, dst.display()), e)\n             }));\n         }\n+        // Windows does not completely support posix xattrs\n+        // https://en.wikipedia.org/wiki/Extended_file_attributes#Windows_NT\n+        if cfg!(target_family = \"unix\") && preserve_xattrs {","path":"src/entry.rs","position":43,"original_position":43,"commit_id":"7c7d34067efac395aabc75ed6a877cffdc0b8d3e","original_commit_id":"eab989c94f9b08cc3fd77f5ae9f4510ebb136ba5","user":{"login":"alexcrichton","id":64996,"avatar_url":"https://avatars.githubusercontent.com/u/64996?v=3","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},"body":"Ah ok, then in that case we should probably follow the same behavior as `tar` and not do it by default. I'd personally prefer to avoid `unpack` and `unpack_foo` method duplication, so perhaps an option could be set somewhere? Like maybe `Archive::set_unpack_xattrs` which just sets a boolean flag.\r\n\r\nWe'd probably also want it to be a unix-specific extension trait, but I can take care of that part as well.","created_at":"2016-06-15T08:28:52Z","updated_at":"2016-06-15T08:28:52Z","html_url":"https://github.com/alexcrichton/tar-rs/pull/66#discussion_r67119508","pull_request_url":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/66","_links":{"self":{"href":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/comments/67119508"},"html":{"href":"https://github.com/alexcrichton/tar-rs/pull/66#discussion_r67119508"},"pull_request":{"href":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/66"}}},"pull_request":{"url":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/66","id":73504224,"html_url":"https://github.com/alexcrichton/tar-rs/pull/66","diff_url":"https://github.com/alexcrichton/tar-rs/pull/66.diff","patch_url":"https://github.com/alexcrichton/tar-rs/pull/66.patch","issue_url":"https://api.github.com/repos/alexcrichton/tar-rs/issues/66","number":66,"state":"open","locked":false,"title":"Implement unpack_preserving_xattrs() functions","user":{"login":"noiseless","id":8888734,"avatar_url":"https://avatars.githubusercontent.com/u/8888734?v=3","gravatar_id":"","url":"https://api.github.com/users/noiseless","html_url":"https://github.com/noiseless","followers_url":"https://api.github.com/users/noiseless/followers","following_url":"https://api.github.com/users/noiseless/following{/other_user}","gists_url":"https://api.github.com/users/noiseless/gists{/gist_id}","starred_url":"https://api.github.com/users/noiseless/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noiseless/subscriptions","organizations_url":"https://api.github.com/users/noiseless/orgs","repos_url":"https://api.github.com/users/noiseless/repos","events_url":"https://api.github.com/users/noiseless/events{/privacy}","received_events_url":"https://api.github.com/users/noiseless/received_events","type":"User","site_admin":false},"body":"First commit adds two new functions:\r\n```rust    \r\npub fn Archive::unpack_preserving_xattrs<P: AsRef<Path>>(&mut self, dst: P) -> io::Result<()>\r\npub fn Entry::unpack_preserving_xattrs<P: AsRef<Path>>(&mut self, dst: P) -> io::Result<()>\r\n```   \r\nThis functions have a similar behavior as unpack(), but preserves extended\r\nfile attributes. That also means, that this function shouldn't works if dst\r\nis placed in pseudo file systems.\r\n\r\nI decided to use a separate function due to the fact that adding support for extended\r\nattributes makes it impossible to extract data in tmpfs or other pseudo-fs.\r\nThis limits the scope of function; besides gnu tar, for example, also requires\r\na separate argument for preserving xattrs. Adding a flag to the unpack() would\r\nbreak backward compatibility.\r\n\r\nSecond commit adds two simple tests for these functions","created_at":"2016-06-12T19:08:24Z","updated_at":"2016-06-15T08:28:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b5aa2f187f18129ce6b4c47915c836fdc0c8ba43","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/66/commits","review_comments_url":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/66/comments","review_comment_url":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/alexcrichton/tar-rs/issues/66/comments","statuses_url":"https://api.github.com/repos/alexcrichton/tar-rs/statuses/7c7d34067efac395aabc75ed6a877cffdc0b8d3e","head":{"label":"noiseless:feature/unpack_with_xattrs","ref":"feature/unpack_with_xattrs","sha":"7c7d34067efac395aabc75ed6a877cffdc0b8d3e","user":{"login":"noiseless","id":8888734,"avatar_url":"https://avatars.githubusercontent.com/u/8888734?v=3","gravatar_id":"","url":"https://api.github.com/users/noiseless","html_url":"https://github.com/noiseless","followers_url":"https://api.github.com/users/noiseless/followers","following_url":"https://api.github.com/users/noiseless/following{/other_user}","gists_url":"https://api.github.com/users/noiseless/gists{/gist_id}","starred_url":"https://api.github.com/users/noiseless/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noiseless/subscriptions","organizations_url":"https://api.github.com/users/noiseless/orgs","repos_url":"https://api.github.com/users/noiseless/repos","events_url":"https://api.github.com/users/noiseless/events{/privacy}","received_events_url":"https://api.github.com/users/noiseless/received_events","type":"User","site_admin":false},"repo":{"id":60939405,"name":"tar-rs","full_name":"noiseless/tar-rs","owner":{"login":"noiseless","id":8888734,"avatar_url":"https://avatars.githubusercontent.com/u/8888734?v=3","gravatar_id":"","url":"https://api.github.com/users/noiseless","html_url":"https://github.com/noiseless","followers_url":"https://api.github.com/users/noiseless/followers","following_url":"https://api.github.com/users/noiseless/following{/other_user}","gists_url":"https://api.github.com/users/noiseless/gists{/gist_id}","starred_url":"https://api.github.com/users/noiseless/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noiseless/subscriptions","organizations_url":"https://api.github.com/users/noiseless/orgs","repos_url":"https://api.github.com/users/noiseless/repos","events_url":"https://api.github.com/users/noiseless/events{/privacy}","received_events_url":"https://api.github.com/users/noiseless/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/noiseless/tar-rs","description":"Tar file reading/writing for Rust","fork":true,"url":"https://api.github.com/repos/noiseless/tar-rs","forks_url":"https://api.github.com/repos/noiseless/tar-rs/forks","keys_url":"https://api.github.com/repos/noiseless/tar-rs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/noiseless/tar-rs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/noiseless/tar-rs/teams","hooks_url":"https://api.github.com/repos/noiseless/tar-rs/hooks","issue_events_url":"https://api.github.com/repos/noiseless/tar-rs/issues/events{/number}","events_url":"https://api.github.com/repos/noiseless/tar-rs/events","assignees_url":"https://api.github.com/repos/noiseless/tar-rs/assignees{/user}","branches_url":"https://api.github.com/repos/noiseless/tar-rs/branches{/branch}","tags_url":"https://api.github.com/repos/noiseless/tar-rs/tags","blobs_url":"https://api.github.com/repos/noiseless/tar-rs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/noiseless/tar-rs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/noiseless/tar-rs/git/refs{/sha}","trees_url":"https://api.github.com/repos/noiseless/tar-rs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/noiseless/tar-rs/statuses/{sha}","languages_url":"https://api.github.com/repos/noiseless/tar-rs/languages","stargazers_url":"https://api.github.com/repos/noiseless/tar-rs/stargazers","contributors_url":"https://api.github.com/repos/noiseless/tar-rs/contributors","subscribers_url":"https://api.github.com/repos/noiseless/tar-rs/subscribers","subscription_url":"https://api.github.com/repos/noiseless/tar-rs/subscription","commits_url":"https://api.github.com/repos/noiseless/tar-rs/commits{/sha}","git_commits_url":"https://api.github.com/repos/noiseless/tar-rs/git/commits{/sha}","comments_url":"https://api.github.com/repos/noiseless/tar-rs/comments{/number}","issue_comment_url":"https://api.github.com/repos/noiseless/tar-rs/issues/comments{/number}","contents_url":"https://api.github.com/repos/noiseless/tar-rs/contents/{+path}","compare_url":"https://api.github.com/repos/noiseless/tar-rs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/noiseless/tar-rs/merges","archive_url":"https://api.github.com/repos/noiseless/tar-rs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/noiseless/tar-rs/downloads","issues_url":"https://api.github.com/repos/noiseless/tar-rs/issues{/number}","pulls_url":"https://api.github.com/repos/noiseless/tar-rs/pulls{/number}","milestones_url":"https://api.github.com/repos/noiseless/tar-rs/milestones{/number}","notifications_url":"https://api.github.com/repos/noiseless/tar-rs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/noiseless/tar-rs/labels{/name}","releases_url":"https://api.github.com/repos/noiseless/tar-rs/releases{/id}","deployments_url":"https://api.github.com/repos/noiseless/tar-rs/deployments","created_at":"2016-06-12T03:10:22Z","updated_at":"2016-06-12T03:10:23Z","pushed_at":"2016-06-15T01:11:59Z","git_url":"git://github.com/noiseless/tar-rs.git","ssh_url":"git@github.com:noiseless/tar-rs.git","clone_url":"https://github.com/noiseless/tar-rs.git","svn_url":"https://github.com/noiseless/tar-rs","homepage":"http://alexcrichton.com/tar-rs","size":955,"stargazers_count":0,"watchers_count":0,"language":"Rust","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"alexcrichton:master","ref":"master","sha":"d0aea97e1f4047810e5dfc8482457dfd635050a5","user":{"login":"alexcrichton","id":64996,"avatar_url":"https://avatars.githubusercontent.com/u/64996?v=3","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},"repo":{"id":21946092,"name":"tar-rs","full_name":"alexcrichton/tar-rs","owner":{"login":"alexcrichton","id":64996,"avatar_url":"https://avatars.githubusercontent.com/u/64996?v=3","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/alexcrichton/tar-rs","description":"Tar file reading/writing for Rust","fork":false,"url":"https://api.github.com/repos/alexcrichton/tar-rs","forks_url":"https://api.github.com/repos/alexcrichton/tar-rs/forks","keys_url":"https://api.github.com/repos/alexcrichton/tar-rs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alexcrichton/tar-rs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alexcrichton/tar-rs/teams","hooks_url":"https://api.github.com/repos/alexcrichton/tar-rs/hooks","issue_events_url":"https://api.github.com/repos/alexcrichton/tar-rs/issues/events{/number}","events_url":"https://api.github.com/repos/alexcrichton/tar-rs/events","assignees_url":"https://api.github.com/repos/alexcrichton/tar-rs/assignees{/user}","branches_url":"https://api.github.com/repos/alexcrichton/tar-rs/branches{/branch}","tags_url":"https://api.github.com/repos/alexcrichton/tar-rs/tags","blobs_url":"https://api.github.com/repos/alexcrichton/tar-rs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alexcrichton/tar-rs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alexcrichton/tar-rs/git/refs{/sha}","trees_url":"https://api.github.com/repos/alexcrichton/tar-rs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alexcrichton/tar-rs/statuses/{sha}","languages_url":"https://api.github.com/repos/alexcrichton/tar-rs/languages","stargazers_url":"https://api.github.com/repos/alexcrichton/tar-rs/stargazers","contributors_url":"https://api.github.com/repos/alexcrichton/tar-rs/contributors","subscribers_url":"https://api.github.com/repos/alexcrichton/tar-rs/subscribers","subscription_url":"https://api.github.com/repos/alexcrichton/tar-rs/subscription","commits_url":"https://api.github.com/repos/alexcrichton/tar-rs/commits{/sha}","git_commits_url":"https://api.github.com/repos/alexcrichton/tar-rs/git/commits{/sha}","comments_url":"https://api.github.com/repos/alexcrichton/tar-rs/comments{/number}","issue_comment_url":"https://api.github.com/repos/alexcrichton/tar-rs/issues/comments{/number}","contents_url":"https://api.github.com/repos/alexcrichton/tar-rs/contents/{+path}","compare_url":"https://api.github.com/repos/alexcrichton/tar-rs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alexcrichton/tar-rs/merges","archive_url":"https://api.github.com/repos/alexcrichton/tar-rs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alexcrichton/tar-rs/downloads","issues_url":"https://api.github.com/repos/alexcrichton/tar-rs/issues{/number}","pulls_url":"https://api.github.com/repos/alexcrichton/tar-rs/pulls{/number}","milestones_url":"https://api.github.com/repos/alexcrichton/tar-rs/milestones{/number}","notifications_url":"https://api.github.com/repos/alexcrichton/tar-rs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alexcrichton/tar-rs/labels{/name}","releases_url":"https://api.github.com/repos/alexcrichton/tar-rs/releases{/id}","deployments_url":"https://api.github.com/repos/alexcrichton/tar-rs/deployments","created_at":"2014-07-17T14:56:29Z","updated_at":"2016-06-12T12:13:11Z","pushed_at":"2016-06-15T01:12:00Z","git_url":"git://github.com/alexcrichton/tar-rs.git","ssh_url":"git@github.com:alexcrichton/tar-rs.git","clone_url":"https://github.com/alexcrichton/tar-rs.git","svn_url":"https://github.com/alexcrichton/tar-rs","homepage":"http://alexcrichton.com/tar-rs","size":970,"stargazers_count":34,"watchers_count":34,"language":"Rust","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":22,"mirror_url":null,"open_issues_count":3,"forks":22,"open_issues":3,"watchers":34,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/66"},"html":{"href":"https://github.com/alexcrichton/tar-rs/pull/66"},"issue":{"href":"https://api.github.com/repos/alexcrichton/tar-rs/issues/66"},"comments":{"href":"https://api.github.com/repos/alexcrichton/tar-rs/issues/66/comments"},"review_comments":{"href":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/66/comments"},"review_comment":{"href":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/alexcrichton/tar-rs/pulls/66/commits"},"statuses":{"href":"https://api.github.com/repos/alexcrichton/tar-rs/statuses/7c7d34067efac395aabc75ed6a877cffdc0b8d3e"}}}}
{"actor":{"display_login":"alexcrichton"}}