openSUSE Commits
Threads by month
- ----- 2024 -----
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
February 2015
- 1 participants
- 1390 discussions
Hello community,
here is the log from the commit of package poedit for openSUSE:Factory checked in at 2015-02-27 10:59:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/poedit (Old)
and /work/SRC/openSUSE:Factory/.poedit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "poedit"
Changes:
--------
--- /work/SRC/openSUSE:Factory/poedit/poedit.changes 2015-01-29 09:57:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.poedit.new/poedit.changes 2015-02-27 10:59:19.000000000 +0100
@@ -6,0 +7,13 @@
+Mon Jan 26 19:11:45 UTC 2015 - andreas.stieger(a)gmx.de
+
+- poedit 1.7.4:
+ + size of the bottom editing part is now remembered correctly
+ again
+ + [GTK+] fix broken Edit->Copy/Cut/Paste
+
+-------------------------------------------------------------------
+Fri Jan 23 14:45:53 UTC 2015 - ftake(a)geeko.jp
+
+- Remove MIME type icons conflicting with virtaal
+
+-------------------------------------------------------------------
Old:
----
poedit-1.7.3.tar.gz
New:
----
poedit-1.7.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ poedit.spec ++++++
--- /var/tmp/diff_new_pack.WEhD84/_old 2015-02-27 10:59:21.000000000 +0100
+++ /var/tmp/diff_new_pack.WEhD84/_new 2015-02-27 10:59:21.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package poedit
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: poedit
-Version: 1.7.3
+Version: 1.7.4
Release: 0
Summary: Cross-platform Gettext Catalogs Editing Tool
License: MIT
++++++ poedit-1.7.3.tar.gz -> poedit-1.7.4.tar.gz ++++++
++++ 9025 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package doc-gnu-ko for openSUSE:Factory checked in at 2015-02-27 10:59:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/doc-gnu-ko (Old)
and /work/SRC/openSUSE:Factory/.doc-gnu-ko.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "doc-gnu-ko"
Changes:
--------
--- /work/SRC/openSUSE:Factory/doc-gnu-ko/doc-gnu-ko.changes 2012-07-22 21:58:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.doc-gnu-ko.new/doc-gnu-ko.changes 2015-02-27 10:59:16.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Feb 24 18:31:15 UTC 2015 - dimstar(a)opensuse.org
+
+- Replace texinfo BuildRequires with makeinfo and texi2html: match
+ what the buildsystem requires.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ doc-gnu-ko.spec ++++++
--- /var/tmp/diff_new_pack.GaXQJI/_old 2015-02-27 10:59:18.000000000 +0100
+++ /var/tmp/diff_new_pack.GaXQJI/_new 2015-02-27 10:59:18.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package doc-gnu-ko
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -38,7 +38,8 @@
Patch2: doc-gnu-ko.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
-BuildRequires: texinfo
+BuildRequires: makeinfo
+BuildRequires: texi2html
%description
Korean translations of GNU manuals.
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package librime for openSUSE:Factory checked in at 2015-02-27 10:59:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/librime (Old)
and /work/SRC/openSUSE:Factory/.librime.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "librime"
Changes:
--------
--- /work/SRC/openSUSE:Factory/librime/librime.changes 2014-08-11 10:08:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.librime.new/librime.changes 2015-02-27 10:59:14.000000000 +0100
@@ -1,0 +2,26 @@
+Tue Feb 24 15:22:24 UTC 2015 - hillwood(a)linuxfans.org
+
+- update to 1.2.9
+ * CMakeLists.txt: bump version to 1.2.9.
+ * Makefile: add make targets 'thirdparty/*' to build individual libraries.
+ * include/rime_api.h: add RIME_MODULE_LIST, RIME_REGISTER_MODULE_GROUP.
+ * legacy/src/legacy_module.cc: plugin module 'rime-legacy' for GPL'd code,
+ providing component 'legacy_userdb' for user dictionary upgrade.
+ * src/setup.cc: define module groups "default" and "deployer", to avoid
+ naming a list of built-bin modules in RimeTraits::modules.
+ * test/table_test.cc: fix random segment faults when run shuffled.
+ * thirdparty/src/leveldb: new dependency LevelDB, replacing Kyoto Cabinet.
+ * dict/level_db: userdb implementation based on LevelDB, replacing treeDb.
+ * dict/tree_db: moved to legacy/src/.
+ * dict/user_db: refactored and modularized to ease adding implementations.
+ * gear/memory: save cached phrases as soon as the next composition begins.
+ * gear/recognizer: match space iff set recognizer/use_space: true.
+ * gear/simplifier: catch and log OpenCC exceptions when loading.
+ * gear/single_char_filter: bring single character candidates to the front.
+ * lever/deployment_tasks: update and rename task 'user_dict_upgrade'.
+ * gear/cjk_minifier: support CJK Extension E
+ * gear/simplifier: adapt to OpenCC 1.0 API.
+ * thirdparty/src/opencc: update OpenCC to v1.0.2 (incompatible with v0.4).
+
+
+-------------------------------------------------------------------
Old:
----
librime-1.2+git20140810.tar.gz
New:
----
librime-1.2.9.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ librime.spec ++++++
--- /var/tmp/diff_new_pack.zajmfw/_old 2015-02-27 10:59:16.000000000 +0100
+++ /var/tmp/diff_new_pack.zajmfw/_new 2015-02-27 10:59:16.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package librime
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: librime
-Version: 1.2+git20140810
+Version: 1.2.9
Release: 0
Summary: Rime Input Method Engine
License: GPL-3.0+
@@ -33,6 +33,7 @@
BuildRequires: gcc-c++
BuildRequires: glog-devel
BuildRequires: googletest-devel
+BuildRequires: leveldb-devel
%if 0%{?suse_version} >= 1220
BuildRequires: boost-devel
%endif
@@ -59,7 +60,7 @@
%endif
BuildRequires: libkyotocabinet-devel
BuildRequires: marisa-devel
-BuildRequires: opencc-devel
+BuildRequires: opencc-devel >= 1.0.2
BuildRequires: pkg-config
BuildRequires: xorg-x11-proto-devel
BuildRequires: yaml-cpp-devel
@@ -129,14 +130,14 @@
%files -n rime
%defattr(-,root,root)
-%doc LICENSE README
+%doc LICENSE README.md
%{_bindir}/rime_deployer
%{_bindir}/rime_dict_manager
%files -n librime1
%defattr(-,root,root)
%{_libdir}/%{name}.so.1
-%{_libdir}/%{name}.so.1.2.0
+%{_libdir}/%{name}.so.1.2.9
%files devel
%defattr(-,root,root)
++++++ librime-1.2+git20140810.tar.gz -> librime-1.2.9.tar.gz ++++++
/work/SRC/openSUSE:Factory/librime/librime-1.2+git20140810.tar.gz /work/SRC/openSUSE:Factory/.librime.new/librime-1.2.9.tar.gz differ: char 5, line 1
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package ghc-resourcet for openSUSE:Factory checked in at 2015-02-27 10:59:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-resourcet (Old)
and /work/SRC/openSUSE:Factory/.ghc-resourcet.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-resourcet"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-resourcet/ghc-resourcet.changes 2014-04-02 17:19:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-resourcet.new/ghc-resourcet.changes 2015-02-27 10:59:11.000000000 +0100
@@ -1,0 +2,9 @@
+Sun Feb 1 18:21:18 UTC 2015 - mpluskal(a)suse.com
+
+- Add dependency on ghc-exceptions which is now required
+- Update to 1.1.3.3:
+ + monad-control-1.0 support
+ + Provide the `withEx` function to interact nicely with the
+ exceptions package.
+
+-------------------------------------------------------------------
Old:
----
resourcet-0.4.8.tar.gz
New:
----
resourcet-1.1.3.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-resourcet.spec ++++++
--- /var/tmp/diff_new_pack.fWNoO7/_old 2015-02-27 10:59:12.000000000 +0100
+++ /var/tmp/diff_new_pack.fWNoO7/_new 2015-02-27 10:59:12.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-resourcet
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%global pkg_name resourcet
Name: ghc-resourcet
-Version: 0.4.8
+Version: 1.1.3.3
Release: 0
Summary: Deterministic allocation and freeing of scarce resources
License: BSD-3-Clause
@@ -33,6 +33,7 @@
BuildRequires: ghc-rpm-macros
# Begin cabal-rpm deps:
BuildRequires: ghc-containers-devel
+BuildRequires: ghc-exceptions-devel
BuildRequires: ghc-lifted-base-devel
BuildRequires: ghc-mmorph-devel
BuildRequires: ghc-monad-control-devel
++++++ resourcet-0.4.8.tar.gz -> resourcet-1.1.3.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resourcet-0.4.8/ChangeLog.md new/resourcet-1.1.3.3/ChangeLog.md
--- old/resourcet-0.4.8/ChangeLog.md 1970-01-01 01:00:00.000000000 +0100
+++ new/resourcet-1.1.3.3/ChangeLog.md 2014-12-17 11:48:49.000000000 +0100
@@ -0,0 +1,7 @@
+## 1.1.3.2
+
+monad-control-1.0 support [#191](https://github.com/snoyberg/conduit/pull/191)
+
+## 1.1.3
+
+Provide the `withEx` function to interact nicely with the exceptions package.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resourcet-0.4.8/Control/Monad/Trans/Resource/Internal.hs new/resourcet-1.1.3.3/Control/Monad/Trans/Resource/Internal.hs
--- old/resourcet-0.4.8/Control/Monad/Trans/Resource/Internal.hs 2013-09-08 07:08:15.000000000 +0200
+++ new/resourcet-1.1.3.3/Control/Monad/Trans/Resource/Internal.hs 2014-12-17 11:48:49.000000000 +0100
@@ -1,30 +1,31 @@
+{-# OPTIONS_HADDOCK not-home #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE RankNTypes #-}
module Control.Monad.Trans.Resource.Internal(
- ExceptionT(..)
- , InvalidAccess(..)
+ InvalidAccess(..)
, MonadResource(..)
- , MonadThrow(..)
- , MonadUnsafeIO(..)
, ReleaseKey(..)
- , ReleaseMap(..)\
+ , ReleaseMap(..)
, ResIO
, ResourceT(..)
, stateAlloc
, stateCleanup
, transResourceT
+ , register'
+ , registerType
) where
import Control.Exception (throw,Exception,SomeException)
import Control.Applicative (Applicative (..))
import Control.Monad.Trans.Control
- ( MonadTransControl (..), MonadBaseControl (..)
- , ComposeSt, defaultLiftBaseWith, defaultRestoreM)
+ ( MonadTransControl (..), MonadBaseControl (..) )
import Control.Monad.Base (MonadBase, liftBase)
import Control.Monad.Trans.Cont ( ContT )
import Control.Monad.Cont.Class ( MonadCont (..) )
@@ -48,15 +49,24 @@
import qualified Control.Monad.Trans.Writer.Strict as Strict ( WriterT )
import Control.Monad.IO.Class (MonadIO (..))
+#if !(MIN_VERSION_monad_control(1,0,0))
import Control.Monad (liftM)
+#endif
import qualified Control.Exception as E
import Control.Monad.ST (ST)
+import Control.Monad.Catch (MonadThrow (..), MonadCatch (..)
+#if MIN_VERSION_exceptions(0,6,0)
+ , MonadMask (..)
+#endif
+ )
import Data.IntMap (IntMap)
import qualified Data.IntMap as IntMap
import qualified Data.IORef as I
import Data.Monoid
import Data.Typeable
import Data.Word(Word)
+import Prelude hiding (catch)
+import Data.Acquire.Internal (ReleaseType (..))
#if __GLASGOW_HASKELL__ >= 704
import Control.Monad.ST.Unsafe (unsafeIOToST)
@@ -85,7 +95,7 @@
-- unwrapped before calling @runResourceT@.
--
-- Since 0.3.0
-class (MonadThrow m, MonadUnsafeIO m, MonadIO m, Applicative m) => MonadResource m where
+class (MonadThrow m, MonadIO m, Applicative m, MonadBase IO m) => MonadResource m where
-- | Lift a @ResourceT IO@ action into the current @Monad@.
--
-- Since 0.4.0
@@ -103,7 +113,7 @@
type NextKey = Int
data ReleaseMap =
- ReleaseMap !NextKey !RefCount !(IntMap (IO ()))
+ ReleaseMap !NextKey !RefCount !(IntMap (ReleaseType -> IO ()))
| ReleaseMapClosed
-- | Convenient alias for @ResourceT IO@.
@@ -135,43 +145,20 @@
listen = mapResourceT listen
pass = mapResourceT pass
--- | A @Monad@ which can throw exceptions. Note that this does not work in a
--- vanilla @ST@ or @Identity@ monad. Instead, you should use the 'ExceptionT'
--- transformer in your stack if you are dealing with a non-@IO@ base monad.
---
--- Since 0.3.0
-class Monad m => MonadThrow m where
- monadThrow :: E.Exception e => e -> m a
-
-instance MonadThrow IO where
- monadThrow = E.throwIO
-
-instance MonadThrow Maybe where
- monadThrow _ = Nothing
-instance MonadThrow (Either SomeException) where
- monadThrow = Left . E.toException
-instance MonadThrow [] where
- monadThrow _ = []
-
-#define GO(T) instance (MonadThrow m) => MonadThrow (T m) where monadThrow = lift . monadThrow
-#define GOX(X, T) instance (X, MonadThrow m) => MonadThrow (T m) where monadThrow = lift . monadThrow
-GO(IdentityT)
-GO(ListT)
-GO(MaybeT)
-GOX(Error e, ErrorT e)
-GO(ReaderT r)
-GO(ContT r)
-GO(ResourceT)
-GO(StateT s)
-GOX(Monoid w, WriterT w)
-GOX(Monoid w, RWST r w s)
-GOX(Monoid w, Strict.RWST r w s)
-GO(Strict.StateT s)
-GOX(Monoid w, Strict.WriterT w)
-#undef GO
-#undef GOX
-
-instance (MonadThrow m, MonadUnsafeIO m, MonadIO m, Applicative m) => MonadResource (ResourceT m) where
+instance MonadThrow m => MonadThrow (ResourceT m) where
+ throwM = lift . throwM
+instance MonadCatch m => MonadCatch (ResourceT m) where
+ catch (ResourceT m) c =
+ ResourceT $ \r -> m r `catch` \e -> unResourceT (c e) r
+#if MIN_VERSION_exceptions(0,6,0)
+instance MonadMask m => MonadMask (ResourceT m) where
+#endif
+ mask a = ResourceT $ \e -> mask $ \u -> unResourceT (a $ q u) e
+ where q u (ResourceT b) = ResourceT (u . b)
+ uninterruptibleMask a =
+ ResourceT $ \e -> uninterruptibleMask $ \u -> unResourceT (a $ q u) e
+ where q u (ResourceT b) = ResourceT (u . b)
+instance (MonadThrow m, MonadBase IO m, MonadIO m, Applicative m) => MonadResource (ResourceT m) where
liftResourceT = transResourceT liftIO
-- | Transform the monad a @ResourceT@ lives in. This is most often used to
@@ -264,24 +251,32 @@
liftBase = lift . liftBase
instance MonadTransControl ResourceT where
+#if MIN_VERSION_monad_control(1,0,0)
+ type StT ResourceT a = a
+ liftWith f = ResourceT $ \r -> f $ \(ResourceT t) -> t r
+ restoreT = ResourceT . const
+#else
newtype StT ResourceT a = StReader {unStReader :: a}
liftWith f = ResourceT $ \r -> f $ \(ResourceT t) -> liftM StReader $ t r
restoreT = ResourceT . const . liftM unStReader
+#endif
{-# INLINE liftWith #-}
{-# INLINE restoreT #-}
instance MonadBaseControl b m => MonadBaseControl b (ResourceT m) where
+#if MIN_VERSION_monad_control(1,0,0)
+ type StM (ResourceT m) a = StM m a
+ liftBaseWith f = ResourceT $ \reader' ->
+ liftBaseWith $ \runInBase ->
+ f $ runInBase . (\(ResourceT r) -> r reader' )
+ restoreM = ResourceT . const . restoreM
+#else
newtype StM (ResourceT m) a = StMT (StM m a)
liftBaseWith f = ResourceT $ \reader' ->
liftBaseWith $ \runInBase ->
f $ liftM StMT . runInBase . (\(ResourceT r) -> r reader' )
restoreM (StMT base) = ResourceT $ const $ restoreM base
-instance Monad m => MonadThrow (ExceptionT m) where
- monadThrow = ExceptionT . return . Left . E.toException
-instance MonadResource m => MonadResource (ExceptionT m) where
- liftResourceT = lift . liftResourceT
-instance MonadIO m => MonadIO (ExceptionT m) where
- liftIO = lift . liftIO
+#endif
#define GO(T) instance (MonadResource m) => MonadResource (T m) where liftResourceT = lift . liftResourceT
#define GOX(X, T) instance (X, MonadResource m) => MonadResource (T m) where liftResourceT = lift . liftResourceT
@@ -300,13 +295,6 @@
#undef GO
#undef GOX
-
--- | The express purpose of this transformer is to allow non-@IO@-based monad
--- stacks to catch exceptions via the 'MonadThrow' typeclass.
---
--- Since 0.3.0
-newtype ExceptionT m a = ExceptionT { runExceptionT :: m (Either SomeException a) }
-
stateAlloc :: I.IORef ReleaseMap -> IO ()
stateAlloc istate = do
I.atomicModifyIORef istate $ \rm ->
@@ -315,8 +303,8 @@
(ReleaseMap nk (rf + 1) m, ())
ReleaseMapClosed -> throw $ InvalidAccess "stateAlloc"
-stateCleanup :: I.IORef ReleaseMap -> IO ()
-stateCleanup istate = E.mask_ $ do
+stateCleanup :: ReleaseType -> I.IORef ReleaseMap -> IO ()
+stateCleanup rtype istate = E.mask_ $ do
mm <- I.atomicModifyIORef istate $ \rm ->
case rm of
ReleaseMap nk rf m ->
@@ -327,94 +315,33 @@
ReleaseMapClosed -> throw $ InvalidAccess "stateCleanup"
case mm of
Just m ->
- mapM_ (\x -> try x >> return ()) $ IntMap.elems m
+ mapM_ (\x -> try (x rtype) >> return ()) $ IntMap.elems m
Nothing -> return ()
where
try :: IO a -> IO (Either SomeException a)
try = E.try
-
--- | A @Monad@ based on some monad which allows running of some 'IO' actions,
--- via unsafe calls. This applies to 'IO' and 'ST', for instance.
---
--- Since 0.3.0
-class Monad m => MonadUnsafeIO m where
- unsafeLiftIO :: IO a -> m a
-
-instance MonadUnsafeIO IO where
- unsafeLiftIO = id
-
-instance MonadUnsafeIO (ST s) where
- unsafeLiftIO = unsafeIOToST
-
-instance MonadUnsafeIO (Lazy.ST s) where
- unsafeLiftIO = LazyUnsafe.unsafeIOToST
-
-instance (MonadTrans t, MonadUnsafeIO m, Monad (t m)) => MonadUnsafeIO (t m) where
- unsafeLiftIO = lift . unsafeLiftIO
-
-instance Monad m => Functor (ExceptionT m) where
- fmap f = ExceptionT . (liftM . fmap) f . runExceptionT
-instance Monad m => Applicative (ExceptionT m) where
- pure = ExceptionT . return . Right
- ExceptionT mf <*> ExceptionT ma = ExceptionT $ do
- ef <- mf
- case ef of
- Left e -> return (Left e)
- Right f -> do
- ea <- ma
- case ea of
- Left e -> return (Left e)
- Right x -> return (Right (f x))
-instance Monad m => Monad (ExceptionT m) where
- return = pure
- ExceptionT ma >>= f = ExceptionT $ do
- ea <- ma
- case ea of
- Left e -> return (Left e)
- Right a -> runExceptionT (f a)
-instance MonadBase b m => MonadBase b (ExceptionT m) where
- liftBase = lift . liftBase
-instance MonadTrans ExceptionT where
- lift = ExceptionT . liftM Right
-instance MonadTransControl ExceptionT where
- newtype StT ExceptionT a = StExc { unStExc :: Either SomeException a }
- liftWith f = ExceptionT $ liftM return $ f $ liftM StExc . runExceptionT
- restoreT = ExceptionT . liftM unStExc
-instance MonadBaseControl b m => MonadBaseControl b (ExceptionT m) where
- newtype StM (ExceptionT m) a = StE { unStE :: ComposeSt ExceptionT m a }
- liftBaseWith = defaultLiftBaseWith StE
- restoreM = defaultRestoreM unStE
-
-instance MonadCont m => MonadCont (ExceptionT m) where
- callCC f = ExceptionT $
- callCC $ \c ->
- runExceptionT (f (\a -> ExceptionT $ c (Right a)))
-
-instance MonadError e m => MonadError e (ExceptionT m) where
- throwError = lift . throwError
- catchError r h = ExceptionT $ runExceptionT r `catchError` (runExceptionT . h)
-
-instance MonadRWS r w s m => MonadRWS r w s (ExceptionT m)
-
-instance MonadReader r m => MonadReader r (ExceptionT m) where
- ask = lift ask
- local = mapExceptionT . local
-
-mapExceptionT :: (m (Either SomeException a) -> n (Either SomeException b)) -> ExceptionT m a -> ExceptionT n b
-mapExceptionT f = ExceptionT . f . runExceptionT
-
-instance MonadState s m => MonadState s (ExceptionT m) where
- get = lift get
- put = lift . put
-
-instance MonadWriter w m => MonadWriter w (ExceptionT m) where
- tell = lift . tell
- listen = mapExceptionT $ \ m -> do
- (a, w) <- listen m
- return $! fmap (\ r -> (r, w)) a
- pass = mapExceptionT $ \ m -> pass $ do
- a <- m
- return $! case a of
- Left l -> (Left l, id)
- Right (r, f) -> (Right r, f)
+register' :: I.IORef ReleaseMap
+ -> IO ()
+ -> IO ReleaseKey
+register' istate rel = I.atomicModifyIORef istate $ \rm ->
+ case rm of
+ ReleaseMap key rf m ->
+ ( ReleaseMap (key - 1) rf (IntMap.insert key (const rel) m)
+ , ReleaseKey istate key
+ )
+ ReleaseMapClosed -> throw $ InvalidAccess "register'"
+
+-- |
+--
+-- Since 1.1.2
+registerType :: I.IORef ReleaseMap
+ -> (ReleaseType -> IO ())
+ -> IO ReleaseKey
+registerType istate rel = I.atomicModifyIORef istate $ \rm ->
+ case rm of
+ ReleaseMap key rf m ->
+ ( ReleaseMap (key - 1) rf (IntMap.insert key rel m)
+ , ReleaseKey istate key
+ )
+ ReleaseMapClosed -> throw $ InvalidAccess "register'"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resourcet-0.4.8/Control/Monad/Trans/Resource.hs new/resourcet-1.1.3.3/Control/Monad/Trans/Resource.hs
--- old/resourcet-0.4.8/Control/Monad/Trans/Resource.hs 2013-09-08 07:08:15.000000000 +0200
+++ new/resourcet-1.1.3.3/Control/Monad/Trans/Resource.hs 2014-12-17 11:48:49.000000000 +0100
@@ -12,7 +12,7 @@
#endif
-- | Allocate resources which are guaranteed to be released.
--
--- For more information, see <http://www.yesodweb.com/book/conduits>.
+-- For more information, see <https://www.fpcomplete.com/user/snoyberg/library-documentation/resourcet>.
--
-- One point to note: all register cleanup actions live in the @IO@ monad, not
-- the main monad. This allows both more efficient code, and for monads to be
@@ -29,11 +29,6 @@
-- * Monad transformation
, transResourceT
, joinResourceT
- -- * A specific Exception transformer
- , ExceptionT (..)
- , runExceptionT_
- , runException
- , runException_
-- * Registering/releasing
, allocate
, register
@@ -42,9 +37,6 @@
, resourceMask
-- * Type class/associated types
, MonadResource (..)
- , MonadUnsafeIO (..)
- , MonadThrow (..)
- , MonadActive (..)
, MonadResourceBase
-- ** Low-level
, InvalidAccess (..)
@@ -56,6 +48,16 @@
, getInternalState
, runInternalState
, withInternalState
+ , createInternalState
+ , closeInternalState
+ -- * Backwards compatibility
+ , ExceptionT (..)
+ , runExceptionT
+ , runExceptionT_
+ , runException
+ , runException_
+ , MonadThrow (..)
+ , monadThrow
) where
import qualified Data.IntMap as IntMap
@@ -92,7 +94,9 @@
import Data.Functor.Identity (Identity, runIdentity)
import Control.Monad.Morph
-
+import Control.Monad.Catch (MonadThrow, throwM)
+import Control.Monad.Catch.Pure (CatchT, runCatchT)
+import Data.Acquire.Internal (ReleaseType (..))
@@ -159,33 +163,22 @@
go :: (forall a. IO a -> IO a) -> (forall a. ResourceT IO a -> ResourceT IO a)
go r (ResourceT g) = ResourceT (\i -> r (g i))
-register' :: I.IORef ReleaseMap
- -> IO ()
- -> IO ReleaseKey
-register' istate rel = I.atomicModifyIORef istate $ \rm ->
- case rm of
- ReleaseMap key rf m ->
- ( ReleaseMap (key - 1) rf (IntMap.insert key rel m)
- , ReleaseKey istate key
- )
- ReleaseMapClosed -> throw $ InvalidAccess "register'"
-
release' :: I.IORef ReleaseMap
-> Int
-> (Maybe (IO ()) -> IO a)
-> IO a
-release' istate key act = E.mask $ \restore -> do
+release' istate key act = E.mask_ $ do
maction <- I.atomicModifyIORef istate lookupAction
- restore (act maction)
+ act maction
where
lookupAction rm@(ReleaseMap next rf m) =
case IntMap.lookup key m of
Nothing -> (rm, Nothing)
Just action ->
( ReleaseMap next rf $ IntMap.delete key m
- , Just action
+ , Just (action ReleaseEarly)
)
-- We tried to call release, but since the state is already closed, we
-- can assume that the release action was already called. Previously,
@@ -204,19 +197,30 @@
--
-- Since 0.3.0
runResourceT :: MonadBaseControl IO m => ResourceT m a -> m a
-runResourceT (ResourceT r) = do
- istate <- liftBase $ I.newIORef
- $ ReleaseMap maxBound minBound IntMap.empty
- bracket_
- (stateAlloc istate)
- (stateCleanup istate)
- (r istate)
-
-bracket_ :: MonadBaseControl IO m => IO () -> IO () -> m a -> m a
-bracket_ alloc cleanup inside =
- control $ \run -> E.bracket_ alloc cleanup (run inside)
-
-
+runResourceT (ResourceT r) = control $ \run -> do
+ istate <- createInternalState
+ E.mask $ \restore -> do
+ res <- restore (run (r istate)) `E.onException`
+ stateCleanup ReleaseException istate
+ stateCleanup ReleaseNormal istate
+ return res
+
+bracket_ :: MonadBaseControl IO m
+ => IO () -- ^ allocate
+ -> IO () -- ^ normal cleanup
+ -> IO () -- ^ exceptional cleanup
+ -> m a
+ -> m a
+bracket_ alloc cleanupNormal cleanupExc inside =
+ control $ \run -> E.mask $ \restore -> do
+ alloc
+ res <- restore (run inside) `E.onException` cleanupExc
+ cleanupNormal
+ return res
+
+finally :: MonadBaseControl IO m => m a -> IO () -> m a
+finally action cleanup =
+ control $ \run -> E.finally (run action) cleanup
-- | This function mirrors @join@ at the transformer level: it will collapse
-- two levels of @ResourceT@ into a single @ResourceT@.
@@ -226,7 +230,12 @@
-> ResourceT m a
joinResourceT (ResourceT f) = ResourceT $ \r -> unResourceT (f r) r
+-- | For backwards compatibility.
+type ExceptionT = CatchT
+-- | For backwards compatibility.
+runExceptionT :: ExceptionT m a -> m (Either SomeException a)
+runExceptionT = runCatchT
-- | Same as 'runExceptionT', but immediately 'E.throw' any exception returned.
--
@@ -268,63 +277,21 @@
bracket_
(stateAlloc r)
(return ())
+ (return ())
(liftBaseDiscard forkIO $ bracket_
(return ())
- (stateCleanup r)
+ (stateCleanup ReleaseNormal r)
+ (stateCleanup ReleaseException r)
(restore $ f r))
--- | Determine if some monad is still active. This is intended to prevent usage
--- of a monadic state after it has been closed. This is necessary for such
--- cases as lazy I\/O, where an unevaluated thunk may still refer to a
--- closed @ResourceT@.
---
--- Since 0.3.0
-class Monad m => MonadActive m where
- monadActive :: m Bool
-
-instance (MonadIO m, MonadActive m) => MonadActive (ResourceT m) where
- monadActive = ResourceT $ \rmMap -> do
- rm <- liftIO $ I.readIORef rmMap
- case rm of
- ReleaseMapClosed -> return False
- _ -> monadActive -- recurse
-
-instance MonadActive Identity where
- monadActive = return True
-
-instance MonadActive IO where
- monadActive = return True
-
-instance MonadActive (ST s) where
- monadActive = return True
-
-instance MonadActive (Lazy.ST s) where
- monadActive = return True
-
-#define GO(T) instance MonadActive m => MonadActive (T m) where monadActive = lift monadActive
-#define GOX(X, T) instance (X, MonadActive m) => MonadActive (T m) where monadActive = lift monadActive
-GO(IdentityT)
-GO(ListT)
-GO(MaybeT)
-GOX(Error e, ErrorT e)
-GO(ReaderT r)
-GO(StateT s)
-GOX(Monoid w, WriterT w)
-GOX(Monoid w, RWST r w s)
-GOX(Monoid w, Strict.RWST r w s)
-GO(Strict.StateT s)
-GOX(Monoid w, Strict.WriterT w)
-#undef GO
-#undef GOX
-
-- | A @Monad@ which can be used as a base for a @ResourceT@.
--
-- A @ResourceT@ has some restrictions on its base monad:
--
-- * @runResourceT@ requires an instance of @MonadBaseControl IO@.
--- * @MonadResource@ requires an instance of @MonadThrow@, @MonadUnsafeIO@, @MonadIO@, and @Applicative@.
+-- * @MonadResource@ requires an instance of @MonadThrow@, @MonadIO@, and @Applicative@.
--
-- While any instance of @MonadBaseControl IO@ should be an instance of the
-- other classes, this is not guaranteed by the type system (e.g., you may have
@@ -340,10 +307,10 @@
--
-- Since 0.3.2
#if __GLASGOW_HASKELL__ >= 704
-type MonadResourceBase m = (MonadBaseControl IO m, MonadThrow m, MonadUnsafeIO m, MonadIO m, Applicative m)
+type MonadResourceBase m = (MonadBaseControl IO m, MonadThrow m, MonadBase IO m, MonadIO m, Applicative m)
#else
-class (MonadBaseControl IO m, MonadThrow m, MonadUnsafeIO m, MonadIO m, Applicative m) => MonadResourceBase m
-instance (MonadBaseControl IO m, MonadThrow m, MonadUnsafeIO m, MonadIO m, Applicative m) => MonadResourceBase m
+class (MonadBaseControl IO m, MonadThrow m, MonadIO m, Applicative m) => MonadResourceBase m
+instance (MonadBaseControl IO m, MonadThrow m, MonadIO m, Applicative m) => MonadResourceBase m
#endif
-- $internalState
@@ -355,6 +322,22 @@
-- instead of wrapping around @ResourceT@ itself. This section provides you the
-- means of doing so.
+-- | Create a new internal state. This state must be closed with
+-- @closeInternalState@. It is your responsibility to ensure exception safety.
+-- Caveat emptor!
+--
+-- Since 0.4.9
+createInternalState :: MonadBase IO m => m InternalState
+createInternalState = liftBase
+ $ I.newIORef
+ $ ReleaseMap maxBound (minBound + 1) IntMap.empty
+
+-- | Close an internal state created by @createInternalState@.
+--
+-- Since 0.4.9
+closeInternalState :: MonadBase IO m => InternalState -> m ()
+closeInternalState = liftBase . stateCleanup ReleaseNormal
+
-- | Get the internal state of the current @ResourceT@.
--
-- Since 0.4.6
@@ -377,3 +360,7 @@
-- Since 0.4.6
withInternalState :: (InternalState -> m a) -> ResourceT m a
withInternalState = ResourceT
+
+-- | Backwards compatibility
+monadThrow :: (E.Exception e, MonadThrow m) => e -> m a
+monadThrow = throwM
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resourcet-0.4.8/Data/Acquire/Internal.hs new/resourcet-1.1.3.3/Data/Acquire/Internal.hs
--- old/resourcet-0.4.8/Data/Acquire/Internal.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/resourcet-1.1.3.3/Data/Acquire/Internal.hs 2014-12-17 11:48:49.000000000 +0100
@@ -0,0 +1,138 @@
+{-# OPTIONS_HADDOCK not-home #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE FlexibleContexts #-}
+module Data.Acquire.Internal
+ ( Acquire (..)
+ , Allocated (..)
+ , with
+ , withEx
+ , mkAcquire
+ , ReleaseType (..)
+ , mkAcquireType
+ ) where
+
+import Control.Applicative (Applicative (..))
+import Control.Monad.Base (MonadBase (..))
+import Control.Monad.IO.Class (MonadIO (..))
+import Control.Monad.Trans.Control (MonadBaseControl, control)
+import qualified Control.Exception.Lifted as E
+import Data.Typeable (Typeable)
+import Control.Monad (liftM, ap)
+import qualified Control.Monad.Catch as C
+import GHC.IO (unsafeUnmask)
+
+-- | The way in which a release is called.
+--
+-- Since 1.1.2
+data ReleaseType = ReleaseEarly
+ | ReleaseNormal
+ | ReleaseException
+ deriving (Show, Read, Eq, Ord, Enum, Bounded, Typeable)
+
+data Allocated a = Allocated !a !(ReleaseType -> IO ())
+
+-- | A method for acquiring a scarce resource, providing the means of freeing
+-- it when no longer needed. This data type provides
+-- @Functor@/@Applicative@/@Monad@ instances for composing different resources
+-- together. You can allocate these resources using either the @bracket@
+-- pattern (via @with@) or using @ResourceT@ (via @allocateAcquire@).
+--
+-- This concept was originally introduced by Gabriel Gonzalez and described at:
+-- <http://www.haskellforall.com/2013/06/the-resource-applicative.html>. The
+-- implementation in this package is slightly different, due to taking a
+-- different approach to async exception safety.
+--
+-- Since 1.1.0
+newtype Acquire a = Acquire ((forall b. IO b -> IO b) -> IO (Allocated a))
+ deriving Typeable
+
+instance Functor Acquire where
+ fmap = liftM
+instance Applicative Acquire where
+ pure = return
+ (<*>) = ap
+
+instance Monad Acquire where
+ return a = Acquire (\_ -> return (Allocated a (const $ return ())))
+ Acquire f >>= g' = Acquire $ \restore -> do
+ Allocated x free1 <- f restore
+ let Acquire g = g' x
+ Allocated y free2 <- g restore `E.onException` free1 ReleaseException
+ return $! Allocated y (\rt -> free2 rt `E.finally` free1 rt)
+
+instance MonadIO Acquire where
+ liftIO f = Acquire $ \restore -> do
+ x <- restore f
+ return $! Allocated x (const $ return ())
+
+instance MonadBase IO Acquire where
+ liftBase = liftIO
+
+-- | Create an @Acquire@ value using the given allocate and free functions.
+--
+-- Since 1.1.0
+mkAcquire :: IO a -- ^ acquire the resource
+ -> (a -> IO ()) -- ^ free the resource
+ -> Acquire a
+mkAcquire create free = Acquire $ \restore -> do
+ x <- restore create
+ return $! Allocated x (const $ free x)
+
+-- | Same as 'mkAcquire', but the cleanup function will be informed of /how/
+-- cleanup was initiated. This allows you to distinguish, for example, between
+-- normal and exceptional exits.
+--
+-- Since 1.1.2
+mkAcquireType
+ :: IO a -- ^ acquire the resource
+ -> (a -> ReleaseType -> IO ()) -- ^ free the resource
+ -> Acquire a
+mkAcquireType create free = Acquire $ \restore -> do
+ x <- restore create
+ return $! Allocated x (free x)
+
+-- | Allocate the given resource and provide it to the provided function. The
+-- resource will be freed as soon as the inner block is exited, whether
+-- normally or via an exception. This function is similar in function to
+-- @bracket@.
+--
+-- Since 1.1.0
+with :: MonadBaseControl IO m
+ => Acquire a
+ -> (a -> m b)
+ -> m b
+with (Acquire f) g = control $ \run -> E.mask $ \restore -> do
+ Allocated x free <- f restore
+ res <- restore (run (g x)) `E.onException` free ReleaseException
+ free ReleaseNormal
+ return res
+
+-- | Same as @with@, but uses the @MonadMask@ typeclass from exceptions instead
+-- of @MonadBaseControl@ from exceptions.
+--
+-- Since 1.1.3
+#if MIN_VERSION_exceptions(0,6,0)
+withEx :: (C.MonadMask m, MonadIO m)
+#else
+withEx :: (C.MonadCatch m, MonadIO m)
+#endif
+ => Acquire a
+ -> (a -> m b)
+ -> m b
+withEx (Acquire f) g = do
+ -- We need to do some funny business, since the restore we get below is
+ -- specialized to the m from the result, whereas we need a restore function
+ -- in IO. Checking the current masking state is exactly how mask is
+ -- implemented in base.
+ origMS <- liftIO E.getMaskingState
+
+ C.mask $ \restore -> do
+ Allocated x free <- liftIO $ f $ case origMS of
+ E.Unmasked -> unsafeUnmask
+ _ -> id
+ res <- restore (g x) `C.onException` liftIO (free ReleaseException)
+ liftIO $ free ReleaseNormal
+ return res
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resourcet-0.4.8/Data/Acquire.hs new/resourcet-1.1.3.3/Data/Acquire.hs
--- old/resourcet-0.4.8/Data/Acquire.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/resourcet-1.1.3.3/Data/Acquire.hs 2014-12-17 11:48:49.000000000 +0100
@@ -0,0 +1,35 @@
+-- | This was previously known as the Resource monad. However, that term is
+-- confusing next to the ResourceT transformer, so it has been renamed.
+module Data.Acquire
+ ( Acquire
+ , with
+ , withEx
+ , mkAcquire
+ , mkAcquireType
+ , allocateAcquire
+ , ReleaseType (..)
+ ) where
+
+import Control.Monad.Trans.Resource.Internal
+import Control.Monad.Trans.Resource
+import Data.Acquire.Internal
+import Control.Applicative (Applicative (..))
+import Control.Monad.Base (MonadBase (..))
+import Control.Monad.IO.Class (MonadIO (..))
+import Control.Monad.Trans.Control (MonadBaseControl, control)
+import qualified Control.Exception.Lifted as E
+import Data.Typeable (Typeable)
+import Control.Monad (liftM, ap)
+
+-- | Allocate a resource and register an action with the @MonadResource@ to
+-- free the resource.
+--
+-- Since 1.1.0
+allocateAcquire :: MonadResource m => Acquire a -> m (ReleaseKey, a)
+allocateAcquire = liftResourceT . allocateAcquireRIO
+
+allocateAcquireRIO :: Acquire a -> ResourceT IO (ReleaseKey, a)
+allocateAcquireRIO (Acquire f) = ResourceT $ \istate -> liftIO $ E.mask $ \restore -> do
+ Allocated a free <- f restore
+ key <- registerType istate free
+ return (key, a)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resourcet-0.4.8/README.md new/resourcet-1.1.3.3/README.md
--- old/resourcet-0.4.8/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/resourcet-1.1.3.3/README.md 2014-12-17 11:48:49.000000000 +0100
@@ -0,0 +1,5 @@
+## resourcet
+
+Please see [the full tutorial on School of Haskell](https://www.fpcomplete.com/user/snoyberg/library-documentation/res….
+
+This package was originally included with the conduit package, but has existed as a separate package for quite a while. It is fully usable outside of conduit.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resourcet-0.4.8/resourcet.cabal new/resourcet-1.1.3.3/resourcet.cabal
--- old/resourcet-0.4.8/resourcet.cabal 2013-09-08 07:08:15.000000000 +0200
+++ new/resourcet-1.1.3.3/resourcet.cabal 2014-12-17 11:48:49.000000000 +0100
@@ -1,8 +1,7 @@
Name: resourcet
-Version: 0.4.8
+Version: 1.1.3.3
Synopsis: Deterministic allocation and freeing of scarce resources.
-Description:
- This package was originally included with the conduit package, and has since been split off. For more information, please see <http://www.yesodweb.com/book/conduits>.
+description: Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/resourcet>.
License: BSD3
License-file: LICENSE
Author: Michael Snoyman
@@ -11,18 +10,22 @@
Build-type: Simple
Cabal-version: >=1.8
Homepage: http://github.com/snoyberg/conduit
+extra-source-files: ChangeLog.md, README.md
Library
Exposed-modules: Control.Monad.Trans.Resource
Control.Monad.Trans.Resource.Internal
+ Data.Acquire
+ Data.Acquire.Internal
Build-depends: base >= 4.3 && < 5
, lifted-base >= 0.1
, transformers-base >= 0.4.1 && < 0.5
- , monad-control >= 0.3.1 && < 0.4
+ , monad-control >= 0.3.1 && < 1.1
, containers
- , transformers >= 0.2.2 && < 0.4
- , mtl >= 2.0 && < 2.2
+ , transformers >= 0.2.2 && < 0.5
+ , mtl >= 2.0 && < 2.3
, mmorph
+ , exceptions >= 0.5
ghc-options: -Wall
test-suite test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resourcet-0.4.8/test/main.hs new/resourcet-1.1.3.3/test/main.hs
--- old/resourcet-0.4.8/test/main.hs 2013-09-08 07:08:15.000000000 +0200
+++ new/resourcet-1.1.3.3/test/main.hs 2014-12-17 11:48:49.000000000 +0100
@@ -1,12 +1,18 @@
+{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE ScopedTypeVariables #-}
-import Test.Hspec
-import Control.Monad.Trans.Resource
-import Data.IORef
-import Control.Concurrent
-import Control.Monad.IO.Class (liftIO)
-import Control.Concurrent.Lifted (fork)
-import Control.Exception (handle, SomeException)
+import Control.Concurrent
+import Control.Concurrent.Lifted (fork)
+import Control.Exception (Exception, MaskingState (MaskedInterruptible),
+ getMaskingState, throwIO, try)
+import Control.Exception (SomeException, handle)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import Control.Monad.Trans.Resource
+import Data.IORef
+import Data.Typeable (Typeable)
+import Test.Hspec
+import Data.Acquire
main :: IO ()
main = hspec $ do
@@ -37,6 +43,67 @@
unprotect key
y <- readIORef x
y `shouldBe` 0
+ it "cleanup actions are masked #144" $ do
+ let checkMasked name = do
+ ms <- getMaskingState
+ unless (ms == MaskedInterruptible) $
+ error $ show (name, ms)
+ runResourceT $ do
+ register (checkMasked "release") >>= release
+ register (checkMasked "normal")
+ Left Dummy <- try $ runResourceT $ do
+ register (checkMasked "exception")
+ liftIO $ throwIO Dummy
+ return ()
+ describe "mkAcquireType" $ do
+ describe "ResourceT" $ do
+ it "early" $ do
+ ref <- newIORef Nothing
+ let acq = mkAcquireType (return ()) $ \() -> writeIORef ref . Just
+ runResourceT $ do
+ (releaseKey, ()) <- allocateAcquire acq
+ release releaseKey
+ readIORef ref >>= (`shouldBe` Just ReleaseEarly)
+ it "normal" $ do
+ ref <- newIORef Nothing
+ let acq = mkAcquireType (return ()) $ \() -> writeIORef ref . Just
+ runResourceT $ do
+ (_releaseKey, ()) <- allocateAcquire acq
+ return ()
+ readIORef ref >>= (`shouldBe` Just ReleaseNormal)
+ it "exception" $ do
+ ref <- newIORef Nothing
+ let acq = mkAcquireType (return ()) $ \() -> writeIORef ref . Just
+ Left Dummy <- try $ runResourceT $ do
+ (_releaseKey, ()) <- allocateAcquire acq
+ liftIO $ throwIO Dummy
+ readIORef ref >>= (`shouldBe` Just ReleaseException)
+ describe "with" $ do
+ it "normal" $ do
+ ref <- newIORef Nothing
+ let acq = mkAcquireType (return ()) $ \() -> writeIORef ref . Just
+ with acq $ const $ return ()
+ readIORef ref >>= (`shouldBe` Just ReleaseNormal)
+ it "exception" $ do
+ ref <- newIORef Nothing
+ let acq = mkAcquireType (return ()) $ \() -> writeIORef ref . Just
+ Left Dummy <- try $ with acq $ const $ throwIO Dummy
+ readIORef ref >>= (`shouldBe` Just ReleaseException)
+ describe "withEx" $ do
+ it "normal" $ do
+ ref <- newIORef Nothing
+ let acq = mkAcquireType (return ()) $ \() -> writeIORef ref . Just
+ withEx acq $ const $ return ()
+ readIORef ref >>= (`shouldBe` Just ReleaseNormal)
+ it "exception" $ do
+ ref <- newIORef Nothing
+ let acq = mkAcquireType (return ()) $ \() -> writeIORef ref . Just
+ Left Dummy <- try $ withEx acq $ const $ throwIO Dummy
+ readIORef ref >>= (`shouldBe` Just ReleaseException)
+
+data Dummy = Dummy
+ deriving (Show, Typeable)
+instance Exception Dummy
forkHelper s fork' = describe s $ do
it "waits for all threads" $ do
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package indent for openSUSE:Factory checked in at 2015-02-27 10:59:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/indent (Old)
and /work/SRC/openSUSE:Factory/.indent.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "indent"
Changes:
--------
--- /work/SRC/openSUSE:Factory/indent/indent.changes 2015-02-20 12:01:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.indent.new/indent.changes 2015-02-27 10:59:10.000000000 +0100
@@ -1,0 +2,9 @@
+Thu Feb 19 09:28:11 UTC 2015 - dimstar(a)opensuse.org
+
+- Replace texinfo BuildRequires with makeinfo and texi2html: only
+ those parts are needed.
+- Add indent-texi2html-5.0.patch: Fix build with texi2html 5.0
+ (note: patches Makeinfo.in in order to not depend on libtool)
+- Move install_info_delete from postun to preun.
+
+-------------------------------------------------------------------
New:
----
indent-texi2html-5.0.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ indent.spec ++++++
--- /var/tmp/diff_new_pack.8Fdo6s/_old 2015-02-27 10:59:11.000000000 +0100
+++ /var/tmp/diff_new_pack.8Fdo6s/_new 2015-02-27 10:59:11.000000000 +0100
@@ -31,7 +31,9 @@
Patch2: %{name}-%{version}-lcall.diff
Patch3: %{name}-%{version}-cdw.diff
Patch4: %{name}-%{version}-man.diff
-BuildRequires: texinfo
+Patch5: indent-texi2html-5.0.patch
+BuildRequires: makeinfo
+BuildRequires: texi2html
Requires(pre): %{install_info_prereq}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -48,6 +50,7 @@
%patch2
%patch3 -p1
%patch4
+%patch5 -p1
%build
%configure
@@ -67,14 +70,14 @@
%post
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
-%postun
+%preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%files -f %{name}.lang
%defattr(-, root, root)
%{_bindir}/*
%doc doc/indent.html
-%{_infodir}/indent.info*.gz
+%{_infodir}/%{name}.info.gz
%{_mandir}/man1/indent.1.gz
%changelog
++++++ indent-texi2html-5.0.patch ++++++
Index: indent-2.2.10/doc/Makefile.am
===================================================================
--- indent-2.2.10.orig/doc/Makefile.am
+++ indent-2.2.10/doc/Makefile.am
@@ -34,14 +34,14 @@ html-monolithic: @PACKAGE@.html
html-split: @PACKAGE@_toc.html
@PACKAGE@.html: version.texi $(@PACKAGE@_TEXINFOS)
- $(TEXI2HTML) -expandinfo -number -monolithic `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi`
+ $(TEXI2HTML) -expandinfo -monolithic `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi`
@PACKAGE@_toc.html: version.texi $(@PACKAGE@_TEXINFOS)
case "$(TEXI2HTML)" in \
*"/missing texi2html") \
- $(TEXI2HTML) -expand info -number -nomenu -split section `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi` || exit 0 ;; \
+ $(TEXI2HTML) -expand info -nomenu -split section `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi` || exit 0 ;; \
*) $(RM) @PACKAGE@_*.html ; \
- $(TEXI2HTML) -expand info -number -nomenu -split section `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi` ;; \
+ $(TEXI2HTML) -expand info -nomenu -split section `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi` ;; \
esac
install-html-monolithic: @PACKAGE@.html
Index: indent-2.2.10/doc/Makefile.in
===================================================================
--- indent-2.2.10.orig/doc/Makefile.in
+++ indent-2.2.10/doc/Makefile.in
@@ -616,14 +616,14 @@ html-monolithic: @PACKAGE@.html
html-split: @PACKAGE@_toc.html
@PACKAGE@.html: version.texi $(@PACKAGE@_TEXINFOS)
- $(TEXI2HTML) -expandinfo -number -monolithic `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi`
+ $(TEXI2HTML) -expandinfo -monolithic `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi`
@PACKAGE@_toc.html: version.texi $(@PACKAGE@_TEXINFOS)
case "$(TEXI2HTML)" in \
*"/missing texi2html") \
- $(TEXI2HTML) -expand info -number -nomenu -split section `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi` || exit 0 ;; \
+ $(TEXI2HTML) -expand info -nomenu -split section `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi` || exit 0 ;; \
*) $(RM) @PACKAGE@_*.html ; \
- $(TEXI2HTML) -expand info -number -nomenu -split section `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi` ;; \
+ $(TEXI2HTML) -expand info -nomenu -split section `if test -f @PACKAGE@.texinfo; then echo @PACKAGE@.texinfo; else echo $(srcdir)/@PACKAGE@.texinfo; fi` ;; \
esac
install-html-monolithic: @PACKAGE@.html
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package ddd for openSUSE:Factory checked in at 2015-02-27 10:59:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ddd (Old)
and /work/SRC/openSUSE:Factory/.ddd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ddd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ddd/ddd.changes 2014-11-07 09:06:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ddd.new/ddd.changes 2015-02-27 10:59:08.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Feb 24 17:41:07 UTC 2015 - dimstar(a)opensuse.org
+
+- Add ddd-texinfo-5.0.patch: Fix HTML generation with texinfo 5.0.
+
+-------------------------------------------------------------------
New:
----
ddd-texinfo-5.0.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ddd.spec ++++++
--- /var/tmp/diff_new_pack.i3tIyV/_old 2015-02-27 10:59:09.000000000 +0100
+++ /var/tmp/diff_new_pack.i3tIyV/_new 2015-02-27 10:59:09.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ddd
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -48,6 +48,7 @@
Source4: ddd.wrapper
Patch0: ddd-3.3.12-gcc44.patch
Patch1: ddd-wrong-memcpy.patch
+Patch2: ddd-texinfo-5.0.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: %install_info_prereq
# NOTE: We don't want this dependency and desktop-data-SuSE is in all
@@ -78,6 +79,7 @@
%setup -q
%patch0
%patch1 -p1
+%patch2 -p1
%build
cp %{S:3} .
++++++ ddd-texinfo-5.0.patch ++++++
Index: ddd-3.3.12/ddd/ddd-themes.texi
===================================================================
--- ddd-3.3.12.orig/ddd/ddd-themes.texi
+++ ddd-3.3.12/ddd/ddd-themes.texi
@@ -1,4 +1,4 @@
-\def\postscript{}\input texinfo @c -*- texinfo -*-
+\def\postscript\input texinfo @c -*- texinfo -*-
@c $Id$
@c Writing DDD Themes
@@ -136,7 +136,7 @@ Send bug reports to @email{bug-ddd@@gnu.
@c The title page.
@ifnothtml
@titlepage
-@sp -7
+@sp 7
@ifnottex
@title Writing @value{DDD} Themes
@subtitle User's Guide and Reference Manual
Index: ddd-3.3.12/ddd/ddd.texi
===================================================================
--- ddd-3.3.12.orig/ddd/ddd.texi
+++ ddd-3.3.12/ddd/ddd.texi
@@ -1,4 +1,4 @@
-\def\postscript{}\input texinfo @c -*- texinfo -*-
+\def\postscript\input texinfo @c -*- texinfo -*-
@c $Id$
@c DDD Manual
@@ -154,7 +154,7 @@ to the developers' mailing list @email{b
@c The title page.
@ifnothtml
@titlepage
-@sp -7
+@sp 7
@ifnottex
@title Debugging with @value{DDD}
@subtitle User's Guide and Reference Manual
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package cloud-init for openSUSE:Factory checked in at 2015-02-27 10:59:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cloud-init (Old)
and /work/SRC/openSUSE:Factory/.cloud-init.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cloud-init"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cloud-init/cloud-init.changes 2015-02-13 08:35:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cloud-init.new/cloud-init.changes 2015-02-27 10:59:07.000000000 +0100
@@ -1,0 +2,9 @@
+Tue Feb 24 15:52:13 UTC 2015 - rjschwei(a)suse.com
+
+- Fix (bnc#919305 & bnc#918952)
+ - Properly handle persistent network device names for OpenNebula
+ + add dataSourceOpenNebula.patch
+ - Properly set up network mode if interface config file
+ + modified suseIntegratedHandler.patch
+
+-------------------------------------------------------------------
New:
----
dataSourceOpenNebula.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cloud-init.spec ++++++
--- /var/tmp/diff_new_pack.C4SEMd/_old 2015-02-27 10:59:08.000000000 +0100
+++ /var/tmp/diff_new_pack.C4SEMd/_new 2015-02-27 10:59:08.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package cloud-init
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -40,6 +40,7 @@
Patch8: cloudinit-datasources.patch
Patch9: cloud-init-no-dmidecode-on-ppc64.patch
Patch10: cloud-init-no-user-lock-if-already-locked.patch
+Patch11: dataSourceOpenNebula.patch
BuildRequires: fdupes
BuildRequires: filesystem
BuildRequires: python-devel
@@ -133,6 +134,7 @@
%patch8 -p1
%patch9 -p1
%patch10 -p1
+%patch11 -p2
%if 0%{?suse_version} <= 1130
# disable ecdsa for SLE 11 (not available)
++++++ dataSourceOpenNebula.patch ++++++
diff -Nurb suse/opensuse-13.2-orig/cloudinit/sources/DataSourceOpenNebula.py suse/opensuse-13.2-opennebula-patch/cloudinit/sources/DataSourceOpenNebula.py
--- suse/opensuse-13.2-orig/cloudinit/sources/DataSourceOpenNebula.py 2015-02-21 18:33:37.148247653 +0200
+++ suse/opensuse-13.2-opennebula-patch/cloudinit/sources/DataSourceOpenNebula.py 2015-02-21 19:45:29.535835879 +0200
@@ -149,7 +149,7 @@
class OpenNebulaNetwork(object):
REG_DEV_MAC = re.compile(
- r'^\d+: (eth\d+):.*?link\/ether (..:..:..:..:..:..) ?',
+ r'^\d+: (\w+):.*?link\/\w+ (..:..:..:..:..:..) ?',
re.MULTILINE | re.DOTALL)
def __init__(self, ip, context):
@@ -158,7 +158,11 @@
self.ifaces = self.get_ifaces()
def get_ifaces(self):
- return self.REG_DEV_MAC.findall(self.ip)
+ list = self.REG_DEV_MAC.findall(self.ip)
+ ifaces = dict()
+ for l in list:
+ ifaces[l[1]] = l[0]
+ return ifaces
def mac2ip(self, mac):
components = mac.split(':')[2:]
@@ -206,6 +210,15 @@
else:
return None
+ def get_context_interfaces(self):
+
+ def device_mac(t): return re.match(r"ETH\d+_MAC", t)
+
+ mac_vars = filter(device_mac, self.context.keys())
+
+ context_interfaces = [v.split('_')[0] for v in mac_vars]
+ return context_interfaces
+
def gen_conf(self):
global_dns = []
if 'DNS' in self.context:
@@ -216,27 +229,39 @@
conf.append('iface lo inet loopback')
conf.append('')
- for i in self.ifaces:
- dev = i[0]
- mac = i[1]
+ context_interfaces = self.get_context_interfaces()
+
+ if len(context_interfaces):
+ try:
+ (out, _err) = util.subp(["systemctl", "stop", "NetworkManager"])
+ (out, _err) = util.subp(["systemctl", "disable", "NetworkManager"])
+ except util.ProcessExecutionError:
+ util.logexc(LOG, "Disable NetworkManager command failed")
+
+ for interface in context_interfaces:
+ mac = self.context[interface+"_MAC"]
+ dev = self.ifaces.get(mac)
+ if dev is None:
+ continue
+
ip_components = self.mac2ip(mac)
conf.append('auto ' + dev)
conf.append('iface ' + dev + ' inet static')
- conf.append(' address ' + self.get_ip(dev, ip_components))
- conf.append(' network ' + self.get_network(dev, ip_components))
- conf.append(' netmask ' + self.get_mask(dev))
+ conf.append(' address ' + self.get_ip(interface, ip_components))
+ conf.append(' network ' + self.get_network(interface, ip_components))
+ conf.append(' netmask ' + self.get_mask(interface))
- gateway = self.get_gateway(dev)
+ gateway = self.get_gateway(interface)
if gateway:
conf.append(' gateway ' + gateway)
- domain = self.get_domain(dev)
+ domain = self.get_domain(interface)
if domain:
conf.append(' dns-search ' + domain)
# add global DNS servers to all interfaces
- dns = self.get_dns(dev)
+ dns = self.get_dns(interface)
if global_dns or dns:
all_dns = global_dns
if dns:
@@ -404,8 +429,8 @@
if ssh_key_var:
lines = context.get(ssh_key_var).splitlines()
- results['metadata']['public-keys'] = [l for l in lines
- if len(l) and not l.startswith("#")]
+ ssh_keys = [l for l in lines if len(l) and not l.startswith("#")]
+ results['metadata']['public-keys'] = ssh_keys
# custom hostname -- try hostname or leave cloud-init
# itself create hostname from IP address later
++++++ suseIntegratedHandler.patch ++++++
--- /var/tmp/diff_new_pack.C4SEMd/_old 2015-02-27 10:59:08.000000000 +0100
+++ /var/tmp/diff_new_pack.C4SEMd/_new 2015-02-27 10:59:08.000000000 +0100
@@ -1,6 +1,6 @@
--- /dev/null
+++ cloudinit/distros/opensuse.py
-@@ -0,0 +1,210 @@
+@@ -0,0 +1,209 @@
+# vi: ts=4 expandtab
+#
+# Copyright (C) 2014 SUSE LLC
@@ -176,8 +176,8 @@
+ dev_names = entries.keys()
+ for (dev, info) in entries.iteritems():
+ net_fn = self.network_script_tpl % (dev)
-+ mode = info.get('auto')
-+ if mode and mode.lower() == 'true':
++ mode = None
++ if info.get('auto', None):
+ mode = 'auto'
+ else:
+ mode = 'manual'
@@ -192,7 +192,6 @@
+ 'USERCONTROL': 'no'
+ }
+ if dev != 'lo':
-+ net_cfg['ETHERDEVICE'] = dev
+ net_cfg['ETHTOOL_OPTIONS'] = ''
+ else:
+ net_cfg['FIREWALL'] = 'no'
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package lxqt-common for openSUSE:Factory checked in at 2015-02-27 10:59:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lxqt-common (Old)
and /work/SRC/openSUSE:Factory/.lxqt-common.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lxqt-common"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lxqt-common/lxqt-common.changes 2015-02-16 21:14:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.lxqt-common.new/lxqt-common.changes 2015-02-27 10:59:05.000000000 +0100
@@ -1,0 +2,12 @@
+Tue Feb 24 17:19:20 UTC 2015 - sfalken(a)opensuse.org
+
+- Patch added: Fixes theme dirnames back to all lowercase,
+ otherwise you get a broken theme on firstboot (gh#lxde/lxqt#500)
+ + lxqt-common-0.9.1-fix-theme-dirnames.patch
+
+-------------------------------------------------------------------
+Fri Feb 20 20:00:22 UTC 2015 - sfalken(a)opensuse.org
+
+- Updated %build and %install to use cmake macros
+
+-------------------------------------------------------------------
New:
----
lxqt-common-0.9.1-fix-theme-dirnames.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lxqt-common.spec ++++++
--- /var/tmp/diff_new_pack.Jw7dFH/_old 2015-02-27 10:59:06.000000000 +0100
+++ /var/tmp/diff_new_pack.Jw7dFH/_new 2015-02-27 10:59:06.000000000 +0100
@@ -24,6 +24,8 @@
Group: System/GUI/LXDE-Qt
Url: http://www.lxde.org
Source: http://downloads.lxqt.org/lxqt/%{version}/%{name}-%{version}.tar.xz
+# PATCH-FIX-UPSTREAM sfalken(a)opensuse.org -- Renames theme dirs to all lower case, as lxqt expects, otherwise you get a broken theme'd lxqt on first boot (gh#lxde/lxqt#500)
+Patch0: lxqt-common-0.9.1-fix-theme-dirnames.patch
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: gcc-c++
@@ -40,20 +42,14 @@
%prep
%setup -q
+%patch0 -p1
%build
-mkdir build
-pushd build
-cmake \
- -DCMAKE_INSTALL_PREFIX:PATH=/usr \
- ..
+%cmake
%__make %{?_smp_mflags}
-popd
%install
-pushd build
-make DESTDIR=$RPM_BUILD_ROOT install
-popd
+%cmake_install
%fdupes %{buildroot}/%{_datadir}
%post
++++++ lxqt-common-0.9.1-fix-theme-dirnames.patch ++++++
++++ 25250 lines (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package dice for openSUSE:Factory checked in at 2015-02-27 10:59:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dice (Old)
and /work/SRC/openSUSE:Factory/.dice.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dice"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dice/dice.changes 2015-02-05 10:59:40.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.dice.new/dice.changes 2015-02-27 10:59:03.000000000 +0100
@@ -1,0 +2,61 @@
+Tue Feb 17 17:07:41 CET 2015 - ms(a)suse.de
+
+- Fixed use of dir:// uri type
+
+ The check if the uri is a remote or local uri was missing
+ in the repository type checker. This lead to a wrong location
+ passed to the open call if the dir:// type was used
+
+-------------------------------------------------------------------
+Mon Feb 16 17:35:13 CET 2015 - ms(a)suse.de
+
+- Added Uri class to control access
+
+ Simple uri's like local paths or remote locations via http
+ doesn't require a pre processing. However there are more
+ complex uri's like the path to an iso which requires to
+ loop mount the device prior to use it. It's also required to
+ cleanup the state of such devices properly. It also makes
+ sense to ask an Uri class if the resource is remote or
+ local and maybe more useful messages can be passed to an
+ Uri object in the future
+
+-------------------------------------------------------------------
+Fri Feb 13 16:14:32 CET 2015 - ms(a)suse.de
+
+- Increase version to v0.5.2
+
+-------------------------------------------------------------------
+Fri Feb 13 16:13:05 CET 2015 - ms(a)suse.de
+
+- Fixed use of local repositories
+
+ In order to allow curl to load local files the
+ mime type file:// must be prepended
+
+-------------------------------------------------------------------
+Thu Feb 12 17:00:09 CET 2015 - ms(a)suse.de
+
+- Support dir:// and just path /... uri types
+
+-------------------------------------------------------------------
+Thu Feb 5 16:15:26 CET 2015 - ms(a)suse.de
+
+- Update documentation
+
+-------------------------------------------------------------------
+Thu Feb 5 16:11:58 CET 2015 - ms(a)suse.de
+
+- Fixed documentation references
+
+-------------------------------------------------------------------
+Thu Feb 5 16:10:23 CET 2015 - ms(a)suse.de
+
+- Documentation style fixes
+
+-------------------------------------------------------------------
+Thu Feb 5 16:08:10 CET 2015 - ms(a)suse.de
+
+- Update documentation
+
+-------------------------------------------------------------------
Old:
----
dice-0.5.0.gem
New:
----
dice-0.5.2.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dice.spec ++++++
--- /var/tmp/diff_new_pack.wNjE62/_old 2015-02-27 10:59:04.000000000 +0100
+++ /var/tmp/diff_new_pack.wNjE62/_new 2015-02-27 10:59:04.000000000 +0100
@@ -1,6 +1,7 @@
+#
# spec file for package dice
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -13,8 +14,10 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
+
Name: dice
-Version: 0.5.0
+Version: 0.5.2
Release: 0
%define mod_name dice
%define mod_full_name %{mod_name}-%{version}
@@ -22,32 +25,32 @@
%define mod_weight 1
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: ruby-macros >= 1
BuildRequires: fdupes
-BuildRequires: ruby-devel
BuildRequires: gcc-c++
+BuildRequires: ruby-devel
+BuildRequires: ruby-macros >= 1
%if %suse_version == 1315
%define rb_build_versions %{rb_default_ruby}
BuildRequires: %{rubydevel}
-BuildRequires: %{rubygem rice}
-BuildRequires: %{rubygem gem2rpm}
+BuildRequires: %{rubygem abstract_method >= 1.2.1}
BuildRequires: %{rubygem bundler}
BuildRequires: %{rubygem cheetah >= 0.4.0}
-BuildRequires: %{rubygem gli >= 2.11.0}
+BuildRequires: %{rubygem gem2rpm}
BuildRequires: %{rubygem gli <= 2.12}
-BuildRequires: %{rubygem abstract_method >= 1.2.1}
-BuildRequires: %{rubygem json >= 1.8.0}
+BuildRequires: %{rubygem gli >= 2.11.0}
BuildRequires: %{rubygem inifile >= 2.0.2}
+BuildRequires: %{rubygem json >= 1.8.0}
+BuildRequires: %{rubygem rice}
%else
-BuildRequires: rubygem(gem2rpm)
+BuildRequires: rubygem(abstract_method) >= 1.2.1
BuildRequires: rubygem(bundler)
-BuildRequires: rubygem(rice)
BuildRequires: rubygem(cheetah) >= 0.4.0
-BuildRequires: rubygem(gli) >= 2.11.0
+BuildRequires: rubygem(gem2rpm)
BuildRequires: rubygem(gli) <= 2.12
-BuildRequires: rubygem(abstract_method) >= 1.2.1
-BuildRequires: rubygem(json) >= 1.8.0
+BuildRequires: rubygem(gli) >= 2.11.0
BuildRequires: rubygem(inifile) >= 2.0.2
+BuildRequires: rubygem(json) >= 1.8.0
+BuildRequires: rubygem(rice)
%endif
# Disable autogenerating "Requires:" headers for bundled gems.
%define __requires_exclude ^rubygem
++++++ dice-0.5.0.gem -> dice-0.5.2.gem ++++++
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/dice.rb new/lib/dice.rb
--- old/lib/dice.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/dice.rb 2015-02-17 17:11:00.000000000 +0100
@@ -15,6 +15,7 @@
require "inifile"
require "time"
+require_relative "uri"
require_relative "cleaner"
require_relative "semaphore/semaphore"
require_relative "dice_options"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/exceptions.rb new/lib/exceptions.rb
--- old/lib/exceptions.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/exceptions.rb 2015-02-17 17:11:00.000000000 +0100
@@ -31,5 +31,8 @@
class SemaphoreSemGetFailed < DiceError; end
class EmptyOptions < DiceError; end
class ActiveSemaphoreLock < DiceError; end
+ class UriStyleMatchFailed < DiceError; end
+ class UriTypeUnknown < DiceError; end
+ class MountISOFailed < DiceError; end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/kiwi_config.rb new/lib/kiwi_config.rb
--- old/lib/kiwi_config.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/kiwi_config.rb 2015-02-17 17:11:00.000000000 +0100
@@ -10,9 +10,10 @@
def repos
repo_uri = []
xml.elements.each("*/repository/source") do |element|
- repo_uri << KiwiUri.translate(element.attributes["path"].gsub(/\?.*/,""))
+ source_path = element.attributes["path"].gsub(/\?.*/,"")
+ repo_uri << KiwiUri.translate(source_path)
end
- repo_uri.sort.uniq
+ repo_uri
end
def packages
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/kiwi_uri.rb new/lib/kiwi_uri.rb
--- old/lib/kiwi_uri.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/kiwi_uri.rb 2015-02-17 17:11:00.000000000 +0100
@@ -1,18 +1,18 @@
class KiwiUri
class << self
def translate(uri)
+ # normalize url types available in a kiwi configuration into
+ # standard mime types. This also includes resolving open build
+ # service resource locator into http addresses
case uri
when /^obs:\/\/(\d.*)/
# distribution URL, starting with the number e.g 13.1
uri = "http://download.opensuse.org/distribution/#{$1}/"
- when /^http/
- # no translation for http and https required
- else
- raise Dice::Errors::UriTypeUnknown.new(
- "URI style #{uri} unknown"
- )
+ when /^(\/.*)/
+ # Simple path, should be a distribution dir
+ uri = "dir://#{$1}/"
end
- uri
+ Uri.new(uri)
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/repository.rb new/lib/repository.rb
--- old/lib/repository.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/repository.rb 2015-02-17 17:11:00.000000000 +0100
@@ -5,7 +5,7 @@
def solvable(uri)
@uri = uri
repo = nil
- case repotype(uri)
+ case repotype
when Dice::RepoType::RpmMd
repo = rpmmd_repo
when Dice::RepoType::SUSE
@@ -16,18 +16,42 @@
private
- def repotype(uri)
+ def repotype
+ location = uri.location
+ if uri.is_remote?
+ # We use the uri.name as location because because ruby's
+ # open-uri implementation understands remote mime types
+ location = uri.name
+ end
+
+ if uri.is_iso?
+ location = uri.map_loop
+ end
+
+ lookup_locations = Hash.new
+ lookup_locations["/suse/setup/descr/directory.yast"] =
+ Dice::RepoType::SUSE
+ lookup_locations["/repodata/repomd.xml.key"] =
+ Dice::RepoType::RpmMd
+
repotype = nil
- begin
- open(uri + "/repodata/repomd.xml.key", "rb")
- repotype = Dice::RepoType::RpmMd
- rescue
- open(uri + "/suse/setup/descr/directory.yast", "rb")
- repotype = Dice::RepoType::SUSE
+ lookup_locations.each do |indicator, type|
+ begin
+ handle = open(location + indicator, "rb")
+ repotype = type
+ handle.close
+ rescue
+ # ignore if open failed, result handled later
+ end
+ end
+
+ if uri.is_iso?
+ uri.unmap_loop
end
+
if !repotype
raise Dice::Errors::RepoTypeUnknown.new(
- "repo type detection failed for uri: #{uri}"
+ "repo type detection failed for uri: #{uri.name}"
)
end
repotype
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/repository_base.rb new/lib/repository_base.rb
--- old/lib/repository_base.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/repository_base.rb 2015-02-17 17:11:00.000000000 +0100
@@ -8,13 +8,31 @@
end
def load_file(source)
+ data = nil
+ location = uri.location
+ if uri.is_iso?
+ location = uri.map_loop
+ elsif uri.is_remote?
+ # uses ruby's openuri implementation to handle mime types
+ # Thus loading small amount of data from a network location
+ # can also be done with load_file instead of curl_file and
+ # directly reads the data into a variable instead of creating
+ # an output file like curl_file does
+ location = uri.name
+ end
begin
- open(uri + "/" + source, "rb").read
+ handle = open(location + "/" + source, "rb")
+ data = handle.read
+ handle.close
rescue => e
raise Dice::Errors::UriLoadFileFailed.new(
- "Downloading file: #{uri}/#{source} failed: #{e}"
+ "Downloading file: #{location}/#{source} failed: #{e}"
)
end
+ if uri.is_iso?
+ uri.unmap_loop
+ end
+ data
end
def curl_file(args)
@@ -22,14 +40,23 @@
dest = args[:dest]
FileUtils.mkdir_p(File.dirname(dest))
outfile = File.open(dest, "wb")
+ location = uri.name
+ if uri.is_iso?
+ location = "file://" + uri.map_loop
+ elsif !uri.is_remote?
+ location = "file://" + uri.location
+ end
begin
- Command.run("curl", "-L", uri + "/" + source, :stdout => outfile)
+ Command.run("curl", "-L", location + "/" + source, :stdout => outfile)
rescue Cheetah::ExecutionFailed => e
raise Dice::Errors::CurlFileFailed.new(
- "Downloading file: #{uri}/#{source} failed: #{e.stderr}"
+ "Downloading file: #{location}/#{source} failed: #{e.stderr}"
)
end
outfile.close
+ if uri.is_iso?
+ uri.unmap_loop
+ end
check_404_header(source, dest)
end
@@ -73,7 +100,7 @@
time.write(timestamp)
time.close
info = File.open(@@kiwi_solv + "/" + meta.info, "wb")
- info.write(uri)
+ info.write(uri.name)
info.close
meta.solv
end
@@ -92,10 +119,10 @@
def solv_meta
meta = OpenStruct.new
- meta.solv = Digest::MD5.hexdigest(uri)
+ meta.solv = Digest::MD5.hexdigest(uri.name)
meta.time = meta.solv + ".timestamp"
meta.info = meta.solv + ".info"
- meta.uri = uri
+ meta.uri = uri.name
meta
end
@@ -105,7 +132,7 @@
end
def cleanup
- FileUtils.rm_rf @tmp_dir if defined?(tmp_dir)
+ FileUtils.rm_rf tmp_dir if tmp_dir
end
private
@@ -118,7 +145,7 @@
outfile.close
if header =~ /404 Not Found/
raise Dice::Errors::CurlFileFailed.new(
- "Downloading file: #{uri}/#{source} failed: 404 not found"
+ "Downloading file: #{uri.name}/#{source} failed: 404 not found"
)
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/solver.rb new/lib/solver.rb
--- old/lib/solver.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/solver.rb 2015-02-17 17:11:00.000000000 +0100
@@ -72,7 +72,7 @@
def setup_pool
pool.setarch
kiwi_config.repos.each do |uri|
- solv = pool.add_repo uri
+ solv = pool.add_repo uri.name
solv.add_solv Repository.solvable(uri)
pool.addfileprovides
pool.createwhatprovides
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/uri.rb new/lib/uri.rb
--- old/lib/uri.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/uri.rb 2015-02-17 17:11:00.000000000 +0100
@@ -0,0 +1,97 @@
+class Uri
+ attr_reader :name, :type, :location
+ attr_reader :allowed_local_types, :allowed_remote_types
+ attr_reader :mount_point
+
+ def initialize(name)
+ @name = name
+ set_type_and_location
+
+ @allowed_remote_types = OpenStruct.new
+ @allowed_local_types = OpenStruct.new
+
+ allowed_remote_types.http = true
+ allowed_remote_types.https = true
+ allowed_remote_types.ftp = true
+
+ allowed_local_types.iso = true
+ allowed_local_types.dir = true
+
+ type_ok?
+ end
+
+ def is_remote?
+ remote_location = false
+ if allowed_remote_types[type]
+ remote_location = true
+ end
+ remote_location
+ end
+
+ def is_iso?
+ iso_file = false
+ if type == 'iso'
+ iso_file = true
+ end
+ iso_file
+ end
+
+ def map_loop
+ @mount_point ||= mount_loop
+ end
+
+ def unmap_loop
+ if mount_point
+ umount_loop(mount_point)
+ @mount_point = nil
+ end
+ end
+
+ private
+
+ def umount_loop(mount_dir)
+ begin
+ Command.run("sudo", "-n", "umount", mount_dir)
+ rescue Cheetah::ExecutionFailed => e
+ Dice.logger.error(
+ "Umounting #{mount_dir} failed: #{e.stderr}"
+ )
+ end
+ begin
+ FileUtils.rmdir(mount_dir)
+ rescue
+ # ignore if tmpdir remove failed
+ end
+ end
+
+ def mount_loop
+ mount_dir = Dir.mktmpdir
+ begin
+ Command.run("sudo", "-n", "mount", location, mount_dir)
+ rescue Cheetah::ExecutionFailed => e
+ raise Dice::Errors::MountISOFailed.new(
+ "Mounting #{location} failed: #{e.stderr}"
+ )
+ end
+ mount_dir
+ end
+
+ def set_type_and_location
+ if name =~ /^(.*):\/\/(.*)/
+ @type = "#{$1}"
+ @location = "#{$2}"
+ else
+ raise Dice::Errors::UriStyleMatchFailed.new(
+ "Can't find resource type/location in #{name}"
+ )
+ end
+ end
+
+ def type_ok?
+ if !allowed_local_types[type] && !allowed_remote_types[type]
+ raise Dice::Errors::UriTypeUnknown.new(
+ "URI style #{name} unknown"
+ )
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/vagrant_build_system.rb new/lib/vagrant_build_system.rb
--- old/lib/vagrant_build_system.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/vagrant_build_system.rb 2015-02-17 17:11:00.000000000 +0100
@@ -60,8 +60,8 @@
begin
halt_output = Command.run("vagrant", "halt", "-f", :stdout => :capture)
rescue Cheetah::ExecutionFailed => e
- raise Dice::Errors::VagrantHaltFailed.new(
- "System stop failed with: #{e.stderr}"
+ Dice.logger.error(
+ "#{self.class}: System stop failed with: #{e.stderr}"
)
end
Dice.logger.info("#{self.class}: #{halt_output}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/version.rb new/lib/version.rb
--- old/lib/version.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/version.rb 2015-02-17 17:11:00.000000000 +0100
@@ -1,3 +1,3 @@
module Dice
- VERSION = "0.5.0"
+ VERSION = "0.5.2"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 1970-01-01 01:00:00.000000000 +0100
+++ new/metadata 2015-02-17 17:11:00.000000000 +0100
@@ -1,111 +1,111 @@
--- !ruby/object:Gem::Specification
name: dice
version: !ruby/object:Gem::Version
- version: 0.5.0
+ version: 0.5.2
platform: ruby
authors:
- SUSE
autorequire:
bindir: bin
cert_chain: []
-date: 2015-01-04 00:00:00.000000000 Z
+date: 2015-02-17 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: cheetah
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 0.4.0
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 0.4.0
- !ruby/object:Gem::Dependency
name: gli
requirement: !ruby/object:Gem::Requirement
requirements:
- - - ~>
+ - - "~>"
- !ruby/object:Gem::Version
version: 2.11.0
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - ~>
+ - - "~>"
- !ruby/object:Gem::Version
version: 2.11.0
- !ruby/object:Gem::Dependency
name: abstract_method
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 1.2.1
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 1.2.1
- !ruby/object:Gem::Dependency
name: json
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 1.8.0
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 1.8.0
- !ruby/object:Gem::Dependency
name: inifile
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 2.0.2
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 2.0.2
- !ruby/object:Gem::Dependency
name: rake
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
type: :development
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
- !ruby/object:Gem::Dependency
name: packaging_rake_tasks
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
type: :development
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
description: "\n Given there is the need to build a kiwi appliance for a customer,\n
@@ -122,61 +122,62 @@
extensions: []
extra_rdoc_files: []
files:
-- lib/connection_vagrant_build_system.rb
-- lib/kiwi_config.rb
-- lib/dice_options.rb
-- lib/build_system.rb
+- COPYING
+- bin/dice
+- completion/dice.sh
+- key/vagrant
- lib/build_scheduler.rb
-- lib/repository_suse.rb
+- lib/build_status.rb
+- lib/build_system.rb
- lib/build_system_base.rb
-- lib/connection_host_build_system.rb
+- lib/build_task.rb
- lib/cleaner.rb
-- lib/dice_logger.rb
-- lib/repository_base.rb
+- lib/cli.rb
+- lib/colorstring.rb
+- lib/config.rb
+- lib/connection.rb
- lib/connection_base.rb
-- lib/build_status.rb
-- lib/host_build_system.rb
-- lib/exceptions.rb
+- lib/connection_host_build_system.rb
- lib/connection_task.rb
-- lib/cli.rb
-- lib/logger.rb
+- lib/connection_vagrant_build_system.rb
+- lib/constants.rb
- lib/dice.rb
+- lib/dice_logger.rb
+- lib/dice_options.rb
+- lib/exceptions.rb
+- lib/host_build_system.rb
+- lib/job.rb
+- lib/kiwi_config.rb
- lib/kiwi_uri.rb
-- lib/run_command.rb
-- lib/config.rb
-- lib/version.rb
+- lib/logger.rb
- lib/recipe.rb
-- lib/connection.rb
-- lib/build_task.rb
+- lib/repository.rb
+- lib/repository_base.rb
- lib/repository_rpmmd.rb
-- lib/vagrant_build_system.rb
-- lib/constants.rb
+- lib/repository_suse.rb
+- lib/run_command.rb
- lib/semaphore/extconf.rb
-- lib/job.rb
-- lib/colorstring.rb
-- lib/solver.rb
-- lib/repository.rb
- lib/semaphore/semaphore.cpp
-- bin/dice
-- completion/dice.sh
-- key/vagrant
-- recipes/suse-13.2-JeOS/root/etc/motd
-- recipes/suse-13.2-JeOS/config.xml
-- recipes/suse-13.2-JeOS/config.sh
+- lib/solver.rb
+- lib/uri.rb
+- lib/vagrant_build_system.rb
+- lib/version.rb
+- recipes/suse-13.1-JeOS/Dicefile
+- recipes/suse-13.1-JeOS/Vagrantfile
+- recipes/suse-13.1-JeOS/config.sh
+- recipes/suse-13.1-JeOS/config.xml
+- recipes/suse-13.1-JeOS/root/etc/motd
- recipes/suse-13.2-JeOS/Dicefile
+- recipes/suse-13.2-JeOS/config.sh
+- recipes/suse-13.2-JeOS/config.xml
+- recipes/suse-13.2-JeOS/root/etc/motd
+- recipes/suse-SLE12-JeOS/Dicefile
- recipes/suse-SLE12-JeOS/Vagrantfile
-- recipes/suse-SLE12-JeOS/root/etc/udev/rules.d/70-persistent-net.rules
-- recipes/suse-SLE12-JeOS/root/etc/sysconfig/network/ifcfg-lan0
-- recipes/suse-SLE12-JeOS/root/etc/motd
-- recipes/suse-SLE12-JeOS/config.xml
- recipes/suse-SLE12-JeOS/config.sh
-- recipes/suse-SLE12-JeOS/Dicefile
-- recipes/suse-13.1-JeOS/Vagrantfile
-- recipes/suse-13.1-JeOS/root/etc/motd
-- recipes/suse-13.1-JeOS/config.xml
-- recipes/suse-13.1-JeOS/config.sh
-- recipes/suse-13.1-JeOS/Dicefile
-- COPYING
+- recipes/suse-SLE12-JeOS/config.xml
+- recipes/suse-SLE12-JeOS/root/etc/motd
+- recipes/suse-SLE12-JeOS/root/etc/sysconfig/network/ifcfg-lan0
+- recipes/suse-SLE12-JeOS/root/etc/udev/rules.d/70-persistent-net.rules
homepage: https://github.com/schaefi/dice/
licenses:
- GPL-3.0
@@ -187,17 +188,17 @@
- lib
required_ruby_version: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
required_rubygems_version: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 1.3.6
requirements: []
rubyforge_project: dice
-rubygems_version: 2.0.3
+rubygems_version: 2.2.2
signing_key:
specification_version: 4
summary: light weight image build system
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package gudev-sharp for openSUSE:Factory checked in at 2015-02-27 10:58:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gudev-sharp (Old)
and /work/SRC/openSUSE:Factory/.gudev-sharp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gudev-sharp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gudev-sharp/gudev-sharp.changes 2012-02-16 12:22:36.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gudev-sharp.new/gudev-sharp.changes 2015-02-27 10:58:56.000000000 +0100
@@ -1,0 +2,18 @@
+Fri Jan 16 15:25:21 UTC 2015 - p.drouand(a)gmail.com
+
+- Update to version 3.0
+ * This version depends on glib-sharp 2.99 and above, and can be
+ installed in parallel with version 0.1.
+ As a consequence, the assembly and the pkgconfig file are now
+ named gudev-sharp-3.0
+- Replace glib-sharp2 with pkgconfig(glib-sharp-3.0); follow upstream
+ changes
+- Replace gtk-sharp2-gapi with pkgconfig(gapi-3.0); follow upstream
+ changes
+- Remove redundant %clean section
+- Package is arch-independant; use "noarch" as BuildArch
+ Move pkgconfig file to %{_datadir}
+- Add pkg-config requirement; as pkgconfig file is moved to /usr/share,
+ pkg-config is needed to evaluate "Provides"
+
+-------------------------------------------------------------------
Old:
----
gudev-sharp-0.2.tar.bz2
New:
----
gudev-sharp-3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gudev-sharp.spec ++++++
--- /var/tmp/diff_new_pack.rLPPO2/_old 2015-02-27 10:58:58.000000000 +0100
+++ /var/tmp/diff_new_pack.rLPPO2/_new 2015-02-27 10:58:58.000000000 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package gudev-sharp (Version 0.2)
+# spec file for package gudev-sharp
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,22 +15,21 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-# norootforbuild
-
Name: gudev-sharp
-Version: 0.2
-Release: 1
+Version: 3.0
+Release: 0
License: LGPL-2.1
Group: Development/Languages/Mono
Summary: .NET/C# Bindings for GUDev
Url: http://github.com/mono/gudev-sharp
-Source: %{name}-%{version}.tar.bz2
+Source: https://github.com/mono/gudev-sharp/releases/download/3.0.0/%{name}-%{versi…
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-
+BuildArch: noarch
BuildRequires: glib2-devel >= 2.6
-BuildRequires: glib-sharp2
-BuildRequires: gtk-sharp2-gapi
+BuildRequires: pkg-config
+BuildRequires: pkgconfig(glib-sharp-3.0)
+BuildRequires: pkgconfig(gapi-3.0)
BuildRequires: gtk-sharp2
BuildRequires: mono-devel
BuildRequires: monodoc-core
@@ -63,21 +62,20 @@
%install
%makeinstall
-
-%clean
-rm -rf "$RPM_BUILD_ROOT"
+mkdir -p %{buildroot}%{_datadir}/pkgconfig
+mv %{buildroot}%{_libdir}/pkgconfig/gudev-sharp-3.0.pc %{buildroot}%{_datadir}/pkgconfig/
%files
%defattr(-,root,root)
%doc ChangeLog NEWS COPYING AUTHORS README
-%dir %{_prefix}/lib/mono/gudev-sharp-1.0
-%{_prefix}/lib/mono/gudev-sharp-1.0/*.dll*
+%dir %{_prefix}/lib/mono/gudev-sharp-3.0
+%{_prefix}/lib/mono/gudev-sharp-3.0/*.dll*
%dir %{_prefix}/lib/mono/gac/gudev-sharp/
%dir %{_prefix}/lib/mono/gac/gudev-sharp/*
%{_prefix}/lib/mono/gac/gudev-sharp/*/gudev-sharp.dll*
%files devel
%defattr(-,root,root)
-%{_libdir}/pkgconfig/gudev-sharp-1.0.pc
+%{_datadir}/pkgconfig/gudev-sharp-3.0.pc
%changelog
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0