Credit Andrew for termux patches and Andrew for prores_ks format
[goodguy/cinelerra.git] / cinelerra-5.1 / thirdparty / src / libuuid-1.0.3.patch
diff --git a/cinelerra-5.1/thirdparty/src/libuuid-1.0.3.patch b/cinelerra-5.1/thirdparty/src/libuuid-1.0.3.patch
new file mode 100644 (file)
index 0000000..80292b4
--- /dev/null
@@ -0,0 +1,48 @@
+--- ./gen_uuid_c       2023-04-06 18:59:49.376261216 -0600
++++ ./gen_uuid.c       2023-04-06 17:57:00.987526837 -0600
+@@ -216,7 +216,7 @@
+       for (i = 0; i < n; i+= ifreq_size(*ifrp) ) {
+               ifrp = (struct ifreq *)((char *) ifc.ifc_buf+i);
+               strncpy(ifr.ifr_name, ifrp->ifr_name, IFNAMSIZ);
+-#ifdef SIOCGIFHWADDR
++#if defined(SIOCGIFHWADDR) && !defined(__sun)
+               if (ioctl(sd, SIOCGIFHWADDR, &ifr) < 0)
+                       continue;
+               a = (unsigned char *) &ifr.ifr_hwaddr.sa_data;
+@@ -271,11 +271,16 @@
+       THREAD_LOCAL int                state_fd = -2;
+       THREAD_LOCAL FILE               *state_f;
+       THREAD_LOCAL uint16_t           clock_seq;
++      struct flock                    lock;
+       struct timeval                  tv;
+       uint64_t                        clock_reg;
+       mode_t                          save_umask;
+       int                             len;
+       int                             ret = 0;
++      
++lock.l_whence = SEEK_SET;
++lock.l_start = 0;
++lock.l_len = 0;
+       if (state_fd == -2) {
+               save_umask = umask(0);
+@@ -294,7 +299,8 @@
+       }
+       if (state_fd >= 0) {
+               rewind(state_f);
+-              while (flock(state_fd, LOCK_EX) < 0) {
++              lock.l_type = F_WRLCK;
++              while (fcntl(state_fd, F_SETLKW, &lock) < 0) {
+                       if ((errno == EAGAIN) || (errno == EINTR))
+                               continue;
+                       fclose(state_f);
+@@ -366,7 +372,8 @@
+                       fflush(state_f);
+               }
+               rewind(state_f);
+-              flock(state_fd, LOCK_UN);
++              lock.l_type = F_UNLCK;
++              fcntl(state_fd, F_SETLK, &lock);
+       }
+       *clock_high = clock_reg >> 32;