#44705 closed submission (fixed)
fswatch @1.3.9 submission
Reported by: | emcrisostomo (Enrico Maria Crisostomo) | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.1 |
Keywords: | Cc: | neverpanic (Clemens Lang) | |
Port: | fswatch |
Description
Attachments (2)
Change History (14)
comment:1 follow-up: 2 Changed 10 years ago by neverpanic (Clemens Lang)
Cc: | cal@… added |
---|
comment:2 Changed 10 years ago by emcrisostomo (Enrico Maria Crisostomo)
Replying to cal@…:
For github-based projects using the
github
PortGroup can simplify a lot of things. Unfortunately the only documentation is currently at the top of the PortGroup source code itself, which can be found at source:trunk/dports/_resources/port1.0/group/github-1.0.tcl.Please also consider marking your port
openmaintainer
as explained in https://guide.macports.org/#project.update-policies.nonmaintainer.
Thank you very much for your insights.
I've updated the Portfile with the GitHub port group configuration and marked it as openmaintainer.
Since I'm fswatch maintainer, am I becoming the port maintainer by submitting this port file or should I perform a separate request to become the port maintainer? (Note that I marked myself as maintainer in the port file).
Cheers, -- Enrico
comment:3 Changed 10 years ago by neverpanic (Clemens Lang)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Thanks, in r124129 without changes.
You become the maintainer by submitting. No separate request is necessary.
comment:4 follow-up: 5 Changed 10 years ago by neverpanic (Clemens Lang)
Failed on the Snow Leopard buildbot:
checking whether /usr/bin/g++-4.2 supports C++11 features by default... no checking whether /usr/bin/g++-4.2 supports C++11 features with -std=c++11... no checking whether /usr/bin/g++-4.2 supports C++11 features with -std=c++0x... no configure: error: *** A compiler with support for C++11 language features is required. Command failed: cd "/opt/local/var/macports/build/_opt_mports_dports_sysutils_fswatch/fswatch/work/fswatch-1.3.9" && ./configure --prefix=/opt/local Exit code: 1 Error: Failed to configure fswatch, consult /opt/local/var/macports/build/_opt_mports_dports_sysutils_fswatch/fswatch/work/fswatch-1.3.9/config.log Error: org.macports.configure for port fswatch returned: configure failure: command execution failed
You should probably add compiler.blacklist gcc-4.2
and possibly also llvm-gcc-4.2
. Since clang
didn't ship a C++ compiler when it was first introduced and MacPorts falls back to LLVM GCC 4.2 for C++ code, you should include the compiler_blacklist_versions
portgroup and blacklist {clang < 137}
. In total, your additions should probably contain
PortGroup compiler_blacklist_versions 1.0
and
compiler.blacklist gcc-4.0 gcc-4.2 apple-gcc-4.2 llvm-gcc-4.2 {clang < 137}
comment:5 Changed 10 years ago by emcrisostomo (Enrico Maria Crisostomo)
Replying to cal@…:
Failed on the Snow Leopard buildbot:
checking whether /usr/bin/g++-4.2 supports C++11 features by default... no checking whether /usr/bin/g++-4.2 supports C++11 features with -std=c++11... no checking whether /usr/bin/g++-4.2 supports C++11 features with -std=c++0x... no configure: error: *** A compiler with support for C++11 language features is required. Command failed: cd "/opt/local/var/macports/build/_opt_mports_dports_sysutils_fswatch/fswatch/work/fswatch-1.3.9" && ./configure --prefix=/opt/local Exit code: 1 Error: Failed to configure fswatch, consult /opt/local/var/macports/build/_opt_mports_dports_sysutils_fswatch/fswatch/work/fswatch-1.3.9/config.log Error: org.macports.configure for port fswatch returned: configure failure: command execution failedYou should probably add
compiler.blacklist gcc-4.2
and possibly alsollvm-gcc-4.2
. Sinceclang
didn't ship a C++ compiler when it was first introduced and MacPorts falls back to LLVM GCC 4.2 for C++ code, you should include thecompiler_blacklist_versions
portgroup and blacklist{clang < 137}
. In total, your additions should probably containPortGroup compiler_blacklist_versions 1.0and
compiler.blacklist gcc-4.0 gcc-4.2 apple-gcc-4.2 llvm-gcc-4.2 {clang < 137}
Thank you very much again.
I updated the Portfile with your suggestions. I'll review the suggested compiler list ASAP. Unfortunately I haven't box any box running other OS X versions except Mavericks to try this build at the moment.
Cheers, -- Enrico
Changed 10 years ago by emcrisostomo (Enrico Maria Crisostomo)
fswatch @1.3.9 Portfile
comment:6 follow-up: 7 Changed 10 years ago by neverpanic (Clemens Lang)
Since the Portfile
has been committed now, please attach unified diffs against the current version in MacPorts for every update you submit.
I don't have a SL box either, but I'd just commit this blind and let the buildbots test it. The port's broken on SL, so more testing doesn't do any harm.
comment:7 Changed 10 years ago by emcrisostomo (Enrico Maria Crisostomo)
Replying to cal@…:
Since the
Portfile
has been committed now, please attach unified diffs against the current version in MacPorts for every update you submit.I don't have a SL box either, but I'd just commit this blind and let the buildbots test it. The port's broken on SL, so more testing doesn't do any harm.
Thanks.
I'm attaching the unified diff.
Ok, let's the buildbots test it. :)
Cheers, -- Enrico
Changed 10 years ago by emcrisostomo (Enrico Maria Crisostomo)
Attachment: | 5ac9710088c64d2e30c1fb55e8832272642b99bb.diff added |
---|
fswatch @1.3.9 Portfile - 5ac9710088c64d2e30c1fb55e8832272642b99bb patch
comment:9 follow-up: 10 Changed 10 years ago by neverpanic (Clemens Lang)
Oh well, it doesn't seem like fswatch works at all on 10.6; it seems to require APIs that were not present until 10.7:
/opt/local/bin/clang++-mp-3.4 -DHAVE_CONFIG_H -I. -I/opt/local/include -pipe -Os -arch x86_64 -stdlib=libstdc++ -std=c++11 -Wall -MT poll_monitor.o -MD -MP -MF .deps/poll_monitor.Tpo -c -o poll_monitor.o poll_monitor.cpp mv -f .deps/event.Tpo .deps/event.Po /opt/local/bin/clang++-mp-3.4 -DHAVE_CONFIG_H -I. -I/opt/local/include -pipe -Os -arch x86_64 -stdlib=libstdc++ -std=c++11 -Wall -MT inotify_monitor.o -MD -MP -MF .deps/inotify_monitor.Tpo -c -o inotify_monitor.o inotify_monitor.cpp mv -f .deps/inotify_monitor.Tpo .deps/inotify_monitor.Po mv -f .deps/monitor.Tpo .deps/monitor.Po mv -f .deps/fswatch_log.Tpo .deps/fswatch_log.Po mv -f .deps/path_utils.Tpo .deps/path_utils.Po fsevent_monitor.cpp:49:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemCreated'; did you mean 'kFSEventStreamEventFlagUserDropped'? flags.push_back({ kFSEventStreamEventFlagItemCreated, event_flag::Created}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUserDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:309:3: note: 'kFSEventStreamEventFlagUserDropped' declared here kFSEventStreamEventFlagUserDropped = 0x00000002, ^ fsevent_monitor.cpp:50:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemRemoved'; did you mean 'kFSEventStreamEventFlagUserDropped'? flags.push_back({ kFSEventStreamEventFlagItemRemoved, event_flag::Removed}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUserDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:309:3: note: 'kFSEventStreamEventFlagUserDropped' declared here kFSEventStreamEventFlagUserDropped = 0x00000002, ^ fsevent_monitor.cpp:51:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemInodeMetaMod'; did you mean 'kFSEventStreamEventFlagUserDropped'? flags.push_back({ kFSEventStreamEventFlagItemInodeMetaMod, event_flag::PlatformSpecific}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUserDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:309:3: note: 'kFSEventStreamEventFlagUserDropped' declared here kFSEventStreamEventFlagUserDropped = 0x00000002, ^ fsevent_monitor.cpp:52:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemRenamed'; did you mean 'kFSEventStreamEventFlagUserDropped'? flags.push_back({ kFSEventStreamEventFlagItemRenamed, event_flag::Renamed}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUserDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:309:3: note: 'kFSEventStreamEventFlagUserDropped' declared here kFSEventStreamEventFlagUserDropped = 0x00000002, ^ fsevent_monitor.cpp:53:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemModified'; did you mean 'kFSEventStreamEventFlagUserDropped'? flags.push_back({ kFSEventStreamEventFlagItemModified, event_flag::Updated}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUserDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:309:3: note: 'kFSEventStreamEventFlagUserDropped' declared here kFSEventStreamEventFlagUserDropped = 0x00000002, ^ fsevent_monitor.cpp:54:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemFinderInfoMod'; did you mean 'kFSEventStreamEventFlagKernelDropped'? flags.push_back({ kFSEventStreamEventFlagItemFinderInfoMod, event_flag::PlatformSpecific}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagKernelDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:310:3: note: 'kFSEventStreamEventFlagKernelDropped' declared here kFSEventStreamEventFlagKernelDropped = 0x00000004, ^ fsevent_monitor.cpp:55:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemChangeOwner'; did you mean 'kFSEventStreamEventFlagRootChanged'? flags.push_back({ kFSEventStreamEventFlagItemChangeOwner, event_flag::OwnerModified}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagRootChanged /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:344:3: note: 'kFSEventStreamEventFlagRootChanged' declared here kFSEventStreamEventFlagRootChanged = 0x00000020, ^ fsevent_monitor.cpp:56:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemXattrMod' flags.push_back({ kFSEventStreamEventFlagItemXattrMod, event_flag::AttributeModified}); ^ fsevent_monitor.cpp:57:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemIsFile' flags.push_back({ kFSEventStreamEventFlagItemIsFile, event_flag::IsFile}); ^ fsevent_monitor.cpp:58:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemIsDir'; did you mean 'kFSEventStreamEventFlagUnmount'? flags.push_back({ kFSEventStreamEventFlagItemIsDir, event_flag::IsDir}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUnmount /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:372:3: note: 'kFSEventStreamEventFlagUnmount' declared here kFSEventStreamEventFlagUnmount = 0x00000080 ^ fsevent_monitor.cpp:59:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemIsSymlink' flags.push_back({ kFSEventStreamEventFlagItemIsSymlink, event_flag::IsSymLink}); ^ fsevent_monitor.cpp:128:32: error: use of undeclared identifier 'kFSEventStreamCreateFlagFileEvents'; did you mean 'kFSEventStreamCreateFlagNoDefer'? kFSEventStreamCreateFlagFileEvents); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamCreateFlagNoDefer /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:237:3: note: 'kFSEventStreamCreateFlagNoDefer' declared here kFSEventStreamCreateFlagNoDefer = 0x00000002, ^ 12 errors generated. make[1]: *** [fsevent_monitor.o] Error 1 make[1]: *** Waiting for unfinished jobs....
The compiler change was correct and worked, but there are other problems. I'd just disable building fswatch
on all platforms earlier than 10.7:
-
Portfile
25 22 checksums rmd160 929cf38c072ed3c5843bc08fd125d0697fecf6f9 \ 26 23 sha256 f3e37317155dac122ebc4efef9236f273d03e85051bb2e63198ab5453b0a8c34 27 24 use_zip yes 25 26 platform darwin { 27 # Doesn't build on SL due to missing APIs, see #44705 28 if {${os.major} <= 10} { 29 pre-fetch { 30 ui_error "$name is not supported on Snow Leopard and earlier." 31 error "unsupported platform" 32 } 33 } 34 }
That makes the compiler blacklist basically useless, but it doesn't hurt to leave it in just in case. OK to commit?
comment:10 Changed 10 years ago by emcrisostomo (Enrico Maria Crisostomo)
Replying to cal@…:
Oh well, it doesn't seem like fswatch works at all on 10.6; it seems to require APIs that were not present until 10.7:
/opt/local/bin/clang++-mp-3.4 -DHAVE_CONFIG_H -I. -I/opt/local/include -pipe -Os -arch x86_64 -stdlib=libstdc++ -std=c++11 -Wall -MT poll_monitor.o -MD -MP -MF .deps/poll_monitor.Tpo -c -o poll_monitor.o poll_monitor.cpp mv -f .deps/event.Tpo .deps/event.Po /opt/local/bin/clang++-mp-3.4 -DHAVE_CONFIG_H -I. -I/opt/local/include -pipe -Os -arch x86_64 -stdlib=libstdc++ -std=c++11 -Wall -MT inotify_monitor.o -MD -MP -MF .deps/inotify_monitor.Tpo -c -o inotify_monitor.o inotify_monitor.cpp mv -f .deps/inotify_monitor.Tpo .deps/inotify_monitor.Po mv -f .deps/monitor.Tpo .deps/monitor.Po mv -f .deps/fswatch_log.Tpo .deps/fswatch_log.Po mv -f .deps/path_utils.Tpo .deps/path_utils.Po fsevent_monitor.cpp:49:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemCreated'; did you mean 'kFSEventStreamEventFlagUserDropped'? flags.push_back({ kFSEventStreamEventFlagItemCreated, event_flag::Created}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUserDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:309:3: note: 'kFSEventStreamEventFlagUserDropped' declared here kFSEventStreamEventFlagUserDropped = 0x00000002, ^ fsevent_monitor.cpp:50:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemRemoved'; did you mean 'kFSEventStreamEventFlagUserDropped'? flags.push_back({ kFSEventStreamEventFlagItemRemoved, event_flag::Removed}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUserDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:309:3: note: 'kFSEventStreamEventFlagUserDropped' declared here kFSEventStreamEventFlagUserDropped = 0x00000002, ^ fsevent_monitor.cpp:51:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemInodeMetaMod'; did you mean 'kFSEventStreamEventFlagUserDropped'? flags.push_back({ kFSEventStreamEventFlagItemInodeMetaMod, event_flag::PlatformSpecific}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUserDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:309:3: note: 'kFSEventStreamEventFlagUserDropped' declared here kFSEventStreamEventFlagUserDropped = 0x00000002, ^ fsevent_monitor.cpp:52:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemRenamed'; did you mean 'kFSEventStreamEventFlagUserDropped'? flags.push_back({ kFSEventStreamEventFlagItemRenamed, event_flag::Renamed}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUserDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:309:3: note: 'kFSEventStreamEventFlagUserDropped' declared here kFSEventStreamEventFlagUserDropped = 0x00000002, ^ fsevent_monitor.cpp:53:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemModified'; did you mean 'kFSEventStreamEventFlagUserDropped'? flags.push_back({ kFSEventStreamEventFlagItemModified, event_flag::Updated}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUserDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:309:3: note: 'kFSEventStreamEventFlagUserDropped' declared here kFSEventStreamEventFlagUserDropped = 0x00000002, ^ fsevent_monitor.cpp:54:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemFinderInfoMod'; did you mean 'kFSEventStreamEventFlagKernelDropped'? flags.push_back({ kFSEventStreamEventFlagItemFinderInfoMod, event_flag::PlatformSpecific}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagKernelDropped /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:310:3: note: 'kFSEventStreamEventFlagKernelDropped' declared here kFSEventStreamEventFlagKernelDropped = 0x00000004, ^ fsevent_monitor.cpp:55:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemChangeOwner'; did you mean 'kFSEventStreamEventFlagRootChanged'? flags.push_back({ kFSEventStreamEventFlagItemChangeOwner, event_flag::OwnerModified}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagRootChanged /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:344:3: note: 'kFSEventStreamEventFlagRootChanged' declared here kFSEventStreamEventFlagRootChanged = 0x00000020, ^ fsevent_monitor.cpp:56:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemXattrMod' flags.push_back({ kFSEventStreamEventFlagItemXattrMod, event_flag::AttributeModified}); ^ fsevent_monitor.cpp:57:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemIsFile' flags.push_back({ kFSEventStreamEventFlagItemIsFile, event_flag::IsFile}); ^ fsevent_monitor.cpp:58:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemIsDir'; did you mean 'kFSEventStreamEventFlagUnmount'? flags.push_back({ kFSEventStreamEventFlagItemIsDir, event_flag::IsDir}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamEventFlagUnmount /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:372:3: note: 'kFSEventStreamEventFlagUnmount' declared here kFSEventStreamEventFlagUnmount = 0x00000080 ^ fsevent_monitor.cpp:59:21: error: use of undeclared identifier 'kFSEventStreamEventFlagItemIsSymlink' flags.push_back({ kFSEventStreamEventFlagItemIsSymlink, event_flag::IsSymLink}); ^ fsevent_monitor.cpp:128:32: error: use of undeclared identifier 'kFSEventStreamCreateFlagFileEvents'; did you mean 'kFSEventStreamCreateFlagNoDefer'? kFSEventStreamCreateFlagFileEvents); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kFSEventStreamCreateFlagNoDefer /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:237:3: note: 'kFSEventStreamCreateFlagNoDefer' declared here kFSEventStreamCreateFlagNoDefer = 0x00000002, ^ 12 errors generated. make[1]: *** [fsevent_monitor.o] Error 1 make[1]: *** Waiting for unfinished jobs....The compiler change was correct and worked, but there are other problems. I'd just disable building
fswatch
on all platforms earlier than 10.7:
Portfile
25 22 checksums rmd160 929cf38c072ed3c5843bc08fd125d0697fecf6f9 \ 26 23 sha256 f3e37317155dac122ebc4efef9236f273d03e85051bb2e63198ab5453b0a8c34 27 24 use_zip yes 25 26 platform darwin { 27 # Doesn't build on SL due to missing APIs, see #44705 28 if {${os.major} <= 10} { 29 pre-fetch { 30 ui_error "$name is not supported on Snow Leopard and earlier." 31 error "unsupported platform" 32 } 33 } 34 } That makes the compiler blacklist basically useless, but it doesn't hurt to leave it in just in case. OK to commit?
Ok to commit.
10.7 introduced a huge change in that API. There's an Autoconf check but, as we see, it's insufficient to deliver the proper package configuration. fswatch _could_ work if it skipped that source file (because it implements a fall back solution), but I'll have to look into it thoroughly to fix the Autoconf checks (maybe checking the OS version) and conditionally add that source file to the source list.
I'll take care of that in the next update.
Thanks again, -- Enrico
comment:11 follow-up: 12 Changed 10 years ago by neverpanic (Clemens Lang)
OK, in r124144. Thanks for all your work. :)
For github-based projects using the
github
PortGroup can simplify a lot of things. Unfortunately the only documentation is currently at the top of the PortGroup source code itself, which can be found at source:trunk/dports/_resources/port1.0/group/github-1.0.tcl.Please also consider marking your port
openmaintainer
as explained in https://guide.macports.org/#project.update-policies.nonmaintainer.