packages feed

Cabal revisions of Win32-services-0.4.0.1

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-name:           Win32-services-category:       System-version:        0.4.0.1-cabal-version:  1.16-build-type:     Simple-author:         Michael Steele-maintainer:     Michael Steele <mikesteele81@gmail.com>-copyright:      Copyright 2011-2018 Michael Steele-homepage:       http://github.com/mikesteele81/win32-services-bug-reports:    http://github.com/mikesteele81/win32-services/issues-license:        BSD3-license-file:   LICENSE-tested-with:    GHC == 7.6.3, GHC == 7.8.3, GHC == 7.10.1, GHC == 8.2.2, GHC == 8.4.3, GHC == 8.6.5-stability:      provisional-synopsis:       Windows service applications-description:-  This package provides a partial binding to the Win32 System Services-  API. It makes it easy to write Windows service applications using-  Haskell. This version supports both 32-bit and 64-bit versions of GHC.-  .-  The binding is partial. Here are a few ways in which it differs from the-  official API:-  .-  * Only services running within their own process are supported. These are-  processes of the "WIN32_OWN_PROCESS" type.-  .-  * In cases where multiple versions of the same function exist (for-  compatibility), this binding only offers one of them.-  .-  * None of the extended control codes are supported. Handlers you write will-  automatically report this to the operating system when such controls are-  received.-  .-  * Only facilities for writing services are supported; not controlling them.-  .-  Effort has been made to simplify using the API without hiding what is-  happening behind the scenes. Users are encouraged to read Microsoft's-  documentation under 'Dev Center - Desktop > Docs > Desktop app development-  documentation > System Services > Services'. The official example has been-  ported to Haskell. This can be found in the 'examples' directory of the-  source tree.-  .-  /Simple Example and Usage/-  .-  @-  module Main where-  .-  import Control.Concurrent.MVar-  import System.Win32.Services-  .-  main = do-  &#x20;   mStop <- newEmptyMVar-  &#x20;   startServiceCtrlDispatcher \"Test\" 3000 (handler mStop) $ \\_ _ h -> do-  &#x20;       setServiceStatus h running-  &#x20;       takeMVar mStop-  &#x20;       setServiceStatus h stopped-  .-  handler mStop hStatus Stop = do-  &#x20;   setServiceStatus hStatus stopPending-  &#x20;   putMVar mStop ()-  &#x20;   return True-  handler _ _ Interrogate = return True-  handler _ _ _           = return False-  .-  running = ServiceStatus Win32OwnProcess Running [AcceptStop] nO_ERROR 0 0 0-  stopped = ServiceStatus Win32OwnProcess Stopped [] nO_ERROR 0 0 0-  stopPending = ServiceStatus Win32OwnProcess StopPending [AcceptStop] nO_ERROR 0 0 0-  @-  .-  @-  C:\programming\test\>ghc --make -threaded Main.hs-  [1 of 1] Compiling Main             ( Main.hs, Main.o )-  Linking Main.exe ...-  \<linker warnings omitted\>-  C:\\programming\\test\>copy Main.exe c:\\svc\\Test.exe-      1 file(s) copied.-  @-  .-  Execute the following from an elevated command prompt to register the-  service:-  .-  @-  C:\\svc\>sc create Test binPath= c:\\svc\\Test.exe-  [SC] CreateService SUCCESS-  @-  .-  The service can now be started and stopped from the services console.-  .-  Installation Notes:-  .-  Depending on which version of GHC you are using you may also need to add-  a extra-lib-dirs directive. In GHC version 8.4.3 it works out of the box with-  the libadvapi32.a file in ...\\mingw\\x86_64-w64-mingw32\\lib.-  For older version you need to use a version from a Windows SDK. Your-  .cabal file will then need to be modified before installing. A simple `cabal-  install Win32-services` may not work. For example, If you are building on-  Windows 8 64-bit with the Windows 8 SDK the 'extra-lib-dirs' field will need-  to be changed to read as follows:-  .-  @-  Extra-Lib-Dirs: \"C:\\\\Program Files (x86)\\\\Windows Kits\\\\8.0\\\\Lib\\\\win8\\\\um\\\\x86\"-  @-  .-  If building with stack an option is to set it in stack.yaml.-  For example with the Windows 10 SDK installed with Build Tools for Visual Studio 2017:-  .-  @-  extra-lib-dirs:-  - C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.15063.0\\um\\x64-  @-  .--extra-source-files:-    changelog-    examples/*.hs--source-repository head-  type: git-  location: git://github.com/mikesteele81/win32-services.git--library-  build-depends: base   >= 4.5 && < 5.0-               , Win32  >= 2.2 && < 2.9-               , Win32-errors >= 0.2 && < 0.3-  default-language: Haskell2010-  ghc-options:     -Wall-  hs-source-dirs: src-  Exposed-Modules: System.Win32.Services-  Extra-Libraries: Advapi32-  -- Extra-Lib-Dirs: "C:\\Program Files (x86)\\Windows Kits\\8.0\\Lib\\win8\\um\\x86"-  -- Extra-Lib-Dirs: "C:\\Program Files (x86)\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\x64"-  -- Extra-Lib-Dirs: "C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.15063.0\\um\\x64\\AdvAPI32.Lib"-  -- Extra-Lib-Dirs: c:\Windows\System32-  other-modules:-                 Import-               , System.Win32.Services.Raw-               , System.Win32.Services.Accept-               , System.Win32.Services.Control-               , System.Win32.Services.State-               , System.Win32.Services.Status-               , System.Win32.Services.TableEntry-               , System.Win32.Services.Type---- executable SimpleExample---   hs-source-dirs:      examples---   main-is:             simple.hs---   ghc-options:         -threaded -rtsopts -with-rtsopts=-N---   build-depends:       base, Win32-services, Win32-errors---   default-language:    Haskell2010------ executable OfficialExample---   hs-source-dirs:      examples---   main-is:             official.hs---   ghc-options:         -threaded -rtsopts -with-rtsopts=-N -eventlog---   build-depends:       base, Win32-services, Win32, Win32-errors---   default-language:    Haskell2010+name:           Win32-services
+category:       System
+version:        0.4.0.1
+x-revision: 1
+cabal-version:  1.16
+build-type:     Simple
+author:         Michael Steele
+maintainer:     Michael Steele <mikesteele81@gmail.com>
+copyright:      Copyright 2011-2018 Michael Steele
+homepage:       http://github.com/mikesteele81/win32-services
+bug-reports:    http://github.com/mikesteele81/win32-services/issues
+license:        BSD3
+license-file:   LICENSE
+tested-with:    GHC == 7.6.3, GHC == 7.8.3, GHC == 7.10.1, GHC == 8.2.2, GHC == 8.4.3, GHC == 8.6.5
+stability:      provisional
+synopsis:       Windows service applications
+description:
+  This package provides a partial binding to the Win32 System Services
+  API. It makes it easy to write Windows service applications using
+  Haskell. This version supports both 32-bit and 64-bit versions of GHC.
+  .
+  The binding is partial. Here are a few ways in which it differs from the
+  official API:
+  .
+  * Only services running within their own process are supported. These are
+  processes of the "WIN32_OWN_PROCESS" type.
+  .
+  * In cases where multiple versions of the same function exist (for
+  compatibility), this binding only offers one of them.
+  .
+  * None of the extended control codes are supported. Handlers you write will
+  automatically report this to the operating system when such controls are
+  received.
+  .
+  * Only facilities for writing services are supported; not controlling them.
+  .
+  Effort has been made to simplify using the API without hiding what is
+  happening behind the scenes. Users are encouraged to read Microsoft's
+  documentation under 'Dev Center - Desktop > Docs > Desktop app development
+  documentation > System Services > Services'. The official example has been
+  ported to Haskell. This can be found in the 'examples' directory of the
+  source tree.
+  .
+  /Simple Example and Usage/
+  .
+  @
+  module Main where
+  .
+  import Control.Concurrent.MVar
+  import System.Win32.Services
+  .
+  main = do
+  &#x20;   mStop <- newEmptyMVar
+  &#x20;   startServiceCtrlDispatcher \"Test\" 3000 (handler mStop) $ \\_ _ h -> do
+  &#x20;       setServiceStatus h running
+  &#x20;       takeMVar mStop
+  &#x20;       setServiceStatus h stopped
+  .
+  handler mStop hStatus Stop = do
+  &#x20;   setServiceStatus hStatus stopPending
+  &#x20;   putMVar mStop ()
+  &#x20;   return True
+  handler _ _ Interrogate = return True
+  handler _ _ _           = return False
+  .
+  running = ServiceStatus Win32OwnProcess Running [AcceptStop] nO_ERROR 0 0 0
+  stopped = ServiceStatus Win32OwnProcess Stopped [] nO_ERROR 0 0 0
+  stopPending = ServiceStatus Win32OwnProcess StopPending [AcceptStop] nO_ERROR 0 0 0
+  @
+  .
+  @
+  C:\programming\test\>ghc --make -threaded Main.hs
+  [1 of 1] Compiling Main             ( Main.hs, Main.o )
+  Linking Main.exe ...
+  \<linker warnings omitted\>
+  C:\\programming\\test\>copy Main.exe c:\\svc\\Test.exe
+      1 file(s) copied.
+  @
+  .
+  Execute the following from an elevated command prompt to register the
+  service:
+  .
+  @
+  C:\\svc\>sc create Test binPath= c:\\svc\\Test.exe
+  [SC] CreateService SUCCESS
+  @
+  .
+  The service can now be started and stopped from the services console.
+  .
+  Installation Notes:
+  .
+  Depending on which version of GHC you are using you may also need to add
+  a extra-lib-dirs directive. In GHC version 8.4.3 it works out of the box with
+  the libadvapi32.a file in ...\\mingw\\x86_64-w64-mingw32\\lib.
+  For older version you need to use a version from a Windows SDK. Your
+  .cabal file will then need to be modified before installing. A simple `cabal
+  install Win32-services` may not work. For example, If you are building on
+  Windows 8 64-bit with the Windows 8 SDK the 'extra-lib-dirs' field will need
+  to be changed to read as follows:
+  .
+  @
+  Extra-Lib-Dirs: \"C:\\\\Program Files (x86)\\\\Windows Kits\\\\8.0\\\\Lib\\\\win8\\\\um\\\\x86\"
+  @
+  .
+  If building with stack an option is to set it in stack.yaml.
+  For example with the Windows 10 SDK installed with Build Tools for Visual Studio 2017:
+  .
+  @
+  extra-lib-dirs:
+  - C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.15063.0\\um\\x64
+  @
+  .
+
+extra-source-files:
+    changelog
+    examples/*.hs
+
+source-repository head
+  type: git
+  location: git://github.com/mikesteele81/win32-services.git
+
+library
+  build-depends: base   >= 4.5 && < 5.0
+               , Win32  >= 2.2 && < 2.15
+               , Win32-errors >= 0.2 && < 0.3
+  default-language: Haskell2010
+  ghc-options:     -Wall
+  hs-source-dirs: src
+  Exposed-Modules: System.Win32.Services
+  Extra-Libraries: Advapi32
+  -- Extra-Lib-Dirs: "C:\\Program Files (x86)\\Windows Kits\\8.0\\Lib\\win8\\um\\x86"
+  -- Extra-Lib-Dirs: "C:\\Program Files (x86)\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\x64"
+  -- Extra-Lib-Dirs: "C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.15063.0\\um\\x64\\AdvAPI32.Lib"
+  -- Extra-Lib-Dirs: c:\Windows\System32
+  other-modules:
+                 Import
+               , System.Win32.Services.Raw
+               , System.Win32.Services.Accept
+               , System.Win32.Services.Control
+               , System.Win32.Services.State
+               , System.Win32.Services.Status
+               , System.Win32.Services.TableEntry
+               , System.Win32.Services.Type
+
+-- executable SimpleExample
+--   hs-source-dirs:      examples
+--   main-is:             simple.hs
+--   ghc-options:         -threaded -rtsopts -with-rtsopts=-N
+--   build-depends:       base, Win32-services, Win32-errors
+--   default-language:    Haskell2010
+--
+-- executable OfficialExample
+--   hs-source-dirs:      examples
+--   main-is:             official.hs
+--   ghc-options:         -threaded -rtsopts -with-rtsopts=-N -eventlog
+--   build-depends:       base, Win32-services, Win32, Win32-errors
+--   default-language:    Haskell2010