Commit graph

176 commits

Author SHA1 Message Date
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