Package: propellor
Version: 5.18-1
Severity: normal
X-Debbugs-Cc: [email protected]
Hi,
Since version 3.12, cabal will not build propellor config if it has no
package index.
When using propellor --init, it fails when trying to build the
configuration:
nicolas@testvm:~$ propellor --init
_ ______`|
,-.__
.--------------------------- / \___-=O`/|O`/__|
(____.'
- Welcome to -- \ / | / ) _.-'-._
- Propellor! -- `/-==__ _/__|/__=-| ( \_
`--------------------------- * \ | | '--------'
(o) `
Propellor's configuration file is ~/.propellor/config.hs
Let's get you started with a simple config that you can adapt
to your needs. You can start with:
A: A clone of propellor's git repository (most flexible)
B: The bare minimum files to use propellor (most simple)
Which would you prefer? [A|B] b
hint: Using 'master' as the name for the initial branch. This default
branch name
hint: will change to "main" in Git 3.0. To configure the initial branch name
hint: to use in all of your new repositories, which will suppress this
warning,
hint: call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this
command:
hint:
hint: git branch -m <name>
hint:
hint: Disable this message with "git config set advice.defaultBranchName
false"
Initialized empty Git repository in /home/nicolas/.propellor/.git/
Creating minimal config ... done
------------------------------------------------------------------------------
Let's try building the propellor configuration, to make sure it will work...
Config file path source is default config file.
Config file not found: /home/nicolas/.config/cabal/config
Writing default configuration to /home/nicolas/.config/cabal/config
Error: [Cabal-7160]
The package list for 'hackage.haskell.org' does not exist. Run 'cabal
update' to download it.
'cabal.project.local' already exists, backing it up to
'cabal.project.local~'.
Error: [Cabal-7160]
The package list for 'hackage.haskell.org' does not exist. Run 'cabal
update' to download it.
propellor: cabal build failed
CallStack (from HasCallStack):
error, called at src/Propellor/Bootstrap.hs:274:25 in
propellor-5.18-ARIHO6yi294BROyWQhe7xc:Propellor.Bootstrap
HasCallStack backtrace:
finally, called at src/System/Console/Concurrent/Internal.hs:117:28 in
propellor-5.18-ARIHO6yi294BROyWQhe7xc:System.Console.Concurrent.Internal
If cabal update has been run, the build works:
[...]
------------------------------------------------------------------------------
Let's try building the propellor configuration, to make sure it will work...
Resolving dependencies...
Build profile: -w ghc-9.10.3 -O1
In order, the following will be built (use -v for more details):
- config-0 (exe:propellor-config) (first run)
Configuring config-0...
Preprocessing executable 'propellor-config' for config-0...
Building executable 'propellor-config' for config-0...
[1 of 1] Compiling Main ( config.hs,
/home/nicolas/.propellor/dist-newstyle/build/x86_64-linux/ghc-9.10.3/config-0/build/propellor-config/propellor-config-tmp/Main.o
)
[2 of 2] Linking
/home/nicolas/.propellor/dist-newstyle/build/x86_64-linux/ghc-9.10.3/config-0/build/propellor-config/propellor-config
Propellor build ... done
Great! Propellor is bootstrapped.
------------------------------------------------------------------------------
Propellor can use gpg to encrypt private data about the systems it manages,
and to sign git commits.
You don't seem to have gpg installed, so skipping setting it up.
Propellor can still be used without gpg, but it won't be able to
manage private data. You can set this up later:
1. gpg --gen-key
2. propellor --add-key (pass it the key ID generated in step 1)
------------------------------------------------------------------------------
Everything is set up ...
Your next step is to edit ~/.propellor/config.hs
and run propellor again to try it out.
For docs, see https://propellor.branchable.com/
Enjoy propellor!
When using propellor --spin, it fails when remotely building the
configuration:
nicolas@testvm:~/.propellor$ propellor --spin testvm
Up to date
Propellor build ... done
[master 7b09329] propellor spin
Git commit ... done
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 8 threads
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 1.08 KiB | 555.00 KiB/s, done.
Total 7 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
propellor7266-0.git
100% 1173 1.1MB/s 00:00
Cloning into '/usr/local/propellor'...
Note: switching to '7b0932958a9d751e5762ac65383838dfb2da7de5'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
Switched to a new branch 'master'
Clone git repository to testvm ... done
'cabal.project.local' already exists, backing it up to
'cabal.project.local~'.
Error: [Cabal-7160]
The package list for 'hackage.haskell.org' does not exist. Run 'cabal
update' to download it.
sh: 1: ./propellor: not found
propellor: user error (ssh
["-o","ControlPath=/home/nicolas/.ssh/propellor/testvm.sock","-o","ControlMaster=auto","-o","ControlPersist=yes","root@testvm","sh
-c 'if [ ! -d /usr/local/propellor/.git ] ; then (if ! git --version
>/dev/null 2>&1; then apt-get update && DEBIAN_FRONTEND=noninteractive apt-get
-qq --no-install-recommends --no-upgrade -y install git; fi && echo
STATUSNeedGitClone) || echo STATUSNeedPrecompiled ; else cd
/usr/local/propellor && if ! cabal configure >/dev/null 2>&1; then ( apt-get
update ; DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade
--no-install-recommends -y install gnupg ; DEBIAN_FRONTEND=noninteractive
apt-get -qq --no-upgrade --no-install-recommends -y install ghc ;
DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install-recommends
-y install cabal-install ; DEBIAN_FRONTEND=noninteractive apt-get -qq
--no-upgrade --no-install-recommends -y install libghc-async-dev ;
DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install-recommends
-y install libghc-split-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq
--no-upgrade --no-install-recommends -y install libghc-hslogger-dev ;
DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install-recommends
-y install libghc-unix-compat-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq
--no-upgrade --no-install-recommends -y install libghc-ansi-terminal-dev ;
DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install-recommends
-y install libghc-ifelse-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq
--no-upgrade --no-install-recommends -y install libghc-network-dev ;
DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install-recommends
-y install libghc-mtl-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq
--no-upgrade --no-install-recommends -y install libghc-transformers-dev ;
DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install-recommends
-y install libghc-exceptions-dev ; DEBIAN_FRONTEND=noninteractive apt-get -qq
--no-upgrade --no-install-recommends -y install libghc-text-dev ;
DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade --no-install-recommends
-y install libghc-hashable-dev ; if LANG=C apt-cache policy
libghc-type-errors-dev| grep -q Candidate:; then DEBIAN_FRONTEND=noninteractive
apt-get -qq --no-upgrade --no-install-recommends -y install
libghc-type-errors-dev; fi ; if LANG=C apt-cache policy libghc-stm-dev| grep -q
Candidate:; then DEBIAN_FRONTEND=noninteractive apt-get -qq --no-upgrade
--no-install-recommends -y install libghc-stm-dev; fi ; cabal update ; cabal
install --only-dependencies) || true; fi&& if ! test -x ./propellor; then cabal
configure && cabal build -j1 propellor-config && if [ -d dist-newstyle ]; then
ln -sf $(cabal exec -- sh -c '\"'\"'command -v propellor-config'\"'\"')
'\"'\"'propellor'\"'\"'; else ln -sf
dist/build/propellor-config/propellor-config '\"'\"'propellor'\"'\"'; fi; fi;if
test -x ./propellor && ! ./propellor --check; then cabal clean && cabal
configure && cabal build -j1 propellor-config && if [ -d dist-newstyle ]; then
ln -sf $(cabal exec -- sh -c '\"'\"'command -v propellor-config'\"'\"')
'\"'\"'propellor'\"'\"'; else ln -sf
dist/build/propellor-config/propellor-config '\"'\"'propellor'\"'\"'; fi; fi &&
./propellor --boot testvm ; fi'"] exited 127)
HasCallStack backtrace:
finally, called at src/System/Console/Concurrent/Internal.hs:117:28 in
propellor-5.18-ARIHO6yi294BROyWQhe7xc:System.Console.Concurrent.Internal
Again, it works if cabal update has been run for the root user (like
with `ssh root@testvm cabal update`).
There is a `--offline` flags for cabal, but it does not solve the
problem:
nicolas@testvm:~/.propellor$ cabal build --offline
Error: [Cabal-7160]
The package list for 'hackage.haskell.org' does not exist. Run 'cabal
update' to download it.
The user can work around the problem by running `cabal update`, but this
has the side effect of wasting 1 GB of index, which are useles for
propellor usage. On the machine you run propellor, that’s 1 GB for your
own user and 1 GB for the root user.
This problem can be seen on Debian testing and unstable, where
cabal-install is at version 3.12.
Kind regards,
Nicolas.
-- System Information:
Debian Release: forky/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 6.19.8+deb14-cloud-amd64 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages propellor depends on:
ii cabal-install 3.12.1.0-1
ii ghc [libghc-transformers-dev] 9.10.3-4
ii git 1:2.53.0-1
ii libc6 2.42-13
ii libffi8 3.5.2-4
ii libghc-ansi-terminal-dev 1.1.5-1+b1
ii libghc-async-dev 2.2.5-4+b1
pn libghc-exceptions-dev <none>
ii libghc-hashable-dev 1.5.0.0-2
ii libghc-hslogger-dev 1.3.2.0+dfsg-1+b1
ii libghc-ifelse-dev 0.85-20+b1
pn libghc-mtl-dev <none>
ii libghc-network-dev 3.2.8.0-1+b1
ii libghc-propellor-dev 5.18-1
ii libghc-split-dev 0.2.5-2+b1
pn libghc-text-dev <none>
ii libghc-type-errors-dev 0.2.0.2-3+b1
ii libghc-unix-compat-dev 0.7.4.1-1+b1
ii libgmp10 2:6.3.0+dfsg-5+b1
ii libnuma1 2.0.19-1+b1
propellor recommends no packages.
propellor suggests no packages.
-- no debconf information