Commit graph

380 commits

Author SHA1 Message Date
Joey Hess
adbbb71ccb windows installer is fully working 2013-05-14 19:59:14 -05:00
Joey Hess
6cbca01261 add check for git 2013-05-14 17:24:00 -04:00
Joey Hess
73052a1c90 untested nullsoft installer generator 2013-05-14 17:01:45 -05:00
Joey Hess
dc66b1f27d Merge branch 'master' into windows
Conflicts:
	Annex/Environment.hs
	Build/Configure.hs
	Git/Construct.hs
	Utility/FileMode.hs
2013-05-14 15:37:24 -04:00
Joey Hess
abe8d549df fix permission damage (thanks, Windows) 2013-05-11 23:54:25 -04:00
Joey Hess
629dd2767c rename var 2013-05-10 18:52:35 -04:00
Joey Hess
3d29f50415 only update version in cabal file on release builds
This was being very annoying in windows.
(cherry picked from commit 07b0bf4cee)
2013-05-10 18:51:21 -04:00
Joey Hess
763cbda14f fixup #if 0 stubs to use #ifndef mingw32_HOST_OS
That's needed in files used to build the configure program.
For the other files, I'm keeping my __WINDOWS__ define, as I find that much easier to type.
I may search and replace it to use the mingw32_HOST_OS thing later.
2013-05-10 16:57:21 -05:00
Joey Hess
07b0bf4cee only update version in cabal file on release builds
This was being very annoying in windows.
2013-05-10 15:36:31 -05:00
Joey Hess
524ffd1e68 fix changelog version parse to work on windows
The CHANGELOG file, as a symlink, cannot be read on windows. So read
debian/changelog. Also, newline compat.
2013-05-10 15:26:53 -05:00
Joey Hess
258af9c6da explicity use sh -c when running shell commands
This is necessary to work in Windows. (And will only work when building in Cygwin.)
2013-05-10 15:21:32 -05:00
Joey Hess
a05b4619bb stub out posix stuff for Windows
This is enough to let the configure program build.
2013-05-10 15:08:53 -05:00
Joey Hess
7e5af65110 add a hack to get build working with new library build 2013-05-08 12:52:48 -04:00
Joey Hess
d38854f3d1 configure: Better checking that sha commands output in the desired format.
Run the same code git-annex used to get the sha, including its sanity
checking. Much better than old grep. Should detect FreeBSD systems with
sha commands that output in stange format.
2013-05-08 11:17:09 -04:00
Joey Hess
322e7f44c1 cabal does not like ~ in version numbers, work around (for backports) 2013-05-04 12:24:01 -04:00
Joey Hess
e70a969ef1 EvilSplicer: fix handling of newlines in multiline strings 2013-05-02 22:56:06 -04:00
Joey Hess
25c8258225 fix build 2013-04-24 11:08:35 -04:00
Joey Hess
10fc9bc667 fix build 2013-04-24 10:48:06 -04:00
Joey Hess
b9341fd4c0 handle rpath in OSXMkLibs
Now oberon has some binaries and libraries that use rpath, so I had to put
in this ugly hack to replace the @rapth/lib with the lib in the app.

This was particularly tricky for libraries that use @rpath because I could
not find a way to extract the rpath from the library. (Only from the
executable, by running it.. ugh!) The hack I put in place may fail if
multiple different libraries use rpath to refer to other libraries,
and the "@rpath/lib" string is the same, but actually refers to different
files.
2013-04-22 13:33:29 -04:00
Joey Hess
5faedad2d6 recent change broke this 2013-04-20 19:35:33 -04:00
Joey Hess
d2e92e2494 Install FDO desktop menu file when webapp is started in standalone mode. 2013-04-20 18:48:05 -04:00
Joey Hess
79c0a6f807 argh!! http://hackage.haskell.org/package/zeroth 2013-04-18 20:10:31 -04:00
Joey Hess
715e68ad58 avoid adding parens to lambdas in tuples 2013-04-18 15:07:29 -04:00
Joey Hess
6ee4c2038e run lambda parenthesisation recursively inside the body of the lambda 2013-04-18 14:31:39 -04:00
Joey Hess
b86712ca80 fix lambda parenthesisation 2013-04-18 14:17:24 -04:00
Joey Hess
0d833239f1 fix build 2013-04-18 12:34:14 -04:00
Joey Hess
cc4d11eadd tighten search and replace slightly 2013-04-17 13:18:53 -04:00
Joey Hess
e62de3f3b8 split out library 2013-04-17 12:02:44 -04:00
Joey Hess
6f8ec9a1d2 argle 2013-04-17 11:57:46 -04:00
Joey Hess
faa9b4473c remove module definitions for these standalone programs
Sometimes ghc --make skips building these binaries, as it sees no Main
module.
2013-04-17 11:54:27 -04:00
Joey Hess
7858f92e1a minor cleanup 2013-04-17 02:51:59 -04:00
Joey Hess
9fdca995de very close now.. but still so far 2013-04-17 00:51:29 -04:00
Joey Hess
e9738fd10d deal with GHC's broken layout of case expressions. ARGH why GHC WHY?!?! 2013-04-17 00:01:25 -04:00
Joey Hess
ab905a55fb Splicer contines his evil ways (and Joey goes slowly insane) 2013-04-16 22:28:42 -04:00
Joey Hess
35f2e01c23 Evil Splicer only *thought* he was evil until this commit happened.
So many nasty hacks!
2013-04-16 21:47:08 -04:00
Joey Hess
ce11c339e6 need to mangle another symbol 2013-04-16 19:58:39 -04:00
Joey Hess
a85c9ba561 a few nasty hacks for yesod 2013-04-16 15:10:23 -04:00
Joey Hess
737ece771b update 2013-04-15 17:42:39 -04:00
Joey Hess
f44c917b22 fix 2 splicing bugs 2013-04-15 14:50:05 -04:00
Joey Hess
859c0cdc86 handle multi-line QQ 2013-04-15 14:23:39 -04:00
Joey Hess
c172bf7092 only show files that are really changed 2013-04-15 12:11:27 -04:00
Joey Hess
aaad52881a hack around incorrect nested instance code generated by GHC
Yesod-specific hack for now.
2013-04-14 16:53:41 -04:00
Joey Hess
5fc8bef2e6 better handling of declaration splices
Still not quite enough to properly expand yesod type safe routes, but
getting there..
2013-04-14 16:44:05 -04:00
Joey Hess
2e94852994 fix inplace mode 2013-04-14 16:11:12 -04:00
Joey Hess
0c9bb2371e avoid updating a file if the old splice is the same as the new 2013-04-14 15:50:38 -04:00
Joey Hess
dd7e35ed97 incremental android builds with the EvilSplicer 2013-04-14 13:43:36 -04:00
Joey Hess
0b17d28988 better splice joining 2013-04-13 18:09:20 -04:00
Joey Hess
42ac215827 work around ghc weirdness 2013-04-13 17:53:59 -04:00
Joey Hess
eda0ba7397 fix a syntax problem with a splace that provides a parameter to a function 2013-04-13 17:22:15 -04:00
Joey Hess
504cce3ce3 added symbol de-mangling 2013-04-13 17:15:05 -04:00
Joey Hess
36d581f08d first version of the Evil Splicer! 2013-04-13 16:43:56 -04:00
Joey Hess
59f616684d The version number is now derived from git, unless built with VERSION_FROM_CHANGELOG. 2013-04-10 16:53:38 -04:00
Peter Simons
39e29f7178 Build/mdwn2man: don't rely on perl being installed in /usr/bin; instead find it in $PATH 2013-02-28 16:04:46 -04:00
Joey Hess
0f4cc559a7 Android: Support ssh connection caching. 2013-02-19 14:57:45 -04:00
Joey Hess
a7ef05a988 configure: hardcode some things that cannot be probed for when cross-compiling for Android 2013-02-11 16:56:30 -04:00
Joey Hess
f202d997f4 Now uses the Haskell uuid library, rather than needing a uuid program.
Been meaning to do this for some time; Android port was last straw.

Note that newer versions of the uuid library have a Data.UUID.V4 that
generates random UUIDs slightly more cleanly, but Debian has an old version
of the library, so I do it slightly round-about.
2013-02-10 14:52:54 -04:00
Joey Hess
82617b92e9 move thirdparty program installation for standalone bundle into haskell program
This allows it to use Build.SysConfig to always install the programs
configure detected. Amoung other fixes, this ensures the right uuid
generator and checksum programs are installed.

I also cleaned up the handling of lsof's path; configure now checks for
it in PATH, but falls back to looking for it in sbin directories.
2012-12-14 16:07:59 -04:00
Joey Hess
1a10f109c1 quiet shell error message 2012-12-14 15:05:08 -04:00
Joey Hess
9b663c7f8c remove libSystem.b from OSX build
Without the frameworks, but with this library, I get:

dyld: Symbol not found: __vproc_transactions_enable
  Referenced from: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
  Expected in: /Volumes/git-annex/git-annex.app/Contents/MacOS/./C
 in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation

Without this library, things seem to work again w/o frameworks.
2012-12-13 12:17:12 -04:00
Joey Hess
900351ab85 try skipping OSX frameworks 2012-12-12 21:34:59 -04:00
Joey Hess
43f7110220 typo 2012-12-09 13:45:51 -04:00
Joey Hess
ad488c23ac install libs in subdirs again 2012-12-09 13:42:30 -04:00
Joey Hess
a2a0a71e2b install_name_tool fix 2012-12-09 13:38:08 -04:00
Joey Hess
acbd640f89 optimisation; only run install_name_tool once per binary 2012-12-09 13:29:30 -04:00
Joey Hess
ecc49d7db8 use full path name to generate library filename
avoids overlaps
2012-12-09 13:17:55 -04:00
Joey Hess
4bb8fdb70d typo 2012-12-09 13:08:57 -04:00
Joey Hess
5d73a790e8 avoid using short lib names that clash with unix command names 2012-12-09 13:06:59 -04:00
Joey Hess
da53d0fa10 syntax 2012-12-09 13:02:59 -04:00
Joey Hess
8c082cda2e remove unused cruft 2012-12-09 12:59:34 -04:00
Joey Hess
dea5599d3d oh yeah, OSX is case insensative 2012-12-09 12:54:19 -04:00
Joey Hess
9370c32290 tweak 2012-12-09 12:46:28 -04:00
Joey Hess
8e26b2f941 reverse symlinks 2012-12-09 12:35:50 -04:00
Joey Hess
c6d570a1cc install libs using short names, with symlinks to we can tell what libraries
they are supposed to be
2012-12-09 12:22:09 -04:00
Joey Hess
1c2da18b0b fix executable permissions
sh at least does not default to having a write bit
2012-12-09 12:16:02 -04:00
Joey Hess
76b7ab0b35 fix infinite loop 2012-12-09 12:14:19 -04:00
Joey Hess
01b359b4f8 insane osx short library name hack
Since I'm dealing with arbitrarily short fields in which to store the
library name, and would have to rebuild a bunch of stuff like git to avoid
that, and I have to prefix this obnoxiously long "@executable_path"
to it, it's easy to run out of space. This makes it use 1 and 2 letter long
filenames for libraries in the app. Fun fun fun fun fun.
2012-12-08 17:44:10 -04:00
Joey Hess
56b3dbe544 fix library filenames in osx app 2012-12-08 17:14:45 -04:00
Joey Hess
86e5da4c92 chmod libs so install_name_tool can modify them 2012-12-08 15:54:39 -04:00
Joey Hess
c7a4ad8bc3 move libs to try to fit within available path space 2012-12-08 12:29:09 -04:00
Joey Hess
1dd386903b use install_name_tool to adjust library paths in osx app
Have not yet been able to test this.
2012-12-08 11:07:59 -04:00
Joey Hess
0986a21ce0 Revert "skip frameworks"
This reverts commit f850a64bd0.

At least CoreFoundation framework seems to be needed.
2012-12-07 14:40:48 -04:00
Joey Hess
f850a64bd0 skip frameworks
I suspect this might be related to recent reports of hangs.
2012-12-07 12:21:15 -04:00
Joey Hess
ad71ccdb57 got this working 2012-11-26 17:11:09 -04:00
Joey Hess
40cdfd1a1e add debugging 2012-11-26 16:31:41 -04:00
Joey Hess
4f9cb2041c rewrote OSX library copier in Haskell, now with recursive copying of library deps 2012-11-26 14:09:40 -04:00
Joey Hess
2172cc586e where indenting 2012-11-11 00:51:07 -04:00
Joey Hess
94ccfc92f9 look for gsha* commands, as installed on some OS's that think "GNU" is nonstandard 2012-11-09 11:27:50 -04:00
Joey Hess
60fba9097a don't test host in configure
That'll fail when building offline.
2012-10-30 19:28:46 -04:00
Joey Hess
a0bdb2bb00 SRV lookup library
This uses the ADNS library, if available. Otherwise, the host program.

I anticipate that cabal users won't easily get hsdns installed, since
it's a Haskell binding to a C library. And using host is just fine, as
long as the system has it.
2012-10-25 17:54:00 -04:00
Joey Hess
9cdbfa764e configure: Check that checksum programs produce correct checksums. + bitter rant
So, it might be called sha1sum, or on some other OS, it might be called
sha1. It might be hidden away off of PATH on that OS. That's just expected
insanity; UNIX has been this way since 1980's. And these days, nobody even
gives the flying flip about standards that we briefly did in the 90's
after the first round of unix wars.

But it's the 2010's now, and we've certainly learned something.
So, let's make it so sometimes sha1 is a crazy program that wants to run as
root so it can lock memory while prompting for a passphrase, and outputting
binary garbage. Yes, that'd be wise. Let's package that in major Linux
distros, too, so users can stumble over it.
2012-10-25 00:05:17 -04:00
Joey Hess
1f1d75bc13 OSX: Stop installing non-self-contained webapp into Desktop directory.
This was a stopgap, and we have the self-contained webapp now.
2012-10-21 15:33:06 -04:00
Joey Hess
0e0003f004 fix name of path to osx app directory 2012-10-06 17:03:40 -04:00
Joey Hess
e24ff46f96 move 2012-10-01 13:38:19 -04:00
Joey Hess
b7df987adb osx build fix 2012-09-29 01:08:05 -04:00
Joey Hess
e88e3ba85b standalone linux app nearly ready
also made several fixes that apply to the OSX app
2012-09-28 19:08:13 -04:00
Joey Hess
087781fb05 Always do a system wide installation when DESTDIR is set. Closes: #689052 2012-09-28 15:48:00 -04:00
Joey Hess
9c4a23cab1 install a git-annex-shell shim script when the standalone OSX app runs
I put it in ~/.ssh/ because there's no reliable way to get it into PATH,
and OSX ssh doesn't even honor user's PATH by default.

authorized_keys generators will need to check if it's there. Not done yet.
2012-09-26 17:23:45 -04:00
Joey Hess
3da78cc241 make the standalone OSX app automatically install itself when run 2012-09-26 16:50:04 -04:00
Joey Hess
bc83179a76 Test that uuid -m works, falling back to plain uuid if not. 2012-09-25 10:48:20 -04:00
Joey Hess
356dc9bc17 file name changed 2012-09-25 10:25:31 -04:00
Joey Hess
377636850e use copyFile (supports binary icon file) 2012-09-23 12:24:46 -04:00
Joey Hess
e62a975aa3 install in /Applications 2012-09-23 12:00:14 -04:00
Joey Hess
4baaab02cf install Jimmy's .app on OS X
I'm guessing that ~/Desktop/git-annex.app will be visiable.

For the system-wide installation, I don't know where to put it, though
somewhere in /Library seems likely.
2012-09-23 11:42:44 -04:00
Joey Hess
e8188ea611 flip catchDefaultIO 2012-09-17 00:18:07 -04:00
Joey Hess
ec23eeb9eb typos 2012-09-06 13:51:44 -04:00
Joey Hess
682ae30a08 install a .command file on OSX in the Desktop 2012-09-06 13:24:47 -04:00
Joey Hess
b3df6b1736 make directory 2012-09-06 13:06:44 -04:00
Joey Hess
426d536705 honor destdir for osx too 2012-09-06 13:04:26 -04:00
Joey Hess
5d5cd9f957 write a OSX autostart file
Not tested.
2012-09-06 12:58:46 -04:00
Joey Hess
835b766301 honor DESTDIR 2012-09-06 12:43:46 -04:00
Joey Hess
47b88bbd16 move build scripts 2012-09-01 15:22:22 -04:00
Joey Hess
2433f6ca5a use the ~/.config/git-annex/program file to find command when running transfers 2012-08-27 13:43:03 -04:00
Nicolas Pouillard
e11946796d Fix imports and casing in Build.InstallDesktopFile 2012-08-02 20:11:41 +02:00
Joey Hess
6b38227bad only write data file when installing as normal user 2012-08-02 13:12:36 -04:00
Joey Hess
60da0d6ad2 full autostart support
git annex assistant --autostart will start separate daemons in each
listed autostart repo

running the webapp outside any git-annex repo will open it on the
first listed autostart repo
2012-08-02 00:42:33 -04:00
Joey Hess
23fe661d37 install autostart file too 2012-08-01 23:31:53 -04:00
Joey Hess
e78b13c428 hook desktop menu file installation into makefile and cabal 2012-08-01 21:05:27 -04:00
Joey Hess
9422e27489 installing desktop file working
Not hooked up to either Makefile or cabal yet
2012-08-01 20:49:02 -04:00
Joey Hess
d1da9cf221 switch from System.Cmd.Utils to System.Process
Test suite now passes with -threaded!

I traced back all the hangs with -threaded to System.Cmd.Utils. It seems
it's just crappy/unsafe/outdated, and should not be used. System.Process
seems to be the cool new thing, so converted all the code to use it
instead.

In the process, --debug stopped printing commands it runs. I may try to
bring that back later.

Note that even SafeSystem was switched to use System.Process. Since that
was a modified version of code from System.Cmd.Utils, it needed to be
converted too. I also got rid of nearly all calls to forkProcess,
and all calls to executeFile, which I'm also doubtful about working
well with -threaded.
2012-07-18 18:00:24 -04:00
Joey Hess
bafc50e05e better git version determination 2012-07-10 12:34:29 -06:00
Joey Hess
1da79ea61f When shaNsum commands cannot be found, use the Haskell SHA library (already a dependency) to do the checksumming. This may be slower, but avoids portability problems.
Using Crypto's version of the hashes would be another option.
I need to benchmark it. The SHA2 library (which provides SHA1 also,
confusing name) may be the fastest option, but is not currently in Debian.
2012-07-04 09:11:36 -04:00
Joey Hess
0052cec2b7 add lsof build deps
Check for it in configure; and add a --force option for people without it
who want to live dangerously.
2012-06-15 23:29:39 -04:00
Joey Hess
665c0fbdaa check at configure time for sha commands in Mac OSX location 2012-05-31 23:33:07 -04:00
Joey Hess
2183fd2abd Require that the SHA256 backend can be used when building, since it's the default. 2012-05-31 23:15:40 -04:00
Joey Hess
0e6e840a2a Revert "avoid rewriting SysConfig.hs with identical contents"
That made the Makefile want to rebuild the file each time if it's
dependencies were newer, as it was not updated.
2012-03-23 12:43:21 -04:00
Joey Hess
981e1ab43d avoid rewriting SysConfig.hs with identical contents
This avoids some compliation when when reconfiguring.
2012-03-23 12:39:14 -04:00
Joey Hess
e38a839a80 Rewrote free disk space checking code
Moving the portability handling into a small C library cleans up things
a lot, avoiding the pain of unpacking structs from inside haskell code.
2012-03-22 17:32:47 -04:00
Joey Hess
181d2ccd20 Improve detection of inability to check free disk space.
Don't check if configure indicated checks won't work. This should fix a
FTBFS on mipsel, where configure correctly detects the checks won't work,
while garbage is returned for disk space info at git-annex runtime. It also
means that, when built via cabal, disk space checks are not enabled,
unfortunatly.
2012-03-21 21:21:20 -04:00
Joey Hess
468fecc315 Setup.hs: import configure
Rather than running make, which runs configure, let Setup.hs just include
the configure code. The standalone configure is retained for use by the
Makefile.

This may work better with cabal-dev, since it avoids the Makefile running
ghc, and lets cabal handle all the compiler running, with whatever
flags it uses to expose dependencies.
2012-03-10 14:00:26 -04:00
Joey Hess
737b5d14c9 moved files around 2011-08-20 16:11:42 -04:00