summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.mailmap1
-rw-r--r--Annex/Content.hs101
-rw-r--r--Annex/Direct.hs8
-rw-r--r--Annex/Init.hs15
-rw-r--r--Annex/SpecialRemote.hs87
-rw-r--r--Annex/Transfer.hs37
-rw-r--r--Assistant/MakeRemote.hs12
-rw-r--r--Backend/Hash.hs2
-rw-r--r--Backend/URL.hs2
-rw-r--r--Backend/WORM.hs2
-rw-r--r--Build/BundledPrograms.hs14
-rw-r--r--Build/DistributionUpdate.hs2
-rw-r--r--Build/NullSoftInstaller.hs96
-rw-r--r--CmdLine.hs29
-rw-r--r--CmdLine/GitAnnex/Options.hs25
-rw-r--r--Command/AddUrl.hs6
-rw-r--r--Command/Drop.hs1
-rw-r--r--Command/EnableRemote.hs9
-rw-r--r--Command/Fsck.hs12
-rw-r--r--Command/Get.hs20
-rw-r--r--Command/Info.hs6
-rw-r--r--Command/Init.hs2
-rw-r--r--Command/InitRemote.hs50
-rw-r--r--Command/Move.hs3
-rw-r--r--Command/ReKey.hs2
-rw-r--r--Command/RecvKey.hs54
-rw-r--r--Command/Reinit.hs2
-rw-r--r--Command/Reinject.hs28
-rw-r--r--Command/SetKey.hs2
-rw-r--r--Command/Status.hs93
-rw-r--r--Command/Sync.hs103
-rw-r--r--Command/TestRemote.hs12
-rw-r--r--Command/TransferKey.hs3
-rw-r--r--Command/TransferKeys.hs3
-rw-r--r--Command/Unused.hs2
-rw-r--r--Creds.hs7
-rw-r--r--Crypto.hs60
-rw-r--r--Database/Fsck.hs5
-rw-r--r--Git/Hook.hs2
-rw-r--r--Git/Status.hs76
-rw-r--r--Logs/PreferredContent.hs5
-rw-r--r--Messages.hs10
-rw-r--r--Remote/BitTorrent.hs4
-rw-r--r--Remote/GCrypt.hs4
-rw-r--r--Remote/Git.hs78
-rw-r--r--Remote/Helper/Encryptable.hs19
-rw-r--r--Remote/Helper/Special.hs20
-rw-r--r--Remote/S3.hs7
-rw-r--r--Remote/Tahoe.hs4
-rw-r--r--Remote/Web.hs4
-rw-r--r--Test.hs105
-rw-r--r--Types/Backend.hs4
-rw-r--r--Types/GitConfig.hs17
-rw-r--r--Types/Remote.hs17
-rw-r--r--Utility/Bloom.hs2
-rw-r--r--Utility/Exception.hs5
-rw-r--r--Utility/Gpg.hs90
-rw-r--r--Utility/Matcher.hs9
-rw-r--r--Utility/Misc.hs2
-rw-r--r--Utility/OptParse.hs1
-rw-r--r--Utility/Process.hs9
-rw-r--r--Utility/Scheduled.hs2
-rw-r--r--Utility/SshConfig.hs10
-rw-r--r--Utility/Url.hs38
-rw-r--r--Utility/libdiskfree.c9
-rw-r--r--debian/changelog76
-rw-r--r--doc/Void.mdwn1
-rw-r--r--doc/bugs/--help_should_not_demand_being_in_the_git_repo.mdwn1
-rw-r--r--doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching.mdwn25
-rw-r--r--doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching/comment_1_70a34d43629075249897bdc5301c55f5._comment14
-rw-r--r--doc/bugs/Android:_Several_error_messages___47___warnings.mdwn38
-rw-r--r--doc/bugs/Android:_Several_error_messages___47___warnings/comment_1_85da61d3dfb528fef17366effe123ff5._comment16
-rw-r--r--doc/bugs/Android:_Several_error_messages___47___warnings/comment_2_97ddaba23e91a903f69cf00931627444._comment21
-rw-r--r--doc/bugs/Android:_Several_error_messages___47___warnings/comment_3_b4ea7ff7deb9626a02dfd0eb459f22a2._comment12
-rw-r--r--doc/bugs/Assistant:_synchronisation_between_two_regular_repositories_hangs_.mdwn2
-rw-r--r--doc/bugs/Assistant:_synchronisation_between_two_regular_repositories_hangs_/comment_3_db50cbdc302480c4b1fe0f364aa769d9._comment19
-rw-r--r--doc/bugs/Can__39__t_create_remote_for_Google_cloud_storage_DRA___47___nearline_buckets.mdwn2
-rw-r--r--doc/bugs/MacOSX:_archive_folders_not_working_as_expected/comment_2_cf9a679c7e6ec5cae4109e748b20b8f9._comment14
-rw-r--r--doc/bugs/Prefered_Content_not_Taken_into_Account.mdwn364
-rw-r--r--doc/bugs/Prefered_Content_not_Taken_into_Account/comment_1_70bccb282707b2e9b75c417832ed3459._comment33
-rw-r--r--doc/bugs/SHA3__95____42___backends_missing_from_newest_official_amd64_Linux_builds.mdwn4
-rw-r--r--doc/bugs/SSL_repos_does_not_show_up_in_Assistant.mdwn27
-rw-r--r--doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5.mdwn4
-rw-r--r--doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_1_625268287fe55e6f2254a6f31c637164._comment31
-rw-r--r--doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_2_3ed7589687fe251066677ad5a01bbbb0._comment11
-rw-r--r--doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_2_557d428d2aa6bf8e5d435e7f5350f5c6._comment7
-rw-r--r--doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_4_641389c7c52fa4f624ae74b5d32a6b1c._comment18
-rw-r--r--doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_5_8d5e7b7aa25a82e14611e0b852512adf._comment8
-rw-r--r--doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_6_391d0ba1cbe59de8e0cca2c29085d9fd._comment7
-rw-r--r--doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_7_a72bed153e91e32ebd8944e5ee17c186._comment15
-rw-r--r--doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage.mdwn7
-rw-r--r--doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage/comment_1_a10aaa758daee3ca0b064c60c0382ce8._comment18
-rw-r--r--doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage/comment_2_8a23d2743cdad0ef29265e59adcebd6f._comment84
-rw-r--r--doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly.mdwn81
-rw-r--r--doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly/comment_1_cdbf63d15795946f55aaea3da4755a22._comment10
-rw-r--r--doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly/comment_2_54bfedf6d33bcd9d44cc3c89f3216161._comment23
-rw-r--r--doc/bugs/Windows:_Doesn__39__t_want_to_handle_files_with_2_dots_in_filename.mdwn29
-rw-r--r--doc/bugs/Windows:_Doesn__39__t_want_to_handle_files_with_2_dots_in_filename/comment_1_43f6de166d1811e9f9bd6e6d8b152e05._comment9
-rw-r--r--doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh.mdwn1
-rw-r--r--doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_3_15bccb8c66a1a2fb5e13c10902e25866._comment15
-rw-r--r--doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_4_3d946c88a14929ffcb6f79eae6921e6c._comment34
-rw-r--r--doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_5_5d218a565af8548a29bb6b1447d38ecd._comment9
-rw-r--r--doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_6_709f8688e48c6d3d68730ed47e94a1e9._comment7
-rw-r--r--doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_7_d6f5ae804f2d8862c1c9b149f3626062._comment21
-rw-r--r--doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_8_d108cb76c69d5b5d1aa897607339623f._comment12
-rw-r--r--doc/bugs/annex-ssh-options_seem_to_be_ignored_in_some_occasion_by_the_assistnat.mdwn47
-rw-r--r--doc/bugs/annex.hardlink_no_longer_set_on_init_of_shared_repo.mdwn27
-rw-r--r--doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__.mdwn4
-rw-r--r--doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__/comment_2_6715d6e7bbc7ca8760ab561b1d124ce9._comment8
-rw-r--r--doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__/comment_3_b5a78d805e2e1628de299115a0a96e8d._comment23
-rw-r--r--doc/bugs/decides_that_FS_is_crippled_under_cowbuilder___40__symlinks_supported_etc__41__.mdwn2
-rw-r--r--doc/bugs/decides_that_FS_is_crippled_under_cowbuilder___40__symlinks_supported_etc__41__/comment_6_939f40d1dc9f5c68597391054ed353cf._comment7
-rw-r--r--doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build.mdwn1
-rw-r--r--doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_1_557c9147078e04f7b62a873bf94f7b6a._comment13
-rw-r--r--doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_2_3750368dfb19c90724670345c1b58f13._comment10
-rw-r--r--doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_2_44e295cb49cbce486577129d90ee6bb9._comment7
-rw-r--r--doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_4_367447b316e08d833f38349b9c86fd49._comment8
-rw-r--r--doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_5_cdd169574e50951bbb9d8fdd310f8bcc._comment46
-rw-r--r--doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_6_76a5e57d178ed85e5e075a22ac521eca._comment7
-rw-r--r--doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented.mdwn2
-rw-r--r--doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented/comment_1_f0c7e97cc7697172afa87b372d4d9277._comment16
-rw-r--r--doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented/comment_2_fc1d755b34f29e065e536be2acfe1ee1._comment10
-rw-r--r--doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down.mdwn2
-rw-r--r--doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_1_aa4bf99c99b285ceb135fd7690257565._comment20
-rw-r--r--doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_2_a6c8200184dab2ff3658843d412e5e1b._comment9
-rw-r--r--doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_2_c021d9ad7f31daab7ac3455554e1cc42._comment8
-rw-r--r--doc/bugs/gcrypt_special_remote_fails_on_bare_remote_repos.mdwn39
-rw-r--r--doc/bugs/gcrypt_special_remote_fails_on_bare_remote_repos/comment_1_7e690402c8dd663d60f7fc659c323ed8._comment26
-rw-r--r--doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget.mdwn30
-rw-r--r--doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_1_babea9a16f25b471026732ea63dd78a8._comment14
-rw-r--r--doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_2_dd24434631ae3898e8f5c1f878d1965f._comment9
-rw-r--r--doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_3_70f2b9e61e90528fdbef4d8a6e8dd972._comment13
-rw-r--r--doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_4_11e9ceb40aa5492a1a3e9ebfbd246832._comment7
-rw-r--r--doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_5_20ee285d62c35e18b78b121d8e4de81b._comment35
-rw-r--r--doc/bugs/git-annex_can__39__t_find_gpg_if_it__39__s_named_gpg2.mdwn2
-rw-r--r--doc/bugs/git-annex_can__39__t_find_gpg_if_it__39__s_named_gpg2/comment_1_b17661b0dbec3a72b2fd9608f0ba6823._comment23
-rw-r--r--doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_1_5dc6b520381a7b26563c641fcc284b31._comment8
-rw-r--r--doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_2_8c8d7ad99de78d282d202c541323a299._comment12
-rw-r--r--doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_3_08d950812832acd5aa54287a54fed207._comment7
-rw-r--r--doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_4_b8c8fac1dc7bd72cfa8a01495c4a5096._comment7
-rw-r--r--doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_5_e873c82ebc62e0af5051cf36ca084e0a._comment11
-rw-r--r--doc/bugs/git-annex_drop_fails_to_access_file:__47____47____47___target_URL_on_Windows/comment_2_504ea07f798838710cdbf6133135c815._comment39
-rw-r--r--doc/bugs/git-annex_rewrites_.ssh__47__config.mdwn17
-rw-r--r--doc/bugs/git-annex_rewrites_.ssh__47__config/comment_1_030209c8c309e976761825c6c51a602d._comment15
-rw-r--r--doc/bugs/git-annex_rewrites_.ssh__47__config/comment_2_827d2239cb0e9206e40f6dc26e37f140._comment8
-rw-r--r--doc/bugs/git-annex_rewrites_.ssh__47__config/comment_3_52ca93aa55270ec4817bb8ec7fba5920._comment10
-rw-r--r--doc/bugs/git-annex_rewrites_.ssh__47__config/comment_4_e457acce4d9f56ad4682c6746a1c4cdb._comment8
-rw-r--r--doc/bugs/git-annex_rewrites_.ssh__47__config/comment_5_4316aff6470006183e91004946387141._comment11
-rw-r--r--doc/bugs/git-annex_rewrites_.ssh__47__config/comment_6_316889f4c822828550c8378dec1eae4d._comment8
-rw-r--r--doc/bugs/git_annex_import_fails_on_filenames_with_newlines_in_them/comment_4_3f5e17f5d73892784640e468578819c4._comment15
-rw-r--r--doc/bugs/git_annex_info_is_reporting_file_as_not_annexed_in_direct_mode.mdwn38
-rw-r--r--doc/bugs/hPutChar_error_message_with_UTF-8_chars_above_7F_in_filenames.mdwn2
-rw-r--r--doc/bugs/hPutChar_error_message_with_UTF-8_chars_above_7F_in_filenames/comment_1_bb9cd3e753431b1f5dd8b94a1be4e4a3._comment20
-rw-r--r--doc/bugs/may_be_annex_should_be_more_attentive_to_non-annex_repos_and_not_annexify_them__63__.mdwn87
-rw-r--r--doc/bugs/openbsd_-_Assistant__47__WebApp__47__Configurators__47__AWS.hs:79:0:_-_error:_missing_binary_operator_before_token___34____40____34__.mdwn330
-rw-r--r--doc/bugs/openbsd_-_Assistant__47__WebApp__47__Configurators__47__AWS.hs:79:0:_-_error:_missing_binary_operator_before_token___34____40____34__/comment_1_9ff4036e726bf5eda8150ee167b1228b._comment25
-rw-r--r--doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_3_0d53226a3991e3685d1311e4b19c4023._comment55
-rw-r--r--doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_4_68bd50c6aeffc06d53eda7f38b06edee._comment7
-rw-r--r--doc/bugs/sync-git-annex_branch_not_syncing_in_the_assistant/comment_1_b832288844a3e7e944fa08a6edb97d29._comment18
-rw-r--r--doc/bugs/sync-git-annex_branch_not_syncing_in_the_assistant/comment_2_fbfc8929497f609916d9f3e5a0a9b531._comment18
-rw-r--r--doc/bugs/the_assistant_fail_to_correctly_add_or_sync_ssh_remote_with_non_ascii_letter_in_the_directory.mdwn40
-rw-r--r--doc/bugs/unannexed_files_are_immediately_re-annexed_by_assistant.mdwn2
-rw-r--r--doc/bugs/unannexed_files_are_immediately_re-annexed_by_assistant/comment_1_c9e7a23ae3d3a33944b083cbf9fcbc17._comment18
-rw-r--r--doc/bugs/wget_invocation_should_get_timeout_options/comment_1_a1126fe3f8ab74d623204f98c30dd052._comment18
-rw-r--r--doc/bugs/windows_installer_seems_have_been_broken.mdwn10
-rw-r--r--doc/bugs/windows_installer_seems_have_been_broken/comment_1_df8267a58cfa4685728e32115bbde81b._comment9
-rw-r--r--doc/bugs/windows_ssh_webapp_password_entry_broken.mdwn4
-rw-r--r--doc/builds.mdwn8
-rw-r--r--doc/coding_style/comment_3_61c178b997dd044f3531303913f8fa91._comment8
-rw-r--r--doc/coding_style/comment_4_433b7ba5e51e746f6b033ebb5c0e50a2._comment22
-rw-r--r--doc/design/assistant/polls/prioritizing_special_remotes.mdwn2
-rw-r--r--doc/design/encryption.mdwn2
-rw-r--r--doc/design/external_special_remote_protocol.mdwn2
-rw-r--r--doc/design/external_special_remote_protocol/comment_18_a0ed457b1b0d71747b6cf0c45897b5e1._comment19
-rw-r--r--doc/design/external_special_remote_protocol/comment_19_89d532a5013af24f15a0d003cbfbab25._comment13
-rw-r--r--doc/design/external_special_remote_protocol/comment_20_546331742e906a68d760c1bf44be63c4._comment13
-rw-r--r--doc/design/external_special_remote_protocol/comment_21_a8e8255516dc4741439615fa43b71829._comment8
-rw-r--r--doc/design/metadata.mdwn2
-rw-r--r--doc/devblog/day_315__scrambling.mdwn5
-rw-r--r--doc/devblog/day_316-318__chasing_dependencies_and_todos.mdwn24
-rw-r--r--doc/devblog/day_319__release_day.mdwn6
-rw-r--r--doc/devblog/day_320__caught_up.mdwn13
-rw-r--r--doc/devblog/day_321__download_verification.mdwn13
-rw-r--r--doc/devblog/day_321__download_verification/comment_1_424367fba4db56f4699952572bd3d605._comment7
-rw-r--r--doc/devblog/day_321__download_verification/comment_2_926cc165e99f2e125c909bd706460a05._comment7
-rw-r--r--doc/devblog/day_321__download_verification/comment_3_fb0ed50c27a493c3494bf2efbf9a9c5d._comment7
-rw-r--r--doc/encryption/comment_3_46e64e4856975706e06e2a012a5d8f67._comment8
-rw-r--r--doc/encryption/comment_4_fe8b181adef9a39a039ff96a0d587188._comment11
-rw-r--r--doc/forum/Add_file_to_git_index_while_in_direct_mode.mdwn20
-rw-r--r--doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_1_3eb43a983eba09f500b776f75b299341._comment8
-rw-r--r--doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_2_6945d9e930e7385f0abe6538622a9aa3._comment31
-rw-r--r--doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_3_8f77b5dcf582e88099b2e6e77563fb11._comment10
-rw-r--r--doc/forum/Backend_migration_and_special_remotes.mdwn22
-rw-r--r--doc/forum/Backend_migration_and_special_remotes/comment_1_cf6d45c43b14719fc5ea41d0cbfb612d._comment20
-rw-r--r--doc/forum/Can_Not_Sync_to_Git_Repo/comment_14_d2bb44a7607f3b2cddfd98cc2fa456d6._comment12
-rw-r--r--doc/forum/Central_server_with_automatically_merged_working_tree.mdwn30
-rw-r--r--doc/forum/Central_server_with_automatically_merged_working_tree/comment_1_bc850e25e48598a09353850021c6368c._comment17
-rw-r--r--doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com.mdwn3
-rw-r--r--doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com/comment_1_9c357a4a99930936124a58ffe105f87f._comment8
-rw-r--r--doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com/comment_2_b4aec96cbcd8752f273ecd810400acef._comment41
-rw-r--r--doc/forum/HowTo_Conflict_Resolution/comment_1_81c06a0590ee828749b8d07e008028bb._comment19
-rw-r--r--doc/forum/How_to_define_a_balanced_prefered_content.mdwn5
-rw-r--r--doc/forum/How_to_define_a_balanced_prefered_content/comment_1_d4c94791a5fc7d2e618a7e11bc5db569._comment8
-rw-r--r--doc/forum/Is_S3___34__Standard-Infrequent_Access__34___storage_class_supported__63__.mdwn1
-rw-r--r--doc/forum/Is_S3___34__Standard-Infrequent_Access__34___storage_class_supported__63__/comment_1_ddc2a1f2b1d810a40b459896993d2e8d._comment11
-rw-r--r--doc/forum/Layout_mismatch_between_symlinks_and_annex_objects.mdwn14
-rw-r--r--doc/forum/Layout_mismatch_between_symlinks_and_annex_objects/comment_1_854786810dc4246cdaa38ff10c55bbca._comment9
-rw-r--r--doc/forum/Layout_mismatch_between_symlinks_and_annex_objects/comment_2_9134154ba2ef3575c39c7848136b79a9._comment21
-rw-r--r--doc/forum/Trouble_adding_ssh_remote_using_assistant_on_windows/comment_4_9c12c508f62f2e76d09f4ed15af9c74e._comment8
-rw-r--r--doc/forum/Trying_to_delete_an_S3_repo_fails.mdwn3
-rw-r--r--doc/forum/Trying_to_delete_an_S3_repo_fails/comment_1_d8ab7757cd224439d55a18bfec405772._comment9
-rw-r--r--doc/forum/Trying_to_wrap_my_head_around_git-annex__44___need_some_feedback.mdwn39
-rw-r--r--doc/forum/Trying_to_wrap_my_head_around_git-annex__44___need_some_feedback/comment_1_86a86f1f3ea2e778e4022689391b887b._comment16
-rw-r--r--doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__.mdwn6
-rw-r--r--doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_1_b051dc30bf5a0fc9f5710c664f487ea9._comment14
-rw-r--r--doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_2_8775a1483b29e2cc8f0456473c24e51e._comment8
-rw-r--r--doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_3_cbaa3e0fa4e2347332b3929411f60d1d._comment11
-rw-r--r--doc/forum/external_special_remote_protocol_and_threads.mdwn3
-rw-r--r--doc/forum/external_special_remote_protocol_and_threads/comment_1_f29c2b0f0f5e349e36eb47176e33498f._comment20
-rw-r--r--doc/forum/external_special_remote_protocol_and_threads/comment_2_df97223aad2c8c95ce109944d64a59fe._comment10
-rw-r--r--doc/forum/git-annex_does_not_respect_preferred_content_settings.mdwn18
-rw-r--r--doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_1_ea347ea6ebdfe5ccfb0ed8786638f279._comment17
-rw-r--r--doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_2_5fac7c41c9841cea4234afa0a98b1636._comment8
-rw-r--r--doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_3_e2ea1843bbc9580ca7b4ec494f53b552._comment8
-rw-r--r--doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_4_59ede467a902f27b81f14e4706a7503a._comment8
-rw-r--r--doc/forum/mesh_configurations/comment_10_dc99216ee2fc0bd3d43234915a0305ab._comment19
-rw-r--r--doc/forum/monitoring_disk_usage_by_different_repos_on_same_drive.mdwn7
-rw-r--r--doc/forum/monitoring_disk_usage_by_different_repos_on_same_drive/comment_1_04718e5f87a7e0521a3165bc9fc951a8._comment12
-rw-r--r--doc/forum/refs__47__heads__47__synced__47__git-annex_receives_from_more_than_one_src./comment_1_c805561fa714ff3930742bb330b340c9._comment20
-rw-r--r--doc/forum/removing_remote.log_information_completely/comment_1_033f5b8f2b306c756b3f12e0a9bc6637._comment14
-rw-r--r--doc/forum/syncing_to_an_encrypted_remove_won__39__t_prompt_with_pinentry-gtk2/comment_1_daf41d0e59d384dfe5c86a53600ea3f7._comment8
-rw-r--r--doc/forum/test_whether_a_file_is_already_annexed/comment_1_55bcb41abae2b70c046e3da1c4d8c761._comment8
-rw-r--r--doc/forum/test_whether_a_file_is_already_annexed/comment_2_e2531c7e77bbc75f24af7ce5f789826e._comment22
-rw-r--r--doc/forum/test_whether_a_file_is_already_annexed/comment_3_21f51c99b1aac8b3292f60bd83493e94._comment15
-rw-r--r--doc/forum/test_whether_a_file_is_already_annexed/comment_4_2c61629777f47ce3e697298d5736f997._comment22
-rw-r--r--doc/forum/webapp:_disabling_a_paired_repository/comment_2_28cf58629b9774426c084d80964151d7._comment19
-rw-r--r--doc/forum/webapp:_disabling_a_paired_repository/comment_3_799d66b116e8ddf42e624bb4a082337c._comment8
-rw-r--r--doc/forum/what_are___95__exactly__95___limitations_of_git-annex_when_using_it_like_dropbox.mdwn6
-rw-r--r--doc/forum/what_are___95__exactly__95___limitations_of_git-annex_when_using_it_like_dropbox/comment_1_b76e6d3c4d530fd6735460aa5ab03ad5._comment8
-rw-r--r--doc/git-annex-enableremote.mdwn16
-rw-r--r--doc/git-annex-init.mdwn8
-rw-r--r--doc/git-annex-initremote.mdwn6
-rw-r--r--doc/git-annex-reinit.mdwn3
-rw-r--r--doc/git-annex-reinject.mdwn4
-rw-r--r--doc/git-annex-setkey.mdwn3
-rw-r--r--doc/git-annex-status.mdwn6
-rw-r--r--doc/git-annex-sync.mdwn22
-rw-r--r--doc/git-annex.mdwn10
-rw-r--r--doc/install.mdwn1
-rw-r--r--doc/install/Linux_standalone.mdwn6
-rw-r--r--doc/install/Windows.mdwn8
-rw-r--r--doc/install/fromsource.mdwn35
-rw-r--r--doc/news/version_5.20150727.mdwn35
-rw-r--r--doc/news/version_5.20150731.mdwn13
-rw-r--r--doc/news/version_5.20150916.mdwn32
-rw-r--r--doc/news/version_5.20150916/comment_1_4e708dc3d845a5db6ae1aa05b52f8677._comment10
-rw-r--r--doc/news/version_5.20150930.mdwn19
-rw-r--r--doc/news/version_5.20150930/comment_1_f77fe435289343ae0511ffceade23ba7._comment13
-rw-r--r--doc/news/version_5.20150930/comment_2_77faf81efaffb2637cfa0caba1758768._comment8
-rw-r--r--doc/news/version_5.20150930/comment_3_1cd9afc5c56781844fbff908c910056b._comment7
-rw-r--r--doc/news/version_5.20150930/comment_4_42c068c99a7658bdad61fbb740ffe603._comment11
-rw-r--r--doc/news/version_5.20150930/comment_5_f52b7d5c1cffaae12aac1cd7905481a2._comment8
-rw-r--r--doc/special_remotes.mdwn1
-rw-r--r--doc/special_remotes/S3.mdwn16
-rw-r--r--doc/tips/Repositories_with_large_number_of_files/comment_2_f8417d9ebcfdcba34dfbbf76070ad95c._comment8
-rw-r--r--doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_1_9d0694204984ec96379a62f0f70ba696._comment15
-rw-r--r--doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_2_1c33d3f62ec7119c116ad02b75c91f8a._comment8
-rw-r--r--doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_3_7d3ea328a42c3a1df01f87e5233eca62._comment8
-rw-r--r--doc/tips/public_Amazon_S3_remote.mdwn2
-rw-r--r--doc/tips/setup_a_public_repository_on_a_web_site/comment_4_e20ea0dc04d4d62b699271483f81a136._comment9
-rw-r--r--doc/tips/skydriveannex/comment_11_13692d8cb9ccf10ced26d90739385a6a._comment47
-rw-r--r--doc/tips/using_the_web_as_a_special_remote/comment_12_1704dcd7fc94432af5aa18459495c9ab._comment7
-rw-r--r--doc/todo/Facilitate_public_pretty_S3_URLs.mdwn4
-rw-r--r--doc/todo/Nearline_support.mdwn8
-rw-r--r--doc/todo/annex.hardlink_should_also_affect_copy_to_origin.mdwn7
-rw-r--r--doc/todo/autoenable__61__true_for_special_remotes.mdwn17
-rw-r--r--doc/todo/checksum_verification_on_transfer/comment_2_1267ff79ddc84dad146bdb11a7bdf8b2._comment35
-rw-r--r--doc/todo/checksum_verification_on_transfer/comment_3_2fa9445619032a378264de8b59958c60._comment17
-rw-r--r--doc/todo/deferred_update_mode.mdwn28
-rw-r--r--doc/todo/does_not_preserve_timestamps/comment_7_eefa6afce824f1069bb5216b392405b7._comment7
-rw-r--r--doc/todo/does_not_preserve_timestamps/comment_8_f2a32e39356f7b772ab9cf3136436700._comment10
-rw-r--r--doc/todo/does_not_preserve_timestamps/comment_9_62736ee2f299d62f685800353fc36ccf._comment8
-rw-r--r--doc/todo/enable_a_discussion_forum_or_support_system.mdwn2
-rw-r--r--doc/todo/find_unused_in_any_commit.mdwn3
-rw-r--r--doc/todo/make_status_show_staged_files.mdwn2
-rw-r--r--doc/todo/patch:_Command__47__Unused.hs:_Change_--unused-refspec_back_to_--used-refspec.mdwn35
-rw-r--r--doc/todo/use_git-mktree_rather_than_index_file.mdwn29
-rw-r--r--doc/todo/windows_support.mdwn7
-rw-r--r--doc/todo/wishlist:_matching_options_for_branches.mdwn1
-rw-r--r--doc/todo/wishlist:_matching_options_for_branches/comment_1_c0d442b646dc40d870b10098a0ee5408._comment20
-rw-r--r--doc/todo/wishlist:_use_hardlinks_for_local_clones/comment_5_90aacf46abdeab34ec8e402613da679d._comment9
-rw-r--r--doc/todo/wishlist:_use_hardlinks_for_local_clones/comment_6_3971f77ef70c81e4bf94cd0cab1335ac._comment8
-rw-r--r--doc/todo/xmpp_removal.mdwn25
-rw-r--r--doc/todo/xmpp_removal/comment_1_457f98a4354ad6c17dcfb5eeefb4b11e._comment13
-rw-r--r--doc/trust.mdwn4
-rw-r--r--git-annex.cabal2
-rw-r--r--stack.yaml31
-rwxr-xr-xstandalone/windows/build-simple.sh5
-rwxr-xr-xstandalone/windows/build.sh22
-rw-r--r--standalone/windows/ssh-keygen.cmd31
-rw-r--r--standalone/windows/ssh.cmd31
301 files changed, 4920 insertions, 763 deletions
diff --git a/.mailmap b/.mailmap
index 3013a3935..2ea582b7c 100644
--- a/.mailmap
+++ b/.mailmap
@@ -24,5 +24,6 @@ Richard Hartmann <richih@debian.org> https://www.google.com/accounts/o8/id?id=AI
Yaroslav Halchenko <debian@onerussian.com>
Yaroslav Halchenko <debian@onerussian.com> http://yarikoptic.myopenid.com/ <site-myopenid@web>
Yaroslav Halchenko <debian@onerussian.com> https://www.google.com/accounts/o8/id?id=AItOawnx8kHW66N3BqmkVpgtXDlYMvr8TJ5VvfY <Yaroslav@web>
+Yaroslav Halchenko <debian@onerussian.com> https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4 <https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4@web>
Øyvind A. Holm <sunny@sunbase.org> http://sunny256.sunbase.org/ <sunny256@web>
Øyvind A. Holm <sunny@sunbase.org> https://sunny256.wordpress.com/ <sunny256@web>
diff --git a/Annex/Content.hs b/Annex/Content.hs
index 077407071..5032e2691 100644
--- a/Annex/Content.hs
+++ b/Annex/Content.hs
@@ -14,9 +14,10 @@ module Annex.Content (
inAnnexCheck,
lockContent,
getViaTmp,
- getViaTmpChecked,
- getViaTmpUnchecked,
- prepGetViaTmpChecked,
+ getViaTmp',
+ checkDiskSpaceToGet,
+ VerifyConfig(..),
+ Types.Remote.unVerified,
prepTmp,
withTmp,
checkDiskSpace,
@@ -62,6 +63,9 @@ import Annex.Content.Direct
import Annex.ReplaceFile
import Utility.LockPool
import Messages.Progress
+import qualified Types.Remote
+import qualified Types.Backend
+import qualified Backend
{- Checks if a given key's content is currently present. -}
inAnnex :: Key -> Annex Bool
@@ -212,33 +216,79 @@ lockContent key a = do
maybe noop cleanuplockfile mlockfile
#endif
-{- Runs an action, passing it a temporary filename to get,
- - and if the action succeeds, moves the temp file into
- - the annex as a key's content. -}
-getViaTmp :: Key -> (FilePath -> Annex Bool) -> Annex Bool
-getViaTmp = getViaTmpChecked (return True)
+{- Runs an action, passing it the temp file to get,
+ - and if the action succeeds, verifies the file matches
+ - the key and moves the file into the annex as a key's content. -}
+getViaTmp :: VerifyConfig -> Key -> (FilePath -> Annex (Bool, Types.Remote.Verification)) -> Annex Bool
+getViaTmp v key action = checkDiskSpaceToGet key False $
+ getViaTmp' v key action
{- Like getViaTmp, but does not check that there is enough disk space
- for the incoming key. For use when the key content is already on disk
- and not being copied into place. -}
-getViaTmpUnchecked :: Key -> (FilePath -> Annex Bool) -> Annex Bool
-getViaTmpUnchecked = finishGetViaTmp (return True)
-
-getViaTmpChecked :: Annex Bool -> Key -> (FilePath -> Annex Bool) -> Annex Bool
-getViaTmpChecked check key action =
- prepGetViaTmpChecked key False $
- finishGetViaTmp check key action
+getViaTmp' :: VerifyConfig -> Key -> (FilePath -> Annex (Bool, Types.Remote.Verification)) -> Annex Bool
+getViaTmp' v key action = do
+ tmpfile <- prepTmp key
+ (ok, verification) <- action tmpfile
+ if ok
+ then ifM (verifyKeyContent v verification key tmpfile)
+ ( do
+ moveAnnex key tmpfile
+ logStatus key InfoPresent
+ return True
+ , do
+ warning "verification of content failed"
+ liftIO $ nukeFile tmpfile
+ return False
+ )
+ -- On transfer failure, the tmp file is left behind, in case
+ -- caller wants to resume its transfer
+ else return False
-{- Prepares to download a key via a tmp file, and checks that there is
- - enough free disk space.
+{- Verifies that a file is the expected content of a key.
+ - Configuration can prevent verification, for either a
+ - particular remote or always.
+ -
+ - Most keys have a known size, and if so, the file size is checked.
+ -
+ - When the key's backend allows verifying the content (eg via checksum),
+ - it is checked.
+ -}
+verifyKeyContent :: VerifyConfig -> Types.Remote.Verification -> Key -> FilePath -> Annex Bool
+verifyKeyContent _ Types.Remote.Verified _ _ = return True
+verifyKeyContent v Types.Remote.UnVerified k f = ifM (shouldVerify v)
+ ( verifysize <&&> verifycontent
+ , return True
+ )
+ where
+ verifysize = case Types.Key.keySize k of
+ Nothing -> return True
+ Just size -> do
+ size' <- liftIO $ catchDefaultIO 0 $ getFileSize f
+ return (size' == size)
+ verifycontent = case Types.Backend.verifyKeyContent =<< Backend.maybeLookupBackendName (Types.Key.keyBackendName k) of
+ Nothing -> return True
+ Just verifier -> verifier k f
+
+data VerifyConfig = AlwaysVerify | NoVerify | RemoteVerify Remote | DefaultVerify
+
+shouldVerify :: VerifyConfig -> Annex Bool
+shouldVerify AlwaysVerify = return True
+shouldVerify NoVerify = return False
+shouldVerify DefaultVerify = annexVerify <$> Annex.getGitConfig
+shouldVerify (RemoteVerify r) = shouldVerify DefaultVerify
+ <&&> pure (remoteAnnexVerify (Types.Remote.gitconfig r))
+
+{- Checks if there is enough free disk space to download a key
+ - to its temp file.
-
- When the temp file already exists, count the space it is using as
- free, since the download will overwrite it or resume.
-
- Wen there's enough free space, runs the download action.
-}
-prepGetViaTmpChecked :: Key -> a -> Annex a -> Annex a
-prepGetViaTmpChecked key unabletoget getkey = do
+checkDiskSpaceToGet :: Key -> a -> Annex a -> Annex a
+checkDiskSpaceToGet key unabletoget getkey = do
tmp <- fromRepo $ gitAnnexTmpObjectLocation key
e <- liftIO $ doesFileExist tmp
@@ -253,19 +303,6 @@ prepGetViaTmpChecked key unabletoget getkey = do
, return unabletoget
)
-finishGetViaTmp :: Annex Bool -> Key -> (FilePath -> Annex Bool) -> Annex Bool
-finishGetViaTmp check key action = do
- tmpfile <- prepTmp key
- ifM (action tmpfile <&&> check)
- ( do
- moveAnnex key tmpfile
- logStatus key InfoPresent
- return True
- -- the tmp file is left behind, in case caller wants
- -- to resume its transfer
- , return False
- )
-
prepTmp :: Key -> Annex FilePath
prepTmp key = do
tmp <- fromRepo $ gitAnnexTmpObjectLocation key
diff --git a/Annex/Direct.hs b/Annex/Direct.hs
index d88dc43fb..35a5b5013 100644
--- a/Annex/Direct.hs
+++ b/Annex/Direct.hs
@@ -153,7 +153,7 @@ addDirect file cache = do
-
- A lock file is used to avoid races with any other caller of mergeDirect.
-
- - To avoid other git processes from making change to the index while our
+ - To avoid other git processes from making changes to the index while our
- merge is in progress, the index lock file is used as the temp index
- file. This is the same as what git does when updating the index
- normally.
@@ -162,7 +162,8 @@ mergeDirect :: Maybe Git.Ref -> Maybe Git.Ref -> Git.Branch -> Annex Bool -> Git
mergeDirect startbranch oldref branch resolvemerge commitmode = exclusively $ do
reali <- liftIO . absPath =<< fromRepo indexFile
tmpi <- liftIO . absPath =<< fromRepo indexFileLock
- liftIO $ copyFile reali tmpi
+ liftIO $ whenM (doesFileExist reali) $
+ copyFile reali tmpi
d <- fromRepo gitAnnexMergeDir
liftIO $ do
@@ -178,7 +179,8 @@ mergeDirect startbranch oldref branch resolvemerge commitmode = exclusively $ do
mergeDirectCleanup d (fromMaybe Git.Sha.emptyTree oldref)
mergeDirectCommit merged startbranch branch commitmode
- liftIO $ rename tmpi reali
+ liftIO $ whenM (doesFileExist tmpi) $
+ rename tmpi reali
return r
where
diff --git a/Annex/Init.hs b/Annex/Init.hs
index e59f04572..26502511e 100644
--- a/Annex/Init.hs
+++ b/Annex/Init.hs
@@ -58,12 +58,18 @@ genDescription Nothing = do
initialize :: Maybe String -> Annex ()
initialize mdescription = do
+ {- Has to come before any commits are made as the shared
+ - clone heuristic expects no local objects. -}
+ sharedclone <- checkSharedClone
+
{- This will make the first commit to git, so ensure git is set up
- properly to allow commits when running it. -}
ensureCommit $ Annex.Branch.create
prepUUID
initialize'
+
+ initSharedClone sharedclone
u <- getUUID
describeUUID u =<< genDescription mdescription
@@ -87,7 +93,6 @@ initialize' = do
switchHEADBack
)
createInodeSentinalFile
- checkSharedClone
uninitialize :: Annex ()
uninitialize = do
@@ -198,8 +203,12 @@ enableDirectMode = unlessM isDirect $ do
maybe noop (`toDirect` f) =<< isAnnexLink f
void $ liftIO clean
-checkSharedClone :: Annex ()
-checkSharedClone = whenM (inRepo Git.Objects.isSharedClone) $ do
+checkSharedClone :: Annex Bool
+checkSharedClone = inRepo Git.Objects.isSharedClone
+
+initSharedClone :: Bool -> Annex ()
+initSharedClone False = return ()
+initSharedClone True = do
showSideAction "Repository was cloned with --shared; setting annex.hardlink=true and making repository untrusted."
u <- getUUID
trustSet u UnTrusted
diff --git a/Annex/SpecialRemote.hs b/Annex/SpecialRemote.hs
new file mode 100644
index 000000000..44bc666ce
--- /dev/null
+++ b/Annex/SpecialRemote.hs
@@ -0,0 +1,87 @@
+{- git-annex special remote configuration
+ -
+ - Copyright 2011-2015 Joey Hess <id@joeyh.name>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+module Annex.SpecialRemote where
+
+import Common.Annex
+import Remote (remoteTypes, remoteMap)
+import Types.Remote (RemoteConfig, RemoteConfigKey, typename, setup)
+import Logs.Remote
+import Logs.Trust
+import qualified Git.Config
+
+import qualified Data.Map as M
+import Data.Ord
+
+type RemoteName = String
+
+{- See if there's an existing special remote with this name.
+ -
+ - Prefer remotes that are not dead when a name appears multiple times. -}
+findExisting :: RemoteName -> Annex (Maybe (UUID, RemoteConfig))
+findExisting name = do
+ t <- trustMap
+ matches <- sortBy (comparing $ \(u, _c) -> M.lookup u t)
+ . findByName name
+ <$> Logs.Remote.readRemoteLog
+ return $ headMaybe matches
+
+newConfig :: RemoteName -> RemoteConfig
+newConfig = M.singleton nameKey
+
+findByName :: RemoteName -> M.Map UUID RemoteConfig -> [(UUID, RemoteConfig)]
+findByName n = filter (matching . snd) . M.toList
+ where
+ matching c = case M.lookup nameKey c of
+ Nothing -> False
+ Just n'
+ | n' == n -> True
+ | otherwise -> False
+
+remoteNames :: Annex [RemoteName]
+remoteNames = do
+ m <- Logs.Remote.readRemoteLog
+ return $ mapMaybe (M.lookup nameKey . snd) $ M.toList m
+
+{- find the specified remote type -}
+findType :: RemoteConfig -> Either String RemoteType
+findType config = maybe unspecified specified $ M.lookup typeKey config
+ where
+ unspecified = Left "Specify the type of remote with type="
+ specified s = case filter (findtype s) remoteTypes of
+ [] -> Left $ "Unknown remote type " ++ s
+ (t:_) -> Right t
+ findtype s i = typename i == s
+
+{- The name of a configured remote is stored in its config using this key. -}
+nameKey :: RemoteConfigKey
+nameKey = "name"
+
+{- The type of a remote is stored in its config using this key. -}
+typeKey :: RemoteConfigKey
+typeKey = "type"
+
+autoEnableKey :: RemoteConfigKey
+autoEnableKey = "autoenable"
+
+autoEnable :: Annex ()
+autoEnable = do
+ remotemap <- M.filter configured <$> readRemoteLog
+ enabled <- remoteMap id
+ forM_ (M.toList remotemap) $ \(u, c) -> unless (u `M.member` enabled) $ do
+ case (M.lookup nameKey c, findType c) of
+ (Just name, Right t) -> whenM (canenable u) $ do
+ showSideAction $ "Auto enabling special remote " ++ name
+ res <- tryNonAsync $ setup t (Just u) Nothing c
+ case res of
+ Left e -> warning (show e)
+ Right _ -> return ()
+ _ -> return ()
+ where
+ configured rc = fromMaybe False $
+ Git.Config.isTrue =<< M.lookup autoEnableKey rc
+ canenable u = (/= DeadTrusted) <$> lookupTrust u
diff --git a/Annex/Transfer.hs b/Annex/Transfer.hs
index a2bac34be..e72f737ea 100644
--- a/Annex/Transfer.hs
+++ b/Annex/Transfer.hs
@@ -5,7 +5,7 @@
- Licensed under the GNU GPL version 3 or higher.
-}
-{-# LANGUAGE CPP #-}
+{-# LANGUAGE CPP, FlexibleInstances #-}
module Annex.Transfer (
module X,
@@ -24,20 +24,31 @@ import Annex.Notification as X
import Annex.Perms
import Utility.Metered
import Utility.LockPool
+import Types.Remote (Verification(..))
import Control.Concurrent
-type TransferAction = MeterUpdate -> Annex Bool
-
type TransferObserver = Bool -> Transfer -> TransferInfo -> Annex ()
+class Observable a where
+ observeBool :: a -> Bool
+ observeFailure :: a
+
+instance Observable Bool where
+ observeBool = id
+ observeFailure = False
+
+instance Observable (Bool, Verification) where
+ observeBool = fst
+ observeFailure = (False, UnVerified)
+
noObserver :: TransferObserver
noObserver _ _ _ = noop
-upload :: UUID -> Key -> AssociatedFile -> RetryDecider -> TransferObserver -> TransferAction -> NotifyWitness -> Annex Bool
+upload :: Observable v => UUID -> Key -> AssociatedFile -> RetryDecider -> TransferObserver -> (MeterUpdate -> Annex v) -> NotifyWitness -> Annex v
upload u key f d o a _witness = runTransfer (Transfer Upload u key) f d o a
-download :: UUID -> Key -> AssociatedFile -> RetryDecider -> TransferObserver -> TransferAction -> NotifyWitness -> Annex Bool
+download :: Observable v => UUID -> Key -> AssociatedFile -> RetryDecider -> TransferObserver -> (MeterUpdate -> Annex v) -> NotifyWitness -> Annex v
download u key f d o a _witness = runTransfer (Transfer Download u key) f d o a
{- Runs a transfer action. Creates and locks the lock file while the
@@ -52,7 +63,7 @@ download u key f d o a _witness = runTransfer (Transfer Download u key) f d o a
- An upload can be run from a read-only filesystem, and in this case
- no transfer information or lock file is used.
-}
-runTransfer :: Transfer -> Maybe FilePath -> RetryDecider -> TransferObserver -> TransferAction -> Annex Bool
+runTransfer :: Observable v => Transfer -> Maybe FilePath -> RetryDecider -> TransferObserver -> (MeterUpdate -> Annex v) -> Annex v
runTransfer = runTransfer' False
{- Like runTransfer, but ignores any existing transfer lock file for the
@@ -60,10 +71,10 @@ runTransfer = runTransfer' False
-
- Note that this may result in confusing progress meter display in the
- webapp, if multiple processes are writing to the transfer info file. -}
-alwaysRunTransfer :: Transfer -> Maybe FilePath -> RetryDecider -> TransferObserver -> TransferAction -> Annex Bool
+alwaysRunTransfer :: Observable v => Transfer -> Maybe FilePath -> RetryDecider -> TransferObserver -> (MeterUpdate -> Annex v) -> Annex v
alwaysRunTransfer = runTransfer' True
-runTransfer' :: Bool -> Transfer -> Maybe FilePath -> RetryDecider -> TransferObserver -> TransferAction -> Annex Bool
+runTransfer' :: Observable v => Bool -> Transfer -> Maybe FilePath -> RetryDecider -> TransferObserver -> (MeterUpdate -> Annex v) -> Annex v
runTransfer' ignorelock t file shouldretry transferobserver transferaction = do
info <- liftIO $ startTransferInfo file
(meter, tfile, metervar) <- mkProgressUpdater t info
@@ -72,12 +83,12 @@ runTransfer' ignorelock t file shouldretry transferobserver transferaction = do
if inprogress && not ignorelock
then do
showNote "transfer already in progress, or unable to take transfer lock"
- return False
+ return observeFailure
else do
- ok <- retry info metervar $ transferaction meter
+ v <- retry info metervar $ transferaction meter
liftIO $ cleanup tfile lck
- transferobserver ok t info
- return ok
+ transferobserver (observeBool v) t info
+ return v
where
#ifndef mingw32_HOST_OS
prep tfile mode info = do
@@ -128,7 +139,7 @@ runTransfer' ignorelock t file shouldretry transferobserver transferaction = do
let newinfo = oldinfo { bytesComplete = Just b }
if shouldretry oldinfo newinfo
then retry newinfo metervar run
- else return False
+ else return observeFailure
getbytescomplete metervar
| transferDirection t == Upload =
liftIO $ readMVar metervar
diff --git a/Assistant/MakeRemote.hs b/Assistant/MakeRemote.hs
index a5eace724..8a70e30c2 100644
--- a/Assistant/MakeRemote.hs
+++ b/Assistant/MakeRemote.hs
@@ -16,7 +16,7 @@ import qualified Remote.Rsync as Rsync
import qualified Remote.GCrypt as GCrypt
import qualified Git
import qualified Git.Command
-import qualified Command.InitRemote
+import qualified Annex.SpecialRemote
import Logs.UUID
import Logs.Remote
import Git.Remote
@@ -46,10 +46,10 @@ addRemote a = do
{- Inits a rsync special remote, and returns its name. -}
makeRsyncRemote :: RemoteName -> String -> Annex String
makeRsyncRemote name location = makeRemote name location $ const $ void $
- go =<< Command.InitRemote.findExisting name
+ go =<< Annex.SpecialRemote.findExisting name
where
go Nothing = setupSpecialRemote name Rsync.remote config Nothing
- (Nothing, Command.InitRemote.newConfig name)
+ (Nothing, Annex.SpecialRemote.newConfig name)
go (Just (u, c)) = setupSpecialRemote name Rsync.remote config Nothing
(Just u, c)
config = M.fromList
@@ -78,16 +78,16 @@ initSpecialRemote name remotetype mcreds config = go 0
go :: Int -> Annex RemoteName
go n = do
let fullname = if n == 0 then name else name ++ show n
- r <- Command.InitRemote.findExisting fullname
+ r <- Annex.SpecialRemote.findExisting fullname
case r of
Nothing -> setupSpecialRemote fullname remotetype config mcreds
- (Nothing, Command.InitRemote.newConfig fullname)
+ (Nothing, Annex.SpecialRemote.newConfig fullname)
Just _ -> go (n + 1)
{- Enables an existing special remote. -}
enableSpecialRemote :: SpecialRemoteMaker
enableSpecialRemote name remotetype mcreds config = do
- r <- Command.InitRemote.findExisting name
+ r <- Annex.SpecialRemote.findExisting name
case r of
Nothing -> error $ "Cannot find a special remote named " ++ name
Just (u, c) -> setupSpecialRemote' False name remotetype config mcreds (Just u, c)
diff --git a/Backend/Hash.hs b/Backend/Hash.hs
index f14af7b3a..e6e5210a1 100644
--- a/Backend/Hash.hs
+++ b/Backend/Hash.hs
@@ -53,7 +53,7 @@ genBackend :: Hash -> Backend
genBackend hash = Backend
{ name = hashName hash
, getKey = keyValue hash
- , fsckKey = Just $ checkKeyChecksum hash
+ , verifyKeyContent = Just $ checkKeyChecksum hash
, canUpgradeKey = Just needsUpgrade
, fastMigrate = Just trivialMigrate
, isStableKey = const True
diff --git a/Backend/URL.hs b/Backend/URL.hs
index 77397bdde..4279ebd83 100644
--- a/Backend/URL.hs
+++ b/Backend/URL.hs
@@ -22,7 +22,7 @@ backend :: Backend
backend = Backend
{ name = "URL"
, getKey = const $ return Nothing
- , fsckKey = Nothing
+ , verifyKeyContent = Nothing
, canUpgradeKey = Nothing
, fastMigrate = Nothing
-- The content of an url can change at any time, so URL keys are
diff --git a/Backend/WORM.hs b/Backend/WORM.hs
index 59f9a7354..e1dbae2cb 100644
--- a/Backend/WORM.hs
+++ b/Backend/WORM.hs
@@ -21,7 +21,7 @@ backend :: Backend
backend = Backend
{ name = "WORM"
, getKey = keyValue
- , fsckKey = Nothing
+ , verifyKeyContent = Nothing
, canUpgradeKey = Nothing
, fastMigrate = Nothing
, isStableKey = const True
diff --git a/Build/BundledPrograms.hs b/Build/BundledPrograms.hs
index 4ceee3b52..bd1c25359 100644
--- a/Build/BundledPrograms.hs
+++ b/Build/BundledPrograms.hs
@@ -20,7 +20,7 @@ bundledPrograms :: [FilePath]
bundledPrograms = catMaybes
[ Nothing
#ifndef mingw32_HOST_OS
- -- git is not included in the windows bundle; msysgit is used
+ -- git is not included in the windows bundle; git for windows is used
, Just "git"
-- Not strictly needed in PATH by git-annex, but called
-- by git when it sshes to a remote.
@@ -28,7 +28,6 @@ bundledPrograms = catMaybes
, Just "git-receive-pack"
, Just "git-shell"
#endif
- , Just "cp"
#ifndef mingw32_HOST_OS
-- using xargs on windows led to problems, so it's not used there
, Just "xargs"
@@ -38,7 +37,7 @@ bundledPrograms = catMaybes
#ifndef mingw32_HOST_OS
-- OS X has ssh installed by default.
-- Linux probably has ssh, but not guaranteed.
- -- On Windows, msysgit provides ssh.
+ -- On Windows, git provides ssh.
, Just "ssh"
, Just "ssh-keygen"
#endif
@@ -46,22 +45,25 @@ bundledPrograms = catMaybes
#ifndef mingw32_HOST_OS
, Just "sh"
#endif
- , SysConfig.gpg
- , ifset SysConfig.curl "curl"
#ifndef darwin_HOST_OS
-- wget on OSX has been problimatic, looking for certs in the wrong
-- places. Don't ship it, use curl or the OSX's own wget if it has
-- one.
, ifset SysConfig.wget "wget"
#endif
- , ifset SysConfig.bup "bup"
, SysConfig.lsof
, SysConfig.gcrypt
+#ifndef mingw32_HOST_OS
+ -- All these utilities are included in git for Windows
+ , ifset SysConfig.curl "curl"
+ , SysConfig.gpg
, SysConfig.sha1
, SysConfig.sha256
, SysConfig.sha512
, SysConfig.sha224
, SysConfig.sha384
+ , Just "cp"
+#endif
#ifdef linux_HOST_OS
-- used to unpack the tarball when upgrading
, Just "gunzip"
diff --git a/Build/DistributionUpdate.hs b/Build/DistributionUpdate.hs
index 1afaec994..acd27b92b 100644
--- a/Build/DistributionUpdate.hs
+++ b/Build/DistributionUpdate.hs
@@ -31,7 +31,7 @@ signingKey = "89C809CB"
-- it in the repository.
autobuilds :: [(URLString, FilePath)]
autobuilds =
- (map linuxarch ["i386", "amd64", "armel"]) ++
+ (map linuxarch ["i386", "amd64", "armel", "i386-ancient"]) ++
(map androidversion ["4.0", "4.3", "5.0"]) ++
[ (autobuild "x86_64-apple-yosemite/git-annex.dmg", "git-annex/OSX/current/10.10_Yosemite/git-annex.dmg")
, (autobuild "windows/git-annex-installer.exe", "git-annex/windows/current/git-annex-installer.exe")
diff --git a/Build/NullSoftInstaller.hs b/Build/NullSoftInstaller.hs
index e300036e4..7af6babef 100644
--- a/Build/NullSoftInstaller.hs
+++ b/Build/NullSoftInstaller.hs
@@ -1,16 +1,17 @@
{- Generates a NullSoft installer program for git-annex on Windows.
- -
- - To build the installer, git-annex should already be built by cabal,
- - and ssh and rsync etc, as well as cygwin libraries, already installed
- - from cygwin.
-
- This uses the Haskell nsis package (cabal install nsis)
- to generate a .nsi file, which is then used to produce
- git-annex-installer.exe
-
- The installer includes git-annex, and utilities it uses, with the
- - exception of git. The user needs to install git separately,
- - and the installer checks for that.
+ - exception of git and some utilities that are bundled with git.
+ - The user needs to install git separately, and the installer checks
+ - for that.
+ -
+ - To build the installer, git-annex should already be built by cabal,
+ - and the necessary utility programs (rsync and wget) already installed
+ - in PATH from msys32.
-
- Copyright 2013-2015 Joey Hess <id@joeyh.name>
-
@@ -34,6 +35,7 @@ import Utility.Path
import Utility.CopyFile
import Utility.SafeCommand
import Utility.Process
+import Utility.Exception
import Build.BundledPrograms
main = do
@@ -42,19 +44,14 @@ main = do
mustSucceed "ln" [File "dist/build/git-annex/git-annex.exe", File gitannex]
let license = tmpdir </> licensefile
mustSucceed "sh" [Param "-c", Param $ "zcat standalone/licences.gz > '" ++ license ++ "'"]
- extrabins <- forM (cygwinPrograms) $ \f -> do
- p <- searchPath f
- when (isNothing p) $
- print ("unable to find in PATH", f)
- return p
- dlls <- forM (catMaybes extrabins) findCygLibs
- dllpaths <- mapM searchPath (nub (concat dlls))
- webappscript <- vbsLauncher tmpdir "git-annex-webapp" "git-annex webapp"
+ webappscript <- vbsLauncher tmpdir "git-annex-webapp" "git annex webapp"
autostartscript <- vbsLauncher tmpdir "git-annex-autostart" "git annex assistant --autostart"
let htmlhelp = tmpdir </> "git-annex.html"
writeFile htmlhelp htmlHelpText
- writeFile nsifile $ makeInstaller gitannex license htmlhelp
- (wrappers ++ catMaybes (extrabins ++ dllpaths))
+ let gitannexcmd = tmpdir </> "git-annex.cmd"
+ writeFile gitannexcmd "git annex %*"
+ writeFile nsifile $ makeInstaller
+ gitannex gitannexcmd license htmlhelp winPrograms
[ webappscript, autostartscript ]
mustSucceed "makensis" [File nsifile]
removeFile nsifile -- left behind if makensis fails
@@ -67,12 +64,13 @@ main = do
False -> error $ cmd ++ " failed"
{- Generates a .vbs launcher which runs a command without any visible DOS
- - box. -}
+ - box. It expects to be passed the directory where git-annex is installed. -}
vbsLauncher :: FilePath -> String -> String -> IO String
vbsLauncher tmpdir basename cmd = do
let f = tmpdir </> basename ++ ".vbs"
writeFile f $ unlines
[ "Set objshell=CreateObject(\"Wscript.Shell\")"
+ , "objShell.CurrentDirectory = Wscript.Arguments.item(0)"
, "objShell.Run(\"" ++ cmd ++ "\"), 0, False"
]
return f
@@ -113,8 +111,8 @@ needGit = strConcat
, fromString "You can install git from http:////git-scm.com//"
]
-makeInstaller :: FilePath -> FilePath -> FilePath -> [FilePath] -> [FilePath] -> String
-makeInstaller gitannex license htmlhelp extrabins launchers = nsis $ do
+makeInstaller :: FilePath -> FilePath -> FilePath -> FilePath -> [FilePath] -> [FilePath] -> String
+makeInstaller gitannex gitannexcmd license htmlhelp extrabins launchers = nsis $ do
name "git-annex"
outFile $ str installer
{- Installing into the same directory as git avoids needing to modify
@@ -134,50 +132,61 @@ makeInstaller gitannex license htmlhelp extrabins launchers = nsis $ do
Development.NSIS.createDirectory "$SMPROGRAMS"
createShortcut startMenuItem
[ Target "wscript.exe"
- , Parameters "\"$INSTDIR/git-annex-webapp.vbs\""
+ , Parameters "\"$INSTDIR/cmd/git-annex-webapp.vbs\" \"$INSTDIR/cmd\""
, StartOptions "SW_SHOWNORMAL"
- , IconFile "$INSTDIR/cmd/git-annex.exe"
+ , IconFile "$INSTDIR/usr/bin/git-annex.exe"
, IconIndex 2
, Description "Git Annex (Webapp)"
]
delete [RebootOK] $ oldStartMenuItem
createShortcut autoStartItem
[ Target "wscript.exe"
- , Parameters "\"$INSTDIR/git-annex-autostart.vbs\""
+ , Parameters "\"$INSTDIR/cmd/git-annex-autostart.vbs\" \"$INSTDIR/cmd\""
, StartOptions "SW_SHOWNORMAL"
- , IconFile "$INSTDIR/cmd/git-annex.exe"
+ , IconFile "$INSTDIR/usr/bin/git-annex.exe"
, IconIndex 2
, Description "git-annex autostart"
]
section "cmd" [] $ do
- setOutPath "$INSTDIR\\cmd"
+ -- Remove old files no longer installed in the cmd
+ -- directory.
+ removefilesFrom "$INSTDIR/cmd" (gitannex:extrabins)
+ -- Install everything to the same location git puts its
+ -- bins. This makes "git annex" work in the git bash
+ -- shell, since git expects to find the git-annex binary
+ -- there.
+ setOutPath "$INSTDIR\\usr\\bin"
mapM_ addfile (gitannex:extrabins)
+ -- This little wrapper is installed in the cmd directory,
+ -- so that "git-annex" works (as well as "git annex"),
+ -- when only that directory is in PATH (ie, in a ms-dos
+ -- prompt window).
+ setOutPath "$INSTDIR\\cmd"
+ addfile gitannexcmd
section "meta" [] $ do
- setOutPath "$INSTDIR\\doc\\git\\html"
+ -- git opens this file when git annex --help is run.
+ -- (Program Files/Git/mingw32/share/doc/git-doc/git-annex.html)
+ setOutPath "$INSTDIR\\mingw32\\share\\doc\\git-doc"
addfile htmlhelp
setOutPath "$INSTDIR"
addfile license
+ setOutPath "$INSTDIR\\cmd"
mapM_ addfile launchers
writeUninstaller $ str uninstaller
uninstall $ do
delete [RebootOK] $ startMenuItem
delete [RebootOK] $ autoStartItem
- removefilesFrom "$INSTDIR/cmd" (gitannex:extrabins)
- removefilesFrom "$INSTDIR\\doc\\git\\html" [htmlhelp]
- removefilesFrom "$INSTDIR" $
- launchers ++
- [ license
- , uninstaller
- ]
+ removefilesFrom "$INSTDIR/usr/bin" (gitannex:extrabins)
+ removefilesFrom "$INSTDIR/cmd" (gitannexcmd:launchers)
+ removefilesFrom "$INSTDIR\\mingw32\\share\\doc\\git-doc" [htmlhelp]
+ removefilesFrom "$INSTDIR" [license, uninstaller]
where
addfile f = file [] (str f)
removefilesFrom d = mapM_ (\f -> delete [RebootOK] $ fromString $ d ++ "/" ++ takeFileName f)
-cygwinPrograms :: [FilePath]
-cygwinPrograms = map (\p -> p ++ ".exe") bundledPrograms
+winPrograms :: [FilePath]
+winPrograms = map (\p -> p ++ ".exe") bundledPrograms
--- msysgit opens Program Files/Git/doc/git/html/git-annex.html
--- when git annex --help is run.
htmlHelpText :: String
htmlHelpText = unlines
[ "<html>"
@@ -188,18 +197,3 @@ htmlHelpText = unlines
, "</body>"
, "</html"
]
-
--- Find cygwin libraries used by the specified executable.
-findCygLibs :: FilePath -> IO [FilePath]
-findCygLibs p = filter iscyg . mapMaybe parse . lines <$> readProcess "ldd" [p]
- where
- parse l = case words (dropWhile isSpace l) of
- (dll:"=>":_dllpath:_offset:[]) -> Just dll
- _ -> Nothing
- iscyg f = "cyg" `isPrefixOf` f || "lib" `isPrefixOf` f
-
-wrappers :: [FilePath]
-wrappers =
- [ "standalone\\windows\\ssh.cmd"
- , "standalone\\windows\\ssh-keygen.cmd"
- ]
diff --git a/CmdLine.hs b/CmdLine.hs
index a512d868d..e6ee0c2e6 100644
--- a/CmdLine.hs
+++ b/CmdLine.hs
@@ -36,8 +36,9 @@ dispatch fuzzyok allargs allcmds globaloptions fields getgitrepo progname progde
Annex.eval state $ do
checkEnvironment
forM_ fields $ uncurry Annex.setField
- (cmd, seek, globalconfig) <- parsewith cmdparser
+ (cmd, seek, globalconfig) <- parsewith False cmdparser
(\a -> inRepo $ a . Just)
+ (liftIO . O.handleParseResult)
when (cmdnomessages cmd) $
Annex.setOutput QuietOutput
getParsed globalconfig
@@ -47,20 +48,30 @@ dispatch fuzzyok allargs allcmds globaloptions fields getgitrepo progname progde
performCommandAction cmd seek $
shutdown $ cmdnocommit cmd
go (Left norepo) = do
- (_, a, _globalconfig) <- parsewith
- (fromMaybe (throw norepo) . cmdnorepo)
- (\a -> a =<< Git.Config.global)
- a
+ let ingitrepo = \a -> a =<< Git.Config.global
+ -- Parse command line with full cmdparser first,
+ -- so that help can be displayed for bad parses
+ -- even when not run in a repo.
+ res <- parsewith False cmdparser ingitrepo return
+ case res of
+ Failure _ -> void (O.handleParseResult res)
+ _ -> do
+ -- Parse command line in norepo mode.
+ (_, a, _globalconfig) <- parsewith True
+ (fromMaybe (throw norepo) . cmdnorepo)
+ ingitrepo
+ O.handleParseResult
+ a
- parsewith getparser ingitrepo =
+ parsewith secondrun getparser ingitrepo handleresult =
case parseCmd progname progdesc globaloptions allargs allcmds getparser of
O.Failure _ -> do
-- parse failed, so fall back to
-- fuzzy matching, or to showing usage
- when fuzzy $
+ when (fuzzy && not secondrun) $
ingitrepo autocorrect
- liftIO (O.handleParseResult (parseCmd progname progdesc globaloptions correctedargs allcmds getparser))
- res -> liftIO (O.handleParseResult res)
+ handleresult (parseCmd progname progdesc globaloptions correctedargs allcmds getparser)
+ res -> handleresult res
where
autocorrect = Git.AutoCorrect.prepare (fromJust inputcmdname) cmdname cmds
(fuzzy, cmds, inputcmdname, args) = findCmd fuzzyok allargs allcmds
diff --git a/CmdLine/GitAnnex/Options.hs b/CmdLine/GitAnnex/Options.hs
index b9c0fe7b7..2651b92e4 100644
--- a/CmdLine/GitAnnex/Options.hs
+++ b/CmdLine/GitAnnex/Options.hs
@@ -8,9 +8,11 @@
module CmdLine.GitAnnex.Options where
import Options.Applicative
+import Options.Applicative.Builder.Internal
import Common.Annex
import qualified Git.Config
+import qualified Git.Construct
import Git.Types
import Types.TrustLevel
import Types.NumCopies
@@ -26,6 +28,8 @@ import qualified Limit.Wanted
import CmdLine.Option
import CmdLine.Usage
import CmdLine.GlobalSetter
+import qualified Backend
+import qualified Types.Backend as Backend
-- Global options that are accepted by all git-annex sub-commands,
-- although not always used.
@@ -40,16 +44,19 @@ gitAnnexGlobalOptions = commonGlobalOptions ++
( long "trust" <> metavar paramRemote
<> help "override trust setting"
<> hidden
+ <> completeRemotes
)
, globalSetter (Remote.forceTrust SemiTrusted) $ strOption
( long "semitrust" <> metavar paramRemote
<> help "override trust setting back to default"
<> hidden
+ <> completeRemotes
)
, globalSetter (Remote.forceTrust UnTrusted) $ strOption
( long "untrust" <> metavar paramRemote
<> help "override trust setting to untrusted"
<> hidden
+ <> completeRemotes
)
, globalSetter setgitconfig $ strOption
( long "config" <> short 'c' <> metavar "NAME=VALUE"
@@ -98,7 +105,9 @@ parseAutoOption = switch
)
parseRemoteOption :: Parser RemoteName -> Parser (DeferredParse Remote)
-parseRemoteOption p = DeferredParse . (fromJust <$$> Remote.byNameWithUUID) . Just <$> p
+parseRemoteOption p = DeferredParse
+ . (fromJust <$$> Remote.byNameWithUUID)
+ . Just <$> p
data FromToOptions
= FromRemote (DeferredParse Remote)
@@ -117,12 +126,14 @@ parseFromOption :: Parser (DeferredParse Remote)
parseFromOption = parseRemoteOption $ strOption
( long "from" <> short 'f' <> metavar paramRemote
<> help "source remote"
+ <> completeRemotes
)
parseToOption :: Parser (DeferredParse Remote)
parseToOption = parseRemoteOption $ strOption
( long "to" <> short 't' <> metavar paramRemote
<> help "destination remote"
+ <> completeRemotes
)
-- Options for acting on keys, rather than work tree files.
@@ -179,6 +190,7 @@ nonWorkTreeMatchingOptions' =
( long "in" <> short 'i' <> metavar paramRemote
<> help "match files present in a remote"
<> hidden
+ <> completeRemotes
)
, globalSetter Limit.addCopies $ strOption
( long "copies" <> short 'C' <> metavar paramRemote
@@ -199,6 +211,7 @@ nonWorkTreeMatchingOptions' =
( long "inbackend" <> short 'B' <> metavar paramName
<> help "match files using a key-value backend"
<> hidden
+ <> completeBackends
)
, globalSetter Limit.addInAllGroup $ strOption
( long "inallgroup" <> metavar paramGroup
@@ -299,3 +312,13 @@ parseDaemonOptions = DaemonOptions
( long "stop"
<> help "stop daemon"
)
+completeRemotes :: HasCompleter f => Mod f a
+completeRemotes = completer $ mkCompleter $ \input -> do
+ r <- maybe (pure Nothing) (Just <$$> Git.Config.read)
+ =<< Git.Construct.fromCwd
+ return $ filter (input `isPrefixOf`)
+ (maybe [] (mapMaybe remoteName . remotes) r)
+
+
+completeBackends :: HasCompleter f => Mod f a
+completeBackends = completeWith (map Backend.name Backend.list)
diff --git a/Command/AddUrl.hs b/Command/AddUrl.hs
index de3bff407..4b34051e9 100644
--- a/Command/AddUrl.hs
+++ b/Command/AddUrl.hs
@@ -154,7 +154,7 @@ downloadRemoteFile r relaxed uri file sz = do
-- so that the remote knows what url it
-- should use to download it.
setTempUrl urlkey loguri
- let downloader = Remote.retrieveKeyFile r urlkey (Just file)
+ let downloader = \dest p -> fst <$> Remote.retrieveKeyFile r urlkey (Just file) dest p
ret <- downloadWith downloader urlkey (Remote.uuid r) loguri file
removeTempUrl urlkey
return ret
@@ -247,7 +247,7 @@ addUrlFileQuvi relaxed quviurl videourl file = do
- it later. -}
urlinfo <- Url.withUrlOptions (Url.getUrlInfo videourl)
let sizedkey = addSizeUrlKey urlinfo key
- prepGetViaTmpChecked sizedkey Nothing $ do
+ checkDiskSpaceToGet sizedkey Nothing $ do
tmp <- fromRepo $ gitAnnexTmpObjectLocation key
showOutput
ok <- Transfer.notifyTransfer Transfer.Download (Just file) $
@@ -305,7 +305,7 @@ downloadWeb url urlinfo file = do
- stable. -}
downloadWith :: (FilePath -> MeterUpdate -> Annex Bool) -> Key -> UUID -> URLString -> FilePath -> Annex (Maybe Key)
downloadWith downloader dummykey u url file =
- prepGetViaTmpChecked dummykey Nothing $ do
+ checkDiskSpaceToGet dummykey Nothing $ do
tmp <- fromRepo $ gitAnnexTmpObjectLocation dummykey
ifM (runtransfer tmp)
( do
diff --git a/Command/Drop.hs b/Command/Drop.hs
index feb89b70e..b23f81758 100644
--- a/Command/Drop.hs
+++ b/Command/Drop.hs
@@ -46,6 +46,7 @@ parseDropFromOption :: Parser (DeferredParse Remote)
parseDropFromOption = parseRemoteOption $ strOption
( long "from" <> short 'f' <> metavar paramRemote
<> help "drop content from a remote"
+ <> completeRemotes
)
seek :: DropOptions -> CommandSeek
diff --git a/Command/EnableRemote.hs b/Command/EnableRemote.hs
index 1d4c4af5e..84216dd78 100644
--- a/Command/EnableRemote.hs
+++ b/Command/EnableRemote.hs
@@ -11,7 +11,7 @@ import Common.Annex
import Command
import qualified Logs.Remote
import qualified Types.Remote as R
-import qualified Command.InitRemote as InitRemote
+import qualified Annex.SpecialRemote
import qualified Data.Map as M
@@ -26,21 +26,20 @@ seek = withWords start
start :: [String] -> CommandStart
start [] = unknownNameError "Specify the name of the special remote to enable."
-start (name:ws) = go =<< InitRemote.findExisting name
+start (name:ws) = go =<< Annex.SpecialRemote.findExisting name
where
config = Logs.Remote.keyValToConfig ws
go Nothing = unknownNameError "Unknown special remote name."
go (Just (u, c)) = do
let fullconfig = config `M.union` c
- t <- InitRemote.findType fullconfig
-
+ t <- either error return (Annex.SpecialRemote.findType fullconfig)
showStart "enableremote" name
next $ perform t u fullconfig
unknownNameError :: String -> Annex a
unknownNameError prefix = do
- names <- InitRemote.remoteNames
+ names <- Annex.SpecialRemote.remoteNames
error $ prefix ++ "\n" ++
if null names
then "(No special remotes are currently known; perhaps use initremote instead?)"
diff --git a/Command/Fsck.hs b/Command/Fsck.hs
index a522f5349..dbbb0e67f 100644
--- a/Command/Fsck.hs
+++ b/Command/Fsck.hs
@@ -67,6 +67,7 @@ optParser desc = FsckOptions
<*> optional (parseRemoteOption $ strOption
( long "from" <> short 'f' <> metavar paramRemote
<> help "check remote"
+ <> completeRemotes
))
<*> optional parseincremental
<*> optional (parseKeyOptions False)
@@ -160,7 +161,7 @@ performRemote key file backend numcopies remote =
( return (Just True)
, ifM (Annex.getState Annex.fast)
( return Nothing
- , Just <$>
+ , Just . fst <$>
Remote.retrieveKeyFile remote key Nothing tmp dummymeter
)
)
@@ -348,12 +349,15 @@ checkBackendOr :: (Key -> Annex String) -> Backend -> Key -> FilePath -> Annex B
checkBackendOr bad backend key file =
checkBackendOr' bad backend key file (return True)
+-- The postcheck action is run after the content is verified,
+-- in order to detect situations where the file is changed while being
+-- verified (particularly in direct mode).
checkBackendOr' :: (Key -> Annex String) -> Backend -> Key -> FilePath -> Annex Bool -> Annex Bool
checkBackendOr' bad backend key file postcheck =
- case Types.Backend.fsckKey backend of
+ case Types.Backend.verifyKeyContent backend of
Nothing -> return True
- Just a -> do
- ok <- a key file
+ Just verifier -> do
+ ok <- verifier key file
ifM postcheck
( do
unless ok $ do
diff --git a/Command/Get.hs b/Command/Get.hs
index 324ff2752..58fbefed2 100644
--- a/Command/Get.hs
+++ b/Command/Get.hs
@@ -68,17 +68,16 @@ start' expensivecheck from key afile = stopUnless (not <$> inAnnex key) $
next a
perform :: Key -> AssociatedFile -> CommandPerform
-perform key afile = stopUnless (getViaTmp key $ getKeyFile key afile) $
+perform key afile = stopUnless (getKey key afile) $
next $ return True -- no cleanup needed
{- Try to find a copy of the file in one of the remotes,
- and copy it to here. -}
-getKeyFile :: Key -> AssociatedFile -> FilePath -> Annex Bool
-getKeyFile key afile dest = getKeyFile' key afile dest
- =<< Remote.keyPossibilities key
+getKey :: Key -> AssociatedFile -> Annex Bool
+getKey key afile = getKey' key afile =<< Remote.keyPossibilities key
-getKeyFile' :: Key -> AssociatedFile -> FilePath -> [Remote] -> Annex Bool
-getKeyFile' key afile dest = dispatch
+getKey' :: Key -> AssociatedFile -> [Remote] -> Annex Bool
+getKey' key afile = dispatch
where
dispatch [] = do
showNote "not available"
@@ -102,6 +101,9 @@ getKeyFile' key afile dest = dispatch
| Remote.hasKeyCheap r =
either (const False) id <$> Remote.hasKey r key
| otherwise = return True
- docopy r = download (Remote.uuid r) key afile noRetry noObserver $ \p -> do
- showAction $ "from " ++ Remote.name r
- Remote.retrieveKeyFile r key afile dest p
+ docopy r witness = getViaTmp (RemoteVerify r) key $ \dest ->
+ download (Remote.uuid r) key afile noRetry noObserver
+ (\p -> do
+ showAction $ "from " ++ Remote.name r
+ Remote.retrieveKeyFile r key afile dest p
+ ) witness
diff --git a/Command/Info.hs b/Command/Info.hs
index a744f7402..25a537e8d 100644
--- a/Command/Info.hs
+++ b/Command/Info.hs
@@ -24,7 +24,6 @@ import Command
import Utility.DataUnits
import Utility.DiskFree
import Annex.Content
-import Annex.Link
import Types.Key
import Logs.UUID
import Logs.Trust
@@ -80,7 +79,7 @@ emptyStatInfo = StatInfo Nothing Nothing M.empty Nothing
type StatState = StateT StatInfo Annex
cmd :: Command
-cmd = noCommit $ dontCheck repoExists $ withGlobalOptions (jsonOption : annexedMatchingOptions) $
+cmd = noCommit $ withGlobalOptions (jsonOption : annexedMatchingOptions) $
command "info" SectionQuery
"shows information about the specified item or the repository as a whole"
(paramRepeating paramItem) (seek <$$> optParser)
@@ -127,8 +126,7 @@ itemInfo o p = ifM (isdir p)
v' <- Remote.nameToUUID' p
case v' of
Right u -> uuidInfo o u
- Left _ -> maybe noinfo (fileInfo o p)
- =<< isAnnexLink p
+ Left _ -> ifAnnexed p (fileInfo o p) noinfo
)
where
isdir = liftIO . catchBoolIO . (isDirectory <$$> getFileStatus)
diff --git a/Command/Init.hs b/Command/Init.hs
index 0f32f1ba1..d969669f8 100644
--- a/Command/Init.hs
+++ b/Command/Init.hs
@@ -10,6 +10,7 @@ module Command.Init where
import Common.Annex
import Command
import Annex.Init
+import qualified Annex.SpecialRemote
cmd :: Command
cmd = dontCheck repoExists $
@@ -29,4 +30,5 @@ start ws = do
perform :: String -> CommandPerform
perform description = do
initialize $ if null description then Nothing else Just description
+ Annex.SpecialRemote.autoEnable
next $ return True
diff --git a/Command/InitRemote.hs b/Command/InitRemote.hs
index a3a946944..60b5220e5 100644
--- a/Command/InitRemote.hs
+++ b/Command/InitRemote.hs
@@ -10,14 +10,12 @@ module Command.InitRemote where
import qualified Data.Map as M
import Common.Annex
+import Annex.SpecialRemote
import Command
import qualified Remote
import qualified Logs.Remote
import qualified Types.Remote as R
import Logs.UUID
-import Logs.Trust
-
-import Data.Ord
cmd :: Command
cmd = command "initremote" SectionSetup
@@ -38,7 +36,7 @@ start (name:ws) = ifM (isJust <$> findExisting name)
( error $ "There is already a remote named \"" ++ name ++ "\""
, do
let c = newConfig name
- t <- findType config
+ t <- either error return (findType config)
showStart "initremote" name
next $ perform t name $ M.union config c
@@ -57,47 +55,3 @@ cleanup u name c = do
describeUUID u name
Logs.Remote.configSet u c
return True
-
-{- See if there's an existing special remote with this name. -}
-findExisting :: String -> Annex (Maybe (UUID, R.RemoteConfig))
-findExisting name = do
- t <- trustMap
- matches <- sortBy (comparing $ \(u, _c) -> M.lookup u t )
- . findByName name
- <$> Logs.Remote.readRemoteLog
- return $ headMaybe matches
-
-newConfig :: String -> R.RemoteConfig
-newConfig = M.singleton nameKey
-
-findByName :: String -> M.Map UUID R.RemoteConfig -> [(UUID, R.RemoteConfig)]
-findByName n = filter (matching . snd) . M.toList
- where
- matching c = case M.lookup nameKey c of
- Nothing -> False
- Just n'
- | n' == n -> True
- | otherwise -> False
-
-remoteNames :: Annex [String]
-remoteNames = do
- m <- Logs.Remote.readRemoteLog
- return $ mapMaybe (M.lookup nameKey . snd) $ M.toList m
-
-{- find the specified remote type -}
-findType :: R.RemoteConfig -> Annex RemoteType
-findType config = maybe unspecified specified $ M.lookup typeKey config
- where
- unspecified = error "Specify the type of remote with type="
- specified s = case filter (findtype s) Remote.remoteTypes of
- [] -> error $ "Unknown remote type " ++ s
- (t:_) -> return t
- findtype s i = R.typename i == s
-
-{- The name of a configured remote is stored in its config using this key. -}
-nameKey :: String
-nameKey = "name"
-
-{- The type of a remote is stored in its config using this key. -}
-typeKey :: String
-typeKey = "type"
diff --git a/Command/Move.hs b/Command/Move.hs
index d95bce6ab..a83ea04dd 100644
--- a/Command/Move.hs
+++ b/Command/Move.hs
@@ -166,7 +166,8 @@ fromPerform src move key afile = ifM (inAnnex key)
go = notifyTransfer Download afile $
download (Remote.uuid src) key afile noRetry noObserver $ \p -> do
showAction $ "from " ++ Remote.name src
- getViaTmp key $ \t -> Remote.retrieveKeyFile src key afile t p
+ getViaTmp (RemoteVerify src) key $ \t ->
+ Remote.retrieveKeyFile src key afile t p
dispatch _ False = stop -- failed
dispatch False True = next $ return True -- copy complete
dispatch True True = do -- finish moving
diff --git a/Command/ReKey.hs b/Command/ReKey.hs
index 597be57a5..fe13d4dd4 100644
--- a/Command/ReKey.hs
+++ b/Command/ReKey.hs
@@ -52,7 +52,7 @@ perform file oldkey newkey = do
{- Make a hard link to the old key content (when supported),
- to avoid wasting disk space. -}
linkKey :: Key -> Key -> Annex Bool
-linkKey oldkey newkey = getViaTmpUnchecked newkey $ \tmp -> do
+linkKey oldkey newkey = getViaTmp' DefaultVerify newkey $ \tmp -> unVerified $ do
src <- calcRepo $ gitAnnexLocation oldkey
liftIO $ ifM (doesFileExist tmp)
( return True
diff --git a/Command/RecvKey.hs b/Command/RecvKey.hs
index cb24dbb47..988c4f90e 100644
--- a/Command/RecvKey.hs
+++ b/Command/RecvKey.hs
@@ -16,9 +16,6 @@ import Utility.Rsync
import Logs.Transfer
import Command.SendKey (fieldTransfer)
import qualified CmdLine.GitAnnexShell.Fields as Fields
-import qualified Types.Key
-import qualified Types.Backend
-import qualified Backend
cmd :: Command
cmd = noCommit $ command "recvkey" SectionPlumbing
@@ -29,8 +26,12 @@ seek :: CmdParams -> CommandSeek
seek = withKeys start
start :: Key -> CommandStart
-start key = fieldTransfer Download key $ \_p ->
- ifM (getViaTmp key go)
+start key = fieldTransfer Download key $ \_p -> do
+ -- Always verify content when a direct mode repo is sending a file,
+ -- as the file could change while being transferred.
+ fromdirect <- isJust <$> Fields.getField Fields.direct
+ let verify = if fromdirect then AlwaysVerify else DefaultVerify
+ ifM (getViaTmp verify key go)
( do
-- forcibly quit after receiving one key,
-- and shutdown cleanly
@@ -39,46 +40,7 @@ start key = fieldTransfer Download key $ \_p ->
, return False
)
where
- go tmp = do
+ go tmp = unVerified $ do
opts <- filterRsyncSafeOptions . maybe [] words
<$> getField "RsyncOptions"
- ok <- liftIO $ rsyncServerReceive (map Param opts) tmp
-
- -- The file could have been received with permissions that
- -- do not allow reading it, so this is done before the
- -- directcheck.
- freezeContent tmp
-
- if ok
- then ifM (isJust <$> Fields.getField Fields.direct)
- ( directcheck tmp
- , return True
- )
- else return False
- {- If the sending repository uses direct mode, the file
- - it sends could be modified as it's sending it. So check
- - that the right size file was received, and that the key/value
- - Backend is happy with it. -}
- directcheck tmp = do
- oksize <- case Types.Key.keySize key of
- Nothing -> return True
- Just size -> do
- size' <- liftIO $ getFileSize tmp
- return $ size == size'
- if oksize
- then case Backend.maybeLookupBackendName (Types.Key.keyBackendName key) of
- Nothing -> do
- warning "recvkey: received key from direct mode repository using unknown backend; cannot check; discarding"
- return False
- Just backend -> maybe (return True) runfsck
- (Types.Backend.fsckKey backend)
- else do
- warning "recvkey: received key with wrong size; discarding"
- return False
- where
- runfsck check = ifM (check key tmp)
- ( return True
- , do
- warning "recvkey: received key from direct mode repository seems to have changed as it was transferred; discarding"
- return False
- )
+ liftIO $ rsyncServerReceive (map Param opts) tmp
diff --git a/Command/Reinit.hs b/Command/Reinit.hs
index 0d144e945..1be692871 100644
--- a/Command/Reinit.hs
+++ b/Command/Reinit.hs
@@ -13,6 +13,7 @@ import Annex.Init
import Annex.UUID
import Types.UUID
import qualified Remote
+import qualified Annex.SpecialRemote
cmd :: Command
cmd = dontCheck repoExists $
@@ -38,4 +39,5 @@ perform s = do
else Remote.nameToUUID s
storeUUID u
initialize'
+ Annex.SpecialRemote.autoEnable
next $ return True
diff --git a/Command/Reinject.hs b/Command/Reinject.hs
index 76e1420ff..1c21b4ae6 100644
--- a/Command/Reinject.hs
+++ b/Command/Reinject.hs
@@ -11,8 +11,6 @@ import Common.Annex
import Command
import Logs.Location
import Annex.Content
-import qualified Command.Fsck
-import qualified Backend
cmd :: Command
cmd = command "reinject" SectionUtility
@@ -36,29 +34,19 @@ start (src:dest:[])
start _ = error "specify a src file and a dest file"
perform :: FilePath -> FilePath -> Key -> CommandPerform
-perform src dest key = do
- {- Check the content before accepting it. -}
- v <- Backend.getBackend dest key
- case v of
- Nothing -> stop
- Just backend ->
- ifM (Command.Fsck.checkKeySizeOr reject key src
- <&&> Command.Fsck.checkBackendOr reject backend key src)
- ( do
- unlessM move $ error "mv failed!"
- next $ cleanup key
- , error "not reinjecting"
- )
+perform src _dest key = ifM move
+ ( next $ cleanup key
+ , error "failed"
+ )
where
- -- the file might be on a different filesystem,
+ -- The file might be on a different filesystem,
-- so moveFile is used rather than simply calling
- -- moveToObjectDir; disk space is also
- -- checked this way.
- move = getViaTmp key $ \tmp ->
+ -- moveToObjectDir; disk space is also checked this way,
+ -- and the file's content is verified to match the key.
+ move = getViaTmp DefaultVerify key $ \tmp -> unVerified $
liftIO $ catchBoolIO $ do
moveFile src tmp
return True
- reject = const $ return "wrong file?"
cleanup :: Key -> CommandCleanup
cleanup key = do
diff --git a/Command/SetKey.hs b/Command/SetKey.hs
index d8216a0b4..13715d3a7 100644
--- a/Command/SetKey.hs
+++ b/Command/SetKey.hs
@@ -35,7 +35,7 @@ perform file key = do
-- the file might be on a different filesystem, so moveFile is used
-- rather than simply calling moveAnnex; disk space is also
-- checked this way.
- ok <- getViaTmp key $ \dest ->
+ ok <- getViaTmp DefaultVerify key $ \dest -> unVerified $
if dest /= file
then liftIO $ catchBoolIO $ do
moveFile file dest
diff --git a/Command/Status.hs b/Command/Status.hs
index 7c19185ac..35195fec6 100644
--- a/Command/Status.hs
+++ b/Command/Status.hs
@@ -1,6 +1,6 @@
{- git-annex command
-
- - Copyright 2013 Joey Hess <id@joeyh.name>
+ - Copyright 2013-2015 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU GPL version 3 or higher.
-}
@@ -12,9 +12,9 @@ import Command
import Annex.CatFile
import Annex.Content.Direct
import Config
-import qualified Git.LsFiles as LsFiles
+import Git.Status
import qualified Git.Ref
-import qualified Git
+import Git.FilePath
cmd :: Command
cmd = notBareRepo $ noCommit $ noMessages $ withGlobalOptions [jsonOption] $
@@ -24,68 +24,51 @@ cmd = notBareRepo $ noCommit $ noMessages $ withGlobalOptions [jsonOption] $
seek :: CmdParams -> CommandSeek
seek = withWords start
-
-start :: [FilePath] -> CommandStart
-start [] = do
- -- Like git status, when run without a directory, behave as if
- -- given the path to the top of the repository.
- top <- fromRepo Git.repoPath
- d <- liftIO $ relPathCwdToFile top
- start' [d]
-start locs = start' locs
-start' :: [FilePath] -> CommandStart
-start' locs = do
- (l, cleanup) <- inRepo $ LsFiles.modifiedOthers locs
+start :: [FilePath] -> CommandStart
+start locs = do
+ (l, cleanup) <- inRepo $ getStatus locs
getstatus <- ifM isDirect
( return statusDirect
- , return $ Just <$$> statusIndirect
+ , return $ \s -> pure (Just s)
)
- forM_ l $ \f -> maybe noop (showFileStatus f) =<< getstatus f
+ forM_ l $ \s -> maybe noop displayStatus =<< getstatus s
void $ liftIO cleanup
stop
-data Status
- = NewFile
- | DeletedFile
- | ModifiedFile
-
-showStatus :: Status -> String
-showStatus NewFile = "?"
-showStatus DeletedFile = "D"
-showStatus ModifiedFile = "M"
-
-showFileStatus :: FilePath -> Status -> Annex ()
-showFileStatus f s = unlessM (showFullJSON [("status", ss), ("file", f)]) $
- liftIO $ putStrLn $ ss ++ " " ++ f
- where
- ss = showStatus s
+displayStatus :: Status -> Annex ()
+-- renames not shown in this simplified status
+displayStatus (Renamed _ _) = noop
+displayStatus s = do
+ let c = statusChar s
+ absf <- fromRepo $ fromTopFilePath (statusFile s)
+ f <- liftIO $ relPathCwdToFile absf
+ unlessM (showFullJSON [("status", [c]), ("file", f)]) $
+ liftIO $ putStrLn $ [c] ++ " " ++ f
-statusDirect :: FilePath -> Annex (Maybe Status)
-statusDirect f = checkstatus =<< liftIO (catchMaybeIO $ getFileStatus f)
+-- Git thinks that present direct mode files are typechanged;
+-- check their content to see if they are modified or not.
+statusDirect :: Status -> Annex (Maybe Status)
+statusDirect (TypeChanged t) = do
+ absf <- fromRepo $ fromTopFilePath t
+ f <- liftIO $ relPathCwdToFile absf
+ v <- liftIO (catchMaybeIO $ getFileStatus f)
+ case v of
+ Nothing -> return $ Just $ Deleted t
+ Just s
+ | not (isSymbolicLink s) ->
+ checkkey f s =<< catKeyFile f
+ | otherwise -> Just <$> checkNew f t
where
- checkstatus Nothing = return $ Just DeletedFile
- checkstatus (Just s)
- -- Git thinks that present direct mode files are modifed,
- -- so have to check.
- | not (isSymbolicLink s) = checkkey s =<< catKeyFile f
- | otherwise = Just <$> checkNew f
-
- checkkey s (Just k) = ifM (sameFileStatus k f s)
+ checkkey f s (Just k) = ifM (sameFileStatus k f s)
( return Nothing
- , return $ Just ModifiedFile
+ , return $ Just $ Modified t
)
- checkkey _ Nothing = Just <$> checkNew f
-
-statusIndirect :: FilePath -> Annex Status
-statusIndirect f = ifM (liftIO $ isJust <$> catchMaybeIO (getFileStatus f))
- ( checkNew f
- , return DeletedFile
- )
- where
+ checkkey f _ Nothing = Just <$> checkNew f t
+statusDirect s = pure (Just s)
-checkNew :: FilePath -> Annex Status
-checkNew f = ifM (isJust <$> catObjectDetails (Git.Ref.fileRef f))
- ( return ModifiedFile
- , return NewFile
+checkNew :: FilePath -> TopFilePath -> Annex Status
+checkNew f t = ifM (isJust <$> catObjectDetails (Git.Ref.fileRef f))
+ ( return (Modified t)
+ , return (Untracked t)
)
diff --git a/Command/Sync.hs b/Command/Sync.hs
index 87a0fbcf6..964b45dc2 100644
--- a/Command/Sync.hs
+++ b/Command/Sync.hs
@@ -37,7 +37,7 @@ import qualified Remote.Git
import Config
import Annex.Wanted
import Annex.Content
-import Command.Get (getKeyFile')
+import Command.Get (getKey')
import qualified Command.Move
import Logs.Location
import Annex.Drop
@@ -60,21 +60,36 @@ cmd = withGlobalOptions [jobsOption] $
data SyncOptions = SyncOptions
{ syncWith :: CmdParams
- , contentOption :: Bool
+ , commitOption :: Bool
, messageOption :: Maybe String
+ , pullOption :: Bool
+ , pushOption :: Bool
+ , contentOption :: Bool
, keyOptions :: Maybe KeyOptions
}
optParser :: CmdParamsDesc -> Parser SyncOptions
optParser desc = SyncOptions
- <$> cmdParams desc
- <*> invertableSwitch "content" False
- ( help "also transfer file contents"
+ <$> (many $ argument str
+ ( metavar desc
+ <> completeRemotes
+ ))
+ <*> invertableSwitch "commit" True
+ ( help "avoid git commit"
)
<*> optional (strOption
( long "message" <> short 'm' <> metavar "MSG"
<> help "commit message"
))
+ <*> invertableSwitch "pull" True
+ ( help "avoid git pulls from remotes"
+ )
+ <*> invertableSwitch "push" True
+ ( help "avoid git pushes to remotes"
+ )
+ <*> invertableSwitch "content" False
+ ( help "also transfer file contents"
+ )
<*> optional parseAllOption
seek :: SyncOptions -> CommandSeek
@@ -107,7 +122,7 @@ seek o = do
mapM_ includeCommandAction $ concat
[ [ commit o ]
, [ withbranch mergeLocal ]
- , map (withbranch . pullRemote) gitremotes
+ , map (withbranch . pullRemote o) gitremotes
, [ mergeAnnex ]
]
when (contentOption o) $
@@ -118,13 +133,13 @@ seek o = do
-- and merge again to avoid our push overwriting
-- those changes.
mapM_ includeCommandAction $ concat
- [ map (withbranch . pullRemote) gitremotes
+ [ map (withbranch . pullRemote o) gitremotes
, [ commitAnnex, mergeAnnex ]
]
void $ includeCommandAction $ withbranch pushLocal
-- Pushes to remotes can run concurrently.
- mapM_ (commandAction . withbranch . pushRemote) gitremotes
+ mapM_ (commandAction . withbranch . pushRemote o) gitremotes
{- Merging may delete the current directory, so go to the top
- of the repo. This also means that sync always acts on all files in the
@@ -165,28 +180,26 @@ syncRemotes' ps remotelist = ifM (Annex.getState Annex.fast) ( nub <$> pickfast
fastest = fromMaybe [] . headMaybe . Remote.byCost
commit :: SyncOptions -> CommandStart
-commit o = ifM (annexAutoCommit <$> Annex.getGitConfig)
- ( go
- , stop
- )
+commit o = stopUnless shouldcommit $ next $ next $ do
+ commitmessage <- maybe commitMsg return (messageOption o)
+ showStart "commit" ""
+ Annex.Branch.commit "update"
+ ifM isDirect
+ ( do
+ void stageDirect
+ void preCommitDirect
+ commitStaged Git.Branch.ManualCommit commitmessage
+ , do
+ inRepo $ Git.Branch.commitQuiet Git.Branch.ManualCommit
+ [ Param "-a"
+ , Param "-m"
+ , Param commitmessage
+ ]
+ return True
+ )
where
- go = next $ next $ do
- commitmessage <- maybe commitMsg return (messageOption o)
- showStart "commit" ""
- Annex.Branch.commit "update"
- ifM isDirect
- ( do
- void stageDirect
- void preCommitDirect
- commitStaged Git.Branch.ManualCommit commitmessage
- , do
- inRepo $ Git.Branch.commitQuiet Git.Branch.ManualCommit
- [ Param "-a"
- , Param "-m"
- , Param commitmessage
- ]
- return True
- )
+ shouldcommit = pure (commitOption o)
+ <&&> (annexAutoCommit <$> Annex.getGitConfig)
commitMsg :: Annex String
commitMsg = do
@@ -248,8 +261,8 @@ updateBranch syncbranch g =
, Param $ Git.fromRef $ Git.Ref.base syncbranch
] g
-pullRemote :: Remote -> Maybe Git.Ref -> CommandStart
-pullRemote remote branch = do
+pullRemote :: SyncOptions -> Remote -> Maybe Git.Ref -> CommandStart
+pullRemote o remote branch = stopUnless (pure $ pullOption o) $ do
showStart "pull" (Remote.name remote)
next $ do
showOutput
@@ -282,24 +295,22 @@ mergeRemote remote b = ifM isBareRepo
branchlist Nothing = []
branchlist (Just branch) = [branch, syncBranch branch]
-pushRemote :: Remote -> Maybe Git.Ref -> CommandStart
-pushRemote _remote Nothing = stop
-pushRemote remote (Just branch) = go =<< needpush
+pushRemote :: SyncOptions -> Remote -> Maybe Git.Ref -> CommandStart
+pushRemote _o _remote Nothing = stop
+pushRemote o remote (Just branch) = stopUnless (pure (pushOption o) <&&> needpush) $ do
+ showStart "push" (Remote.name remote)
+ next $ next $ do
+ showOutput
+ ok <- inRepoWithSshOptionsTo (Remote.repo remote) (Remote.gitconfig remote) $
+ pushBranch remote branch
+ unless ok $ do
+ warning $ unwords [ "Pushing to " ++ Remote.name remote ++ " failed." ]
+ showLongNote "(non-fast-forward problems can be solved by setting receive.denyNonFastforwards to false in the remote's git config)"
+ return ok
where
needpush
| remoteAnnexReadOnly (Remote.gitconfig remote) = return False
| otherwise = anyM (newer remote) [syncBranch branch, Annex.Branch.name]
- go False = stop
- go True = do
- showStart "push" (Remote.name remote)
- next $ next $ do
- showOutput
- ok <- inRepoWithSshOptionsTo (Remote.repo remote) (Remote.gitconfig remote) $
- pushBranch remote branch
- unless ok $ do
- warning $ unwords [ "Pushing to " ++ Remote.name remote ++ " failed." ]
- showLongNote "(non-fast-forward problems can be solved by setting receive.denyNonFastforwards to false in the remote's git config)"
- return ok
{- Pushes a regular branch like master to a remote. Also pushes the git-annex
- branch.
@@ -465,7 +476,7 @@ syncFile ebloom rs af k = do
)
get have = includeCommandAction $ do
showStart' "get" k af
- next $ next $ getViaTmp k $ \dest -> getKeyFile' k af dest have
+ next $ next $ getKey' k af have
wantput r
| Remote.readonly r || remoteAnnexReadOnly (Remote.gitconfig r) = return False
diff --git a/Command/TestRemote.hs b/Command/TestRemote.hs
index e51dcaeb3..7ee5f1359 100644
--- a/Command/TestRemote.hs
+++ b/Command/TestRemote.hs
@@ -14,7 +14,7 @@ import qualified Remote
import qualified Types.Remote as Remote
import Types
import Types.Key (key2file, keyBackendName, keySize)
-import Types.Backend (getKey, fsckKey)
+import Types.Backend (getKey, verifyKeyContent)
import Types.KeySource
import Annex.Content
import Backend
@@ -156,10 +156,10 @@ test st r k =
(== Right b) <$> Remote.hasKey r k
fsck = case maybeLookupBackendName (keyBackendName k) of
Nothing -> return True
- Just b -> case fsckKey b of
+ Just b -> case verifyKeyContent b of
Nothing -> return True
- Just fscker -> fscker k (key2file k)
- get = getViaTmp k $ \dest ->
+ Just verifier -> verifier k (key2file k)
+ get = getViaTmp (RemoteVerify r) k $ \dest ->
Remote.retrieveKeyFile r k Nothing dest nullMeterUpdate
store = Remote.storeKey r k Nothing nullMeterUpdate
remove = Remote.removeKey r k
@@ -173,10 +173,10 @@ testUnavailable st r k =
, check (`notElem` [Right True, Right False]) "checkPresent" $
Remote.checkPresent r k
, check (== Right False) "retrieveKeyFile" $
- getViaTmp k $ \dest ->
+ getViaTmp (RemoteVerify r) k $ \dest ->
Remote.retrieveKeyFile r k Nothing dest nullMeterUpdate
, check (== Right False) "retrieveKeyFileCheap" $
- getViaTmp k $ \dest ->
+ getViaTmp (RemoteVerify r) k $ \dest -> unVerified $
Remote.retrieveKeyFileCheap r k Nothing dest
]
where
diff --git a/Command/TransferKey.hs b/Command/TransferKey.hs
index 04dbc1799..56c9ec675 100644
--- a/Command/TransferKey.hs
+++ b/Command/TransferKey.hs
@@ -61,7 +61,8 @@ toPerform key file remote = go Upload file $
fromPerform :: Key -> AssociatedFile -> Remote -> CommandPerform
fromPerform key file remote = go Upload file $
download (uuid remote) key file forwardRetry noObserver $ \p ->
- getViaTmp key $ \t -> Remote.retrieveKeyFile remote key file t p
+ getViaTmp (RemoteVerify remote) key $
+ \t -> Remote.retrieveKeyFile remote key file t p
go :: Direction -> AssociatedFile -> (NotifyWitness -> Annex Bool) -> CommandPerform
go direction file a = notifyTransfer direction file a >>= liftIO . exitBool
diff --git a/Command/TransferKeys.hs b/Command/TransferKeys.hs
index 67f201024..4fb0d9069 100644
--- a/Command/TransferKeys.hs
+++ b/Command/TransferKeys.hs
@@ -43,7 +43,8 @@ start = do
return ok
| otherwise = notifyTransfer direction file $
download (Remote.uuid remote) key file forwardRetry observer $ \p ->
- getViaTmp key $ \t -> Remote.retrieveKeyFile remote key file t p
+ getViaTmp (RemoteVerify remote) key $ \t ->
+ Remote.retrieveKeyFile remote key file t p
observer False t tinfo = recordFailedTransfer t tinfo
observer True _ _ = noop
diff --git a/Command/Unused.hs b/Command/Unused.hs
index a383d567b..4756cda5d 100644
--- a/Command/Unused.hs
+++ b/Command/Unused.hs
@@ -53,7 +53,7 @@ optParser _ = UnusedOptions
<> help "remote to check for unused content"
))
<*> optional (option (eitherReader parseRefSpec)
- ( long "unused-refspec" <> metavar paramRefSpec
+ ( long "used-refspec" <> metavar paramRefSpec
<> help "refs to consider used (default: all branches)"
))
diff --git a/Creds.hs b/Creds.hs
index 68bd1940c..a696cbb35 100644
--- a/Creds.hs
+++ b/Creds.hs
@@ -20,6 +20,7 @@ module Creds (
) where
import Common.Annex
+import qualified Annex
import Types.Creds
import Annex.Perms
import Utility.FileMode
@@ -65,7 +66,8 @@ setRemoteCredPair _ c storage (Just creds)
return c
storeconfig key (Just cipher) = do
- s <- liftIO $ encrypt (getGpgEncParams c) cipher
+ cmd <- gpgCmd <$> Annex.getGitConfig
+ s <- liftIO $ encrypt cmd (getGpgEncParams c) cipher
(feedBytes $ L.pack $ encodeCredPair creds)
(readBytes $ return . L.unpack)
return $ M.insert key (toB64 s) c
@@ -91,7 +93,8 @@ getRemoteCredPair c storage = maybe fromcache (return . Just) =<< fromenv
fromcreds $ fromB64 bcreds
Nothing -> return Nothing
fromenccreds enccreds cipher storablecipher = do
- mcreds <- liftIO $ catchMaybeIO $ decrypt cipher
+ cmd <- gpgCmd <$> Annex.getGitConfig
+ mcreds <- liftIO $ catchMaybeIO $ decrypt cmd cipher
(feedBytes $ L.pack $ fromB64 enccreds)
(readBytes $ return . L.unpack)
case mcreds of
diff --git a/Crypto.hs b/Crypto.hs
index 1b69c98a4..10068c306 100644
--- a/Crypto.hs
+++ b/Crypto.hs
@@ -74,27 +74,27 @@ cipherMac (Cipher c) = take cipherBeginning c
cipherMac (MacOnlyCipher c) = c
{- Creates a new Cipher, encrypted to the specified key id. -}
-genEncryptedCipher :: String -> EncryptedCipherVariant -> Bool -> IO StorableCipher
-genEncryptedCipher keyid variant highQuality = do
- ks <- Gpg.findPubKeys keyid
- random <- Gpg.genRandom highQuality size
- encryptCipher (mkCipher random) variant ks
+genEncryptedCipher :: Gpg.GpgCmd -> String -> EncryptedCipherVariant -> Bool -> IO StorableCipher
+genEncryptedCipher cmd keyid variant highQuality = do
+ ks <- Gpg.findPubKeys cmd keyid
+ random <- Gpg.genRandom cmd highQuality size
+ encryptCipher cmd (mkCipher random) variant ks
where
(mkCipher, size) = case variant of
Hybrid -> (Cipher, cipherSize) -- used for MAC + symmetric
PubKey -> (MacOnlyCipher, cipherBeginning) -- only used for MAC
{- Creates a new, shared Cipher. -}
-genSharedCipher :: Bool -> IO StorableCipher
-genSharedCipher highQuality =
- SharedCipher <$> Gpg.genRandom highQuality cipherSize
+genSharedCipher :: Gpg.GpgCmd -> Bool -> IO StorableCipher
+genSharedCipher cmd highQuality =
+ SharedCipher <$> Gpg.genRandom cmd highQuality cipherSize
{- Updates an existing Cipher, re-encrypting it to add or remove keyids,
- depending on whether the first component is True or False. -}
-updateEncryptedCipher :: [(Bool, String)] -> StorableCipher -> IO StorableCipher
-updateEncryptedCipher _ SharedCipher{} = error "Cannot update shared cipher"
-updateEncryptedCipher [] encipher = return encipher
-updateEncryptedCipher newkeys encipher@(EncryptedCipher _ variant (KeyIds ks)) = do
+updateEncryptedCipher :: Gpg.GpgCmd -> [(Bool, String)] -> StorableCipher -> IO StorableCipher
+updateEncryptedCipher _ _ SharedCipher{} = error "Cannot update shared cipher"
+updateEncryptedCipher _ [] encipher = return encipher
+updateEncryptedCipher cmd newkeys encipher@(EncryptedCipher _ variant (KeyIds ks)) = do
dropKeys <- listKeyIds [ k | (False, k) <- newkeys ]
forM_ dropKeys $ \k -> unless (k `elem` ks) $
error $ "Key " ++ k ++ " was not present; cannot remove."
@@ -102,10 +102,10 @@ updateEncryptedCipher newkeys encipher@(EncryptedCipher _ variant (KeyIds ks)) =
let ks' = (addKeys ++ ks) \\ dropKeys
when (null ks') $
error "Cannot remove the last key."
- cipher <- decryptCipher encipher
- encryptCipher cipher variant $ KeyIds ks'
+ cipher <- decryptCipher cmd encipher
+ encryptCipher cmd cipher variant $ KeyIds ks'
where
- listKeyIds = concat <$$> mapM (keyIds <$$> Gpg.findPubKeys)
+ listKeyIds = concat <$$> mapM (keyIds <$$> Gpg.findPubKeys cmd)
describeCipher :: StorableCipher -> String
describeCipher (SharedCipher _) = "shared cipher"
@@ -119,12 +119,12 @@ describeCipher (EncryptedCipher _ variant (KeyIds ks)) =
keys _ = "keys"
{- Encrypts a Cipher to the specified KeyIds. -}
-encryptCipher :: Cipher -> EncryptedCipherVariant -> KeyIds -> IO StorableCipher
-encryptCipher c variant (KeyIds ks) = do
+encryptCipher :: Gpg.GpgCmd -> Cipher -> EncryptedCipherVariant -> KeyIds -> IO StorableCipher
+encryptCipher cmd c variant (KeyIds ks) = do
-- gpg complains about duplicate recipient keyids
let ks' = nub $ sort ks
let params = Gpg.pkEncTo ks' ++ Gpg.stdEncryptionParams False
- encipher <- Gpg.pipeStrict params cipher
+ encipher <- Gpg.pipeStrict cmd params cipher
return $ EncryptedCipher encipher variant (KeyIds ks')
where
cipher = case c of
@@ -132,10 +132,10 @@ encryptCipher c variant (KeyIds ks) = do
MacOnlyCipher x -> x
{- Decrypting an EncryptedCipher is expensive; the Cipher should be cached. -}
-decryptCipher :: StorableCipher -> IO Cipher
-decryptCipher (SharedCipher t) = return $ Cipher t
-decryptCipher (EncryptedCipher t variant _) =
- mkCipher <$> Gpg.pipeStrict [ Param "--decrypt" ] t
+decryptCipher :: Gpg.GpgCmd -> StorableCipher -> IO Cipher
+decryptCipher _ (SharedCipher t) = return $ Cipher t
+decryptCipher cmd (EncryptedCipher t variant _) =
+ mkCipher <$> Gpg.pipeStrict cmd [ Param "--decrypt" ] t
where
mkCipher = case variant of
Hybrid -> Cipher
@@ -176,19 +176,19 @@ readBytes a h = liftIO (L.hGetContents h) >>= a
- read by the Reader action. Note: For public-key encryption,
- recipients MUST be included in 'params' (for instance using
- 'getGpgEncParams'). -}
-encrypt :: (MonadIO m, MonadMask m) => [CommandParam] -> Cipher -> Feeder -> Reader m a -> m a
-encrypt params cipher = case cipher of
- Cipher{} -> Gpg.feedRead (params ++ Gpg.stdEncryptionParams True) $
+encrypt :: (MonadIO m, MonadMask m) => Gpg.GpgCmd -> [CommandParam] -> Cipher -> Feeder -> Reader m a -> m a
+encrypt cmd params cipher = case cipher of
+ Cipher{} -> Gpg.feedRead cmd (params ++ Gpg.stdEncryptionParams True) $
cipherPassphrase cipher
- MacOnlyCipher{} -> Gpg.pipeLazy $ params ++ Gpg.stdEncryptionParams False
+ MacOnlyCipher{} -> Gpg.pipeLazy cmd $ params ++ Gpg.stdEncryptionParams False
{- Runs a Feeder action, that generates content that is decrypted with the
- Cipher (or using a private key if the Cipher is empty), and read by the
- Reader action. -}
-decrypt :: (MonadIO m, MonadMask m) => Cipher -> Feeder -> Reader m a -> m a
-decrypt cipher = case cipher of
- Cipher{} -> Gpg.feedRead [Param "--decrypt"] $ cipherPassphrase cipher
- MacOnlyCipher{} -> Gpg.pipeLazy [Param "--decrypt"]
+decrypt :: (MonadIO m, MonadMask m) => Gpg.GpgCmd -> Cipher -> Feeder -> Reader m a -> m a
+decrypt cmd cipher = case cipher of
+ Cipher{} -> Gpg.feedRead cmd [Param "--decrypt"] $ cipherPassphrase cipher
+ MacOnlyCipher{} -> Gpg.pipeLazy cmd [Param "--decrypt"]
macWithCipher :: Mac -> Cipher -> String -> String
macWithCipher mac c = macWithCipher' mac (cipherMac c)
diff --git a/Database/Fsck.hs b/Database/Fsck.hs
index 20b4878e3..ed00e62d8 100644
--- a/Database/Fsck.hs
+++ b/Database/Fsck.hs
@@ -31,6 +31,7 @@ import Types.Key
import Types.UUID
import Annex.Perms
import Annex.LockFile
+import Messages
import Database.Persist.TH
import Database.Esqueleto hiding (Key)
@@ -77,6 +78,10 @@ openDb u = do
rename tmpdbdir dbdir
lockFileCached =<< fromRepo (gitAnnexFsckDbLock u)
h <- liftIO $ H.openDb db "fscked"
+
+ -- work around https://github.com/yesodweb/persistent/issues/474
+ liftIO setConsoleEncoding
+
return $ FsckHandle h u
closeDb :: FsckHandle -> Annex ()
diff --git a/Git/Hook.hs b/Git/Hook.hs
index aec2563f4..f4424c60e 100644
--- a/Git/Hook.hs
+++ b/Git/Hook.hs
@@ -81,7 +81,7 @@ runHook h r = do
#ifndef mingw32_HOST_OS
findcmd = defcmd
#else
- {- Like msysgit, parse the first line of the hook file,
+ {- Like git for windows, parse the first line of the hook file,
- look for "#!", and dispatch the interpreter on the file. -}
findcmd f = do
l <- headMaybe . lines <$> catchDefaultIO "" (readFile f)
diff --git a/Git/Status.hs b/Git/Status.hs
new file mode 100644
index 000000000..4f9ad0265
--- /dev/null
+++ b/Git/Status.hs
@@ -0,0 +1,76 @@
+{- git status interface
+ -
+ - Copyright 2015 Joey Hess <id@joeyh.name>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+module Git.Status where
+
+import Common
+import Git
+import Git.Command
+import Git.FilePath
+
+data Status
+ = Modified TopFilePath
+ | Deleted TopFilePath
+ | Added TopFilePath
+ | Renamed TopFilePath TopFilePath
+ | TypeChanged TopFilePath
+ | Untracked TopFilePath
+
+statusChar :: Status -> Char
+statusChar (Modified _) = 'M'
+statusChar (Deleted _) = 'D'
+statusChar (Added _) = 'A'
+statusChar (Renamed _ _) = 'R'
+statusChar (TypeChanged _) = 'T'
+statusChar (Untracked _) = '?'
+
+statusFile :: Status -> TopFilePath
+statusFile (Modified f) = f
+statusFile (Deleted f) = f
+statusFile (Added f) = f
+statusFile (Renamed _oldf newf) = newf
+statusFile (TypeChanged f) = f
+statusFile (Untracked f) = f
+
+parseStatusZ :: [String] -> [Status]
+parseStatusZ = go []
+ where
+ go c [] = reverse c
+ go c (x:xs) = case x of
+ (sindex:sworktree:' ':f) ->
+ -- Look at both the index and worktree status,
+ -- preferring worktree.
+ case cparse sworktree <|> cparse sindex of
+ Just mks -> go (mks (asTopFilePath f) : c) xs
+ Nothing -> if sindex == 'R'
+ -- In -z mode, the name the
+ -- file was renamed to comes
+ -- first, and the next component
+ -- is the old filename.
+ then case xs of
+ (oldf:xs') -> go (Renamed (asTopFilePath oldf) (asTopFilePath f) : c) xs'
+ _ -> go c []
+ else go c xs
+ _ -> go c xs
+
+ cparse 'M' = Just Modified
+ cparse 'A' = Just Added
+ cparse 'D' = Just Deleted
+ cparse 'T' = Just TypeChanged
+ cparse '?' = Just Untracked
+ cparse _ = Nothing
+
+getStatus :: [FilePath] -> Repo -> IO ([Status], IO Bool)
+getStatus l r = do
+ (ls, cleanup) <- pipeNullSplit params r
+ return (parseStatusZ ls, cleanup)
+ where
+ params =
+ [ Param "status"
+ , Param "-uall"
+ , Param "-z"
+ ] ++ map File l
diff --git a/Logs/PreferredContent.hs b/Logs/PreferredContent.hs
index a81c16f26..c21d67010 100644
--- a/Logs/PreferredContent.hs
+++ b/Logs/PreferredContent.hs
@@ -77,8 +77,9 @@ preferredRequiredMapsLoad = do
<$> Annex.Branch.get l
pc <- genmap preferredContentLog =<< groupPreferredContentMapRaw
rc <- genmap requiredContentLog M.empty
- -- Required content is implicitly also preferred content, so OR
- let m = M.unionWith MOr pc rc
+ -- Required content is implicitly also preferred content, so
+ -- combine.
+ let m = M.unionWith combineMatchers pc rc
Annex.changeState $ \s -> s
{ Annex.preferredcontentmap = Just m
, Annex.requiredcontentmap = Just rc
diff --git a/Messages.hs b/Messages.hs
index 026fca51e..fce5c179a 100644
--- a/Messages.hs
+++ b/Messages.hs
@@ -30,6 +30,7 @@ module Messages (
showHeader,
showRaw,
setupConsole,
+ setConsoleEncoding,
enableDebugOutput,
disableDebugOutput,
debugEnabled,
@@ -176,9 +177,12 @@ setupConsole = do
<$> streamHandler stderr DEBUG
<*> pure preciseLogFormatter
updateGlobalLogger rootLoggerName (setLevel NOTICE . setHandlers [s])
- {- This avoids ghc's output layer crashing on
- - invalid encoded characters in
- - filenames when printing them out. -}
+ setConsoleEncoding
+
+{- This avoids ghc's output layer crashing on invalid encoded characters in
+ - filenames when printing them out. -}
+setConsoleEncoding :: IO ()
+setConsoleEncoding = do
fileEncoding stdout
fileEncoding stderr
diff --git a/Remote/BitTorrent.hs b/Remote/BitTorrent.hs
index d3963a918..f9027ba61 100644
--- a/Remote/BitTorrent.hs
+++ b/Remote/BitTorrent.hs
@@ -76,8 +76,8 @@ gen r _ c gc =
, checkUrl = Just checkTorrentUrl
}
-downloadKey :: Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex Bool
-downloadKey key _file dest p =
+downloadKey :: Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex (Bool, Verification)
+downloadKey key _file dest p = unVerified $
get . map (torrentUrlNum . fst . getDownloader) =<< getBitTorrentUrls key
where
get [] = do
diff --git a/Remote/GCrypt.hs b/Remote/GCrypt.hs
index 51dfed4f4..3a63642c8 100644
--- a/Remote/GCrypt.hs
+++ b/Remote/GCrypt.hs
@@ -20,6 +20,7 @@ import Control.Exception
import Data.Default
import Common.Annex
+import qualified Annex
import Types.Remote
import Types.GitConfig
import Types.Crypto
@@ -300,7 +301,8 @@ setGcryptEncryption c remotename = do
Just (EncryptedCipher _ _ (KeyIds { keyIds = ks})) -> do
setConfig participants (unwords ks)
let signingkey = ConfigKey $ Git.GCrypt.remoteSigningKey remotename
- skeys <- M.keys <$> liftIO secretKeys
+ cmd <- gpgCmd <$> Annex.getGitConfig
+ skeys <- M.keys <$> liftIO (secretKeys cmd)
case filter (`elem` ks) skeys of
[] -> noop
(k:_) -> setConfig signingkey k
diff --git a/Remote/Git.hs b/Remote/Git.hs
index 0fecf1ed1..f7a0b4a39 100644
--- a/Remote/Git.hs
+++ b/Remote/Git.hs
@@ -359,44 +359,32 @@ dropKey r key
| otherwise = commitOnCleanup r $ Ssh.dropKey (repo r) key
{- Tries to copy a key's content from a remote's annex to a file. -}
-copyFromRemote :: Remote -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex Bool
+copyFromRemote :: Remote -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex (Bool, Verification)
copyFromRemote r key file dest p = parallelMetered (Just p) key file $
copyFromRemote' r key file dest
-copyFromRemote' :: Remote -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex Bool
+copyFromRemote' :: Remote -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex (Bool, Verification)
copyFromRemote' r key file dest meterupdate
- | not $ Git.repoIsUrl (repo r) = guardUsable (repo r) (return False) $ do
+ | not $ Git.repoIsUrl (repo r) = guardUsable (repo r) (unVerified (return False)) $ do
params <- Ssh.rsyncParams r Download
u <- getUUID
-#ifndef mingw32_HOST_OS
- hardlink <- annexHardLink <$> Annex.getGitConfig
-#endif
+ hardlink <- wantHardLink
-- run copy from perspective of remote
onLocal r $ do
ensureInitialized
v <- Annex.Content.prepSendAnnex key
case v of
- Nothing -> return False
+ Nothing -> return (False, UnVerified)
Just (object, checksuccess) -> do
- let copier = rsyncOrCopyFile params object dest
-#ifndef mingw32_HOST_OS
- let linker = createLink object dest >> return True
- go <- ifM (pure hardlink <&&> not <$> isDirect)
- ( return $ \m -> liftIO (catchBoolIO linker)
- <||> copier m
- , return copier
- )
-#else
- let go = copier
-#endif
+ copier <- mkCopier hardlink params
runTransfer (Transfer Download u key)
- file noRetry noObserver go
- <&&> checksuccess
- | Git.repoIsSsh (repo r) = feedprogressback $ \feeder -> do
+ file noRetry noObserver
+ (\p -> copier object dest p checksuccess)
+ | Git.repoIsSsh (repo r) = unVerified $ feedprogressback $ \feeder -> do
direct <- isDirect
Ssh.rsyncHelper (Just feeder)
=<< Ssh.rsyncParamsRemote direct r Download key dest file
- | Git.repoIsHttp (repo r) = Annex.Content.downloadUrl (keyUrls r key) dest
+ | Git.repoIsHttp (repo r) = unVerified $ Annex.Content.downloadUrl (keyUrls r key) dest
| otherwise = error "copying from non-ssh, non-http remote not supported"
where
{- Feed local rsync's progress info back to the remote,
@@ -473,8 +461,8 @@ copyFromRemoteCheap r key af file
)
| Git.repoIsSsh (repo r) =
ifM (Annex.Content.preseedTmp key file)
- ( parallelMetered Nothing key af $
- copyFromRemote' r key af file
+ ( fst <$> parallelMetered Nothing key af
+ (copyFromRemote' r key af file)
, return False
)
| otherwise = return False
@@ -506,15 +494,18 @@ copyToRemote' r key file p
checksuccessio <- Annex.withCurrentState checksuccess
params <- Ssh.rsyncParams r Upload
u <- getUUID
+ hardlink <- wantHardLink
-- run copy from perspective of remote
onLocal r $ ifM (Annex.Content.inAnnex key)
( return True
, do
ensureInitialized
+ copier <- mkCopier hardlink params
+ let verify = Annex.Content.RemoteVerify r
runTransfer (Transfer Download u key) file noRetry noObserver $ const $
Annex.Content.saveState True `after`
- Annex.Content.getViaTmpChecked (liftIO checksuccessio) key
- (\d -> rsyncOrCopyFile params object d p)
+ Annex.Content.getViaTmp verify key
+ (\dest -> copier object dest p (liftIO checksuccessio))
)
fsckOnRemote :: Git.Repo -> [CommandParam] -> Annex (IO Bool)
@@ -622,3 +613,38 @@ commitOnCleanup r a = go `after` a
withQuietOutput createProcessSuccess $
proc shellcmd $
toCommand shellparams
+
+wantHardLink :: Annex Bool
+wantHardLink = (annexHardLink <$> Annex.getGitConfig) <&&> (not <$> isDirect)
+
+-- Copies from src to dest, updating a meter. If the copy finishes
+-- successfully, calls a final check action, which must also success, or
+-- returns false.
+--
+-- If either the remote or local repository wants to use hard links,
+-- the copier will do so (falling back to copying if a hard link cannot be
+-- made).
+--
+-- When a hard link is created, returns Verified; the repo being linked
+-- from is implicitly trusted, so no expensive verification needs to be
+-- done.
+type Copier = FilePath -> FilePath -> MeterUpdate -> Annex Bool -> Annex (Bool, Verification)
+
+mkCopier :: Bool -> [CommandParam] -> Annex Copier
+mkCopier remotewanthardlink rsyncparams = do
+ let copier = \src dest p check -> unVerified $
+ rsyncOrCopyFile rsyncparams src dest p <&&> check
+#ifndef mingw32_HOST_OS
+ localwanthardlink <- wantHardLink
+ let linker = \src dest -> createLink src dest >> return True
+ ifM (pure (remotewanthardlink || localwanthardlink) <&&> not <$> isDirect)
+ ( return $ \src dest p check ->
+ ifM (liftIO (catchBoolIO (linker src dest)))
+ ( return (True, Verified)
+ , copier src dest p check
+ )
+ , return copier
+ )
+#else
+ return copier
+#endif
diff --git a/Remote/Helper/Encryptable.hs b/Remote/Helper/Encryptable.hs
index 3395db978..562009df6 100644
--- a/Remote/Helper/Encryptable.hs
+++ b/Remote/Helper/Encryptable.hs
@@ -50,22 +50,24 @@ encryptionAlreadySetup = EncryptionIsSetup
- updated to be accessible to an additional encryption key. Or the user
- could opt to use a shared cipher, which is stored unencrypted. -}
encryptionSetup :: RemoteConfig -> Annex (RemoteConfig, EncryptionIsSetup)
-encryptionSetup c = maybe genCipher updateCipher $ extractCipher c
+encryptionSetup c = do
+ cmd <- gpgCmd <$> Annex.getGitConfig
+ maybe (genCipher cmd) (updateCipher cmd) (extractCipher c)
where
-- The type of encryption
encryption = M.lookup "encryption" c
-- Generate a new cipher, depending on the chosen encryption scheme
- genCipher = case encryption of
+ genCipher cmd = case encryption of
_ | M.member "cipher" c || M.member "cipherkeys" c -> cannotchange
Just "none" -> return (c, NoEncryption)
- Just "shared" -> use "encryption setup" . genSharedCipher
+ Just "shared" -> use "encryption setup" . genSharedCipher cmd
=<< highRandomQuality
-- hybrid encryption is the default when a keyid is
-- specified but no encryption
_ | maybe (M.member "keyid" c) (== "hybrid") encryption ->
- use "encryption setup" . genEncryptedCipher key Hybrid
+ use "encryption setup" . genEncryptedCipher cmd key Hybrid
=<< highRandomQuality
- Just "pubkey" -> use "encryption setup" . genEncryptedCipher key PubKey
+ Just "pubkey" -> use "encryption setup" . genEncryptedCipher cmd key PubKey
=<< highRandomQuality
_ -> error $ "Specify " ++ intercalate " or "
(map ("encryption=" ++)
@@ -76,11 +78,11 @@ encryptionSetup c = maybe genCipher updateCipher $ extractCipher c
maybe [] (\k -> [(False,k)]) (M.lookup "keyid-" c)
cannotchange = error "Cannot set encryption type of existing remotes."
-- Update an existing cipher if possible.
- updateCipher v = case v of
+ updateCipher cmd v = case v of
SharedCipher _ | maybe True (== "shared") encryption -> return (c', EncryptionIsSetup)
EncryptedCipher _ variant _
| maybe True (== if variant == Hybrid then "hybrid" else "pubkey") encryption ->
- use "encryption update" $ updateEncryptedCipher newkeys v
+ use "encryption update" $ updateEncryptedCipher cmd newkeys v
_ -> cannotchange
use m a = do
showNote m
@@ -111,7 +113,8 @@ remoteCipher' c = go $ extractCipher c
case M.lookup encipher cache of
Just cipher -> return $ Just (cipher, encipher)
Nothing -> do
- cipher <- liftIO $ decryptCipher encipher
+ cmd <- gpgCmd <$> Annex.getGitConfig
+ cipher <- liftIO $ decryptCipher cmd encipher
Annex.changeState (\s -> s { Annex.ciphers = M.insert encipher cipher cache })
return $ Just (cipher, encipher)
diff --git a/Remote/Helper/Special.hs b/Remote/Helper/Special.hs
index 42827e5f7..7faf7a8a1 100644
--- a/Remote/Helper/Special.hs
+++ b/Remote/Helper/Special.hs
@@ -33,6 +33,7 @@ module Remote.Helper.Special (
) where
import Common.Annex
+import qualified Annex
import Types.StoreRetrieve
import Types.Remote
import Crypto
@@ -121,8 +122,8 @@ byteRetriever a k _m callback = a k (callback . ByteContent)
-}
storeKeyDummy :: Key -> AssociatedFile -> MeterUpdate -> Annex Bool
storeKeyDummy _ _ _ = return False
-retreiveKeyFileDummy :: Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex Bool
-retreiveKeyFileDummy _ _ _ _ = return False
+retreiveKeyFileDummy :: Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex (Bool, Verification)
+retreiveKeyFileDummy _ _ _ _ = unVerified (return False)
removeKeyDummy :: Key -> Annex Bool
removeKeyDummy _ = return False
checkPresentDummy :: Key -> Annex Bool
@@ -155,7 +156,7 @@ specialRemote' cfg c preparestorer prepareretriever prepareremover preparecheckp
where
encr = baser
{ storeKey = \k f p -> cip >>= storeKeyGen k f p
- , retrieveKeyFile = \k f d p -> cip >>= retrieveKeyFileGen k f d p
+ , retrieveKeyFile = \k f d p -> cip >>= unVerified . retrieveKeyFileGen k f d p
, retrieveKeyFileCheap = \k f d -> cip >>= maybe
(retrieveKeyFileCheap baser k f d)
-- retrieval of encrypted keys is never cheap
@@ -195,9 +196,10 @@ specialRemote' cfg c preparestorer prepareretriever prepareremover preparecheckp
rollback = void $ removeKey encr k
storechunk Nothing storer k content p = storer k content p
- storechunk (Just (cipher, enck)) storer k content p =
+ storechunk (Just (cipher, enck)) storer k content p = do
+ cmd <- gpgCmd <$> Annex.getGitConfig
withBytes content $ \b ->
- encrypt gpgopts cipher (feedBytes b) $
+ encrypt cmd gpgopts cipher (feedBytes b) $
readBytes $ \encb ->
storer (enck k) (ByteContent encb) p
@@ -251,12 +253,14 @@ sink dest enc mh mp content = do
(Nothing, Nothing, FileContent f)
| f == dest -> noop
| otherwise -> liftIO $ moveFile f dest
- (Just (cipher, _), _, ByteContent b) ->
- decrypt cipher (feedBytes b) $
+ (Just (cipher, _), _, ByteContent b) -> do
+ cmd <- gpgCmd <$> Annex.getGitConfig
+ decrypt cmd cipher (feedBytes b) $
readBytes write
(Just (cipher, _), _, FileContent f) -> do
+ cmd <- gpgCmd <$> Annex.getGitConfig
withBytes content $ \b ->
- decrypt cipher (feedBytes b) $
+ decrypt cmd cipher (feedBytes b) $
readBytes write
liftIO $ nukeFile f
(Nothing, _, FileContent f) -> do
diff --git a/Remote/S3.hs b/Remote/S3.hs
index fe407f204..c8a34f2e7 100644
--- a/Remote/S3.hs
+++ b/Remote/S3.hs
@@ -21,7 +21,7 @@ import qualified Data.ByteString as S
import qualified Data.Map as M
import Data.Char
import Network.Socket (HostName)
-import Network.HTTP.Conduit (Manager, newManager, closeManager)
+import Network.HTTP.Conduit (Manager, newManager)
import Network.HTTP.Client (defaultManagerSettings, managerResponseTimeout, responseStatus, responseBody, RequestBody(..))
import Network.HTTP.Types
import Control.Monad.Trans.Resource
@@ -48,7 +48,7 @@ import Utility.Metered
import Utility.DataUnits
import Annex.Content
import Annex.Url (withUrlOptions)
-import Utility.Url (checkBoth)
+import Utility.Url (checkBoth, closeManager)
type BucketName = String
@@ -500,6 +500,9 @@ getBucketName = map toLower <$$> M.lookup "bucket"
getStorageClass :: RemoteConfig -> S3.StorageClass
getStorageClass c = case M.lookup "storageclass" c of
Just "REDUCED_REDUNDANCY" -> S3.ReducedRedundancy
+#if MIN_VERSION_aws(0,13,0)
+ Just s -> S3.OtherStorageClass (T.pack s)
+#endif
_ -> S3.Standard
getPartSize :: RemoteConfig -> Maybe Integer
diff --git a/Remote/Tahoe.hs b/Remote/Tahoe.hs
index 1357a0183..c04cdae58 100644
--- a/Remote/Tahoe.hs
+++ b/Remote/Tahoe.hs
@@ -116,8 +116,8 @@ store u hdl k _f _p = sendAnnex k noop $ \src ->
(return False)
(\cap -> storeCapability u k cap >> return True)
-retrieve :: UUID -> TahoeHandle -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex Bool
-retrieve u hdl k _f d _p = go =<< getCapability u k
+retrieve :: UUID -> TahoeHandle -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex (Bool, Verification)
+retrieve u hdl k _f d _p = unVerified $ go =<< getCapability u k
where
go Nothing = return False
go (Just cap) = liftIO $ requestTahoe hdl "get" [Param cap, File d]
diff --git a/Remote/Web.hs b/Remote/Web.hs
index 700f40480..ae0281064 100644
--- a/Remote/Web.hs
+++ b/Remote/Web.hs
@@ -70,8 +70,8 @@ gen r _ c gc =
, checkUrl = Nothing
}
-downloadKey :: Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex Bool
-downloadKey key _file dest _p = get =<< getWebUrls key
+downloadKey :: Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex (Bool, Verification)
+downloadKey key _file dest _p = unVerified $ get =<< getWebUrls key
where
get [] = do
warning "no known url"
diff --git a/Test.hs b/Test.hs
index 46bb236a6..9dd5edd37 100644
--- a/Test.hs
+++ b/Test.hs
@@ -181,6 +181,7 @@ unitTests :: String -> TestTree
unitTests note = testGroup ("Unit Tests " ++ note)
[ testCase "add sha1dup" test_add_sha1dup
, testCase "add extras" test_add_extras
+ , testCase "shared clone" test_shared_clone
, testCase "log" test_log
, testCase "import" test_import
, testCase "reinject" test_reinject
@@ -284,6 +285,18 @@ test_add_extras = intmpclonerepo $ do
annexed_present wormannexedfile
checkbackend wormannexedfile backendWORM
+test_shared_clone :: Assertion
+test_shared_clone = intmpsharedclonerepo $ do
+ v <- catchMaybeIO $ Utility.Process.readProcess "git"
+ [ "config"
+ , "--bool"
+ , "--get"
+ , "annex.hardlink"
+ ]
+ print v
+ v == Just "true\n"
+ @? "shared clone of repo did not get annex.hardlink set"
+
test_log :: Assertion
test_log = intmpclonerepo $ do
git_annex "log" [annexedfile] @? "log failed"
@@ -848,9 +861,9 @@ test_sync = intmpclonerepo $ do
test_union_merge_regression :: Assertion
test_union_merge_regression =
{- We need 3 repos to see this bug. -}
- withtmpclonerepo False $ \r1 ->
- withtmpclonerepo False $ \r2 ->
- withtmpclonerepo False $ \r3 -> do
+ withtmpclonerepo $ \r1 ->
+ withtmpclonerepo $ \r2 ->
+ withtmpclonerepo $ \r3 -> do
forM_ [r1, r2, r3] $ \r -> indir r $ do
when (r /= r1) $
boolSystem "git" [Param "remote", Param "add", Param "r1", File ("../../" ++ r1)] @? "remote add"
@@ -875,8 +888,8 @@ test_union_merge_regression =
{- Regression test for the automatic conflict resolution bug fixed
- in f4ba19f2b8a76a1676da7bb5850baa40d9c388e2. -}
test_conflict_resolution_movein_regression :: Assertion
-test_conflict_resolution_movein_regression = withtmpclonerepo False $ \r1 ->
- withtmpclonerepo False $ \r2 -> do
+test_conflict_resolution_movein_regression = withtmpclonerepo $ \r1 ->
+ withtmpclonerepo $ \r2 -> do
let rname r = if r == r1 then "r1" else "r2"
forM_ [r1, r2] $ \r -> indir r $ do
{- Get all files, see check below. -}
@@ -910,8 +923,8 @@ test_conflict_resolution_movein_regression = withtmpclonerepo False $ \r1 ->
- file. -}
test_conflict_resolution :: Assertion
test_conflict_resolution =
- withtmpclonerepo False $ \r1 ->
- withtmpclonerepo False $ \r2 -> do
+ withtmpclonerepo $ \r1 ->
+ withtmpclonerepo $ \r2 -> do
indir r1 $ do
disconnectOrigin
writeFile conflictor "conflictor1"
@@ -948,8 +961,8 @@ test_mixed_conflict_resolution = do
check True
check False
where
- check inr1 = withtmpclonerepo False $ \r1 ->
- withtmpclonerepo False $ \r2 -> do
+ check inr1 = withtmpclonerepo $ \r1 ->
+ withtmpclonerepo $ \r2 -> do
indir r1 $ do
disconnectOrigin
writeFile conflictor "conflictor"
@@ -990,8 +1003,8 @@ test_remove_conflict_resolution = do
check True
check False
where
- check inr1 = withtmpclonerepo False $ \r1 ->
- withtmpclonerepo False $ \r2 -> do
+ check inr1 = withtmpclonerepo $ \r1 ->
+ withtmpclonerepo $ \r2 -> do
indir r1 $ do
disconnectOrigin
writeFile conflictor "conflictor"
@@ -1038,8 +1051,8 @@ test_nonannexed_file_conflict_resolution = do
check True True
check False True
where
- check inr1 switchdirect = withtmpclonerepo False $ \r1 ->
- withtmpclonerepo False $ \r2 ->
+ check inr1 switchdirect = withtmpclonerepo $ \r1 ->
+ withtmpclonerepo $ \r2 ->
whenM (isInDirect r1 <&&> isInDirect r2) $ do
indir r1 $ do
disconnectOrigin
@@ -1088,8 +1101,8 @@ test_nonannexed_symlink_conflict_resolution = do
check True True
check False True
where
- check inr1 switchdirect = withtmpclonerepo False $ \r1 ->
- withtmpclonerepo False $ \r2 ->
+ check inr1 switchdirect = withtmpclonerepo $ \r1 ->
+ withtmpclonerepo $ \r2 ->
whenM (checkRepo (Types.coreSymlinks <$> Annex.getGitConfig) r1
<&&> isInDirect r1 <&&> isInDirect r2) $ do
indir r1 $ do
@@ -1139,8 +1152,8 @@ test_uncommitted_conflict_resolution = do
check conflictor
check (conflictor </> "file")
where
- check remoteconflictor = withtmpclonerepo False $ \r1 ->
- withtmpclonerepo False $ \r2 -> do
+ check remoteconflictor = withtmpclonerepo $ \r1 ->
+ withtmpclonerepo $ \r2 -> do
indir r1 $ do
disconnectOrigin
createDirectoryIfMissing True (parentDir remoteconflictor)
@@ -1177,9 +1190,9 @@ test_uncommitted_conflict_resolution = do
-}
test_conflict_resolution_symlink_bit :: Assertion
test_conflict_resolution_symlink_bit =
- withtmpclonerepo False $ \r1 ->
- withtmpclonerepo False $ \r2 ->
- withtmpclonerepo False $ \r3 -> do
+ withtmpclonerepo $ \r1 ->
+ withtmpclonerepo $ \r2 ->
+ withtmpclonerepo $ \r3 -> do
indir r1 $ do
writeFile conflictor "conflictor"
git_annex "add" [conflictor] @? "add conflicter failed"
@@ -1334,9 +1347,11 @@ test_crypto = do
testscheme "hybrid"
testscheme "pubkey"
where
- testscheme scheme = intmpclonerepo $ whenM (Utility.Path.inPath Utility.Gpg.gpgcmd) $ do
- Utility.Gpg.testTestHarness @? "test harness self-test failed"
- Utility.Gpg.testHarness $ do
+ gpgcmd = Utility.Gpg.mkGpgCmd Nothing
+ testscheme scheme = intmpclonerepo $ whenM (Utility.Path.inPath (Utility.Gpg.unGpgCmd gpgcmd)) $ do
+ Utility.Gpg.testTestHarness gpgcmd
+ @? "test harness self-test failed"
+ Utility.Gpg.testHarness gpgcmd $ do
createDirectory "dir"
let a cmd = git_annex cmd $
[ "foo"
@@ -1384,16 +1399,16 @@ test_crypto = do
keysMatch (Utility.Gpg.KeyIds ks') =
maybe False (\(Utility.Gpg.KeyIds ks2) ->
sort (nub ks2) == sort (nub ks')) ks
- checkCipher encipher = Utility.Gpg.checkEncryptionStream encipher . Just
+ checkCipher encipher = Utility.Gpg.checkEncryptionStream gpgcmd encipher . Just
checkScheme Types.Crypto.Hybrid = scheme == "hybrid"
checkScheme Types.Crypto.PubKey = scheme == "pubkey"
checkKeys cip mvariant = do
- cipher <- Crypto.decryptCipher cip
+ cipher <- Crypto.decryptCipher gpgcmd cip
files <- filterM doesFileExist $
map ("dir" </>) $ concatMap (key2files cipher) keys
return (not $ null files) <&&> allM (checkFile mvariant) files
checkFile mvariant filename =
- Utility.Gpg.checkEncryptionFile filename $
+ Utility.Gpg.checkEncryptionFile gpgcmd filename $
if mvariant == Just Types.Crypto.PubKey then ks else Nothing
key2files cipher = Locations.keyPaths .
Crypto.encryptKey Types.Crypto.HmacSha1 cipher
@@ -1472,7 +1487,7 @@ inmainrepo :: Assertion -> Assertion
inmainrepo = indir mainrepodir
intmpclonerepo :: Assertion -> Assertion
-intmpclonerepo a = withtmpclonerepo False $ \r -> indir r a
+intmpclonerepo a = withtmpclonerepo $ \r -> indir r a
intmpclonerepoInDirect :: Assertion -> Assertion
intmpclonerepoInDirect a = intmpclonerepo $
@@ -1494,12 +1509,20 @@ isInDirect :: FilePath -> IO Bool
isInDirect = checkRepo (not <$> Config.isDirect)
intmpbareclonerepo :: Assertion -> Assertion
-intmpbareclonerepo a = withtmpclonerepo True $ \r -> indir r a
+intmpbareclonerepo a = withtmpclonerepo' (newCloneRepoConfig { bareClone = True } ) $
+ \r -> indir r a
+
+intmpsharedclonerepo :: Assertion -> Assertion
+intmpsharedclonerepo a = withtmpclonerepo' (newCloneRepoConfig { sharedClone = True } ) $
+ \r -> indir r a
-withtmpclonerepo :: Bool -> (FilePath -> Assertion) -> Assertion
-withtmpclonerepo bare a = do
+withtmpclonerepo :: (FilePath -> Assertion) -> Assertion
+withtmpclonerepo = withtmpclonerepo' newCloneRepoConfig
+
+withtmpclonerepo' :: CloneRepoConfig -> (FilePath -> Assertion) -> Assertion
+withtmpclonerepo' cfg a = do
dir <- tmprepodir
- bracket (clonerepo mainrepodir dir bare) cleanup a
+ bracket (clonerepo mainrepodir dir cfg) cleanup a
disconnectOrigin :: Assertion
disconnectOrigin = boolSystem "git" [Param "remote", Param "rm", Param "origin"] @? "remote rm"
@@ -1527,15 +1550,27 @@ setuprepo dir = do
configrepo dir
return dir
+data CloneRepoConfig = CloneRepoConfig
+ { bareClone :: Bool
+ , sharedClone :: Bool
+ }
+
+newCloneRepoConfig :: CloneRepoConfig
+newCloneRepoConfig = CloneRepoConfig
+ { bareClone = False
+ , sharedClone = False
+ }
+
-- clones are always done as local clones; we cannot test ssh clones
-clonerepo :: FilePath -> FilePath -> Bool -> IO FilePath
-clonerepo old new bare = do
+clonerepo :: FilePath -> FilePath -> CloneRepoConfig -> IO FilePath
+clonerepo old new cfg = do
cleanup new
ensuretmpdir
let cloneparams = catMaybes
[ Just $ Param "clone"
, Just $ Param "-q"
- , if bare then Just (Param "--bare") else Nothing
+ , if bareClone cfg then Just (Param "--bare") else Nothing
+ , if sharedClone cfg then Just (Param "--shared") else Nothing
, Just $ File old
, Just $ File new
]
@@ -1543,7 +1578,7 @@ clonerepo old new bare = do
configrepo new
indir new $
git_annex "init" ["-q", new] @? "git annex init failed"
- unless bare $
+ unless (bareClone cfg) $
indir new $
handleforcedirect
return new
diff --git a/Types/Backend.hs b/Types/Backend.hs
index 8967f3153..7fd0478f7 100644
--- a/Types/Backend.hs
+++ b/Types/Backend.hs
@@ -15,8 +15,8 @@ import Types.KeySource
data BackendA a = Backend
{ name :: String
, getKey :: KeySource -> a (Maybe Key)
- -- Checks the content of a key.
- , fsckKey :: Maybe (Key -> FilePath -> a Bool)
+ -- Verifies the content of a key.
+ , verifyKeyContent :: Maybe (Key -> FilePath -> a Bool)
-- Checks if a key can be upgraded to a better form.
, canUpgradeKey :: Maybe (Key -> Bool)
-- Checks if there is a fast way to migrate a key to a different
diff --git a/Types/GitConfig.hs b/Types/GitConfig.hs
index 0f02a5270..9dde2b91d 100644
--- a/Types/GitConfig.hs
+++ b/Types/GitConfig.hs
@@ -25,6 +25,7 @@ import Types.NumCopies
import Types.Difference
import Types.RefSpec
import Utility.HumanTime
+import Utility.Gpg (GpgCmd, mkGpgCmd)
{- Main git-annex settings. Each setting corresponds to a git-config key
- such as annex.foo -}
@@ -58,11 +59,13 @@ data GitConfig = GitConfig
, annexListen :: Maybe String
, annexStartupScan :: Bool
, annexHardLink :: Bool
+ , annexDifferences :: Differences
+ , annexUsedRefSpec :: Maybe RefSpec
+ , annexVerify :: Bool
, coreSymlinks :: Bool
, coreSharedRepository :: SharedRepository
, gcryptId :: Maybe String
- , annexDifferences :: Differences
- , annexUsedRefSpec :: Maybe RefSpec
+ , gpgCmd :: GpgCmd
}
extractGitConfig :: Git.Repo -> GitConfig
@@ -98,12 +101,14 @@ extractGitConfig r = GitConfig
, annexListen = getmaybe (annex "listen")
, annexStartupScan = getbool (annex "startupscan") True
, annexHardLink = getbool (annex "hardlink") False
- , coreSymlinks = getbool "core.symlinks" True
- , coreSharedRepository = getSharedRepository r
- , gcryptId = getmaybe "core.gcrypt-id"
, annexDifferences = getDifferences r
, annexUsedRefSpec = either (const Nothing) Just . parseRefSpec
=<< getmaybe (annex "used-refspec")
+ , annexVerify = getbool (annex "verify") True
+ , coreSymlinks = getbool "core.symlinks" True
+ , coreSharedRepository = getSharedRepository r
+ , gcryptId = getmaybe "core.gcrypt-id"
+ , gpgCmd = mkGpgCmd (getmaybe "gpg.program")
}
where
getbool k d = fromMaybe d $ getmaybebool k
@@ -126,6 +131,7 @@ data RemoteGitConfig = RemoteGitConfig
, remoteAnnexIgnore :: Bool
, remoteAnnexSync :: Bool
, remoteAnnexReadOnly :: Bool
+ , remoteAnnexVerify :: Bool
, remoteAnnexTrustLevel :: Maybe String
, remoteAnnexStartCommand :: Maybe String
, remoteAnnexStopCommand :: Maybe String
@@ -161,6 +167,7 @@ extractRemoteGitConfig r remotename = RemoteGitConfig
, remoteAnnexIgnore = getbool "ignore" False
, remoteAnnexSync = getbool "sync" True
, remoteAnnexReadOnly = getbool "readonly" False
+ , remoteAnnexVerify = getbool "verify" True
, remoteAnnexTrustLevel = notempty $ getmaybe "trustlevel"
, remoteAnnexStartCommand = notempty $ getmaybe "start-command"
, remoteAnnexStopCommand = notempty $ getmaybe "stop-command"
diff --git a/Types/Remote.hs b/Types/Remote.hs
index 4b4732a51..24851e17c 100644
--- a/Types/Remote.hs
+++ b/Types/Remote.hs
@@ -13,6 +13,8 @@ module Types.Remote
, RemoteTypeA(..)
, RemoteA(..)
, Availability(..)
+ , Verification(..)
+ , unVerified
)
where
@@ -64,9 +66,9 @@ data RemoteA a = Remote {
-- all of its contents have been transferred.
storeKey :: Key -> AssociatedFile -> MeterUpdate -> a Bool,
-- Retrieves a key's contents to a file.
- -- (The MeterUpdate does not need to be used if it retrieves
- -- directly to the file, and not to an intermediate file.)
- retrieveKeyFile :: Key -> AssociatedFile -> FilePath -> MeterUpdate -> a Bool,
+ -- (The MeterUpdate does not need to be used if it writes
+ -- sequentially to the file.)
+ retrieveKeyFile :: Key -> AssociatedFile -> FilePath -> MeterUpdate -> a (Bool, Verification),
-- Retrieves a key's contents to a tmp file, if it can be done cheaply.
-- It's ok to create a symlink or hardlink.
retrieveKeyFileCheap :: Key -> AssociatedFile -> FilePath -> a Bool,
@@ -122,3 +124,12 @@ instance Eq (RemoteA a) where
instance Ord (RemoteA a) where
compare = comparing uuid
+
+-- Use Verified when the content of a key is verified as part of a
+-- transfer, and so a separate verification step is not needed.
+data Verification = UnVerified | Verified
+
+unVerified :: Monad m => m Bool -> m (Bool, Verification)
+unVerified a = do
+ ok <- a
+ return (ok, UnVerified)
diff --git a/Utility/Bloom.hs b/Utility/Bloom.hs
index 668901f76..67841225c 100644
--- a/Utility/Bloom.hs
+++ b/Utility/Bloom.hs
@@ -53,7 +53,7 @@ notElemB :: a -> Bloom a -> Bool
notElemB = Bloom.notElemB
elemB :: a -> Bloom a -> Bool
-elemB = Bloom.elem
+elemB = Bloom.elemB
newMB :: (a -> [Bloom.Hash]) -> Int -> ST s (Bloom.MBloom s a)
newMB = Bloom.newMB
diff --git a/Utility/Exception.hs b/Utility/Exception.hs
index 30bcc9245..13000e033 100644
--- a/Utility/Exception.hs
+++ b/Utility/Exception.hs
@@ -39,10 +39,7 @@ catchBoolIO = catchDefaultIO False
{- Catches IO errors and returns a Maybe -}
catchMaybeIO :: MonadCatch m => m a -> m (Maybe a)
-catchMaybeIO a = do
- catchDefaultIO Nothing $ do
- v <- a
- return (Just v)
+catchMaybeIO a = catchDefaultIO Nothing $ a >>= (return . Just)
{- Catches IO errors and returns a default value. -}
catchDefaultIO :: MonadCatch m => a -> m a -> m a
diff --git a/Utility/Gpg.hs b/Utility/Gpg.hs
index 3e3a58013..1ac03ef54 100644
--- a/Utility/Gpg.hs
+++ b/Utility/Gpg.hs
@@ -30,10 +30,16 @@ type KeyId = String
newtype KeyIds = KeyIds { keyIds :: [KeyId] }
deriving (Ord, Eq)
-{- If a specific gpg command was found at configure time, use it.
- - Otherwise, try to run gpg. -}
-gpgcmd :: FilePath
-gpgcmd = fromMaybe "gpg" SysConfig.gpg
+newtype GpgCmd = GpgCmd { unGpgCmd :: String }
+
+{- Get gpg command to use, Just what's specified or, if a specific gpg
+ - command was found at configure time, use it, or otherwise, "gpg". -}
+mkGpgCmd :: Maybe FilePath -> GpgCmd
+mkGpgCmd (Just c) = GpgCmd c
+mkGpgCmd Nothing = GpgCmd (fromMaybe "gpg" SysConfig.gpg)
+
+boolGpgCmd :: GpgCmd -> [CommandParam] -> IO Bool
+boolGpgCmd (GpgCmd cmd) = boolSystem cmd
-- Generate an argument list to asymetrically encrypt to the given recipients.
pkEncTo :: [String] -> [CommandParam]
@@ -76,19 +82,19 @@ stdEncryptionParams symmetric = enc symmetric ++
]
{- Runs gpg with some params and returns its stdout, strictly. -}
-readStrict :: [CommandParam] -> IO String
-readStrict params = do
+readStrict :: GpgCmd -> [CommandParam] -> IO String
+readStrict (GpgCmd cmd) params = do
params' <- stdParams params
- withHandle StdoutHandle createProcessSuccess (proc gpgcmd params') $ \h -> do
+ withHandle StdoutHandle createProcessSuccess (proc cmd params') $ \h -> do
hSetBinaryMode h True
hGetContentsStrict h
{- Runs gpg, piping an input value to it, and returning its stdout,
- strictly. -}
-pipeStrict :: [CommandParam] -> String -> IO String
-pipeStrict params input = do
+pipeStrict :: GpgCmd -> [CommandParam] -> String -> IO String
+pipeStrict (GpgCmd cmd) params input = do
params' <- stdParams params
- withIOHandles createProcessSuccess (proc gpgcmd params') $ \(to, from) -> do
+ withIOHandles createProcessSuccess (proc cmd params') $ \(to, from) -> do
hSetBinaryMode to True
hSetBinaryMode from True
hPutStr to input
@@ -106,8 +112,8 @@ pipeStrict params input = do
-
- Note that to avoid deadlock with the cleanup stage,
- the reader must fully consume gpg's input before returning. -}
-feedRead :: (MonadIO m, MonadMask m) => [CommandParam] -> String -> (Handle -> IO ()) -> (Handle -> m a) -> m a
-feedRead params passphrase feeder reader = do
+feedRead :: (MonadIO m, MonadMask m) => GpgCmd -> [CommandParam] -> String -> (Handle -> IO ()) -> (Handle -> m a) -> m a
+feedRead cmd params passphrase feeder reader = do
#ifndef mingw32_HOST_OS
-- pipe the passphrase into gpg on a fd
(frompipe, topipe) <- liftIO System.Posix.IO.createPipe
@@ -127,13 +133,13 @@ feedRead params passphrase feeder reader = do
go $ passphrasefile ++ params
#endif
where
- go params' = pipeLazy params' feeder reader
+ go params' = pipeLazy cmd params' feeder reader
{- Like feedRead, but without passphrase. -}
-pipeLazy :: (MonadIO m, MonadMask m) => [CommandParam] -> (Handle -> IO ()) -> (Handle -> m a) -> m a
-pipeLazy params feeder reader = do
+pipeLazy :: (MonadIO m, MonadMask m) => GpgCmd -> [CommandParam] -> (Handle -> IO ()) -> (Handle -> m a) -> m a
+pipeLazy (GpgCmd cmd) params feeder reader = do
params' <- liftIO $ stdParams $ Param "--batch" : params
- let p = (proc gpgcmd params')
+ let p = (proc cmd params')
{ std_in = CreatePipe
, std_out = CreatePipe
, std_err = Inherit
@@ -152,8 +158,8 @@ pipeLazy params feeder reader = do
{- Finds gpg public keys matching some string. (Could be an email address,
- a key id, or a name; See the section 'HOW TO SPECIFY A USER ID' of
- GnuPG's manpage.) -}
-findPubKeys :: String -> IO KeyIds
-findPubKeys for = KeyIds . parse . lines <$> readStrict params
+findPubKeys :: GpgCmd -> String -> IO KeyIds
+findPubKeys cmd for = KeyIds . parse . lines <$> readStrict cmd params
where
params = [Param "--with-colons", Param "--list-public-keys", Param for]
parse = mapMaybe (keyIdField . split ":")
@@ -164,10 +170,10 @@ type UserId = String
{- All of the user's secret keys, with their UserIds.
- Note that the UserId may be empty. -}
-secretKeys :: IO (M.Map KeyId UserId)
-secretKeys = catchDefaultIO M.empty makemap
+secretKeys :: GpgCmd -> IO (M.Map KeyId UserId)
+secretKeys cmd = catchDefaultIO M.empty makemap
where
- makemap = M.fromList . parse . lines <$> readStrict params
+ makemap = M.fromList . parse . lines <$> readStrict cmd params
params = [Param "--with-colons", Param "--list-secret-keys", Param "--fixed-list-mode"]
parse = extract [] Nothing . map (split ":")
extract c (Just keyid) (("uid":_:_:_:_:_:_:_:_:userid:_):rest) =
@@ -193,9 +199,9 @@ maxRecommendedKeySize = 4096
- The key is added to the secret key ring.
- Can take a very long time, depending on system entropy levels.
-}
-genSecretKey :: KeyType -> Passphrase -> UserId -> Size -> IO ()
-genSecretKey keytype passphrase userid keysize =
- withHandle StdinHandle createProcessSuccess (proc gpgcmd params) feeder
+genSecretKey :: GpgCmd -> KeyType -> Passphrase -> UserId -> Size -> IO ()
+genSecretKey (GpgCmd cmd) keytype passphrase userid keysize =
+ withHandle StdinHandle createProcessSuccess (proc cmd params) feeder
where
params = ["--batch", "--gen-key"]
feeder h = do
@@ -217,8 +223,8 @@ genSecretKey keytype passphrase userid keysize =
{- Creates a block of high-quality random data suitable to use as a cipher.
- It is armored, to avoid newlines, since gpg only reads ciphers up to the
- first newline. -}
-genRandom :: Bool -> Size -> IO String
-genRandom highQuality size = checksize <$> readStrict params
+genRandom :: GpgCmd -> Bool -> Size -> IO String
+genRandom cmd highQuality size = checksize <$> readStrict cmd params
where
params =
[ Param "--gen-random"
@@ -327,8 +333,8 @@ keyBlock public ls = unlines
#ifndef mingw32_HOST_OS
{- Runs an action using gpg in a test harness, in which gpg does
- not use ~/.gpg/, but a directory with the test key set up to be used. -}
-testHarness :: IO a -> IO a
-testHarness a = do
+testHarness :: GpgCmd -> IO a -> IO a
+testHarness cmd a = do
orig <- getEnv var
bracket setup (cleanup orig) (const a)
where
@@ -339,8 +345,8 @@ testHarness a = do
dir <- mktmpdir $ base </> "gpgtmpXXXXXX"
setEnv var dir True
-- For some reason, recent gpg needs a trustdb to be set up.
- _ <- pipeStrict [Param "--trust-model", Param "auto", Param "--update-trustdb"] []
- _ <- pipeStrict [Param "--import", Param "-q"] $ unlines
+ _ <- pipeStrict cmd [Param "--trust-model", Param "auto", Param "--update-trustdb"] []
+ _ <- pipeStrict cmd [Param "--import", Param "-q"] $ unlines
[testSecretKey, testKey]
return dir
@@ -349,22 +355,22 @@ testHarness a = do
reset _ = unsetEnv var
{- Tests the test harness. -}
-testTestHarness :: IO Bool
-testTestHarness = do
- keys <- testHarness $ findPubKeys testKeyId
+testTestHarness :: GpgCmd -> IO Bool
+testTestHarness cmd = do
+ keys <- testHarness cmd $ findPubKeys cmd testKeyId
return $ KeyIds [testKeyId] == keys
#endif
#ifndef mingw32_HOST_OS
-checkEncryptionFile :: FilePath -> Maybe KeyIds -> IO Bool
-checkEncryptionFile filename keys =
- checkGpgPackets keys =<< readStrict params
+checkEncryptionFile :: GpgCmd -> FilePath -> Maybe KeyIds -> IO Bool
+checkEncryptionFile cmd filename keys =
+ checkGpgPackets cmd keys =<< readStrict cmd params
where
params = [Param "--list-packets", Param "--list-only", File filename]
-checkEncryptionStream :: String -> Maybe KeyIds -> IO Bool
-checkEncryptionStream stream keys =
- checkGpgPackets keys =<< pipeStrict params stream
+checkEncryptionStream :: GpgCmd -> String -> Maybe KeyIds -> IO Bool
+checkEncryptionStream cmd stream keys =
+ checkGpgPackets cmd keys =<< pipeStrict cmd params stream
where
params = [Param "--list-packets", Param "--list-only"]
@@ -372,8 +378,8 @@ checkEncryptionStream stream keys =
- symmetrically encrypted (keys is Nothing), or encrypted to some
- public key(s).
- /!\ The key needs to be in the keyring! -}
-checkGpgPackets :: Maybe KeyIds -> String -> IO Bool
-checkGpgPackets keys str = do
+checkGpgPackets :: GpgCmd -> Maybe KeyIds -> String -> IO Bool
+checkGpgPackets cmd keys str = do
let (asym,sym) = partition (pubkeyEncPacket `isPrefixOf`) $
filter (\l' -> pubkeyEncPacket `isPrefixOf` l' ||
symkeyEncPacket `isPrefixOf` l') $
@@ -384,7 +390,7 @@ checkGpgPackets keys str = do
(Just (KeyIds ks), ls, []) -> do
-- Find the master key associated with the
-- encryption subkey.
- ks' <- concat <$> mapM (keyIds <$$> findPubKeys)
+ ks' <- concat <$> mapM (keyIds <$$> findPubKeys cmd)
[ k | k:"keyid":_ <- map (reverse . words) ls ]
return $ sort (nub ks) == sort (nub ks')
_ -> return False
diff --git a/Utility/Matcher.hs b/Utility/Matcher.hs
index 19a77201c..badf72acf 100644
--- a/Utility/Matcher.hs
+++ b/Utility/Matcher.hs
@@ -27,6 +27,7 @@ module Utility.Matcher (
matchM,
matchMrun,
isEmpty,
+ combineMatchers,
prop_matcher_sane
) where
@@ -142,6 +143,14 @@ isEmpty :: Matcher a -> Bool
isEmpty MAny = True
isEmpty _ = False
+{- Combines two matchers, yielding a matcher that will match anything
+ - both do. But, if one matcher contains no limits, yield the other one. -}
+combineMatchers :: Matcher a -> Matcher a -> Matcher a
+combineMatchers a b
+ | isEmpty a = b
+ | isEmpty b = a
+ | otherwise = a `MOr` b
+
prop_matcher_sane :: Bool
prop_matcher_sane = all (\m -> match dummy m ()) $ map generate
[ [Operation True]
diff --git a/Utility/Misc.hs b/Utility/Misc.hs
index 45d5a0639..ebb42576b 100644
--- a/Utility/Misc.hs
+++ b/Utility/Misc.hs
@@ -136,7 +136,7 @@ hGetSomeString h sz = do
- if this reap gets there first. -}
reapZombies :: IO ()
#ifndef mingw32_HOST_OS
-reapZombies = do
+reapZombies =
-- throws an exception when there are no child processes
catchDefaultIO Nothing (getAnyProcessStatus False True)
>>= maybe (return ()) (const reapZombies)
diff --git a/Utility/OptParse.hs b/Utility/OptParse.hs
index f58e8fadf..c65a18c24 100644
--- a/Utility/OptParse.hs
+++ b/Utility/OptParse.hs
@@ -9,6 +9,7 @@ module Utility.OptParse where
import Options.Applicative
import Data.Monoid
+import Prelude
-- | A switch that can be enabled using --foo and disabled using --no-foo.
--
diff --git a/Utility/Process.hs b/Utility/Process.hs
index ae9ce49c8..cc1138678 100644
--- a/Utility/Process.hs
+++ b/Utility/Process.hs
@@ -376,11 +376,10 @@ createProcess p = do
-- | Debugging trace for a CreateProcess.
debugProcess :: CreateProcess -> IO ()
-debugProcess p = do
- debugM "Utility.Process" $ unwords
- [ action ++ ":"
- , showCmd p
- ]
+debugProcess p = debugM "Utility.Process" $ unwords
+ [ action ++ ":"
+ , showCmd p
+ ]
where
action
| piped (std_in p) && piped (std_out p) = "chat"
diff --git a/Utility/Scheduled.hs b/Utility/Scheduled.hs
index b3813323d..5e813d4a2 100644
--- a/Utility/Scheduled.hs
+++ b/Utility/Scheduled.hs
@@ -286,7 +286,7 @@ fromScheduledTime AnyTime = "any time"
fromScheduledTime (SpecificTime h m) =
show h' ++ (if m > 0 then ":" ++ pad 2 (show m) else "") ++ " " ++ ampm
where
- pad n s = take (n - length s) (repeat '0') ++ s
+ pad n s = replicate (n - length s) '0' ++ s
(h', ampm)
| h == 0 = (12, "AM")
| h < 12 = (h, "AM")
diff --git a/Utility/SshConfig.hs b/Utility/SshConfig.hs
index ca336a4b8..1f8581a28 100644
--- a/Utility/SshConfig.hs
+++ b/Utility/SshConfig.hs
@@ -81,7 +81,8 @@ genSshConfig = unlines . concatMap gen
gen (GlobalConfig s) = [setting s]
gen (HostConfig h cs) = ("Host " ++ h) : map (either comment setting) cs
- setting (SshSetting indent k v) = indent ++ k ++ " " ++ v
+ setting (SshSetting indent k v) = indent ++ k ++
+ if null v then "" else " " ++ v
comment (Comment indent c) = indent ++ c
findHostConfigKey :: SshConfig -> Key -> Maybe Value
@@ -117,8 +118,11 @@ changeUserSshConfig modifier = do
whenM (doesFileExist configfile) $ do
c <- readFileStrict configfile
let c' = modifier c
- when (c /= c') $
- viaTmp writeSshConfig configfile c'
+ when (c /= c') $ do
+ -- If it's a symlink, replace the file it
+ -- points to.
+ f <- catchDefaultIO configfile (canonicalizePath configfile)
+ viaTmp writeSshConfig f c'
writeSshConfig :: FilePath -> String -> IO ()
writeSshConfig f s = do
diff --git a/Utility/Url.hs b/Utility/Url.hs
index 976fe975d..19568fda8 100644
--- a/Utility/Url.hs
+++ b/Utility/Url.hs
@@ -11,6 +11,7 @@
{-# LANGUAGE FlexibleContexts #-}
module Utility.Url (
+ closeManager,
URLString,
UserAgent,
UrlOptions,
@@ -31,11 +32,21 @@ import Utility.Tmp
import qualified Build.SysConfig
import Network.URI
-import Network.HTTP.Conduit
import Network.HTTP.Types
import qualified Data.CaseInsensitive as CI
import qualified Data.ByteString as B
import qualified Data.ByteString.UTF8 as B8
+import Control.Monad.Trans.Resource
+import Network.HTTP.Conduit hiding (closeManager)
+
+-- closeManager is needed with older versions of http-client,
+-- but not new versions, which warn about using it. Urgh.
+#if ! MIN_VERSION_http_client(0,4,18)
+import Network.HTTP.Client (closeManager)
+#else
+closeManager :: Manager -> IO ()
+closeManager _ = return ()
+#endif
type URLString = String
@@ -164,16 +175,23 @@ getUrlInfo url uo = case parseURIRelaxed url of
firstheader h = headMaybe . map snd .
filter (\p -> fst p == h) . responseHeaders
- existsconduit req = withManager $ \mgr -> do
+ existsconduit req = do
+ mgr <- newManager
+#if MIN_VERSION_http_conduit(2,1,7)
+ tlsManagerSettings
+#else
+ conduitManagerSettings
+#endif
let req' = headRequest (applyRequest uo req)
- resp <- http req' mgr
- -- forces processing the response before the
- -- manager is closed
- ret <- liftIO $ if responseStatus resp == ok200
- then found
- (extractlen resp)
- (extractfilename resp)
- else dne
+ ret <- runResourceT $ do
+ resp <- http req' mgr
+ -- forces processing the response before the
+ -- manager is closed
+ liftIO $ if responseStatus resp == ok200
+ then found
+ (extractlen resp)
+ (extractfilename resp)
+ else dne
liftIO $ closeManager mgr
return ret
diff --git a/Utility/libdiskfree.c b/Utility/libdiskfree.c
index c2f8368f0..12d70e259 100644
--- a/Utility/libdiskfree.c
+++ b/Utility/libdiskfree.c
@@ -13,23 +13,26 @@
# include <sys/mount.h>
# define STATCALL statfs
# define STATSTRUCT statfs64
+# define BSIZE f_bsize
#else
#if defined (__FreeBSD__)
# include <sys/param.h>
# include <sys/mount.h>
# define STATCALL statfs /* statfs64 not yet tested on a real FreeBSD machine */
# define STATSTRUCT statfs
+# define BSIZE f_bsize
#else
#if defined __ANDROID__
# warning free space checking code not available for Android
# define UNKNOWN
#else
-#if defined (__linux__) || defined (__FreeBSD_kernel__)
-/* Linux or Debian kFreeBSD */
+#if defined (__linux__) || defined (__FreeBSD_kernel__) || (defined (__SVR4) && defined (__sun))
+/* Linux or Debian kFreeBSD or Solaris */
/* This is a POSIX standard, so might also work elsewhere too. */
# include <sys/statvfs.h>
# define STATCALL statvfs
# define STATSTRUCT statvfs
+# define BSIZE f_frsize
#else
# warning free space checking code not available for this OS
# define UNKNOWN
@@ -65,7 +68,7 @@ unsigned long long int get(const char *path, int req) {
v = 0;
}
- blocksize = buf.f_bsize;
+ blocksize = buf.BSIZE;
return v * blocksize;
#endif
}
diff --git a/debian/changelog b/debian/changelog
index 99f1f26ae..1c1aa63c7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,77 @@
-git-annex (5.20150825) UNRELEASED; urgency=medium
+git-annex (5.20150931) UNRELEASED; urgency=medium
+
+ * Do verification of checksums of annex objects downloaded from remotes.
+ * When annex objects are received into git repositories from other git
+ repos, their checksums are verified then too.
+ * To get the old, faster, behavior of not verifying checksums, set
+ annex.verify=false, or remote.<name>.annex-verify=false.
+ * setkey, rekey: These commands also now verify that the provided file
+ matches the key, unless annex.verify=false.
+ * reinject: Already verified content; this can now be disabled by
+ setting annex.verify=false.
+ * Allow building with S3 disabled again.
+ * Ported disk free space checking code to work on Solaris.
+ * Windows webapp: Fix support for entering password when setting
+ up a ssh remote.
+
+ -- Joey Hess <id@joeyh.name> Thu, 01 Oct 2015 12:42:56 -0400
+
+git-annex (5.20150930) unstable; urgency=medium
+
+ * Added new linux standalone "ancient" build to support kernels
+ like 2.6.32.
+ * info: Don't allow use in a non-git-annex repository, since it
+ uses the git-annex branch and would create it if it were missing.
+ * assistant: When updating ~/.ssh/config, preserve any symlinks.
+ * webapp: Remove the "disable remote" feature from the UI.
+ * S3: When built with aws-0.13.0, supports using more storage classes.
+ In particular, storageclass=STANDARD_IA to use Amazon's
+ new Infrequently Accessed storage, and storageclass=NEARLINE
+ to use Google's NearLine storage.
+ * Improve ~/.ssh/config modification code to not add trailing spaces
+ to lines it cannot parse.
+ * Fix a crash at direct mode merge time when .git/index doesn't exist
+ yet. Triggered by eg, git-annex sync --no-commit in a fresh clone of
+ a repository.
+ * status: Show added but not yet committed files.
+ * Added stack.yaml to support easy builds from source with stack.
- * Fix Windows build to work with ghc 7.10.
- * webapp: Fix support for entering password when setting up a ssh remote.
+ -- Joey Hess <id@joeyh.name> Wed, 30 Sep 2015 14:31:52 -0400
- -- Joey Hess <id@joeyh.name> Tue, 01 Sep 2015 14:46:18 -0700
+git-annex (5.20150916) unstable; urgency=medium
+
+ * Fix Windows build to work with ghc 7.10.
+ * init: Fix reversion in detection of repo made with git clone --shared
+ * info: Support querying info of individual files in direct mode.
+ * unused: Fix reversion in 5.20150727 that broke parsing of the
+ --unused-refspec option. Thanks, Øyvind A. Holm.
+ * Make full option parsing be done when not in a git repo, so --help
+ can be displayed for commands that require a git repo, etc.
+ * fsck: Work around bug in persistent that broke display of
+ problematically encoded filenames on stderr when using --incremental.
+ * When gpg.program is configured, it's used to get the command to run
+ for gpg. Useful on systems that have only a gpg2 command or want to
+ use it instead of the gpg command.
+ * Windows: Switched to using git for Windows, rather than msysgit.
+ Using msysgit with git-annex is no longer supported.
+ * Windows: Even when the user neglects to tell the git installer to
+ add git to PATH, git-annex will still work from within the git bash
+ shell, and the webapp can be used too.
+ * sync: Add --no-commit, --no-pull, --no-push options to turn off parts of
+ the sync process, as well as supporting --commit, --pull, --push, and
+ --no-content options to specify the (current) default behavior.
+ * annex.hardlink extended to also try to use hard links when copying from
+ the repository to a remote.
+ * Improve bash completion, so it completes names of remotes and backends
+ in appropriate places.
+ * Special remotes configured with autoenable=true will be automatically
+ enabled when git-annex init is run.
+ * Fix bug in combination of preferred and required content settings.
+ When one was set to the empty string and the other set to some expression,
+ this bug caused all files to be wanted, instead of only files matching
+ the expression.
+
+ -- Joey Hess <id@joeyh.name> Wed, 16 Sep 2015 10:31:24 -0400
git-annex (5.20150824) unstable; urgency=medium
diff --git a/doc/Void.mdwn b/doc/Void.mdwn
new file mode 100644
index 000000000..772c9d9b9
--- /dev/null
+++ b/doc/Void.mdwn
@@ -0,0 +1 @@
+git-annex can be installed in Void Linux by running: `xbps-install git-annex`.
diff --git a/doc/bugs/--help_should_not_demand_being_in_the_git_repo.mdwn b/doc/bugs/--help_should_not_demand_being_in_the_git_repo.mdwn
index 0a7aa43fb..83ba3319f 100644
--- a/doc/bugs/--help_should_not_demand_being_in_the_git_repo.mdwn
+++ b/doc/bugs/--help_should_not_demand_being_in_the_git_repo.mdwn
@@ -22,3 +22,4 @@ remote types: git gcrypt S3 bup directory rsync web bittorrent webdav tahoe glac
YES -- lots of luck ;)
+> [[fixed|done]] --[[Joey]]
diff --git a/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching.mdwn b/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching.mdwn
new file mode 100644
index 000000000..4bb1fc0e2
--- /dev/null
+++ b/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching.mdwn
@@ -0,0 +1,25 @@
+### Please describe the problem.
+When switching between my 2 repositories I now see a "." repository, see screenshot: http://screencast.com/t/0wxugJ9P
+If I chose to switch to it, I get this error: http://screencast.com/t/5mndGNlhh8oN
+
+### What steps will reproduce the problem?
+Not sure if this is a real bug, maybe I screwed up?
+
+### What version of git-annex are you using? On what operating system?
+Version: 5.20150929-g7010007
+Build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV FsEvents XMPP DNS Feeds Quvi TDFA TorrentParser Database
+MAC OSX 10.10.5
+
+### Please provide any additional information below.
+
+[[!format sh """
+# If you can, paste a complete transcript of the problem occurring here.
+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
+there is nothing relevant to this error in there unfortunately.
+
+# End of transcript or log.
+"""]]
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+
diff --git a/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching/comment_1_70a34d43629075249897bdc5301c55f5._comment b/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching/comment_1_70a34d43629075249897bdc5301c55f5._comment
new file mode 100644
index 000000000..3780297f6
--- /dev/null
+++ b/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching/comment_1_70a34d43629075249897bdc5301c55f5._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="ovidiu@66ace8a8d99ce938b0538ffa0f26d30db02a9626"
+ nickname="ovidiu"
+ subject="comment 1"
+ date="2015-10-03T19:03:17Z"
+ content="""
+trying to delete the test-repository I had created I get:
+http://screencast.com/t/AhSiNXESvm
+trying again I get:
+http://screencast.com/t/hpFZL0mL
+
+but in the end it got deleted. kinda. not sure. :-( one deleted successfully one simply hangs.
+still nothing in the logs.
+"""]]
diff --git a/doc/bugs/Android:_Several_error_messages___47___warnings.mdwn b/doc/bugs/Android:_Several_error_messages___47___warnings.mdwn
new file mode 100644
index 000000000..c6085c21a
--- /dev/null
+++ b/doc/bugs/Android:_Several_error_messages___47___warnings.mdwn
@@ -0,0 +1,38 @@
+### Please describe the problem.
+
+When I start Git Annex then there are several warnings. The app renders my phone basically unusable (two time my phone rebooted and several time I had to remove the battery because the phone didn't respond).
+
+It seems Git Annex uses all the available memory (one warning is that git-annex has text relocations and that this wastes memory.
+
+I've attached a screen shot of the error messages.
+
+
+### What steps will reproduce the problem?
+
+Starting Git Annex on my phone
+
+
+### What version of git-annex are you using? On what operating system?
+
+Git Annex: 5.20150927-gb506fb2
+Android: 5.0.2
+
+
+### Please provide any additional information below.
+
+My phone is low-end (it has only ~512MB memory for example) - but normally everything works more or less okay.
+
+If I use Chrome as the browser and start the webapp then Git Annex gets (it seems) killed quite often. It seems because there is not enough memory.
+
+If I use a browser with a small memory footprint then the webapp works only barely better - very unresponsive (but at least Git Annex isn't killed).
+
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+Sorry, no, I'm just starting out with Git Annex :)
+
+But Git Annex looks amazing - exactly what I need! ;)
+
+Can I somehow help to find the problem?
+
+I'd really love to use Git Annex on my phone.
diff --git a/doc/bugs/Android:_Several_error_messages___47___warnings/comment_1_85da61d3dfb528fef17366effe123ff5._comment b/doc/bugs/Android:_Several_error_messages___47___warnings/comment_1_85da61d3dfb528fef17366effe123ff5._comment
new file mode 100644
index 000000000..92a19534a
--- /dev/null
+++ b/doc/bugs/Android:_Several_error_messages___47___warnings/comment_1_85da61d3dfb528fef17366effe123ff5._comment
@@ -0,0 +1,16 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-29T15:27:20Z"
+ content="""
+I don't think that the warning about text relocations is a significant
+source of memory usage.
+
+It would probably help if you can get some memory use value for git-annex
+while it's running, and for chrome after it's loaded the git-annex webapp.
+These are two separate uses of memory, and it's not clear which one is
+actually using up too much of your memory.
+
+I've run git-annex on android systems that are smaller than 512 mb, and
+generally the assistant only uses a few MB of memory on other platforms.
+"""]]
diff --git a/doc/bugs/Android:_Several_error_messages___47___warnings/comment_2_97ddaba23e91a903f69cf00931627444._comment b/doc/bugs/Android:_Several_error_messages___47___warnings/comment_2_97ddaba23e91a903f69cf00931627444._comment
new file mode 100644
index 000000000..22aacf306
--- /dev/null
+++ b/doc/bugs/Android:_Several_error_messages___47___warnings/comment_2_97ddaba23e91a903f69cf00931627444._comment
@@ -0,0 +1,21 @@
+[[!comment format=mdwn
+ username="dah"
+ subject="comment 2"
+ date="2015-10-04T18:25:29Z"
+ content="""
+I think the CPU of my phone is not good enough to be usable with a web browser on my phone.
+
+I can use Git Annex without the WebApp without phone stability problems. But if I start the WebApp then nothing works (it seems 100% of my CPU is used - but it could also be that the CPU monitor app did freeze).
+
+Websites like Google and Wikipedia work without problems but I had another website that made my phone unusable and forced me to restart my phone.
+
+I think therefore my phone is the problem and not Git Annex.
+
+So, the best way for me to use Git Annex on my phone is probably the cammand line interface.
+
+Besides the text relocations warning there was another message that said \"Falling back to hardcoded app location: cannot find expected files in $path\".
+
+Is this a problem or does everything work properly?
+
+
+"""]]
diff --git a/doc/bugs/Android:_Several_error_messages___47___warnings/comment_3_b4ea7ff7deb9626a02dfd0eb459f22a2._comment b/doc/bugs/Android:_Several_error_messages___47___warnings/comment_3_b4ea7ff7deb9626a02dfd0eb459f22a2._comment
new file mode 100644
index 000000000..f63f93d14
--- /dev/null
+++ b/doc/bugs/Android:_Several_error_messages___47___warnings/comment_3_b4ea7ff7deb9626a02dfd0eb459f22a2._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2015-10-04T19:27:18Z"
+ content="""
+Note that you can close the web browser and the git-annex assistant can
+still be running, and doing its thing. This might be a viable alternative
+to using the command line manually for you.
+
+The message about hardcoded app location isn't a problem if git-annex
+works.
+"""]]
diff --git a/doc/bugs/Assistant:_synchronisation_between_two_regular_repositories_hangs_.mdwn b/doc/bugs/Assistant:_synchronisation_between_two_regular_repositories_hangs_.mdwn
index 8e6c4f468..cc63ac138 100644
--- a/doc/bugs/Assistant:_synchronisation_between_two_regular_repositories_hangs_.mdwn
+++ b/doc/bugs/Assistant:_synchronisation_between_two_regular_repositories_hangs_.mdwn
@@ -26,3 +26,5 @@ Also note that the second repository is on a FAT32 usb stick
# End of transcript or log.
"""]]
+
+> [[fixed|done]] --[[Joey]]
diff --git a/doc/bugs/Assistant:_synchronisation_between_two_regular_repositories_hangs_/comment_3_db50cbdc302480c4b1fe0f364aa769d9._comment b/doc/bugs/Assistant:_synchronisation_between_two_regular_repositories_hangs_/comment_3_db50cbdc302480c4b1fe0f364aa769d9._comment
new file mode 100644
index 000000000..515ad0b7b
--- /dev/null
+++ b/doc/bugs/Assistant:_synchronisation_between_two_regular_repositories_hangs_/comment_3_db50cbdc302480c4b1fe0f364aa769d9._comment
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2015-09-22T16:25:15Z"
+ content="""
+Ok, that seems clear enough, and there's only 1 place where git-annex
+copies .git/index; in `mergeDirect`. Indeed, if .git/index doesn't exist
+yet when that is called, it'll crash. And, a freshly created git repo
+starts off without a .git/index until changes start to be staged.
+
+However, I can't reproduce the crash with a current version of git-annex,
+and this bug report is about a version nearly a year old now. AFAICS,
+the sync (or the assistant) will make a commit before merging, and that
+commit results in the index file being created, as a side effect.
+Also, I can't see anything that VFAT could have to do with this.
+
+Hmm, I did manage to reproduce the crash using the new --no-commit flag to
+git-annex sync. Will fix on that basis.
+"""]]
diff --git a/doc/bugs/Can__39__t_create_remote_for_Google_cloud_storage_DRA___47___nearline_buckets.mdwn b/doc/bugs/Can__39__t_create_remote_for_Google_cloud_storage_DRA___47___nearline_buckets.mdwn
index 35c157e22..57fe32e67 100644
--- a/doc/bugs/Can__39__t_create_remote_for_Google_cloud_storage_DRA___47___nearline_buckets.mdwn
+++ b/doc/bugs/Can__39__t_create_remote_for_Google_cloud_storage_DRA___47___nearline_buckets.mdwn
@@ -40,3 +40,5 @@ initremote test (checking bucket...) git-annex: S3Error {s3StatusCode = Status {
# End of transcript or log.
"""]]
+
+> [[dup|done]] of [[todo/Nearline_support]] --[[Joey]]
diff --git a/doc/bugs/MacOSX:_archive_folders_not_working_as_expected/comment_2_cf9a679c7e6ec5cae4109e748b20b8f9._comment b/doc/bugs/MacOSX:_archive_folders_not_working_as_expected/comment_2_cf9a679c7e6ec5cae4109e748b20b8f9._comment
new file mode 100644
index 000000000..8398805be
--- /dev/null
+++ b/doc/bugs/MacOSX:_archive_folders_not_working_as_expected/comment_2_cf9a679c7e6ec5cae4109e748b20b8f9._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-09-21T19:29:26Z"
+ content="""
+If this is OSX specific, which it seems to be (I've tested archive folders
+working as expected plenty on Linux), it might have to do with the
+assistant not seeing an event for the file being added when it's renamed
+to/from the archive folder. In the --debug log, it looks like the file
+got deleted but never added back.
+
+If this is the case, `git annex status` should show the file as not being
+checked into git.
+"""]]
diff --git a/doc/bugs/Prefered_Content_not_Taken_into_Account.mdwn b/doc/bugs/Prefered_Content_not_Taken_into_Account.mdwn
new file mode 100644
index 000000000..bdb3c9d97
--- /dev/null
+++ b/doc/bugs/Prefered_Content_not_Taken_into_Account.mdwn
@@ -0,0 +1,364 @@
+### Please describe the problem.
+
+This is a follow up to the question [1]. I've created 4 repos with the following vicfg.
+
+[[!format sh """
+# git-annex configuration
+#
+# Changes saved to this file will be recorded in the git-annex branch.
+#
+# Lines in this file have the format:
+# setting field = value
+
+# Repository trust configuration
+# (Valid trust levels: trusted semitrusted untrusted dead)
+# (for web)
+#trust 00000000-0000-0000-0000-000000000001 = semitrusted
+# (for bittorrent)
+#trust 00000000-0000-0000-0000-000000000002 = semitrusted
+# (for repo2)
+#trust 2837f3d7-7c58-4177-8877-620213cf5146 = semitrusted
+# (for repo3)
+#trust b3cbb656-e797-45ba-bf43-08523d463146 = semitrusted
+# (for repo1)
+#trust e7673de4-d465-4557-be8f-b1400acf923e = semitrusted
+
+# Repository groups
+# (Standard groups: client transfer backup incrementalbackup smallarchive archive source manual public unwanted)
+# (Separate group names with spaces)
+# (for repo3)
+group b3cbb656-e797-45ba-bf43-08523d463146 = PodA
+# (for repo1)
+group e7673de4-d465-4557-be8f-b1400acf923e = PodA
+# (for repo2)
+group 2837f3d7-7c58-4177-8877-620213cf5146 = PodB
+# (for web)
+#group 00000000-0000-0000-0000-000000000001 =
+# (for bittorrent)
+#group 00000000-0000-0000-0000-000000000002 =
+
+# Repository preferred contents
+# (Set to "standard" to use a repository's group's preferred contents)
+# (for repo2)
+wanted 2837f3d7-7c58-4177-8877-620213cf5146 = groupwanted
+# (for repo1)
+wanted e7673de4-d465-4557-be8f-b1400acf923e = groupwanted
+# (for web)
+#wanted 00000000-0000-0000-0000-000000000001 =
+# (for bittorrent)
+#wanted 00000000-0000-0000-0000-000000000002 =
+# (for repo3)
+#wanted b3cbb656-e797-45ba-bf43-08523d463146 =
+
+# Group preferred contents
+# (Used by repositories with "groupwanted" in their preferred contents)
+groupwanted PodA = not copies=PodA:1
+groupwanted PodB = not copies=PodB:1
+#groupwanted archive =
+#groupwanted backup =
+#groupwanted client =
+#groupwanted incrementalbackup =
+#groupwanted manual =
+#groupwanted public =
+#groupwanted smallarchive =
+#groupwanted source =
+#groupwanted transfer =
+#groupwanted unwanted =
+
+# Standard preferred contents
+# (Used by wanted or groupwanted expressions containing "standard")
+# (For reference only; built-in and cannot be changed!)
+# standard client = (include=* and ((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1)))) or approxlackingcopies=1
+# standard transfer = (not (inallgroup=client and copies=client:2) and ((include=* and ((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1)))) or approxlackingcopies=1)) or approxlackingcopies=1
+# standard backup = anything
+# standard incrementalbackup = ((not copies=backup:1) and (not copies=incrementalbackup:1)) or approxlackingcopies=1
+# standard smallarchive = ((include=*/archive/* or include=archive/*) and ((not (copies=archive:1 or copies=smallarchive:1)) or approxlackingcopies=1)) or approxlackingcopies=1
+# standard archive = (not (copies=archive:1 or copies=smallarchive:1)) or approxlackingcopies=1
+# standard source = not (copies=1)
+# standard manual = present and ((include=* and ((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1)))) or approxlackingcopies=1)
+# standard public = inpreferreddir
+# standard unwanted = not anything
+
+# Repository required contents
+# (for web)
+#required 00000000-0000-0000-0000-000000000001 =
+# (for bittorrent)
+#required 00000000-0000-0000-0000-000000000002 =
+# (for repo2)
+#required 2837f3d7-7c58-4177-8877-620213cf5146 =
+# (for repo3)
+#required b3cbb656-e797-45ba-bf43-08523d463146 =
+# (for repo1)
+#required e7673de4-d465-4557-be8f-b1400acf923e =
+
+# Scheduled activities
+# (Separate multiple activities with "; ")
+# (for web)
+#schedule 00000000-0000-0000-0000-000000000001 =
+# (for bittorrent)
+#schedule 00000000-0000-0000-0000-000000000002 =
+# (for repo2)
+#schedule 2837f3d7-7c58-4177-8877-620213cf5146 =
+# (for repo3)
+#schedule b3cbb656-e797-45ba-bf43-08523d463146 =
+# (for repo1)
+#schedule e7673de4-d465-4557-be8f-b1400acf923e =
+"""]]
+
+This works as expected each file lands in 1 on of the repos on the group, not both. My original repo one with the problem has the following vicfg.
+
+[[!format sh """
+# git-annex configuration
+#
+# Changes saved to this file will be recorded in the git-annex branch.
+#
+# Lines in this file have the format:
+# setting field = value
+
+# Repository trust configuration
+# (Valid trust levels: trusted semitrusted untrusted dead)
+# (for buse [origin])
+trust bff7238e-bd92-4929-88a8-c59c1a1dcf03 = semitrusted
+# (for web)
+trust 00000000-0000-0000-0000-000000000001 = untrusted
+# (for bittorrent)
+trust 00000000-0000-0000-0000-000000000002 = untrusted
+# (for )
+trust 03b19bdc-8497-4234-9ef6-c80d78e309f8 = dead
+# (for )
+trust 0b1a34ce-a8e3-4002-b46a-83e96626305f = dead
+# (for )
+trust 1459a238-6f60-4b43-8459-f7055b49e3c5 = dead
+# (for )
+trust 14738d0f-2f50-4f93-a8e4-c29870d02ba1 = dead
+# (for )
+trust 1512a830-7789-4bc8-a4a0-4c51eedd1109 = dead
+# (for )
+trust 174d69cb-9b97-44df-9f15-aea00f66a61c = dead
+# (for )
+trust 1ade7f29-2ad0-4ab0-a816-de55ffde389e = dead
+# (for )
+trust 1ba9d14b-deae-46e6-b451-dbf0fa8aa934 = dead
+# (for )
+trust 1dda84ca-4e8c-49b4-b673-35ec2b11557b = dead
+# (for )
+trust 29aad234-82e6-45c9-9822-b650290c2264 = dead
+# (for )
+trust 2be091a2-e721-4a86-a759-c5df7a41a61d = dead
+# (for )
+trust 3540b01a-03f0-4a58-8ea1-7ca80002a22d = dead
+# (for )
+trust 39b4d431-9d55-432d-a801-eaf4cf643de1 = dead
+# (for )
+trust 3a443e72-e8e0-11e2-b7db-8feb865236d4 = dead
+# (for )
+trust 42023cde-e95f-483c-8389-54b823aed789 = dead
+# (for )
+trust 54a819c1-65a3-44e9-86c3-0eb602223ee8 = dead
+# (for )
+trust 68846c04-912d-4bfc-80f3-3b8ec1e7a3c7 = dead
+# (for )
+trust 69b10f7e-0214-4fd0-8138-ff4717d1f39f = dead
+# (for )
+trust 7b236779-a961-4e72-abfc-56b764e53a9c = dead
+# (for )
+trust 7cde3feb-3876-4c2a-a772-d4541eac8614 = dead
+# (for )
+trust 8f3e7b2b-f8de-4114-bcdd-2ef3ed932c18 = dead
+# (for )
+trust a3bd1546-e8df-11e2-bc54-a7edbf29f5da = dead
+# (for )
+trust aa830256-4c63-44e3-9a3f-33b377de79d5 = dead
+# (for )
+trust ad46e36b-df9c-4d45-9af1-58d17e798afa = dead
+# (for )
+trust b5464382-b5f8-4ec3-b36d-a378b1202497 = dead
+# (for )
+trust b6317827-97d3-44bd-8197-91cae0b56a19 = dead
+# (for )
+trust bbb5dd98-f09d-11e2-a57b-d7185df9eef1 = dead
+# (for )
+trust c6dfb856-a0cc-4e79-acbd-3600f4bce158 = dead
+# (for )
+trust ccb11b54-ecc8-11e2-ad6c-af6445c8eedc = dead
+# (for )
+trust cdbf33bc-17bc-49e3-b0d1-afa653a2c1f7 = dead
+# (for )
+trust d8cf3fb5-4e8e-4732-b566-dab6f2d9dc4c = dead
+# (for )
+trust e160a8ef-3b3d-4f0e-88eb-9ceba11b2f57 = dead
+# (for )
+trust e39439a0-1486-55a0-ada3-c9785c08d650 = dead
+# (for )
+trust e8bcb64b-17df-4d79-a5b6-9d444e4afa51 = dead
+# (for )
+trust eae76b0e-ada9-4c5e-b9e3-db5998324e70 = dead
+# (for )
+trust ec71b4bd-1b7b-408c-906f-91c4168fd89f = dead
+# (for )
+trust f936015b-d62b-4899-a3f0-8d91efb385b5 = dead
+# (for damla)
+#trust 132503d4-dcde-4790-aabb-ee5ba539a3a0 = semitrusted
+# (for ozge)
+#trust 1e1d0c4e-b1da-465f-9140-7128a7e3ee13 = semitrusted
+# (for mini)
+#trust 7deafa14-8add-4316-984f-9b24eb713770 = semitrusted
+# (for irem)
+#trust aabc3536-a423-42b6-a234-5f110607296e = semitrusted
+# (for yesim)
+#trust ba3593c0-ddf1-4433-9916-aa25d1a52895 = semitrusted
+# (for hubic)
+#trust f980f309-0ebd-41c8-9303-73aff6409365 = semitrusted
+
+# Repository groups
+# (Standard groups: client transfer backup incrementalbackup smallarchive archive source manual public unwanted)
+# (Separate group names with spaces)
+# (for damla)
+group 132503d4-dcde-4790-aabb-ee5ba539a3a0 = PodA
+# (for ozge)
+group 1e1d0c4e-b1da-465f-9140-7128a7e3ee13 = PodA
+# (for irem)
+group aabc3536-a423-42b6-a234-5f110607296e = PodA
+# (for yesim)
+group ba3593c0-ddf1-4433-9916-aa25d1a52895 = PodA
+# (for buse [origin])
+group bff7238e-bd92-4929-88a8-c59c1a1dcf03 = PodA
+# (for hubic)
+group f980f309-0ebd-41c8-9303-73aff6409365 = PodB
+# (for mini)
+group 7deafa14-8add-4316-984f-9b24eb713770 = manual
+# (for web)
+#group 00000000-0000-0000-0000-000000000001 =
+# (for bittorrent)
+#group 00000000-0000-0000-0000-000000000002 =
+
+# Repository preferred contents
+# (Set to "standard" to use a repository's group's preferred contents)
+# (for damla)
+wanted 132503d4-dcde-4790-aabb-ee5ba539a3a0 = groupwanted
+# (for ozge)
+wanted 1e1d0c4e-b1da-465f-9140-7128a7e3ee13 = groupwanted
+# (for irem)
+wanted aabc3536-a423-42b6-a234-5f110607296e = groupwanted
+# (for yesim)
+wanted ba3593c0-ddf1-4433-9916-aa25d1a52895 = groupwanted
+# (for buse [origin])
+wanted bff7238e-bd92-4929-88a8-c59c1a1dcf03 = groupwanted
+# (for hubic)
+wanted f980f309-0ebd-41c8-9303-73aff6409365 = groupwanted
+# (for mini)
+wanted 7deafa14-8add-4316-984f-9b24eb713770 = standard
+# (for web)
+#wanted 00000000-0000-0000-0000-000000000001 =
+# (for bittorrent)
+#wanted 00000000-0000-0000-0000-000000000002 =
+
+# Group preferred contents
+# (Used by repositories with "groupwanted" in their preferred contents)
+groupwanted storagePodA =
+groupwanted storagePodB =
+groupwanted PodA = not copies=PodA:1
+groupwanted PodB = not copies=PodB:1
+#groupwanted archive =
+#groupwanted backup =
+#groupwanted client =
+#groupwanted incrementalbackup =
+#groupwanted manual =
+#groupwanted public =
+#groupwanted smallarchive =
+#groupwanted source =
+#groupwanted transfer =
+#groupwanted unwanted =
+
+# Standard preferred contents
+# (Used by wanted or groupwanted expressions containing "standard")
+# (For reference only; built-in and cannot be changed!)
+# standard client = (include=* and ((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1)))) or approxlackingcopies=1
+# standard transfer = (not (inallgroup=client and copies=client:2) and ((include=* and ((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1)))) or approxlackingcopies=1)) or approxlackingcopies=1
+# standard backup = anything
+# standard incrementalbackup = ((not copies=backup:1) and (not copies=incrementalbackup:1)) or approxlackingcopies=1
+# standard smallarchive = ((include=*/archive/* or include=archive/*) and ((not (copies=archive:1 or copies=smallarchive:1)) or approxlackingcopies=1)) or approxlackingcopies=1
+# standard archive = (not (copies=archive:1 or copies=smallarchive:1)) or approxlackingcopies=1
+# standard source = not (copies=1)
+# standard manual = present and ((include=* and ((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1)))) or approxlackingcopies=1)
+# standard public = inpreferreddir
+# standard unwanted = not anything
+
+# Repository required contents
+# (for damla)
+required 132503d4-dcde-4790-aabb-ee5ba539a3a0 =
+# (for ozge)
+required 1e1d0c4e-b1da-465f-9140-7128a7e3ee13 =
+# (for irem)
+required aabc3536-a423-42b6-a234-5f110607296e =
+# (for yesim)
+required ba3593c0-ddf1-4433-9916-aa25d1a52895 =
+# (for buse [origin])
+required bff7238e-bd92-4929-88a8-c59c1a1dcf03 =
+# (for web)
+#required 00000000-0000-0000-0000-000000000001 =
+# (for bittorrent)
+#required 00000000-0000-0000-0000-000000000002 =
+# (for mini)
+#required 7deafa14-8add-4316-984f-9b24eb713770 =
+# (for hubic)
+#required f980f309-0ebd-41c8-9303-73aff6409365 =
+
+# Scheduled activities
+# (Separate multiple activities with "; ")
+# (for web)
+#schedule 00000000-0000-0000-0000-000000000001 =
+# (for bittorrent)
+#schedule 00000000-0000-0000-0000-000000000002 =
+# (for damla)
+#schedule 132503d4-dcde-4790-aabb-ee5ba539a3a0 =
+# (for ozge)
+#schedule 1e1d0c4e-b1da-465f-9140-7128a7e3ee13 =
+# (for mini)
+#schedule 7deafa14-8add-4316-984f-9b24eb713770 =
+# (for irem)
+#schedule aabc3536-a423-42b6-a234-5f110607296e =
+# (for yesim)
+#schedule ba3593c0-ddf1-4433-9916-aa25d1a52895 =
+# (for buse [origin])
+#schedule bff7238e-bd92-4929-88a8-c59c1a1dcf03 =
+# (for hubic)
+#schedule f980f309-0ebd-41c8-9303-73aff6409365 =
+
+"""]]
+
+With this settings all the repos tries get all of the files files that are present in other groups. Is there a way to debug this problem and tell why git-annex is trying to get the files? According to the settings it should not. I've also tried deleting all history this is a big (around 7 TB) old repo I thought maybe something got messed up along the way but it did not fix it.
+
+### What steps will reproduce the problem?
+
+
+### What version of git-annex are you using? On what operating system?
+
+[[!format sh """
+git-annex version: 5.20150825-g7826f84
+build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify XMPP DNS Feeds Quvi TDFA Database
+key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SKEIN256E SKEIN256 SKEIN512E SKEIN512
+ SHA1E SHA1 MD5E MD5 WORM URL
+remote types: git gcrypt S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external local repository version: 5
+supported repository version: 5
+upgrade supported from repository versions: 0 1 2 4
+"""]]
+
+On Ubuntu 14.04. All repos are on external USB drives on the same machine except the one called "mini".
+
+### Please provide any additional information below.
+
+[[!format sh """
+# If you can, paste a complete transcript of the problem occurring here.
+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
+
+
+# End of transcript or log.
+"""]]
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+
+[1] https://git-annex.branchable.com/forum/git-annex_does_not_respect_preferred_content_settings/
+
+> [[fixed|done]] --[[Joey]]
diff --git a/doc/bugs/Prefered_Content_not_Taken_into_Account/comment_1_70bccb282707b2e9b75c417832ed3459._comment b/doc/bugs/Prefered_Content_not_Taken_into_Account/comment_1_70bccb282707b2e9b75c417832ed3459._comment
new file mode 100644
index 000000000..ff8326d95
--- /dev/null
+++ b/doc/bugs/Prefered_Content_not_Taken_into_Account/comment_1_70bccb282707b2e9b75c417832ed3459._comment
@@ -0,0 +1,33 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-15T16:04:28Z"
+ content="""
+I find it's not useful to split a conversation between multiple different
+pages, so this bug is a bit counterproductive.
+
+But, you made up for that by posting the whole vicfg, which I was somehow
+able to notice, amoungst all the noise, has this unusual bit:
+
+ required 132503d4-dcde-4790-aabb-ee5ba539a3a0 =
+ # (for ozge)
+ required 1e1d0c4e-b1da-465f-9140-7128a7e3ee13 =
+ # (for irem)
+ required aabc3536-a423-42b6-a234-5f110607296e =
+ # (for yesim)
+ required ba3593c0-ddf1-4433-9916-aa25d1a52895 =
+ # (for buse [origin])
+ required bff7238e-bd92-4929-88a8-c59c1a1dcf03 =
+
+So, required content has been set to "". It turns out that when this is done,
+git-annex thinks that all files are preferred! This is because of a bug
+when combining the required content and preferred content expressions.
+
+I reproduced this; `git annex get --auto` was not getting a file,
+which was already known to be in another PodA repository. Then I ran `git annex required . ""`
+and `git annex get --auto` started getting all files.
+
+You can't unset a required content setting back to being commented out.
+A reasonable workaround is to set those to "groupwanted" too. Or get the
+next git-annex release.
+"""]]
diff --git a/doc/bugs/SHA3__95____42___backends_missing_from_newest_official_amd64_Linux_builds.mdwn b/doc/bugs/SHA3__95____42___backends_missing_from_newest_official_amd64_Linux_builds.mdwn
index b92e2657d..4e9ebcaa7 100644
--- a/doc/bugs/SHA3__95____42___backends_missing_from_newest_official_amd64_Linux_builds.mdwn
+++ b/doc/bugs/SHA3__95____42___backends_missing_from_newest_official_amd64_Linux_builds.mdwn
@@ -49,3 +49,7 @@ Newest official builds from downloads.kitenet.net . Debian GNU/Linux all the way
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Oh, yes. It rules. :) One of the most important programs I use because I have all my valuable stuff in it. My files have never been safer.
+
+> Yeah, debian unstable got too unstable and I had to move those
+> autobuilders to testing, which didh't have the necessary library.
+> They're back on unstable now, so [[done]] --[[Joey]]
diff --git a/doc/bugs/SSL_repos_does_not_show_up_in_Assistant.mdwn b/doc/bugs/SSL_repos_does_not_show_up_in_Assistant.mdwn
new file mode 100644
index 000000000..6f21cb534
--- /dev/null
+++ b/doc/bugs/SSL_repos_does_not_show_up_in_Assistant.mdwn
@@ -0,0 +1,27 @@
+### Please describe the problem.
+
+I have recently switched to self hosted git. Gitbucket over SSL. When I swithced origin from rsync ssh to ssl url assistant stopped showing origin in the repositories list it also does not sync to it when a file changes. (It does sync to it every 5 6 hours.). Running sync on the command line does sync to the repo. Authentication is done using netrc file. Replacing the ssl based url to ssh based url, repo shows up in the list and assistant syncs to it.
+
+
+### What steps will reproduce the problem?
+
+Replacing the ssh url with ssl url.
+
+
+### What version of git-annex are you using? On what operating system?
+
+5.20150823-geb17375
+
+### Please provide any additional information below.
+
+[[!format sh """
+# If you can, paste a complete transcript of the problem occurring here.
+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
+
+
+# End of transcript or log.
+"""]]
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+
diff --git a/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5.mdwn b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5.mdwn
new file mode 100644
index 000000000..5f7166ed3
--- /dev/null
+++ b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5.mdwn
@@ -0,0 +1,4 @@
+### Please describe the problem.
+
+standalone builds leap forward a bit too fast in terms of their demand on modern kernel. Up until a month ago, standalone build worked at least on CentOS 6.5 with 2.6.32-431.11.2.el6.x86_64 (although [already didn't on ancient but still in use RHEL5 with 2.6.18](https://github.com/datalad/datalad/issues/176#issuecomment-114612365)). Current build from 20150916 doesn't work on CentOS 6.5 any longer. No matter how much I like people to use more recent releases of their distributions, it is infeasible to demand people to do that. It would be great if standalone builds were carried out on some elder kernel/libc environment to make git-annex standalone builds usable there.
+
diff --git a/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_1_625268287fe55e6f2254a6f31c637164._comment b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_1_625268287fe55e6f2254a6f31c637164._comment
new file mode 100644
index 000000000..b59365274
--- /dev/null
+++ b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_1_625268287fe55e6f2254a6f31c637164._comment
@@ -0,0 +1,31 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-23T16:00:38Z"
+ content="""
+This is entirely down to the libc used on the build system and included in
+the tarball.
+
+Currently the builds use unstable or testing because this lets me get new
+library-driven features like sha3 into the build (nearly) ASAP.
+
+It would be possible to switch to using Debian stable. But then I either
+lose new library-driven features in the builds, or I have to start
+installing haskell libraries from source on the build machines, which would
+be a lot of additional work compared to letting Debian maintain hundreds of
+haskell library packages for me.
+
+Then too, while I am pretty much committed to keeping git-annex building on
+Debian stable (which is actually a lot of work, up to several thousand
+lines of ifdefs, and prevents me from using newer ghc features which would
+make my code happier), Debian stable does itself have a habit of updating to a
+new libc release every couple of years. So no matter what, as long as libc
+keeps requiring slightly less ancient kernels for whatever reasons it does,
+everything isn't going to be supported forever.
+
+(OTOH, I'd expect that some enterprise level ancient distros might start to
+include enterprise level ancient builds of git-annex themselves some time soon?
+git-annex version 3, which is broadly compatible with current versions was
+released a full 4 years ago already. Linux 2.6.32 is only, er, 3 years
+older than that.)
+"""]]
diff --git a/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_2_3ed7589687fe251066677ad5a01bbbb0._comment b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_2_3ed7589687fe251066677ad5a01bbbb0._comment
new file mode 100644
index 000000000..01f83a095
--- /dev/null
+++ b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_2_3ed7589687fe251066677ad5a01bbbb0._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-09-23T17:04:38Z"
+ content="""
+Actually, git-annex doesn't currently build on debian stable because it
+needs a newer version of optparse-applicative. The new version builds just
+fine on stable, so could easily be backported. I could probably get
+git-annex building with the old version of optparse-applicative, with
+sufficient ifdef pain, but a backport would be a nicer solution.
+"""]]
diff --git a/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_2_557d428d2aa6bf8e5d435e7f5350f5c6._comment b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_2_557d428d2aa6bf8e5d435e7f5350f5c6._comment
new file mode 100644
index 000000000..179c70f58
--- /dev/null
+++ b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_2_557d428d2aa6bf8e5d435e7f5350f5c6._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="comment 2"
+ date="2015-09-23T16:36:08Z"
+ content="""
+Shouldn't it be possible reasonably easily to create env which would just use stock haskell-platform? that one should provide all recent libraries you would need? and then just do that on e.g. debian stable
+"""]]
diff --git a/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_4_641389c7c52fa4f624ae74b5d32a6b1c._comment b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_4_641389c7c52fa4f624ae74b5d32a6b1c._comment
new file mode 100644
index 000000000..83a01311c
--- /dev/null
+++ b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_4_641389c7c52fa4f624ae74b5d32a6b1c._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2015-09-23T17:14:14Z"
+ content="""
+It might be possible to use stackage to get a build of all libraries from
+the base haskell platform that are not too far out of date and don't break
+too often. There is currently no way to upgrade such a build to get newer
+version of libraries except for throwing the whole build tree away and
+building all libraries again. So, it would be a lot of CPU on an ongoing basis,
+or a source of unfixed security bugs.
+
+And, I think it would not be entirely non-fragile. It's not exactly unheard
+of for a new version of a haskell library to accidentially break
+compatability with the old version of ghc which is generally unused in the
+haskell community outside of debian stable. Or, to need a newer version of
+some C library headers than is in stable, or ...
+"""]]
diff --git a/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_5_8d5e7b7aa25a82e14611e0b852512adf._comment b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_5_8d5e7b7aa25a82e14611e0b852512adf._comment
new file mode 100644
index 000000000..d3662569c
--- /dev/null
+++ b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_5_8d5e7b7aa25a82e14611e0b852512adf._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 5"""
+ date="2015-09-23T17:35:51Z"
+ content="""
+I've added an "ancient" autobuild, which is run on Debian stable plus
+minimal backports (currently of optparse-applicative only).
+"""]]
diff --git a/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_6_391d0ba1cbe59de8e0cca2c29085d9fd._comment b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_6_391d0ba1cbe59de8e0cca2c29085d9fd._comment
new file mode 100644
index 000000000..70f53ea04
--- /dev/null
+++ b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_6_391d0ba1cbe59de8e0cca2c29085d9fd._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="comment 6"
+ date="2015-09-23T17:57:43Z"
+ content="""
+so far we are not bottlenecked in CPU power, so if needed could setup some CPU-intensive rebuilding of such environments (e.g. in a docker) so we could may be even have some \"collection\" of previous environments laying around
+"""]]
diff --git a/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_7_a72bed153e91e32ebd8944e5ee17c186._comment b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_7_a72bed153e91e32ebd8944e5ee17c186._comment
new file mode 100644
index 000000000..86043c49f
--- /dev/null
+++ b/doc/bugs/Set_some_reasonable_requirements_lower-bound_for_linux_standalone_builds:_no_longer_usable_on_CentOS_6.5/comment_7_a72bed153e91e32ebd8944e5ee17c186._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 7"""
+ date="2015-09-30T17:09:49Z"
+ content="""
+I got stack working to build git-annex over the weekend, and it's now the
+recommended way to build from source, since it avoids library churn issues
+and automates everything. Upgrades can also be made to happen by increasing
+the lts version in the stack.yaml file.
+
+So using that and the haskell platform would be a way to get an even more
+ancient distribution autobuilding. (But, I had to leave out xmpp and dbus
+support to make the stack recipe work everywhere, so I don't want to make
+the regular autobuilds built using stack.)
+"""]]
diff --git a/doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage.mdwn b/doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage.mdwn
index 2df75a5fa..828dc72c0 100644
--- a/doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage.mdwn
+++ b/doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage.mdwn
@@ -1,6 +1,9 @@
### Please describe the problem.
-The S3 remote does not support Google Cloud Storage buckets with the Durable Reduced Availability or Nearline storage classes. These are less-expensive alternatives to the Standard storage class, which would otherwise be a good fit for git-annex.
+The S3 remote does not support Google Cloud Storage buckets with the
+Durable Reduced Availability or Nearline storage classes. These are
+less-expensive alternatives to the Standard storage class, which would
+otherwise be a good fit for git-annex.
### What steps will reproduce the problem?
@@ -87,5 +90,3 @@ initremote cloud (checking bucket...) [2015-05-31 17:38:21 EDT] String to sign:
[2015-05-31 17:38:22 EDT] Response metadata: S3: request ID=<none>, x-amz-id-2=<none>
git-annex: S3Error {s3StatusCode = Status {statusCode = 400, statusMessage = "Bad Request"}, s3ErrorCode = "InvalidArgument", s3ErrorMessage = "Invalid argument.", s3ErrorResource = Nothing, s3ErrorHostId = Nothing, s3ErrorAccessKeyId = Nothing, s3ErrorStringToSign = Nothing}
"""]]
-
-> This is a dup of [[todo/Nearline_support]] ; [[done]] --[[Joey]]
diff --git a/doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage/comment_1_a10aaa758daee3ca0b064c60c0382ce8._comment b/doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage/comment_1_a10aaa758daee3ca0b064c60c0382ce8._comment
new file mode 100644
index 000000000..bc4d5e95c
--- /dev/null
+++ b/doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage/comment_1_a10aaa758daee3ca0b064c60c0382ce8._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-17T21:09:24Z"
+ content="""
+It's now possible to use storageclass=NEARLINE, when git-annex is built
+with aws-0.13.0. So, the approach of manually creating the bucket with the
+desired storage class should work now.
+
+I'm unsure if the first method, of letting git-annex create the bucket,
+will work now. Can you test? It may work now too with
+storageclass=NEARLINE. While no storage class is currently specified when
+creating the bucket (that's not in the S3 api at all); but once the bucket
+exists, with whatever storage class is default, git-annex will specify
+NEARLINE when storing objects in it. Seems a good chance this will work,
+and it'd be easier than extending the aws library with google-specific
+features.
+"""]]
diff --git a/doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage/comment_2_8a23d2743cdad0ef29265e59adcebd6f._comment b/doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage/comment_2_8a23d2743cdad0ef29265e59adcebd6f._comment
new file mode 100644
index 000000000..ea82fca2e
--- /dev/null
+++ b/doc/bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage/comment_2_8a23d2743cdad0ef29265e59adcebd6f._comment
@@ -0,0 +1,84 @@
+[[!comment format=mdwn
+ username="bgilbert@a0c64716cf22216de5eeb15a5ca4f009164c8fb3"
+ nickname="bgilbert"
+ subject="comment 2"
+ date="2015-09-27T01:00:46Z"
+ content="""
+It does work now with manually-created buckets. It still doesn't work when the bucket is created automatically:
+
+ $ git annex -d initremote nearline type=S3 encryption=none host=storage.googleapis.com storageclass=NEARLINE
+ [2015-09-26 19:21:43.877399] read: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"show-ref\",\"git-annex\"]
+ [2015-09-26 19:21:43.888972] process done ExitSuccess
+ [2015-09-26 19:21:43.889496] read: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+ [2015-09-26 19:21:43.894184] process done ExitSuccess
+ [2015-09-26 19:21:43.895521] read: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"log\",\"refs/heads/git-annex..113c78849a7fcb8c834e03feac3c492aaa58d8e5\",\"-n1\",\"--pretty=%H\"]
+ [2015-09-26 19:21:43.901039] process done ExitSuccess
+ [2015-09-26 19:21:43.902895] chat: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"cat-file\",\"--batch\"]
+ initremote nearline (checking bucket...) [2015-09-26 19:21:43.912757] String to sign: \"GET\n\n\nSat, 26 Sep 2015 23:21:43 GMT\n/nearline-38b55d4f-fe3f-4b7a-a4b2-ad22d29ad460/annex-uuid\"
+ [2015-09-26 19:21:43.914566] Host: \"nearline-38b55d4f-fe3f-4b7a-a4b2-ad22d29ad460.storage.googleapis.com\"
+ [2015-09-26 19:21:43.916021] Path: \"/annex-uuid\"
+ [2015-09-26 19:21:43.916716] Query string: \"\"
+ [2015-09-26 19:21:44.161168] Response status: Status {statusCode = 404, statusMessage = \"Not Found\"}
+ [2015-09-26 19:21:44.162829] Response header 'X-GUploader-UploadID': '[...]'
+ [2015-09-26 19:21:44.165422] Response header 'Content-Type': 'application/xml; charset=UTF-8'
+ [2015-09-26 19:21:44.16679] Response header 'Content-Length': '133'
+ [2015-09-26 19:21:44.167806] Response header 'Date': 'Sat, 26 Sep 2015 23:21:44 GMT'
+ [2015-09-26 19:21:44.169038] Response header 'Expires': 'Sat, 26 Sep 2015 23:21:44 GMT'
+ [2015-09-26 19:21:44.170508] Response header 'Cache-Control': 'private, max-age=0'
+ [2015-09-26 19:21:44.171829] Response header 'Server': 'UploadServer'
+ [2015-09-26 19:21:44.172773] Response metadata: S3: request ID=<none>, x-amz-id-2=<none>
+ [2015-09-26 19:21:44.173874] String to sign: \"GET\n\n\nSat, 26 Sep 2015 23:21:44 GMT\n/nearline-38b55d4f-fe3f-4b7a-a4b2-ad22d29ad460/\"
+ [2015-09-26 19:21:44.175243] Host: \"nearline-38b55d4f-fe3f-4b7a-a4b2-ad22d29ad460.storage.googleapis.com\"
+ [2015-09-26 19:21:44.176297] Path: \"/\"
+ [2015-09-26 19:21:44.176719] Query string: \"\"
+ [2015-09-26 19:21:44.316739] Response status: Status {statusCode = 404, statusMessage = \"Not Found\"}
+ [2015-09-26 19:21:44.318835] Response header 'X-GUploader-UploadID': '[...]'
+ [2015-09-26 19:21:44.322411] Response header 'Content-Type': 'application/xml; charset=UTF-8'
+ [2015-09-26 19:21:44.324451] Response header 'Content-Length': '133'
+ [2015-09-26 19:21:44.326001] Response header 'Date': 'Sat, 26 Sep 2015 23:21:44 GMT'
+ [2015-09-26 19:21:44.327709] Response header 'Expires': 'Sat, 26 Sep 2015 23:21:44 GMT'
+ [2015-09-26 19:21:44.329293] Response header 'Cache-Control': 'private, max-age=0'
+ [2015-09-26 19:21:44.331073] Response header 'Server': 'UploadServer'
+ [2015-09-26 19:21:44.332693] Response metadata: S3: request ID=<none>, x-amz-id-2=<none>
+ (creating bucket in US...) [2015-09-26 19:21:44.334384] String to sign: \"PUT\n\n\nSat, 26 Sep 2015 23:21:44 GMT\n/nearline-38b55d4f-fe3f-4b7a-a4b2-ad22d29ad460/\"
+ [2015-09-26 19:21:44.336832] Host: \"nearline-38b55d4f-fe3f-4b7a-a4b2-ad22d29ad460.storage.googleapis.com\"
+ [2015-09-26 19:21:44.338583] Path: \"/\"
+ [2015-09-26 19:21:44.339326] Query string: \"\"
+ [2015-09-26 19:21:50.024323] Response status: Status {statusCode = 200, statusMessage = \"OK\"}
+ [2015-09-26 19:21:50.02519] Response header 'X-GUploader-UploadID': '[...]'
+ [2015-09-26 19:21:50.026329] Response header 'x-goog-metageneration': '1'
+ [2015-09-26 19:21:50.026902] Response header 'Vary': 'Origin'
+ [2015-09-26 19:21:50.027376] Response header 'Content-Length': '0'
+ [2015-09-26 19:21:50.027993] Response header 'Date': 'Sat, 26 Sep 2015 23:21:49 GMT'
+ [2015-09-26 19:21:50.028587] Response header 'Server': 'UploadServer'
+ [2015-09-26 19:21:50.029113] Response header 'Content-Type': 'text/html; charset=UTF-8'
+ [2015-09-26 19:21:50.029772] Response metadata: S3: request ID=<none>, x-amz-id-2=<none>
+ [2015-09-26 19:21:50.030493] String to sign: \"GET\n\n\nSat, 26 Sep 2015 23:21:50 GMT\n/nearline-38b55d4f-fe3f-4b7a-a4b2-ad22d29ad460/annex-uuid\"
+ [2015-09-26 19:21:50.031606] Host: \"nearline-38b55d4f-fe3f-4b7a-a4b2-ad22d29ad460.storage.googleapis.com\"
+ [2015-09-26 19:21:50.032369] Path: \"/annex-uuid\"
+ [2015-09-26 19:21:50.032786] Query string: \"\"
+ [2015-09-26 19:21:50.280518] Response status: Status {statusCode = 404, statusMessage = \"Not Found\"}
+ [2015-09-26 19:21:50.280995] Response header 'X-GUploader-UploadID': '[...]'
+ [2015-09-26 19:21:50.281575] Response header 'Content-Type': 'application/xml; charset=UTF-8'
+ [2015-09-26 19:21:50.28201] Response header 'Content-Length': '127'
+ [2015-09-26 19:21:50.282269] Response header 'Date': 'Sat, 26 Sep 2015 23:21:50 GMT'
+ [2015-09-26 19:21:50.282555] Response header 'Expires': 'Sat, 26 Sep 2015 23:21:50 GMT'
+ [2015-09-26 19:21:50.282919] Response header 'Cache-Control': 'private, max-age=0'
+ [2015-09-26 19:21:50.283199] Response header 'Server': 'UploadServer'
+ [2015-09-26 19:21:50.283585] Response metadata: S3: request ID=<none>, x-amz-id-2=<none>
+ [2015-09-26 19:21:50.283998] String to sign: \"PUT\n\n\nSat, 26 Sep 2015 23:21:50 GMT\nx-amz-storage-class:NEARLINE\n/nearline-38b55d4f-fe3f-4b7a-a4b2-ad22d29ad460/annex-uuid\"
+ [2015-09-26 19:21:50.284663] Host: \"nearline-38b55d4f-fe3f-4b7a-a4b2-ad22d29ad460.storage.googleapis.com\"
+ [2015-09-26 19:21:50.28504] Path: \"/annex-uuid\"
+ [2015-09-26 19:21:50.285233] Query string: \"\"
+ [2015-09-26 19:21:50.285421] Body: \"38b55d4f-fe3f-4b7a-a4b2-ad22d29ad460\"
+ [2015-09-26 19:21:50.431435] Response status: Status {statusCode = 400, statusMessage = \"Bad Request\"}
+ [2015-09-26 19:21:50.431926] Response header 'X-GUploader-UploadID': '[...]'
+ [2015-09-26 19:21:50.432473] Response header 'Content-Type': 'application/xml; charset=UTF-8'
+ [2015-09-26 19:21:50.432797] Response header 'Content-Length': '117'
+ [2015-09-26 19:21:50.433033] Response header 'Vary': 'Origin'
+ [2015-09-26 19:21:50.433301] Response header 'Date': 'Sat, 26 Sep 2015 23:21:50 GMT'
+ [2015-09-26 19:21:50.433581] Response header 'Server': 'UploadServer'
+ [2015-09-26 19:21:50.433961] Response metadata: S3: request ID=<none>, x-amz-id-2=<none>
+ git-annex: S3Error {s3StatusCode = Status {statusCode = 400, statusMessage = \"Bad Request\"}, s3ErrorCode = \"InvalidArgument\", s3ErrorMessage = \"Invalid argument.\", s3ErrorResource = Nothing, s3ErrorHostId = Nothing, s3ErrorAccessKeyId = Nothing, s3ErrorStringToSign = Nothing, s3ErrorBucket = Nothing, s3ErrorEndpointRaw = Nothing, s3ErrorEndpoint = Nothing}
+
+"""]]
diff --git a/doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly.mdwn b/doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly.mdwn
new file mode 100644
index 000000000..613e11eae
--- /dev/null
+++ b/doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly.mdwn
@@ -0,0 +1,81 @@
+### Please describe the problem.
+
+There exist more BSD systems than FreeBSD. Thus I propose diff for Utility/libdiskfree.c.
+
+Based on pkgsrc patching guidelines https://www.netbsd.org/docs/pkgsrc/components.html#components.patches.guidelines
+I tried to cook a diff even I'm not C developer.
+
+
+### What steps will reproduce the problem?
+
+Add support for more OS for disk free check.
+
+### What version of git-annex are you using? On what operating system?
+git-annex-5.20150930
+
+
+### Please provide any additional information below.
+
+The diff probably needs check, improvement...
+
+[[!format sh """
+--- libdiskfree.c.orig Sun Oct 4 15:18:07 2015
++++ libdiskfree.c Sun Oct 4 15:23:23 2015
+@@ -7,35 +7,30 @@
+
+ /* Include appropriate headers for the OS, and define what will be used to
+ * check the free space. */
+-#if defined(__APPLE__)
+-# define _DARWIN_FEATURE_64_BIT_INODE 1
+-# include <sys/param.h>
+-# include <sys/mount.h>
+-# define STATCALL statfs
+-# define STATSTRUCT statfs64
+-#else
+-#if defined (__FreeBSD__)
+-# include <sys/param.h>
+-# include <sys/mount.h>
+-# define STATCALL statfs /* statfs64 not yet tested on a real FreeBSD machine */
+-# define STATSTRUCT statfs
+-#else
+-#if defined __ANDROID__
+-# warning free space checking code not available for Android
+-# define UNKNOWN
+-#else
+ #if defined (__linux__) || defined (__FreeBSD_kernel__)
+ /* Linux or Debian kFreeBSD */
+ /* This is a POSIX standard, so might also work elsewhere too. */
+ # include <sys/statvfs.h>
+ # define STATCALL statvfs
+ # define STATSTRUCT statvfs
+-#else
+-# warning free space checking code not available for this OS
++#endif
++
++#if defined __ANDROID__
++# warning free space checking code not available for Android
+ # define UNKNOWN
+ #endif
++
++#if defined (HAVE_SYS_PARAM_H) && defined (HAVE_SYS_MOUNT_H)
++#if defined(__APPLE__)
++# define _DARWIN_FEATURE_64_BIT_INODE 1
+ #endif
+-#endif
++# include <sys/param.h>
++# include <sys/mount.h>
++# define STATCALL statfs /* statfs64 not yet tested on a real FreeBSD machine */
++# define STATSTRUCT statfs64
++#else
++# warning free space checking code not available for this OS
++# define UNKNOWN
+ #endif
+
+ #include <errno.h>
+
+"""]]
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+Not tested this "feature" yet, I got another issue which blocks me for now.
+
diff --git a/doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly/comment_1_cdbf63d15795946f55aaea3da4755a22._comment b/doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly/comment_1_cdbf63d15795946f55aaea3da4755a22._comment
new file mode 100644
index 000000000..2b3113561
--- /dev/null
+++ b/doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly/comment_1_cdbf63d15795946f55aaea3da4755a22._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="jirib@503223f0610c6c66f4e6dc738a5a0b2648c290b1"
+ nickname="jirib"
+ subject="no statfs64 on OpenBSD"
+ date="2015-10-04T13:47:30Z"
+ content="""
+there's no statfs64 on OpenBSD, maybe following similar diff from conky fs part could help:
+
+http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/sysutils/conky/patches/patch-src_fs_c?rev=1.3&content-type=text/x-cvsweb-markup
+"""]]
diff --git a/doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly/comment_2_54bfedf6d33bcd9d44cc3c89f3216161._comment b/doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly/comment_2_54bfedf6d33bcd9d44cc3c89f3216161._comment
new file mode 100644
index 000000000..b86fa0535
--- /dev/null
+++ b/doc/bugs/Utility__47__libdiskfree.c_more_BSD_friendly/comment_2_54bfedf6d33bcd9d44cc3c89f3216161._comment
@@ -0,0 +1,23 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-10-04T19:13:59Z"
+ content="""
+Happy to support all BSD varients that tested patches can be made for.
+
+I can't apply this patch as-is for several reasons:
+
+* You say you've not tested it yet.
+* I recently modified the file to add support for Solaris, and your patch conflicts with that modification.
+* Your patch in passing changes the FreeBSD support to use the
+ statfs64 structure. AFAIK that has not been tested.
+* I think you also broke Android by moving it below the Linux tests.
+ The linux tests will probably fire on android, but the linux code
+ doesn't work with the android libc.
+
+Your patch would be better if it clearly added support for an OS
+(or standard) without touching and breaking existing code that
+supports other OSes.
+
+Thanks!
+"""]]
diff --git a/doc/bugs/Windows:_Doesn__39__t_want_to_handle_files_with_2_dots_in_filename.mdwn b/doc/bugs/Windows:_Doesn__39__t_want_to_handle_files_with_2_dots_in_filename.mdwn
new file mode 100644
index 000000000..3a0da6b1d
--- /dev/null
+++ b/doc/bugs/Windows:_Doesn__39__t_want_to_handle_files_with_2_dots_in_filename.mdwn
@@ -0,0 +1,29 @@
+### Please describe the problem.
+
+Git annex assistant on Windows 7 won't handle files with 2 dots in the filename
+
+### What steps will reproduce the problem?
+
+Create a file like "3.2 Restriction et projection.mp4" which is in a directory synced by Assistant.
+
+The file is unmanaged.
+
+Renaming it to "3-2 Restriction et projection.mp4", and there it goes : synced with the remote repo.
+
+### What version of git-annex are you using? On what operating system?
+
+Latext git-annex on Win 7
+
+### Please provide any additional information below.
+
+[[!format sh """
+# If you can, paste a complete transcript of the problem occurring here.
+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
+
+
+# End of transcript or log.
+"""]]
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+
diff --git a/doc/bugs/Windows:_Doesn__39__t_want_to_handle_files_with_2_dots_in_filename/comment_1_43f6de166d1811e9f9bd6e6d8b152e05._comment b/doc/bugs/Windows:_Doesn__39__t_want_to_handle_files_with_2_dots_in_filename/comment_1_43f6de166d1811e9f9bd6e6d8b152e05._comment
new file mode 100644
index 000000000..1012cc729
--- /dev/null
+++ b/doc/bugs/Windows:_Doesn__39__t_want_to_handle_files_with_2_dots_in_filename/comment_1_43f6de166d1811e9f9bd6e6d8b152e05._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-22T15:56:37Z"
+ content="""
+Unable to reproduce this on Windows XP.
+
+Is there anything in .git/annex/daemon.log that might help with debugging?
+"""]]
diff --git a/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh.mdwn b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh.mdwn
index b0f8b4e68..d269f09ae 100644
--- a/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh.mdwn
+++ b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh.mdwn
@@ -34,3 +34,4 @@ On windows, fails getting files with the following error : "rsync: Failed to exe
Yes :-) Only on linux so far and trying on windows now :-/
+> [[fixed|done]] in the daily build now. --[[Joey]]
diff --git a/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_3_15bccb8c66a1a2fb5e13c10902e25866._comment b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_3_15bccb8c66a1a2fb5e13c10902e25866._comment
new file mode 100644
index 000000000..67ab59323
--- /dev/null
+++ b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_3_15bccb8c66a1a2fb5e13c10902e25866._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2015-09-10T16:51:10Z"
+ content="""
+Nice to see there's finally an up-to-date version of git for windows.
+
+However, it's not too surprising, since this is an entirely different build
+from the msysgit that git-annex has been made to work with, that it doesn't
+quite work with git-annex. This stuff is *extremely* fiddly on windows.
+
+Seems that the new git for windows ships ssh in Program Files/git/usr/bin.
+Since that's not in PATH, rsync can't find it. I tried a few things, but
+can't find a way yet that makes rsync find it.
+"""]]
diff --git a/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_4_3d946c88a14929ffcb6f79eae6921e6c._comment b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_4_3d946c88a14929ffcb6f79eae6921e6c._comment
new file mode 100644
index 000000000..7da961c3e
--- /dev/null
+++ b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_4_3d946c88a14929ffcb6f79eae6921e6c._comment
@@ -0,0 +1,34 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2015-09-10T18:10:52Z"
+ content="""
+Here's a request that rsync be added to git for windows. It seems like it
+would be pretty easy for them to add. But I don't know if they will;
+the bug is currently closed wontfix.
+<https://github.com/git-for-windows/git/issues/347>
+
+I was finally able to get rsync working with git for windows and git-annex
+as follows:
+
+* Delete the rsync.exe that git-annex-installer.exe installs in Git/cmd
+* Install <https://msys2.github.io/>
+* In the msys2 shell, "pacman sync rsync"
+* Copy /msys32/usr/bin/rsync.exe to /Program Files/Git/usr/bin/
+
+So, I could include that rsync.exe in the git-annex for windows. However, since
+there are 2 versions of rsync.exe, one which works with git for windows,
+and one that works with msysgit, I might not be able to get a git-annex
+build for windows that works with both of those versions of git at once.
+
+If I do switch to only supporting git for windows, I could also drop some
+bundled programs from git-annex-installer.exe. These programs are all
+bundled with git for windows too:
+
+* cp
+* gpg
+* shaNsum
+
+Leaving only, I think, wget and curl and rsync to be bundled with
+git-annex.
+"""]]
diff --git a/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_5_5d218a565af8548a29bb6b1447d38ecd._comment b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_5_5d218a565af8548a29bb6b1447d38ecd._comment
new file mode 100644
index 000000000..b4743b1d3
--- /dev/null
+++ b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_5_5d218a565af8548a29bb6b1447d38ecd._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2015-09-10T23:19:26Z"
+ content="""
+The *daily* build for windows is now targeting git for windows, including
+the fixed rsync. Seems to work, so I'll close this bug; more testing would
+be good.
+"""]]
diff --git a/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_6_709f8688e48c6d3d68730ed47e94a1e9._comment b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_6_709f8688e48c6d3d68730ed47e94a1e9._comment
new file mode 100644
index 000000000..41668a087
--- /dev/null
+++ b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_6_709f8688e48c6d3d68730ed47e94a1e9._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="OlivierBerger"
+ subject="Seems t owork now with git 2.5 for windows and daily build on windows 7"
+ date="2015-09-11T11:43:43Z"
+ content="""
+I have tested again, and this time it seems to work out of the box. Thanks alot @joeyh
+"""]]
diff --git a/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_7_d6f5ae804f2d8862c1c9b149f3626062._comment b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_7_d6f5ae804f2d8862c1c9b149f3626062._comment
new file mode 100644
index 000000000..2762a7702
--- /dev/null
+++ b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_7_d6f5ae804f2d8862c1c9b149f3626062._comment
@@ -0,0 +1,21 @@
+[[!comment format=mdwn
+ username="olivier.berger@bb28df880236e55a6bfeca92cc3de8ec424f2eba"
+ nickname="olivier.berger"
+ subject="Not completely fixed if git not installed on C:"
+ date="2015-09-11T15:31:25Z"
+ content="""
+Hi.
+
+I have the situation where my C: is too full, so I'm installing Git 2.5 on E: in E:\Program files\ instead of C:\Program files\
+
+Then while installing git-annex, I'll install it in the same E:\Program files\git\
+
+But then, the installer complains that git couldn't be found in c:, and whenever rsyncs are attempted, they fail with :
+rsync failed -- run git annex again to resume file transfer
+
+I think there's probably some weirdness about the paths.
+
+I hope this is easy to reproduce and fix.
+
+Thanks in advance.
+"""]]
diff --git a/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_8_d108cb76c69d5b5d1aa897607339623f._comment b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_8_d108cb76c69d5b5d1aa897607339623f._comment
new file mode 100644
index 000000000..f7e13da8f
--- /dev/null
+++ b/doc/bugs/Windows:_git_annex_get_fails_with_rsync:_Failed_to_exec_ssh/comment_8_d108cb76c69d5b5d1aa897607339623f._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="olivier.berger@bb28df880236e55a6bfeca92cc3de8ec424f2eba"
+ nickname="olivier.berger"
+ subject="Maybe Git 2.5 must be installed only as 32 bit ?"
+ date="2015-09-11T15:42:18Z"
+ content="""
+It seems to me the problem actually lies in that I installed the 64 bits version of Git 2.5, as I've tried to install everything on c:\ and the problem still isn't solved. But I think that the fact that the installer complains about Git not in Program Files(x86) is linked to 32/64 bits mismatch.
+
+Once I'm installing Git 2.5 32 bits (even if my system runs Windows 7 64 bits), things are back to normal.
+
+Hope this helps.
+"""]]
diff --git a/doc/bugs/annex-ssh-options_seem_to_be_ignored_in_some_occasion_by_the_assistnat.mdwn b/doc/bugs/annex-ssh-options_seem_to_be_ignored_in_some_occasion_by_the_assistnat.mdwn
new file mode 100644
index 000000000..6616db835
--- /dev/null
+++ b/doc/bugs/annex-ssh-options_seem_to_be_ignored_in_some_occasion_by_the_assistnat.mdwn
@@ -0,0 +1,47 @@
+### Please describe the problem.
+When assistant sync with some remote, it will call git that will call ssh without annex-sync
+
+### What steps will reproduce the problem?
+I've remote that have:
+
+ [remote "shukrat"]
+ [...]
+ annex-ignore = true
+ annex-ssh-options = -i /home/moi/.ssh/git-annex/some-key
+
+When I run `git annex sync shukrat` in the repository, it will sync it using the key, but when I ask the assistant to sync it, it will use some otherkey and so it will ask for my passphrase.
+
+
+### What version of git-annex are you using? On what operating system?
+
+ % git annex version
+ git-annex version: 5.20150916-1
+ build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify XMPP DNS Feeds Quvi TDFA Database
+ key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 SHA1E SHA1 MD5E MD5 WORM URL
+ remote types: git gcrypt S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external
+ local repository version: 5
+ supported repository version: 5
+ upgrade supported from repository versions: 0 1 2 4
+
+on debian/sid
+
+### Please provide any additional information below.
+
+when the assistant is syncing, I've:
+
+ $ pstree -p | grep ssh-ask
+ |-git(27589)---ssh(27590)---ssh-askpass(27617)
+ $ ps -f -p 275900
+ UID PID PPID C STIME TTY TIME CMD
+ moi 27590 27589 0 14:10 ? 00:00:00 ssh user-data@shukrat git-receive-pack '/home/user-data/git-repos/Images.git/
+
+log from .git/annex/daemon.log:
+
+ [2015-09-27 14:09:55.844597] main: Syncing with shukrat
+ Pass a valid window to KWallet::Wallet::openWallet().
+ Pass a valid window to KWallet::Wallet::openWallet().
+ Everything up-to-date
+
+
+
+
diff --git a/doc/bugs/annex.hardlink_no_longer_set_on_init_of_shared_repo.mdwn b/doc/bugs/annex.hardlink_no_longer_set_on_init_of_shared_repo.mdwn
new file mode 100644
index 000000000..5da5bce6c
--- /dev/null
+++ b/doc/bugs/annex.hardlink_no_longer_set_on_init_of_shared_repo.mdwn
@@ -0,0 +1,27 @@
+### Please describe the problem.
+
+In an earlier git-annex version (5.20141125, at least on debian), `git clone --shared` followed by `git annex init` used to set annex.hardlink to true and mark the repository as untrusted. It no longer does that.
+
+### What steps will reproduce the problem?
+
+(Assuming "foo" is a pre-existing repo with an annex)
+
+ git clone --shared foo foo.shared
+ cd foo.shared
+ git annex init
+ git config annex.hardlink
+
+### What version of git-annex are you using? On what operating system?
+
+5.20150824, Debian Jessie. Tried both the debian unstable package and direct cabal build.
+
+### Please provide any additional information below.
+
+I haven't really debugged this, but it seems that `git annex init` nowadays does some syncing (i.e. commits, i.e. objects) that it didn't used to. The hard link check tests that the current repository has alternates, but doesn't have local objects. It might be that the newly created local objects prevent the hard link check from passing. Perhaps the hard link test should only check the presence of alternates?
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+Sure, it's a great tool!
+
+> Seems that bit rotted at some point. I've fixed it, and put in a test
+> case. [[done]] --[[Joey]]
diff --git a/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__.mdwn b/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__.mdwn
index bdf288a41..178348e51 100644
--- a/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__.mdwn
+++ b/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__.mdwn
@@ -26,7 +26,3 @@ he_IL
he_IL.iso88598
he_IL.utf8
POSIX
-
-> Closing since I've seen nothing to indicate this is anything other than a
-> misconfigured OS that doesn't have the requested locale available.
-> [[done]] --[[Joey]]
diff --git a/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__/comment_2_6715d6e7bbc7ca8760ab561b1d124ce9._comment b/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__/comment_2_6715d6e7bbc7ca8760ab561b1d124ce9._comment
new file mode 100644
index 000000000..81234be5c
--- /dev/null
+++ b/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__/comment_2_6715d6e7bbc7ca8760ab561b1d124ce9._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="stoile@3a237e0cf1bb7ab671df438ff759e0448189419d"
+ nickname="stoile"
+ subject="This might still be a git-annex bug"
+ date="2015-09-21T15:09:08Z"
+ content="""
+I get this problem when running the pre-built linux binaries of git annex. So this might still be a git annex bug: My local environment provides the LC:ALL setting and git-annex sh does not have the locale.
+"""]]
diff --git a/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__/comment_3_b5a78d805e2e1628de299115a0a96e8d._comment b/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__/comment_3_b5a78d805e2e1628de299115a0a96e8d._comment
new file mode 100644
index 000000000..59bf4d067
--- /dev/null
+++ b/doc/bugs/cannot_change_locale___40__en__95__US.UTF-8__41__/comment_3_b5a78d805e2e1628de299115a0a96e8d._comment
@@ -0,0 +1,23 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2015-09-21T16:02:24Z"
+ content="""
+So, I actually see something a little similar when using runshell
+in the standalone bundle:
+
+ joey@darkstar:~/tmp/a/git-annex.linux>./runshell
+ $ bash
+ locale: Cannot set LC_CTYPE to default locale: No such file or directory
+ locale: Cannot set LC_MESSAGES to default locale: No such file or directory
+
+This is due to it setting LOCPATH=/dev/null,
+so it won't even try to use the system's locale files.
+(Whether they would be compatable with the libc in the bundle is another question.)
+
+So, `unset LOCPATH` may work around the problem. If you don't run into
+the bug that is set to prevent, <https://ghc.haskell.org/trac/ghc/ticket/7695>.
+
+This setting could be revisited once the standalone builds are built using
+ghc 7.10, which fixed that bug.
+"""]]
diff --git a/doc/bugs/decides_that_FS_is_crippled_under_cowbuilder___40__symlinks_supported_etc__41__.mdwn b/doc/bugs/decides_that_FS_is_crippled_under_cowbuilder___40__symlinks_supported_etc__41__.mdwn
index 52570657f..a7b634554 100644
--- a/doc/bugs/decides_that_FS_is_crippled_under_cowbuilder___40__symlinks_supported_etc__41__.mdwn
+++ b/doc/bugs/decides_that_FS_is_crippled_under_cowbuilder___40__symlinks_supported_etc__41__.mdwn
@@ -42,4 +42,6 @@ Debian sid 5.20150812-2
# End of transcript or log.
"""]]
+> [[fixed|done]] --[[Joey]]
+
diff --git a/doc/bugs/decides_that_FS_is_crippled_under_cowbuilder___40__symlinks_supported_etc__41__/comment_6_939f40d1dc9f5c68597391054ed353cf._comment b/doc/bugs/decides_that_FS_is_crippled_under_cowbuilder___40__symlinks_supported_etc__41__/comment_6_939f40d1dc9f5c68597391054ed353cf._comment
new file mode 100644
index 000000000..44b2df2c4
--- /dev/null
+++ b/doc/bugs/decides_that_FS_is_crippled_under_cowbuilder___40__symlinks_supported_etc__41__/comment_6_939f40d1dc9f5c68597391054ed353cf._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="thanks for the explanation"
+ date="2015-09-03T00:55:38Z"
+ content="""
+Thanks for chewing it up for me. So FS is not considered crippled even if you can commit a crime as a privileged user. I will mark it back now as fixed ;)
+"""]]
diff --git a/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build.mdwn b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build.mdwn
index 4a57557d7..f21bb2664 100644
--- a/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build.mdwn
+++ b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build.mdwn
@@ -120,3 +120,4 @@ ok
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+> I see that #796899 is fixed in debian unstable, so [[done]] --[[Joey]]
diff --git a/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_1_557c9147078e04f7b62a873bf94f7b6a._comment b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_1_557c9147078e04f7b62a873bf94f7b6a._comment
new file mode 100644
index 000000000..7a6d6831e
--- /dev/null
+++ b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_1_557c9147078e04f7b62a873bf94f7b6a._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-09T16:25:05Z"
+ content="""
+The -11 exit status is pretty unusual. Being negative suggests that curl
+died of a signal (and so the high bit was set to indicate that).
+
+I guess that signal would probably be a SIGSEGV.
+
+Perhaps this is an intermittent memory problem and git-annex version is not
+relevant. I also see no changes in how git-annex calls curl.
+"""]]
diff --git a/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_2_3750368dfb19c90724670345c1b58f13._comment b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_2_3750368dfb19c90724670345c1b58f13._comment
new file mode 100644
index 000000000..2e9081f9e
--- /dev/null
+++ b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_2_3750368dfb19c90724670345c1b58f13._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-09-09T22:18:28Z"
+ content="""
+Well, I've verified that `ExitFailure -11` does mean the called program
+segfaulted. I don't see how git-annex could cause curl to segfault.
+
+How would you quantify the experimental error of your upgrade/downgrade experiment? ;)
+"""]]
diff --git a/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_2_44e295cb49cbce486577129d90ee6bb9._comment b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_2_44e295cb49cbce486577129d90ee6bb9._comment
new file mode 100644
index 000000000..82b5ce17a
--- /dev/null
+++ b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_2_44e295cb49cbce486577129d90ee6bb9._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="comment 2"
+ date="2015-09-09T22:14:22Z"
+ content="""
+Those effects were 100% reproducible by down/up-grading annex so not really intermittent. I did indeed check annex dev history and saw nothing obvious -- that is why decided to ask. I guess I will build even freshier snapshot now and see how that one copes
+"""]]
diff --git a/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_4_367447b316e08d833f38349b9c86fd49._comment b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_4_367447b316e08d833f38349b9c86fd49._comment
new file mode 100644
index 000000000..a22a49999
--- /dev/null
+++ b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_4_367447b316e08d833f38349b9c86fd49._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="comment 4"
+ date="2015-09-09T22:44:47Z"
+ content="""
+I thought I have earned some trust ;) I did quite a few up/down upgrades, so it was from about 3-4 trials and thus 100% replicable among them... even though no changes to curl calls, may be bundled curl was different (bundled builds) etc, or some changes to annex environment. dunno (might be handy if git annex version reported versions of bundled stuff... wouldn't it? ;))
+unfortunately for that very reason I didn't upload 0826 version to neurodebian so can't very easily replicate atm. Thus I will build a new one and will confirm or disconfirm eventually
+"""]]
diff --git a/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_5_cdd169574e50951bbb9d8fdd310f8bcc._comment b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_5_cdd169574e50951bbb9d8fdd310f8bcc._comment
new file mode 100644
index 000000000..f90c685a7
--- /dev/null
+++ b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_5_cdd169574e50951bbb9d8fdd310f8bcc._comment
@@ -0,0 +1,46 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="problems with bundling???"
+ date="2015-09-10T03:50:45Z"
+ content="""
+built yet another one, locally (not a clean sid but rather a cocktail env) with curl being capable of fetching (see below) using file:/// but annex failing and me not clear on how to invoke bundled curl correctly (or as demonstrated may be it behaving incorrectly?)... then downgraded again and bundled curl succeeded. So it seems that there is an issue with how things are bundled -- was there any change in that may be?
+
+[[!format sh \"\"\"
+$> rm -f test-annex.dat; git-annex addurl --file=test-annex.dat --debug file:///tmp/rsa_corr_replications.ipynb
+[2015-09-09 23:32:19.809948] read: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"show-ref\",\"git-annex\"]
+[2015-09-09 23:32:19.812163] process done ExitSuccess
+[2015-09-09 23:32:19.812421] read: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2015-09-09 23:32:19.814543] process done ExitSuccess
+[2015-09-09 23:32:19.815095] read: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"log\",\"refs/heads/git-annex..c9fb15c861335973c224ff734f998ce6535f3bcd\",\"-n1\",\"--pretty=%H\"]
+[2015-09-09 23:32:19.817959] process done ExitSuccess
+[2015-09-09 23:32:19.818955] chat: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"cat-file\",\"--batch\"]
+[2015-09-09 23:32:19.822038] read: quvi [\"--version\"]
+[2015-09-09 23:32:19.826119] process done ExitSuccess
+[2015-09-09 23:32:19.826358] call: quvi [\"--verbosity\",\"mute\",\"--support\",\"file:///tmp/rsa_corr_replications.ipynb\"]
+[2015-09-09 23:32:19.836989] process done ExitFailure 65
+addurl test-annex.dat (downloading file:///tmp/rsa_corr_replications.ipynb ...)
+[2015-09-09 23:32:19.83797] call: curl [\"-f\",\"-L\",\"-C\",\"-\",\"-#\",\"-o\",\"/tmp/xxx/.git/annex/tmp/URL-s31741--file&c%%%tmp%rsa_corr_replications.ipynb\",\"file:///tmp/rsa_corr_replications.ipynb\",\"--user-agent\",\"git-annex/5.20150910+gitg3c17756-1~ndall+1\"]
+[2015-09-09 23:32:19.843001] process done ExitFailure (-11)
+failed
+git-annex: addurl: 1 failed
+
+$> curl \"-f\" \"-L\" \"-C\" \"-\" \"-#\" \"-o\" \"/tmp/xxx/.git/annex/tmp/URL-s31741--file&c%%%tmp%rsa_corr_replications.ipynb\" \"file:///tmp/rsa_corr_replications.ipynb\" \"--user-agent\" \"git-annex/5.20150910+gitg3c17756-1~ndall+1\"
+######################################################################## 100.0%
+
+$> rm \"/tmp/xxx/.git/annex/tmp/URL-s31741--file&c%%%tmp%rsa_corr_replications.ipynb\"
+
+
+$> GIT_ANNEX_LD_LIBRARY_PATH=/usr/lib/git-annex.linux/lib/x86_64-linux-gnu/ GIT_ANNEX_DIR=/usr/lib/git-annex.linux/ /usr/lib/git-annex.linux/bin/curl \"-f\" \"-L\" \"-C\" \"-\" \"-#\" \"-o\" \"/tmp/xxx/.git/annex/tmp/URL-s31741--file&c%%%tmp%rsa_corr_replications.ipynb\" \"file:///tmp/rsa_corr_replications.ipynb\" \"--user-agent\" \"git-annex/5.20150910+gitg3c17756-1~ndall+1\"
+[1] 23559 segmentation fault GIT_ANNEX_LD_LIBRARY_PATH=/usr/lib/git-annex.linux/lib/x86_64-linux-gnu/ =
+\"\"\"]]
+
+exit code in the last calls was 139 ... and after downgrading back to 5.20150819+gitgc587698-1~ndall+1 curl is happily running in the last form:
+
+[[!format sh \"\"\"
+
+$> GIT_ANNEX_LD_LIBRARY_PATH=/usr/lib/git-annex.linux/lib/x86_64-linux-gnu/ GIT_ANNEX_DIR=/usr/lib/git-annex.linux/ /usr/lib/git-annex.linux/bin/curl \"-f\" \"-L\" \"-C\" \"-\" \"-#\" \"-o\" \"/tmp/xxx/.git/annex/tmp/URL-s31741--file&c%%%tmp%rsa_corr_replications.ipynb\" \"file:///tmp/rsa_corr_replications.ipynb\" \"--user-agent\" \"git-annex/5.20150910+gitg3c17756-1~ndall+1\"
+################################################################# 100.0%
+\"\"\"]]
+
+here is the built package if you care to try yourself: [http://www.onerussian.com/tmp/git-annex-standalone_5.20150910+gitg3c17756-1~ndall+1_amd64.deb] with signed changes [http://www.onerussian.com/tmp/git-annex_5.20150910+gitg3c17756-1~ndall+1_amd64.changes]
+"""]]
diff --git a/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_6_76a5e57d178ed85e5e075a22ac521eca._comment b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_6_76a5e57d178ed85e5e075a22ac521eca._comment
new file mode 100644
index 000000000..f5807c2e7
--- /dev/null
+++ b/doc/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/comment_6_76a5e57d178ed85e5e075a22ac521eca._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 6"""
+ date="2015-09-10T16:29:57Z"
+ content="""
+Ok, I remember this now, it's <http://bugs.debian.org/796899>
+"""]]
diff --git a/doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented.mdwn b/doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented.mdwn
index bc7c2dc56..25cad4586 100644
--- a/doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented.mdwn
+++ b/doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented.mdwn
@@ -69,3 +69,5 @@ ok
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
I manage all my important personal documents since about two or three years, spreading them out over home servers, cloud providers and off site usb-drives in foreign countries, making sure that there are always at least 4 copies available. (if my flat burns the same day that box.com goes bankrupt ...)
+
+> [[done]] per comments --[[Joey]]
diff --git a/doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented/comment_1_f0c7e97cc7697172afa87b372d4d9277._comment b/doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented/comment_1_f0c7e97cc7697172afa87b372d4d9277._comment
new file mode 100644
index 000000000..9e2985563
--- /dev/null
+++ b/doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented/comment_1_f0c7e97cc7697172afa87b372d4d9277._comment
@@ -0,0 +1,16 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-09T17:58:09Z"
+ content="""
+Until version 5.201508125, --time-limit didn't cause a clean shutdown,
+and so the fsck database didn't get updated with the last files it checked.
+This could result in up to 1000 files being checked over again the next
+time the incremental fsck was run.
+
+I can't reproduce the problem you describe with the current version.
+And your transcript seems to be showing the old version, which was known to
+have this problem. Only reason I'm not closing this bug immediately
+is you seem to have a new enough version on your mac to avoid the problem..
+but it's not clear to me if you're experiencing the problem on the mac.
+"""]]
diff --git a/doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented/comment_2_fc1d755b34f29e065e536be2acfe1ee1._comment b/doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented/comment_2_fc1d755b34f29e065e536be2acfe1ee1._comment
new file mode 100644
index 000000000..a230ddf5d
--- /dev/null
+++ b/doc/bugs/fsck_--incremental-schedule_does_not_work_as_documented/comment_2_fc1d755b34f29e065e536be2acfe1ee1._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnmF_9CAtfqdZkC4e-_dCX-rK5bqh4RWkw"
+ nickname="Carl"
+ subject="comment 2"
+ date="2015-09-10T16:04:32Z"
+ content="""
+I think you are right. I did try it out on the mac and Thought that I could see the same problems there. Today I tried to reproduce it, but it seems to be working correctly. (I have only tested it properly on a special remote, with --from, and not on the repo itself, since I by misstake did start a job that fsck-ed all files with a new due date in 30 days.
+
+Please close the bug.
+"""]]
diff --git a/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down.mdwn b/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down.mdwn
index 35e5111b6..332748123 100644
--- a/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down.mdwn
+++ b/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down.mdwn
@@ -41,3 +41,5 @@ My diagnosis is that when running `git annex sync testremote --content` when the
(non-fast-forward problems can be solved by setting receive.denyNonFastforwards to false in the remote's git config)
failed
+
+> fowarded, so [[closing|done]] --[[Joey]]
diff --git a/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_1_aa4bf99c99b285ceb135fd7690257565._comment b/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_1_aa4bf99c99b285ceb135fd7690257565._comment
new file mode 100644
index 000000000..597c017de
--- /dev/null
+++ b/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_1_aa4bf99c99b285ceb135fd7690257565._comment
@@ -0,0 +1,20 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-21T17:09:16Z"
+ content="""
+Analysis seems to make sense. Note that this happens only when gcrypt is
+doing a push, not a pull, so there needs to be a local change made for the
+sync to try to push out for the bug to occur. Reproduced by adding a file
+and then syncing.
+
+It seems that gcrypt recovers fairly well; after setting the local
+remote.foo.gcrypt-id to a new value, when the network comes back, it
+re-sets it back to the real value next time a pull is made. Does this
+bug result in any problem other than noise in the log?
+
+Anyway, it's certianly a gcrypt bug, and I don't see what git-annex can do
+about it. Opened a bug there: <https://github.com/bluss/git-remote-gcrypt/issues/20>
+
+Doesn't seem that this would be too hard to fix in gcrypt..
+"""]]
diff --git a/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_2_a6c8200184dab2ff3658843d412e5e1b._comment b/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_2_a6c8200184dab2ff3658843d412e5e1b._comment
new file mode 100644
index 000000000..f2d7196ef
--- /dev/null
+++ b/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_2_a6c8200184dab2ff3658843d412e5e1b._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="spwhitton"
+ subject="comment 2"
+ date="2015-09-21T21:22:22Z"
+ content="""
+I am not aware of any problems other than the noise, but I think it's significant noise because it's marked with 'WARNING' in block capitals and this makes the user worry that something might have gone wrong with their precious git-annex data, and there's no indication it can be automatically recovered from.
+
+Would you accept a patch to your fork of git-remote-gcrypt, since the original author is inactive?
+"""]]
diff --git a/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_2_c021d9ad7f31daab7ac3455554e1cc42._comment b/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_2_c021d9ad7f31daab7ac3455554e1cc42._comment
new file mode 100644
index 000000000..43ef22629
--- /dev/null
+++ b/doc/bugs/gcrypt_gives_false___34__remote_ID_has_changed__34___warning_after_a_sync_fails_because_network_is_down/comment_2_c021d9ad7f31daab7ac3455554e1cc42._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-09-22T15:58:18Z"
+ content="""
+Yes, I'll take reasonable patches, that's why I have that fork of
+git-remote.gcrypt.
+"""]]
diff --git a/doc/bugs/gcrypt_special_remote_fails_on_bare_remote_repos.mdwn b/doc/bugs/gcrypt_special_remote_fails_on_bare_remote_repos.mdwn
new file mode 100644
index 000000000..dcea28f65
--- /dev/null
+++ b/doc/bugs/gcrypt_special_remote_fails_on_bare_remote_repos.mdwn
@@ -0,0 +1,39 @@
+Creating a gcrypt remote on a remote bare repository fails: it tries to modify the config file in the wrong path:
+
+(problem is in last line)
+
+```
+$ git annex initremote qech type=gcrypt encryption=hybrid gitrepo=~/astro.git keyid=0BA74AC5B9494715
+initremote qech (encryption setup) (hybrid cipher with gpg key 0BA74AC5B9494715) gcrypt: Development version -- Repository format MAY CHANGE
+gcrypt: Decrypting manifest
+gpg: Signature made Son 13 Sep 2015 19:37:16 CEST using RSA key ID B9494715
+gpg: Good signature from "Arian Sanusi <arian@sanusi.ch>"
+gpg: aka "Arian Sanusi <arian@sanusi.de>"
+gpg: aka "Arian Sanusi <asanusi@student.ethz.ch>"
+gpg: aka "Arian Sanusi <arian@guave.org>"
+gpg: aka "Arian Sanusi <asanusi@ethz.ch>"
+gpg: aka "Arian Sanusi <arian@semioptimal.net>"
+gcrypt: Remote ID is :id:1+DP8KgrbsvpSycQ5QKO
+Von gcrypt::/home/arian-debian-ssd/astro
+ * [neuer Branch] git-annex -> qech/git-annex
+gcrypt: Development version -- Repository format MAY CHANGE
+gcrypt: Decrypting manifest
+gpg: Signature made Son 13 Sep 2015 19:37:16 CEST using RSA key ID B9494715
+gpg: Good signature from "Arian Sanusi <arian@sanusi.ch>"
+gpg: aka "Arian Sanusi <arian@sanusi.de>"
+gpg: aka "Arian Sanusi <asanusi@student.ethz.ch>"
+gpg: aka "Arian Sanusi <arian@guave.org>"
+gpg: aka "Arian Sanusi <asanusi@ethz.ch>"
+gpg: aka "Arian Sanusi <arian@semioptimal.net>"
+Everything up-to-date
+error: could not lock config file /home/arian-debian-ssd/astro.git/.git/config: Datei oder Verzeichnis nicht gefunden
+git-annex: git [Param "config",Param "core.gcrypt-id",Param ":id:1+DP8KgrbsvpSycQ5QKO"] failed
+```
+
+debian stretch *pre gcc5* on amd64 here:
+
+```
+i git 1:2.5.1-1 amd64
+ii git-annex 5.20150812-2 amd64
+ii git-remote-gcrypt 0.20130908-7 all
+```
diff --git a/doc/bugs/gcrypt_special_remote_fails_on_bare_remote_repos/comment_1_7e690402c8dd663d60f7fc659c323ed8._comment b/doc/bugs/gcrypt_special_remote_fails_on_bare_remote_repos/comment_1_7e690402c8dd663d60f7fc659c323ed8._comment
new file mode 100644
index 000000000..e208b9bd1
--- /dev/null
+++ b/doc/bugs/gcrypt_special_remote_fails_on_bare_remote_repos/comment_1_7e690402c8dd663d60f7fc659c323ed8._comment
@@ -0,0 +1,26 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-18T16:56:42Z"
+ content="""
+So, the missing bit of data needed to reproduce this is that
+~/astro.git didn't exist at all before this initremote call.
+
+If you `git init --bare ~/astro.git` first, it works fine.
+
+The documentation says, of gitrepo:
+
+ This repository should be either empty, or an existing gcrypt repositry.
+
+So, I don't know if this is really a bug, you're not doing what the
+documentation says to do.
+
+I suppose git-annex initremote could create a bare repository when none exists
+in this case, but it would then have to parse the gitrepo parameter, normalize
+it, use the approptiate protocol (file, ssh, rsync) to check if it exists or
+create it, etc, instead of simply passing it to gcrypt.
+
+(What is actually going on here is, gcrypt supports remotes that are not git repositories at all.
+When the repo doesn't exist, it assumes such a remote is wanted and makes one.
+But, git-annex does not support working with that kind of gcrypt remote.)
+"""]]
diff --git a/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget.mdwn b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget.mdwn
new file mode 100644
index 000000000..688b1ef7b
--- /dev/null
+++ b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget.mdwn
@@ -0,0 +1,30 @@
+### Please describe the problem.
+I have a repository that is being synced with a normal Bitbucket git repository (with `annex-ignore = true`). It's been created with the webapp in direct mode and I'm using the assistant.
+
+Everything is working fine, but after running `git annex forget` the git-annex branch in Bitbucket stopped being pushed. git-annex is still working correctly, but I have a lot of useless commits in the history.
+
+So currently I have this branches:
+
+ # git branch -a
+ * annex/direct/master
+ git-annex
+ master
+ synced/master
+ remotes/bitbucket/git-annex
+ remotes/bitbucket/master
+ remotes/bitbucket/synced/git-annex
+ remotes/bitbucket/synced/master
+
+And `remotes/bitbucket/git-annex` isn't being updated with the content of `git-annex`
+
+### What version of git-annex are you using? On what operating system?
+
+5.20150812 and 5.20150731 in Debian Sid and Testing
+
+### Please provide any additional information below.
+
+As I've said, git-annex is still working normally, so the solution might be to simply remove that branch.
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+I use `git-annex` daily with 3 repositories with a total of ~112GB, and I'm really happy with it. Thank you very much for the effort.
diff --git a/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_1_babea9a16f25b471026732ea63dd78a8._comment b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_1_babea9a16f25b471026732ea63dd78a8._comment
new file mode 100644
index 000000000..437613ee7
--- /dev/null
+++ b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_1_babea9a16f25b471026732ea63dd78a8._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-15T15:56:46Z"
+ content="""
+"You may need to force git to push the branch to any git repositories not
+running git-annex." -- git-annex-forget man page
+
+I guess bitbucket doesn't accept pushes that replace an existing branch
+with one with a disconnected history. git push --force should sort it out.
+
+I'm not clear how this is a bug. Is there some change needed in the
+documentation or perhaps in git-annex sync?
+"""]]
diff --git a/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_2_dd24434631ae3898e8f5c1f878d1965f._comment b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_2_dd24434631ae3898e8f5c1f878d1965f._comment
new file mode 100644
index 000000000..264a1daf3
--- /dev/null
+++ b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_2_dd24434631ae3898e8f5c1f878d1965f._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="Jonan"
+ subject="comment 2"
+ date="2015-09-15T16:13:20Z"
+ content="""
+Ok, sorry, must have miss that info.
+
+Couldn't git-annex take care of the `push -f`?
+"""]]
diff --git a/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_3_70f2b9e61e90528fdbef4d8a6e8dd972._comment b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_3_70f2b9e61e90528fdbef4d8a6e8dd972._comment
new file mode 100644
index 000000000..be0e49094
--- /dev/null
+++ b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_3_70f2b9e61e90528fdbef4d8a6e8dd972._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2015-09-15T17:34:15Z"
+ content="""
+What git-annex command?
+
+`git-annex sync` should already deal with this, AFAICS. It forces the push
+to the remote's synced/git-annex branch.
+
+Some remote's may have receive.denyNonFastForwards set, which will prevent
+even a forced push. git-annex sync prints out some hints if this happens.
+"""]]
diff --git a/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_4_11e9ceb40aa5492a1a3e9ebfbd246832._comment b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_4_11e9ceb40aa5492a1a3e9ebfbd246832._comment
new file mode 100644
index 000000000..3233e932f
--- /dev/null
+++ b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_4_11e9ceb40aa5492a1a3e9ebfbd246832._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="Jonan"
+ subject="comment 4"
+ date="2015-09-16T11:15:11Z"
+ content="""
+Yes, the `synced/git-annex` branch is being pushed correctly, it's the `git-annex` branch the one giving trouble.
+"""]]
diff --git a/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_5_20ee285d62c35e18b78b121d8e4de81b._comment b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_5_20ee285d62c35e18b78b121d8e4de81b._comment
new file mode 100644
index 000000000..0285ebbed
--- /dev/null
+++ b/doc/bugs/git-annex_branch_not_being_pushed_after_git-annex_forget/comment_5_20ee285d62c35e18b78b121d8e4de81b._comment
@@ -0,0 +1,35 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 5"""
+ date="2015-09-18T16:27:37Z"
+ content="""
+For all git-annex knows, the remote repository may be actively making
+changes to its own git-annex branch. So, forcing pushes of it could lose
+data, and are not a good idea, and so not done, whereas synced/git-annex
+is force pushed.
+
+If git-annex is indeed being run in the remote repository, it will eventually
+try to merge the newly pushed synced/git-annex with its local git-annex
+branch, notice the forget operation has started, and automatically handle
+updating its git-annex branch appropriatly to be a child of the new
+synced/git-annex branch. At that point, pushes of the git-annex branch will
+work again.
+
+Since your remote is on a hosting service that doesn't use git-annex, that
+doesn't happen, and you'll need to force push to get that branch to update.
+(Although it's somewhat optional to do so; other clients using that remote
+with git-annex sync will pull down the synced/git-annex branch and keep
+working fine even if you never force push the git-annex branch.)
+
+Clearly all this is pretty complicated, but I don't see a good way to improve
+the behavior, unless there's some way to detect that the remote repository
+is not running git-annex, and so assume it's safe to auto-force-push that
+branch. I suppose it could check to see if the remote repository has an
+annex.uuid set, and if not, assume it's not using git-annex. But, if this
+assumption turns out to be wrong (due to a race, or a problem communicating
+the annex.uuid, etc), data loss could result.
+
+Maybe a better fix would be to improve the note about this on git-annex
+forget's man page, and perhaps also make git-annex sync print some helpful
+message when it detects this situation.
+"""]]
diff --git a/doc/bugs/git-annex_can__39__t_find_gpg_if_it__39__s_named_gpg2.mdwn b/doc/bugs/git-annex_can__39__t_find_gpg_if_it__39__s_named_gpg2.mdwn
index d75d2f217..9fd7fdc7c 100644
--- a/doc/bugs/git-annex_can__39__t_find_gpg_if_it__39__s_named_gpg2.mdwn
+++ b/doc/bugs/git-annex_can__39__t_find_gpg_if_it__39__s_named_gpg2.mdwn
@@ -17,3 +17,5 @@ OS X, gpg2 installed with brew
### Have you had any luck using git-annex before?
git-annex took some time to get in the mentality and configure, but now it's a beautiful perfectly oiled file management system. Thanks!
+
+> git.program support now implemented, [[done]] --[[Joey]]
diff --git a/doc/bugs/git-annex_can__39__t_find_gpg_if_it__39__s_named_gpg2/comment_1_b17661b0dbec3a72b2fd9608f0ba6823._comment b/doc/bugs/git-annex_can__39__t_find_gpg_if_it__39__s_named_gpg2/comment_1_b17661b0dbec3a72b2fd9608f0ba6823._comment
new file mode 100644
index 000000000..d97f66d8d
--- /dev/null
+++ b/doc/bugs/git-annex_can__39__t_find_gpg_if_it__39__s_named_gpg2/comment_1_b17661b0dbec3a72b2fd9608f0ba6823._comment
@@ -0,0 +1,23 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-09T21:12:01Z"
+ content="""
+git-annex should work ok with gpg version 2; there was one minor
+incompatability vs gpg version 1, but it was ironed out in 2013.
+
+If you build it from source, and have only gpg2 in PATH, and not gpg, it
+will build a git-annex that runs gpg2.
+
+You're using OSX.. the git-annex.app for OSX bundles its own gpg command,
+and git-annex will use that one. I guess the brew build is built to use
+gpg, and not gpg2. Would it then make sense for the brew package of
+git-annex to depend on the package that contains gpg?
+
+I don't really think it makes sense for git-annex to probe
+around at runtime to find which of gpg and gpg2 is in PATH and pick which
+one to use.
+
+I suppose I could make git-annex look at git config gpg.program and use
+that program when it's set. This would mirror the behavior of git.
+"""]]
diff --git a/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_1_5dc6b520381a7b26563c641fcc284b31._comment b/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_1_5dc6b520381a7b26563c641fcc284b31._comment
new file mode 100644
index 000000000..d5031602a
--- /dev/null
+++ b/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_1_5dc6b520381a7b26563c641fcc284b31._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="FWIW: possibly useful"
+ date="2015-09-04T13:26:19Z"
+ content="""
+https://github.com/marcindulak/vagrant-lustre-tutorial
+to get env with lustre deployment. yet to figure out user management(see [https://github.com/marcindulak/vagrant-lustre-tutorial/issues/2]) since issue didn't replicate under root, so I guess it is a question of some permissions
+"""]]
diff --git a/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_2_8c8d7ad99de78d282d202c541323a299._comment b/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_2_8c8d7ad99de78d282d202c541323a299._comment
new file mode 100644
index 000000000..71da557b1
--- /dev/null
+++ b/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_2_8c8d7ad99de78d282d202c541323a299._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-09-09T16:19:06Z"
+ content="""
+This is a POSIX fcntl lock failing on that filesystem.
+
+git-annex really needs these locks for safe concurrency, including guarding
+against situations where data could be lost.
+
+I wonder if flock locks would be more portable?
+"""]]
diff --git a/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_3_08d950812832acd5aa54287a54fed207._comment b/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_3_08d950812832acd5aa54287a54fed207._comment
new file mode 100644
index 000000000..b984c6788
--- /dev/null
+++ b/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_3_08d950812832acd5aa54287a54fed207._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="comment 3"
+ date="2015-09-10T18:44:25Z"
+ content="""
+so far I have failed to replicate this issue on a luster under virtualbox following aforementioned instructions (if you would like, there is a screen available under datalad@smaug to which I believe you should have access to). I guess I will wait for issues associated with standalone builds to get resolved (ref: http://git-annex.branchable.com/bugs/fails_to_addurl_to_file:__47____47____47___in_the_most_recent_snapshot_build/#comment-424388b7369d9f4889afaa56381e4e38) before attempting more tests there. Meanwhile I will seek more information on the problematic lustre setup (versions etc)
+"""]]
diff --git a/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_4_b8c8fac1dc7bd72cfa8a01495c4a5096._comment b/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_4_b8c8fac1dc7bd72cfa8a01495c4a5096._comment
new file mode 100644
index 000000000..0b766149f
--- /dev/null
+++ b/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_4_b8c8fac1dc7bd72cfa8a01495c4a5096._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="comment 4"
+ date="2015-09-24T20:33:51Z"
+ content="""
+please let me know if you would need an access on the lustre box to troubleshoot this issue (I have failed to replicate in virtualbox)
+"""]]
diff --git a/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_5_e873c82ebc62e0af5051cf36ca084e0a._comment b/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_5_e873c82ebc62e0af5051cf36ca084e0a._comment
new file mode 100644
index 000000000..c8ec76575
--- /dev/null
+++ b/doc/bugs/git-annex_doesn__39__t_work_on_lustre:_waitToSetLock:_unsupported_operation___40__Function_not_implemented__41__/comment_5_e873c82ebc62e0af5051cf36ca084e0a._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 5"""
+ date="2015-09-29T16:38:17Z"
+ content="""
+AFAICS, you have not managed to reproduce the problem. If there's a way to
+get access to a box that does have the problem, my ssh key is `ssh-rsa
+AAAAB3NzaC1yc2EAAAADAQABAAABAQC1YoyHxZwG5Eg0yiMTJLSWJ/+dMM6zZkZiR4JJ0iUfP+tT2bm/lxYompbSqBeiCq+PYcSC67mALxp1vfmdOV//LWlbXfotpxtyxbdTcQbHhdz4num9rJQz1tjsOsxTEheX5jKirFNC5OiKhqwIuNydKWDS9qHGqsKcZQ8p+n1g9Lr3nJVGY7eRRXzw/HopTpwmGmAmb9IXY6DC2k91KReRZAlOrk0287LaK3eCe1z0bu7LYzqqS+w99iXZ/Qs0m9OqAPnHZjWQQ0fN4xn5JQpZSJ7sqO38TBAimM+IHPmy2FTNVVn9zGM+vN1O2xr3l796QmaUG1+XLL0shfR/OZbb`
+ -- or, there are some simple things could be run on that box to check if
+ eg, fcntl locks work at all.
+"""]]
diff --git a/doc/bugs/git-annex_drop_fails_to_access_file:__47____47____47___target_URL_on_Windows/comment_2_504ea07f798838710cdbf6133135c815._comment b/doc/bugs/git-annex_drop_fails_to_access_file:__47____47____47___target_URL_on_Windows/comment_2_504ea07f798838710cdbf6133135c815._comment
new file mode 100644
index 000000000..5097e2e16
--- /dev/null
+++ b/doc/bugs/git-annex_drop_fails_to_access_file:__47____47____47___target_URL_on_Windows/comment_2_504ea07f798838710cdbf6133135c815._comment
@@ -0,0 +1,39 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-09-09T16:36:13Z"
+ content="""
+I can't reproduce that behavior on linux.
+
+ joey@darkstar:~/tmp/xx>git annex addurl --file=annexed file:///./data
+ addurl annexed (downloading file:///./data ...)
+ curl: (37) Couldn't open file /data
+
+Here, curl seems to be doing the right thing; the url is not relative; it's
+for `/./data`, which doesn't exist.
+
+Relative `file:` urls shouldn't be valid at all, I think?
+
+---
+
+For checking if a file: url exits, git-annex parses the url and stats
+the file itself. The first screenshot
+shows this check for file: url existance failing on Windows for
+the url `file:///C:/tmp/test/test.dat`
+
+I guess this might come down to problems with parsing file: urls on
+Windows; seems especially complicated by drive letters. git-annex and curl
+seem to parse this url in different ways.
+
+Checking how that url parses, the uriScheme is "file:" and the uriPath is
+"/C:/tmp/test/test.dat". So, it seems clear why it fails to stat that file.
+
+Is there actually a valid way to produce a file: url that refers to a drive
+letter? curl seems to think so, since it found the file when `git annex
+addurl` ran it. I don't know if the above parse is valid, but it's not
+git-annex's code doing the parse, but the URI parsing library.
+
+(Possibly related bug report:
+<http://git-annex.branchable.com/bugs/git_annex_test_fails_when_run_through_powershell/>
+)
+"""]]
diff --git a/doc/bugs/git-annex_rewrites_.ssh__47__config.mdwn b/doc/bugs/git-annex_rewrites_.ssh__47__config.mdwn
new file mode 100644
index 000000000..325a4c351
--- /dev/null
+++ b/doc/bugs/git-annex_rewrites_.ssh__47__config.mdwn
@@ -0,0 +1,17 @@
+### Please describe the problem.
+Running git annex assistant, my .ssh/config file is rewritten. First, it is a symlink, but then git-annex makes it into an actual file. Second, it adds a trailing whitespace to a generic host block:
+
+ Host
+ ForwardAgent no
+ ...
+
+### What steps will reproduce the problem?
+For the symlink, just make .ssh/config a symlink to the real thing. Have a generic host block will add trailing whitespace. Starting git annex assistant will rewrite .ssh/config.
+
+### What version of git-annex are you using? On what operating system?
+git-annex-5.20140717-8.fc24.x86_64
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+Has worked wonders for syncing keepass files between devices; just now setting up assistant to do things automatically though :) .
+
+> [[fixed|done]] --[[Joey]]
diff --git a/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_1_030209c8c309e976761825c6c51a602d._comment b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_1_030209c8c309e976761825c6c51a602d._comment
new file mode 100644
index 000000000..26df1211a
--- /dev/null
+++ b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_1_030209c8c309e976761825c6c51a602d._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-21T16:14:03Z"
+ content="""
+The assistant does not normally do this when you merely start it up. It does it
+when you configure a ssh remote, when it needs to modify that file.
+It might also modify the file on startup if it detects a configuration that
+an old version of the assistant put in that needs to be fixed up.
+
+Is the trailing whitespace you speak of just a newline added after the
+existing host block, or something else? Your "..." is not very clear.
+
+Fixed symlink issue in git.
+"""]]
diff --git a/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_2_827d2239cb0e9206e40f6dc26e37f140._comment b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_2_827d2239cb0e9206e40f6dc26e37f140._comment
new file mode 100644
index 000000000..a47e96f7c
--- /dev/null
+++ b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_2_827d2239cb0e9206e40f6dc26e37f140._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://mathstuf.id.fedoraproject.org/"
+ nickname="mathstuf"
+ subject="comment 2"
+ date="2015-09-21T18:27:07Z"
+ content="""
+Ah, should have been more specific, sorry. It adds a space to the end of the \"Host\" line (the following are just global settings like turning off ssh-agent forwarding, and disabling insecure ciphers and such).
+"""]]
diff --git a/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_3_52ca93aa55270ec4817bb8ec7fba5920._comment b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_3_52ca93aa55270ec4817bb8ec7fba5920._comment
new file mode 100644
index 000000000..48fffe1af
--- /dev/null
+++ b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_3_52ca93aa55270ec4817bb8ec7fba5920._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2015-09-21T20:48:00Z"
+ content="""
+Hmm, I think I see, your line was "Host\n" and becomes "Host \n".
+
+That's because the parser expects lines of the form "Key Value".
+But, what does this Host line w/o any host specified do?
+"""]]
diff --git a/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_4_e457acce4d9f56ad4682c6746a1c4cdb._comment b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_4_e457acce4d9f56ad4682c6746a1c4cdb._comment
new file mode 100644
index 000000000..660db6505
--- /dev/null
+++ b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_4_e457acce4d9f56ad4682c6746a1c4cdb._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://mathstuf.id.fedoraproject.org/"
+ nickname="mathstuf"
+ subject="comment 4"
+ date="2015-09-21T21:24:26Z"
+ content="""
+Ah, indeed. ssh_config(5) basically says that \"*\" should be used to have the meaning I intended. Looking at the history of the file in my dotfiles repo has it coming from almost 4 years ago. I either copied some bogus stanza from online or misread the docs at that time. Feel free to close :) .
+"""]]
diff --git a/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_5_4316aff6470006183e91004946387141._comment b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_5_4316aff6470006183e91004946387141._comment
new file mode 100644
index 000000000..726397fcb
--- /dev/null
+++ b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_5_4316aff6470006183e91004946387141._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 5"""
+ date="2015-09-22T16:03:42Z"
+ content="""
+Well, it does seem legal to do that -- man page says a pattern can be 0 or
+more characters, and you have 0.
+
+I've put in a fix in the generator to avoid adding whitespace in this
+case.
+"""]]
diff --git a/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_6_316889f4c822828550c8378dec1eae4d._comment b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_6_316889f4c822828550c8378dec1eae4d._comment
new file mode 100644
index 000000000..85d644575
--- /dev/null
+++ b/doc/bugs/git-annex_rewrites_.ssh__47__config/comment_6_316889f4c822828550c8378dec1eae4d._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://mathstuf.id.fedoraproject.org/"
+ nickname="mathstuf"
+ subject="comment 6"
+ date="2015-09-25T05:42:22Z"
+ content="""
+Interesting. It certainly wasn't having any effect with no tokens at least, but I guess it also wasn't choking on the syntax either. Anyways, now that I have \"*\" in there properly, SSH'ing to /old/ hosts fails. And by old, I mean a Debian Etch VM :) .
+"""]]
diff --git a/doc/bugs/git_annex_import_fails_on_filenames_with_newlines_in_them/comment_4_3f5e17f5d73892784640e468578819c4._comment b/doc/bugs/git_annex_import_fails_on_filenames_with_newlines_in_them/comment_4_3f5e17f5d73892784640e468578819c4._comment
new file mode 100644
index 000000000..af72fcb88
--- /dev/null
+++ b/doc/bugs/git_annex_import_fails_on_filenames_with_newlines_in_them/comment_4_3f5e17f5d73892784640e468578819c4._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="graboluk@f6de53961ab0f884e203f602f65eb5cdc0fb7513"
+ nickname="graboluk"
+ subject="very annoying for new users"
+ date="2015-09-25T17:06:45Z"
+ content="""
+Hi, I'd just spent better part of a day trying to figure out why git-annex keeps crashing. I've set up everything as in the instructional video for git-annex assistant, and proceeded to add my document directory with 3000 files (latex projects, etc). git-latex started to complain about unrecognized response from git. I tried many times again, to make long story short, turns out one of my files had newline in its name (I don't even know how it happened)
+
+This was extremely annoying because the message which the assistant was giving me was always about some other file, the name of the offending file did not appear. So I've spent a day trying to figure out a minimal offending example (there were more obvious potential culprits - like the fact that I have many read-only dirs and so on...)
+
+Also, it's not a great first impression considering I'm trying to migrate from dropbox, which hasn't had any problems.
+
+Anyway, it's a great project. Is there a way to donate? (if it replaces dropbox for me for a month of my usual workflow I'd be very happy to donate!)
+
+"""]]
diff --git a/doc/bugs/git_annex_info_is_reporting_file_as_not_annexed_in_direct_mode.mdwn b/doc/bugs/git_annex_info_is_reporting_file_as_not_annexed_in_direct_mode.mdwn
new file mode 100644
index 000000000..d60b760f9
--- /dev/null
+++ b/doc/bugs/git_annex_info_is_reporting_file_as_not_annexed_in_direct_mode.mdwn
@@ -0,0 +1,38 @@
+### Please describe the problem.
+
+I was thinking to answer Emanuele's question in forum (http://git-annex.branchable.com/forum/test_whether_a_file_is_already_annexed/) but realized that 'info' is not the way :-/ (whereis could be used I guess)
+
+### What version of git-annex are you using? On what operating system?
+
+5.20150826+gitg87972f5-1~ndall+1
+
+### Please provide any additional information below.
+
+[[!format sh """
+
+$> git annex indirect
+commit ok
+indirect 1.dat ok
+indirect ok
+ok
+
+$> git annex info 1.dat
+file: 1.dat
+size: 4 bytes
+key: SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat
+
+$> git annex direct
+commit
+On branch master
+nothing to commit, working directory clean
+ok
+direct 1.dat ok
+direct ok
+
+$> git annex info 1.dat
+git-annex: 1.dat is not a directory or an annexed file or a remote or a uuid
+
+
+"""]]
+
+> [[fixed|done]] --[[Joey]]
diff --git a/doc/bugs/hPutChar_error_message_with_UTF-8_chars_above_7F_in_filenames.mdwn b/doc/bugs/hPutChar_error_message_with_UTF-8_chars_above_7F_in_filenames.mdwn
index f4beac9fb..16acb005e 100644
--- a/doc/bugs/hPutChar_error_message_with_UTF-8_chars_above_7F_in_filenames.mdwn
+++ b/doc/bugs/hPutChar_error_message_with_UTF-8_chars_above_7F_in_filenames.mdwn
@@ -76,3 +76,5 @@ git-annex: fsck: 2 failed
# End of transcript or log.
"""]]
+
+> [[fixed|done]] --[[Joey]]
diff --git a/doc/bugs/hPutChar_error_message_with_UTF-8_chars_above_7F_in_filenames/comment_1_bb9cd3e753431b1f5dd8b94a1be4e4a3._comment b/doc/bugs/hPutChar_error_message_with_UTF-8_chars_above_7F_in_filenames/comment_1_bb9cd3e753431b1f5dd8b94a1be4e4a3._comment
new file mode 100644
index 000000000..373c1e4e7
--- /dev/null
+++ b/doc/bugs/hPutChar_error_message_with_UTF-8_chars_above_7F_in_filenames/comment_1_bb9cd3e753431b1f5dd8b94a1be4e4a3._comment
@@ -0,0 +1,20 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-09T20:14:01Z"
+ content="""
+It only fails with --incremental, and the only difference
+is that the fsck database is opened and written that way.
+
+Somehow, opening the database causes the encoding of the stderr handle to get
+reset from the fileEncoding git-annex normally applies at startup to
+the defaut, which crashes on filenames that don't use the locale's
+encoding.
+
+What a strange side effect especially to find in haskell code!
+It's some kind of bug in persistent that this happens.
+I've filed a bug: <https://github.com/yesodweb/persistent/issues/474>
+
+I put in a workaround; I have it reset the encoding of the file handles
+after opening the db.
+"""]]
diff --git a/doc/bugs/may_be_annex_should_be_more_attentive_to_non-annex_repos_and_not_annexify_them__63__.mdwn b/doc/bugs/may_be_annex_should_be_more_attentive_to_non-annex_repos_and_not_annexify_them__63__.mdwn
new file mode 100644
index 000000000..cff4dcaf8
--- /dev/null
+++ b/doc/bugs/may_be_annex_should_be_more_attentive_to_non-annex_repos_and_not_annexify_them__63__.mdwn
@@ -0,0 +1,87 @@
+### Please describe the problem.
+
+git annex info (and may be other commands) would "initiate" git-annex branch (and may be smth else?) even if a given repository has nothing to do with annex (well -- tested in git-annex code repo itself, which is not annexed). Even if I specify file pointing to somewhere else. For that actually annex also would initiate git-annex branch even though underlying git call would fail due to outside repo.
+
+I expect e.g. 'annex info' to fail and return some non-0 code since ran within non-annexed repo (no remote git-annex branch, nothing).
+
+### What steps will reproduce the problem?
+
+run git annex info in non-annexed repo
+
+### What version of git-annex are you using? On what operating system?
+
+5.20150819+gitgc587698-1~ndall+1
+
+### Please provide any additional information below.
+
+[[!format sh """
+
+% git branch
+ bf-standalone-correct-changelog
+ bf-standalone-for-style
+ debian-jessie
+ debian-standalone
+ enh-me-mailmap
+ fixups
+* master
+ neurodebian-custom
+ tuneups
+
+% pwd
+/home/yoh/proj/git-annex
+
+% git annex version
+git-annex version: 5.20150819+gitgc587698-1~ndall+1
+build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify XMPP DNS Feeds Quvi TDFA Database
+key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 SHA1E SHA1 MD5E MD5 WORM URL
+remote types: git gcrypt S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external
+local repository version: unknown
+supported repository version: 5
+upgrade supported from repository versions: 0 1 2 4
+
+% git branch | grep git-annex
+
+% git annex info
+repository mode: indirect
+trusted repositories: 0
+semitrusted repositories: 2
+ 00000000-0000-0000-0000-000000000001 -- web
+ 00000000-0000-0000-0000-000000000002 -- bittorrent
+untrusted repositories: 0
+transfers in progress: none
+available local disk space: 225.96 gigabytes (+1 megabyte reserved)
+local annex keys: 0
+local annex size: 0 bytes
+annexed files in working tree: 0
+size of annexed files in working tree: 0 bytes
+bloom filter size: 32 mebibytes (0% full)
+backend usage:
+
+% git branch | grep git-annex
+ git-annex
+
+% git branch -D git-annex
+Deleted branch git-annex (was e9424d2).
+
+% git annex info /home/yoh/.tmp/datalad_temp_clone_url_EbPVvm/
+fatal: /home/yoh/.tmp/datalad_temp_clone_url_EbPVvm/: '/home/yoh/.tmp/datalad_temp_clone_url_EbPVvm/' is outside repository
+directory: /home/yoh/.tmp/datalad_temp_clone_url_EbPVvm/
+local annex keys: 0
+local annex size: 0 bytes
+annexed files in working tree: 0
+size of annexed files in working tree: 0 bytes
+numcopies stats:
+repositories containing these files: 0
+
+% git branch | grep git-annex
+ git-annex
+"""]]
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+
+yes -- with every day it grows on/in me! ;)
+
+> Oddly, I noticed this earlier today, and fixed it. Only git annex info
+> was affected; for some reason it was marked to let it run outside a
+> git-annex repo. [[done]] --[[Joey]]
diff --git a/doc/bugs/openbsd_-_Assistant__47__WebApp__47__Configurators__47__AWS.hs:79:0:_-_error:_missing_binary_operator_before_token___34____40____34__.mdwn b/doc/bugs/openbsd_-_Assistant__47__WebApp__47__Configurators__47__AWS.hs:79:0:_-_error:_missing_binary_operator_before_token___34____40____34__.mdwn
new file mode 100644
index 000000000..5a1b48031
--- /dev/null
+++ b/doc/bugs/openbsd_-_Assistant__47__WebApp__47__Configurators__47__AWS.hs:79:0:_-_error:_missing_binary_operator_before_token___34____40____34__.mdwn
@@ -0,0 +1,330 @@
+### Please describe the problem.
+
+Building git-annex-5.20150930 on OpenBSD 5.8 snapshot/amd64 (2015-09-30) fails, ghc is 7.10.2:
+
+[[!format sh """
+*** C pre-processor:
+/usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/WebApp/Configurators/AWS.hs -o /tmp/ghc9832_0/ghc_101.hscpp
+
+Assistant/WebApp/Configurators/AWS.hs:79:0:
+ error: missing binary operator before token "("
+*** Deleting temp files:
+Deleting: /tmp/ghc9832_0/ghc_101.hscpp /tmp/ghc9832_0/ghc_100.hscpp /tmp/ghc9832_0/ghc_99.hscpp /tmp/ghc9832_0/ghc_98.hscpp /tmp/ghc9832_0/ghc_97.hscpp /tmp/ghc9832_0/ghc_96.hscpp /tmp/ghc9832_0/ghc_95.hscpp /tmp/ghc9832_0/ghc_94.hscpp /tmp/ghc9832_0/ghc_93.hscpp /tmp/ghc9832_0/ghc_92.hscpp /tmp/ghc9832_0/ghc_91.hscpp /tmp/ghc9832_0/ghc_90.hscpp /tmp/ghc9832_0/ghc_89.hscpp /tmp/ghc9832_0/ghc_88.hscpp /tmp/ghc9832_0/ghc_87.hscpp /tmp/ghc9832_0/ghc_86.hscpp /tmp/ghc9832_0/ghc_85.hscpp /tmp/ghc9832_0/ghc_84.hscpp /tmp/ghc9832_0/ghc_83.hscpp /tmp/ghc9832_0/ghc_82.hscpp /tmp/ghc9832_0/ghc_81.hscpp /tmp/ghc9832_0/ghc_80.hscpp /tmp/ghc9832_0/ghc_79.hscpp /tmp/ghc9832_0/ghc_78.hscpp /tmp/ghc9832_0/ghc_77.hscpp /tmp/ghc9832_0/ghc_76.hscpp /tmp/ghc9832_0/ghc_75.hscpp /tmp/ghc9832_0/ghc_74.hscpp /tmp/ghc9832_0/ghc_73.hscpp /tmp/ghc9832_0/ghc_72.hscpp /tmp/ghc9832_0/ghc_71.hscpp /tmp/ghc9832_0/ghc_70.hscpp /tmp/ghc9832_0/ghc_69.hscpp /tmp/ghc9832_0/ghc_68.hscpp /tmp/ghc9832_0/ghc_67.hscpp /tmp/ghc9832_0/ghc_66.hscpp /tmp/ghc9832_0/ghc_65.hscpp /tmp/ghc9832_0/ghc_64.hscpp /tmp/ghc9832_0/ghc_63.hscpp /tmp/ghc9832_0/ghc_62.hscpp /tmp/ghc9832_0/ghc_61.hscpp /tmp/ghc9832_0/ghc_60.hscpp /tmp/ghc9832_0/ghc_59.hscpp /tmp/ghc9832_0/ghc_58.hscpp /tmp/ghc9832_0/ghc_57.hscpp /tmp/ghc9832_0/ghc_56.hscpp /tmp/ghc9832_0/ghc_55.hscpp /tmp/ghc9832_0/ghc_54.hscpp /tmp/ghc9832_0/ghc_53.hscpp /tmp/ghc9832_0/ghc_52.hscpp /tmp/ghc9832_0/ghc_51.hscpp /tmp/ghc9832_0/ghc_50.hscpp /tmp/ghc9832_0/ghc_49.hscpp /tmp/ghc9832_0/ghc_48.hscpp /tmp/ghc9832_0/ghc_47.hscpp /tmp/ghc9832_0/ghc_46.hscpp /tmp/ghc9832_0/ghc_45.hscpp /tmp/ghc9832_0/ghc_44.hscpp /tmp/ghc9832_0/ghc_43.hscpp /tmp/ghc9832_0/ghc_42.hscpp /tmp/ghc9832_0/ghc_41.hscpp /tmp/ghc9832_0/ghc_40.hscpp /tmp/ghc9832_0/ghc_39.hscpp /tmp/ghc9832_0/ghc_38.hscpp /tmp/ghc9832_0/ghc_37.hscpp /tmp/ghc9832_0/ghc_36.hscpp /tmp/ghc9832_0/ghc_35.hscpp /tmp/ghc9832_0/ghc_34.hscpp /tmp/ghc9832_0/ghc_33.hscpp /tmp/ghc9832_0/ghc_32.hscpp /tmp/ghc9832_0/ghc_31.hscpp /tmp/ghc9832_0/ghc_30.hscpp /tmp/ghc9832_0/ghc_29.hscpp /tmp/ghc9832_0/ghc_28.hscpp /tmp/ghc9832_0/ghc_27.hscpp /tmp/ghc9832_0/ghc_26.hscpp /tmp/ghc9832_0/ghc_25.hscpp /tmp/ghc9832_0/ghc_24.hscpp /tmp/ghc9832_0/ghc_23.hscpp /tmp/ghc9832_0/ghc_22.hscpp /tmp/ghc9832_0/ghc_21.hscpp /tmp/ghc9832_0/ghc_20.hscpp /tmp/ghc9832_0/ghc_19.hscpp /tmp/ghc9832_0/ghc_18.hscpp /tmp/ghc9832_0/ghc_17.hscpp /tmp/ghc9832_0/ghc_16.hscpp /tmp/ghc9832_0/ghc_15.hscpp /tmp/ghc9832_0/ghc_14.hscpp /tmp/ghc9832_0/ghc_13.hscpp /tmp/ghc9832_0/ghc_12.hscpp /tmp/ghc9832_0/ghc_11.hscpp /tmp/ghc9832_0/ghc_10.hscpp /tmp/ghc9832_0/ghc_9.hscpp /tmp/ghc9832_0/ghc_8.hscpp /tmp/ghc9832_0/ghc_7.hscpp /tmp/ghc9832_0/ghc_6.hscpp /tmp/ghc9832_0/ghc_5.hscpp /tmp/ghc9832_0/ghc_4.hscpp /tmp/ghc9832_0/ghc_3.hscpp /tmp/ghc9832_0/ghc_2.hscpp /tmp/ghc9832_0/ghc_1.hscpp
+Warning: deleting non-existent /tmp/ghc9832_0/ghc_101.hscpp
+*** Deleting temp dirs:
+Deleting: /tmp/ghc9832_0
+/usr/local/bin/ghc returned ExitFailure 1
+
+$ ghc -V
+The Glorious Glasgow Haskell Compilation System, version 7.10.2
+"""]]
+
+### What steps will reproduce the problem?
+
+1. have OpenBSD 5.8 snapshot for amd64 (64bit x86 platform)
+2. install haskell-platform package (pkg_add haskell-platform)
+3. cabal update ; cabal get git-annex
+4. cd git-annex* ; cabal sandbox init --sandbox=.
+5. use following flags:
+ $ awk '/^Flag/ && !/Webapp|Assistant/ { print "-"$2 }' git-annex.cabal | xargs
+-S3 -WebDAV -Inotify -Dbus -Pairing -XMPP -DNS -Production -Android -AndroidSplice -TestSuite -TDFA -Feed -Quvi -Tahoe -DesktopNotify -TorrentParser -AsciiProgress -EKG -network-uri -Database -Cryptonite
+6. cabal install -v3 -j -f"$( awk '/^Flag/ && !/Webapp|Assistant/ { print "-"$2 }' git-annex.cabal | xargs )" --only-dependencies
+ (fyi: there's a bug in warp so check this diff https://github.com/awpr/wai/commit/831b944c5ddb5f9e71b8c5c3d4c185d0000562b1)
+7. cabal configure -v3 -f"$( awk '/^Flag/ && !/Webapp|Assistant/ { print "-"$2 }' git-annex.cabal | xargs )"
+8. cabal build -v3 -j
+
+### What version of git-annex are you using? On what operating system?
+
+git-annex-5.20150930
+
+### Please provide any additional information below.
+
+[[!format sh """
+
+ $ cabal build -v3 -j
+ Using a sandbox located at
+ /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930
+ Reading available packages...
+ Reading installed packages...
+ ("/usr/local/bin/ghc-pkg",["dump","--package-db=/home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/x86_64-openbsd-ghc-7.10.2-packages.conf.d","-v0"])
+ ("/usr/local/bin/ghc",["--print-libdir"])
+ Found no modified add-source deps.
+ Using external setup method with build-type Custom
+ creating dist/setup
+ Using Cabal library version 1.22.4.0
+ ./dist/setup/setup build --verbose=3 --builddir=dist --jobs=2
+ Component build order: executable 'git-annex'
+ creating dist/build
+ creating dist/build/autogen
+ Building git-annex-5.20150930...
+ Environment: [("AWT_TOOLKIT","XToolkit"),("DBUS_SESSION_BUS_ADDRESS","unix:path=/tmp/dbus-Wm90QFfaar,guid=2309f6d0604ee5fc552c89af560d9e17"),("DISPLAY",":0"),("ENV","/home/jirib/.kshrc"),("GDK_USE_XFT","0"),("HISTFILE",".sh_history"),("HOME","/home/jirib"),("LANG","en_US.UTF-8"),("LOGNAME","jirib"),("PATH","/home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/bin:/home/jirib/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/games:.:/home/jirib/.cabal/bin:/home/jirib/.cabal/bin"),("PKG_PATH","http://mirror.steadynet.cz/pub/OpenBSD/snapshots/packages/amd64/"),("PS1","\\n$USER:$PWD\\n$ "),("PWD","/home/jirib/tmp/sandbox/haskell/git-annex-5.20150930"),("SHELL","/bin/ksh"),("SSH_AGENT_PID","17201"),("SSH_AUTH_SOCK","/tmp/ssh-aPlKN3hf8LJV/agent.24785"),("TERM","screen"),("TMUX","/tmp/tmux-1000/default,20957,0"),("TMUX_PANE","%5"),("USER","jirib"),("WINDOWID","18874381"),("WINDOWPATH","5"),("XTERM_LOCALE","en_US.UTF-8"),("XTERM_SHELL","/bin/ksh"),("XTERM_VERSION","XTerm/OpenBSD(320)"),("_","/usr/local/bin/cabal")]
+ ("/usr/local/bin/ghc-pkg",["init","dist/package.conf.inplace","-v2"])
+ writing cache dist/package.conf.inplace/package.cache
+ Preprocessing executable 'git-annex' for git-annex-5.20150930...
+ Building executable git-annex...
+ creating dist/build/git-annex
+ creating dist/build/git-annex/git-annex-tmp
+ Environment: [("AWT_TOOLKIT","XToolkit"),("DBUS_SESSION_BUS_ADDRESS","unix:path=/tmp/dbus-Wm90QFfaar,guid=2309f6d0604ee5fc552c89af560d9e17"),("DISPLAY",":0"),("ENV","/home/jirib/.kshrc"),("GDK_USE_XFT","0"),("HISTFILE",".sh_history"),("HOME","/home/jirib"),("LANG","en_US.UTF-8"),("LOGNAME","jirib"),("PATH","/home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/bin:/home/jirib/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/games:.:/home/jirib/.cabal/bin:/home/jirib/.cabal/bin"),("PKG_PATH","http://mirror.steadynet.cz/pub/OpenBSD/snapshots/packages/amd64/"),("PS1","\\n$USER:$PWD\\n$ "),("PWD","/home/jirib/tmp/sandbox/haskell/git-annex-5.20150930"),("SHELL","/bin/ksh"),("SSH_AGENT_PID","17201"),("SSH_AUTH_SOCK","/tmp/ssh-aPlKN3hf8LJV/agent.24785"),("TERM","screen"),("TMUX","/tmp/tmux-1000/default,20957,0"),("TMUX_PANE","%5"),("USER","jirib"),("WINDOWID","18874381"),("WINDOWPATH","5"),("XTERM_LOCALE","en_US.UTF-8"),("XTERM_SHELL","/bin/ksh"),("XTERM_VERSION","XTerm/OpenBSD(320)"),("_","/usr/local/bin/cabal")]
+ ("/usr/local/bin/ghc",["--make","-no-link","-v","-fbuilding-cabal-package","-O","-j2","-static","-outputdir","dist/build/git-annex/git-annex-tmp","-odir","dist/build/git-annex/git-annex-tmp","-hidir","dist/build/git-annex/git-annex-tmp","-stubdir","dist/build/git-annex/git-annex-tmp","-i","-idist/build/git-annex/git-annex-tmp","-i.","-idist/build/autogen","-Idist/build/autogen","-Idist/build/git-annex/git-annex-tmp","-IUtility","-optP-DWITH_CLIBS","-optP-DWITH_ASSISTANT","-optP-DWITH_KQUEUE","-optP-DWITH_WEBAPP","-optP-DWITH_WEBAPP_SECURE","-optP-include","-optPdist/build/autogen/cabal_macros.h","-hide-all-packages","-no-user-package-db","-package-db","/home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/x86_64-openbsd-ghc-7.10.2-packages.conf.d","-package-db","dist/package.conf.inplace","-package-id","IfElse-0.85-8c1db1f839f44c5529d401df338fe317","-package-id","MissingH-1.3.0.1-e54b797a34e6cb205f6f390e10450316","-package-id","QuickCheck-2.8.1-205c25b58070768870086b4df430493a","-package-id","SafeSemaphore-0.10.1-4f3138e0a22eaafa634797b1a6a487f9","-package-id","aeson-0.10.0.0-17203400b8ef32da113b969a5bf6b421","-package-id","async-2.0.2-7323ce9f8a31649b3f9f961e623ae0eb","-package-id","base-4.8.1.0-e9d679e3d378e2518aed01b8b69ce058","-package-id","blaze-builder-0.4.0.1-9588a3a15a2f3414e775fe4d569b21d4","-package-id","bloomfilter-2.0.1.0-a9c6b1194fe5c0015321f0a4e7f3913e","-package-id","byteable-0.1.1-48ca2c3fb39c0c4b6558110ffad0d275","-package-id","bytestring-0.10.6.0-b589eded7797edbdfe3d6e68c53a58dc","-package-id","case-insensitive-1.2.0.4-19d14e9206f0c06c6d26299b5df858f2","-package-id","clientsession-0.9.1.1-fdef70f936d7254b2ce9be7a7c88a429","-package-id","containers-0.5.6.2-7a88df79ef535718d24bcf01924e95ea","-package-id","crypto-api-0.13.2-fe6624016dbd84f79370a229db9c50b4","-package-id","cryptohash-0.11.6-8ee3be9b04a6ed91e6a933e4ab55b446","-package-id","data-default-0.5.3-a2ece8050e447d921b001e26e14476f2","-package-id","directory-1.2.2.0-9604452531b12502e0c0f53fe36bac14","-package-id","dlist-0.7.1.2-2ee7ccabb5af73780c27d45186b61b2a","-package-id","edit-distance-0.2.2.1-1e17962d7db38ea1b8ddcbcc82c36e3f","-package-id","exceptions-0.8.0.2-b08bd0de7dff383d124cad3f4c34eddd","-package-id","filepath-1.4.0.0-8fee9c13b5e42926cc01f6aa7c403c4b","-package-id","hslogger-1.2.9-f91beb37c8c482a9164b1fb2d65e9f7b","-package-id","http-conduit-2.1.8-3f9571a312ab569cd16979e8110b42e6","-package-id","http-types-0.8.6-90cda10008eb9ec48d623edd4222138c","-package-id","json-0.9.1-071cea633efbeb26f404205b6c92d2db","-package-id","monad-control-1.0.0.4-9b806c409db033e571fac7650e2dbb97","-package-id","monad-logger-0.3.14-6e4135d482645151586ba6f524d5a2c8","-package-id","mtl-2.2.1-5cf332b11edb88a6040af20fd6a58acb","-package-id","network-2.5.0.0-79b288edc2a1f492b0299230b7135bcf","-package-id","old-locale-1.0.0.7-2f3f4311e12e7847c2af472c26151237","-package-id","optparse-applicative-0.12.0.0-c035e6891921a870a8333e89c5b23759","-package-id","path-pieces-0.2.0-37a89ca1eb723024775a5dcb7dfe5a20","-package-id","process-1.2.3.0-f7cbb3835532fa6fa4fb3a1aa1f4bbe6","-package-id","random-1.1-9de9e9be919ec1d4e6119bd8961a507f","-package-id","regex-compat-0.95.1-e50502312ccfb1a89bd22db9d575dc4f","-package-id","resourcet-1.1.6-55de3aba5b250abebd371fa9d81977ea","-package-id","sandi-0.3.5-42eaac6c05b00fa1bf8ad214fe4954e8","-package-id","securemem-0.1.9-3d837514dd9f117b6559e5f233e357c1","-package-id","shakespeare-2.0.6-1183ef430c3a759068fcad22bd67f303","-package-id","stm-2.4.4-2526ff89874f899372b2e4f544bb03cd","-package-id","template-haskell-2.10.0.0-29e9ee689e414aeb467de728072e34e5","-package-id","text-1.2.1.3-5e120dece51b43c1c5a0c17e670cd819","-package-id","time-1.5.0.1-962ac4f6f4ca6114bbde156fc38752bb","-package-id","transformers-0.4.2.0-21dcbf13c43f5d8cf6a1f54dee6c5bff","-package-id","unix-2.7.1.0-4cd6bc0b569ae71215412d51dbf6ccdf","-package-id","unix-compat-0.4.1.4-c8aec8b150e56d876bc64b4916c558fe","-package-id","utf8-string-1.0.1.1-34502b713602e8a4940574a71c55ec33","-package-id","uuid-1.3.11-34749cfad2e988cf92ab92e73cd29a03","-package-id","wai-3.0.4.0-8690ec1047c082bdd30249fe1b407cfe","-package-id","wai-extra-3.0.10-d641ebcb8710634a497aa33b280d9f49","-package-id","warp-3.1.4-f1363cb38f0c1dc746cfc023d01605eb","-package-id","warp-tls-3.1.3-fe6c1b8e2d97f41cb3473de79302319c","-package-id","yesod-1.4.2-1c9d038617ae025cab86404afd836946","-package-id","yesod-core-1.4.15-02a732ed0c74e9e43891dfcf293a6b2a","-package-id","yesod-default-1.2.0-8f2416af7a2ee3c9cd620cc714b1aad9","-package-id","yesod-form-1.4.4.1-778084a0b51f18464b1286fe6edee826","-package-id","yesod-static-1.5.0.3-9fda499d45f58aff893578e4dd15e8ca","-XHaskell98","-XPackageImports","./git-annex.hs","-Wall","-fno-warn-tabs","-threaded"])
+ Glasgow Haskell Compiler, Version 7.10.2, stage 2 booted by GHC version 7.8.3.20150914
+ Using binary package database: /usr/local/lib/ghc/package.conf.d/package.cache
+ Using binary package database: /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/x86_64-openbsd-ghc-7.10.2-packages.conf.d/package.cache
+ Using binary package database: dist/package.conf.inplace/package.cache
+ wired-in package ghc-prim mapped to ghc-prim-0.4.0.0-af16264bc80979d06e37ac63e3ba9a21
+ wired-in package integer-gmp mapped to integer-gmp-1.0.0.0-8e0f14d0262184533b417ca1f8b44482
+ wired-in package base mapped to base-4.8.1.0-e9d679e3d378e2518aed01b8b69ce058
+ wired-in package rts mapped to builtin_rts
+ wired-in package template-haskell mapped to template-haskell-2.10.0.0-29e9ee689e414aeb467de728072e34e5
+ wired-in package ghc mapped to ghc-7.10.2-35b59c7ea6591394d1cf3df1da8b38d0
+ wired-in package dph-seq not found.
+ wired-in package dph-par not found.
+ Hsc static flags:
+ wired-in package ghc-prim mapped to ghc-prim-0.4.0.0-af16264bc80979d06e37ac63e3ba9a21
+ wired-in package integer-gmp mapped to integer-gmp-1.0.0.0-8e0f14d0262184533b417ca1f8b44482
+ wired-in package base mapped to base-4.8.1.0-e9d679e3d378e2518aed01b8b69ce058
+ wired-in package rts mapped to builtin_rts
+ wired-in package template-haskell mapped to template-haskell-2.10.0.0-29e9ee689e414aeb467de728072e34e5
+ wired-in package ghc mapped to ghc-7.10.2-35b59c7ea6591394d1cf3df1da8b38d0
+ wired-in package dph-seq not found.
+ wired-in package dph-par not found.
+ *** Chasing dependencies:
+ Chasing modules from: *git-annex.hs
+ Created temporary directory: /tmp/ghc9832_0
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp git-annex.hs -o /tmp/ghc9832_0/ghc_1.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Test.hs -o /tmp/ghc9832_0/ghc_2.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Git.hs -o /tmp/ghc9832_0/ghc_3.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/FileMode.hs -o /tmp/ghc9832_0/ghc_4.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/PosixFiles.hs -o /tmp/ghc9832_0/ghc_5.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/URI.hs -o /tmp/ghc9832_0/ghc_6.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Process.hs -o /tmp/ghc9832_0/ghc_7.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Misc.hs -o /tmp/ghc9832_0/ghc_8.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/FileSystemEncoding.hs -o /tmp/ghc9832_0/ghc_9.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Common.hs -o /tmp/ghc9832_0/ghc_10.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/FileSize.hs -o /tmp/ghc9832_0/ghc_11.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Directory.hs -o /tmp/ghc9832_0/ghc_12.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Tmp.hs -o /tmp/ghc9832_0/ghc_13.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Path.hs -o /tmp/ghc9832_0/ghc_14.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/UserInfo.hs -o /tmp/ghc9832_0/ghc_15.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Env.hs -o /tmp/ghc9832_0/ghc_16.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Gpg.hs -o /tmp/ghc9832_0/ghc_17.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Logs/Transfer.hs -o /tmp/ghc9832_0/ghc_18.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Logs/TimeStamp.hs -o /tmp/ghc9832_0/ghc_19.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/LockPool.hs -o /tmp/ghc9832_0/ghc_20.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/LockPool/LockHandle.hs -o /tmp/ghc9832_0/ghc_21.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/PID.hs -o /tmp/ghc9832_0/ghc_22.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Bloom.hs -o /tmp/ghc9832_0/ghc_23.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex.hs -o /tmp/ghc9832_0/ghc_24.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Url.hs -o /tmp/ghc9832_0/ghc_25.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/InodeCache.hs -o /tmp/ghc9832_0/ghc_26.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Hash.hs -o /tmp/ghc9832_0/ghc_27.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Glob.hs -o /tmp/ghc9832_0/ghc_28.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Git/Command.hs -o /tmp/ghc9832_0/ghc_29.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/CoProcess.hs -o /tmp/ghc9832_0/ghc_30.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Git/Construct.hs -o /tmp/ghc9832_0/ghc_31.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Git/FilePath.hs -o /tmp/ghc9832_0/ghc_32.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Git/Remote.hs -o /tmp/ghc9832_0/ghc_33.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Git/Queue.hs -o /tmp/ghc9832_0/ghc_34.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Git/UpdateIndex.hs -o /tmp/ghc9832_0/ghc_35.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Git/Hook.hs -o /tmp/ghc9832_0/ghc_36.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Logs/MapLog.hs -o /tmp/ghc9832_0/ghc_37.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Shell.hs -o /tmp/ghc9832_0/ghc_38.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Git/FileMode.hs -o /tmp/ghc9832_0/ghc_39.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Index.hs -o /tmp/ghc9832_0/ghc_40.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Journal.hs -o /tmp/ghc9832_0/ghc_41.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/LockFile.hs -o /tmp/ghc9832_0/ghc_42.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Rsync.hs -o /tmp/ghc9832_0/ghc_43.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Remote/Directory.hs -o /tmp/ghc9832_0/ghc_44.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Content.hs -o /tmp/ghc9832_0/ghc_45.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Messages/Progress.hs -o /tmp/ghc9832_0/ghc_46.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Content/Direct.hs -o /tmp/ghc9832_0/ghc_47.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/CopyFile.hs -o /tmp/ghc9832_0/ghc_48.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/DiskFree.hs -o /tmp/ghc9832_0/ghc_49.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Backend/Hash.hs -o /tmp/ghc9832_0/ghc_50.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Remote/Rsync.hs -o /tmp/ghc9832_0/ghc_51.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Remote/Rsync/RsyncUrl.hs -o /tmp/ghc9832_0/ghc_52.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Ssh.hs -o /tmp/ghc9832_0/ghc_53.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Path.hs -o /tmp/ghc9832_0/ghc_54.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Logs/Unused.hs -o /tmp/ghc9832_0/ghc_55.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Remote/List.hs -o /tmp/ghc9832_0/ghc_56.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Remote/BitTorrent.hs -o /tmp/ghc9832_0/ghc_57.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Remote/Web.hs -o /tmp/ghc9832_0/ghc_58.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Remote/Git.hs -o /tmp/ghc9832_0/ghc_59.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Batch.hs -o /tmp/ghc9832_0/ghc_60.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Init.hs -o /tmp/ghc9832_0/ghc_61.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Upgrade.hs -o /tmp/ghc9832_0/ghc_62.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Version.hs -o /tmp/ghc9832_0/ghc_63.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Environment.hs -o /tmp/ghc9832_0/ghc_64.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Transfer.hs -o /tmp/ghc9832_0/ghc_65.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Notification.hs -o /tmp/ghc9832_0/ghc_66.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Remote/Helper/Hooks.hs -o /tmp/ghc9832_0/ghc_67.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Annex/Action.hs -o /tmp/ghc9832_0/ghc_68.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Daemon.hs -o /tmp/ghc9832_0/ghc_69.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/LogFile.hs -o /tmp/ghc9832_0/ghc_70.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/DirWatcher.hs -o /tmp/ghc9832_0/ghc_71.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./CmdLine/GitAnnex.hs -o /tmp/ghc9832_0/ghc_72.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Types/Test.hs -o /tmp/ghc9832_0/ghc_73.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/ThreadScheduler.hs -o /tmp/ghc9832_0/ghc_74.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Command/WebApp.hs -o /tmp/ghc9832_0/ghc_75.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/WebApp.hs -o /tmp/ghc9832_0/ghc_76.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Install.hs -o /tmp/ghc9832_0/ghc_77.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Install/Menu.hs -o /tmp/ghc9832_0/ghc_78.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Install/AutoStart.hs -o /tmp/ghc9832_0/ghc_79.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Pairing.hs -o /tmp/ghc9832_0/ghc_80.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Types/Buddies.hs -o /tmp/ghc9832_0/ghc_81.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Yesod.hs -o /tmp/ghc9832_0/ghc_82.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Threads/WebApp.hs -o /tmp/ghc9832_0/ghc_83.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Repair.hs -o /tmp/ghc9832_0/ghc_84.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Utility/Lsof.hs -o /tmp/ghc9832_0/ghc_85.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Types/UrlRenderer.hs -o /tmp/ghc9832_0/ghc_86.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Alert.hs -o /tmp/ghc9832_0/ghc_87.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/TransferSlots.hs -o /tmp/ghc9832_0/ghc_88.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Threads/Watcher.hs -o /tmp/ghc9832_0/ghc_89.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/NamedThread.hs -o /tmp/ghc9832_0/ghc_90.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/WebApp/RepoList.hs -o /tmp/ghc9832_0/ghc_91.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/WebApp/Page.hs -o /tmp/ghc9832_0/ghc_92.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Restart.hs -o /tmp/ghc9832_0/ghc_93.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./BuildFlags.hs -o /tmp/ghc9832_0/ghc_94.hscpp
+
+ BuildFlags.hs:31:0:
+ warning: #warning Building without local pairing.
+
+ BuildFlags.hs:36:0:
+ warning: #warning Building without the testsuite.
+
+ BuildFlags.hs:41:0: warning: #warning Building without S3.
+
+ BuildFlags.hs:46:0: warning: #warning Building without WebDAV.
+
+ BuildFlags.hs:66:0: warning: #warning Building without XMPP.
+
+ BuildFlags.hs:74:0: warning: #warning Building without Feeds.
+
+ BuildFlags.hs:79:0: warning: #warning Building without quvi.
+
+ BuildFlags.hs:90:0:
+ warning: #warning Building without Database support
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/WebApp/Configurators/Upgrade.hs -o /tmp/ghc9832_0/ghc_95.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/Upgrade.hs -o /tmp/ghc9832_0/ghc_96.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/DeleteRemote.hs -o /tmp/ghc9832_0/ghc_97.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Git/Remote/Remove.hs -o /tmp/ghc9832_0/ghc_98.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/WebApp/Configurators/Edit.hs -o /tmp/ghc9832_0/ghc_99.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/WebApp/Configurators/IA.hs -o /tmp/ghc9832_0/ghc_100.hscpp
+ *** C pre-processor:
+ /usr/bin/gcc -E -undef -traditional -DWITH_CLIBS -DWITH_ASSISTANT -DWITH_KQUEUE -DWITH_WEBAPP -DWITH_WEBAPP_SECURE -include dist/build/autogen/cabal_macros.h -I dist/build/git-annex/git-annex-tmp -I dist/build/git-annex/git-annex-tmp -I dist/build/autogen -I dist/build/git-annex/git-annex-tmp -I Utility -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/unix-compat-0.4.1.4-DeAF5HEzYMu4CPLnbGbHUz/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/bloomfilter-2.0.1.0-F2y5dJFu1WQLGpoWigZrGn/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/vector-0.11.0.0-A9qWf1eecPQGJD12EBZIxF/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/primitive-0.6.1.0-5Jnw7oEuYtM9dmKXelGXVb/include -I /usr/local/lib/ghc/old-time-1.1.0.3/include -I /usr/local/lib/ghc/proce_FLTz0SLwyG6LJUpZ52HjkU/include -I /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/lib/x86_64-openbsd-ghc-7.10.2/network-2.5.0.0-1vMzFxK9QUUCF53bUPP2fd/include -I /usr/local/lib/ghc/direc_KowvXytSqazBcvN7MGpFtg/include -I /usr/local/lib/ghc/unix_A3WgcI5QiHK4PDo4jSYdwQ/include -I /usr/local/lib/ghc/bytes_6elQVSg5cWdFrvRnfxTUrH/include -I /usr/local/lib/ghc/time_AXTdBF9VRQoBOqJT6qtmVH/include -I /usr/local/include -I /usr/local/lib/ghc/base_GDytRqRVSUX7zckgKqJjgw/include -I /usr/local/lib/ghc/integ_2aU3IZNMF9a7mQ0OzsZ0dS/include -I /usr/local/lib/ghc/include '-D__GLASGOW_HASKELL__=710' -include /usr/local/lib/ghc/include/ghcversion.h '-Dopenbsd_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dopenbsd_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-D__GLASGOW_HASKELL_TH__=YES' -U__PIC__ -D__PIC__ '-D__SSE__=1' '-D__SSE2__=1' -x assembler-with-cpp ./Assistant/WebApp/Configurators/AWS.hs -o /tmp/ghc9832_0/ghc_101.hscpp
+
+ Assistant/WebApp/Configurators/AWS.hs:79:0:
+ error: missing binary operator before token "("
+ *** Deleting temp files:
+ Deleting: /tmp/ghc9832_0/ghc_101.hscpp /tmp/ghc9832_0/ghc_100.hscpp /tmp/ghc9832_0/ghc_99.hscpp /tmp/ghc9832_0/ghc_98.hscpp /tmp/ghc9832_0/ghc_97.hscpp /tmp/ghc9832_0/ghc_96.hscpp /tmp/ghc9832_0/ghc_95.hscpp /tmp/ghc9832_0/ghc_94.hscpp /tmp/ghc9832_0/ghc_93.hscpp /tmp/ghc9832_0/ghc_92.hscpp /tmp/ghc9832_0/ghc_91.hscpp /tmp/ghc9832_0/ghc_90.hscpp /tmp/ghc9832_0/ghc_89.hscpp /tmp/ghc9832_0/ghc_88.hscpp /tmp/ghc9832_0/ghc_87.hscpp /tmp/ghc9832_0/ghc_86.hscpp /tmp/ghc9832_0/ghc_85.hscpp /tmp/ghc9832_0/ghc_84.hscpp /tmp/ghc9832_0/ghc_83.hscpp /tmp/ghc9832_0/ghc_82.hscpp /tmp/ghc9832_0/ghc_81.hscpp /tmp/ghc9832_0/ghc_80.hscpp /tmp/ghc9832_0/ghc_79.hscpp /tmp/ghc9832_0/ghc_78.hscpp /tmp/ghc9832_0/ghc_77.hscpp /tmp/ghc9832_0/ghc_76.hscpp /tmp/ghc9832_0/ghc_75.hscpp /tmp/ghc9832_0/ghc_74.hscpp /tmp/ghc9832_0/ghc_73.hscpp /tmp/ghc9832_0/ghc_72.hscpp /tmp/ghc9832_0/ghc_71.hscpp /tmp/ghc9832_0/ghc_70.hscpp /tmp/ghc9832_0/ghc_69.hscpp /tmp/ghc9832_0/ghc_68.hscpp /tmp/ghc9832_0/ghc_67.hscpp /tmp/ghc9832_0/ghc_66.hscpp /tmp/ghc9832_0/ghc_65.hscpp /tmp/ghc9832_0/ghc_64.hscpp /tmp/ghc9832_0/ghc_63.hscpp /tmp/ghc9832_0/ghc_62.hscpp /tmp/ghc9832_0/ghc_61.hscpp /tmp/ghc9832_0/ghc_60.hscpp /tmp/ghc9832_0/ghc_59.hscpp /tmp/ghc9832_0/ghc_58.hscpp /tmp/ghc9832_0/ghc_57.hscpp /tmp/ghc9832_0/ghc_56.hscpp /tmp/ghc9832_0/ghc_55.hscpp /tmp/ghc9832_0/ghc_54.hscpp /tmp/ghc9832_0/ghc_53.hscpp /tmp/ghc9832_0/ghc_52.hscpp /tmp/ghc9832_0/ghc_51.hscpp /tmp/ghc9832_0/ghc_50.hscpp /tmp/ghc9832_0/ghc_49.hscpp /tmp/ghc9832_0/ghc_48.hscpp /tmp/ghc9832_0/ghc_47.hscpp /tmp/ghc9832_0/ghc_46.hscpp /tmp/ghc9832_0/ghc_45.hscpp /tmp/ghc9832_0/ghc_44.hscpp /tmp/ghc9832_0/ghc_43.hscpp /tmp/ghc9832_0/ghc_42.hscpp /tmp/ghc9832_0/ghc_41.hscpp /tmp/ghc9832_0/ghc_40.hscpp /tmp/ghc9832_0/ghc_39.hscpp /tmp/ghc9832_0/ghc_38.hscpp /tmp/ghc9832_0/ghc_37.hscpp /tmp/ghc9832_0/ghc_36.hscpp /tmp/ghc9832_0/ghc_35.hscpp /tmp/ghc9832_0/ghc_34.hscpp /tmp/ghc9832_0/ghc_33.hscpp /tmp/ghc9832_0/ghc_32.hscpp /tmp/ghc9832_0/ghc_31.hscpp /tmp/ghc9832_0/ghc_30.hscpp /tmp/ghc9832_0/ghc_29.hscpp /tmp/ghc9832_0/ghc_28.hscpp /tmp/ghc9832_0/ghc_27.hscpp /tmp/ghc9832_0/ghc_26.hscpp /tmp/ghc9832_0/ghc_25.hscpp /tmp/ghc9832_0/ghc_24.hscpp /tmp/ghc9832_0/ghc_23.hscpp /tmp/ghc9832_0/ghc_22.hscpp /tmp/ghc9832_0/ghc_21.hscpp /tmp/ghc9832_0/ghc_20.hscpp /tmp/ghc9832_0/ghc_19.hscpp /tmp/ghc9832_0/ghc_18.hscpp /tmp/ghc9832_0/ghc_17.hscpp /tmp/ghc9832_0/ghc_16.hscpp /tmp/ghc9832_0/ghc_15.hscpp /tmp/ghc9832_0/ghc_14.hscpp /tmp/ghc9832_0/ghc_13.hscpp /tmp/ghc9832_0/ghc_12.hscpp /tmp/ghc9832_0/ghc_11.hscpp /tmp/ghc9832_0/ghc_10.hscpp /tmp/ghc9832_0/ghc_9.hscpp /tmp/ghc9832_0/ghc_8.hscpp /tmp/ghc9832_0/ghc_7.hscpp /tmp/ghc9832_0/ghc_6.hscpp /tmp/ghc9832_0/ghc_5.hscpp /tmp/ghc9832_0/ghc_4.hscpp /tmp/ghc9832_0/ghc_3.hscpp /tmp/ghc9832_0/ghc_2.hscpp /tmp/ghc9832_0/ghc_1.hscpp
+ Warning: deleting non-existent /tmp/ghc9832_0/ghc_101.hscpp
+ *** Deleting temp dirs:
+ Deleting: /tmp/ghc9832_0
+ /usr/local/bin/ghc returned ExitFailure 1
+
+"""]]
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+Building without Assistant and Webapps flags work.
+
+> Fixed building without S3. [[done]] --[[Joey]]
diff --git a/doc/bugs/openbsd_-_Assistant__47__WebApp__47__Configurators__47__AWS.hs:79:0:_-_error:_missing_binary_operator_before_token___34____40____34__/comment_1_9ff4036e726bf5eda8150ee167b1228b._comment b/doc/bugs/openbsd_-_Assistant__47__WebApp__47__Configurators__47__AWS.hs:79:0:_-_error:_missing_binary_operator_before_token___34____40____34__/comment_1_9ff4036e726bf5eda8150ee167b1228b._comment
new file mode 100644
index 000000000..6c2cbb417
--- /dev/null
+++ b/doc/bugs/openbsd_-_Assistant__47__WebApp__47__Configurators__47__AWS.hs:79:0:_-_error:_missing_binary_operator_before_token___34____40____34__/comment_1_9ff4036e726bf5eda8150ee167b1228b._comment
@@ -0,0 +1,25 @@
+[[!comment format=mdwn
+ username="jirib@503223f0610c6c66f4e6dc738a5a0b2648c290b1"
+ nickname="jirib"
+ subject="iiuc assistant depends on s3"
+ date="2015-10-02T11:11:13Z"
+ content="""
+iiuc assistant depends on s3 ??
+
+
+[[!format sh \"\"\"
+--- /home/jirib/tmp/sandbox/haskell/git-annex-5.20150930/git-annex.cabal Fri Oct 2 00:53:38 2015
++++ /tmp/git-annex.cabal Fri Oct 2 12:58:15 2015
+@@ -186,7 +186,8 @@ Executable git-annex
+ CPP-Options: -DWITH_WEBDAV
+
+ if flag(Assistant) && ! os(solaris)
+- CPP-Options: -DWITH_ASSISTANT
++ Build-Depends: conduit, conduit-extra, aws (>= 0.9.2), http-client
++ CPP-Options: -DWITH_ASSISTANT -DWITH_S3
+
+ if flag(Assistant)
+ if os(linux) && flag(Inotify)
+
+\"\"\"]]
+"""]]
diff --git a/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_3_0d53226a3991e3685d1311e4b19c4023._comment b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_3_0d53226a3991e3685d1311e4b19c4023._comment
new file mode 100644
index 000000000..a048d31b5
--- /dev/null
+++ b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_3_0d53226a3991e3685d1311e4b19c4023._comment
@@ -0,0 +1,55 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""complications"""
+ date="2015-09-22T18:34:43Z"
+ content="""
+* The "look at incoming merges, and queue downloads of newer versions of
+ present files" approach needs to do something about the case where
+ it's not able to successfully download a newer version immediately.
+
+ If it let the merge proceed, the file would end up not being present
+ anymore, and so a later sync wouldn't know it had been present.
+
+ Failing to get the contents of all changed files could just make the
+ sync fail before it merges, keeping the tree at the earlier version.
+ This might be desirable.
+
+ But, implementing that means changing sync to download file contents
+ before merging, rather than the current merge-first. I'm sure a lot of
+ people *won't* want that. (Ie, I certianly don't.) So, this seems to need
+ to be a new mode for syncing.
+
+ (Such a mode is probably generally useful, aside from this use case.)
+
+* If this was implemented, then when a file is modified, the content
+ of the new file would be present. git-annex already makes it so that,
+ when a file is moved, the content of the file is still present. But,
+ what if a file were first moved and then modified? If that happened in
+ multiple commits, they could be examined in turn (with additional
+ complication and slowdown) to conclude that the content is wanted. But if
+ that happened in a single commit, there's no way to tell that from
+ deleting the old file and adding a new file, whose content would not be
+ automatically wanted.
+
+* The bug report wants git-annex to somehow detect when the user has
+ manually gotten an entire directory tree and start getting new files in
+ that directory too, which seems pretty infeasible. How is git-annex
+ supposed to guess whether you want new files in a directory tree,
+ or just the files that are currently there? What if some files
+ are duplicated amoung 2 directory trees, and one tree ends up complete
+ while the other one doesn't? This seems like a request for mindreading
+ ponies.
+
+* There are many preferred content expressions that fully specify what
+ files are wanted, without using the "present" token. AFAICS,
+ there's no reason to do any of this work when the preferred content
+ expression doesn't include "present".
+
+TBH, I am not at all sure this is implementable anywhere near sanely.
+If I were you, I'd use preferred content to specify the files I want,
+which avoids these complexities and works great. Using metadata to tag
+files and making all tagged files be wanted in the preferred content
+expression is one nice way to go. And metadata is copied over when adding
+a new version of a file, so this tagging approach works across file
+modifications.
+"""]]
diff --git a/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_4_68bd50c6aeffc06d53eda7f38b06edee._comment b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_4_68bd50c6aeffc06d53eda7f38b06edee._comment
new file mode 100644
index 000000000..2b35b662d
--- /dev/null
+++ b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_4_68bd50c6aeffc06d53eda7f38b06edee._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2015-09-22T19:18:09Z"
+ content="""
+Broke part out into [[todo/deferred_update_mode]]
+"""]]
diff --git a/doc/bugs/sync-git-annex_branch_not_syncing_in_the_assistant/comment_1_b832288844a3e7e944fa08a6edb97d29._comment b/doc/bugs/sync-git-annex_branch_not_syncing_in_the_assistant/comment_1_b832288844a3e7e944fa08a6edb97d29._comment
new file mode 100644
index 000000000..f06ebdaa7
--- /dev/null
+++ b/doc/bugs/sync-git-annex_branch_not_syncing_in_the_assistant/comment_1_b832288844a3e7e944fa08a6edb97d29._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-21T19:08:28Z"
+ content="""
+The assistant merges the synced/git-annex branch whenever it detects (via
+inotify) that a change has been made to that git ref.
+
+I can't reproduce a problem from the information you've given. With
+`foo -> bar <- quux`, and assistants running on foo and quux, any file
+written to foo more or less immediately syncs to quux, and the git-annex
+branch is merged.
+
+Even when I stop the assistant running on foo, and manually run
+`git push bar git-annex:synced/git-annex`, quux immediately notices that
+bar has received that synced/git-annex, and fetches and merges it into its
+own git-annex branch.
+"""]]
diff --git a/doc/bugs/sync-git-annex_branch_not_syncing_in_the_assistant/comment_2_fbfc8929497f609916d9f3e5a0a9b531._comment b/doc/bugs/sync-git-annex_branch_not_syncing_in_the_assistant/comment_2_fbfc8929497f609916d9f3e5a0a9b531._comment
new file mode 100644
index 000000000..d21e584a6
--- /dev/null
+++ b/doc/bugs/sync-git-annex_branch_not_syncing_in_the_assistant/comment_2_fbfc8929497f609916d9f3e5a0a9b531._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-09-21T19:21:30Z"
+ content="""
+Note that I'm assuming that bar is a remote of both foo and of quux.
+That seems like a reasonable reading of what you described, and is a
+reasonable configuration, but perhaps you were trying to describe some
+other configuration.
+
+In [[forum/mesh_configurations]] you seem to instead
+describe a chain of remotes, where bar is a remote of foo, and quux is a
+remote of bar: `foo -> bar -> quux`. In this configuration, running the assistant on
+foo and quux, but not on bar, would not result in changes made on quux
+ever getting to foo, because quux has no way to push objects to bar. So, I
+don't think that's the configuration you meant either. But lack of clarity
+in bug report makes it hard to know.
+"""]]
diff --git a/doc/bugs/the_assistant_fail_to_correctly_add_or_sync_ssh_remote_with_non_ascii_letter_in_the_directory.mdwn b/doc/bugs/the_assistant_fail_to_correctly_add_or_sync_ssh_remote_with_non_ascii_letter_in_the_directory.mdwn
new file mode 100644
index 000000000..179e353c8
--- /dev/null
+++ b/doc/bugs/the_assistant_fail_to_correctly_add_or_sync_ssh_remote_with_non_ascii_letter_in_the_directory.mdwn
@@ -0,0 +1,40 @@
+### Please describe the problem.
+I've tried to setup a remote using assistant, but it failed to correctly sync apparently because there is a "è" in the directory
+
+### What steps will reproduce the problem?
+run the webapp
+use "Add another directory"
+then Remote Server
+add host name, user name password and directory as "Bibliothèque calibre" (to a repository that already exists)
+
+the remote is added as metadata only and the assistant will try to upload every file to it every time it is restarted.
+
+if a symlink is created named "calibre library", and is used instead, there is no problem.
+
+### What version of git-annex are you using? On what operating system?
+it is git-annex version: 5.20150916-1 on debian/sid
+
+### Please provide any additional information below.
+
+the log is full of:
+[[!format sh """
+# If you can, paste a complete transcript of the problem occurring here.
+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
+ssh: Could not resolve hostname git-annex-toubib.lot-of-stuff.info-moi_22_biblioth%c3%a8que.20calibre: Name or service not known
+ssh: Could not resolve hostname git-annex-volesprit.lot-of-stuff.info-moi_22_biblioth%c3%a8que.20calibre: Name or service not known
+ssh: Could not resolve hostname git-annex-toubib.lot-of-stuff.info-moi_22_biblioth%c3%a8que.20calibre: Name or service not known
+ssh: Could not resolve hostname git-annex-volesprit.lot-of-stuff.info-moi_22_biblioth%c3%a8que.20calibre: Name or service not known
+ssh: Could not resolve hostname git-annex-toubib.lot-of-stuff.info-moi_22_biblioth%c3%a8que.20calibre: Name or service not known
+sssh: Could not resolve hostname git-annex-toubib.lot-of-stuff.info-moi_22_biblioth%c3%a8que.20calibre: Name or service not known
+ssh: Could not resolve hostname git-annex-volesprit.lot-of-stuff.info-moi_22_biblioth%c3%a8que.20calibre: Name or service not known
+ssh: Could not resolve hostname git-annex-toubib.lot-of-stuff.info-moi_22_biblioth%c3%a8que.20calibre: Name or service not known
+ssh: Could not resolve hostname git-annex-volesprit.lot-of-stuff.info-moi_22_biblioth%c3%a8que.20calibre: Name or service not known
+ssh: Could not resolve hostname git-annex-toubib.lot-of-stuff.info-moi_22_biblioth%c3%a8que.2ssh: Could not resolve hostname git-annex-volesprit.lot-of-stuff.info-m
+
+
+# End of transcript or log.
+"""]]
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+Adding remote that use only ascii letter work realy well with the webapp.
diff --git a/doc/bugs/unannexed_files_are_immediately_re-annexed_by_assistant.mdwn b/doc/bugs/unannexed_files_are_immediately_re-annexed_by_assistant.mdwn
index c148acd2f..fd9f08ae4 100644
--- a/doc/bugs/unannexed_files_are_immediately_re-annexed_by_assistant.mdwn
+++ b/doc/bugs/unannexed_files_are_immediately_re-annexed_by_assistant.mdwn
@@ -2,3 +2,5 @@
When using “git annex unlock”, the assistant is clever enough not to immediately re-add the corresponding files. When using “git annex unannex”, however, the assistant goes on to re-add the files right away. It would be convenient if this case were also handled likewise.
git-annex 5.20150508
+
+> [[done]]; cannot be implemented. --[[Joey]]
diff --git a/doc/bugs/unannexed_files_are_immediately_re-annexed_by_assistant/comment_1_c9e7a23ae3d3a33944b083cbf9fcbc17._comment b/doc/bugs/unannexed_files_are_immediately_re-annexed_by_assistant/comment_1_c9e7a23ae3d3a33944b083cbf9fcbc17._comment
new file mode 100644
index 000000000..6248d3983
--- /dev/null
+++ b/doc/bugs/unannexed_files_are_immediately_re-annexed_by_assistant/comment_1_c9e7a23ae3d3a33944b083cbf9fcbc17._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-22T16:08:29Z"
+ content="""
+There's no difference between an unannexed file and a new file,
+other than some old versions of the unannexed file in past revs of the git
+history.
+
+So, this cannot be implemented. If it were, deleting an annexed
+file and then putting a new file in its place with the same filename
+(and perhaps content) would appear identical to the assistant as unannexing
+a file, and it would not add it. But we absolutely want to add the
+file back in that case.
+
+Suggest that, if you want the assistant to not add files for a while,
+you temporarily stop it.
+"""]]
diff --git a/doc/bugs/wget_invocation_should_get_timeout_options/comment_1_a1126fe3f8ab74d623204f98c30dd052._comment b/doc/bugs/wget_invocation_should_get_timeout_options/comment_1_a1126fe3f8ab74d623204f98c30dd052._comment
new file mode 100644
index 000000000..147051498
--- /dev/null
+++ b/doc/bugs/wget_invocation_should_get_timeout_options/comment_1_a1126fe3f8ab74d623204f98c30dd052._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-09T18:03:27Z"
+ content="""
+Well, if any operation that gets a file stalls for some reason, then yes,
+everything stalls.
+
+wget has various options like --read-timeout, but I don't see how git-annex
+could guess at sane defaults to use for those. If there are sane defaults
+for those options, wget probably already implements them. Indeed,
+it seems it already defaults --read-timeout to 900 seconds.
+
+You can of course pass such options if you want to.
+
+So, I'm not clear what's being asked for here, or how it's a bug in
+git-annex at all.
+"""]]
diff --git a/doc/bugs/windows_installer_seems_have_been_broken.mdwn b/doc/bugs/windows_installer_seems_have_been_broken.mdwn
new file mode 100644
index 000000000..23959be08
--- /dev/null
+++ b/doc/bugs/windows_installer_seems_have_been_broken.mdwn
@@ -0,0 +1,10 @@
+### Please describe the problem.
+
+decided to upgrade git-annex in our test virtualbox windows... upon upgrade (just running installer again with the default location for git), annex is not longer available: http://www.onerussian.com/tmp/gkrellShoot_09-17-15_105547.png
+Replicated on another similar instance
+
+### What steps will reproduce the problem?
+
+download exe from https://downloads.kitenet.net/git-annex/windows/current/ (btw I think I noted it reduced in size noteably)
+
+> [[done]] per my comment --[[Joey]]
diff --git a/doc/bugs/windows_installer_seems_have_been_broken/comment_1_df8267a58cfa4685728e32115bbde81b._comment b/doc/bugs/windows_installer_seems_have_been_broken/comment_1_df8267a58cfa4685728e32115bbde81b._comment
new file mode 100644
index 000000000..fc2e41932
--- /dev/null
+++ b/doc/bugs/windows_installer_seems_have_been_broken/comment_1_df8267a58cfa4685728e32115bbde81b._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-18T16:25:34Z"
+ content="""
+Git for Windows is now needed; support for msysgit has been dropped
+as both can't be supported in the same package. This is documented
+in the changelog and the install/Windows page.
+"""]]
diff --git a/doc/bugs/windows_ssh_webapp_password_entry_broken.mdwn b/doc/bugs/windows_ssh_webapp_password_entry_broken.mdwn
index 0ab236095..1b6f41e2c 100644
--- a/doc/bugs/windows_ssh_webapp_password_entry_broken.mdwn
+++ b/doc/bugs/windows_ssh_webapp_password_entry_broken.mdwn
@@ -4,4 +4,8 @@ entering a password when adding a ssh remote.
Using ssh on windows with an existing remote does work. So as a workaround,
set up a passwordless ssh key that can log into the ssh server. --[[Joey]]
+> I have a `winprocfix` branch that uses process-1.3 which has been
+> enhanced to allow fixing this. Merging is currently blocked on
+> <https://github.com/pcapriotti/optparse-applicative/issues/153> --[[Joey]]
+>
> [[fixed|done]] --[[Joey]]
diff --git a/doc/builds.mdwn b/doc/builds.mdwn
index 3d83c90d5..0e6bc7ccd 100644
--- a/doc/builds.mdwn
+++ b/doc/builds.mdwn
@@ -12,6 +12,9 @@
<h2>Linux armel</h2>
<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/armel/build-version">
</iframe>
+<h2>Linux i386-ancient</h2>
+<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/i386-ancient/build-version">
+</iframe>
<h2>Android</h2>
<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/android/4.3/build-version">
</iframe>
@@ -34,6 +37,9 @@
<h2>Linux armel</h2>
<iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/armel/">
</iframe>
+<h2>Linux i386-ancient</h2>
+<iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/i386-ancient/">
+</iframe>
<h2>Android</h2>
<iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/android/">
</iframe>
@@ -45,3 +51,5 @@
<h2><a href="https://buildd.debian.org/status/package.php?p=git-annex&suite=sid">Debian</a></h2>
<iframe width=1024 scrolling=no height=500px frameborder=0 marginheight=0 marginwidth=0 src="https://buildd.debian.org/status/package.php?p=git-annex&suite=sid">
</iframe>
+<iframe width=1024 scrolling=yes height=500px frameborder=0 marginheight=0 marginwidth=0 src="http://matrix.hackage.haskell.org/package/git-annex">
+</iframe>
diff --git a/doc/coding_style/comment_3_61c178b997dd044f3531303913f8fa91._comment b/doc/coding_style/comment_3_61c178b997dd044f3531303913f8fa91._comment
new file mode 100644
index 000000000..c0a566158
--- /dev/null
+++ b/doc/coding_style/comment_3_61c178b997dd044f3531303913f8fa91._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="Don"
+ subject="Style for man pages?"
+ date="2015-09-28T10:00:45Z"
+ content="""
+Could you add some suggestions for editing the .mdwn files? I'd like to help clean up a few (really minor) things I noticed, but I don't want to make more work for you with the changes I make. One thing I'm not sure about is where to set my fill column when editing--I can't seem to pick any single value (79? 80?) that doesn't make some paragraphs change when I rewrap them. Also, it might be helpful to have a quick guide for when you surround commands and other computer-y words with quotes, backticks, or nothing at all.
+
+"""]]
diff --git a/doc/coding_style/comment_4_433b7ba5e51e746f6b033ebb5c0e50a2._comment b/doc/coding_style/comment_4_433b7ba5e51e746f6b033ebb5c0e50a2._comment
new file mode 100644
index 000000000..118a20caf
--- /dev/null
+++ b/doc/coding_style/comment_4_433b7ba5e51e746f6b033ebb5c0e50a2._comment
@@ -0,0 +1,22 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""man page style"""
+ date="2015-09-29T15:20:10Z"
+ content="""
+Well, I don't always word-wrap paras when re-editing them, and several
+people have had their hands on the man page and may have different wrapping
+settings.
+
+My suggestion would be, if you need to re-wrap, or generally make
+whitespace changes, do it in a separate commit from other changes.
+Similarly, make spelling corrections in a separate commit from any
+substance changes.
+
+Note that you can push man page commits directly to this site via git://
+protocol, so it's not going to use my time as long as there's a reasonable
+commit message.
+
+Use backticks around any command name or fragment of a command line.
+Use quotes around program output, or other values that are not command
+names or switch names.
+"""]]
diff --git a/doc/design/assistant/polls/prioritizing_special_remotes.mdwn b/doc/design/assistant/polls/prioritizing_special_remotes.mdwn
index 1b94c2eef..0da8623c4 100644
--- a/doc/design/assistant/polls/prioritizing_special_remotes.mdwn
+++ b/doc/design/assistant/polls/prioritizing_special_remotes.mdwn
@@ -6,7 +6,7 @@ locally paired systems, and remote servers with rsync.
Help me prioritize my work: What special remote would you most like
to use with the git-annex assistant?
-[[!poll open=yes 18 "Amazon S3 (done)" 13 "Amazon Glacier (done)" 10 "Box.com (done)" 74 "My phone (or MP3 player)" 27 "Tahoe-LAFS" 16 "OpenStack SWIFT" 36 "Google Drive"]]
+[[!poll open=yes 18 "Amazon S3 (done)" 13 "Amazon Glacier (done)" 10 "Box.com (done)" 74 "My phone (or MP3 player)" 27 "Tahoe-LAFS" 16 "OpenStack SWIFT" 37 "Google Drive"]]
This poll is ordered with the options I consider easiest to build
listed first. Mostly because git-annex already supports them and they
diff --git a/doc/design/encryption.mdwn b/doc/design/encryption.mdwn
index cc0dd1684..fd320749f 100644
--- a/doc/design/encryption.mdwn
+++ b/doc/design/encryption.mdwn
@@ -26,7 +26,7 @@ The basis of this scheme was originally developed by Lars Wirzenius et al
Data is encrypted by GnuPG, using a symmetric cipher. The cipher is
generated by GnuPG when the special remote is created. By default the
best entropy pool is used, hence the generation may take a while; One
-can use `initremote` with `highRandomQuality=false` or `--fast` options
+can use `initremote` with the `--fast` option
to speed up things, but at the expense of using random numbers of a
lower quality. The generated cipher is then checked into your git
repository, encrypted using one or more OpenPGP public keys. This scheme
diff --git a/doc/design/external_special_remote_protocol.mdwn b/doc/design/external_special_remote_protocol.mdwn
index 76e57bc69..23fd66eb6 100644
--- a/doc/design/external_special_remote_protocol.mdwn
+++ b/doc/design/external_special_remote_protocol.mdwn
@@ -134,7 +134,7 @@ replying with `UNSUPPORTED-REQUEST` is acceptable.
(without downloading it). The remote replies with one of `CHECKURL-FAILURE`,
`CHECKURL-CONTENTS`, or `CHECKURL-MULTI`.
* `WHEREIS Key`
- Asks the remote to provide any information it can about ways to access
+ Asks the remote to provide additional information about ways to access
the content of a key stored in it, such as eg, public urls.
This will be displayed to the user by eg, `git annex whereis`. The remote
replies with `WHEREIS-SUCCESS` or `WHEREIS-FAILURE`.
diff --git a/doc/design/external_special_remote_protocol/comment_18_a0ed457b1b0d71747b6cf0c45897b5e1._comment b/doc/design/external_special_remote_protocol/comment_18_a0ed457b1b0d71747b6cf0c45897b5e1._comment
new file mode 100644
index 000000000..f56fa6410
--- /dev/null
+++ b/doc/design/external_special_remote_protocol/comment_18_a0ed457b1b0d71747b6cf0c45897b5e1._comment
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""re: Stream encoding"""
+ date="2015-09-09T20:44:38Z"
+ content="""
+@sjvdwalt, git-annex does not specify or expect any character encoding to be used
+for this protocol. A robust external special remote shouldn't assume any
+particular character encoding, either.
+
+Lines will be terminated with '\n' (0xA), and words in lines are
+delimited by an ascii space (0x20). The keywords in the protocol are ascii
+too of course. Any values can contain an arbitrary sequence of bytes that may
+or may not be able to be decoded using the current character encoding.
+
+IIRC, character encodings like UTF8 that encode a character to multiple
+bytes avoid ever using 0x0 to 0xFF when doing so. So, every ascii space and
+newline are unambiguously such, and it's safe to split on them even though
+no encoding is specified.
+"""]]
diff --git a/doc/design/external_special_remote_protocol/comment_19_89d532a5013af24f15a0d003cbfbab25._comment b/doc/design/external_special_remote_protocol/comment_19_89d532a5013af24f15a0d003cbfbab25._comment
new file mode 100644
index 000000000..1a4c180aa
--- /dev/null
+++ b/doc/design/external_special_remote_protocol/comment_19_89d532a5013af24f15a0d003cbfbab25._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""re: WHEREIS -- is it better to just report failure to avoid duplicates?"""
+ date="2015-09-09T21:03:13Z"
+ content="""
+There's no point in implementing WHEREIS if it's going to reply with the
+same values that are passed to SETURIPRESENT.
+
+Some special remotes may not need to use SETURIPRESENT to work at
+all, and yet storing data on the remote makes it available from some public
+url. This is the kind of situation where it makes sense to implement
+WHEREIS.
+"""]]
diff --git a/doc/design/external_special_remote_protocol/comment_20_546331742e906a68d760c1bf44be63c4._comment b/doc/design/external_special_remote_protocol/comment_20_546331742e906a68d760c1bf44be63c4._comment
new file mode 100644
index 000000000..7be874d26
--- /dev/null
+++ b/doc/design/external_special_remote_protocol/comment_20_546331742e906a68d760c1bf44be63c4._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="but which of the 3?"
+ date="2015-09-10T03:16:17Z"
+ content="""
+could you express your expert choice explicitly among those 3 choices how I should react to WHEREIS in my (archives) case
+
+1. report the same url
+2. \"spell it out\"
+3. WHEREIS-FAILURE
+
+or really not implement it at all? (we are still at VERSION 1, so I thought that not implementing it might lead to some undesired side-effects)
+"""]]
diff --git a/doc/design/external_special_remote_protocol/comment_21_a8e8255516dc4741439615fa43b71829._comment b/doc/design/external_special_remote_protocol/comment_21_a8e8255516dc4741439615fa43b71829._comment
new file mode 100644
index 000000000..f9183fe28
--- /dev/null
+++ b/doc/design/external_special_remote_protocol/comment_21_a8e8255516dc4741439615fa43b71829._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 21"""
+ date="2015-09-10T16:33:10Z"
+ content="""
+As the documentation says, it's fine to not implement WHEREIS if you don't
+need it.
+"""]]
diff --git a/doc/design/metadata.mdwn b/doc/design/metadata.mdwn
index 35e45f811..151ad0ac0 100644
--- a/doc/design/metadata.mdwn
+++ b/doc/design/metadata.mdwn
@@ -79,7 +79,7 @@ subdirs.
# other uses for metadata
-Users are not limited to view branches.
+Uses are not limited to view branches.
`git annex checkoutmeta year=2014 talk` in a subdir of master could create the
same tree of files filter would. The user can then commit that if desired.
diff --git a/doc/devblog/day_315__scrambling.mdwn b/doc/devblog/day_315__scrambling.mdwn
new file mode 100644
index 000000000..5a6f0441b
--- /dev/null
+++ b/doc/devblog/day_315__scrambling.mdwn
@@ -0,0 +1,5 @@
+Today was a scramble to get caught up after weeks away. Got the message
+backlog down from over 160 to 123. Fixed two reversions, worked around a
+[strange bug](https://github.com/yesodweb/persistent/issues/474),
+and implemented support for the `gpg.program` configuration, and made
+several smaller improvements.
diff --git a/doc/devblog/day_316-318__chasing_dependencies_and_todos.mdwn b/doc/devblog/day_316-318__chasing_dependencies_and_todos.mdwn
new file mode 100644
index 000000000..9c656d079
--- /dev/null
+++ b/doc/devblog/day_316-318__chasing_dependencies_and_todos.mdwn
@@ -0,0 +1,24 @@
+Seems that Git for Windows was released a few weeks ago, replacing msysgit.
+There were a couple problems using git-annex with that package of git,
+which I fixed on Thursday. The next release of git-annex won't work with
+msysgit any longer though; only with Git for Windows.
+
+On Friday, I improved the Windows package further, making it work even when
+git is not added to the system PATH. In such an installation, git-annex
+will now work inside the "git bash" window, and I even got the webapp
+starting from the menu working without git in PATH.
+
+----
+
+In other dependency fun, the daily builds for Linux got broken due to a
+glibc bug in Debian unstable/testing, which makes the bundled curl and ssh
+segfault. With some difficulty I tracked that down, and it turns out the
+bug has been [fixed upstream](https://sourceware.org/bugzilla/show_bug.cgi?id=16381)
+for quite a while. The daily builds are now using the fixed glibc 2.21.
+
+----
+
+Today, got back to making useful improvements, rather than chasing
+dependencies. Improved the bash completion for remotes and backends,
+made annex.hardlink be used more, and made special remotes that are
+configured with autoenable=true get automatically enabled by `git annex init`.
diff --git a/doc/devblog/day_319__release_day.mdwn b/doc/devblog/day_319__release_day.mdwn
new file mode 100644
index 000000000..567950165
--- /dev/null
+++ b/doc/devblog/day_319__release_day.mdwn
@@ -0,0 +1,6 @@
+Made the release this morning, first one in 3 weeks. A fair lot of good
+stuff in there.
+
+Just in time for the release, git-annex has support for
+[Ceph](http://ceph.com/). Thanks to Mesar Hameed for building
+[the external special remote](https://github.com/mhameed/git-annex-remote-ceph)!
diff --git a/doc/devblog/day_320__caught_up.mdwn b/doc/devblog/day_320__caught_up.mdwn
new file mode 100644
index 000000000..8c8c85ae1
--- /dev/null
+++ b/doc/devblog/day_320__caught_up.mdwn
@@ -0,0 +1,13 @@
+I've mostly been chewing through old and new bug reports and support
+requests that past several days. The backlog is waaay low now -- only 82
+messages! Just in time for me to go on another trip, to Louisville on
+Thursday.
+
+Amazon S3 added an "Infrequent Access" storage class last week, and I got a
+patch into the haskell-aws library to support that, as well as partially
+supporting Google Nearline. That patch was accepted today, and git-annex is
+ready to use the new version of the library as soon as it's released.
+
+At the end of today, I found myself rewriting `git annex status` to parse
+and adjust the output of `git status --short`. This new method makes it
+much more capable than before, including displaying Added files.
diff --git a/doc/devblog/day_321__download_verification.mdwn b/doc/devblog/day_321__download_verification.mdwn
new file mode 100644
index 000000000..e8c944364
--- /dev/null
+++ b/doc/devblog/day_321__download_verification.mdwn
@@ -0,0 +1,13 @@
+While at the DerbyCon security conference, I got to thinking about
+verifying objects that git-annex downloads from remotes. This can be
+expensive for big files, so git-annex has never done it at download time,
+instead deferring it to fsck time. But, that is a divergence from git,
+which always verifies checksums of objects it receives. So, it violates
+least surprise for git-annex to not verify checksums too. And this could
+weaken security in some use cases.
+
+So, today I changed that. Now whenever git-annex accepts an object into
+.git/annex/objects, it first verifies its checksum and size. I did add a
+setting to disable that and get back the old behavior: `git config
+annex.verify false`, and there's also a per-remote setting if you want to
+verify content from some remotes but not others.
diff --git a/doc/devblog/day_321__download_verification/comment_1_424367fba4db56f4699952572bd3d605._comment b/doc/devblog/day_321__download_verification/comment_1_424367fba4db56f4699952572bd3d605._comment
new file mode 100644
index 000000000..447bd3943
--- /dev/null
+++ b/doc/devblog/day_321__download_verification/comment_1_424367fba4db56f4699952572bd3d605._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="spwhitton"
+ subject="comment 1"
+ date="2015-10-02T04:13:07Z"
+ content="""
+It might be nice to set `annex.verify-threshold` to verify all files below a certain size. This could default to 500MB.
+"""]]
diff --git a/doc/devblog/day_321__download_verification/comment_2_926cc165e99f2e125c909bd706460a05._comment b/doc/devblog/day_321__download_verification/comment_2_926cc165e99f2e125c909bd706460a05._comment
new file mode 100644
index 000000000..a75caf535
--- /dev/null
+++ b/doc/devblog/day_321__download_verification/comment_2_926cc165e99f2e125c909bd706460a05._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="spwhitton"
+ subject="comment 2"
+ date="2015-10-02T04:15:48Z"
+ content="""
+I mean: *only* files below that size.
+"""]]
diff --git a/doc/devblog/day_321__download_verification/comment_3_fb0ed50c27a493c3494bf2efbf9a9c5d._comment b/doc/devblog/day_321__download_verification/comment_3_fb0ed50c27a493c3494bf2efbf9a9c5d._comment
new file mode 100644
index 000000000..657b61bac
--- /dev/null
+++ b/doc/devblog/day_321__download_verification/comment_3_fb0ed50c27a493c3494bf2efbf9a9c5d._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="encryptio"
+ subject="comment 3"
+ date="2015-10-03T21:09:31Z"
+ content="""
+Nice! I actually had been doing `git annex get $file && git annex fsck $file` in all my scripts already because I had run into an issue where a bad file got replicated everywhere, and the only good copy I had was `drop`ped before I realized. This would have caught it. Thanks!
+"""]]
diff --git a/doc/encryption/comment_3_46e64e4856975706e06e2a012a5d8f67._comment b/doc/encryption/comment_3_46e64e4856975706e06e2a012a5d8f67._comment
new file mode 100644
index 000000000..eba9a883c
--- /dev/null
+++ b/doc/encryption/comment_3_46e64e4856975706e06e2a012a5d8f67._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="whlabratz@d10941ab2681deb87122fd8f6da51f3dcdb8dbe5"
+ nickname="whlabratz"
+ subject="Listing GPG keys enabled for a remote with hybrid encryption"
+ date="2015-09-15T22:37:35Z"
+ content="""
+Is there a straight-forward way to list which GPG keys are enabled for a particular remote?
+"""]]
diff --git a/doc/encryption/comment_4_fe8b181adef9a39a039ff96a0d587188._comment b/doc/encryption/comment_4_fe8b181adef9a39a039ff96a0d587188._comment
new file mode 100644
index 000000000..4b8014f00
--- /dev/null
+++ b/doc/encryption/comment_4_fe8b181adef9a39a039ff96a0d587188._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""listing gpg keys"""
+ date="2015-09-17T17:01:38Z"
+ content="""
+Run "git annex info specialremote" and it will describe the encryption
+settings of the remote, including gpg keys where applicable.
+
+Needs a fairly recent git-annex. `git show git-annex:remote.log` can
+also be used.
+"""]]
diff --git a/doc/forum/Add_file_to_git_index_while_in_direct_mode.mdwn b/doc/forum/Add_file_to_git_index_while_in_direct_mode.mdwn
new file mode 100644
index 000000000..e1678e95c
--- /dev/null
+++ b/doc/forum/Add_file_to_git_index_while_in_direct_mode.mdwn
@@ -0,0 +1,20 @@
+Hi,
+
+Is there a preferred way to add files to git's index (instead of the annex) while in direct mode?
+
+I am trying to use git-annex for scientific data. On linux and mac in indirect mode, the git workflow is basically unchanged, and I really like the way git annex works. Unfortunately when I use git-annex on Windows, I have not found a good way to add things to git's tree.
+
+I've tried two things:
+
+```
+$ git annex proxy -- git add smallfile
+```
+
+This is slow because it has to copy things over to create a work tree
+
+```
+$ git config annex.largefiles="*.pdf or *.h5"
+$ git annex add largefile.pdf
+```
+
+This doesn't seem to work as well as I'd like either. I'd like the equivalent of a ```git add``` command in direct mode.
diff --git a/doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_1_3eb43a983eba09f500b776f75b299341._comment b/doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_1_3eb43a983eba09f500b776f75b299341._comment
new file mode 100644
index 000000000..df4fd7655
--- /dev/null
+++ b/doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_1_3eb43a983eba09f500b776f75b299341._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-10T22:02:19Z"
+ content="""
+In what way does setting annex.largefiles and using git annex add not work
+as well as you'd like?
+"""]]
diff --git a/doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_2_6945d9e930e7385f0abe6538622a9aa3._comment b/doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_2_6945d9e930e7385f0abe6538622a9aa3._comment
new file mode 100644
index 000000000..7dc65c2dc
--- /dev/null
+++ b/doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_2_6945d9e930e7385f0abe6538622a9aa3._comment
@@ -0,0 +1,31 @@
+[[!comment format=mdwn
+ username="aloukian@c071735c08bc04266b792aa478ad1bae2d6a8b50"
+ nickname="aloukian"
+ subject="comment 2"
+ date="2015-09-11T00:42:03Z"
+ content="""
+Sorry, I should have clarified. I was not sure how to add a commit message.
+
+I played with a test repo and I think I figured it out. What I tried was this:
+
+```
+$ git init test-repo
+$ touch test.txt
+$ git add test.txt
+$ git commit -m \"initial commit\"
+$ git annex init
+$ git config annex.largefiles=\"*.pdf\"
+$ echo \"updated\" > test.txt
+$ git annex add test.txt
+$ git annex sync -m \"updated test.txt\"
+```
+
+So if I understand correctly, in direct mode
+
+- ```git add``` -> ```git annex add```
+- ```git commit -m MSG``` -> ```git annex sync -m MSG```
+
+```git log``` now shows the right message, but I am still not sure how to check whether a file is in the annex or directly in the git tree. I suppose I could just make aliases for git add and git commit, but I wouldn't be able to add arbitrary files to git annex without playing with annex.largefiles. For example, if I had many small ```.txt``` files and one large file and I wanted to just add that large file to the git annex, I'd have to change the largefiles setting.
+
+Is there a better way of doing this or is loss of functionality intrinsic until Windows symlinks work?
+"""]]
diff --git a/doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_3_8f77b5dcf582e88099b2e6e77563fb11._comment b/doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_3_8f77b5dcf582e88099b2e6e77563fb11._comment
new file mode 100644
index 000000000..e597917e3
--- /dev/null
+++ b/doc/forum/Add_file_to_git_index_while_in_direct_mode/comment_3_8f77b5dcf582e88099b2e6e77563fb11._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2015-09-11T17:39:05Z"
+ content="""
+You can temporarily set annex.largefiles to match no files, while running
+git-annex add, to force it to add the file to git instead of the annex.
+
+git -c annex.largefiles='exclude=*' annex add somefile
+"""]]
diff --git a/doc/forum/Backend_migration_and_special_remotes.mdwn b/doc/forum/Backend_migration_and_special_remotes.mdwn
new file mode 100644
index 000000000..b1cf88511
--- /dev/null
+++ b/doc/forum/Backend_migration_and_special_remotes.mdwn
@@ -0,0 +1,22 @@
+I have a large repository that is backed up to hubiC with the [special remote that I wrote](https://github.com/Schnouki/git-annex-remote-hubic). When I created this repository I used the WORM backend. But as I have some duplicated files I'd like to migrate to SHA256E to avoid storing them twice. However, when migrating a file, its location on the remote is not kept:
+
+ % git annex whereis "2015-07-25 12.28.16.jpg"
+ whereis 2015-07-25 12.28.16.jpg (2 copies)
+ 23fa590d-682d-43be-9851-8ba47186d763 -- [hubic]
+ f6642b89-2a0f-4788-8e13-be540fdfec58 -- baldr [here]
+ ok
+
+ % git annex migrate "2015-07-25 12.28.16.jpg" --backend SHA256E
+ migrate 2015-07-25 12.28.16.jpg ok
+ (recording state in git...)
+
+ % git annex whereis "2015-07-25 12.28.16.jpg"
+ whereis 2015-07-25 12.28.16.jpg (1 copy)
+ f6642b89-2a0f-4788-8e13-be540fdfec58 -- baldr [here]
+ ok
+
+Is there any way to store in the git-annex branch that migrated files are still available on remotes without having to re-upload all of them? hubiC is quite slow and I don't really want to re-upload 90 GB from a DSL connection…
+
+Or would it be possible to add something in the special remote protocol to "move" a key without re-uploading it?
+
+Thanks!
diff --git a/doc/forum/Backend_migration_and_special_remotes/comment_1_cf6d45c43b14719fc5ea41d0cbfb612d._comment b/doc/forum/Backend_migration_and_special_remotes/comment_1_cf6d45c43b14719fc5ea41d0cbfb612d._comment
new file mode 100644
index 000000000..877594007
--- /dev/null
+++ b/doc/forum/Backend_migration_and_special_remotes/comment_1_cf6d45c43b14719fc5ea41d0cbfb612d._comment
@@ -0,0 +1,20 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-18T16:47:02Z"
+ content="""
+A rename operation could be added to the interface for remotes. I suspect
+most remotes wouldn't be able to implement it (could hubic?), but it could
+be used when available.
+
+I'm not sure what to do in the migrate command to make it use such an
+interface though. It could try to move the files to their new names on each
+remote that supports the interface. But what about remotes that cannot be
+accessed?
+
+Could make a `git annex migrate --on remote`, to
+migrate remotes peicemeal. Which would have to look back in the git history
+to find the old key that a file had been migrated from.
+Although then the user has to be careful to specify the same set of
+files that were migrated before.
+"""]]
diff --git a/doc/forum/Can_Not_Sync_to_Git_Repo/comment_14_d2bb44a7607f3b2cddfd98cc2fa456d6._comment b/doc/forum/Can_Not_Sync_to_Git_Repo/comment_14_d2bb44a7607f3b2cddfd98cc2fa456d6._comment
new file mode 100644
index 000000000..de76cc210
--- /dev/null
+++ b/doc/forum/Can_Not_Sync_to_Git_Repo/comment_14_d2bb44a7607f3b2cddfd98cc2fa456d6._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="http://www.ryantm.com/"
+ subject="Possible workaround"
+ date="2015-09-08T14:46:03Z"
+ content="""
+The `git annex checkout annex/direct/master` workaround mentioned above did not work for me, but this did:
+
+git annex indirect
+git annex direct
+
+after that, my repo was on the annex/direct/master branch
+"""]]
diff --git a/doc/forum/Central_server_with_automatically_merged_working_tree.mdwn b/doc/forum/Central_server_with_automatically_merged_working_tree.mdwn
new file mode 100644
index 000000000..8b2bb87d6
--- /dev/null
+++ b/doc/forum/Central_server_with_automatically_merged_working_tree.mdwn
@@ -0,0 +1,30 @@
+I would appreciate some feedback on whether the following scheme is feasible or will prove unworkable. I have a few specific questions at the bottom.
+
+# Components
+* An archive of documents to be shared amongst computers
+* A server that stores the archive and retains all of its contents
+* A set of client machines that store only the files that they need and drop the rest
+
+# Desired behavior
+* Clients will run the assistant to handle sync'ing
+* On the server, the archive should be accessible in the working tree so that other users can read the files (they do not need write access).
+* It should be possible to modify the archive on the server while logged into the server
+* Clients can push and pull data. The server does not push or pull data.
+
+# Basic setup
+## Set up the server and one client
+* Create git annex repos on the client and server
+* Add the server as a remote in the client repo
+
+## Keep the server's working directory up to date
+* Add `git merge synced/master master` to the `annex-content` hook described [here](https://git-annex.branchable.com/git-annex-shell/).
+* Add `git merge synced/master master` to the `post-receive` hook.
+
+## Keep server working tree visible to a different group
+* Set `git config core.sharedrepository group` for the repository
+* Add `chgrp -R shared "$(git rev-parse --show-toplevel)"` to the `annex-content`, `post-receive`, and `post-merge` hooks, where `shared` is the name of the group that you want to be able to access the server files.
+
+# Questions
+* I had to add the `post-receive` hook because updates from the assistant were not trigger the `annex-content` hook. Should they trigger it?
+* Are there downsides to merging `synced/master` like this?
+* If I want to edit files on the server, is it safe to edit them in the repo with this set up? Or should I create a second client repo on the server, check out the necessary files there, and then push them to the server like I would from any other client?
diff --git a/doc/forum/Central_server_with_automatically_merged_working_tree/comment_1_bc850e25e48598a09353850021c6368c._comment b/doc/forum/Central_server_with_automatically_merged_working_tree/comment_1_bc850e25e48598a09353850021c6368c._comment
new file mode 100644
index 000000000..2680a1411
--- /dev/null
+++ b/doc/forum/Central_server_with_automatically_merged_working_tree/comment_1_bc850e25e48598a09353850021c6368c._comment
@@ -0,0 +1,17 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-21T16:42:29Z"
+ content="""
+A way to do this pretty cleanly is described here:
+<http://git-annex.branchable.com/tips/setup_a_public_repository_on_a_web_site/>
+
+The annex-content hook is not meant to be run when a regular git push
+is made to the repository. That would be unnecessarily redundant with
+existing git hooks.
+
+I'd expect it to be pretty safe to edit files in such a repository,
+but you have to keep in mind that if changes are pushed into it at the same
+time as an edit is occuring, you can get into various situations with the
+hooks etc.
+"""]]
diff --git a/doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com.mdwn b/doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com.mdwn
new file mode 100644
index 000000000..0aa122203
--- /dev/null
+++ b/doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com.mdwn
@@ -0,0 +1,3 @@
+I have a private server (a computer at work) which I use as the "central repository" with git-annex. Unfortunately it sometimes goes down and occasionally I can't easilly put it on again (think holidays). So I'd like to use box.com as a backup.
+
+What's the most efficient way to do it? Simply add both my private serer and box.com as "transfer: distributes files to clients" repositiories? I'm afraid that if I do that then box.com will slow things down for me (I haven't tried it yet because I'm literally starting with git-annex today). Ideally I'd like all transfers to/from box.com to be somehow in the background so that they don't interfere with the transfers to/from my private server.
diff --git a/doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com/comment_1_9c357a4a99930936124a58ffe105f87f._comment b/doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com/comment_1_9c357a4a99930936124a58ffe105f87f._comment
new file mode 100644
index 000000000..e159e2e97
--- /dev/null
+++ b/doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com/comment_1_9c357a4a99930936124a58ffe105f87f._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnmF_9CAtfqdZkC4e-_dCX-rK5bqh4RWkw"
+ nickname="Carl"
+ subject="Cost"
+ date="2015-09-26T08:59:39Z"
+ content="""
+If I understand you correctly, the concept of \"cost\" is exactly what you need. You give the box remote a higher cost, and thus you will prefer to download from the remote with a lower cost, when available.
+"""]]
diff --git a/doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com/comment_2_b4aec96cbcd8752f273ecd810400acef._comment b/doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com/comment_2_b4aec96cbcd8752f273ecd810400acef._comment
new file mode 100644
index 000000000..cac39d7bf
--- /dev/null
+++ b/doc/forum/Correct_way_to_use_somewhat_unreliable_private_server_and_box.com/comment_2_b4aec96cbcd8752f273ecd810400acef._comment
@@ -0,0 +1,41 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-09-29T15:42:46Z"
+ content="""
+I'm going to answer this both for the webapp and for command line usage.
+
+webapp:
+
+Drag and drop the box.com remote to be below the remote for your private
+server. This will adjust the cost settings, and let git-annex know it
+should try to get files from your private server first.
+
+Click on "syncing enabled" at any time to toggle it to disabled.
+You could choose to leave box.com disabled most of the time, to avoid files
+being uploaded to it etc. When your private server is not available, you
+can toggle box.com back to enabled to use it temporarily.
+
+command line:
+
+Let's assume the box.com remote is named "box".
+
+You can use `remote.box.annex-cost` in git config, to give that remote a
+higher use-cost than your private server's remote. git-annex will then know
+you prefer using your private server when possible, and so will prefer to
+use it when eg, downloading files. (Same as dragging and dropping in the
+webapp.)
+
+You could configure a cron job (or run the git-annex assistant) on the
+server to send the files on to box.com. Just `git annex enableremote box`
+on the server so it knows how to use that remote. This way, you don't
+need to upload the same file twice to both box.com and your server over
+your home network link, but files will end up in both locations.
+
+Uploading files with `git annex copy --to` can send them to your private
+server. Or, if you want to use `git annex sync --content` or the assistant,
+you could set `remote.box.annex-sync` to false for the box.com
+remote, to prevent sending content to it. When your private server is
+unavailable, you could override that setting temporarily and sync with
+box.com by running `git annex sync --content box`
+"""]]
diff --git a/doc/forum/HowTo_Conflict_Resolution/comment_1_81c06a0590ee828749b8d07e008028bb._comment b/doc/forum/HowTo_Conflict_Resolution/comment_1_81c06a0590ee828749b8d07e008028bb._comment
new file mode 100644
index 000000000..1a1405ccc
--- /dev/null
+++ b/doc/forum/HowTo_Conflict_Resolution/comment_1_81c06a0590ee828749b8d07e008028bb._comment
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-21T16:49:43Z"
+ content="""
+The "variant" names are based on a short hash of the key
+of the file, so there's no way to get from such a name back to the
+repository that the file was added to.
+
+What you can do is, look at the `git log --stat`, and find
+the two conflicting commits, and use git to either revert back to one of
+the two, or reset back to before the automatic merge and manually
+merge the two.
+
+(Of course, this all works best when the repository is
+in indirect mode and you can use any git commands you like to slice and
+dice it. When the repo is direct mode, you might be able to run those
+same git commands via `git annex proxy`)
+"""]]
diff --git a/doc/forum/How_to_define_a_balanced_prefered_content.mdwn b/doc/forum/How_to_define_a_balanced_prefered_content.mdwn
new file mode 100644
index 000000000..1bfbe848b
--- /dev/null
+++ b/doc/forum/How_to_define_a_balanced_prefered_content.mdwn
@@ -0,0 +1,5 @@
+I have 6 drives attached to my box and I am trying to split them in to 2 groups I would like to have 2 balanced groups [1] so each file lands on two of these disks. So assuming i have disks A B C D E F, I want to create two balanced groups A B C and D E F. But I can not figure out how to defined rules using balanced_amoung(group) expression in vicfg. The only place it allows me to use the expression is the group section but how do i define a group that uses a balanced group.
+
+
+
+[1] https://git-annex.branchable.com/design/balanced_preferred_content/
diff --git a/doc/forum/How_to_define_a_balanced_prefered_content/comment_1_d4c94791a5fc7d2e618a7e11bc5db569._comment b/doc/forum/How_to_define_a_balanced_prefered_content/comment_1_d4c94791a5fc7d2e618a7e11bc5db569._comment
new file mode 100644
index 000000000..b53c615da
--- /dev/null
+++ b/doc/forum/How_to_define_a_balanced_prefered_content/comment_1_d4c94791a5fc7d2e618a7e11bc5db569._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnmF_9CAtfqdZkC4e-_dCX-rK5bqh4RWkw"
+ nickname="Carl"
+ subject="Only a design suggestion"
+ date="2015-09-07T17:24:41Z"
+ content="""
+I am pretty sure that balanced preferred content expressions are not implemented, but only a suggested model on how it could be done.
+"""]]
diff --git a/doc/forum/Is_S3___34__Standard-Infrequent_Access__34___storage_class_supported__63__.mdwn b/doc/forum/Is_S3___34__Standard-Infrequent_Access__34___storage_class_supported__63__.mdwn
new file mode 100644
index 000000000..f8760be5d
--- /dev/null
+++ b/doc/forum/Is_S3___34__Standard-Infrequent_Access__34___storage_class_supported__63__.mdwn
@@ -0,0 +1 @@
+Does `git-annex` support retrieving files from S3 if the remote objects have been moved to the "Standard-Infrequent Access" storage class via a AWS lifecyle rule?
diff --git a/doc/forum/Is_S3___34__Standard-Infrequent_Access__34___storage_class_supported__63__/comment_1_ddc2a1f2b1d810a40b459896993d2e8d._comment b/doc/forum/Is_S3___34__Standard-Infrequent_Access__34___storage_class_supported__63__/comment_1_ddc2a1f2b1d810a40b459896993d2e8d._comment
new file mode 100644
index 000000000..44d2f5cd7
--- /dev/null
+++ b/doc/forum/Is_S3___34__Standard-Infrequent_Access__34___storage_class_supported__63__/comment_1_ddc2a1f2b1d810a40b459896993d2e8d._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-21T16:11:30Z"
+ content="""
+Retrieval will work just fine.
+
+As for storing files with this storage class already set, it's implemented
+in the `s3-classes` branch, but merging that is blocked on a patch being
+made to the aws library.
+"""]]
diff --git a/doc/forum/Layout_mismatch_between_symlinks_and_annex_objects.mdwn b/doc/forum/Layout_mismatch_between_symlinks_and_annex_objects.mdwn
new file mode 100644
index 000000000..fe9167e97
--- /dev/null
+++ b/doc/forum/Layout_mismatch_between_symlinks_and_annex_objects.mdwn
@@ -0,0 +1,14 @@
+I have an old repository, and I'm not sure what I have done with it, but it seems to be broken in an interesting fashion.
+
+ $ ls -l pix/image001.jpg
+ lrwxrwxrwx 1 la la 187 Sep 5 11:31 pix/image001.jpg -> ../.git/annex/objects/G7/J7/SHA256-s99372--0458b0b72b394a719b72032971b880a8dfafa65e8048ec6fc6c861fc3ea5e702/SHA256-s99372--0458b0b72b394a719b72032971b880a8dfafa65e8048ec6fc6c861fc3ea5e702
+ $ ls -lL pix/image001.jpg
+ ls: cannot access pix/image001.jpg: No such file or directory
+ $ find .git/annex/objects/ -type f -name '*0458b0b72*'
+ .git/annex/objects/477/75c/SHA256-s99372--0458b0b72b394a719b72032971b880a8dfafa65e8048ec6fc6c861fc3ea5e702/SHA256-s99372--0458b0b72b394a719b72032971b880a8dfafa65e8048ec6fc6c861fc3ea5e702
+ $ git config annex.version
+ 5
+
+So the symlinks use a layout where index directories have two-letter names, but the actual layout in the annex uses directory names with three hexadecimal digits.
+
+Is there some straightforward way to fix this or do I need to figure the index format and hack up a script to convert the annex repository?
diff --git a/doc/forum/Layout_mismatch_between_symlinks_and_annex_objects/comment_1_854786810dc4246cdaa38ff10c55bbca._comment b/doc/forum/Layout_mismatch_between_symlinks_and_annex_objects/comment_1_854786810dc4246cdaa38ff10c55bbca._comment
new file mode 100644
index 000000000..d4565f25b
--- /dev/null
+++ b/doc/forum/Layout_mismatch_between_symlinks_and_annex_objects/comment_1_854786810dc4246cdaa38ff10c55bbca._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="lealanko"
+ subject="comment 1"
+ date="2015-09-06T13:11:44Z"
+ content="""
+I think I figured it out: the repository was originally [[bare|bare repositories]], and I converted it to non-bare manually. But that doesn't work, because bare annex repositories use [[a different directory layout|internals/hashing]].
+
+I can understand why the hex-based layout is preferred (it's more portable), but deliberate incompatibility with the symlinks isn't very nice. I wish there was a way to upgrade the entire repository to a format that used the hex paths for symlinks, so bare and non-bare repositories used the same layout.
+"""]]
diff --git a/doc/forum/Layout_mismatch_between_symlinks_and_annex_objects/comment_2_9134154ba2ef3575c39c7848136b79a9._comment b/doc/forum/Layout_mismatch_between_symlinks_and_annex_objects/comment_2_9134154ba2ef3575c39c7848136b79a9._comment
new file mode 100644
index 000000000..c30ad8999
--- /dev/null
+++ b/doc/forum/Layout_mismatch_between_symlinks_and_annex_objects/comment_2_9134154ba2ef3575c39c7848136b79a9._comment
@@ -0,0 +1,21 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-09-09T18:18:17Z"
+ content="""
+I wish this incompatability didn't exist either, but the transition to use
+consistently 3 letter hash directories would be too much to ask of all the
+users. And there are ways to convert a bare to non-bare that don't have
+this problem, like making a clone and using `git annex move --all --from
+origin`
+
+There's an easy way to finish your conversion from bare to non-bare.
+Just move .git/annex/objects to old-objects, and run `git annex add
+old-objects --backend=SHA256`. That will rename all the files into the right places for a
+non-bare repository, so your existing symlinks will work. You can then
+`rm -rf old-objects` to clean up.
+
+Note that method assumes that SHA256 is the backend of everything in that
+repo. If not, it gets a bit trickier; you'd need to use `git-annex
+setkey'
+"""]]
diff --git a/doc/forum/Trouble_adding_ssh_remote_using_assistant_on_windows/comment_4_9c12c508f62f2e76d09f4ed15af9c74e._comment b/doc/forum/Trouble_adding_ssh_remote_using_assistant_on_windows/comment_4_9c12c508f62f2e76d09f4ed15af9c74e._comment
new file mode 100644
index 000000000..e24dab781
--- /dev/null
+++ b/doc/forum/Trouble_adding_ssh_remote_using_assistant_on_windows/comment_4_9c12c508f62f2e76d09f4ed15af9c74e._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="graboluk@f6de53961ab0f884e203f602f65eb5cdc0fb7513"
+ nickname="graboluk"
+ subject="is it also broken in debian testing?"
+ date="2015-09-25T17:50:32Z"
+ content="""
+I'm using debian testing version 5.20150731. I've set up an account git-annex on my private server, I've checked that I can login to it just fine, but the box \"Testing server...\" is there indefinitely (I'm trying a login with password)
+"""]]
diff --git a/doc/forum/Trying_to_delete_an_S3_repo_fails.mdwn b/doc/forum/Trying_to_delete_an_S3_repo_fails.mdwn
new file mode 100644
index 000000000..6544fd1f3
--- /dev/null
+++ b/doc/forum/Trying_to_delete_an_S3_repo_fails.mdwn
@@ -0,0 +1,3 @@
+[2015-10-03 22:10:53.948377] TransferScanner: warning TransferScanner crashed: unknown response from git cat-file ("refs/heads/git-annex:706/2a9/SHA256E-s13840914--38cdcf384aee777000693f58f1302684bf18f577045c1340d7aeb72b6d6f2233.dmg.log.cnk missing","refs/heads/git-annex:b8f/4d2/SHA256E-s26301635--ce2f215486df83c6ada74a81679ff78f717404d0637bfd51ecbf0330c21db12b.dmg.log")
+
+What exactly is this telling me?
diff --git a/doc/forum/Trying_to_delete_an_S3_repo_fails/comment_1_d8ab7757cd224439d55a18bfec405772._comment b/doc/forum/Trying_to_delete_an_S3_repo_fails/comment_1_d8ab7757cd224439d55a18bfec405772._comment
new file mode 100644
index 000000000..88e301ac7
--- /dev/null
+++ b/doc/forum/Trying_to_delete_an_S3_repo_fails/comment_1_d8ab7757cd224439d55a18bfec405772._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-10-04T19:33:36Z"
+ content="""
+This message suggests that your git repository has somehow lost an object
+that was committed to it. Suggest you run `git annex repair` to fix
+whatever the problem might be.
+"""]]
diff --git a/doc/forum/Trying_to_wrap_my_head_around_git-annex__44___need_some_feedback.mdwn b/doc/forum/Trying_to_wrap_my_head_around_git-annex__44___need_some_feedback.mdwn
new file mode 100644
index 000000000..934617888
--- /dev/null
+++ b/doc/forum/Trying_to_wrap_my_head_around_git-annex__44___need_some_feedback.mdwn
@@ -0,0 +1,39 @@
+So after more than a year I think I am slowly beginning grasping git-annex. I'd like to put all my questions and ideas into this one thread, maybe you guys can help me sort things out. I'll number everything so you're more than welcome to chime in with regards to a particular item only. Happy to get links to read up stuff, don't hesitate to just paste a link if you think it is useful.
+
+ *1.* Right or wrong: I can only "work" with files in "CLIENT" repositories, not with backup, archive or anything else?
+
+ *2.* How does the copying or synching work? Is it comparable to rsync? How good is it at solving conflicts?
+
+ *3.* Can I get some feedback if git-annex is a solution for my scenario?
+
+*I have 1 Macbook, 1 NAS (Freenas running freeBSD) and access to S3 and box.com as well as a few external HDs.*
+My current setup involves a lot of manual copying, (very careful usage of) rsync and basically ends up me having a copy/backup of everything on the NAS and the files I currently work with on my Macbook.
+
+
+*Ideally I'd want to achieve something like this:*
+
+ - Have all files on the NAS
+ - Only have current work files on my Macbook
+ - Use external HDs only when necessary or transferign stuff
+ - S3 and box.com can be used however needed.
+
+ *4.* DOCUMENTS
+So in case I am travelling without Macbook, I use another PC or my Android phone to connect to my router at home via VPN then access a share on my NAS, work on a file, print it, save it back so whenever my MACbook is online again, it syncs the latest version.
+To achieve this with got-annex I guess I need the repository on the NAS to be a client repo, right? But the problem I see is that if I move a sub-folder from Docs into Archive, i.e. a folder of manuals I don't need on my MACbook all the time, it also gets moved out of the client repo on the NAS into an archive repo so how would I access it remotely if necessary?
+Also, talking about archiving, doesn't this get messy if you have a complicated folder structure inside a repo? How would you put stuff back from archives exactly where it was?
+Sorry if this sounds a bit silly but I rely on a very precise folder system, everything is properly placed where I know it will be so if I now drag/drop all sorts of files/folders into archive I'll never figure out what's what again.
+
+ *5.* MUSIC
+This should be fairly easy, all my music is on my NAS and on my macbook, whenever I add music to my macbook it'll automatically sync to the NAS.
+
+ *6.* PICTURES
+This is where it gets complicated.
+I have a folder: Pictures with subfolders for each year, aka 2010, 2011 ... 2015 and inside is a sub folder for each photographed event. Now these pics get too big for my macbook so I'd like all images to be on my NAS, available for access, and to be able to simply archive say 2014. Now the question is if later I remember I need access to a particular event in 2014, can I browse that folder and un-archive that particular folder?
+
+ *7.* Also, say I'd like to be able to take a folder/sub-folder of images with me for external editing on a HD, and when coming back with them I'd like them to be synced back when I plug the HD back in, what type of repository would i have to set this HD to?
+
+ *8.* Obviously I'd need to setup a different repository for each Documents, Pictures, Music with their own settings, right?
+
+ *9.* At the moment it is not possible to have separate number of minimum number of copies per repository?
+
+So, what do you think, is git-annex suitable for my needs? Partially at least?
diff --git a/doc/forum/Trying_to_wrap_my_head_around_git-annex__44___need_some_feedback/comment_1_86a86f1f3ea2e778e4022689391b887b._comment b/doc/forum/Trying_to_wrap_my_head_around_git-annex__44___need_some_feedback/comment_1_86a86f1f3ea2e778e4022689391b887b._comment
new file mode 100644
index 000000000..4ef121bf9
--- /dev/null
+++ b/doc/forum/Trying_to_wrap_my_head_around_git-annex__44___need_some_feedback/comment_1_86a86f1f3ea2e778e4022689391b887b._comment
@@ -0,0 +1,16 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnmF_9CAtfqdZkC4e-_dCX-rK5bqh4RWkw"
+ nickname="Carl"
+ subject="comment 1"
+ date="2015-10-04T17:58:48Z"
+ content="""
+I think it can be a good fit. Let me try to answer some of your questions in the order that seems most reasonable to me
+
+*8* It is not a strict requirement to hav different repos for the different things, but I guess it might simplify things. Plus You can start with one of them and when that is properly set up continue with the next one.
+
+*5* your music solution seems simple enough. Numcopies=2 and everything should work.
+
+*1*, *4*, *9* There is nothing magic with client remotes. It is just a group, that has some default rules. You can create your own groups and also change their rules. For my documents, I have two custom groups, \"offsite\" and \"cloud\". I have set up rules so that files prefer to be in one offsite remote and one cloud remote. However until I had possibility to plug my computer into an off site disc and sync it all files want to be in two cloud remotes.
+
+*4*, *6* I personally do not run the assistant, but do everything on the command line. For me the setup where old things that I will probably never access again lies in an archive folder, if I do need it I can get the file back wit a simple \"git annex get $filename\". For my documents tree I only add files and folder or move folders into an archive folder. (Also note that archive folders can be located anywhere in your file tree, and that you can have arbitrarily many
+"""]]
diff --git a/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__.mdwn b/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__.mdwn
new file mode 100644
index 000000000..99dcc799b
--- /dev/null
+++ b/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__.mdwn
@@ -0,0 +1,6 @@
+Hi, I'm trying to use git annex through git bash on windows, I've installed git (32 bit) and git annex yet I get the error mentioned above.
+
+I've already had a search and have tried sorting out my windows environment paths as well as moving git annex .exe files from cmd to bin, neither of which have fixed the issue. Any ideas?
+
+Thanks
+Joe
diff --git a/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_1_b051dc30bf5a0fc9f5710c664f487ea9._comment b/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_1_b051dc30bf5a0fc9f5710c664f487ea9._comment
new file mode 100644
index 000000000..eba1455f1
--- /dev/null
+++ b/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_1_b051dc30bf5a0fc9f5710c664f487ea9._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-21T16:39:54Z"
+ content="""
+Please make sure you have Git For Windows, and the current version
+5.20150916
+of git-annex installed. msysgit is no longer supported, and any
+older version of git-annex won't work with Git For Windows.
+
+Since you mention git-annex.exe in the cmd directory, I guess
+you probably have an old version installed. The current version
+does not put that file there.
+"""]]
diff --git a/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_2_8775a1483b29e2cc8f0456473c24e51e._comment b/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_2_8775a1483b29e2cc8f0456473c24e51e._comment
new file mode 100644
index 000000000..d757ef7f1
--- /dev/null
+++ b/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_2_8775a1483b29e2cc8f0456473c24e51e._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="dfiorentino@645c87e5e4e39b138b9717d01441dc2e3914fe01"
+ nickname="dfiorentino"
+ subject="“Windows error: &quot;git: 'annex' is not a git command.&quot;” "
+ date="2015-09-22T18:54:38Z"
+ content="""
+I am having the same issue… “Windows error: \"git: 'annex' is not a git command.\"” I downloaded Git for Windows from https://downloads.kitenet.net/git-annex/windows/current/ and ran git-annex-installer.exe - 2015-09-16 11:43 18M
+"""]]
diff --git a/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_3_cbaa3e0fa4e2347332b3929411f60d1d._comment b/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_3_cbaa3e0fa4e2347332b3929411f60d1d._comment
new file mode 100644
index 000000000..e68f9b080
--- /dev/null
+++ b/doc/forum/Windows_error:___34__git:___39__annex__39___is_not_a_git_command.__34__/comment_3_cbaa3e0fa4e2347332b3929411f60d1d._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2015-09-22T19:33:09Z"
+ content="""
+@dfiorentino um, are you sure you have Git For Windows installed, and not the old
+msysgit? What does git --version say?
+
+(You don't download Git For Windows from where you said you downloaded it,
+so I think you're confused about something.)
+"""]]
diff --git a/doc/forum/external_special_remote_protocol_and_threads.mdwn b/doc/forum/external_special_remote_protocol_and_threads.mdwn
new file mode 100644
index 000000000..93b370d4e
--- /dev/null
+++ b/doc/forum/external_special_remote_protocol_and_threads.mdwn
@@ -0,0 +1,3 @@
+As the sync command just got a -J option I have started to use threads to transfer new files to multiple remotes in parallel. A question that arises is if I still can assume that only one instance of the special remote will be started. I tend to store quite some state in the special remote program that I use to connect to a cloud server, and running two instances in parallel might run in to all sorts of fun behavior.
+
+That said, I am of course aware that if I run multiple git annex commands I would run into these problems.
diff --git a/doc/forum/external_special_remote_protocol_and_threads/comment_1_f29c2b0f0f5e349e36eb47176e33498f._comment b/doc/forum/external_special_remote_protocol_and_threads/comment_1_f29c2b0f0f5e349e36eb47176e33498f._comment
new file mode 100644
index 000000000..8448052da
--- /dev/null
+++ b/doc/forum/external_special_remote_protocol_and_threads/comment_1_f29c2b0f0f5e349e36eb47176e33498f._comment
@@ -0,0 +1,20 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-10-02T16:14:20Z"
+ content="""
+Well, I can confirm that only one instance of any
+external special remote will be run per git-annex process currently.
+
+Actually, it's a bit more than that -- If multiple threads try to use the
+same external special remote at the same time, everything is necessarily
+serialized, and so using -J won't let multiple downloads happen at once
+from a single external special remote, although it may still usefuly
+parallelize amoung several remotes.
+
+Since that seems like something worth dealing with, perhaps by having a
+pool of external special remote processes, I don't feel comfortable making
+any promises about the behavior. And as you note, it's easy to get multiple
+procesess by running multiple git-annex commands, so that is something an
+external special remote needs to deal with anyway.
+"""]]
diff --git a/doc/forum/external_special_remote_protocol_and_threads/comment_2_df97223aad2c8c95ce109944d64a59fe._comment b/doc/forum/external_special_remote_protocol_and_threads/comment_2_df97223aad2c8c95ce109944d64a59fe._comment
new file mode 100644
index 000000000..11ce16ac8
--- /dev/null
+++ b/doc/forum/external_special_remote_protocol_and_threads/comment_2_df97223aad2c8c95ce109944d64a59fe._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnmF_9CAtfqdZkC4e-_dCX-rK5bqh4RWkw"
+ nickname="Carl"
+ subject="comment 2"
+ date="2015-10-04T07:49:02Z"
+ content="""
+Thanks for a clear answer. It seems that I am still in the sweet spot for using -J4. I.e transport everything to multiple remotes in parallel.
+
+I do however take it as a recommendation to be careful, and will give it another consideration to be careful in case of doing more development work and releasing it.
+"""]]
diff --git a/doc/forum/git-annex_does_not_respect_preferred_content_settings.mdwn b/doc/forum/git-annex_does_not_respect_preferred_content_settings.mdwn
new file mode 100644
index 000000000..bb719e08d
--- /dev/null
+++ b/doc/forum/git-annex_does_not_respect_preferred_content_settings.mdwn
@@ -0,0 +1,18 @@
+I have the following vicfg,
+
+ group UUID1 = PodA
+ group UUID2 = PodA
+ group UUID3 = PodA
+ group UUID4 = PodB
+
+ wanted UUID1 = groupwanted
+ wanted UUID2 = groupwanted
+ wanted UUID3 = groupwanted
+ wanted UUID4 = groupwanted
+
+ groupwanted PodA = present and not copies=PodA:1
+ groupwanted PodB = present and not copies=PodB:1
+
+at this point repos 1 2 3 combined has 1 copy of each file and repo 4 has full copy of all files. (used to move files around manually before grouping repos).
+
+What I am trying to achieve is to have a copy of a file in one of the 3 repos (1 2 3) and one copy in 4. running git annex get --auto starts getting all files, files with copies on other disks. testing using git annex find --want-get --not --in . returns all remaining files not in the repo but has enough copies on other repos both PodA and PodB has copies. numofcopies is set to 2.
diff --git a/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_1_ea347ea6ebdfe5ccfb0ed8786638f279._comment b/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_1_ea347ea6ebdfe5ccfb0ed8786638f279._comment
new file mode 100644
index 000000000..647a9d1e2
--- /dev/null
+++ b/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_1_ea347ea6ebdfe5ccfb0ed8786638f279._comment
@@ -0,0 +1,17 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-11T17:49:32Z"
+ content="""
+Um, I'm pretty sure git-annex respects your preferred content settings.
+Whether the settings do what you think they do is another matter.
+
+When I tried replicating the same settings you show, "git annex get --auto"
+didn't want to get any files. That makes perfect sense, since
+"present" only succeeds if the file is already in the repo, so for files
+that are not, it fails, and so "present AND foo" fails, and so the file is
+not wanted.
+
+Lose the "present". All you need to make the files land on only 1 of the
+PodA repos is "not copies=PodA:1"
+"""]]
diff --git a/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_2_5fac7c41c9841cea4234afa0a98b1636._comment b/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_2_5fac7c41c9841cea4234afa0a98b1636._comment
new file mode 100644
index 000000000..90c630391
--- /dev/null
+++ b/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_2_5fac7c41c9841cea4234afa0a98b1636._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/FHnTlSBo1eCGJRwueeKeB6.RCaPbGMPr5jxx8A--#ce0d8"
+ nickname="Hamza"
+ subject="comment 2"
+ date="2015-09-11T20:46:00Z"
+ content="""
+joey thanks for the reply, I've updated the expression to \"not copies=PodA:1\" but running \"git annex get --auto\" still wants to get all files that are already present in other repos in PodA. Say I have file asd.txt present in PodA repo 2 and PodB repo 4 content is already there. running get on repo 1 still gets the file in repo 1.
+"""]]
diff --git a/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_3_e2ea1843bbc9580ca7b4ec494f53b552._comment b/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_3_e2ea1843bbc9580ca7b4ec494f53b552._comment
new file mode 100644
index 000000000..1870bc743
--- /dev/null
+++ b/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_3_e2ea1843bbc9580ca7b4ec494f53b552._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/FHnTlSBo1eCGJRwueeKeB6.RCaPbGMPr5jxx8A--#ce0d8"
+ nickname="Hamza"
+ subject="comment 3"
+ date="2015-09-13T12:52:51Z"
+ content="""
+As a test I've created 4 new test repos (different test content) with your suggested settings, you are correct that with the settings everything works as it should but for some reason my actual repos does not honor those settings.
+"""]]
diff --git a/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_4_59ede467a902f27b81f14e4706a7503a._comment b/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_4_59ede467a902f27b81f14e4706a7503a._comment
new file mode 100644
index 000000000..504afc907
--- /dev/null
+++ b/doc/forum/git-annex_does_not_respect_preferred_content_settings/comment_4_59ede467a902f27b81f14e4706a7503a._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2015-09-15T16:00:16Z"
+ content="""
+Are these repositories all in sync, so that git-annex in repo 1
+knows that repo 2 and repo 4 have already gotten the file?
+"""]]
diff --git a/doc/forum/mesh_configurations/comment_10_dc99216ee2fc0bd3d43234915a0305ab._comment b/doc/forum/mesh_configurations/comment_10_dc99216ee2fc0bd3d43234915a0305ab._comment
new file mode 100644
index 000000000..64e98f70c
--- /dev/null
+++ b/doc/forum/mesh_configurations/comment_10_dc99216ee2fc0bd3d43234915a0305ab._comment
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 10"""
+ date="2015-09-21T18:44:20Z"
+ content="""
+I'm not comfortable making core.sharedrepository settings affect creds
+files. You don't normally want to give out S3 creds to other users in a
+unix group. And in the "everybody" case, it certianly seems entirely wrong
+to make the creds files world-readable. Willing to live with a little
+inconsistency here in order to not blow user's bank accounts off. It would
+be good to document it somewhere.
+
+Your paste seems to show A as being in the "sourcethis" group, not the
+"source" group. I don't know what that means.
+
+The assistant should notice config changes to the git-annex branch within
+60 seconds of them being received. Syncs happen when changes are detected,
+or every 30 minutes.
+"""]]
diff --git a/doc/forum/monitoring_disk_usage_by_different_repos_on_same_drive.mdwn b/doc/forum/monitoring_disk_usage_by_different_repos_on_same_drive.mdwn
new file mode 100644
index 000000000..698413ce3
--- /dev/null
+++ b/doc/forum/monitoring_disk_usage_by_different_repos_on_same_drive.mdwn
@@ -0,0 +1,7 @@
+I've setup a server using gitolite3 to host repositories for our users. All these repos share the same disk (2.5 Tb ;-). They're mainly used as backup of all contents.
+
+I'd like to monitor disk usage (possibly with statistics related to git-annex specificities) for these repos.
+
+Would anyone suggest a solution (web based maybe), for easily monitoring the growth of the repos storage ?
+
+Thanks in advance.
diff --git a/doc/forum/monitoring_disk_usage_by_different_repos_on_same_drive/comment_1_04718e5f87a7e0521a3165bc9fc951a8._comment b/doc/forum/monitoring_disk_usage_by_different_repos_on_same_drive/comment_1_04718e5f87a7e0521a3165bc9fc951a8._comment
new file mode 100644
index 000000000..17ad19403
--- /dev/null
+++ b/doc/forum/monitoring_disk_usage_by_different_repos_on_same_drive/comment_1_04718e5f87a7e0521a3165bc9fc951a8._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-29T15:34:08Z"
+ content="""
+If you go to one of the repos and run `git annex info --json --bytes`
+you'll get a json object that has keys including "local annex size".
+You can extract that value, and feed it into a graphing engine, such
+as graphite, or whatever to generate graphs of the repo sizes over time.
+
+(Of course, you could do the same thing with `du`)
+"""]]
diff --git a/doc/forum/refs__47__heads__47__synced__47__git-annex_receives_from_more_than_one_src./comment_1_c805561fa714ff3930742bb330b340c9._comment b/doc/forum/refs__47__heads__47__synced__47__git-annex_receives_from_more_than_one_src./comment_1_c805561fa714ff3930742bb330b340c9._comment
new file mode 100644
index 000000000..3f4be57a6
--- /dev/null
+++ b/doc/forum/refs__47__heads__47__synced__47__git-annex_receives_from_more_than_one_src./comment_1_c805561fa714ff3930742bb330b340c9._comment
@@ -0,0 +1,20 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-09T18:47:17Z"
+ content="""
+This error message is a `git push` error message.
+I've never seen this error before..
+
+<http://www.markhneedham.com/blog/2013/06/13/git-having-a-branchtag-with-the-same-name-error-dst-refspec-matches-more-than-one/>
+Shows one way to get into this situation, where a repository somehow has
+a tag with the same name as the branch that is being pushed.
+
+<https://lostechies.com/jasonmeridth/2010/02/27/refspec-matches-more-than-one/>>
+Similarly shows it being a conflict between a tag and a branch;
+this time the tag exists in the local repository.
+
+I guess you've run into some problem like this. If there's an easy way to
+reproduce the problem using just git-annex commands, and not manaul tag
+creation etc, please file a bug report with details.
+"""]]
diff --git a/doc/forum/removing_remote.log_information_completely/comment_1_033f5b8f2b306c756b3f12e0a9bc6637._comment b/doc/forum/removing_remote.log_information_completely/comment_1_033f5b8f2b306c756b3f12e0a9bc6637._comment
new file mode 100644
index 000000000..762f1ef4c
--- /dev/null
+++ b/doc/forum/removing_remote.log_information_completely/comment_1_033f5b8f2b306c756b3f12e0a9bc6637._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-09T19:57:26Z"
+ content="""
+There's no guaranteed way to remove lines from log files on the git-annex
+branch. A union merge can always result in a removed line being added back later.
+
+The thing to do is to add a new line, that has a newer timestamp and
+omits the information you want to remove with new information.
+
+When reading the remote.log, git-annex will look for the line for a remote
+that has the newest timestamp, and use it in preference to older lines.
+"""]]
diff --git a/doc/forum/syncing_to_an_encrypted_remove_won__39__t_prompt_with_pinentry-gtk2/comment_1_daf41d0e59d384dfe5c86a53600ea3f7._comment b/doc/forum/syncing_to_an_encrypted_remove_won__39__t_prompt_with_pinentry-gtk2/comment_1_daf41d0e59d384dfe5c86a53600ea3f7._comment
new file mode 100644
index 000000000..0b521a3e6
--- /dev/null
+++ b/doc/forum/syncing_to_an_encrypted_remove_won__39__t_prompt_with_pinentry-gtk2/comment_1_daf41d0e59d384dfe5c86a53600ea3f7._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://openid.stackexchange.com/user/e65e6d0e-58ba-41de-84cc-1f2ba54cf574"
+ nickname="Mica"
+ subject="needed a gpg.conif"
+ date="2015-09-16T04:20:53Z"
+ content="""
+Not sure why Debian stable didn't give me a default gpg.config, but it didn't. Copying one from an old installation worked.
+"""]]
diff --git a/doc/forum/test_whether_a_file_is_already_annexed/comment_1_55bcb41abae2b70c046e3da1c4d8c761._comment b/doc/forum/test_whether_a_file_is_already_annexed/comment_1_55bcb41abae2b70c046e3da1c4d8c761._comment
new file mode 100644
index 000000000..d175983e3
--- /dev/null
+++ b/doc/forum/test_whether_a_file_is_already_annexed/comment_1_55bcb41abae2b70c046e3da1c4d8c761._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="whereis"
+ date="2015-09-03T01:07:32Z"
+ content="""
+Thought to say that you could use 'info' but http://git-annex.branchable.com/bugs/git_annex_info_is_reporting_file_as_not_annexed_in_direct_mode/ .
+What about 'git annex whereis FILE' ? it should be empty output for non-annexed file
+"""]]
diff --git a/doc/forum/test_whether_a_file_is_already_annexed/comment_2_e2531c7e77bbc75f24af7ce5f789826e._comment b/doc/forum/test_whether_a_file_is_already_annexed/comment_2_e2531c7e77bbc75f24af7ce5f789826e._comment
new file mode 100644
index 000000000..2d0962fc3
--- /dev/null
+++ b/doc/forum/test_whether_a_file_is_already_annexed/comment_2_e2531c7e77bbc75f24af7ce5f789826e._comment
@@ -0,0 +1,22 @@
+[[!comment format=mdwn
+ username="emanuele.olivetti@47d88ed185b03191e25329caa6fabc2efb3118b2"
+ nickname="emanuele.olivetti"
+ subject="not whereis"
+ date="2015-09-03T07:44:49Z"
+ content="""
+First of all thank you for the answer and the bug report. Unfortunately git-annex whereis seems not to be the answer to my problem, because it works only when queried on already annexed files, while I'd like to test the yet-not-annexed ones. Here's an example using whereis:
+
+ git-annex whereis SAM_7198.m4v # SAM_7198.m4v is an already annexed files in the current directory, so within the repository: whereis works well
+ whereis SAM_7198.m4v (2 copies)
+ 5dd7f891-579a-45c6-a5bf-3ca42e3a5f9a -- laptop [here]
+ ebf56bea-2970-42b1-bace-9d72ac9ed8d1 -- emanuele@desktop:/home/emanuele/annex [origin]
+ ok
+
+ cp -L SAM_7198.m4v zzz # creating a copy of a that file
+ git-annex whereis zzz # output is empty, so the file was not found, despite having the same content of SAM_7198.m4v and being in the repo dir
+
+ cp -L SAM_7198.m4v /tmp/ # copying the annexed file outside the repo
+ git-annex whereis /tmp/SAM_7198.m4v
+ fatal: /tmp/SAM_7198.m4v: '/tmp/SAM_7198.m4v' is outside repository
+
+"""]]
diff --git a/doc/forum/test_whether_a_file_is_already_annexed/comment_3_21f51c99b1aac8b3292f60bd83493e94._comment b/doc/forum/test_whether_a_file_is_already_annexed/comment_3_21f51c99b1aac8b3292f60bd83493e94._comment
new file mode 100644
index 000000000..769c1c2b7
--- /dev/null
+++ b/doc/forum/test_whether_a_file_is_already_annexed/comment_3_21f51c99b1aac8b3292f60bd83493e94._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="CandyAngel"
+ subject="comment 3"
+ date="2015-09-03T08:05:52Z"
+ content="""
+Hm.. having some kind of exposure of the key generation code on the command line would actually be pretty useful. So you can do something like:
+
+ find -type f | xargs git annex genkey --format '${key} ${file}'
+
+Probably worth a TODO, really.
+
+Regarding your situation, one way of doing it would be to recursively copy the photo directory as hardlinks, `git annex import --clean-duplicates` the hardlinked copies, then diff the directories. This would give you a list of removals and those removals are already in the repo.
+
+Or if you just want to remove them, just run '*git annex import --clean-duplicates*' on the original photos directory. **NOTE: There was recently an issue with git-annex deleting files that it didn't have any known copies of, so a recent version is highly recommended if using --clean-duplicates.**
+"""]]
diff --git a/doc/forum/test_whether_a_file_is_already_annexed/comment_4_2c61629777f47ce3e697298d5736f997._comment b/doc/forum/test_whether_a_file_is_already_annexed/comment_4_2c61629777f47ce3e697298d5736f997._comment
new file mode 100644
index 000000000..d5d2d1dea
--- /dev/null
+++ b/doc/forum/test_whether_a_file_is_already_annexed/comment_4_2c61629777f47ce3e697298d5736f997._comment
@@ -0,0 +1,22 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2015-09-09T17:43:22Z"
+ content="""
+You can use either `git-annex import --deduplicate`
+or `git annex import --skip-duplicates` to import files from a directory
+except for ones already in the repository. The former deletes the duplicate
+files, and the latter leaves them as-is.
+
+I don't think there's currently a good stand-alone way to check if a file is a
+duplicate of content already in the annex, before adding it.
+Would need a new command to be added.
+
+Of course, if you simply `git annex add` everything, regular hash based
+deduplication will point the duplicate file to the same object used by
+the file when you added it earlier. So, you don't need to worry about
+adding duplicates wasting much space. They may make your repo more
+cluttered than you like, is all.
+
+See also this tip: [[tips/finding_duplicate_files]].
+"""]]
diff --git a/doc/forum/webapp:_disabling_a_paired_repository/comment_2_28cf58629b9774426c084d80964151d7._comment b/doc/forum/webapp:_disabling_a_paired_repository/comment_2_28cf58629b9774426c084d80964151d7._comment
new file mode 100644
index 000000000..5d78439b6
--- /dev/null
+++ b/doc/forum/webapp:_disabling_a_paired_repository/comment_2_28cf58629b9774426c084d80964151d7._comment
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-09-21T16:55:47Z"
+ content="""
+Disabling a remote is a weak form of deleting it; the remote repository is
+left as-is, but the git remote is removed so git-annex won't sync with it,
+and the webapp won't show it.
+
+I don't know if it makes sense for the webapp to expose this possibility.
+It seems that it certianly doesn't makes sense to do it without getting
+confirmation, since to re-enable the repository, the user has to do some
+probably unknown to them process to set it back up.
+
+In your case, I think that re-doing the pairing process would get them back
+to how they were.
+
+On consideration, I am going to remove this feature from the webapp UI.
+"""]]
diff --git a/doc/forum/webapp:_disabling_a_paired_repository/comment_3_799d66b116e8ddf42e624bb4a082337c._comment b/doc/forum/webapp:_disabling_a_paired_repository/comment_3_799d66b116e8ddf42e624bb4a082337c._comment
new file mode 100644
index 000000000..1e38b3185
--- /dev/null
+++ b/doc/forum/webapp:_disabling_a_paired_repository/comment_3_799d66b116e8ddf42e624bb4a082337c._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnmF_9CAtfqdZkC4e-_dCX-rK5bqh4RWkw"
+ nickname="Carl"
+ subject="Thanks"
+ date="2015-09-24T13:30:26Z"
+ content="""
+I think this is a very good usability improvement. I hav more than once wanted to temporarily turn off syncing (for example for a server inly available when on my lan at home) and ended up disabling the remote altogether. One possibility less to shoot myself in the foot. Thanks!
+"""]]
diff --git a/doc/forum/what_are___95__exactly__95___limitations_of_git-annex_when_using_it_like_dropbox.mdwn b/doc/forum/what_are___95__exactly__95___limitations_of_git-annex_when_using_it_like_dropbox.mdwn
new file mode 100644
index 000000000..276ba646e
--- /dev/null
+++ b/doc/forum/what_are___95__exactly__95___limitations_of_git-annex_when_using_it_like_dropbox.mdwn
@@ -0,0 +1,6 @@
+I'm trying to migrate from dropbox to git-annex. But I'm learning that git-annex has "limitations", as in
+"but it can be used to sync files such a way, with certain limitations". So what exactly are these limitations? I've learned already the hard way that newline can't be a character in a filename, and apparently git directories can't be synced?
+
+These are two big issues imo (especiall the second one) - right now I don't have any filenames with newlines, and no git directories, but the brilliant thing about dropbox is that I don't have to think about such things, everything gets synced.
+
+But in any case, if I'm to use git-annex as a dropbox replacement, I really need to know what precisely are its limitations, so that it doesn't become an issue in two months out of nowhere...
diff --git a/doc/forum/what_are___95__exactly__95___limitations_of_git-annex_when_using_it_like_dropbox/comment_1_b76e6d3c4d530fd6735460aa5ab03ad5._comment b/doc/forum/what_are___95__exactly__95___limitations_of_git-annex_when_using_it_like_dropbox/comment_1_b76e6d3c4d530fd6735460aa5ab03ad5._comment
new file mode 100644
index 000000000..66e618d3e
--- /dev/null
+++ b/doc/forum/what_are___95__exactly__95___limitations_of_git-annex_when_using_it_like_dropbox/comment_1_b76e6d3c4d530fd6735460aa5ab03ad5._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="Agenta"
+ subject="not easy to access history"
+ date="2015-10-02T13:16:30Z"
+ content="""
+Another limitation is that it is not easy to access files history and to recover previous versions of a file. I have \"solved\" that by taking a snapshot of my repo every night with bup:
+https://github.com/bup/bup
+"""]]
diff --git a/doc/git-annex-enableremote.mdwn b/doc/git-annex-enableremote.mdwn
index 79b224a04..3b543c969 100644
--- a/doc/git-annex-enableremote.mdwn
+++ b/doc/git-annex-enableremote.mdwn
@@ -19,14 +19,14 @@ special remote names.
Some special remotes may need parameters to be specified every time they are
enabled. For example, the directory special remote requires a directory=
-parameter.
-
+parameter every time.
+
This command can also be used to modify the configuration of an existing
-special remote, by specifying new values for parameters that were
-originally set when using initremote. (However, some settings such as
+special remote, by specifying new values for parameters that are
+usually set when using initremote. (However, some settings such as
the as the encryption scheme cannot be changed once a special remote
has been created.)
-
+
The GPG keys that an encrypted special remote is encrypted with can be
changed using the keyid+= and keyid-= parameters. These respectively
add and remove keys from the list. However, note that removing a key
@@ -45,6 +45,12 @@ on files that have already been copied to the remote. Hence using
keyid+= and keyid-= with such remotes should be used with care, and
make little sense except in cases like the revoked key example above.
+If you get tired of manually enabling a special remote in each new clone,
+you can pass "autoenable=true". Then when [[git-annex-init]](1) is run in
+a new clone, it will will attempt to enable the special remote. Of course,
+this works best when the special remote does not need anything special
+to be done to get it enabled.
+
# SEE ALSO
[[git-annex]](1)
diff --git a/doc/git-annex-init.mdwn b/doc/git-annex-init.mdwn
index 2662ddc94..145705105 100644
--- a/doc/git-annex-init.mdwn
+++ b/doc/git-annex-init.mdwn
@@ -16,6 +16,14 @@ It's useful, but not mandatory, to initialize each new clone
of a repository with its own description. If you don't provide one,
one will be generated using the username, hostname and the path.
+If any special remotes were configured with autoenable=true,
+this will also attempt to enable them. See [[git-annex-initremote]](1).
+To disable this, re-enable a remote with "autoenable=false", or
+mark it as dead (see [[git-annex-dead]](1)).
+
+This command is entirely safe, although usually pointless, to run inside an
+already initialized git-annex repository.
+
# SEE ALSO
[[git-annex]](1)
diff --git a/doc/git-annex-initremote.mdwn b/doc/git-annex-initremote.mdwn
index 5fe4749a5..4265d89f4 100644
--- a/doc/git-annex-initremote.mdwn
+++ b/doc/git-annex-initremote.mdwn
@@ -36,6 +36,12 @@ encryption=pubkey, content in the special remote is directly encrypted
to the specified GPG keys, and additional ones cannot easily be given
access.
+If you anticipate using the new special remote in other clones of the
+repository, you can pass "autoenable=true". Then when [[git-annex-init]](1)
+is run in a new clone, it will attempt to enable the special remote. Of
+course, this works best when the special remote does not need anything
+special to be done to get it enabled.
+
# OPTIONS
* `--fast`
diff --git a/doc/git-annex-reinit.mdwn b/doc/git-annex-reinit.mdwn
index ba324d5f6..1ca822734 100644
--- a/doc/git-annex-reinit.mdwn
+++ b/doc/git-annex-reinit.mdwn
@@ -17,6 +17,9 @@ Use this with caution; it can be confusing to have two existing
repositories with the same UUID. Also, you will probably want to run
a fsck.
+Like `git annex init`, this attempts to enable any special remotes
+that are configured with autoenable=true.
+
# SEE ALSO
[[git-annex]](1)
diff --git a/doc/git-annex-reinject.mdwn b/doc/git-annex-reinject.mdwn
index f5019e4b5..fb175015b 100644
--- a/doc/git-annex-reinject.mdwn
+++ b/doc/git-annex-reinject.mdwn
@@ -14,8 +14,8 @@ which should be an already annexed file whose content is not present.
This can be useful if you have obtained the content of a file from
elsewhere and want to put it in the local annex.
-Automatically runs fsck on dest to check that the expected content was
-provided.
+Verifies that the src file's content matches with the content that the dest
+file is expected to have, and refuses to reinject it otherwise.
Example:
diff --git a/doc/git-annex-setkey.mdwn b/doc/git-annex-setkey.mdwn
index 439984c2b..25e16a14d 100644
--- a/doc/git-annex-setkey.mdwn
+++ b/doc/git-annex-setkey.mdwn
@@ -11,8 +11,7 @@ git annex setkey key file
This plumbing-level command makes the content of the specified key
be set to the specified file. The file is moved into the annex.
-No checking is done that the file contains the expected contents of the key.
-So it's generally a better idea to use [[git-annex-reinject]](1) instead of
+It's generally a better idea to use [[git-annex-reinject]](1) instead of
this command.
# SEE ALSO
diff --git a/doc/git-annex-status.mdwn b/doc/git-annex-status.mdwn
index 7ad967bde..19bd6fab5 100644
--- a/doc/git-annex-status.mdwn
+++ b/doc/git-annex-status.mdwn
@@ -9,8 +9,10 @@ git annex status `[path ...]`
# DESCRIPTION
Similar to `git status --short`, this command displays the status of the files
-in the working tree. Shows files that are not checked into git, files that have
-been deleted, and files that have been modified.
+in the working tree.
+
+Show files that are not checked into git (?), deleted (D),
+modified (M), added but not committed (A), and type changed/unlocked (T).
Particularly useful in direct mode.
diff --git a/doc/git-annex-sync.mdwn b/doc/git-annex-sync.mdwn
index b4c23f843..a380bcaf1 100644
--- a/doc/git-annex-sync.mdwn
+++ b/doc/git-annex-sync.mdwn
@@ -36,21 +36,33 @@ by running "git annex sync" on the remote.
# OPTIONS
+* `--fast`
+
+ Only sync with the remotes with the lowest annex-cost value configured.
+
+* `--commit`, `--no-commit`
+
+ A commit is done by default. Use --no-cmmit to avoid committing local changes.
+
* `--message=msg`
Use this option to specify a commit message.
-* `--fast`
+* `--pull`, `--no-pull`
- Only sync with the remotes with the lowest annex-cost value configured.
+ By default, git pulls from remotes. Use --no-pull to disable.
+
+* `--push`, `--no-push`
+
+ By default, git pushes to remotes. Use --no-push to disable.
-* `--content`
+* `--content`, `--no-content`
Normally, syncing does not transfer the contents of annexed files.
- This option causes the content of files in the work tree
+ The --content option causes the content of files in the work tree
to also be uploaded and downloaded as necessary.
- By default, this tries to get each annexed file in the work tree
+ Normally this tries to get each annexed file in the work tree
that the local repository does not yet have, and then copies each
file in the work tree to every remote that it is syncing with.
This behavior can be overridden by configuring the preferred content
diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn
index a916b74a4..d35702804 100644
--- a/doc/git-annex.mdwn
+++ b/doc/git-annex.mdwn
@@ -875,8 +875,8 @@ Here are all the supported configuration settings.
* `annex.hardlink`
- Set this to `true` to make file contents be hard linked into the
- repository when possible, instead of a more expensive copy.
+ Set this to `true` to make file contents be hard linked between the
+ repository and its remotes when possible, instead of a more expensive copy.
Use with caution -- This can invalidate numcopies counting, since
with hard links, fewer copies of a file can exist. So, it is a good
@@ -1026,6 +1026,12 @@ Here are all the supported configuration settings.
This both prevents git-annex sync from pushing changes, and prevents
storing or removing files from read-only remote.
+* `remote.<name>.annex-verify`, `annex.verify`
+
+ By default, git-annex will verify the checksums of objects downloaded
+ from remotes. If you trust a remote and don't want the overhead
+ of these checksums, you can set this to `false`.
+
* `remote.<name>.annexUrl`
Can be used to specify a different url than the regular `remote.<name>.url`
diff --git a/doc/install.mdwn b/doc/install.mdwn
index 1b6ae4ddc..5c6c65bc6 100644
--- a/doc/install.mdwn
+++ b/doc/install.mdwn
@@ -13,6 +13,7 @@ detailed instructions | quick install
&nbsp;&nbsp;[[ArchLinux]] | `yaourt -Sy git-annex-bin`
&nbsp;&nbsp;[[NixOS]] | `nix-env -i git-annex`
&nbsp;&nbsp;[[Gentoo]] | `emerge git-annex`
+&nbsp;&nbsp;[[Void]] | `xbps-install git-annex`
&nbsp;&nbsp;[[ScientificLinux5]] |
&nbsp;&nbsp;[[openSUSE]] |
&nbsp;&nbsp;[[Docker]] |
diff --git a/doc/install/Linux_standalone.mdwn b/doc/install/Linux_standalone.mdwn
index c6fb27de4..4d0a1c096 100644
--- a/doc/install/Linux_standalone.mdwn
+++ b/doc/install/Linux_standalone.mdwn
@@ -7,6 +7,7 @@ dependencies and is self-contained.
* x86-32: [download tarball](https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-i386.tar.gz)
* x86-64: [download tarball](https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz)
+* x86-32, for ancient kernels: [download tarball](https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-i386-ancient.tar.gz)
* arm: [download tarball](https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-armel.tar.gz)
To use, just unpack the tarball, `cd git-annex.linux` and run `./runshell`
@@ -24,6 +25,10 @@ linux systems.
* [[tips/Synology_NAS_and_git_annex]]
* [[forum_thread|forum/new_linux_arm_tarball_build]]
+The build for ancient kernels is for use with Linux kernel versions
+such as 2.6.32. It is missing some features, like SHA3 support and
+the webapp. It will work on both 32 and 64 bit systems.
+
## autobuilds
An hourly autobuild is also available, thanks to Mesar Hameed and the University
@@ -31,6 +36,7 @@ of Bath CS department.
* x86-32: [download tarball](https://downloads.kitenet.net/git-annex/autobuild/i386/git-annex-standalone-i386.tar.gz) ([build logs](https://downloads.kitenet.net/git-annex/autobuild/i386/))
* x86-64: [download tarball](https://downloads.kitenet.net/git-annex/autobuild/amd64/git-annex-standalone-amd64.tar.gz) ([build logs](https://downloads.kitenet.net/git-annex/autobuild/amd64/))
+* x86-32, for ancient kernels: [download tarball](https://downloads.kitenet.net/git-annex/autobuild/i386-ancient/git-annex-standalone-i386-ancient.tar.gz) ([build logs](https://downloads.kitenet.net/git-annex/autobuild/i386-ancient/))
The arm autobuilder runs daily, and is hosted at [WetKnee Books](http://www.wetknee.com/).
diff --git a/doc/install/Windows.mdwn b/doc/install/Windows.mdwn
index 3d4b7a073..b40692765 100644
--- a/doc/install/Windows.mdwn
+++ b/doc/install/Windows.mdwn
@@ -1,8 +1,8 @@
git-annex now does Windows!
-* First, [install git](http://git-scm.com/downloads) (msysgit 1.9 or newer is needed)
- _Be sure to tell the msysgit installer to add git to the PATH._
- That is, select "Use Git from the Windows Command Prompt"
+* First, [install git for Windows](http://git-scm.com/downloads)
+ Get the 32 bit version not the 64 bit version.
+ (Note that msysgit is no longer supported.)
* Then, [install git-annex](https://downloads.kitenet.net/git-annex/windows/current/)
This port is now in reasonably good shape for command-line use of
@@ -36,7 +36,7 @@ Once the prerequisites are installed, run:
build
Note that git from Cygwin is able to clone git-annex's git repository;
-Msysgit cannot due to some characters in filenames.
+Regular git for Windows cannot due to some characters in filenames.
(To build the git-annex installer, you also need to install the NullSoft
installer system.)
diff --git a/doc/install/fromsource.mdwn b/doc/install/fromsource.mdwn
index 1c0bc06d7..853d9461d 100644
--- a/doc/install/fromsource.mdwn
+++ b/doc/install/fromsource.mdwn
@@ -34,7 +34,32 @@ First, install everything git-annex needs to build:
Now you can build git-annex by running either `make` or `cabal build`
inside the source tree.
-## minimal build with cabal and stackage
+## building from source with stack
+
+Using stack automates nearly everything, will work on many systems,
+and avoids build failures due to fast-changing haskell libraries.
+
+First, [install stack](https://github.com/commercialhaskell/stack/blob/master/doc/install_and_upgrade.md)
+It will be part of the Haskell Platform soon. On Debian unstable/testing:
+
+ sudo apt-get install haskell-stack zlib1g-dev
+
+Use stack to install all dependencies and git-annex:
+
+ stack setup
+ stack install git-annex
+
+Move git-annex into some directory that is in your PATH:
+
+ mv ~/.local/bin/git-annex ~/bin # or /usr/local/bin/ or whatever
+
+Note that this build produces a git-annex without XMPP and DBUS support.
+These optional features are only used by the webapp, and require
+installing additional C libraries. To try to build with these features
+enabled, pass extra parameters when running stack:
+`--flag git-annex:XMPP --flag git-annex:DBUS`
+
+## minimal build from source with cabal
This can be done anywhere, and builds git-annex without some optional features
that require harder-to-install C libraries. This is plenty to let you get started with
@@ -42,9 +67,7 @@ git-annex, but it does not include the assistant or webapp.
Be warned that this involves building a lot of Haskell libraries from
source, and so it has a lot of moving parts, and it's not uncommon for it
-to be broken from time to time. A nice way to avoid such breakage is to
-[configure cabal to use the Stackage repository](http://www.stackage.org/),
-which is a more stable and consistent version of the Hackage repository.
+to be broken from time to time.
Inside the source tree, run:
@@ -54,15 +77,13 @@ Inside the source tree, run:
PATH=$HOME/bin:$PATH
cabal install --bindir=$HOME/bin
-## full build with cabal and stackage
+## full build from source with cabal
To build with all features enabled, including the assistant and webapp,
you will need to install several C libraries and their headers,
including libgnutls, libgsasl, libxml2, and zlib. How to do that for
your OS is beyond the scope of this page.
-Using [Stackage](http://www.stackage.org/) is again a good idea here!
-
Once the C libraries are installed, run inside the source tree:
cabal install -j --only-dependencies
diff --git a/doc/news/version_5.20150727.mdwn b/doc/news/version_5.20150727.mdwn
deleted file mode 100644
index 9bbe6c3ba..000000000
--- a/doc/news/version_5.20150727.mdwn
+++ /dev/null
@@ -1,35 +0,0 @@
-git-annex 5.20150727 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * Fix bug that prevented uploads to remotes using new-style chunking
- from resuming after the last successfully uploaded chunk.
- * Switched option parsing to use optparse-applicative. This was a very large
- and invasive change, and may have caused some minor behavior changes to
- edge cases of option parsing. (For example, the metadata command no
- longer accepts the combination of --get and --set, which never actually
- worked.)
- * Bash completion file is now included in the git-annex source tree,
- and installed into Debian package (and any other packages built using make
- install). This bash completion is generated by the option parser, so it
- covers all commands, all options, and will never go out of date!
- * As well as tab completing "git-annex" commands, "git annex" will also tab
- complete. However, git's bash completion script needs a patch,
- which I've submitted, for this to work prefectly.
- * version --raw now works when run outside a git repository.
- * assistant --startdelay now works when run outside a git repository.
- * dead now accepts multiple --key options.
- * addurl now accepts --prefix and --suffix options to adjust the
- filenames used.
- * sync --content: Fix bug that caused files to be uploaded to eg,
- more archive remotes than wanted copies, only to later be dropped
- to satisfy the preferred content settings.
- * importfeed: Improve detection of known items whose url has changed,
- and avoid adding redundant files. Where before this only looked at
- permalinks in rss feeds, it now also looks at guids.
- * importfeed: Look at not only permalinks, but now also guids
- to identify previously downloaded files.
- * Webapp: Now features easy setup of git-annex repositories on gitlab.com.
- * Adjust debian build deps: The webapp can now build on arm64, s390x
- and hurd-i386. WebDAV support is also available on those architectures.
- * Debian package now maintained by Richard Hartmann.
- * Support building without persistent database on for systems that
- lack TH. This removes support for incremental fsck."""]] \ No newline at end of file
diff --git a/doc/news/version_5.20150731.mdwn b/doc/news/version_5.20150731.mdwn
deleted file mode 100644
index c54516a74..000000000
--- a/doc/news/version_5.20150731.mdwn
+++ /dev/null
@@ -1,13 +0,0 @@
-git-annex 5.20150731 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * webapp: Support enabling known gitlab.com remotes.
- * Fix rsync special remote to work when -Jn is used for concurrent
- uploads.
- * The last release accidentially removed a number of options from the
- copy command. (-J, file matching options, etc). These have been added
- back.
- * init: Detect when the filesystem is crippled such that it ignores
- attempts to remove the write bit from a file, and enable direct mode.
- Seen with eg, NTFS fuse on linux.
- * Fix man page installation by cabal install; all the new man pages are
- now installed."""]] \ No newline at end of file
diff --git a/doc/news/version_5.20150916.mdwn b/doc/news/version_5.20150916.mdwn
new file mode 100644
index 000000000..5d5875894
--- /dev/null
+++ b/doc/news/version_5.20150916.mdwn
@@ -0,0 +1,32 @@
+git-annex 5.20150916 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Fix Windows build to work with ghc 7.10.
+ * init: Fix reversion in detection of repo made with git clone --shared
+ * info: Support querying info of individual files in direct mode.
+ * unused: Fix reversion in 5.20150727 that broke parsing of the
+ --unused-refspec option. Thanks, Øyvind A. Holm.
+ * Make full option parsing be done when not in a git repo, so --help
+ can be displayed for commands that require a git repo, etc.
+ * fsck: Work around bug in persistent that broke display of
+ problematically encoded filenames on stderr when using --incremental.
+ * When gpg.program is configured, it's used to get the command to run
+ for gpg. Useful on systems that have only a gpg2 command or want to
+ use it instead of the gpg command.
+ * Windows: Switched to using git for Windows, rather than msysgit.
+ Using msysgit with git-annex is no longer supported.
+ * Windows: Even when the user neglects to tell the git installer to
+ add git to PATH, git-annex will still work from within the git bash
+ shell, and the webapp can be used too.
+ * sync: Add --no-commit, --no-pull, --no-push options to turn off parts of
+ the sync process, as well as supporting --commit, --pull, --push, and
+ --no-content options to specify the (current) default behavior.
+ * annex.hardlink extended to also try to use hard links when copying from
+ the repository to a remote.
+ * Improve bash completion, so it completes names of remotes and backends
+ in appropriate places.
+ * Special remotes configured with autoenable=true will be automatically
+ enabled when git-annex init is run.
+ * Fix bug in combination of preferred and required content settings.
+ When one was set to the empty string and the other set to some expression,
+ this bug caused all files to be wanted, instead of only files matching
+ the expression."""]] \ No newline at end of file
diff --git a/doc/news/version_5.20150916/comment_1_4e708dc3d845a5db6ae1aa05b52f8677._comment b/doc/news/version_5.20150916/comment_1_4e708dc3d845a5db6ae1aa05b52f8677._comment
new file mode 100644
index 000000000..d1837a8ef
--- /dev/null
+++ b/doc/news/version_5.20150916/comment_1_4e708dc3d845a5db6ae1aa05b52f8677._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="jephte.clain@f0da2444b164953b596ac5e3e38da30b8c04e5e3"
+ nickname="jephte.clain"
+ subject="it does not work with debian squeeze lts"
+ date="2015-09-26T08:03:05Z"
+ content="""
+FYI, this version no longer work on debian squeeze lts with the message FATAL: kernel too old
+does it refer to the version of linux kernel? it is 2.6.32-5 on debian squeeze
+For now, I'll have to revert to 5.20150824 which is a shame
+"""]]
diff --git a/doc/news/version_5.20150930.mdwn b/doc/news/version_5.20150930.mdwn
new file mode 100644
index 000000000..0d545e3f3
--- /dev/null
+++ b/doc/news/version_5.20150930.mdwn
@@ -0,0 +1,19 @@
+git-annex 5.20150930 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Added new linux standalone "ancient" build to support kernels
+ like 2.6.32.
+ * info: Don't allow use in a non-git-annex repository, since it
+ uses the git-annex branch and would create it if it were missing.
+ * assistant: When updating ~/.ssh/config, preserve any symlinks.
+ * webapp: Remove the "disable remote" feature from the UI.
+ * S3: When built with aws-0.13.0, supports using more storage classes.
+ In particular, storageclass=STANDARD\_IA to use Amazon's
+ new Infrequently Accessed storage, and storageclass=NEARLINE
+ to use Google's NearLine storage.
+ * Improve ~/.ssh/config modification code to not add trailing spaces
+ to lines it cannot parse.
+ * Fix a crash at direct mode merge time when .git/index doesn't exist
+ yet. Triggered by eg, git-annex sync --no-commit in a fresh clone of
+ a repository.
+ * status: Show added but not yet committed files.
+ * Added stack.yaml to support easy builds from source with stack."""]] \ No newline at end of file
diff --git a/doc/news/version_5.20150930/comment_1_f77fe435289343ae0511ffceade23ba7._comment b/doc/news/version_5.20150930/comment_1_f77fe435289343ae0511ffceade23ba7._comment
new file mode 100644
index 000000000..dd0db2260
--- /dev/null
+++ b/doc/news/version_5.20150930/comment_1_f77fe435289343ae0511ffceade23ba7._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="jephte.clain@f0da2444b164953b596ac5e3e38da30b8c04e5e3"
+ nickname="jephte.clain"
+ subject="thanks"
+ date="2015-10-01T04:25:02Z"
+ content="""
+hello,
+
+thanks, this version works on debian squeeze lts, unlike the previous. this is very good news, and a fine piece of software!
+
+I wonder: why do you depend on a minimum kernel version? for example, I have a NAS with a very old 2.6.16 embedded linux kernel which cannot be updated, and because of this, I'm stuck with an ancient git-annex version.
+
+"""]]
diff --git a/doc/news/version_5.20150930/comment_2_77faf81efaffb2637cfa0caba1758768._comment b/doc/news/version_5.20150930/comment_2_77faf81efaffb2637cfa0caba1758768._comment
new file mode 100644
index 000000000..d4a4bd111
--- /dev/null
+++ b/doc/news/version_5.20150930/comment_2_77faf81efaffb2637cfa0caba1758768._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="jephte.clain@f0da2444b164953b596ac5e3e38da30b8c04e5e3"
+ nickname="jephte.clain"
+ subject="it does not work with debian squeeze lts"
+ date="2015-10-01T12:13:11Z"
+ content="""
+hmmm... nope, it still does not work on debian squeeze lts with kernel 2.6.32-5-amd64 (when I tested earlier, I was using a more recent kernel...)
+"""]]
diff --git a/doc/news/version_5.20150930/comment_3_1cd9afc5c56781844fbff908c910056b._comment b/doc/news/version_5.20150930/comment_3_1cd9afc5c56781844fbff908c910056b._comment
new file mode 100644
index 000000000..8a974ad11
--- /dev/null
+++ b/doc/news/version_5.20150930/comment_3_1cd9afc5c56781844fbff908c910056b._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ subject="comment 3"
+ date="2015-10-01T20:14:48Z"
+ content="""
+There's an \"ancient kernels\" build you can use on those old systems.
+"""]]
diff --git a/doc/news/version_5.20150930/comment_4_42c068c99a7658bdad61fbb740ffe603._comment b/doc/news/version_5.20150930/comment_4_42c068c99a7658bdad61fbb740ffe603._comment
new file mode 100644
index 000000000..8949b5840
--- /dev/null
+++ b/doc/news/version_5.20150930/comment_4_42c068c99a7658bdad61fbb740ffe603._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="jephte.clain@f0da2444b164953b596ac5e3e38da30b8c04e5e3"
+ nickname="jephte.clain"
+ subject="comment 4"
+ date="2015-10-03T09:11:02Z"
+ content="""
+ohh... I see. I have a script that download the latest release and did not notice the new files.
+
+Can you make an \"ancient kernel\" release for amd64? I don't have any computers with 32bits kernels. thanks in advance
+
+"""]]
diff --git a/doc/news/version_5.20150930/comment_5_f52b7d5c1cffaae12aac1cd7905481a2._comment b/doc/news/version_5.20150930/comment_5_f52b7d5c1cffaae12aac1cd7905481a2._comment
new file mode 100644
index 000000000..02d120701
--- /dev/null
+++ b/doc/news/version_5.20150930/comment_5_f52b7d5c1cffaae12aac1cd7905481a2._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 5"""
+ date="2015-10-04T19:31:47Z"
+ content="""
+The 32 bit build will also work on amd64 as long as the kernel supports
+32 bit executables. Are you having some difficulty using that on amd64?
+"""]]
diff --git a/doc/special_remotes.mdwn b/doc/special_remotes.mdwn
index 079e9d576..b01a98419 100644
--- a/doc/special_remotes.mdwn
+++ b/doc/special_remotes.mdwn
@@ -43,6 +43,7 @@ for using git-annex with various services:
* [hubiC](https://github.com/Schnouki/git-annex-remote-hubic)
* [pCloud](https://github.com/tochev/git-annex-remote-pcloud)
* [[ipfs]]
+* [Ceph](https://github.com/mhameed/git-annex-remote-ceph)
Want to add support for something else? [[Write your own!|external]]
diff --git a/doc/special_remotes/S3.mdwn b/doc/special_remotes/S3.mdwn
index 33f0410bb..f4d1c552e 100644
--- a/doc/special_remotes/S3.mdwn
+++ b/doc/special_remotes/S3.mdwn
@@ -37,9 +37,19 @@ the S3 remote.
"us-west-1", "us-west-2", "ap-southeast-1", "ap-southeast-2", and
"sa-east-1".
-* `storageclass` - Default is "STANDARD". If you have configured git-annex
- to preserve multiple [[copies]], consider setting this to "REDUCED_REDUNDANCY"
- to save money.
+* `storageclass` - Default is "STANDARD".
+ Consult S3 provider documentation for pricing details and available
+ storage classes.
+
+ When using Amazon S3, if you have configured git-annex to preserve
+ multiple [[copies]], consider setting this to "REDUCED_REDUNDANCY"
+ to save money. Or, if the remote will be used for backup or archival,
+ and so its files are Infrequently Accessed, "STANDARD_IA" is also a
+ good choice to save money.
+
+ Note that changing the storage class of an existing S3 remote will
+ affect new objects sent to the remote, but not objects already
+ stored there.
* `host` and `port` - Specify in order to use a different, S3 compatable
service.
diff --git a/doc/tips/Repositories_with_large_number_of_files/comment_2_f8417d9ebcfdcba34dfbbf76070ad95c._comment b/doc/tips/Repositories_with_large_number_of_files/comment_2_f8417d9ebcfdcba34dfbbf76070ad95c._comment
new file mode 100644
index 000000000..86bb069b5
--- /dev/null
+++ b/doc/tips/Repositories_with_large_number_of_files/comment_2_f8417d9ebcfdcba34dfbbf76070ad95c._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-09-22T16:51:51Z"
+ content="""
+As writing the index file becomes the bottleneck, turning on split index
+mode might be a help as well. See git-update-index's man page.
+"""]]
diff --git a/doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_1_9d0694204984ec96379a62f0f70ba696._comment b/doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_1_9d0694204984ec96379a62f0f70ba696._comment
new file mode 100644
index 000000000..3a17029ee
--- /dev/null
+++ b/doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_1_9d0694204984ec96379a62f0f70ba696._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="ovidiu@66ace8a8d99ce938b0538ffa0f26d30db02a9626"
+ nickname="ovidiu"
+ subject="Need advice on using gitlab with the assistant"
+ date="2015-10-03T21:03:45Z"
+ content="""
+There is a GUI and I followed it but when upgrading it to a full git-annex repository I get:
+
+remote: GitLab: You are not allowed to force push code to a protected branch on this project.
+To git@git-annex-gitlab.com-git_22_pacuraru.2Fgitannex.2Egit:pacuraru/gitannex.git
+ ! [remote rejected] refs/gcrypt/gitception+ -> master (pre-receive hook declined)
+error: failed to push some refs to 'git@git-annex-gitlab.com-git_22_pacuraru.2Fgitannex.2Egit:pacuraru/gitannex.git'
+error: failed to push some refs to 'gcrypt::git@git-annex-gitlab.com-git_22_pacuraru.2Fgitannex.2Egit:pacuraru/gitannex.git'
+[2015-10-03 23:01:30.409376] main: Syncing with gitlab.com_pacuraru_gitannex.git
+"""]]
diff --git a/doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_2_1c33d3f62ec7119c116ad02b75c91f8a._comment b/doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_2_1c33d3f62ec7119c116ad02b75c91f8a._comment
new file mode 100644
index 000000000..cdbc035e4
--- /dev/null
+++ b/doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_2_1c33d3f62ec7119c116ad02b75c91f8a._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="ovidiu@66ace8a8d99ce938b0538ffa0f26d30db02a9626"
+ nickname="ovidiu"
+ subject="comment 2"
+ date="2015-10-03T21:27:46Z"
+ content="""
+I managed to overcome that hurdle but now gitlab shows as \"just a git repository\" and I don't seem to be able to do the conversion \"Upgrade Repository\" - nothing in the logs, any ideas?
+"""]]
diff --git a/doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_3_7d3ea328a42c3a1df01f87e5233eca62._comment b/doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_3_7d3ea328a42c3a1df01f87e5233eca62._comment
new file mode 100644
index 000000000..514334247
--- /dev/null
+++ b/doc/tips/centralized_git_repository_tutorial/on_GitLab/comment_3_7d3ea328a42c3a1df01f87e5233eca62._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="ovidiu@66ace8a8d99ce938b0538ffa0f26d30db02a9626"
+ nickname="ovidiu"
+ subject="comment 3"
+ date="2015-10-03T21:29:29Z"
+ content="""
+oh, and btw. there's no button in the assistant to delete this useless gitlab repo, I can only edit it and try and upgrade it which doesn't work :-(
+"""]]
diff --git a/doc/tips/public_Amazon_S3_remote.mdwn b/doc/tips/public_Amazon_S3_remote.mdwn
index 425646676..d362fd75d 100644
--- a/doc/tips/public_Amazon_S3_remote.mdwn
+++ b/doc/tips/public_Amazon_S3_remote.mdwn
@@ -18,7 +18,7 @@ Now, create the remote:
initremote pubs3 (checking bucket) (creating bucket in US) ok
The public=yes is the crtical part; this lets the public read the contents
-of the bucket.
+of the bucket. (This feature needs git-annex 5.20150617 or newer.)
In the above example, no encryption was used, but it will also work
if you enable encryption=shared. Then files will be encrypted on S3, and
diff --git a/doc/tips/setup_a_public_repository_on_a_web_site/comment_4_e20ea0dc04d4d62b699271483f81a136._comment b/doc/tips/setup_a_public_repository_on_a_web_site/comment_4_e20ea0dc04d4d62b699271483f81a136._comment
new file mode 100644
index 000000000..8559a5700
--- /dev/null
+++ b/doc/tips/setup_a_public_repository_on_a_web_site/comment_4_e20ea0dc04d4d62b699271483f81a136._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2015-09-17T13:31:34Z"
+ content="""
+For those not wanting to run their own web server, using Amazon S3 with
+git-annex can work well; it can be configured to let the public download
+files over http. See [[public_Amazon_S3_remote]].
+"""]]
diff --git a/doc/tips/skydriveannex/comment_11_13692d8cb9ccf10ced26d90739385a6a._comment b/doc/tips/skydriveannex/comment_11_13692d8cb9ccf10ced26d90739385a6a._comment
new file mode 100644
index 000000000..981c3dcdc
--- /dev/null
+++ b/doc/tips/skydriveannex/comment_11_13692d8cb9ccf10ced26d90739385a6a._comment
@@ -0,0 +1,47 @@
+[[!comment format=mdwn
+ username="ovidiu@66ace8a8d99ce938b0538ffa0f26d30db02a9626"
+ nickname="ovidiu"
+ subject="comment 11"
+ date="2015-10-03T19:18:24Z"
+ content="""
+shiny:skydriveannex ovi$ git annex initremote skydrive type=external externaltype=skydrive encryption=shared folder=gitannex
+initremote skydrive (encryption setup) (shared cipher) 21:14:20 [skydriveannex-0.2.1] <module> : 'Starting'
+ 21:14:20 [skydriveannex-0.2.1] login : 'EXCEPTION api.auth_get_token:AuthenticationError(u\"Insufficient authentication data provided (missing keys: [u'code'])\",)'
+osascript: OpenScripting.framework - scripting addition \"/Library/ScriptingAdditions/AeroFSFinderExtension.osax\" cannot be used with the current OS because it has no OSAXHandlers entry in its Info.plist.
+git-annex: You need to set OAUTH environment variables and folder and encryption parameters when running initremote.
+
+the folder gitannex was created on my onedrive but that is all.
+
+Log files:
+[2015-10-03 21:12:43.322605] main: Syncing with onedrive
+ 21:12:50 [skydriveannex-0.2.1] <module> : 'Starting'
+ 21:12:5
+
+9 [ sYkoyud rnieveeda ntnoe xs-e0t. 2O.A1U]T Hl oegnivni r:o n'mEeXnCtE PvTaIrOiNa balpeis. aauntdh _fgoeltd_etro kaennd: PernoctroycpotliEornr opra(r4a0m0e,t e'r4s0 0f oCrl itehnet rEermrootre:.
+Bad Request')'
+[2015-10-03 21:13:07.435901] main: Syncing with onedrive
+
+
+ You need to set OAUTH environment variables and folder and encryption parameters for the remote.
+[2015-10-03 21:15:14.60821] main: Syncing with onedrive
+
+
+ You need to set OAUTH environment variables and folder and encryption parameters for the remote.
+[2015-10-03 21:15:57.926083] main: starting assistant version 5.20150929-g7010007
+(scanning...) [2015-10-03 21:15:58.506776] Watcher: Performing startup scan
+(started...) gpg: Signature made Wed Sep 30 20:45:53 2015 CEST using DSA key ID 89C809CB
+gpg: /var/folders/m6/zkd11n111m38ff37zbtgq0lr0000gp/T/git-annex-gpg.tmp.0/trustdb.gpg: trustdb created
+gpg: Good signature from \"git-annex distribution signing key (for Joey Hess) <id@joeyh.name>\"
+gpg: WARNING: This key is not certified with a trusted signature!
+gpg: There is no indication that the signature belongs to the owner.
+Primary key fingerprint: 4005 5C6A FD2D 526B 2961 E78F 5EE1 DBA7 89C8 09CB
+ 21:16:01 [skydriveannex-0.2.1] <module> : 'Starting'
+ 21:16:
+
+01 [Ysokuy dnreievde atnon esxe-t0 .O2A.U1T]H leongviinr o:n m'eEnXtC EvPaTrIiOaNb laepsi .aanudt hf_ogledte_rt oaknedn :ePnrcortyopctoiloEnr rpoarr(a4m0e0t,e r's4 0f0o rC ltiheen tr eEmrortoer.:
+ Bad Request')'
+[2015-10-03 21:16:34.655604] main: Syncing with onedrive
+
+
+ You need to set OAUTH environment variables and folder and encryption parameters for the remote.
+"""]]
diff --git a/doc/tips/using_the_web_as_a_special_remote/comment_12_1704dcd7fc94432af5aa18459495c9ab._comment b/doc/tips/using_the_web_as_a_special_remote/comment_12_1704dcd7fc94432af5aa18459495c9ab._comment
new file mode 100644
index 000000000..522f8c63f
--- /dev/null
+++ b/doc/tips/using_the_web_as_a_special_remote/comment_12_1704dcd7fc94432af5aa18459495c9ab._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
+ subject="how to get access to urls needing authentication without private info in the url"
+ date="2015-09-22T14:05:45Z"
+ content="""
+wget by default consults ~/.netrc where you could specify your account information (man netrc for more detail)
+"""]]
diff --git a/doc/todo/Facilitate_public_pretty_S3_URLs.mdwn b/doc/todo/Facilitate_public_pretty_S3_URLs.mdwn
index 328eae27f..f5b925498 100644
--- a/doc/todo/Facilitate_public_pretty_S3_URLs.mdwn
+++ b/doc/todo/Facilitate_public_pretty_S3_URLs.mdwn
@@ -14,3 +14,7 @@ Adding all the objects into git-annex, IIUC currently would require me:
The ideal solution in my mind is for git-annex to track the contents of S3 as they are now, preserving the URLs and tracking the checksums in a separate index file.
Thank you!
+
+> I don't think this is something git-annex can usefully do.
+> Instead, see
+> <http://git-annex.branchable.com/tips/public_Amazon_S3_remote/>. [[done]] --[[Joey]]
diff --git a/doc/todo/Nearline_support.mdwn b/doc/todo/Nearline_support.mdwn
index 2c9947830..f21af64cf 100644
--- a/doc/todo/Nearline_support.mdwn
+++ b/doc/todo/Nearline_support.mdwn
@@ -2,3 +2,11 @@ This has been described as Google's [[special_remotes/glacier]].
* [Announcement](http://googlecloudplatform.blogspot.in/2015/03/introducing-Google-Cloud-Storage-Nearline-near-online-data-at-an-offline-price.html)
* <https://cloud.google.com/storage/docs/nearline-storage>
+
+> This is a dup of
+> [[bugs/Support_non-default_storage_classes_with_Google_Cloud_Storage]],
+> which has more useful info, so [[closing|done]].
+>
+> However, that about using its S3 compatability API. There's an external
+> special remote just for nearline, which may be a better choice due to
+> using the native API, and already works. --[[Joey]]
diff --git a/doc/todo/annex.hardlink_should_also_affect_copy_to_origin.mdwn b/doc/todo/annex.hardlink_should_also_affect_copy_to_origin.mdwn
new file mode 100644
index 000000000..d79c13f92
--- /dev/null
+++ b/doc/todo/annex.hardlink_should_also_affect_copy_to_origin.mdwn
@@ -0,0 +1,7 @@
+When a repo has annex.hardlink set, objects are hard-linked into the
+repository when eg `git annex copy --from origin`. This should also
+be done when copying files --to origin (or other remotes on the same
+filesystem). This way, a quick shared clone can be used to add/modify
+files, and cheaply send the changes back to the parent repo. --[[Joey]]
+
+> [[done]] --[[Joey]]
diff --git a/doc/todo/autoenable__61__true_for_special_remotes.mdwn b/doc/todo/autoenable__61__true_for_special_remotes.mdwn
index 8b0f01962..7e93ded0d 100644
--- a/doc/todo/autoenable__61__true_for_special_remotes.mdwn
+++ b/doc/todo/autoenable__61__true_for_special_remotes.mdwn
@@ -1,3 +1,20 @@
Just passing along from https://github.com/datalad/datalad/issues/77#issuecomment-134688459
joey: I do think there could be a use case for configuring a special remote with autoenable=true and have git-annex init try to enable all such remotes.
+
+> [[done]], I made both `git init` and `git annex reinit` auto-enable
+> such special remotes. For now, the assistant does not (could change).
+>
+> There was also the question of what to do when git-annex auto-inits
+> in a clone of a repository. It wouldn't do for a command like
+> `git annex find`'s output to include any messages that might be shown while
+> auto-enabling special remotes as a result of an auto-init.
+> Since I can't guarantee enabling special remotes will be quiet, I've not
+> tried to auto-enable special remotes in this case.
+>
+> I think I'd have to
+> exec a git-annex init process with stdout sent to stderr to implement
+> this in a safe way, and due to calls to ensureInitialized in Remote.Git,
+> which can auto-init a local remote, that gets particularly tricky. Best, I
+> feel, to wait and see if anyone needs that.
+--[[Joey]]
diff --git a/doc/todo/checksum_verification_on_transfer/comment_2_1267ff79ddc84dad146bdb11a7bdf8b2._comment b/doc/todo/checksum_verification_on_transfer/comment_2_1267ff79ddc84dad146bdb11a7bdf8b2._comment
new file mode 100644
index 000000000..39f0a9e2c
--- /dev/null
+++ b/doc/todo/checksum_verification_on_transfer/comment_2_1267ff79ddc84dad146bdb11a7bdf8b2._comment
@@ -0,0 +1,35 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-10-01T15:45:18Z"
+ content="""
+My original reasoning makes sense for uploads, I think.
+
+The checksum library used is a lot faster now, but it would still be best
+to do the checksum as part of the same file read used to transfer the file,
+when possible.
+
+There is a good reason to want to verify checksums when downloading objects
+too: Git does that, and so if git-annex does too, the same reasoning about
+security can be done about git-annex repositories as can be done about git
+repositories. In other words, not verifying checksums when downloading objects
+violates least surprise.
+
+A concrete example: If the user is uploading objects to gitlab, they should
+be able to git pull, and verify their signed commit, and git annex get, and
+not need to worry about whether gitlab (or a MITM) could do something evil
+to the downloaded objects.
+
+Similarly, a S3 special remote does not include the git repo, so users
+should be able to assume that, given their locally trusted git repo, git
+annex get will only ever get verified objects from the S3 remote.
+
+Question: What about local repositories, eg on a removable drive?
+Git does do checksum verification between local repositories, unless
+cloned with --shared. Probably follows git-annex should too.
+
+My current thinking is that this verification should be done by default.
+Security features that are not enabled by default are not very useful.
+It should, however, be able to be turned off, either globally, or on a
+per-remote basis.
+"""]]
diff --git a/doc/todo/checksum_verification_on_transfer/comment_3_2fa9445619032a378264de8b59958c60._comment b/doc/todo/checksum_verification_on_transfer/comment_3_2fa9445619032a378264de8b59958c60._comment
new file mode 100644
index 000000000..b18e7dcb5
--- /dev/null
+++ b/doc/todo/checksum_verification_on_transfer/comment_3_2fa9445619032a378264de8b59958c60._comment
@@ -0,0 +1,17 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""status update"""
+ date="2015-10-01T19:17:38Z"
+ content="""
+Checksum verification is now done for all downloads, unless disabled via
+annex.verify=false.
+
+When an object is uploaded to a regular git remote, checksum verification
+also also done. (For a local directory, git-annex runs a download from the
+perspective of the remote, so we get it for free, and when git-annex-shell
+recvkey is used, it checksums the data it receives and compares it with the
+key.)
+
+For uploads to special remotes, no checksum verification is done yet.
+Leaving this todo item open because of that gap in the coverage.
+"""]]
diff --git a/doc/todo/deferred_update_mode.mdwn b/doc/todo/deferred_update_mode.mdwn
new file mode 100644
index 000000000..9eef53615
--- /dev/null
+++ b/doc/todo/deferred_update_mode.mdwn
@@ -0,0 +1,28 @@
+`git annex sync` and the assistant do a merge of new revs, and then
+download the content of files. However, this means that broken links can
+show up, when a file has changed, or a new file was added. In some
+workflows, the user would prefer not to ever see such broken links
+(or at least never for files that are in the repo's preferred content).
+
+So, how about a new mode, that defers updating the work tree until
+the content of everything wanted is available?
+
+This could be a annex.merge=downloadfirst setting; it would make sync/assistant
+look at the diff between HEAD and the new rev, and try to get all annexed files
+added in that diff, before merging it.
+
+Of course, it could take a long time to get to see a new work tree.
+Might have to download a lot of content.
+
+What to do if it fails to download a file's content? Could either
+abort, leaving the current work tree as-is, or could go ahead and merge,
+letting broken links show up in this case. I kind of prefer the abort
+option. But, if the content never reaches any remote, or has gone missing
+entirely, that would make sync never succeed. That could be surprising
+behavior.
+
+Probably best to let the user pick either behavior, so
+annex.merge=trydownloadfirst and annex.merge=reqdownloadfirst
+
+Let `git annex merge` be used to force a merge, even when content is not
+available.
diff --git a/doc/todo/does_not_preserve_timestamps/comment_7_eefa6afce824f1069bb5216b392405b7._comment b/doc/todo/does_not_preserve_timestamps/comment_7_eefa6afce824f1069bb5216b392405b7._comment
new file mode 100644
index 000000000..19c508c50
--- /dev/null
+++ b/doc/todo/does_not_preserve_timestamps/comment_7_eefa6afce824f1069bb5216b392405b7._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="fastguy"
+ subject="Any updates?"
+ date="2015-09-25T19:35:18Z"
+ content="""
+Hi, would there be any updates on this issue or do we still not preserve timestamps when syncing between locations?
+"""]]
diff --git a/doc/todo/does_not_preserve_timestamps/comment_8_f2a32e39356f7b772ab9cf3136436700._comment b/doc/todo/does_not_preserve_timestamps/comment_8_f2a32e39356f7b772ab9cf3136436700._comment
new file mode 100644
index 000000000..6085171f2
--- /dev/null
+++ b/doc/todo/does_not_preserve_timestamps/comment_8_f2a32e39356f7b772ab9cf3136436700._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="graboluk@f6de53961ab0f884e203f602f65eb5cdc0fb7513"
+ nickname="graboluk"
+ subject="timestamps are wrong as of 5.20150731"
+ date="2015-09-26T18:31:46Z"
+ content="""
+I confirm this issue is still present in the debian testing version 5.20150731. This really makes git-annex quite unusable for me, as part of my setup is that my server downloads various podcasts (think news videos from euronews, german tagesschau, some youtube podcasts), which then get distributed to my other computers. This way I don't have to use youtube etc., which makes a huge difference in terms of speed (my main home computer is from 2006 and it plays all hte videos just fine, but a website likie youtube.com is too much for it). At a speed of single shortcut I see a list of newest podcasts and I can choose one without bothering to open the webbrowser.
+
+The point is that I really like to have all those podcasts to be sorted by their modified date, for rather obvious reasons. (with dropbox it works fine.)
+"""]]
diff --git a/doc/todo/does_not_preserve_timestamps/comment_9_62736ee2f299d62f685800353fc36ccf._comment b/doc/todo/does_not_preserve_timestamps/comment_9_62736ee2f299d62f685800353fc36ccf._comment
new file mode 100644
index 000000000..ed9c0e41e
--- /dev/null
+++ b/doc/todo/does_not_preserve_timestamps/comment_9_62736ee2f299d62f685800353fc36ccf._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="kalle@bdf75651b439b088e51f28f10f5a46ffcd2a704d"
+ nickname="kalle"
+ subject="importfeed template"
+ date="2015-09-28T19:52:16Z"
+ content="""
+You can use the `--template` flag and prefix the filename with the date. See [[/tips/downloading_podcasts]]. If you need very accurate modification times that won't work but should work in this case?
+"""]]
diff --git a/doc/todo/enable_a_discussion_forum_or_support_system.mdwn b/doc/todo/enable_a_discussion_forum_or_support_system.mdwn
index 99f291e35..ba057ea38 100644
--- a/doc/todo/enable_a_discussion_forum_or_support_system.mdwn
+++ b/doc/todo/enable_a_discussion_forum_or_support_system.mdwn
@@ -15,6 +15,8 @@ better than a simple web forum or mailing list; which may end up being
the only solution considering the first requirements, but let's give
it a try. :)
+[[!toc]]
+
Stack exchange
==============
diff --git a/doc/todo/find_unused_in_any_commit.mdwn b/doc/todo/find_unused_in_any_commit.mdwn
index 11bbbd726..cfe2faab8 100644
--- a/doc/todo/find_unused_in_any_commit.mdwn
+++ b/doc/todo/find_unused_in_any_commit.mdwn
@@ -12,3 +12,6 @@ the whole commit history if there were no more objects to check. Still,
gonna be slooow. Another optimisation would be to get only the objects
changed by the commit, and not look at the whole tree as it appeared on
each commit. --[[Joey]]
+
+> Closing, --used-refspec allows doing this kind of thing.
+> (It can indeed make it slow!) [[done]] --[[Joey]]
diff --git a/doc/todo/make_status_show_staged_files.mdwn b/doc/todo/make_status_show_staged_files.mdwn
index cd2de5bce..4d418bc11 100644
--- a/doc/todo/make_status_show_staged_files.mdwn
+++ b/doc/todo/make_status_show_staged_files.mdwn
@@ -21,3 +21,5 @@ Using the `git status` command directly will show the added files
### What version of git-annex are you using? On what operating system?
git-annex version: 5.20141024-g613f396
+
+> [[done]] --[[Joey]]
diff --git a/doc/todo/patch:_Command__47__Unused.hs:_Change_--unused-refspec_back_to_--used-refspec.mdwn b/doc/todo/patch:_Command__47__Unused.hs:_Change_--unused-refspec_back_to_--used-refspec.mdwn
new file mode 100644
index 000000000..87a0428f0
--- /dev/null
+++ b/doc/todo/patch:_Command__47__Unused.hs:_Change_--unused-refspec_back_to_--used-refspec.mdwn
@@ -0,0 +1,35 @@
+This patch is also available from the "used-refspec-fix" branch at <https://github.com/sunny256/git-annex/>.
+
+[[!format hs """
+
+From e47e743327e519eaa07817c610b08b0e6844ca8e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=98yvind=20A=2E=20Holm?= <sunny@sunbase.org>
+Date: Tue, 8 Sep 2015 14:29:25 +0200
+Subject: [PATCH] Command/Unused.hs: Change --unused-refspec back to
+ --used-refspec
+
+Fix typo in commit 160d4b9 ("convert Unused, and remove some dead code
+for old style option parsing", 2015-07-10), the "git-annex unused
+--used-refspec" option was incorrectly changed to --unused-refspec.
+---
+ Command/Unused.hs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Command/Unused.hs b/Command/Unused.hs
+index a383d56..4756cda 100644
+--- a/Command/Unused.hs
++++ b/Command/Unused.hs
+@@ -53,7 +53,7 @@ optParser _ = UnusedOptions
+ <> help "remote to check for unused content"
+ ))
+ <*> optional (option (eitherReader parseRefSpec)
+- ( long "unused-refspec" <> metavar paramRefSpec
++ ( long "used-refspec" <> metavar paramRefSpec
+ <> help "refs to consider used (default: all branches)"
+ ))
+
+--
+2.6.0.rc0.24.gec371ff
+"""]]
+
+> applied, thanks! [[done]] --[[Joey]]
diff --git a/doc/todo/use_git-mktree_rather_than_index_file.mdwn b/doc/todo/use_git-mktree_rather_than_index_file.mdwn
new file mode 100644
index 000000000..f02fafb08
--- /dev/null
+++ b/doc/todo/use_git-mktree_rather_than_index_file.mdwn
@@ -0,0 +1,29 @@
+When git-annex is updating the git-annex branch, it currently
+uses a separate index file. This adds overhead and complexity to the code.
+Especially when there are many files, the index file gets large and writing
+it gets slow.
+
+It might be an improvement to use `git mktree --batch` to inject a
+tree object into git, without using the index file. `git hash-object`
+is already used to add the files to git. All that would be needed is to
+generate an updated tree containing the new file(s), and then update each
+parent tree up to the root tree. This new tree can then be committed using
+`git commit-tree`
+
+The only thing I can see that might make this slow at all is reading the old
+tree contents, in order to update it. This would need a `git ls-tree` for
+each tree; it does not have a batch mode, so 4 processes would need to be
+spawned when generating a tree that changes 1 file. For any repo that's not
+very small, that's probably still faster than rewriting the index file.
+
+Notes:
+
+* The union merge code currently uses the index. No particular reason
+ it needs to; that's just how the code is written, and it might be a large
+ rewrite to change it.
+* A new git-annex branch can be pushed into the repository at any time.
+ The current code uses the index to detect when this happens, and
+ union merges the new branch head into the index. Would need something
+ like a `GIT_ANNEX_HEAD` ref to do the same if the index is removed.
+
+Thanks to sm for indirectly suggesting this. --[[Joey]]
diff --git a/doc/todo/windows_support.mdwn b/doc/todo/windows_support.mdwn
index 42f804195..b8a4adcdd 100644
--- a/doc/todo/windows_support.mdwn
+++ b/doc/todo/windows_support.mdwn
@@ -69,13 +69,6 @@ seems unreliable/broken on Windows.
has to connect twice to the remote system over ssh per file, which
is much slower than on systems supporting connection caching.
* glacier-cli is not easily available (probably)
-* user feedback: "Git on windows installer provides openssh 4.6. git-annex installer
- provides openssh 6.2 . This seems to create problems regarding how
- `known_hosts` file path is setup. Setting `GIT_SSH=` to the git-annex
- openssh version fixes the problem."
- However, I don't know how to determine what that location is after
- it's been installed. Maybe look for ssh.exe in same directory as
- git-annex.exe? --[[Joey]]
## stuff needing testing
diff --git a/doc/todo/wishlist:_matching_options_for_branches.mdwn b/doc/todo/wishlist:_matching_options_for_branches.mdwn
new file mode 100644
index 000000000..03086e0f9
--- /dev/null
+++ b/doc/todo/wishlist:_matching_options_for_branches.mdwn
@@ -0,0 +1 @@
+I have a repository layout where I have multiple unrelated branches in a single repository. Different branches have different policies regarding where their content should be replicated. It would be nice to be able to reflect this with git-annex's matching and preferred content options, but currently there seems to be no way to say "include/exclude files referred to in these branches".
diff --git a/doc/todo/wishlist:_matching_options_for_branches/comment_1_c0d442b646dc40d870b10098a0ee5408._comment b/doc/todo/wishlist:_matching_options_for_branches/comment_1_c0d442b646dc40d870b10098a0ee5408._comment
new file mode 100644
index 000000000..d606d80e1
--- /dev/null
+++ b/doc/todo/wishlist:_matching_options_for_branches/comment_1_c0d442b646dc40d870b10098a0ee5408._comment
@@ -0,0 +1,20 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-09-09T18:34:29Z"
+ content="""
+It's hard to add this kind of thing to the preferred content expressions.
+
+First, it would be quite slow to check if a given key
+was present in some file in a given branch. There's no index for that
+information.
+
+Second, even if that were implemented, there's no guarantee at all that
+different repositories have the same git branches. If repo Foo wants files in
+branch B, and repo Bar sees that, and has no branch B, or a different
+version of branch B, how is it supposed to know which files to send to
+repo Foo?
+
+So, I can see the use case, but I don't see how preferred content can
+support it.
+"""]]
diff --git a/doc/todo/wishlist:_use_hardlinks_for_local_clones/comment_5_90aacf46abdeab34ec8e402613da679d._comment b/doc/todo/wishlist:_use_hardlinks_for_local_clones/comment_5_90aacf46abdeab34ec8e402613da679d._comment
new file mode 100644
index 000000000..0aa945f6b
--- /dev/null
+++ b/doc/todo/wishlist:_use_hardlinks_for_local_clones/comment_5_90aacf46abdeab34ec8e402613da679d._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="lealanko"
+ subject="comment 5"
+ date="2015-09-06T13:26:49Z"
+ content="""
+> you can \"git clone --shared\" and this will set up a clone of a repository in which git-annex will use hardlinks
+
+Copying files from the shared origin repository to the clone will create a hardlink, yes. But copying a file from the clone to the origin will still create a physical copy, even though the situation is quite comparable. Could hardlink support be added in this direction as well?
+"""]]
diff --git a/doc/todo/wishlist:_use_hardlinks_for_local_clones/comment_6_3971f77ef70c81e4bf94cd0cab1335ac._comment b/doc/todo/wishlist:_use_hardlinks_for_local_clones/comment_6_3971f77ef70c81e4bf94cd0cab1335ac._comment
new file mode 100644
index 000000000..68794ce0d
--- /dev/null
+++ b/doc/todo/wishlist:_use_hardlinks_for_local_clones/comment_6_3971f77ef70c81e4bf94cd0cab1335ac._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 6"""
+ date="2015-09-09T18:41:02Z"
+ content="""
+@lealanko, that's a good point, but a old closed todo item is not the best
+place to make such a request. I've opened a new todo item about that.
+"""]]
diff --git a/doc/todo/xmpp_removal.mdwn b/doc/todo/xmpp_removal.mdwn
new file mode 100644
index 000000000..9eb040780
--- /dev/null
+++ b/doc/todo/xmpp_removal.mdwn
@@ -0,0 +1,25 @@
+I'd like to eventually remove XMPP support from git-annex. --[[Joey]]
+
+The XMPP feature makes git-annex harder to build (needs a lot of C
+libraries), and is increasingly rarely used.
+
+For over a year, git-annex-shell has been able to notify clients when a
+change lands in a git repo on a ssh server. This notification is the main
+thing XMPP support was used for. Even users without a ssh server of their
+own don't need XMPP for this; the feature is supported by GitLab.com.
+
+The only other advantages to keeping XMPP support are:
+
+* Supports peer-to-peer git push over XMPP. Except, this hack has never
+ worked very reliably, and exposes the git repo to the XMPP server,
+ and needing an XMPP server is not a pure p2p solution anyway.
+* Friend discovery and easy sharing of git repo to friends.
+
+It would be nice if there were a pure P2P replacement for XMPP, like
+telehash. But, can't wait on that forever..
+
+XMPP support is already disabled by default in some builds of git-annex,
+notably the stack build. It's never worked on Windows.
+
+Next step is probably to default the flag to false by default,
+except for in a few builds like the Debian package and standalone builds.
diff --git a/doc/todo/xmpp_removal/comment_1_457f98a4354ad6c17dcfb5eeefb4b11e._comment b/doc/todo/xmpp_removal/comment_1_457f98a4354ad6c17dcfb5eeefb4b11e._comment
new file mode 100644
index 000000000..6f67d3da8
--- /dev/null
+++ b/doc/todo/xmpp_removal/comment_1_457f98a4354ad6c17dcfb5eeefb4b11e._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="dxld@02c834b220f9ffc0410d37263aa29d9373cc455b"
+ nickname="dxld"
+ subject="Fully p2p alternative to XMPP"
+ date="2015-10-01T17:22:44Z"
+ content="""
+It looks like no one else has suggested this yet so I guess I'll have to: [Tox](https://tox.chat/)
+
+Tox is pretty easy to build on all platforms (GNU/Linux, Mac and WinDOS). All the protocol relevant bits are implemented as a single C library (libtoxcore). It supports bulk file transfers and handles all the NAT hole punching nastiness internally AFAIK.
+
+Thoughts?
+
+"""]]
diff --git a/doc/trust.mdwn b/doc/trust.mdwn
index bfb36b5b9..f93c4a9c9 100644
--- a/doc/trust.mdwn
+++ b/doc/trust.mdwn
@@ -20,7 +20,7 @@ There is still some trust involved here. A semitrusted repository is
depended on to retain a copy of the file content; possibly the only
[[copy|copies]].
-(Being semitrusted is the default. The [[git-annex-semitrust]] command
+(Being semitrusted is the default. The [[git-annex semitrust|git-annex-semitrust]] command
restores a repository to this default, when it has been overridden.
The `--semitrust` option can temporarily restore a repository to this
default.)
@@ -34,7 +34,7 @@ This is a good choice for eg, portable drives that could get lost. Or,
if a disk is known to be dying, you can set it to untrusted and let
`git annex fsck` warn about data that needs to be copied off it.
-To configure a repository as untrusted, use the [[git-annex-untrust]]
+To configure a repository as untrusted, use the [[git-annex untrust|git-annex-untrust]]
command.
## trusted
diff --git a/git-annex.cabal b/git-annex.cabal
index c9103d9d5..acf7e63e9 100644
--- a/git-annex.cabal
+++ b/git-annex.cabal
@@ -1,5 +1,5 @@
Name: git-annex
-Version: 5.20150824
+Version: 5.20150930
Cabal-Version: >= 1.8
License: GPL-3
Maintainer: Joey Hess <id@joeyh.name>
diff --git a/stack.yaml b/stack.yaml
new file mode 100644
index 000000000..a75eb43f1
--- /dev/null
+++ b/stack.yaml
@@ -0,0 +1,31 @@
+flags:
+ git-annex:
+ asciiprogress: false
+ tahoe: true
+ tdfa: true
+ inotify: true
+ feed: true
+ database: true
+ webapp-secure: true
+ production: true
+ ekg: false
+ assistant: true
+ pairing: true
+ cryptonite: true
+ xmpp: false
+ network-uri: true
+ s3: true
+ dbus: false
+ testsuite: true
+ webdav: true
+ torrentparser: true
+ android: false
+ androidsplice: false
+ quvi: true
+ dns: true
+ desktopnotify: true
+ webapp: true
+packages:
+- '.'
+extra-deps: []
+resolver: lts-3.7
diff --git a/standalone/windows/build-simple.sh b/standalone/windows/build-simple.sh
index 7e0f40bab..65be71271 100755
--- a/standalone/windows/build-simple.sh
+++ b/standalone/windows/build-simple.sh
@@ -35,7 +35,4 @@ fi
# Build the installer
cabal install nsis
ghc --make Build/NullSoftInstaller.hs -fno-warn-tabs
-PATH="$PATH:/cygdrive/c/Program Files/NSIS"
-# Want to include cygwin programs in bundle, not others, since
-# it includes the cygwin libs that go with them.
-withcygpreferred Build/NullSoftInstaller.exe
+PATH="$PATH:/cygdrive/c/Program Files/NSIS" Build/NullSoftInstaller.exe
diff --git a/standalone/windows/build.sh b/standalone/windows/build.sh
index 8c26874b2..a35df65a1 100755
--- a/standalone/windows/build.sh
+++ b/standalone/windows/build.sh
@@ -58,16 +58,24 @@ if ! withcyg cabal build; then
Build/EvilLinker
fi
-# Build the installer
-cabal install nsis
-ghc -fforce-recomp --make Build/NullSoftInstaller.hs -fno-warn-tabs
-# Want to include cygwin programs in bundle, not others, since
-# it includes the cygwin libs that go with them.
-# Currently need an older version of rsync than the one from cygwin.
-if [ ! -e rsync.exe ]; then
+# Get extra programs to bundle with git-annex.
+# These are msys2 programs, from https://msys2.github.io/.
+# Since git for windows uses msys2, and includes its libraries,
+# these programs will work well with it.
+if [ ! -e rsync.exe ] || [ "$(sha1sum rsync.exe)" != "85cb7a4d16d274fcf8069b39042965ad26abd6aa" ]; then
+ rm -f rsync.exe || true
withcyg wget https://downloads.kitenet.net/git-annex/windows/assets/rsync.exe
withcyg chmod +x rsync.exe
fi
+if [ ! -e wget.exe ] || [ "$(sha1sum wget.exe)" != "044380729200d5762965b10123a4f134806b01cf" ]; then
+ rm -f wget.exe || true
+ withcyg wget https://downloads.kitenet.net/git-annex/windows/assets/wget.exe
+ withcyg chmod +x wget.exe
+fi
+
+# Build the installer
+cabal install nsis
+ghc -fforce-recomp --make Build/NullSoftInstaller.hs -fno-warn-tabs
PATH=".:/c/cygwin/bin:$PATH" Build/NullSoftInstaller.exe
rm -f last-incremental-failed
diff --git a/standalone/windows/ssh-keygen.cmd b/standalone/windows/ssh-keygen.cmd
deleted file mode 100644
index c4ec3cdb4..000000000
--- a/standalone/windows/ssh-keygen.cmd
+++ /dev/null
@@ -1,31 +0,0 @@
-@rem Do not use "echo off" to not affect any child calls.
-
-@rem Enable extensions, the `verify other 2>nul` is a trick from the setlocal help
-@verify other 2>nul
-@setlocal enableDelayedExpansion
-@if errorlevel 1 (
- @echo Unable to enable delayed expansion. Immediate expansion will be used.
- @goto fallback
-)
-
-@rem Get the absolute path to the parent directory, which is assumed to be the
-@rem Git installation root.
-@for /F "delims=" %%I in ("%~dp0..") do @set git_install_root=%%~fI
-@set PATH=!git_install_root!\bin;!git_install_root!\mingw\bin;!PATH!
-
-ssh-keygen %*
-@goto end
-
-:fallback
-@rem The above script again with immediate expansion, in case delayed expansion
-@rem is unavailable.
-@for /F "delims=" %%I in ("%~dp0..") do @set git_install_root=%%~fI
-@set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%PATH%
-
-@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
-@if not exist "%HOME%" @set HOME=%USERPROFILE%
-
-ssh-keygen %*
-
-:end
-@rem End of script
diff --git a/standalone/windows/ssh.cmd b/standalone/windows/ssh.cmd
deleted file mode 100644
index 32aa60a4d..000000000
--- a/standalone/windows/ssh.cmd
+++ /dev/null
@@ -1,31 +0,0 @@
-@rem Do not use "echo off" to not affect any child calls.
-
-@rem Enable extensions, the `verify other 2>nul` is a trick from the setlocal help
-@verify other 2>nul
-@setlocal enableDelayedExpansion
-@if errorlevel 1 (
- @echo Unable to enable delayed expansion. Immediate expansion will be used.
- @goto fallback
-)
-
-@rem Get the absolute path to the parent directory, which is assumed to be the
-@rem Git installation root.
-@for /F "delims=" %%I in ("%~dp0..") do @set git_install_root=%%~fI
-@set PATH=!git_install_root!\bin;!git_install_root!\mingw\bin;!PATH!
-
-ssh %*
-@goto end
-
-:fallback
-@rem The above script again with immediate expansion, in case delayed expansion
-@rem is unavailable.
-@for /F "delims=" %%I in ("%~dp0..") do @set git_install_root=%%~fI
-@set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%PATH%
-
-@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
-@if not exist "%HOME%" @set HOME=%USERPROFILE%
-
-ssh %*
-
-:end
-@rem End of script