<maurer>
Weee, time to try to figure out how to install sandstorm on my dev machine. (I never thought sandstorm of all things would be one of the tricky bits, but I guess there are always surprises)
<maurer>
dwrensha: Thing comes partway up, had a random error but seemed to recover, and system updates delete it
<maurer>
What goes wrong is there are no libraries installed where anything expects them
<maurer>
And systemd services are managed declaratively
<maurer>
so....
<dwrensha>
what distro?
<maurer>
I can replicate the error if you actually want it, but this is probably a niche install case, so I should just go fix it the "right" way anyways
<maurer>
NixOS
<maurer>
It also needed some help dealing with e.g. /usr/local/bin not existing
<maurer>
since it tries to create a symlink there
jadewang has quit [Ping timeout: 252 seconds]
* paulproteus
blinks
<paulproteus>
I see, NixOS.
<paulproteus>
Yeah, interesting.
<paulproteus>
I'd love to have a working great NixOS install story for Sandstorm.
<dwrensha>
in theory it ought to be easy, right?
<paulproteus>
FWIW the /usr/local/bin thing comes from Meteor.
<maurer>
Well, I'll probably be trying to get at least something that looks right working
<paulproteus>
It's a fascinating trick where instead of adding things to people's paths, it borrows root to add just one thing to /usr/local/bin.
<maurer>
the big caveat is that due to the way nixos works, none of your autoupdate stuff will work right
<paulproteus>
Maybe we add two things, but same story.
<paulproteus>
Tell me more re: autoupdate
<paulproteus>
I know very little about NixOS.
<paulproteus>
I've been meaning to learn more for like two years.
<maurer>
It installs all files into a read-only hash-addressed store
<maurer>
And then uses symlinks and environment variables to cobble together environments out of those
<paulproteus>
But if I go and mutate all over / how does it undo my beautiful hand-crafted non-functional nonsense?
<maurer>
Well, depends on what you did. It's certainly possible that you could use root to go blow away the rebuilding facility
<paulproteus>
Hah.
<maurer>
but if you for example add a service
<maurer>
then when I run nixos-rebuild to update the system, it regenerates the database of what services are supposed to be running
<paulproteus>
(hypothetically a systemd service added by the Sandstorm install script)
<paulproteus>
Oh, okay, interesting.
<maurer>
and resets systemd with it, so it'll shut off and uninstall said service
<paulproteus>
: D
<maurer>
basically, it treats the entire system as a big build product
<maurer>
Heh. OK. Well, I want to try to put a thing into sandstorm, and my dev machine is now nixos, so I'll give that a shot today and see how it goes
<paulproteus>
So I guess the thing to do is tell Nix that this is something we actually want to keep running.
<paulproteus>
Awesome.
<maurer>
Well, the real way is to produce something called a "nixos module"
<maurer>
Assuming that I successfully do that, the person would just add
<paulproteus>
What thing, btw? Also you could install it to $HOME and then it probably won't get clobbered.
<maurer>
service.sandstorm.enable = true;
<maurer>
to configuration.nix and it'd magically appear
<paulproteus>
And if you run it manually without the systemd service then that might work well.
<maurer>
paulproteus: It's nothing anyone else would want, I'm just making a simple tiny webapp and would like to keep it easily migratable as it grows
<paulproteus>
Awesome. (-:
<paulproteus>
Things no one else would want are things I want to make sure run well in Sandstorm.
<paulproteus>
'Cause I want to see a bajillion things that everyone runs for themselves happily thriving in Sandstormland.
<maurer>
Well, it's a pretty generic yesod+sqlite app
<maurer>
so in theory it'll just be a static binary and like 3 data files
<paulproteus>
Ooh, very nice.
<paulproteus>
FWIW if you ever decide you want to package hledger-web, the Software Freedom Conservancy and Evergreen (library software organization) would love that.
<paulproteus>
If you use vagrant-spk for it I'd love to see your .sandstorm/
<paulproteus>
You are reasonably likely to be happy with the 'diy' stack of vagrant-spk, though in your case, you might go "raw" instead since your package is so minimal.
<maurer>
I'm hoping to avoid vagrant, yeah
<paulproteus>
FWIW if vagrant-spk used Docker on Linux for "virtualization" rather than VirtualBox, would that improve your willingness to use it?
<maurer>
A little? My primary aversions to virtualbox are:
<maurer>
1.) It doesn't coexist well with qemu, and I have qemu images on most of my machines
<maurer>
2.) I've had machines where it doesn't run at all b/c it's mad at my kernel
<maurer>
3.) It uses a bunch of memory and disk for reasons that aren't really necessary for running an app
larjona has joined #sandstorm
<paulproteus>
w/r/t 1.) it doesn't coexist well with qemu if you're currently using kvm-intel.ko, yeah.
<maurer>
Yeah, I think that all of my machines currently have kvm-intel loaded for one reason or another
<maurer>
my day job is as a grad student doing security work, so having tweakable virtualization available is kind of required
<paulproteus>
Huh, actually, I'm not sure if that's true that it doesn't co-exist.
<paulproteus>
I seem to have kvm-intel loaded and also have some VirtualBox VMs.
<maurer>
I've had problems with it in the past. Perhaps they've remedied it.
<paulproteus>
Yeah, I'm legit surprised, and can investigate at some point.
<maurer>
In any case, for my situation I suspect I should be able to make a much smaller spk with raw without too much difficulty
<paulproteus>
I agree re: raw working nicely for you
<maurer>
(but first I need to get sandstorm online, so back to that, ttyl)
<paulproteus>
ttyl!
<paulproteus>
Howdy larjona
<paulproteus>
BTW I think I have some insight into your Framadate oddities.
<paulproteus>
/js/locales/bootstrap-datepicker.en.js is a 404
<paulproteus>
Which seemingly is JS that Framadate needs to generate its UI.
<paulproteus>
Let me look into this more.
<paulproteus>
FWIW larjona I discovered this using the browser's Javascript console.
<paulproteus>
So to some extent it "makes sense" that the request for .en.js is failing.
larjona has quit [Read error: No route to host]
<paulproteus>
But why would framadate be looking for that?
<paulproteus>
Oh well bye larjona.
<paulproteus>
(-:
larjona has joined #sandstorm
<paulproteus>
rehi larjona !
<larjona>
hi! sorry I don't know what's happening these days with my home network
<paulproteus>
n
<paulproteus>
p
<larjona>
paulproteus I noticed about that js missing,
<larjona>
What I did was copying the original bootstrap-datepicker.js to .en.js but didn't help
<larjona>
(well it helped that it's not a 404 anymore, but didn't help to solve my problem)
<maurer>
paulproteus: Oh, one last comment about docker - While such a solution would be nice, it doesn't seem like it could ever really replace vagrant-spk (or similar) since docker doesn't provide true isolation, and one possible use for a vagrant-spk would be to safely run a sloppily written webapp (e.g. gitlab)
<paulproteus>
I think it's "just" a mater of ter of making that JS error go away, and the package would work.
<paulproteus>
(yay lag-induced typo)
<larjona>
a matter or what?
<paulproteus>
making that JS error go away
<paulproteus>
A matter *of* making that JS error go away.
<larjona>
I'll look at it again, but as I wrote, I think I made it dissapear and the problem persisted. But I'll look at it again.
<paulproteus>
Oh, I didn't realize you had made the error disappear and the problem persisted.
<paulproteus>
It's nice that in theory they support any ADOdb database.
<larjona>
I'll try to setup a native install in the machine I'm using for packaging, to see what happens
<larjona>
maybe it's something related to framadate,not to sandstorm.io
<paulproteus>
Cool, yeah. What's what I would do next.
<paulproteus>
I will AFK a bit to get off a train; talk to you after 20 min or so!
<larjona>
ok! nice travel
jadewang has joined #sandstorm
isd has joined #sandstorm
NOTevil has joined #sandstorm
<maurer>
paulproteus: You're the debian dev, right? If you've considered packaging sandstorm before, perhaps you have a version/branch with all the deps autofetching disabled somewhere so I don't need to redo that?
<paulproteus>
That isn't for Sandstorm but for Sandcats, but it's also a Meteor app.
<paulproteus>
But basically, "no."
<maurer>
OK.
<maurer>
Just figured I'd check
* paulproteus
nods
<paulproteus>
The "Sandstorm bundle" does contain all those dependencies pre-auto-fetched, if that helps at all.
<paulproteus>
That's the thing on dl.sandstorm.io.
<maurer>
That's one route I could take. It's not the way I'm supposed to do things, but if I have too much trouble packaging the deps I'll look at it
<maurer>
(ekam is first on the list)
Guest20908 has quit [Changing host]
Guest20908 has joined #sandstorm
Guest20908 is now known as preilly
<maurer>
Hrm. It seems like I'd have to patch capnproto to install ekam properly, since capnproto does not currently install capnpc.ekam-rule anywhere :(
<larjona>
paulproteus I'm still stuck. I've installed a local instance of framadate,with no problems. I've noticed that changing the language also does not work; in the local instance it works. I don't remember where to look for the 404 error of the js, to see if it dissapears when I create the datepicker.en.js file.
<larjona>
oh, now I remember, the 404 I can look at it with the Network inspector
<maurer>
Oh derp, looks like capnpc.ekam-rule isn't even in the tarball :|
<maurer>
Now I'm starting to suspect I'll end up having to do the same "give up and include all the sources" behavior for sandstorm, which kind of defeats the purpose of packaging ekam
<maurer>
but I guess we'll see
jadewang has quit [Remote host closed the connection]
<paulproteus>
Fascinating.
<maurer>
I am unable to tell whether you're being sarcastic and telling me to stop yammering, or if you are saying this because you were actually unaware of this type of all-sources-require dependency
<maurer>
*required
<paulproteus>
maurer: I was actually replying to larjona!
<paulproteus>
But your situation is fascinating too!
<maurer>
Oh, my bad. Sorry.
<paulproteus>
We should fix things so that things are less fascinating!
<paulproteus>
np.
jadewang has joined #sandstorm
mnutt__ has joined #sandstorm
<larjona>
paulproteus I'm still stuck. Reviewed the vagrant-spk up log, nothing interesting except maybe this:
<larjona>
==> default: Note: Sandstorm's storage will only be accessible to the group 'sandstor
<larjona>
'sandstorm'*
<paulproteus>
Agreed. larjona I can try to figure that out later today or so. Sorry about your troubles, and glad you tested against the vanilla install process.
<paulproteus>
... oh hey larjona does it work in 'spk dev' mode?
<paulproteus>
No, right? You get the same problem when 'spk dev'-ing?
<larjona>
the local instalation of Framadate in a LEMP machine works. The vagrant-spk dev works in the sense that I get the app running, but I have no localization, and I cannot pass 1st step of creating the poll
<larjona>
OTOH, php-gettext is properly installed when vagrant-spk up, so I don't know why the localization does not work. I've reviewed with the Inspector and when I drop-down and choose another language, the corresponding datepicker.js is loaded, but the strings of the app remain in English. When I created bootstratp-datepicker.en.js the 404 error disappeared, so it's not because of that.
<larjona>
paulproteus Just 2 questions: (1) Could I "ssh" into the virtual machine somehow, to see the mysql tables, to see if there are any logs?
<larjona>
and (2) If I make some changes in the php code, does it take effect directly (just vagrant-spk dev again, and so) or do I need to destroy the VM and "vagrant-spk up" again?
simonft has quit [Ping timeout: 246 seconds]
<paulproteus>
larjona: Yes it's possible; it's not entirely trivial, though, let me get back to you in a sec (unless zarvox has the MySQL magic command lying around somewhere)
<paulproteus>
larjona: (2) Should take effect immediately.
<larjona>
thanks paulproteus. No hurry
simonft has joined #sandstorm
<paulproteus>
larjona: When you say you "created bootstratp-datepicker.en.js" did you do it by making a blank file? By copying the en_GB one? Or something else?
<paulproteus>
Also jparyani tells me there's a Sandstorm bug with the Accept-Language header that might be affecting you; you can work around it by reloading the page after you change your language.
<zarvox>
larjona: "vagrant-spk ssh" will give you a shell in the VM
<zarvox>
from there, the grain's '/var' lives at /opt/sandstorm/var/sandstorm/grains/$YOUR_GRAIN_ID_HERE/sandbox
<zarvox>
so you can say "mysql -u root --socket /opt/sandstorm/var/sandstorm/$YOUR_GRAIN_ID_HERE/sandbox/run/mysqld/mysqld.sock" to get connection to the grain's mysql
<paulproteus>
++ thank yoU I really need to put that in the docs.
<larjona>
thanks paulproteus zarvox
<zarvox>
larjona: if you only have one grain running, you could also "cd /opt/app/.sandstorm && sudo nsenter --target $(pidof sandstorm-http-bridge) --wd --mount --net --ipc --uts --pid"
<larjona>
paulproteus there's bootstrap-datepicker.js in /js folder, and then, /js/locale/ with bootstrap-datepicker.xx.js (xx the other languages). So I did cp js/bootstrap-datepicker.js js/locale/bootstrap-datepicker.en.js and problem solved.
<zarvox>
which gives you a shell in the grain's environment
<zarvox>
poking at that too much is likely to teach spk dev that you're interested in including files you don't actually need, though
<paulproteus>
I would copy en_GB.js to en.js instead, fwiw.