Commit graph

458 commits

Author SHA1 Message Date
Joey Hess
e802323071
deal with the persistent locpath issue
linux standalone: Generate locale files in ~/.cache/git-annex/locales/ so
they're available even when the standalone tarball is installed in a
directory owned by root.

This avoids a full-on reference counting cleanup hell, by letting old
locale caches linger as long as the standalone bundle directory associated
with them is still around. Old ones get cleaned up.

In the case where the directory has a new bundle unpacked over top of it,
the old locale cache is invalidated and rebuilt. Of course, running
programs using that may get confused, but this was already the case, and
unpacking over top of a bundle is probably not a good idea anyhow.

To support that, added a buildid file, which only needs to be unique across
builds of git-annex with different libc versions. sha1sum of git-annex
seems good enough for that.

Removed debian/patches/standalone-no-LOCPATH as it's no longer
necessary.

This commit was supported by the NSF-funded DataLad project.
2018-07-10 12:13:19 -04:00
Joey Hess
a1b55056fc
Make Build/BuildVersion update embedded version number
This way, autobuilders can run it before building, in a tree where
git-annex was already built, and get the current git rev embedded in the
build.

Before, the version number only updated when the setup program was run,
which was up to cabal and not on every build.
2018-06-26 10:36:54 -04:00
Joey Hess
1bed62bda9
android: try harder to force PIE for android 5+
This may work around ghc's -no-pie flag. Untested.
2018-04-16 17:30:21 -04:00
Joey Hess
8f71b316c9
remove chrpath hack
Makefile: Remove chrpath workaround for bug in cabal,  which is no longer
needed.

https://github.com/haskell/cabal/issues/2717 says it uses RUNPATH instead
of RPATH now, but I don't even see that for statically linked libraries;
the bug with that appears to be fixed.

cabal-install version 1.24.0.2
compiled using version 1.24.2.0 of the Cabal library

I left the rpath removal using otool on OSX because those straight up
broke the linker, and I don't know if the OSX autobuilder is updated to
a new enough cabal to not need it.

This commit was sponsored by Ewen McNeill on Patreon.
2018-02-27 12:02:38 -04:00
Joey Hess
66c377bfce
avoid warning with current ghc
Seems that the cabal macros file is no longer needed to build
DistributionUpdate, and it produced a ton of warnings, so stop including
manually.
2018-01-15 12:19:48 -04:00
Joey Hess
79857d7e9f
Removed the testsuite build flag
Test suite is always included.

Building with this flag disabled has actually been broken for some time,
since Command.TestRemote uses tasty. Fewer build flags are better, so good
time to drop it.

This commit was sponsored by Thomas Hochstein on Patreon.
2017-12-20 12:25:03 -04:00
Joey Hess
308cd1383c
fold Build/SysConfig.hs into BuildInfo via include
This avoids warnings from stack about the module not being listed in the
cabal file. So, the generated file is also renamed to Build/SysConfig.

Note that the setup program seems to be cached despite these changes; I
had to cabal clean to get cabal to update it so that Build/SysConfig was
written.

This commit was sponsored by Jochen Bartl on Patreon.
2017-12-14 12:46:57 -04:00
Joey Hess
9dd67e594f
add warning: to make clear this is not an error 2017-12-11 14:28:39 -04:00
Joey Hess
43cbbfe4f7
turn on lambdacase for distributionupdate 2017-11-29 17:39:57 -04:00
Joey Hess
49663ab6a8
Makefile improvement for BUILDER=stack, use stack to run ghc. 2017-11-07 16:56:48 -04:00
Joey Hess
193612c97a
simplify ikiwiki docs build testing and output 2017-11-07 16:36:01 -04:00
Eric Siegerman
5e68b322ec
Build Build/InstallDesktopFile at "make all" time
If you run stack as root (e.g. for "make install"), any files it
creates under ./ will, of course, be owned by root.  That's a
problem for subsequent runs as non-root.

Reduce the likelihood of that happening by building
Build/InstallDesktopFile during "make all", so that it needn't be
built by "make install".
2017-11-07 16:28:05 -04:00
Joey Hess
589184ccc3
/dev/null stderr when generating completions
avoid usage display when too old optparse-applicative
2017-09-14 13:10:45 -04:00
Joey Hess
d2b69c04e3
better way of finding stack built executable 2017-07-12 17:04:51 -04:00
Joey Hess
5cf7216774
zsh and fish completions
optparse-applicative-0.14.0.0 adds support for these, so have the
Makefile install their scripts when built with it.

CmdLine/GitAnnex/Options.hs now uses action "file" in cmdParams,
which affects the bash and zsh completions, letting them complete
filenames for subcommands that use that. This is not needed for
bash, since bash-completion.bash enables -o bashdefault, which
lets it complete filenames too. But it does not seem to break the bash
completions. It is needed for zsh; the zsh completion otherwise
does not complete filenames. The fish completion will always complete
filenames no matter what. Messy.

This commit was sponsored by Denis Dzyubenko on Patreon.
2017-06-09 11:38:20 -04:00
Joey Hess
5bbb17b80c
run stack setup when building with stack
This gets ghc installed if it's not already.

Motivation: Ævar's git test that runs git-annex test using git
can be called with BUILDER=stack, but without stack setup being run
sometime, the stack build will fail.
2017-05-16 18:04:13 -04:00
Joey Hess
f40a16181b
remove git-annex-shell symlink on clean 2017-05-10 15:39:21 -04:00
Joey Hess
3cffb941d1
test needs git-annex-shell symlink 2017-03-18 16:05:22 -04:00
Joey Hess
002513e194
test suite infra for testing mocked ssh remotes
This commit was supported by the NSF-funded DataLad project.
2017-03-17 19:14:41 -04:00
Joey Hess
3690e9b071
fix osxapp deps 2017-02-28 12:46:00 -04:00
Joey Hess
1dcd68a149
fix osxapp target
Broken by recent changes to other targets
2017-02-26 14:54:24 -04:00
Joey Hess
02d3fbbd8b
add back a configure target
Otherwise, make reconfigures every time and then rebuilds all files.

I went too far in 3af9f5ed1a. All that's
needed is to make the configure target not use Build/SysConfig.hs as the
target name, so make won't delete that file after a failed build.

This commit was supported by the NSF-funded DataLad project
2017-02-24 11:29:48 -04:00
Joey Hess
3af9f5ed1a
remove Build/SysConfig.hs target
The problem with that target was, if a target like git-annex that
depended on it failed for some reason, make would delete
Build/SysConfig.hs, since it knows it's an intermediate file. But, since
stack only builds that file once, that caused all subsequent make git-annex
builds to fail.

Also, this avoids a double stack build when building with stack. Since
stack has no configure stage, and the Build/SysConfig.hs target was
about running the configure stage, the only way to only build once is to
combine the targets like this.

This should work better on the autobuilders that build with stack.

This commit was sponsored by NSF-funded DataLad project
2017-02-21 13:55:41 -04:00
Joey Hess
25e72dd30c
avoid OSX build failure when there are no rpaths to remove 2017-02-14 11:44:52 -04:00
Joey Hess
e2c98f5788
Added git template directory to Linux standalone tarball and OSX app bundle.
Git does not provide a switch to find out where this directory is, and
while the git-init man page says it will always be in
/usr/share/git-core/templates, that's not the case on OSX with git
installed from homebrew. So, I used a hack taking the --man-path and
constructing a path from that. Works on both Debian and OSX at least.
2017-02-10 13:55:54 -04:00
Joey Hess
ab66bbfeb6
Merge branch 'master' into no-xmpp 2016-12-24 15:01:55 -04:00
Joey Hess
070fb9e624
Added git-remote-tor-annex, which allows git pull and push to the tor hidden service.
Almost working, but there's a bug in the relaying.

Also, made tor hidden service setup pick a random port, to make it harder
to port scan.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2016-11-21 17:27:38 -04:00
Joey Hess
d58148031b
remove xmpp support
I've long considered the XMPP support in git-annex a wart.
It's nice to remove it.

(This also removes the NetMessager, which was only used for XMPP, and the
daemonstatus's desynced list (likewise).)

Existing XMPP remotes should be ignored by git-annex.

This commit was sponsored by Brock Spratlen on Patreon.
2016-11-14 14:53:08 -04:00
Joey Hess
c44ac268be
OSX: Remove RPATHs from git-annex binary, which are not needed, slow down startup, and break the OSX Sierra linker.
ghc 8.0.2 may make this unncessary, but it's not in a stackage version yet,
so put in a workaround.

Note that the linux builds already delete the RPATHs for similar reasons.

This commit was sponsored by Josh Taylor on Patreon.
2016-11-07 14:22:14 -04:00
Joey Hess
ec2e1569e6
Linux standalone: Fix location of locale files in the bundle.
The Makefile was putting them in git-annex.linux/i18n/i18n, and so I18NPATH
did not point to the files. I think that on close enough to Debian systems,
localedef then fell back to using the system-wide locale files, while on
other systems it would fail to generate locales.
2016-10-31 14:31:46 -04:00
Joey Hess
10ca4b9788
Improve style of offline html build of website. 2016-10-17 15:55:49 -04:00
Joey Hess
aacd9b190d
Linux standalone: Include locale files in the bundle, and generate locale definition files for the locales in use when starting runshell.
Currently only done for utf-8 locales because the charset can easily be
told for those. Other locales don't include the charset in their name.

The locale definition is generated under git-annex.linux/locales.
So, this only works if the user can write there.

If locale generation fails for any reason, it's silently skipped.

The git-annex-standalone.deb installs the bundle under /usr, so this locale
generation won't work for non-root users.
2016-10-04 16:37:43 -04:00
Joey Hess
49b3ef88f7
Android: Fix disabling use of cp --reflink=auto, curl, sha224, and sha384.
This was originally done in a7ef05a9, but got lost in some change to the
Makefile. Use CROSS_COMPILE=Android to tell configure that it's configuring
for android instead of passing it a parameter.
2016-09-05 14:11:35 -04:00
Joey Hess
382d5ec7f6
removed hackage target, not used now 2016-08-31 18:45:55 -04:00
Joey Hess
626e628417
fix clean of Build/MakeMans 2016-07-19 14:42:11 -04:00
Joey Hess
c04d9d6a01
avoid stripping rpath when linking haskell libs dynamically 2016-07-17 10:58:30 -04:00
Joey Hess
c4229be9a7
Remove unnecessary rpaths in the git-annex binary, but only when it's built using make, not cabal. This speeds up git-annex statup time by around 50%. 2016-07-06 14:40:18 -04:00
Joey Hess
c8dd196234
fix man page building 2016-06-02 16:54:58 -04:00
Joey Hess
f4489cc415
Remove Makefile from cabal tarball; man page building is now handled by a small haskell program.
This actually runs faster than building the man pages from the makefile
did. But the main purpose is to let Setup.hs import Build.Mans and so not
need the makefile.
2016-05-31 13:58:13 -04:00
Joey Hess
f79875ef3b
Updated cabal file explictly lists source files.
The tarball on hackage will include only the files needed for cabal install;
it is NOT the full git-annex source tree. While it's totally obnoxious that
cabal files need every file listed out when basic wildcard support could
avoid hundreds of lines, and have to be maintained when files are added,
this does get the tarball size back down to 1 mb.

This also stops stack from complaining that it found modules not listed in
the cabal file.

debian/changelog, debian/NEWS, debian/copyright: Converted to symlinks
to CHANGELOG, NEWS, and COPYRIGHT, which used to symlink to these instead.
This avoids needing to include debian/ in the hackage tarball.

Setup.hs: Build man pages at install time using make and mdwn2man.
If it fails, which it probably will on windows, just skip installing
them.
2016-05-24 01:28:07 -04:00
Joey Hess
404ad86ef9
allow linuxstandalone to be used with stack built binary 2016-03-05 16:57:37 -04:00
Joey Hess
3a6039c287
typo 2016-02-26 12:21:20 -04:00
Joey Hess
471a211d21
Include magic database in the linux and OSX standalone builds. 2016-02-26 11:54:15 -04:00
Joey Hess
46297817c6
add back caballog target
used by ghci wrapper script
2016-02-15 16:01:31 -04:00
Joey Hess
7aab9a0b23
fix make fast to link executable again
Use second ghc pass, not first.
2016-02-15 00:57:55 -04:00
Joey Hess
246d0d45d7
move -j1 setting to BUILDEROPTIONS, set in debian/rules file
I needed BUILDEROPTIONS to allow passing flags to stack build, but it also
lets me move the -j1 out of the normal build path, and to debian/rules
which has the goal of having a reproducible build
2016-02-05 13:56:27 -04:00
Joey Hess
acac554aa9
avoid running BUILDER clean when it's cabal
This alows debian/rules clean to work when build deps are not installed.
2016-01-22 11:53:14 -04:00
Joey Hess
a2e399a4c0
respond, close bad bug 2016-01-20 14:42:07 -04:00
Joey Hess
fb3d5bfedd
avoid tab warnings 2016-01-14 15:55:00 -04:00
Joey Hess
b03887a7bc
defer find to after build 2015-12-28 17:14:29 -04:00
Joey Hess
3c32b67303
improve binary finding 2015-12-28 16:45:33 -04:00
Joey Hess
441573a92b
support building with BUILDER=stack to use stack instead of cabal 2015-12-28 14:18:47 -04:00
Joey Hess
9f7e4ed811
Build with -j1 again to get reproducible build.
This was in the cabal file earlier, and was removed because it broke the
android cross build. Moving to the git-annex target of the Makefile
will make it be used for Debian packages etc but not android cross builds
or make fast or when users build with cabal.
2015-11-16 16:51:24 -04:00
Joey Hess
361d31fde7
Make git-annex-standalone.deb include the git-annex html documentation, desktop file, and base completion file, same as the regular git-annex.deb.
It already had a doc-base file relating to the html documentation, and
there's no reason not to include the other stuff.
2015-11-10 13:21:05 -04:00
Joey Hess
d9d87fdbc9
Make the git-annex-standalone.deb prevent runshell from installing wrappers into $HOME/.ssh 2015-11-10 12:53:46 -04:00
Joey Hess
18c57daf2e speed up fast builds
Enabling -dynamic avoids writing out many mb of static libs.

-j parallelizes
2015-08-27 09:31:41 -07:00
Joey Hess
fb8fec2a7b exclude thanks page to avoid lintian error about embedded gif 2015-08-19 14:12:22 -04:00
Joey Hess
485465107a Makefile: Pass LDFLAGS, CFLAGS, and CPPFLAGS through ghc and on to ld, cc, and cpp.
As a result of the Makefile changes, the Debian package is built
with various hardening options. Although their benefit to a largely
haskell program is unknown.
2015-08-19 13:53:57 -04:00
Joey Hess
8b22e1df9c last changes to fix android build 2015-08-02 23:02:53 -04:00
Joey Hess
a2409bc644 cleanup makefile 2015-07-23 12:51:27 -04:00
Joey Hess
386b8c394e got bash completion working for "git annex" not just "git-annex"
This needs a patch to git to cause the git-annex completion to be
auto-loaded when completing "git annex <tab>". Otherwise, it will only
load when "git-annex" is tab completed. Once loaded, it works for both
uses. I've submitted the git patch to the git mailing list.
2015-07-16 13:32:23 -04:00
Joey Hess
02d522a12e Debian package (and any other packages built using make install) now includes bash completion. 2015-07-13 12:26:06 -04:00
Joey Hess
797c8970d3 remove obsolete packages from android splice depends hack list 2015-07-03 12:48:08 -04:00
Joey Hess
d2aad2b212 @echo doesn't work in variabe def 2015-06-17 14:06:54 -04:00
Joey Hess
0e8f23fa06 set LC_ALL in ikiwiki build to ensure deterministic build in other locales
smcv suggeted using C.UTF-8, but I want this to work beyond Debian, so went
with C, which seems to work ok.
2015-06-14 10:51:48 -04:00
Joey Hess
bb7ccaa64e add commit-standalone target to refresh quilt patch 2015-06-10 13:57:04 -04:00
Joey Hess
f8affe7d6b some changed deps for android build 2015-06-10 13:48:00 -04:00
Joey Hess
e0c2bcdc74 Build documentation with deterministic=1 for reproducible builds. (A new ikiwiki feature.) Closes: #785736 2015-06-09 17:53:55 -04:00
Joey Hess
8976e4755c fast build mode no longer links exe with recent cabal
I tried removing the --no-link, but then the link fails. Which must be why
cabal is using it.
2015-06-09 14:00:51 -04:00
Joey Hess
9009c4386a more -fno-warn-tabs 2015-05-31 21:18:52 -04:00
Joey Hess
e8e444c4e4 remove targets no longer needed since TH works on arm 2015-05-31 16:49:25 -04:00
Joey Hess
b97e9c1c2d compress standalone tarball with gzip --rsyncable
This should cut down on transfer overhead; in particular the arm
autobuilder is on a slow pipe.
2015-05-31 16:36:50 -04:00
Joey Hess
610a9046ef fix cabal file munging code to work with current cabal file 2015-05-22 14:55:48 -04:00
Joey Hess
5edd322a42 correct path for trustedkeys 2015-05-22 14:01:11 -04:00
Joey Hess
1b01322de0 OSX: Corrected the location of trustedkeys.gpg, so the built-in upgrade code will find it. Fixes OSX upgrade going forward, but older versions won't upgrade themselves due to this problem. 2015-05-22 13:41:47 -04:00
Joey Hess
8e40cb6f56 Build documentation with TZ=UTC for reproducible builds. See #785736. 2015-05-19 15:45:21 -04:00
Joey Hess
a2fd8be337 adjust fast build so that ./ghci works with ghc 7.8.4 2015-05-14 14:47:53 -04:00
Yaroslav Halchenko
cb23224ba3 ENH: make debianstandalone{,-dsc} rules
Moved rules out of debian/rules and avoided need for patching it for
standalone builds
2015-05-11 11:50:59 -04:00
Joey Hess
e980c56f7f apply same fix to sdist target 2015-03-27 18:01:29 -04:00
Joey Hess
6b89692008 Fix make build target. Thanks, Justin Geibel. 2015-03-27 18:00:32 -04:00
Joey Hess
22c9bbdcdf use new mans target for install-mans, fixing OSX build 2015-03-27 13:09:56 -04:00
Joey Hess
bc1c18a951 move build man pages to man/ from top dir 2015-03-23 15:43:45 -04:00
Joey Hess
daec4b007a splitting up the man page
Common command man pages all split out and often expanded.

A few sections split out into their own pages.

Still need to do all the other commands..
2015-03-23 15:36:10 -04:00
Joey Hess
5c2ad84d28 switch to pattern target to build mans 2015-03-23 12:24:20 -04:00
Joey Hess
408669a444 add unordered-containers 2015-02-22 17:46:34 -04:00
Joey Hess
802e210275 more headers 2015-02-22 17:26:16 -04:00
Joey Hess
b6acb2e22b pass pie options to C compiler, not just to linker 2015-01-06 13:16:32 -04:00
Joey Hess
5c77cef271 Android: Provide a version built with -fPIE -pie to support Android 5.0. 2015-01-05 12:29:20 -04:00
Joey Hess
1f6d3ae62f fix path 2014-08-16 13:50:12 -04:00
Joey Hess
6f2213e679 avoid warning about -XMagicHash 2014-08-15 10:58:18 -04:00
Joey Hess
3a9cb6b23b better way to generate tags 2014-07-01 15:11:47 -04:00
Joey Hess
71bb76ee75 sort tags
vim complains if file is not sorted
2014-06-30 18:39:30 -04:00
Joey Hess
a536589422 more robust hothasktags
Works around bug: https://github.com/luqui/hothasktags/issues/18
2014-06-30 18:15:46 -04:00
Joey Hess
5b478722da make DistributionUpdate download build-version files and use them in the info files
Also automated downloading the builds, finally. I had done it by hand until
now.

Note that the Windows autobuilder has an expired cert, so it will refuse to
download from it currently. I have emailed its admin to get that fixed,
hopefully.

This commit was sponsored by Peter Hogg.
2014-06-18 15:24:18 -04:00
Joey Hess
a615817ab1 add Build/BuildVersion, for use by autobuilders 2014-06-18 14:29:39 -04:00
Joey Hess
346112d49a
proper fix for "foo"# -- need MagicHash extension 2014-05-25 23:27:48 -04:00
Joey Hess
ca496b6a97 Standalone builds now check gpg signatures before upgrading. 2014-04-23 13:30:30 -04:00
Joey Hess
515d251127
better approach for building distributionupdate
Use cabal include file
2014-04-21 10:57:01 -04:00
Joey Hess
67e280baa9
nuke tmp dir so things don't linger between builds 2014-04-10 13:08:07 -04:00
Joey Hess
8d5a626a0b rename favicon.png to logo_16x16.png
This was never used as a favicon, it's just a png version of the
favicon.ico. It's actually used for the freedesktop menu file.
2014-03-16 15:52:16 -04:00