View Issue Details

IDProjectCategoryView StatusLast Update
0007486TalerWeb site(s)public2023-02-17 16:33
Reporternervuri Assigned ToStefan  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionreopened 
Fixed in Version0.9.1 
Summary0007486: tsc no longer used, but build fails if it is not installed
DescriptionI cloned the www.git repo, followed the instructions in 'INSTALL', but got the following error when running 'configure':

Error: tool 'tsc' not available

The 'tsc' tool was used in the Makefile for compiling TypeScript (see commit bddc04c). Now I can't find it anywhere. It looks like tsc is no longer used and can be removed from 'build-system/configure.py'. I did, and the build works.

The attached patch also corrects a comment in the Makefile.
TagsNo tags attached.
Attached Files
tsc.patch (653 bytes)   
diff --git a/Makefile b/Makefile
index 3b89192..42255a2 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
 
 include build-system/config.mk
 
-# All: build HTML pages in all languages and compile the
+# All: build HTML pages in all languages.
 .PHONY: all
 all:
 	./inc/update-messages
diff --git a/build-system/configure.py b/build-system/configure.py
index e1eadc8..e841dca 100644
--- a/build-system/configure.py
+++ b/build-system/configure.py
@@ -22,7 +22,6 @@ b.use(PosixTool("mkdir"))
 b.use(PosixTool("rm"))
 b.use(PosixTool("sh"))
 b.use(PosixTool("msgmerge"))
-b.use(PosixTool("tsc"))
 b.use(PosixTool("git"))
 b.use(BrowserTool())
 b.run()
tsc.patch (653 bytes)   

Activities

Stefan

2022-11-19 17:33

developer   ~0019455

Hi Nervuri,

just skip the command

./configure.

Stefan

Stefan

2022-11-19 17:37

developer   ~0019456

or use

./configure --variant=tmp

which should work (at least on my local machine)

Thank you for reporting.
Stefan

nervuri

2022-11-19 19:04

reporter   ~0019457

Even though I did manage to build the site, I tried your suggestions out of curiosity. If you start with a fresh clone of www.git and skip the ./configure command, 'make' then says:

  Makefile:3: build-system/config.mk: No such file or directory
  make: *** No rule to make target 'build-system/config.mk'. Stop.

And `./configure --variant=tmp` does not work unless you have 'tsc' installed.

So, like I said, tsc should be removed from 'build-system/configure.py' (see tsc.patch above).

---

Also, the INSTALL file contains this bit:

> Then invoke "bootstrap" and "configure". You must pass
> "--prefix=$P" and "--variant=$V" for some values of
> $P and $V to configure. The actual Web site
> will be installed at $P/$V.

However, that is not true, the website is installed in the `rendered` directory. So what are --prefix and --variant actually used for? Maybe that should be explained in the INSTALL file - which feels like it needs an overhaul, by the way, since it's rather confusing. I made some changes to it, to clarify it for myself. Check the patch below, tell me what you think. I removed `make submodules/init` and `make submodules/update`, since ./bootstrap already takes care of that (also, `make submodules/init` doesn't even work).
clarify-installation-instructions.patch (1,565 bytes)   
From f5593e89e6cbdabe3ee5fe0ecb7cc3b3d2bc7ee3 Mon Sep 17 00:00:00 2001
From: nervuri <seva@nervuri.net>
Date: Sat, 19 Nov 2022 17:48:00 +0000
Subject: [PATCH Taler website] clarify installation instructions

---
 INSTALL | 34 ++++++++++++++++++++--------------
 1 file changed, 20 insertions(+), 14 deletions(-)

diff --git a/INSTALL b/INSTALL
index 45dadf7..b53c10e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,21 +1,16 @@
 Installation instructions
 -------------------------
 
-For Debian:
-===========
+Debian prerequisites
+====================
 
 Simply install:
 
-# apt-install python3-ruamel.yaml python3-jinja2 python3-babel git
-
-Then invoke "bootstrap" and "configure". You must pass
-"--prefix=$P" and "--variant=$V" for some values of
-$P and $V to configure.  The actual Web site
-will be installed at $P/$V.
+# apt install python3-ruamel.yaml python3-jinja2 python3-babel git
 
 
-For NetBSD:
-===========
+NetBSD prerequisites
+====================
 
 Install python3.7, py37-babel, npm, nodejs from pkgsrc.
 
@@ -24,10 +19,21 @@ Adjust the values in config.mk:
        PYTHON=python3.7
        BABEL=pybabel-3.7
 
-make submodules/init
-make submodules/update
+
+Build website
+=============
+
+Invoke "bootstrap" and "configure".  You must pass
+"--prefix=$P" and "--variant=$V" for some values of
+$P and $V to configure.  Then run "make".  The actual
+Web site will be installed at $P/$V.
+
+./bootstrap
+./configure --prefix=$P --variant=$V
 make
 
-Use
+
+Run website
+===========
+
 env BROWSER=firefox make run
-to run the website
-- 
2.35.1

nervuri

2022-11-19 19:15

reporter   ~0019458

While we're at it, here's one more small fix, which gets `make run` to start the python http server in the "rendered/" dir. This gets the browser to display the favicon. Also, it just makes more sense.

If I ought to make separate issues for these other patches, let me know.
start-python-http-server-in-rendered-dir.patch (695 bytes)   
From 3827b6de552e2d77c915484078f41653b01774b2 Mon Sep 17 00:00:00 2001
From: nervuri <seva@nervuri.net>
Date: Sat, 19 Nov 2022 16:32:58 +0000
Subject: [PATCH Taler website] start python http server in "rendered/" dir

Makes more sense. Also, the browser now shows the favicon.
---
 Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 42255a2..b3c9dc9 100644
--- a/Makefile
+++ b/Makefile
@@ -10,8 +10,8 @@ all:
 
 .PHONY: run
 run: all
-	$(browser) http://0.0.0.0:8000/rendered/en &
-	$(python) -m http.server
+	$(browser) http://0.0.0.0:8000/en/ &
+	$(python) -m http.server --directory rendered/
 
 variant = $(opt_variant)
 
-- 
2.35.1

Stefan

2022-11-19 19:32

developer   ~0019459

Your suggestions are good points indeed.
Let me assign this bugfix issue to Marcello as he might be more familiar with the build process.
I will update all other 'Install' guidelines for the other web sites in the aftermath.
Stefan

Stefan

2022-12-06 14:48

developer   ~0019503

Applied for taler-systems.com - The remainder of web pages is about to follow.

Stefan

2022-12-08 01:10

developer   ~0019504

Successfully applied for anastasis.lu

Stefan

2022-12-08 18:18

developer   ~0019508

Done for taler.net

Stefan

2022-12-09 07:51

developer   ~0019510

Resolved for all web pages.

Websites will be installed in the /rendered/ directory after building them with
./bootstrap
./configure
make

If ./configure without parameters does not work, try ./configure --variant=/rendered/

Generally, ./configure tries to be smart about detecting names, if it doesn't find them for you, run
./configure --help or ./configure -h
to find out what could be fitting for you and report this as a bug.

nervuri

2022-12-09 17:21

reporter   ~0019511

I tested the new code. ./configure without --variant does not work. What is --variant used for, anyway? The website is installed in rendered/ no matter what value I pass to --variant.

The README now says:

> Eventually you must install node-typescript, when your system is demanding for tsc.

But, again, this is not true. If I remove tsc from build-system/configure.py, the build works just fine; tsc is not called anywhere in the code. Am I missing something? What is typescript used for?

And if the node-typescript package is really required, why not add it to the installation instructions at the beginning (apt install node-typescript)?

Also, now that the installation instructions are in the README, you should probably remove the INSTALL file, which contains the old instructions.

One more thing: `git clone git+ssh://git@git.taler.net/www.git` won't work unless you have SSH access. For the rest of us, the appropriate command is `git clone https://git.taler.net/www.git`.

Stefan

2022-12-09 17:46

developer   ~0019512

Hi Nervuri,
as I pointed out before, just skip the command
./configure.

On my machine it suffices to pass:
./bootstrap
make

Maybe other systems will need to pass
/.configure --variant=/<folder>/

/.configure --variant=/rendered/
works for me but does not affect the result.

True: tsc is not used anymore.

I removed the INSTALL file. Thanks for the hint!

nervuri

2022-12-11 10:18

reporter   ~0019513

Hi Stefan,

I already replied to you that ./configure can't be skipped. The `make` command requires the build-system/config.mk file, which is generated by ./configure. If you test using a fresh clone of the repo, I'm pretty sure you'll run into the same problem.

And ./configure doesn't work without --variant. However, since --variant is useless, you can remove this line from configure.py:

b.use(Option("variant", "Variant (used as output directory)"))

Once that's done, ./configure will work without any parameters.

Stefan

2022-12-21 13:47

developer   ~0019535

Done.

Stefan

2022-12-25 14:27

developer   ~0019539

This issue has been resolved for all web pages including gnunet.org.

Issue History

Date Modified Username Field Change
2022-11-19 17:25 nervuri New Issue
2022-11-19 17:25 nervuri Status new => assigned
2022-11-19 17:25 nervuri Assigned To => Stefan
2022-11-19 17:25 nervuri File Added: tsc.patch
2022-11-19 17:33 Stefan Note Added: 0019455
2022-11-19 17:37 Stefan Note Added: 0019456
2022-11-19 19:04 nervuri Note Added: 0019457
2022-11-19 19:04 nervuri File Added: clarify-installation-instructions.patch
2022-11-19 19:15 nervuri Note Added: 0019458
2022-11-19 19:15 nervuri File Added: start-python-http-server-in-rendered-dir.patch
2022-11-19 19:32 Stefan Note Added: 0019459
2022-11-19 19:32 Stefan Assigned To Stefan => MS
2022-12-05 19:21 Stefan Assigned To MS => Stefan
2022-12-06 14:48 Stefan Note Added: 0019503
2022-12-08 01:10 Stefan Note Added: 0019504
2022-12-08 18:18 Stefan Note Added: 0019508
2022-12-09 07:51 Stefan Note Added: 0019510
2022-12-09 07:52 Stefan Status assigned => resolved
2022-12-09 07:52 Stefan Resolution open => fixed
2022-12-09 07:52 Stefan Fixed in Version => 0.9.1
2022-12-09 17:21 nervuri Status resolved => feedback
2022-12-09 17:21 nervuri Resolution fixed => reopened
2022-12-09 17:21 nervuri Note Added: 0019511
2022-12-09 17:46 Stefan Note Added: 0019512
2022-12-11 10:18 nervuri Note Added: 0019513
2022-12-11 10:18 nervuri Status feedback => assigned
2022-12-21 13:47 Stefan Note Added: 0019535
2022-12-25 14:27 Stefan Status assigned => resolved
2022-12-25 14:27 Stefan Note Added: 0019539
2023-02-17 16:33 Christian Grothoff Status resolved => closed