The fact that you can't do "stack new" is known, and raised at
https://github.com/commercialhaskell/stack/issues/2804.

Note that the http-redirect tool I wrote _always_ goes to the
internet, it never serves up mirrored content. If you want to run on a
server which doesn't have internet access you'll need to modify that
code, or spin up another type of server to serve up the content. The
purpose of http-redirect is to robustly test my configuration steps -
I didn't write it with the idea of production use in mind.

Thanks, Neil


On Sun, Feb 19, 2017 at 11:57 AM, Alexander T <alexoun...@gmail.com> wrote:
> Ah, also forgot to clarify that the nightly-2017-02-02.yaml file was already
> previously retrieved by the http-redirect server and actually exists in it's
> mirror directory (with filename renamed according to server's conventions).
>
> Server side
> $ stat
> mirror/https_raw.githubusercontent.com_fpco_lts-haskell_master__lts-8.0.yaml
>   File:
> mirror/https_raw.githubusercontent.com_fpco_lts-haskell_master__lts-8.0.yaml
>   Size: 5377585         Blocks: 10504      IO Block: 4096   regular file
> Device: 2dh/45d Inode: 5819        Links: 1
> Access: (0644/-rw-r--r--)  Uid: ( 1004/    alex)   Gid: (  100/   users)
> Access: 2017-02-17 05:02:18.946927356 +0300
> Modify: 2017-02-17 05:02:18.936927354 +0300
> Change: 2017-02-19 03:30:53.923441888 +0300
>  Birth: -
>
> On Sunday, February 19, 2017 at 4:29:49 AM UTC+3, Alexander T wrote:
>>
>> Yes I did.
>>
>> Server side
>> $ env | grep STACK_ROOT
>> STACK_ROOT=/data/srv/stack_root
>> $ pwd
>> /data/srv
>> $ ls
>> http-redirect  mirror  stack_root
>> $ stack path | grep config
>> config-location: /data/srv/stack_root/global-project/stack.yaml
>> $ cat /data/srv/stack_root/config.yaml
>> urls:
>>   latest-snapshot:
>> http://localhost:3000/https/www.stackage.org/download/snapshots.json
>>   lts-build-plans:
>> http://localhost:3000/https/raw.githubusercontent.com/fpco/lts-haskell/master/
>>   nightly-build-plans:
>> http://localhost:3000/https/raw.githubusercontent.com/fpco/stackage-nightly/master/
>>
>> package-indices:
>> - name: Hackage
>>   download-prefix:
>> http://localhost:3000/https/s3.amazonaws.com/hackage.fpcomplete.com/package/
>>   http:
>> http://localhost:3000/https/s3.amazonaws.com/hackage.fpcomplete.com/00-index.tar.gz
>>
>>
>> Client side
>> $ env | grep STACK_ROOT
>> $ cat ~/.stack/config.yaml
>> urls:
>>   latest-snapshot:
>> http://localhost:3000/https/www.stackage.org/download/snapshots.json
>>   lts-build-plans:
>> http://localhost:3000/https/raw.githubusercontent.com/fpco/lts-haskell/master/
>>   nightly-build-plans:
>> http://localhost:3000/https/raw.githubusercontent.com/fpco/stackage-nightly/master/
>>
>> package-indices:
>> - name: Hackage
>>   download-prefix:
>> http://localhost:3000/https/s3.amazonaws.com/hackage.fpcomplete.com/package/
>>   http:
>> http://localhost:3000/https/s3.amazonaws.com/hackage.fpcomplete.com/00-index.tar.gz
>>
>> When I try to run "stack path" on client side without internet connection
>> on both sides
>> $ stack path
>> Downloading nightly-2017-02-02 build plan ...RedownloadFailed Request {
>>   host                 = "localhost"
>>   port                 = 3000
>>   secure               = False
>>   requestHeaders       = []
>>   path                 =
>> "/https/raw.githubusercontent.com/fpco/stackage-nightly/master//nightly-2017-02-02.yaml"
>>   queryString          = ""
>>   method               = "GET"
>>   proxy                = Nothing
>>   rawBody              = False
>>   redirectCount        = 10
>>   responseTimeout      = ResponseTimeoutDefault
>>   requestVersion       = HTTP/1.1
>> }
>>  "/home/alex/.stack/build-plan/nightly-2017-02-02.yaml" (Response
>> {responseStatus = Status {statusCode = 500, statusMessage = "Internal Server
>> Error"}, responseVersion = HTTP/1.0, responseHeaders = [("Date","Sun, 19 Feb
>> 2017 01:23:48 GMT"),("Server","Warp/3.2.11"),("Content-Type","text/plain;
>> charset=utf-8")], responseBody = (), responseCookieJar = CJ {expose = []},
>> responseClose' = ResponseClose})
>>
>> At the same time http-redirect server throws:
>> HttpExceptionRequest Request {
>>   host                 = "raw.githubusercontent.com"
>>   port                 = 443
>>   secure               = True
>>   requestHeaders       = []
>>   path                 =
>> "/fpco/stackage-nightly/master//nightly-2017-02-02.yaml"
>>   queryString          = ""
>>   method               = "GET"
>>   proxy                = Nothing
>>   rawBody              = False
>>   redirectCount        = 10
>>   responseTimeout      = ResponseTimeoutDefault
>>   requestVersion       = HTTP/1.1
>> }
>>  (ConnectionFailure getAddrInfo: does not exist (Name or service not
>> known))
>>
>> On Friday, February 17, 2017 at 9:48:46 AM UTC+3, Neil Mitchell wrote:
>>>
>>> > Thank you. I tried this, http-redirect server builds fine and runs.
>>> > This is
>>> > what I figured out.
>>>
>>> > Once I did "stack setup", "stack build" through the proxy (with
>>> > corresponding config.yaml), I can reproduce it on the same system
>>> > without
>>> > internet connection.
>>> > But if I take a fresh system with empty global stack root (e.g.
>>> > ~/.stack on
>>> > GNU/Linux) except solely config.yaml, it immediately fails.
>>> > http-redirect
>>> > throws this:
>>>
>>> Did you copy the config.yaml from the offline-stack repo into
>>> STACK_ROOT? Is your STACK_ROOT actually where you think it is? (use
>>> "stack path" to see).
>>>
>>> > "stack new" fails in both cases with:
>>> > Here I can see that this request is not processed by the http-redirect,
>>> > it
>>> > keeps silent when stack throws this exception.
>>> >
>>> > Maybe I missed something?
>>>
>>> stack new isn't supported - I imagine you have to have another
>>> redirect in config.yaml. Pull requests welcome! I've also raised a
>>> ticket at https://github.com/ndmitchell/offline-stack/issues/1.
>>>
>>> Thanks, Neil
>>>
>>> >
>>> > On Wednesday, February 15, 2017 at 11:04:36 PM UTC+3, Neil Mitchell
>>> > wrote:
>>> >>
>>> >> > Please, can you describe all operations in detail.
>>> >>
>>> >> Describing is fragile. I've created a github project that describes
>>> >> it. See the README at
>>> >> https://github.com/ndmitchell/offline-stack#readme, plus the code
>>> >> which executes it at
>>> >> https://github.com/ndmitchell/offline-stack/blob/master/appveyor.yml.
>>> >> I test those steps on Appveyor, so it's guaranteed to work/
>>> >>
>>> >> > The whole idea of using haskell with stack/cabal offline is crucial
>>> >> > for
>>> >> > work
>>> >> > at many companies.
>>> >> > First of all it's not clear how to obtain all the data needed for
>>> >> > stack
>>> >> > and
>>> >> > cabal to serve locally.
>>> >>
>>> >> Agreed! Hopefully everything is now 100% clear.
>>> >>
>>> >> >
>>> >> > On Friday, February 10, 2017 at 10:39:51 AM UTC+3, Neil Mitchell
>>> >> > wrote:
>>> >> >>
>>> >> >> Hi David,
>>> >> >>
>>> >> >> Its not that bad, now the steps are known, so go ahead and email me
>>> >> >> if
>>> >> >> you
>>> >> >> get stuck. Steps are:
>>> >> >>
>>> >> >> * create stack root
>>> >> >>
>>> >> >> * copy config.yaml to the root
>>> >> >>
>>> >> >> * run stack setup with the setup yaml flag
>>> >> >>
>>> >> >> Figuring our these steps took weeks :)
>>> >> >>
>>> >> >> Thanks, Neil
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >> On Thu, 9 Feb 2017 at 11:47 pm, David Sicilia <dpsi...@gmail.com>
>>> >> >> wrote:
>>> >> >>>
>>> >> >>> Hi Neil,
>>> >> >>>
>>> >> >>> Thank you for raising the ticket, I just gave it a +1, if that
>>> >> >>> helps
>>> >> >>> :-)
>>> >> >>>
>>> >> >>> So would you recommend that I go ahead and try it right now,
>>> >> >>> or is it complicated enough that I should just wait for that
>>> >> >>> change
>>> >> >>> to be implemented?  I guess what I mean is, after you realized
>>> >> >>> which config files to change, was it straightforward from there?
>>> >> >>>
>>> >> >>> David
>>> >> >>>
>>> >> >>> On Saturday, January 21, 2017 at 11:27:22 AM UTC-5, David Sicilia
>>> >> >>> wrote:
>>> >> >>>>
>>> >> >>>> Hi there,
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> I am behind a firewall with strict rules about downloading
>>> >> >>>> software
>>> >> >>>> from
>>> >> >>>> the internet,
>>> >> >>>>
>>> >> >>>> so I would like to know if it is possible to download an entire
>>> >> >>>> stackage
>>> >> >>>> LTS snapshot
>>> >> >>>>
>>> >> >>>> in one go and then serve it on a local server, to which we could
>>> >> >>>> then
>>> >> >>>> point the stack tool.
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> By "snapshot" I would be referring to the source code for all
>>> >> >>>> packages
>>> >> >>>> because
>>> >> >>>>
>>> >> >>>> we'd need to draw from that local server to build on both Linux
>>> >> >>>> and
>>> >> >>>> Windows.
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> For example, perhaps we'd be able to go to a server within the
>>> >> >>>> firewall
>>> >> >>>> and run
>>> >> >>>>
>>> >> >>>> "stack new", then edit the yaml file to point it to a local
>>> >> >>>> stackage
>>> >> >>>> server with given
>>> >> >>>>
>>> >> >>>> resolver number, then it would just behave normally from then on,
>>> >> >>>> except
>>> >> >>>> always
>>> >> >>>>
>>> >> >>>> downloading packages from the local server.
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> What about compilers? I know that stack also downloads the
>>> >> >>>> compilers,
>>> >> >>>> so
>>> >> >>>> I guess
>>> >> >>>>
>>> >> >>>> those would have to be included in the downloaded
>>> >> >>>> snapshot-package
>>> >> >>>> for
>>> >> >>>> various
>>> >> >>>>
>>> >> >>>> platforms?
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> Any guidance would be appreciated, because we will not be able to
>>> >> >>>> make
>>> >> >>>> use of
>>> >> >>>>
>>> >> >>>> stack/stackage without something like this!
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> Thank you
>>> >> >>>>
>>> >> >>>> David
>>> >> >>>
>>> >> >>> --
>>> >> >>> You received this message because you are subscribed to the Google
>>> >> >>> Groups
>>> >> >>> "haskell-stack" group.
>>> >> >>> To unsubscribe from this group and stop receiving emails from it,
>>> >> >>> send
>>> >> >>> an
>>> >> >>> email to haskell-stac...@googlegroups.com.
>>> >> >>> To post to this group, send email to haskel...@googlegroups.com.
>>> >> >>> To view this discussion on the web visit
>>> >> >>>
>>> >> >>>
>>> >> >>> https://groups.google.com/d/msgid/haskell-stack/35616520-204d-41f6-b1c9-e37ee1570473%40googlegroups.com.
>>> >> >>> For more options, visit https://groups.google.com/d/optout.
>>> >> >
>>> >> > --
>>> >> > You received this message because you are subscribed to the Google
>>> >> > Groups
>>> >> > "haskell-stack" group.
>>> >> > To unsubscribe from this group and stop receiving emails from it,
>>> >> > send
>>> >> > an
>>> >> > email to haskell-stac...@googlegroups.com.
>>> >> > To post to this group, send email to haskel...@googlegroups.com.
>>> >> > To view this discussion on the web visit
>>> >> >
>>> >> >
>>> >> > https://groups.google.com/d/msgid/haskell-stack/094da0e4-6eab-4c10-8842-4d3c37b3ad78%40googlegroups.com.
>>> >> >
>>> >> > For more options, visit https://groups.google.com/d/optout.
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> > Groups
>>> > "haskell-stack" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send
>>> > an
>>> > email to haskell-stac...@googlegroups.com.
>>> > To post to this group, send email to haskel...@googlegroups.com.
>>> > To view this discussion on the web visit
>>> >
>>> > https://groups.google.com/d/msgid/haskell-stack/674862b8-2d46-4c6e-ac93-0b1cdfde0ec5%40googlegroups.com.
>>> >
>>> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "haskell-stack" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to haskell-stack+unsubscr...@googlegroups.com.
> To post to this group, send email to haskell-stack@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/haskell-stack/17cc8023-090c-4cf8-982e-c8e743df65ed%40googlegroups.com.
>
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"haskell-stack" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to haskell-stack+unsubscr...@googlegroups.com.
To post to this group, send email to haskell-stack@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/haskell-stack/CAKcFpmKRLexH9DmWw3NqpgbO6boP5pC772zZfVgFFkT5Qr4L5g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to