Skip to content

Permission denied (os error 13) #39

@khssnv

Description

@khssnv

Hello. Compilation failed while attempting to follow the Build a Deterministic Runtime guide because the container user does not have sufficient permissions in the runtime-dir.

Software versions used

srtool --version
# khassanov @ d25 in ~/Workspace/github.com/paritytech/polkadot-sdk-polkadot-stable2509-2 on git:polkadot-stable2509-2-rc2 x [10:41:50] 
$ srtool --version
srtool-cli 0.13.2

# khassanov @ d25 in ~/Workspace/github.com/paritytech/polkadot-sdk-polkadot-stable2509-2 on git:polkadot-stable2509-2-rc2 x [10:41:52] 
$ podman --version
podman version 5.4.1

# khassanov @ d25 in ~/Workspace/github.com/paritytech/polkadot-sdk-polkadot-stable2509-2 on git:polkadot-stable2509-2-rc2 x [10:41:57] 
$ docker --version
Docker version 29.0.1, build eedd969

# khassanov @ d25 in ~/Workspace/github.com/paritytech/polkadot-sdk-polkadot-stable2509-2 on git:polkadot-stable2509-2-rc2 x [10:41:58] 
$ cat /etc/os-release | grep PRETTY_NAME
PRETTY_NAME="Ubuntu 25.04"

Failure example

srtool build --app --package parachain-template-runtime --runtime-dir templates/parachain/runtime
# khassanov @ d25 in ~/Workspace/github.com/paritytech/polkadot-sdk-polkadot-stable2509-2 on git:polkadot-stable2509-2-rc2 x [10:42:01] 
$ srtool build --app --package parachain-template-runtime --runtime-dir templates/parachain/runtime
Found 1.88.0, we will be using docker.io/paritytech/srtool:1.88.0 for the build
🧰 Substrate Runtime Toolbox - srtool v0.18.3 🧰
              - by Chevdor -
info: override toolchain for '/build' set to '1.88.0-x86_64-unknown-linux-gnu'
info: component 'rust-std' for target 'wasm32-unknown-unknown' is up to date
info: component 'rust-src' is up to date
🏗  Building parachain-template-runtime as release using rustc 1.88.0 (6b00bc388 2025-06-23)
⏳ That can take a little while, be patient... subsequent builds may be faster.
   Since you have to wait a little, you may want to learn more about Substrate runtimes:
   https://docs.substrate.io/learn/architecture/
    Updating crates.io index
 Downloading crates ...
  Downloaded alloy-rlp-derive v0.3.12
  Downloaded equivalent v1.0.1
  ...
  Downloaded linux-raw-sys v0.9.4
  Downloaded gmp-mpfr-sys v1.6.5
  Downloaded verifiable v0.1.0
error: failed to create directory `/build/templates/parachain/runtime/target`

Caused by:
  Permission denied (os error 13)

Successful run after permissions granted

It works after all permissions to the directory granted for all users.

chmod 777 templates/parachain/runtime
# khassanov @ d25 in ~/Workspace/github.com/paritytech/polkadot-sdk-polkadot-stable2509-2 on git:polkadot-stable2509-2-rc2 x [10:42:27] C:1
$ ls -ld templates/parachain/runtime 
drwxrwxr-x 1 khassanov khassanov 60 Nov 18 10:40 templates/parachain/runtime

# khassanov @ d25 in ~/Workspace/github.com/paritytech/polkadot-sdk-polkadot-stable2509-2 on git:polkadot-stable2509-2-rc2 x [10:51:06] 
$ chmod 777 templates/parachain/runtime 

# khassanov @ d25 in ~/Workspace/github.com/paritytech/polkadot-sdk-polkadot-stable2509-2 on git:polkadot-stable2509-2-rc2 x [10:51:16] 
$ ls -ld templates/parachain/runtime   
drwxrwxrwx 1 khassanov khassanov 60 Nov 18 10:40 templates/parachain/runtime

# khassanov @ d25 in ~/Workspace/github.com/paritytech/polkadot-sdk-polkadot-stable2509-2 on git:polkadot-stable2509-2-rc2 x [10:51:19] 
$ srtool build --app --package parachain-template-runtime --runtime-dir templates/parachain/runtime
Found 1.88.0, we will be using docker.io/paritytech/srtool:1.88.0 for the build
🧰 Substrate Runtime Toolbox - srtool v0.18.3 🧰
              - by Chevdor -
info: override toolchain for '/build' set to '1.88.0-x86_64-unknown-linux-gnu'
info: component 'rust-std' for target 'wasm32-unknown-unknown' is up to date
info: component 'rust-src' is up to date
🏗  Building parachain-template-runtime as release using rustc 1.88.0 (6b00bc388 2025-06-23)
⏳ That can take a little while, be patient... subsequent builds may be faster.
   Since you have to wait a little, you may want to learn more about Substrate runtimes:
   https://docs.substrate.io/learn/architecture/
    Updating crates.io index
 Downloading crates ...
  Downloaded Inflector v0.11.4
  Downloaded alloy-rlp-derive v0.3.12
  Downloaded fastrlp v0.4.0
  ...
   Compiling cumulus-pallet-xcmp-queue v0.23.0 (/build/cumulus/pallets/xcmp-queue)
   Compiling parachains-common v25.0.0 (/build/cumulus/parachains/common)
   Compiling polkadot-sdk v2509.0.0 (/build/umbrella)
    Finished `release` profile [optimized] target(s) in 2m 36s
✨ Your Substrate WASM Runtime is ready! ✨
✨ WASM  : templates/parachain/runtime/target/srtool/release/wbuild/parachain-template-runtime/parachain_template_runtime.compact.wasm
✨ Z_WASM: templates/parachain/runtime/target/srtool/release/wbuild/parachain-template-runtime/parachain_template_runtime.compact.compressed.wasm
{"gen":"srtool v0.18.3","src":"zip","version":"0.1.0","commit":"","tag":"","branch":"","rustc":"rustc 1.88.0 (6b00bc388 2025-06-23)","pkg":"parachain-template-runtime","tmsp":"2025-11-18T05:54:02Z","size":"1321048","prop":"0x0dcb21b0c3f34510637ce846530d49168f40f747452f57f8be11b5018e297ca4","authorize_upgrade_prop":"0x58ceec41328a85069a36a2336e465a8b786b78834cf587d79b490636f3274a08","ipfs":"QmbGMdGS5CYz18mpDq2uECYafzN2rpgrTEHdqgoFydzeYc","sha256":"0x1bb38f5917584f2f066d5fc6502e9fd0c2677e10ba8a8e8829cf9221a935ad9d","wasm":"templates/parachain/runtime/target/srtool/release/wbuild/parachain-template-runtime/parachain_template_runtime.compact.compressed.wasm","info":{"generator":{"name":"srtool","version":"0.18.3"},"src":"zip","version":"0.1.0","git":{"commit":"","tag":"","branch":""},"rustc":"rustc 1.88.0 (6b00bc388 2025-06-23)","pkg":"parachain-template-runtime","profile":"release"},"context":{"package":"parachain-template-runtime","runtime_dir":"templates/parachain/runtime","docker":{"image":"paritytech/srtool","tag":"1.88.0"},"profile":"release"},"runtimes":{"compact":{"tmsp":"2025-11-18T05:53:54Z","size":"6487243","prop":"0xfdad4dca77d8290fed94a6770f320c20e80913c39a4974a26864175adc2fa0df","authorize_upgrade_prop":"0x882547e9efacdaf22555da73ffcf9c8a24680f9f510b625c315b31f2a7794425","blake2_256":"0xc9846005a328bf4eadeb202338d85171cafbf12f5c45c0be97e8a7670d357270","ipfs":"QmQh11rDLpWBFSG6oyVwUwmK4CXJb3VNjoY9KgbANrkqhs","sha256":"0xfd8cd1c35e5734db2a924d703de2333a9933b199813f2e0e49241ef1ac198e5b","wasm":"templates/parachain/runtime/target/srtool/release/wbuild/parachain-template-runtime/parachain_template_runtime.compact.wasm","subwasm":{"size":6487243,"compression":{"size_compressed":6487243,"size_decompressed":6487243,"compressed":false},"reserved_meta":[109,101,116,97],"reserved_meta_valid":true,"metadata_version":14,"core_version":{"specName":"parachain-template-runtime","implName":"parachain-template-runtime","authoringVersion":1,"specVersion":1,"implVersion":0,"apis":[["0xdd718d5cc53262d4",1],["0x04e70521a0d3d2f8",1],["0xd7bdd8a272ca0d65",2],["0xdf6acb689907609b",5],["0x37e397fc7c91f5e4",2],["0xccd9de6396c899ca",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0xea93e3f16f3d6962",3],["0xfbc577b9d747efd6",1],["0xa2ddb6a58477bf63",1]],"transactionVersion":1,"stateVersion":1},"proposal_hash":"0xfdad4dca77d8290fed94a6770f320c20e80913c39a4974a26864175adc2fa0df","parachain_authorize_upgrade_hash":"0x882547e9efacdaf22555da73ffcf9c8a24680f9f510b625c315b31f2a7794425","ipfs_hash":"QmQh11rDLpWBFSG6oyVwUwmK4CXJb3VNjoY9KgbANrkqhs","blake2_256":"0xc9846005a328bf4eadeb202338d85171cafbf12f5c45c0be97e8a7670d357270"}},"compressed":{"tmsp":"2025-11-18T05:52:27Z","size":"1321048","prop":"0x0dcb21b0c3f34510637ce846530d49168f40f747452f57f8be11b5018e297ca4","authorize_upgrade_prop":"0x58ceec41328a85069a36a2336e465a8b786b78834cf587d79b490636f3274a08","blake2_256":"0x775f5683ef2acebaf9af2b9aaf6544a71ec13cb40c9167abb10e539c3b0ac179","ipfs":"QmbGMdGS5CYz18mpDq2uECYafzN2rpgrTEHdqgoFydzeYc","sha256":"0x1bb38f5917584f2f066d5fc6502e9fd0c2677e10ba8a8e8829cf9221a935ad9d","wasm":"templates/parachain/runtime/target/srtool/release/wbuild/parachain-template-runtime/parachain_template_runtime.compact.compressed.wasm","subwasm":{"size":1321048,"compression":{"size_compressed":1321048,"size_decompressed":6487243,"compressed":true},"reserved_meta":[109,101,116,97],"reserved_meta_valid":true,"metadata_version":14,"core_version":{"specName":"parachain-template-runtime","implName":"parachain-template-runtime","authoringVersion":1,"specVersion":1,"implVersion":0,"apis":[["0xdd718d5cc53262d4",1],["0x04e70521a0d3d2f8",1],["0xd7bdd8a272ca0d65",2],["0xdf6acb689907609b",5],["0x37e397fc7c91f5e4",2],["0xccd9de6396c899ca",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0xea93e3f16f3d6962",3],["0xfbc577b9d747efd6",1],["0xa2ddb6a58477bf63",1]],"transactionVersion":1,"stateVersion":1},"proposal_hash":"0x0dcb21b0c3f34510637ce846530d49168f40f747452f57f8be11b5018e297ca4","parachain_authorize_upgrade_hash":"0x58ceec41328a85069a36a2336e465a8b786b78834cf587d79b490636f3274a08","ipfs_hash":"QmbGMdGS5CYz18mpDq2uECYafzN2rpgrTEHdqgoFydzeYc","blake2_256":"0x775f5683ef2acebaf9af2b9aaf6544a71ec13cb40c9167abb10e539c3b0ac179"}}}}

# khassanov @ d25 in ~/Workspace/github.com/paritytech/polkadot-sdk-polkadot-stable2509-2 on git:polkadot-stable2509-2-rc2 x [10:54:12] 
$ 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions