hackage-security icon indicating copy to clipboard operation
hackage-security copied to clipboard

hackage-repo-tool README seems incorrect

Open bglgwyng opened this issue 4 months ago • 1 comments

README of hackage-repo-tool said

Create a directory ~/my-secure-repo containing a single subdirectory ~/my-secure-repo/package. Put whatever packages you want to make available from your repo in this subdirectory. At this point your repository might look like

I think that ~/my-secure-repo/index rather than ~/my-secure-repo/package is correct. When I created ~/my-secure-repo/package, the following error occured

my-secure-repo/index: getDirectoryContents:openDirStream: does not exist (No such file or directory)

Also, I put 01-index.tar file obtained by

curl -o 01-index.tar.gz https://hackage.haskell.org/01-index.tar.gz
gunzip 01-index.tar.gz

into ~/my-secure-repo, as it said ~/my-secure-repo/01-index.tar: openBinaryFile: does not exist (No such file or directory)

However, when I ran hackage-repo-tool bootstrap --repo my-secure-repo --keys my-private-keys, the same error message showed up and 01-index.tar disappeared.

Did I do something wrong?

bglgwyng avatar Sep 11 '25 16:09 bglgwyng

Did I do something wrong?

Apparently, because the instructions worked for me:

mkdir -p repo/package
cp cabal-clean-0.2.20230609.tar.gz repo/package/
hackage-repo-tool --create-keys --keys keys  
hackage-repo-tool bootstrap --repo repo --keys keys   

This all executes without error and I get this tree

├── keys
│   ├── mirrors
│   │   ├── 2de6fe383931d4d930af6b3d31a7e2948040ee5fa6009eb934a4332a6f12b560.private
│   │   ├── 5cdb9f09ab4772d5f0cf55aa31602243005e69b08d96ce509e82a58818683811.private
│   │   └── f7961cb2e0e8e2a555ba23bec3d0cfe52786a26fa452a6a414cc0643761a4966.private
│   ├── root
│   │   ├── 387cc04489c68ac4e079ea4fdb5b203390c1904bd6e1253d18a1fd061f4fada0.private
│   │   ├── a90122f81b269656f9e40c6acf0fe23ba9ff20c7395d9b39206c437824e2fdd8.private
│   │   └── db960b8ace6de458709ce171c1dc6d9082785a20ed0d755be7bada924ddd07f0.private
│   ├── snapshot
│   │   └── 8fb0c933ff48a9305b94c8760be89fdd160ccf14a98d35ab2e558d63191f2983.private
│   ├── target
│   │   ├── 87d5610e3a4c3230c43621fc9ac98d67e2d33418aae9b08a6812065462ad7648.private
│   │   ├── bcd347c086495caa0d93895a7217e91b7634781fc2cb728bbfc61610a68393ad.private
│   │   └── d92442fe6d35dafffb4cc946274b1f0bf4c40ef046ba9b8dc45df192ad29bd23.private
│   └── timestamp
│       └── f05cef43a72769f5d946f54149388eef4e2eb471ba1e3ac5cf77332252aebb9a.private
└── repo
    ├── 01-index.tar
    ├── 01-index.tar.gz
    ├── index
    │   └── cabal-clean
    │       └── 0.2.20230609
    │           ├── cabal-clean.cabal
    │           └── package.json
    ├── mirrors.json
    ├── package
    │   └── cabal-clean-0.2.20230609.tar.gz
    ├── root.json
    ├── snapshot.json
    └── timestamp.json

andreasabel avatar Sep 13 '25 06:09 andreasabel