Bug 179233

Summary: [MAINTAINER] devel/ice: update to 3.5.0
Product: Ports & Packages Reporter: Michael Gmelin <freebsd>
Component: Individual Port(s)Assignee: Ruslan Makhmatkhanov <rm>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Ice-3.5.0.patch
none
ice_350_20130613.patch none

Description Michael Gmelin 2013-06-02 23:20:01 UTC
- Update to 3.5.0

Note: The PR system is mangling UTF-8 encoded patches (see PR
www/172195), so the attached patch is probably corrupted.  You can
download a clean version of the patch at:

http://blog.grem.de/ice_350_20130602.patch or
http://blog.grem.de/ice_350_20130602.patch.gz

Version 3.5.0 of Ice brings many new features, e.g.
- New encoding version
- Metrics facility
- Optional data members and parameters
- Compact encoding for classes and exceptions
- Compact type IDs
- Preserved slices
- Custom enumerator values
- C++11 lambda functions
- Remote Update of Server Properties
- IPv6 now enabled by default
- Python 3 support
- Use Berkley DB 5

See http://doc.zeroc.com/display/Ice/Release+Notes for details.

Many of the features from the previous version of the port were
incorporated upstream, therefore the number of patches in the port
skeleton is much smaller now.

The port has been tested using gcc 4.2.1 (libstdc++, C++98) and
clang 3.1 and 3.3 (libc++, C++11).

Added file(s):
- files/patch-config-Make.common.rules
- files/patch-cpp-Makefile
- files/patch-cpp-config-Make.rules
- files/patch-cpp-src-Ice-.depend
- files/patch-cpp-test-Ice-metrics-AllTests.cpp
- pkg-message

Removed file(s):
- files/patch-Make.rules
- files/patch-Makefile
- files/patch-cpp-demo-Freeze-customEvictor-Evictor.h
- files/patch-cpp-demo-IceGrid-secure-README
- files/patch-cpp-demo-IceGrid-secure-application.xml
- files/patch-cpp-demo-IceGrid-secure-config.admin
- files/patch-cpp-demo-IceGrid-secure-config.client
- files/patch-cpp-demo-IceGrid-secure-config.master
- files/patch-cpp-demo-IceGrid-secure-config.node
- files/patch-cpp-demo-IceGrid-secure-config.registry
- files/patch-cpp-demo-IceGrid-secure-config.slave
- files/patch-cpp-demo-IceGrid-secure-makecerts.py
- files/patch-cpp-include-Freeze-Map.h
- files/patch-cpp-include-Ice-Buffer.h
- files/patch-cpp-include-Ice-ConnectionIF.h
- files/patch-cpp-include-Ice-IconvStringConverter.h
- files/patch-cpp-include-Ice-IncomingAsyncF.h
- files/patch-cpp-include-Ice-LocalObjectF.h
- files/patch-cpp-include-Ice-ObjectF.h
- files/patch-cpp-include-Ice-OutgoingAsyncF.h
- files/patch-cpp-include-Ice-Proxy.h
- files/patch-cpp-include-Ice-ProxyF.h
- files/patch-cpp-include-Ice-Stream.h
- files/patch-cpp-include-Ice-StreamF.h
- files/patch-cpp-include-IceUtil-Cache.h
- files/patch-cpp-include-IceUtil-Mutex.h
- files/patch-cpp-include-IceUtil-Shared.h
- files/patch-cpp-src-Freeze-MapDb.cpp
- files/patch-cpp-src-Freeze-MapI.cpp
- files/patch-cpp-src-Freeze-MapI.h
- files/patch-cpp-src-Freeze-ObjectStore.cpp
- files/patch-cpp-src-Freeze-ObjectStore.h
- files/patch-cpp-src-Freeze-SharedDbEnv.cpp
- files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp
- files/patch-cpp-src-Freeze-TransactionalEvictorContext.h
- files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp
- files/patch-cpp-src-Glacier2-Blobject.cpp
- files/patch-cpp-src-Glacier2-Blobject.h
- files/patch-cpp-src-Glacier2-RequestQueue.cpp
- files/patch-cpp-src-Glacier2-RequestQueue.h
- files/patch-cpp-src-Glacier2-RouterI.cpp
- files/patch-cpp-src-Ice-ConnectionI.cpp
- files/patch-cpp-src-Ice-IncomingAsync.cpp
- files/patch-cpp-src-Ice-LocalObject.cpp
- files/patch-cpp-src-Ice-Object.cpp
- files/patch-cpp-src-Ice-OutgoingAsync.cpp
- files/patch-cpp-src-Ice-PropertyNames.cpp
- files/patch-cpp-src-Ice-PropertyNames.h
- files/patch-cpp-src-Ice-Service.cpp
- files/patch-cpp-src-Ice-Stream.cpp
- files/patch-cpp-src-IceGrid-AdminCallbackRouter.cpp
- files/patch-cpp-src-IceGrid-DescriptorHelper.cpp
- files/patch-cpp-src-IceGrid-Internal.ice
- files/patch-cpp-src-IceGrid-InternalRegistryI.cpp
- files/patch-cpp-src-IceGrid-InternalRegistryI.h
- files/patch-cpp-src-IceGrid-NodeSessionManager.cpp
- files/patch-cpp-src-IceGrid-ReplicaCache.cpp
- files/patch-cpp-src-IceGrid-ReplicaSessionManager.cpp
- files/patch-cpp-src-IceGrid-SessionI.h
- files/patch-cpp-src-IceSSL-Instance.cpp
- files/patch-cpp-src-IceSSL-InstanceF.h
- files/patch-cpp-src-IceSSL-TrustManager.cpp
- files/patch-cpp-src-IceSSL-TrustManagerF.h
- files/patch-cpp-src-IceSSL-Util.cpp
- files/patch-cpp-src-IceSSL-UtilF.h
- files/patch-cpp-src-IceStorm-NodeI.cpp
- files/patch-cpp-src-IceStorm-Replica.h
- files/patch-cpp-src-IceStorm-TopicI.cpp
- files/patch-cpp-src-IceStorm-TopicManagerI.cpp
- files/patch-cpp-src-IceUtil-Cond.cpp
- files/patch-cpp-src-IceUtil-CountDownLatch.cpp
- files/patch-cpp-src-IceUtil-CtrlCHandler.cpp
- files/patch-cpp-src-IceUtil-FileUtil.cpp
- files/patch-cpp-src-IceUtil-RecMutex.cpp
- files/patch-cpp-src-IceUtil-Shared.cpp
- files/patch-cpp-src-Slice-CPlusPlusUtil.cpp
- files/patch-cpp-src-Slice-FileTracker.cpp
- files/patch-cpp-src-slice2cpp-Main.cpp
- files/patch-cpp-src-slice2cs-Gen.cpp
- files/patch-cpp-src-slice2cs-Main.cpp
- files/patch-cpp-src-slice2freeze-Main.cpp
- files/patch-cpp-src-slice2freezej-Main.cpp
- files/patch-cpp-src-slice2html-Main.cpp
- files/patch-cpp-src-slice2java-Gen.cpp
- files/patch-cpp-src-slice2java-Main.cpp
- files/patch-cpp-src-slice2php-Main.cpp
- files/patch-cpp-src-slice2py-Main.cpp
- files/patch-cpp-src-slice2rb-Main.cpp
- files/patch-cpp-test-Ice-background-EndpointI.h
- files/patch-cpp-test-Ice-custom-AllTests.cpp
- files/patch-cpp-test-IceUtil-unicode-Client.cpp
- files/patch-cpp-test-Slice-keyword-Client.cpp

Generated with FreeBSD Port Tools 0.99_6 (mode: update, diff: suffix)
Comment 1 William Grzybowski 2013-06-12 22:23:43 UTC
Tests are failing for me:

*** running tests 9/85 in
/usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
*** configuration: Default
*** test started: 06/12/13 18:20:13
starting client... ok
Testing operation name... ok
terminate called after throwing an instance of 'IceUtil::ThreadSyscallException'
  what():  ../../include/IceUtil/Mutex.h:303: IceUtil::ThreadSyscallException:
syscall exception: Invalid argument
unexpected exit status: expected: 0, got -6
Traceback (most recent call last):
  File "/usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword/run.py",
line 24, in <module>
    TestUtil.simpleTest(client)
  File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/TestUtil.py", line
1424, in simpleTest
    client.waitTestSuccess()
  File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
564, in waitTestSuccess
    test(self.exitstatus, exitstatus)
  File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
549, in test
    assert False
AssertionError
('test in /usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
failed with exit status', 256)

FreeBSD venon 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r249253M: Mon Apr
8 11:48:10 BRT 2013     william@venon:/usr/obj/usr/src/sys/VENON
amd64

--
William Grzybowski
------------------------------------------
Curitiba/PR - Brasil
Comment 2 Michael Gmelin 2013-06-12 22:53:00 UTC
On Wed, 12 Jun 2013 18:23:43 -0300
William Grzybowski <william88@gmail.com> wrote:

> Tests are failing for me:
> 
> *** running tests 9/85 in
> /usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
> *** configuration: Default
> *** test started: 06/12/13 18:20:13
> starting client... ok
> Testing operation name... ok
> terminate called after throwing an instance of
> 'IceUtil::ThreadSyscallException'
> what():  ../../include/IceUtil/Mutex.h:303:
> IceUtil::ThreadSyscallException: syscall exception: Invalid argument
> unexpected exit status: expected: 0, got -6 Traceback (most recent
> call last): File
> "/usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword/run.py",
> line 24, in <module> TestUtil.simpleTest(client)
>   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/TestUtil.py", line
> 1424, in simpleTest
>     client.waitTestSuccess()
>   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
> 564, in waitTestSuccess
>     test(self.exitstatus, exitstatus)
>   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
> 549, in test
>     assert False
> AssertionError
> ('test in /usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
> failed with exit status', 256)
> 
> FreeBSD venon 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r249253M: Mon Apr
> 8 11:48:10 BRT 2013     william@venon:/usr/obj/usr/src/sys/VENON
> amd64
> 
> --
> William Grzybowski
> ------------------------------------------
> Curitiba/PR - Brasil

Hi William,

The port has been tested on the current release version of FreeBSD
(9.1-RELEASE) using a world built with system gcc (4.2.1) and system
clang (3.1), libstdc++ and libc++, c++98 an c++11, it also builds fine
on the current legacy release version (8.3-RELEASE at the time I opened
the PR, haven't tested on 8.4 yet).

I can't really test the port on or optimize it for 10-CURRENT, which is
dramatically different and ships with a more recent version of the
clang compiler and libc++.

By the way, the error you're getting is caused by a call to
pthread_mutex_lock failing, which in turn could be related to changes
in the OS, default compiler flags etc.

Please test on a current release version of FreeBSD. If it's still
failing on 9.1-RELEASE please send me a complete build output and a
list of packages installed on the system you're testing on as well as
the content of /etc/make.conf. I've been testing this port for weeks, so
seeing it fail on 9.1-RELEASE would be quite a surprise.

If you still feel that the port should work on 10-CURRENT (with no
official release date for 10.0 announced yet), please let me know, so
I can discuss on ports@.

Thanks for your time and effort. 

Cheers,
Michael

-- 
Michael Gmelin
Comment 3 William Grzybowski 2013-06-12 23:38:37 UTC
On Wed, Jun 12, 2013 at 6:53 PM, Michael Gmelin <freebsd@grem.de> wrote:
> On Wed, 12 Jun 2013 18:23:43 -0300
> William Grzybowski <william88@gmail.com> wrote:
>
>> Tests are failing for me:
>>
>> *** running tests 9/85 in
>> /usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
>> *** configuration: Default
>> *** test started: 06/12/13 18:20:13
>> starting client... ok
>> Testing operation name... ok
>> terminate called after throwing an instance of
>> 'IceUtil::ThreadSyscallException'
>> what():  ../../include/IceUtil/Mutex.h:303:
>> IceUtil::ThreadSyscallException: syscall exception: Invalid argument
>> unexpected exit status: expected: 0, got -6 Traceback (most recent
>> call last): File
>> "/usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword/run.py",
>> line 24, in <module> TestUtil.simpleTest(client)
>>   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/TestUtil.py", line
>> 1424, in simpleTest
>>     client.waitTestSuccess()
>>   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
>> 564, in waitTestSuccess
>>     test(self.exitstatus, exitstatus)
>>   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
>> 549, in test
>>     assert False
>> AssertionError
>> ('test in /usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
>> failed with exit status', 256)
>>
>> FreeBSD venon 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r249253M: Mon Apr
>> 8 11:48:10 BRT 2013     william@venon:/usr/obj/usr/src/sys/VENON
>> amd64
>>
>> --
>> William Grzybowski
>> ------------------------------------------
>> Curitiba/PR - Brasil
>
> Hi William,
>
> The port has been tested on the current release version of FreeBSD
> (9.1-RELEASE) using a world built with system gcc (4.2.1) and system
> clang (3.1), libstdc++ and libc++, c++98 an c++11, it also builds fine
> on the current legacy release version (8.3-RELEASE at the time I opened
> the PR, haven't tested on 8.4 yet).
>
> I can't really test the port on or optimize it for 10-CURRENT, which is
> dramatically different and ships with a more recent version of the
> clang compiler and libc++.
>
> By the way, the error you're getting is caused by a call to
> pthread_mutex_lock failing, which in turn could be related to changes
> in the OS, default compiler flags etc.
>
> Please test on a current release version of FreeBSD. If it's still
> failing on 9.1-RELEASE please send me a complete build output and a
> list of packages installed on the system you're testing on as well as
> the content of /etc/make.conf. I've been testing this port for weeks, so
> seeing it fail on 9.1-RELEASE would be quite a surprise.
>
> If you still feel that the port should work on 10-CURRENT (with no
> official release date for 10.0 announced yet), please let me know, so
> I can discuss on ports@.

Well, I think it should, as most of the ports do.
I was going to commit this port but I'll leave it to someone then
because I don't feel comfortable otherwise.

Thanks for your work.


--
William Grzybowski
------------------------------------------
Curitiba/PR - Brasil
Comment 4 Michael Gmelin 2013-06-13 10:52:06 UTC
So I followed Eitan Adler's advice

http://lists.freebsd.org/pipermail/freebsd-ports/2013-June/084271.html

and marked the port as BROKEN for 10. I will work on this once FreeBSD
10 is getting closer to a release and therefore stops being a moving
target.

Since the distribution file changed upstream, I also adapted distinfo.

Please find attach the complete patch, which - to circumvent PR system
problems - is also available at:

http://blog.grem.de/ice_350_20130613.patch
http://blog.grem.de/ice_350_20130613.patch.gz

Thanks,
Michael

-- 
Michael Gmelin
Comment 5 Ruslan Makhmatkhanov freebsd_committer freebsd_triage 2013-06-16 22:20:29 UTC
Responsible Changed
From-To: freebsd-ports-bugs->rm

I will take it.
Comment 6 Ruslan Makhmatkhanov freebsd_committer freebsd_triage 2013-06-17 12:52:34 UTC
State Changed
From-To: open->closed

Committed, thank you!