wok-next rev 20946
Random updates
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri Aug 31 10:21:22 2018 +0300 (2018-08-31) |
parents | 360e5b4f243b |
children | 5fac1a2da249 |
files | asciiquarium/receipt avfs/receipt ccache/receipt cdrtools/receipt cdrtools/stuff/patches/cdrtools-3.01-fix-20151126-mkisofs-isoinfo.patch cdrtools/stuff/patches/series |
line diff
1.1 --- a/asciiquarium/receipt Fri Aug 31 01:44:51 2018 +0300 1.2 +++ b/asciiquarium/receipt Fri Aug 31 10:21:22 2018 +0300 1.3 @@ -1,7 +1,7 @@ 1.4 # SliTaz package receipt v2. 1.5 1.6 PACKAGE="asciiquarium" 1.7 -VERSION="1.0" 1.8 +VERSION="1.1" 1.9 CATEGORY="system-tools" 1.10 SHORT_DESC="Text console screensaver" 1.11 MAINTAINER="pascal.bellard@slitaz.org" 1.12 @@ -12,13 +12,11 @@ 1.13 WGET_URL="https://robobunny.com/projects/asciiquarium/$TARBALL" 1.14 1.15 compile_rules() { 1.16 - mv ${PACKAGE}_${VERSION} $src 2>/dev/null 1.17 - 1.18 - install -Dm755 $src/asciiquarium $install/usr/bin/asciiquarium 1.19 + install -Dm755 asciiquarium $install/usr/bin/asciiquarium 1.20 } 1.21 1.22 genpkg_rules() { 1.23 copy @std 1.24 - DEPENDS="perl-animation perl-curses" 1.25 + DEPENDS="perl-term-animation perl-curses" 1.26 TAGS="screensaver" 1.27 }
2.1 --- a/avfs/receipt Fri Aug 31 01:44:51 2018 +0300 2.2 +++ b/avfs/receipt Fri Aug 31 10:21:22 2018 +0300 2.3 @@ -1,9 +1,9 @@ 2.4 # SliTaz package receipt v2. 2.5 2.6 PACKAGE="avfs" 2.7 -VERSION="1.0.1" 2.8 +VERSION="1.0.6" 2.9 CATEGORY="system-tools" 2.10 -SHORT_DESC="A virtual Filesystem implemented with FUSE" 2.11 +SHORT_DESC="A Virtual File System for looking into archives" 2.12 MAINTAINER="pascal.bellard@slitaz.org" 2.13 LICENSE="GPL2" 2.14 WEB_SITE="http://avf.sourceforge.net/" 2.15 @@ -20,7 +20,7 @@ 2.16 $CONFIGURE_ARGS && 2.17 fix libtool && 2.18 make && 2.19 - make DESTDIR=$DESTDIR install 2.20 + make install 2.21 } 2.22 2.23 genpkg_rules() {
3.1 --- a/ccache/receipt Fri Aug 31 01:44:51 2018 +0300 3.2 +++ b/ccache/receipt Fri Aug 31 10:21:22 2018 +0300 3.3 @@ -1,36 +1,27 @@ 3.4 -# SliTaz package receipt. 3.5 +# SliTaz package receipt v2. 3.6 3.7 PACKAGE="ccache" 3.8 -VERSION="3.1.3" 3.9 +VERSION="3.4.2" 3.10 CATEGORY="development" 3.11 SHORT_DESC="Compiler cache" 3.12 MAINTAINER="erjo@slitaz.org" 3.13 LICENSE="GPL3" 3.14 -TARBALL="$PACKAGE-$VERSION.tar.bz2" 3.15 -WEB_SITE="http://ccache.samba.org/" 3.16 -WGET_URL="http://samba.org/ftp/$PACKAGE/$TARBALL" 3.17 -SUGGESTED="gcc" 3.18 -TAGS="compiler" 3.19 +WEB_SITE="https://ccache.samba.org/" 3.20 3.21 -DEPENDS="zlib" 3.22 +TARBALL="$PACKAGE-$VERSION.tar.xz" 3.23 +WGET_URL="https://www.samba.org/ftp/ccache/$TARBALL" 3.24 + 3.25 BUILD_DEPENDS="zlib-dev" 3.26 3.27 -# Rules to configure and make the package. 3.28 -compile_rules() 3.29 -{ 3.30 - cd $src 3.31 - ./configure \ 3.32 - --prefix=/usr \ 3.33 - --infodir=/usr/share/info \ 3.34 - --mandir=/usr/share/man \ 3.35 - $CONFIGURE_ARGS && 3.36 - make && make DESTDIR=$DESTDIR install 3.37 +compile_rules() { 3.38 + ./configure $CONFIGURE_ARGS && 3.39 + make && 3.40 + make install 3.41 } 3.42 3.43 -# Rules to gen a SliTaz package suitable for Tazpkg. 3.44 -genpkg_rules() 3.45 -{ 3.46 - mkdir -p $fs/usr 3.47 - cp -a $install/usr/bin $fs/usr 3.48 +genpkg_rules() { 3.49 + copy @std 3.50 + DEPENDS="zlib" 3.51 + SUGGESTED="gcc" 3.52 + TAGS="compiler" 3.53 } 3.54 -
4.1 --- a/cdrtools/receipt Fri Aug 31 01:44:51 2018 +0300 4.2 +++ b/cdrtools/receipt Fri Aug 31 10:21:22 2018 +0300 4.3 @@ -1,40 +1,47 @@ 4.4 -# SliTaz package receipt. 4.5 +# SliTaz package receipt v2. 4.6 4.7 PACKAGE="cdrtools" 4.8 -VERSION="3.00" 4.9 +VERSION="3.01" 4.10 CATEGORY="multimedia" 4.11 -SHORT_DESC="Command line programs to record CD/DVD/BluRay media." 4.12 +SHORT_DESC="Command line programs to record CD/DVD/BluRay media" 4.13 MAINTAINER="paul@slitaz.org" 4.14 LICENSE="GPL2 LGPL2.1" 4.15 WEB_SITE="http://cdrtools.sourceforge.net/private/cdrecord.html" 4.16 -TARBALL="$PACKAGE-$VERSION.tar.gz" 4.17 -WGET_URL="ftp://ftp.berlios.de/pub/cdrecord/$TARBALL" 4.18 4.19 -DEPENDS="" 4.20 +TARBALL="$PACKAGE-$VERSION.tar.bz2" 4.21 +WGET_URL="$SF_MIRROR/$PACKAGE/$TARBALL" 4.22 4.23 -# Rules to configure and make the package. 4.24 -compile_rules() 4.25 -{ 4.26 - # hack makefile 4.27 - cd $src/DEFAULTS 4.28 - sed -i 's/DEFINSGRP= bin/DEFINSGRP= root/' Defaults.linux 4.29 - cd .. 4.30 - { 4.31 - ./configure 4.32 - make && make DESTDIR=$DESTDIR install 4.33 - } 2>&1 | sed 's/: No such/: no such/' 4.34 +BUILD_DEPENDS="acl-dev libcap-dev" 4.35 +SPLIT="$PACKAGE-dev" 4.36 4.37 - mkdir -p $install/usr 4.38 - mv $install/opt/schily/* $install/usr 4.39 +compile_rules() { 4.40 + sed -i 's|/opt/schily|/usr|g; s|DEFINSGRP=.*|DEFINSGRP=root|' \ 4.41 + DEFAULTS/Defaults.linux 4.42 + # install rscsi to /usr/bin instead of /usr/sbin 4.43 + sed -i 's|INSDIR=.*|INSDIR=bin|' rscsi/Makefile 4.44 + 4.45 + export GMAKE_NOWARN=true INS_BASE=/usr INS_RBASE=/ 4.46 + cp cdda2wav/lconfig.h.in cdda2wav/lconfig.h 4.47 + 4.48 + make && 4.49 + make install || return 1 4.50 + 4.51 + # cdrkit compatibility 4.52 + ln -s cdrecord $install/usr/bin/wodim 4.53 + ln -s readcd $install/usr/bin/readom 4.54 + ln -s mkisofs $install/usr/bin/genisoimage 4.55 + ln -s cdda2wav $install/usr/bin/icedax 4.56 } 4.57 4.58 -# Rules to gen a SliTaz package suitable for Tazpkg. 4.59 -genpkg_rules() 4.60 -{ 4.61 - mkdir -p $fs/usr/lib $fs/usr/share 4.62 - cp -a $install/etc $fs 4.63 - cp -a $install/usr/bin $fs/usr 4.64 - cp -a $install/usr/sbin $fs/usr 4.65 - cp -a $install/usr/lib/siconv $fs/usr/lib 4.66 - cp -a $install/usr/share/doc $fs/usr/share 4.67 +genpkg_rules() { 4.68 + case $PACKAGE in 4.69 + cdrtools) 4.70 + copy @std 4.71 + DEPENDS="acl libcap" 4.72 + CONFIG_FILES="/etc/default/cdrecord /etc/default/rscsi" 4.73 + ;; 4.74 + *-dev) 4.75 + copy @dev 4.76 + ;; 4.77 + esac 4.78 }
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/cdrtools/stuff/patches/cdrtools-3.01-fix-20151126-mkisofs-isoinfo.patch Fri Aug 31 10:21:22 2018 +0300 5.3 @@ -0,0 +1,511 @@ 5.4 +--- cdrtools-3.01.orig/mkisofs/diag/isoinfo.c 2015-07-22 20:36:45.000000000 +0000 5.5 ++++ cdrtools-3.01/mkisofs/diag/isoinfo.c 2015-11-17 19:35:40.000000000 +0000 5.6 +@@ -1,8 +1,8 @@ 5.7 +-/* @(#)isoinfo.c 1.95 15/07/22 joerg */ 5.8 ++/* @(#)isoinfo.c 1.100 15/11/17 joerg */ 5.9 + #include <schily/mconfig.h> 5.10 + #ifndef lint 5.11 + static UConst char sccsid[] = 5.12 +- "@(#)isoinfo.c 1.95 15/07/22 joerg"; 5.13 ++ "@(#)isoinfo.c 1.100 15/11/17 joerg"; 5.14 + #endif 5.15 + /* 5.16 + * File isodump.c - dump iso9660 directory information. 5.17 +@@ -148,8 +148,10 @@ LOCAL char er_id[256]; 5.18 + LOCAL int su_version = 0; 5.19 + LOCAL int rr_version = 0; 5.20 + LOCAL int aa_version = 0; 5.21 ++LOCAL int cl_extent = 0; 5.22 + LOCAL int ucs_level = 0; 5.23 + LOCAL BOOL iso9660_inodes = FALSE; 5.24 ++LOCAL uid_t myuid; 5.25 + 5.26 + #ifdef USE_FIND 5.27 + LOCAL findn_t *find_node; /* syntaxtree from find_parse() */ 5.28 +@@ -208,6 +210,9 @@ LOCAL void extract __PR((char *rootname 5.29 + LOCAL void extract_file __PR((int f, 5.30 + struct iso_directory_record * idr, 5.31 + char *fname)); 5.32 ++LOCAL void parse_cl_dir __PR((struct iso_directory_record *idr, 5.33 ++ int extent)); 5.34 ++LOCAL BOOL parse_de __PR((struct iso_directory_record *idr)); 5.35 + LOCAL void parse_dir __PR((char * rootname, int extent, int len)); 5.36 + LOCAL void usage __PR((int excode)); 5.37 + EXPORT int main __PR((int argc, char *argv[])); 5.38 +@@ -459,7 +464,6 @@ parse_rr(pnt, len, cont_flag) 5.39 + int slen; 5.40 + int xlen; 5.41 + int ncount; 5.42 +- int cl_extent; 5.43 + int pl_extent; 5.44 + int cont_extent, cont_offset, cont_size; 5.45 + int flag1, flag2; 5.46 +@@ -469,7 +473,7 @@ parse_rr(pnt, len, cont_flag) 5.47 + 5.48 + symlinkname[0] = 0; 5.49 + 5.50 +- cont_extent = cont_offset = cont_size = 0; 5.51 ++ cl_extent = cont_extent = cont_offset = cont_size = 0; 5.52 + 5.53 + ncount = 0; 5.54 + flag1 = -1; 5.55 +@@ -714,6 +718,7 @@ struct todo 5.56 + }; 5.57 + 5.58 + LOCAL struct todo *todo_idr = NULL; 5.59 ++LOCAL struct todo **todo_pp = &todo_idr; 5.60 + 5.61 + LOCAL char *months[12] = {"Jan", "Feb", "Mar", "Apr", 5.62 + "May", "Jun", "Jul", 5.63 +@@ -962,8 +967,14 @@ static BOOL isfirst = TRUE; 5.64 + close(f); 5.65 + return; 5.66 + setmode: 5.67 +- fchmodat(AT_FDCWD, fname, fstat_buf.st_mode, AT_SYMLINK_NOFOLLOW); 5.68 + fchownat(AT_FDCWD, fname, fstat_buf.st_uid, fstat_buf.st_gid, AT_SYMLINK_NOFOLLOW); 5.69 ++ if (myuid != 0 && S_ISDIR(fstat_buf.st_mode)) { 5.70 ++ /* 5.71 ++ * Temporary hack until we have a dirstack like star. 5.72 ++ */ 5.73 ++ fstat_buf.st_mode |= S_IWUSR; 5.74 ++ } 5.75 ++ fchmodat(AT_FDCWD, fname, fstat_buf.st_mode, AT_SYMLINK_NOFOLLOW); 5.76 + times[0].tv_sec = fstat_buf.st_atime; 5.77 + times[0].tv_nsec = stat_ansecs(&fstat_buf); 5.78 + times[1].tv_sec = fstat_buf.st_mtime; 5.79 +@@ -1001,6 +1012,143 @@ extract_file(f, idr, fname) 5.80 + } 5.81 + } 5.82 + 5.83 ++ 5.84 ++LOCAL void 5.85 ++parse_cl_dir(idr, extent) 5.86 ++ struct iso_directory_record *idr; 5.87 ++ int extent; 5.88 ++{ 5.89 ++ char cl_name_buf[256*3]; 5.90 ++ 5.91 ++ strlcpy(cl_name_buf, name_buf, sizeof (cl_name_buf)); 5.92 ++#ifdef USE_SCG 5.93 ++ readsecs(extent - sector_offset, idr, 1); 5.94 ++#else 5.95 ++ lseek(fileno(infile), ((off_t)(extent - sector_offset)) << 11, SEEK_SET); 5.96 ++ read(fileno(infile), idr, 2048); 5.97 ++#endif 5.98 ++ 5.99 ++ if (parse_de(idr) && use_rock) 5.100 ++ dump_rr(idr); 5.101 ++ strlcpy(name_buf, cl_name_buf, sizeof (name_buf)); 5.102 ++} 5.103 ++ 5.104 ++LOCAL BOOL 5.105 ++parse_de(idr) 5.106 ++ struct iso_directory_record *idr; 5.107 ++{ 5.108 ++ unsigned char uc; 5.109 ++ 5.110 ++ if (idr->length[0] == 0) 5.111 ++ return (FALSE); 5.112 ++ memset(&fstat_buf, 0, sizeof (fstat_buf)); 5.113 ++ found_rr = 0; 5.114 ++ name_buf[0] = xname[0] = 0; 5.115 ++ fstat_buf.st_size = (off_t)(unsigned)isonum_733((unsigned char *)idr->size); 5.116 ++ if (idr->flags[0] & 2) 5.117 ++ fstat_buf.st_mode |= S_IFDIR; 5.118 ++ else 5.119 ++ fstat_buf.st_mode |= S_IFREG; 5.120 ++ if (idr->name_len[0] == 1 && idr->name[0] == 0) 5.121 ++ strcpy(name_buf, "."); 5.122 ++ else if (idr->name_len[0] == 1 && idr->name[0] == 1) 5.123 ++ strcpy(name_buf, ".."); 5.124 ++ else { 5.125 ++ switch (ucs_level) { 5.126 ++ case 3: 5.127 ++ case 2: 5.128 ++ case 1: 5.129 ++ /* 5.130 ++ * Unicode name. Convert as best we can. 5.131 ++ */ 5.132 ++ { 5.133 ++ int j; 5.134 ++ name_buf[0] = '\0'; 5.135 ++#ifdef USE_ICONV 5.136 ++ if (use_iconv(unls)) { 5.137 ++ int u; 5.138 ++ char *to = name_buf; 5.139 ++ 5.140 ++ for (j = 0, u = 0; j < (int)idr->name_len[0] / 2; j++) { 5.141 ++ char *ibuf = (char *)&idr->name[j*2]; 5.142 ++ size_t isize = 2; /* UCS-2 character size */ 5.143 ++ size_t osize = 4; 5.144 ++ 5.145 ++ if (iconv(unls->sic_uni2cd, (__IC_CONST char **)&ibuf, &isize, 5.146 ++ (char **)&to, &osize) == -1) { 5.147 ++ int err = geterrno(); 5.148 ++ 5.149 ++ if ((err == EINVAL || err == EILSEQ) && 5.150 ++ osize == 4) { 5.151 ++ *to = '_'; 5.152 ++ u += 1; 5.153 ++ to++; 5.154 ++ } 5.155 ++ } else { 5.156 ++ u += 4 - osize; 5.157 ++ to = &name_buf[u]; 5.158 ++ } 5.159 ++ } 5.160 ++ j = u; 5.161 ++ } else 5.162 ++#endif 5.163 ++ for (j = 0; j < (int)idr->name_len[0] / 2; j++) { 5.164 ++ UInt16_t unichar; 5.165 ++ 5.166 ++ unichar = (idr->name[j*2] & 0xFF) * 256 + 5.167 ++ (idr->name[j*2+1] & 0xFF); 5.168 ++ 5.169 ++ /* 5.170 ++ * Get the backconverted char 5.171 ++ */ 5.172 ++ if (unls) 5.173 ++ uc = sic_uni2c(unls, unichar); 5.174 ++ else 5.175 ++ uc = unichar > 255 ? '_' : unichar; 5.176 ++ 5.177 ++ name_buf[j] = uc ? uc : '_'; 5.178 ++ } 5.179 ++ name_buf[j] = '\0'; 5.180 ++ } 5.181 ++ break; 5.182 ++ case 0: 5.183 ++ /* 5.184 ++ * Normal non-Unicode name. 5.185 ++ */ 5.186 ++ strncpy(name_buf, idr->name, idr->name_len[0]); 5.187 ++ name_buf[idr->name_len[0]] = 0; 5.188 ++ break; 5.189 ++ default: 5.190 ++ /* 5.191 ++ * Don't know how to do these yet. Maybe they are the same 5.192 ++ * as one of the above. 5.193 ++ */ 5.194 ++ exit(1); 5.195 ++ } 5.196 ++ } 5.197 ++ memcpy(date_buf, idr->date, 9); 5.198 ++ /* 5.199 ++ * Always first set up time stamps and file modes from 5.200 ++ * ISO-9660. This is used as a fallback in case that 5.201 ++ * there is no related Rock Ridge based data. 5.202 ++ */ 5.203 ++ fstat_buf.st_atime = 5.204 ++ fstat_buf.st_mtime = 5.205 ++ fstat_buf.st_ctime = iso9660_time(date_buf, NULL, FALSE); 5.206 ++ fstat_buf.st_mode |= S_IRUSR|S_IXUSR | 5.207 ++ S_IRGRP|S_IXGRP | 5.208 ++ S_IROTH|S_IXOTH; 5.209 ++ fstat_buf.st_nlink = 1; 5.210 ++ fstat_buf.st_ino = 0; 5.211 ++ fstat_buf.st_uid = 0; 5.212 ++ fstat_buf.st_gid = 0; 5.213 ++ if (iso9660_inodes) { 5.214 ++ fstat_buf.st_ino = (unsigned long) 5.215 ++ isonum_733((unsigned char *)idr->extent); 5.216 ++ } 5.217 ++ return (TRUE); 5.218 ++} 5.219 ++ 5.220 + LOCAL void 5.221 + parse_dir(rootname, extent, len) 5.222 + char *rootname; 5.223 +@@ -1012,12 +1160,13 @@ parse_dir(rootname, extent, len) 5.224 + struct iso_directory_record * idr; 5.225 + struct iso_directory_record didr; 5.226 + struct stat dstat; 5.227 +- unsigned char uc; 5.228 ++ unsigned char cl_buffer[2048]; 5.229 + unsigned char flags = 0; 5.230 + Llong size = 0; 5.231 + int sextent = 0; 5.232 + int rlen; 5.233 + int blen; 5.234 ++ int rr_flags = 0; 5.235 + static char *n = 0; 5.236 + static int nlen = 0; 5.237 + 5.238 +@@ -1039,115 +1188,23 @@ static int nlen = 0; 5.239 + i = 0; 5.240 + while (1 == 1) { 5.241 + idr = (struct iso_directory_record *) &buffer[i]; 5.242 +- if (idr->length[0] == 0) break; 5.243 +- memset(&fstat_buf, 0, sizeof (fstat_buf)); 5.244 +- found_rr = 0; 5.245 +- name_buf[0] = xname[0] = 0; 5.246 +- fstat_buf.st_size = (off_t)(unsigned)isonum_733((unsigned char *)idr->size); 5.247 +- if (idr->flags[0] & 2) 5.248 +- fstat_buf.st_mode |= S_IFDIR; 5.249 +- else 5.250 +- fstat_buf.st_mode |= S_IFREG; 5.251 +- if (idr->name_len[0] == 1 && idr->name[0] == 0) 5.252 +- strcpy(name_buf, "."); 5.253 +- else if (idr->name_len[0] == 1 && idr->name[0] == 1) 5.254 +- strcpy(name_buf, ".."); 5.255 +- else { 5.256 +- switch (ucs_level) { 5.257 +- case 3: 5.258 +- case 2: 5.259 +- case 1: 5.260 +- /* 5.261 +- * Unicode name. Convert as best we can. 5.262 +- */ 5.263 +- { 5.264 +- int j; 5.265 +- 5.266 +- name_buf[0] = '\0'; 5.267 +-#ifdef USE_ICONV 5.268 +- if (use_iconv(unls)) { 5.269 +- int u; 5.270 +- char *to = name_buf; 5.271 +- 5.272 +- for (j = 0, u = 0; j < (int)idr->name_len[0] / 2; j++) { 5.273 +- char *ibuf = (char *)&idr->name[j*2]; 5.274 +- size_t isize = 2; /* UCS-2 character size */ 5.275 +- size_t osize = 4; 5.276 +- 5.277 +- if (iconv(unls->sic_uni2cd, (__IC_CONST char **)&ibuf, &isize, 5.278 +- (char **)&to, &osize) == -1) { 5.279 +- int err = geterrno(); 5.280 +- 5.281 +- if ((err == EINVAL || err == EILSEQ) && 5.282 +- osize == 4) { 5.283 +- *to = '_'; 5.284 +- u += 1; 5.285 +- to++; 5.286 +- } 5.287 +- } else { 5.288 +- u += 4 - osize; 5.289 +- to = &name_buf[u]; 5.290 +- } 5.291 +- } 5.292 +- j = u; 5.293 +- } else 5.294 +-#endif 5.295 +- for (j = 0; j < (int)idr->name_len[0] / 2; j++) { 5.296 +- UInt16_t unichar; 5.297 +- 5.298 +- unichar = (idr->name[j*2] & 0xFF) * 256 + 5.299 +- (idr->name[j*2+1] & 0xFF); 5.300 +- 5.301 +- /* 5.302 +- * Get the backconverted char 5.303 +- */ 5.304 +- if (unls) 5.305 +- uc = sic_uni2c(unls, unichar); 5.306 +- else 5.307 +- uc = unichar > 255 ? '_' : unichar; 5.308 ++ if (idr->length[0] == 0) 5.309 ++ break; 5.310 ++ parse_de(idr); 5.311 ++ if (use_rock) { 5.312 ++ rr_flags = dump_rr(idr); 5.313 + 5.314 +- name_buf[j] = uc ? uc : '_'; 5.315 +- } 5.316 +- name_buf[j] = '\0'; 5.317 +- } 5.318 +- break; 5.319 +- case 0: 5.320 ++ if (rr_flags & RR_FLAG_CL) { 5.321 + /* 5.322 +- * Normal non-Unicode name. 5.323 ++ * Need to reparse the child link 5.324 ++ * but note that we parse "CL/." 5.325 ++ * so we get no usable file name. 5.326 + */ 5.327 +- strncpy(name_buf, idr->name, idr->name_len[0]); 5.328 +- name_buf[idr->name_len[0]] = 0; 5.329 +- break; 5.330 +- default: 5.331 +- /* 5.332 +- * Don't know how to do these yet. Maybe they are the same 5.333 +- * as one of the above. 5.334 +- */ 5.335 +- exit(1); 5.336 +- } 5.337 ++ idr = (struct iso_directory_record *) cl_buffer; 5.338 ++ parse_cl_dir(idr, cl_extent); 5.339 ++ } else if (rr_flags & RR_FLAG_RE) 5.340 ++ goto cont; /* skip rr_moved */ 5.341 + } 5.342 +- memcpy(date_buf, idr->date, 9); 5.343 +- /* 5.344 +- * Always first set up time stamps and file modes from 5.345 +- * ISO-9660. This is used as a fallback in case that 5.346 +- * there is no related Rock Ridge based data. 5.347 +- */ 5.348 +- fstat_buf.st_atime = 5.349 +- fstat_buf.st_mtime = 5.350 +- fstat_buf.st_ctime = iso9660_time(date_buf, NULL, FALSE); 5.351 +- fstat_buf.st_mode |= S_IRUSR|S_IXUSR | 5.352 +- S_IRGRP|S_IXGRP | 5.353 +- S_IROTH|S_IXOTH; 5.354 +- fstat_buf.st_nlink = 1; 5.355 +- fstat_buf.st_ino = 0; 5.356 +- fstat_buf.st_uid = 0; 5.357 +- fstat_buf.st_gid = 0; 5.358 +- if (iso9660_inodes) { 5.359 +- fstat_buf.st_ino = (unsigned long) 5.360 +- isonum_733((unsigned char *)idr->extent); 5.361 +- } 5.362 +- if (use_rock) 5.363 +- dump_rr(idr); 5.364 + if (Xtract && 5.365 + (idr->flags[0] & 2) != 0 && 5.366 + idr->name_len[0] == 1 && 5.367 +@@ -1170,30 +1227,30 @@ static int nlen = 0; 5.368 + n[rlen] = '\0'; 5.369 + 5.370 + if ((idr->flags[0] & 2) != 0 && 5.371 +- (idr->name_len[0] != 1 || 5.372 ++ ((rr_flags & RR_FLAG_CL) || 5.373 ++ idr->name_len[0] != 1 || 5.374 + (idr->name[0] != 0 && idr->name[0] != 1))) { 5.375 + /* 5.376 + * This is a plain directory (neither "xxx/." 5.377 + * nor "xxx/.."). 5.378 + * Add this directory to the todo list. 5.379 + */ 5.380 +- td = todo_idr; 5.381 +- if (td != NULL) { 5.382 +- while (td->next != NULL) 5.383 +- td = td->next; 5.384 +- td->next = (struct todo *) malloc(sizeof (*td)); 5.385 +- td = td->next; 5.386 +- } else { 5.387 +- todo_idr = td = (struct todo *) malloc(sizeof (*td)); 5.388 +- } 5.389 ++ td = (struct todo *) malloc(sizeof (*td)); 5.390 ++ if (td == NULL) 5.391 ++ comerr(_("No memory.\n")); 5.392 + td->next = NULL; 5.393 + td->extent = isonum_733((unsigned char *)idr->extent); 5.394 + td->length = isonum_733((unsigned char *)idr->size); 5.395 + td->name = (char *) malloc(strlen(rootname) 5.396 + + strlen(name_buf) + 2); 5.397 ++ if (td->name == NULL) 5.398 ++ comerr(_("No memory.\n")); 5.399 + strcpy(td->name, rootname); 5.400 + strcat(td->name, name_buf); 5.401 + strcat(td->name, "/"); 5.402 ++ 5.403 ++ *todo_pp = td; 5.404 ++ todo_pp = &td->next; 5.405 + } else { 5.406 + if (xtract && strcmp(xtract, n) == 0) { 5.407 + extract_file(STDOUT_FILENO, idr, "stdout"); 5.408 +@@ -1253,6 +1310,7 @@ static int nlen = 0; 5.409 + if ((idr->flags[0] & ISO_MULTIEXTENT) == 0) 5.410 + size = 0; 5.411 + } 5.412 ++ cont: 5.413 + i += buffer[i]; 5.414 + if (i > 2048 - offsetof(struct iso_directory_record, name[0])) break; 5.415 + } 5.416 +@@ -1381,12 +1439,13 @@ main(argc, argv) 5.417 + usage(0); 5.418 + if (prvers) { 5.419 + printf(_("isoinfo %s (%s-%s-%s) Copyright (C) 1993-1999 %s (C) 1999-2015 %s\n"), 5.420 +- VERSION, 5.421 ++ "3.02a02", 5.422 + HOST_CPU, HOST_VENDOR, HOST_OS, 5.423 + _("Eric Youngdale"), 5.424 + _("Joerg Schilling")); 5.425 + exit(0); 5.426 + } 5.427 ++ myuid = getuid(); 5.428 + #ifdef USE_FIND 5.429 + if (do_find) { 5.430 + finda_t fa; 5.431 +--- cdrtools-3.01.orig/mkisofs/udf.c 2013-04-24 20:45:18.000000000 +0000 5.432 ++++ cdrtools-3.01/mkisofs/udf.c 2015-11-25 22:07:30.000000000 +0000 5.433 +@@ -1,15 +1,15 @@ 5.434 +-/* @(#)udf.c 1.42 13/04/24 Copyright 2001-2013 J. Schilling */ 5.435 ++/* @(#)udf.c 1.43 15/11/25 Copyright 2001-2015 J. Schilling */ 5.436 + #include <schily/mconfig.h> 5.437 + #ifndef lint 5.438 + static UConst char sccsid[] = 5.439 +- "@(#)udf.c 1.42 13/04/24 Copyright 2001-2013 J. Schilling"; 5.440 ++ "@(#)udf.c 1.43 15/11/25 Copyright 2001-2015 J. Schilling"; 5.441 + #endif 5.442 + /* 5.443 + * udf.c - UDF support for mkisofs 5.444 + * 5.445 + * Written by Ben Rudiak-Gould (2001). 5.446 + * 5.447 +- * Copyright 2001-2013 J. Schilling. 5.448 ++ * Copyright 2001-2015 J. Schilling. 5.449 + */ 5.450 + /* 5.451 + * This program is free software; you can redistribute it and/or modify 5.452 +@@ -98,7 +98,7 @@ static UConst char sccsid[] = 5.453 + extern int use_sparcboot; 5.454 + 5.455 + extern struct directory *root; 5.456 +-extern time_t begun; 5.457 ++extern struct timeval tv_begun; 5.458 + 5.459 + static unsigned lba_main_seq; 5.460 + static unsigned lba_main_seq_copy; 5.461 +@@ -110,7 +110,7 @@ static unsigned lba_end_anchor_vol_desc; 5.462 + static unsigned num_udf_files; 5.463 + static unsigned num_udf_directories; 5.464 + 5.465 +-static unsigned volume_set_id[2]; 5.466 ++static unsigned volume_set_id[2] = { 0, 0 }; 5.467 + 5.468 + #define UDF_MAIN_SEQ_LENGTH (16) 5.469 + #define UDF_INTEG_SEQ_LENGTH (2) 5.470 +@@ -723,7 +723,7 @@ set_primary_vol_desc(buf, lba) 5.471 + /*pvd->volume_abstract;*/ 5.472 + /*pvd->volume_copyright_notice;*/ 5.473 + /*pvd->application_ident;*/ 5.474 +- set_timestamp_from_time_t(&pvd->recording_date_and_time, begun); 5.475 ++ set_timestamp_from_time_t(&pvd->recording_date_and_time, tv_begun.tv_sec); 5.476 + set_impl_ident(&pvd->impl_ident); 5.477 + set_tag(&pvd->desc_tag, UDF_TAGID_PRIMARY_VOLUME_DESC, lba, 512); 5.478 + } 5.479 +@@ -831,7 +831,7 @@ set_logical_vol_integrity_desc(buf, lba) 5.480 + udf_logical_volume_integrity_desc *lvid = 5.481 + (udf_logical_volume_integrity_desc *)buf; 5.482 + 5.483 +- set_timestamp_from_time_t(&lvid->recording_date, begun); 5.484 ++ set_timestamp_from_time_t(&lvid->recording_date, tv_begun.tv_sec); 5.485 + set32(&lvid->integrity_type, UDF_INTEGRITY_TYPE_CLOSE); 5.486 + /*lvid->next_integrity_extent;*/ 5.487 + set64(&lvid->logical_volume_contents_use.unique_id, 5.488 +@@ -859,7 +859,7 @@ set_file_set_desc(buf, rba) 5.489 + { 5.490 + udf_file_set_desc *fsd = (udf_file_set_desc *)buf; 5.491 + 5.492 +- set_timestamp_from_time_t(&fsd->recording_date_and_time, begun); 5.493 ++ set_timestamp_from_time_t(&fsd->recording_date_and_time, tv_begun.tv_sec); 5.494 + set16(&fsd->interchange_level, 3); 5.495 + set16(&fsd->maximum_interchange_level, 3); 5.496 + set32(&fsd->character_set_list, 1); 5.497 +@@ -1986,8 +1986,10 @@ udf_main_seq_write(out) 5.498 + * volume_set_id needs to be set to a (64-bit) "unique" number. 5.499 + * This will have to do for now. 5.500 + */ 5.501 +- volume_set_id[0] = begun; 5.502 +- volume_set_id[1] = (unsigned)clock(); /* XXX Maybe non-portable */ 5.503 ++ if (volume_set_id[0] == 0) { 5.504 ++ volume_set_id[0] = tv_begun.tv_sec; 5.505 ++ volume_set_id[1] = (unsigned)tv_begun.tv_usec; 5.506 ++ } 5.507 + 5.508 + memset(buf, 0, sizeof (buf)); 5.509 + set_primary_vol_desc(buf, last_extent_written++); 5.510 +--- cdrtools-3.01.orig/mkisofs/mkisofs.c 2015-01-01 14:19:51.000000000 +0000 5.511 ++++ cdrtools-3.01/mkisofs/mkisofs.c 5.512 +@@ -69 +69 @@ int path_ind; 5.513 +-char version_string[] = VERSION; 5.514 ++char version_string[] = "3.01-fix-20151126";