Commit graph

77 commits

Author SHA1 Message Date
Alex Shinn
1f1b361010 Using Makefile-configured snow install directories. 2022-08-08 18:43:30 +09:00
Alex Shinn
70acbf5a08 fix indentation 2022-08-03 22:44:28 +09:00
Alex Shinn
2f50a6cf74
Merge pull request #848 from lockywolf/crutch-for-relative-install-lib-dir
Add a crutch to better detect snow binary extension dir.
2022-08-03 22:42:40 +09:00
Lockywolf
ac5c10c114 Add a crutch to better detect snow binary extension dir. 2022-08-03 21:40:48 +08:00
Alex Shinn
66deb6fe3b install-data-file should return the installed path 2022-08-03 22:38:07 +09:00
Nguyễn Thái Ngọc Duy
f4008c92cf snow: add TODO regarding summary before upload 2020-09-05 09:31:29 +07:00
Nguyễn Thái Ngọc Duy
711c89cd97 snow: confirm before uploading packages
Uploading a package is an irreversible operation. It's not even about
accidentally leaking your secret sauce to the internet. You could upload
a package to snow-fort.org by accident and pullute the package name
space [1].

So let's ask the user first before going ahead uploading stuff. We only
ask once even if we're going to upload a dozen packages, so it's not
that annoying. The target repo is also shown in case you want to upload
to a custom repo and want to make sure it does so.

[1] I did (while attempting to uploading to a local snow-fort instance
    during testing). I guess `(chibi snow commands)` is forever mine
    now.
2020-09-04 19:25:29 +07:00
Alex Shinn
c82baa3aa9 ignore snow package meta files whose installed files have been removed 2020-09-04 14:04:53 +09:00
Nguyễn Thái Ngọc Duy
b52b2024f8 snow: extract feature list for cond-expand
Currently a package's cond-expand contains the symbol of the target
implementation and optionally more from config file. Execute a
command (once) on target implementation to add their full feature list,
making it available for each package to use.

All of these Schemes are tested. Larceny is just too annoying to get the
feature list (no one-liner, and it could take a while) so Larceny stays
the current behavior.

There is a small unrelated change here: the gosh command to get
version. We don't need to call (exit), if stdin is closed properly (it
should) then gosh should exit regardless.
2020-08-28 16:30:00 +07:00
Alex Shinn
0a503dc3ad use curl for GET as well as POST in snow (i(issue #549) 2020-08-25 15:21:25 +09:00
Alex Shinn
772542694b missing argument in snow package-spec+files 2020-08-01 00:00:38 +09:00
Alex Shinn
67dcd04d03 speedup snow search 2020-07-29 11:01:56 +09:00
Alex Shinn
d593a5cb0a death to tabs 2020-07-28 15:26:42 +09:00
Alex Shinn
5fe3ad766f avoid duplicate libraries 2020-07-21 15:48:35 +09:00
Alex Shinn
fad3413235
Merge pull request #609 from ilammy/snow-usr-local
Always install Snow libraries to /usr/local
2020-02-06 21:15:39 +08:00
Alexei Lozovsky
50a9c9d4d4 Use sudo when doing "snow-chibi remove"
Currently "remove" command does not know how to use sudo to remove
files installed into directories owned by root. By default Snow
installs stuff into /usr/local hierarchy and uses sudo for that.
Let's teach it to remove packages without explicit sudo too.
2020-02-02 16:46:23 +02:00
Alexei Lozovsky
26061930e9 Always install Snow libraries to /usr/local
Snow-Chibi is a local package manager, not a system one. It can install
Scheme packages into system but they are not managed by system package
manager like dpkg, RPM, pacman, ports, etc.

Traditionally (and in accordance with Filesystem Hierarchy Standard),
/usr/local hierarchy should be used for local administrator installs --
and that's what Snow-Chibi provides.

Let's make sure that Snow-Chibi installs snowballs into /usr/local
hierarchy even if Chibi is compiled for installation into the system,
with PREFIX=/usr. Introduce a distinct bunch of variables holding paths
to library installation directories, with "SNOW" prefix:

  - SNOWPREFIX    - default prefix for Snow-installed stuff
  - SNOWLIBDIR    - custom libraries required for Snow itself
  - SNOWSOLIBDIR  - shared libraries required for Snow itself
  - SNOWMODDIR    - Snow installs Scheme modules here
  - SNOWBINMODDIR - Snow installs native libraries here

All of these are set to /use/local by default, just as they are now.
However, they are not affected by regular PREFIX, LIBDIR, MODDIR, etc.
which affect only libraries bundled with Chibi.

And in order for these to work, they need to be added into the current
module path so that they can be used in parallel with system libraries.
Furthermore, we need to tweak "get-install-library-dir" function to use
those paths instead of hardcoded "/usr/local/lib" by default. Introduce
a new helper "get-install-library-dirs", similar to "get-install-dirs".
It will look up the correct installation directories in current module
path, giving preference to the ones with "/lib" in them.

With these defaults, Snow will install Scheme modules into
/usr/local/share/snow and native libraries go into /usr/local/lib/snow,
similar to how built-it libraries are installed into
/usr/local/share/chibi and /usr/local/lib/chibi is used for native code.
Of course, this can be overriden at build time by setting SNOWPREFIX or
individual SNOWMODDIR, SNOWBINMODDIR variables.
2020-02-02 16:21:21 +02:00
Robert Fisher
7f3d322407 Fix installation for Chicken 5
To get the repository path in Chicken 5, we not only have to require the
chicken.platform module, we also need to take the car of the result
since it now returns a list.
2019-08-29 11:42:21 -05:00
Robert Fisher
13d4bbf1d1 Change snow-chibi to work with Chicken 5
The method snow-chibi used to get the version of Chicken installed
doesn't work with Chicken 5. Adding "-R chicken.platform" would make it
work with Chicken 5, but then it wouldn't work with Chicken 4.

In both Chicken 4 & 5, however, csi has a -release option that will just
give the version number. So, I've changed the Chicken version detection
in snow-chibi to use this option.

Testing with...

	./chibi-scheme tools/snow-chibi.scm implementations

...then seemed to work with both Chicken 4 & 5.
2019-08-29 09:16:36 -05:00
Alex Shinn
afd887e672 update-repository shouldn't exit 2019-01-11 08:48:45 +08:00
Alex Shinn
8589333868 fix previous change for inline docs 2017-07-03 07:00:25 +09:00
Alex Shinn
c3e298757b Merge branch 'master' of https://github.com/ashinn/chibi-scheme 2017-07-03 06:57:13 +09:00
Alex Shinn
7b68f141c6 allow urls for snow docs 2017-07-03 06:57:09 +09:00
arthurmaciel
264a4a4ede Added support for Cyclone to Snow 2017-07-02 16:55:38 -03:00
Alex Shinn
806d92aa15 adding --scheme-script and --scheme-program-command args to snow (issue #400) 2017-03-26 21:30:53 +09:00
Alex Shinn
1a1dfc64ca supporting installing srfi's for chicken 2017-01-31 22:47:01 +09:00
Alex Shinn
812dc59b20 removing debug output 2017-01-30 22:51:52 +09:00
Alex Shinn
7c12b0aaf3 sort libs within a package before installing,
plus other small fixes for (chibi iset) for chicken
2017-01-30 22:48:02 +09:00
Alex Shinn
302ee50075 fixing path resolution for include-library-declarations 2017-01-14 15:52:06 +09:00
Alex Shinn
f691ae6a76 determining chicken-binary-version from (##sys#fudge 42) 2017-01-14 15:00:21 +09:00
Alex Shinn
396baa752f Updating chicken install path to 8. 2017-01-14 14:54:06 +09:00
Alex Shinn
64f3be9c99 use blocking io by default in snow 2015-06-22 20:51:20 +09:00
Alex Shinn
4ab97dd9bd adding experimental --use-curl option 2015-06-19 00:02:05 +09:00
Alex Shinn
c9a856b8f6 fix path adjustment of inline test files in snow-chibi package command 2015-06-15 23:39:38 +09:00
Alex Shinn
19df6e7578 strip leading parents in package test 2015-06-13 22:06:12 +09:00
Alex Shinn
a05b94f3c2 fixing bug in extract-program-dependencies 2015-06-13 20:59:01 +09:00
Alex Shinn
9f00ad0695 trying version-file relative to the library file first 2015-05-10 22:19:41 +09:00
Alex Shinn
9fe8dbf893 chmod 644 installed meta files 2015-05-09 22:32:05 +09:00
Alex Shinn
71ce04861d Actually installing compiled ffi bindings when present in chibi. 2015-05-09 22:28:32 +09:00
Alex Shinn
d96f1c9fc5 Supporting foreign library dependencies for chibi. 2015-05-09 21:52:07 +09:00
Alex Shinn
f92586d694 don't install a file onto itself 2015-05-09 16:42:53 +09:00
Alex Shinn
99b4a9aa83 Removing trailing space from process output for default install paths. 2015-05-09 16:17:28 +09:00
Alex Shinn
c8efdd0b58 Don't verify signature if not present even if checks forced. 2015-05-09 08:28:21 +09:00
Alex Shinn
70143023ba fixing missing repository-uri 2015-05-09 01:00:42 +09:00
Alex Shinn
5b6ca8e760 Handling case when impl version can't be detected. 2015-05-08 07:24:02 +09:00
Alex Shinn
9688f01afd Don't upgrade transitive dependencies by default. 2015-05-08 00:46:39 +09:00
Alex Shinn
cee04731f9 Don't install libraries that are only (use-for test) by default. 2015-05-07 23:03:49 +09:00
Alex Shinn
9b5fe665cc Supporting multiple repositories and siblings traversal.
Annotating (use-for test) for test libraries.
2015-05-07 00:10:34 +09:00
Alex Shinn
d05b5c2d92 Sane handling of multiple repos basing the local cache name on the remote uri.
Still need to support a list of repos and/or sibling repos.
2015-05-06 15:25:34 +09:00
Alex Shinn
7fa00eb48a Handling periods in tags when extracting the first doc sentence. 2015-05-03 08:39:00 +09:00