c9db823c8c
This patch makes Vervis temporarily unusable, because all actors' inbox POST handlers use the new system, but the actual federation handler code hasn't been ported. The next patches will port all the S2S activities supported so far, as well as C2S.
531 lines
20 KiB
Text
531 lines
20 KiB
Text
name: vervis
|
|
version: 0.1
|
|
synopsis: Federated project hosting platform
|
|
description:
|
|
Vervis a decentralized software project hosting web application, which
|
|
federates using ActivityPub and ForgeFed.
|
|
.
|
|
Most of the source code is in the public domain using the CC0 public domain
|
|
dedication, but the application as a whole has GPL dependencies, and is
|
|
released under the AGPL 3 license.
|
|
homepage: https://vervis.peers.community/repos/WvWbo
|
|
bug-reports: fr33domlover@riseup.net
|
|
license: AGPL-3
|
|
license-file: COPYING.AGPL3
|
|
author: fr33domlover
|
|
maintainer: fr33domlover@riseup.net
|
|
copyright: ♡ Copying is an act of love. Please copy, reuse and share.
|
|
category: Development, Distribution, Git, Web
|
|
build-type: Simple
|
|
extra-source-files: AUTHORS.md
|
|
CHANGELOG.md
|
|
COPYING
|
|
FEDERATION.md
|
|
INSTALL.md
|
|
README.md
|
|
cabal-version: >=1.10
|
|
|
|
source-repository head
|
|
type: darcs
|
|
location: https://vervis.peers.community/repos/WvWbo
|
|
|
|
flag dev
|
|
description: Turn on development settings, like auto-reload templates.
|
|
default: False
|
|
|
|
flag library-only
|
|
description: Build for use with "yesod devel"
|
|
default: False
|
|
|
|
library
|
|
exposed-modules:
|
|
Vervis.Application
|
|
Vervis.Hook
|
|
other-modules:
|
|
Control.Applicative.Local
|
|
Control.Concurrent.Actor
|
|
Control.Concurrent.Local
|
|
Control.Concurrent.ResultShare
|
|
Control.Concurrent.Return
|
|
Control.Monad.Trans.Except.Local
|
|
Crypto.ActorKey
|
|
Crypto.PubKey.Encoding
|
|
Crypto.PublicVerifKey
|
|
Darcs.Local.Repository
|
|
Data.Aeson.Encode.Pretty.ToEncoding
|
|
Data.Aeson.Local
|
|
Data.Attoparsec.ByteString.Local
|
|
Data.Binary.Local
|
|
-- Data.Bitraversable.Local
|
|
Data.ByteString.Char8.Local
|
|
Data.ByteString.Local
|
|
Data.CaseInsensitive.Local
|
|
Data.Char.Local
|
|
Data.DList.Local
|
|
Data.Either.Local
|
|
Data.EventTime.Local
|
|
Data.Functor.Local
|
|
Data.Git.Local
|
|
Data.Graph.DirectedAcyclic.View.Tree
|
|
Data.Graph.Inductive.Query.Cycle
|
|
Data.Graph.Inductive.Query.Layer
|
|
Data.Graph.Inductive.Query.Path
|
|
Data.Graph.Inductive.Query.TransRed
|
|
Data.HashMap.Lazy.Local
|
|
Data.Hourglass.Local
|
|
Data.Int.Local
|
|
Data.KeyFile
|
|
Data.List.Local
|
|
Data.List.NonEmpty.Local
|
|
Data.Maybe.Local
|
|
Data.MediaType
|
|
Data.Paginate.Local
|
|
Data.Patch.Local
|
|
Data.Text.UTF8.Local
|
|
Data.Text.Lazy.UTF8.Local
|
|
Data.Time.Clock.Local
|
|
Data.Tree.Local
|
|
Data.Tuple.Local
|
|
Database.Esqueleto.Local
|
|
Database.Persist.Class.Local
|
|
Database.Persist.JSON
|
|
Database.Persist.Sql.Local
|
|
Database.Persist.Local
|
|
Database.Persist.Local.Class.PersistEntityHierarchy
|
|
Database.Persist.Local.RecursionDoc
|
|
Development.PatchMediaType
|
|
Development.PatchMediaType.JSON
|
|
Development.PatchMediaType.Persist
|
|
Diagrams.IntransitiveDAG
|
|
Formatting.CaseInsensitive
|
|
Language.Haskell.TH.Quote.Local
|
|
Network.FedURI
|
|
Network.HTTP.Client.Conduit.ActivityPub
|
|
Network.HTTP.Digest
|
|
Network.SSH.Local
|
|
System.Process.Typed.Local
|
|
Text.Blaze.Local
|
|
Text.Display
|
|
Text.Email.Local
|
|
Text.FilePath.Local
|
|
Text.Jasmine.Local
|
|
Web.ActivityAccess
|
|
Web.ActivityPub
|
|
Web.Actor
|
|
Web.Actor.Persist
|
|
-- Web.Capability
|
|
Web.Text
|
|
Web.Hashids.Local
|
|
Web.PathPieces.Local
|
|
Yesod.ActivityPub
|
|
Yesod.Actor
|
|
Yesod.Auth.Unverified
|
|
Yesod.Auth.Unverified.Creds
|
|
Yesod.Auth.Unverified.Internal
|
|
Yesod.FedURI
|
|
Yesod.Form.Local
|
|
Yesod.Hashids
|
|
Yesod.MonadSite
|
|
Yesod.Paginate.Local
|
|
Yesod.Persist.Local
|
|
Yesod.RenderSource
|
|
Yesod.SessionEntity
|
|
|
|
Vervis.Access
|
|
Vervis.ActivityPub
|
|
Vervis.Actor
|
|
Vervis.Actor.Deck
|
|
Vervis.Actor.Group
|
|
Vervis.Actor.Loom
|
|
Vervis.Actor.Person
|
|
Vervis.Actor.Repo
|
|
Vervis.API
|
|
Vervis.Avatar
|
|
Vervis.BinaryBody
|
|
Vervis.Changes
|
|
Vervis.ChangeFeed
|
|
--Vervis.Class.Actor
|
|
Vervis.Client
|
|
Vervis.Cloth
|
|
Vervis.Colour
|
|
Vervis.Content
|
|
Vervis.Darcs
|
|
|
|
Vervis.Data.Actor
|
|
Vervis.Data.Collab
|
|
Vervis.Data.Discussion
|
|
Vervis.Data.Follow
|
|
Vervis.Data.Ticket
|
|
|
|
--Vervis.Federation
|
|
Vervis.Federation.Auth
|
|
Vervis.Federation.Collab
|
|
Vervis.Federation.Discussion
|
|
Vervis.Federation.Offer
|
|
--Vervis.Federation.Push
|
|
Vervis.Federation.Ticket
|
|
Vervis.Federation.Util
|
|
Vervis.FedURI
|
|
Vervis.Fetch
|
|
Vervis.Field.Key
|
|
Vervis.Field.Person
|
|
--Vervis.Field.Project
|
|
--Vervis.Field.Repo
|
|
--Vervis.Field.Role
|
|
--Vervis.Field.Sharer
|
|
--Vervis.Field.Ticket
|
|
-- Vervis.Field.Workflow
|
|
Vervis.Form.Discussion
|
|
--Vervis.Form.Group
|
|
Vervis.Form.Key
|
|
Vervis.Form.Repo
|
|
--Vervis.Form.Role
|
|
Vervis.Form.Ticket
|
|
Vervis.Form.Tracker
|
|
-- Vervis.Form.Workflow
|
|
Vervis.Formatting
|
|
Vervis.Foundation
|
|
Vervis.Git
|
|
Vervis.GraphProxy
|
|
Vervis.Handler.Client
|
|
Vervis.Handler.Cloth
|
|
Vervis.Handler.Common
|
|
Vervis.Handler.Deck
|
|
-- Vervis.Handler.Git
|
|
Vervis.Handler.Group
|
|
--Vervis.Handler.Inbox
|
|
Vervis.Handler.Key
|
|
Vervis.Handler.Loom
|
|
Vervis.Handler.Person
|
|
Vervis.Handler.Repo
|
|
--Vervis.Handler.Role
|
|
--Vervis.Handler.Sharer
|
|
Vervis.Handler.Ticket
|
|
-- Vervis.Handler.Wiki
|
|
-- Vervis.Handler.Workflow
|
|
Vervis.KeyFile
|
|
Vervis.Migration
|
|
Vervis.Migration.Entities
|
|
Vervis.Migration.Model
|
|
Vervis.Migration.TH
|
|
Vervis.Model
|
|
Vervis.Model.Entity
|
|
Vervis.Model.Group
|
|
Vervis.Model.Ident
|
|
Vervis.Model.Role
|
|
Vervis.Model.Ticket
|
|
Vervis.Model.TH
|
|
Vervis.Model.Workflow
|
|
Vervis.Paginate
|
|
Vervis.Palette
|
|
Vervis.Path
|
|
|
|
Vervis.Persist.Actor
|
|
Vervis.Persist.Collab
|
|
Vervis.Persist.Discussion
|
|
Vervis.Persist.Follow
|
|
Vervis.Persist.Ticket
|
|
|
|
Vervis.Query
|
|
Vervis.Readme
|
|
Vervis.Recipient
|
|
Vervis.RemoteActorStore
|
|
--Vervis.Repo
|
|
--Vervis.Role
|
|
Vervis.Secure
|
|
Vervis.Settings
|
|
Vervis.Settings.StaticFiles
|
|
Vervis.Settings.TH
|
|
Vervis.SourceTree
|
|
Vervis.Ssh
|
|
Vervis.Style
|
|
Vervis.Ticket
|
|
Vervis.TicketFilter
|
|
Vervis.Time
|
|
|
|
Vervis.Web.Actor
|
|
Vervis.Web.Darcs
|
|
Vervis.Web.Delivery
|
|
Vervis.Web.Discussion
|
|
Vervis.Web.Git
|
|
Vervis.Web.Repo
|
|
|
|
Vervis.Widget
|
|
Vervis.Widget.Discussion
|
|
Vervis.Widget.Person
|
|
Vervis.Widget.Repo
|
|
--Vervis.Widget.Role
|
|
Vervis.Widget.Ticket
|
|
Vervis.Widget.Tracker
|
|
-- Vervis.Widget.Workflow
|
|
-- Vervis.Wiki
|
|
--Vervis.WorkItem
|
|
|
|
default-extensions: TemplateHaskell
|
|
QuasiQuotes
|
|
OverloadedStrings
|
|
MultiParamTypeClasses
|
|
TypeFamilies
|
|
GADTs
|
|
GeneralizedNewtypeDeriving
|
|
FlexibleContexts
|
|
FlexibleInstances
|
|
EmptyDataDecls
|
|
NoMonomorphismRestriction
|
|
DeriveDataTypeable
|
|
ViewPatterns
|
|
TupleSections
|
|
RecordWildCards
|
|
LambdaCase
|
|
|
|
build-depends: aeson
|
|
-- For activity JSOn display in /inbox test page
|
|
, aeson-pretty
|
|
-- For rethrowing in Control.Concurrent.Actor
|
|
, annotated-exception
|
|
-- for encoding and decoding of crypto public keys
|
|
, asn1-encoding
|
|
, asn1-types
|
|
-- for parsing commands sent over SSH and Darcs patch
|
|
-- metadata
|
|
, attoparsec
|
|
-- For LocalActorBy and LocalStageBy
|
|
, barbies
|
|
, base
|
|
-- for hex display of Darcs patch hashes
|
|
, base16-bytestring
|
|
, base64-bytestring
|
|
-- for Data.Binary.Local
|
|
, binary
|
|
, blaze-html
|
|
-- for Data.EventTime.Local
|
|
, blaze-markup
|
|
, byteable
|
|
, bytestring
|
|
-- for Darcs.Local.PatchInfo.Parser
|
|
, bytestring-lexing
|
|
, case-insensitive
|
|
-- for defining colors for use with diagrams
|
|
, colour
|
|
, conduit
|
|
-- For httpAPEither
|
|
, conduit-extra
|
|
, containers
|
|
, cryptonite
|
|
-- for Storage.Hashed because hashed-storage seems
|
|
-- unmaintained and darcs has its own copy
|
|
, darcs
|
|
, darcs-lights
|
|
, darcs-rev
|
|
, data-default
|
|
, data-default-class
|
|
, data-default-instances-bytestring
|
|
, data-ordlist
|
|
-- for drawing DAGs: RBAC role inheritance, etc.
|
|
, diagrams-core
|
|
, diagrams-lib
|
|
, diagrams-svg
|
|
, directory
|
|
-- for Data.Git.Local
|
|
, directory-tree
|
|
, dlist
|
|
, dvara
|
|
, email-validate
|
|
, email-validate-json
|
|
, esqueleto
|
|
, exceptions
|
|
, fast-logger
|
|
-- for building a message tree using DFS in
|
|
-- Vervis.Discussion, possibly also used by some git
|
|
-- graph related code?
|
|
, fgl
|
|
, file-embed
|
|
, filepath
|
|
, formatting
|
|
, hashable
|
|
, hashids
|
|
-- for source file highlighting
|
|
, highlighter2
|
|
, http-client-signature
|
|
, html-entities
|
|
, http-signature
|
|
, git
|
|
, hit-graph
|
|
, hit-harder
|
|
, hit-network
|
|
-- currently discarding all JS so no need for minifier
|
|
--, hjsmin
|
|
-- 'git' uses it for 'GitTime'
|
|
, hourglass
|
|
, yesod-http-signature
|
|
, http-client
|
|
, http-client-tls
|
|
, http-conduit
|
|
, http-types
|
|
, libravatar
|
|
, memory
|
|
, mime-mail
|
|
, monad-control
|
|
, monad-logger
|
|
-- for Database.Persist.Local
|
|
, mtl
|
|
, network
|
|
, network-uri
|
|
, pandoc
|
|
, pandoc-types
|
|
-- for PathPiece instance for CI, Web.PathPieces.Local
|
|
, path-pieces
|
|
, patience
|
|
, pem
|
|
, persistent
|
|
, persistent-email-address
|
|
, persistent-graph
|
|
, persistent-migration
|
|
, persistent-postgresql
|
|
, persistent-template
|
|
, process
|
|
-- for generating hashids salt
|
|
, random
|
|
-- for Database.Persist.Local
|
|
, resourcet
|
|
, safe
|
|
, shakespeare
|
|
-- for json debug highlighting in Yesod.RenderSource
|
|
, skylighting
|
|
, smtp-mail
|
|
, ssh
|
|
-- for holding actor key in a TVar
|
|
, stm
|
|
-- for rendering diagrams
|
|
, svg-builder
|
|
-- for text drawing in 'diagrams'
|
|
, SVGFonts
|
|
, template-haskell
|
|
, temporary
|
|
, text
|
|
, these
|
|
, time
|
|
, time-interval
|
|
, time-interval-aeson
|
|
, time-units
|
|
, tls
|
|
, transformers
|
|
-- probably should be replaced with lenses once I learn
|
|
, tuple
|
|
, typed-process
|
|
-- For making git hooks executable, i.e. set file mode
|
|
, unix
|
|
-- For httpAPEither
|
|
, unliftio-core
|
|
, unliftio
|
|
, unordered-containers
|
|
, vector
|
|
, wai
|
|
, wai-extra
|
|
, wai-logger
|
|
, warp
|
|
-- for encoding and decoding of crypto public keys
|
|
, x509
|
|
-- for parsing darcs apply's changes XML from env var in
|
|
-- the vervis post-apply hook program
|
|
, xml
|
|
, xss-sanitize
|
|
, yaml
|
|
, yesod
|
|
, yesod-auth
|
|
, yesod-auth-account
|
|
, yesod-core
|
|
, yesod-form
|
|
, yesod-mail-send
|
|
, yesod-newsfeed
|
|
, yesod-static
|
|
, yesod-persistent
|
|
-- for reading gzipped darcs inventory via utils in
|
|
-- Data.Attoparsec.ByteString.Local
|
|
, zlib
|
|
|
|
hs-source-dirs: src
|
|
default-language: Haskell2010
|
|
|
|
if flag(dev) || flag(library-only)
|
|
cpp-options: -DDEVELOPMENT
|
|
ghc-options: -Wall -fwarn-tabs -O0
|
|
-Werror=incomplete-patterns
|
|
-Werror=missing-fields
|
|
-Werror=overlapping-patterns
|
|
else
|
|
ghc-options: -Wall -fwarn-tabs -O2
|
|
|
|
executable vervis
|
|
main-is: main.hs
|
|
build-depends: base, vervis
|
|
hs-source-dirs: app
|
|
default-language: Haskell2010
|
|
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
|
|
|
|
if flag(library-only)
|
|
buildable: False
|
|
|
|
executable vervis-post-receive
|
|
main-is: main.hs
|
|
build-depends: base, vervis
|
|
hs-source-dirs: hook-git
|
|
default-language: Haskell2010
|
|
ghc-options: -Wall
|
|
|
|
executable vervis-post-apply
|
|
main-is: main.hs
|
|
build-depends: base, vervis
|
|
hs-source-dirs: hook-darcs
|
|
default-language: Haskell2010
|
|
ghc-options: -Wall
|
|
|
|
test-suite test
|
|
main-is: Spec.hs
|
|
|
|
default-extensions: TemplateHaskell
|
|
QuasiQuotes
|
|
OverloadedStrings
|
|
CPP
|
|
MultiParamTypeClasses
|
|
TypeFamilies
|
|
GADTs
|
|
GeneralizedNewtypeDeriving
|
|
FlexibleContexts
|
|
FlexibleInstances
|
|
EmptyDataDecls
|
|
NoMonomorphismRestriction
|
|
DeriveDataTypeable
|
|
ViewPatterns
|
|
TupleSections
|
|
|
|
build-depends: base
|
|
, vervis
|
|
, yesod-test
|
|
, yesod-core
|
|
, yesod
|
|
, persistent
|
|
, persistent-postgresql
|
|
, resourcet
|
|
, monad-logger
|
|
, shakespeare
|
|
, transformers
|
|
, hspec >= 2.0.0
|
|
, aeson
|
|
|
|
hs-source-dirs: test
|
|
default-language: Haskell2010
|
|
ghc-options: -Wall
|
|
type: exitcode-stdio-1.0
|
|
|
|
-- test-suite test-graph
|
|
-- main-is: Test.hs
|
|
-- build-depends: base
|
|
-- , fgl
|
|
-- , fgl-arbitrary
|
|
-- , hspec
|
|
-- , vervis
|
|
-- hs-source-dirs: test
|
|
-- default-language: Haskell2010
|
|
-- ghc-options: -Wall
|
|
-- type: exitcode-stdio-1.0
|