[MacPorts] #65622: samba4: configure freezes on Checking for setproctitle_init

MacPorts noreply at macports.org
Sun Aug 7 02:54:58 UTC 2022


#65622: samba4: configure freezes on Checking for setproctitle_init
---------------------------+---------------------
  Reporter:  barracuda156  |      Owner:  (none)
      Type:  defect        |     Status:  new
  Priority:  Normal        |  Milestone:
 Component:  ports         |    Version:  2.7.2
Resolution:                |   Keywords:  powerpc
      Port:  samba4        |
---------------------------+---------------------

Comment (by barracuda156):

 So it freezes somewhere around this part of configure script:

 {{{
     # libbsd on some platforms provides strlcpy and strlcat
     if not conf.CHECK_FUNCS('strlcpy strlcat'):
         if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd',
 headers='bsd/string.h',
                                checklibc=True):
             strlcpy_in_bsd = True
     if not conf.CHECK_FUNCS('getpeereid'):
         conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h
 bsd/unistd.h')
     if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle',
 headers='setproctitle.h'):
         conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h
 bsd/unistd.h')
     if not conf.CHECK_FUNCS('setproctitle_init'):
         conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd',
 headers='sys/types.h bsd/unistd.h')

     if not conf.CHECK_FUNCS('closefrom'):
         conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')

     conf.CHECK_CODE('''
                 struct ucred cred;
                 socklen_t cred_len;
                 int ret = getsockopt(0, SOL_SOCKET, SO_PEERCRED, &cred,
 &cred_len);''',
                 'HAVE_PEERCRED',
                 msg="Checking whether we can use SO_PEERCRED to get socket
 credentials",
                 headers='sys/types.h sys/socket.h')

     #Some OS (ie. freebsd) return EINVAL if the conversion could not be
 done, it's not what we expect
     #Let's detect those cases
     if conf.CONFIG_SET('HAVE_STRTOLL'):
         conf.CHECK_CODE('''
                         long long nb = strtoll("Text", NULL, 0);
                         if (errno == EINVAL) {
                             return 0;
                         } else {
                             return 1;
                         }
                         ''',
                         msg="Checking correct behavior of strtoll",
                         headers = 'errno.h',
                         execute = True,
                         define = 'HAVE_BSD_STRTOLL',
                         )
     conf.CHECK_FUNCS('if_nametoindex strerror_r')
     conf.CHECK_FUNCS('syslog')
     conf.CHECK_FUNCS('gai_strerror get_current_dir_name')
     conf.CHECK_FUNCS('timegm getifaddrs freeifaddrs mmap setgroups syscall
 setsid')
     conf.CHECK_FUNCS('getgrent_r getgrgid_r getgrnam_r getgrouplist
 getpagesize')
     conf.CHECK_FUNCS('getpwent_r getpwnam_r getpwuid_r epoll_create')
     conf.CHECK_FUNCS('port_create')
     conf.CHECK_FUNCS('getprogname')
     if not conf.CHECK_FUNCS('copy_file_range'):
         conf.CHECK_CODE('''
 syscall(SYS_copy_file_range,0,NULL,0,NULL,0,0);
                         ''',
                         'HAVE_SYSCALL_COPY_FILE_RANGE',
                         headers='sys/syscall.h unistd.h',
                         msg='Checking whether we have copy_file_range
 system call')

     conf.SET_TARGET_TYPE('attr', 'EMPTY')

     xattr_headers='sys/attributes.h attr/xattr.h sys/xattr.h'

     # default to 1, we set it to 0 if we don't find any EA implementation
 below:
     conf.DEFINE('HAVE_XATTR_SUPPORT', 1)
     if conf.CHECK_FUNCS_IN('getxattr', 'attr', checklibc=True,
 headers=xattr_headers):
         conf.DEFINE('HAVE_XATTR_XATTR', 1)
         # Darwin has extra options to xattr-family functions
         conf.CHECK_CODE('getxattr(NULL, NULL, NULL, 0, 0, 0)',
                         headers=xattr_headers, local_include=False,
                         define='XATTR_ADDITIONAL_OPTIONS',
                         msg="Checking whether xattr interface takes
 additional options")
     elif conf.CHECK_FUNCS_IN('attr_listf', 'attr', checklibc=True,
 headers=xattr_headers):
         conf.DEFINE('HAVE_XATTR_ATTR', 1)
     elif conf.CHECK_FUNCS('extattr_list_fd'):
         conf.DEFINE('HAVE_XATTR_EXTATTR', 1)
     elif conf.CHECK_FUNCS('flistea'):
         conf.DEFINE('HAVE_XATTR_EA', 1)
     elif not conf.CHECK_FUNCS('attropen'):
             conf.DEFINE('HAVE_XATTR_SUPPORT', 0)


     conf.CHECK_FUNCS_IN('dlopen dlsym dlerror dlclose', 'dl',
                         checklibc=True, headers='dlfcn.h dl.h')

     conf.CHECK_C_PROTOTYPE('dlopen', 'void *dlopen(const char* filename,
 unsigned int flags)',
                            define='DLOPEN_TAKES_UNSIGNED_FLAGS',
 headers='dlfcn.h dl.h')
 }}}

-- 
Ticket URL: <https://trac.macports.org/ticket/65622#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list